1CFLAGS += -Wall -W -Wshadow -O3 -fomit-frame-pointer -funroll-loops -I../
2
3# default lib name (requires install with root)
4# LIBNAME=-ltommath
5
6# libname when you can't install the lib with install
7LIBNAME=../libtommath.a
8
9#provable primes
10pprime: pprime.o
11	$(CC) pprime.o $(LIBNAME) -o pprime
12
13# portable [well requires clock()] tuning app
14tune: tune.o
15	$(CC) tune.o $(LIBNAME) -o tune
16	
17# same app but using RDTSC for higher precision [requires 80586+], coff based gcc installs [e.g. ming, cygwin, djgpp]
18tune86: tune.c
19	nasm -f coff timer.asm
20	$(CC) -DX86_TIMER $(CFLAGS) tune.c timer.o  $(LIBNAME) -o tune86
21	
22# for cygwin
23tune86c: tune.c
24	nasm -f gnuwin32 timer.asm
25	$(CC) -DX86_TIMER $(CFLAGS) tune.c timer.o  $(LIBNAME) -o tune86
26
27#make tune86 for linux or any ELF format
28tune86l: tune.c
29	nasm -f elf -DUSE_ELF timer.asm
30	$(CC) -DX86_TIMER $(CFLAGS) tune.c timer.o $(LIBNAME) -o tune86l
31        
32# spits out mersenne primes
33mersenne: mersenne.o
34	$(CC) mersenne.o $(LIBNAME) -o mersenne
35
36# fines DR safe primes for the given config
37drprime: drprime.o
38	$(CC) drprime.o $(LIBNAME) -o drprime
39	
40# fines 2k safe primes for the given config
412kprime: 2kprime.o
42	$(CC) 2kprime.o $(LIBNAME) -o 2kprime
43
44mont: mont.o
45	$(CC) mont.o $(LIBNAME) -o mont
46
47        
48clean:
49	rm -f *.log *.o *.obj *.exe pprime tune mersenne drprime tune86 tune86l mont 2kprime pprime.dat \
50         *.da *.dyn *.dpi *~
51