##############################################################################
#									     #
#  Software zum Buch "Kryptographie in C und C++"                            #
#  Autor: Michael Welschenbach						     #
#									     #
#  Quelldatei makefile	(fuer FLINT/C-Testsuite unter Unix/Linux)	     #
#  Autoren: Jan-Peter Wilhelms, Michael Welschenbach			     #
#									     #
#  Copyright (C) 1998-2001 by Michael Welschenbach			     #
#  Copyright (C) 1998-2001 by Springer-Verlag Berlin, Heidelberg	     #
#									     #
#  All Rights Reserved							     #
#									     #
#  Die Software darf fuer nichtkommerzielle Zwecke frei verwendet und	     #
#  veraendert werden, solange die folgenden Bedingungen anerkannt werden:    #
#									     #
#  (1) Alle Aenderungen muessen als solche kenntlich gemacht werden, so dass #
#      nicht der Eindruck erweckt wird, es handle sich um die Original-      #
#      Software.							     #
#									     #
#  (2) Die Copyright-Hinweise und die uebrigen Angaben in diesem Feld	     #
#      duerfen weder entfernt noch veraendert werden.			     #
#									     #
#  (3) Weder der Verlag noch der Autor uebernehmen irgendeine Haftung fuer   #
#      eventuelle Schaeden, die aus der Verwendung oder aus der Nicht-       #
#      verwendbarkeit der Software, gleich fuer welchen Zweck, entstehen     #
#      sollten, selbst dann nicht, wenn diese Schaeden durch Fehler verur-   #
#      sacht wurden, die in der Software enthalten sein sollten.             #
#									     #
#============================================================================#
#									     #
#      Hinweise zur Verwendung: 					     #
#      ------------------------ 					     #
#      Bei Aufruf von make ohne Parameter laeuft die gesamte Testsuite ab.   #
#      Bei Aufruf von make mit einem der Parameter			     #
#									     #
#        rnd bbs reg bas add sub mul kar sqr div madd msub mmul msqr shift   #
#	 set bool iroot gcd mexp con ari chin xgcd root prrt ripe            #
#									     #
#      laeuft nur das jeweilige Testprogramm ab.			     #
#									     #
##############################################################################

test:	rnd bbs reg bas add sub mul kar sqr div madd msub mmul msqr shift set bool iroot gcd mexp ripe con ari chin xgcd root prrt

rnd:	flint.o testrand
	testrand 2> err

bbs:	flint.o testbbs
#	testbbs 2>> err

reg:	flint.o testreg
	testreg 2>> err

bas:	flint.o testbas
	testbas 2>> err

add:	flint.o testadd
	testadd 2>> err

sub:	flint.o testsub
	testsub 2>> err

mul:	flint.o testmul
	testmul 2>> err

kar:	flint.o ../src/kmul.c testkar.c
	gcc -Wall -ansi -O2 -I../src -o testkar testkar.c ../src/kmul.c flint.o
	testkar 2>> err

sqr:	flint.o testsqr
	testsqr 2>> err

div:	flint.o testdiv
	testdiv 2>> err

madd:	flint.o testmadd
	testmadd 2>> err

msub:	flint.o testmsub
	testmsub 2>> err

mmul:	flint.o testmmul
	testmmul 2>> err

msqr:	flint.o testmsqr
	testmsqr 2>> err

shift:	flint.o testshft
	testshft 2>> err

set:	flint.o testset
	testset 2>> err

bool:	flint.o testbool
	testbool 2>> err

iroot:	flint.o testiroo
	testiroo 2>> err

gcd:	flint.o testgcd
	testgcd 2>> err

mexp:	flint.o testmexp
	testmexp 2>> err

con:	flintpp.o flint.o testcnst
	testcnst 2>> err

ari:	flintpp.o flint.o testari
	testari 2>> err

chin:	flintpp.o flint.o testchin
	testchin 2>> err

xgcd:	flintpp.o flint.o testxgcd
	testxgcd 2>> err

root:	flintpp.o flint.o testroot
	testroot 2>> err

prrt:	flintpp.o flint.o testprrt
	testprrt 2>> err

ripe:	../src/ripemd.c testripe.c
	gcc -Wall -ansi -O2 -I../src -o testripe testripe.c ../src/ripemd.c
	testripe 2>> err


flint.o: ../src/flint.c
	gcc -c -O2 -Wall -ansi -I../src ../src/flint.c

kmul.o: ../src/kmul.c
	gcc -c -O2 -Wall -ansi -I../src ../src/kmul.c

flintpp.o: ../src/flintpp.cpp
	gcc -c -O2 -Wall -ansi -I../src ../src/flintpp.cpp


.SUFFIXES: .o .c .cpp

.c:
	gcc -O2 -Wall -ansi -I../src -o $@ $< flint.o

.cpp:
	gcc -O2 -Wall -ansi -I../src -o $@ $< flint.o flintpp.o -lstdc++

