1CC = icc
2
3CFLAGS += -I../
4
5# optimize for SPEED
6#
7# -mcpu= can be pentium, pentiumpro (covers PII through PIII) or pentium4
8# -ax?   specifies make code specifically for ? but compatible with IA-32
9# -x?    specifies compile solely for ? [not specifically IA-32 compatible]
10#
11# where ? is
12#   K - PIII
13#   W - first P4 [Williamette]
14#   N - P4 Northwood
15#   P - P4 Prescott
16#   B - Blend of P4 and PM [mobile]
17#
18# Default to just generic max opts
19CFLAGS += -O3 -xP -ip
20
21# default lib name (requires install with root)
22# LIBNAME=-ltommath
23
24# libname when you can't install the lib with install
25LIBNAME=../libtommath.a
26
27#provable primes
28pprime: pprime.o
29	$(CC) pprime.o $(LIBNAME) -o pprime
30
31# portable [well requires clock()] tuning app
32tune: tune.o
33	$(CC) tune.o $(LIBNAME) -o tune
34
35# same app but using RDTSC for higher precision [requires 80586+], coff based gcc installs [e.g. ming, cygwin, djgpp]
36tune86: tune.c
37	nasm -f coff timer.asm
38	$(CC) -DX86_TIMER $(CFLAGS) tune.c timer.o  $(LIBNAME) -o tune86
39
40# for cygwin
41tune86c: tune.c
42	nasm -f gnuwin32 timer.asm
43	$(CC) -DX86_TIMER $(CFLAGS) tune.c timer.o  $(LIBNAME) -o tune86
44
45#make tune86 for linux or any ELF format
46tune86l: tune.c
47	nasm -f elf -DUSE_ELF timer.asm
48	$(CC) -DX86_TIMER $(CFLAGS) tune.c timer.o $(LIBNAME) -o tune86l
49
50# spits out mersenne primes
51mersenne: mersenne.o
52	$(CC) mersenne.o $(LIBNAME) -o mersenne
53
54# fines DR safe primes for the given config
55drprime: drprime.o
56	$(CC) drprime.o $(LIBNAME) -o drprime
57
58# fines 2k safe primes for the given config
592kprime: 2kprime.o
60	$(CC) 2kprime.o $(LIBNAME) -o 2kprime
61
62mont: mont.o
63	$(CC) mont.o $(LIBNAME) -o mont
64
65
66clean:
67	rm -f *.log *.o *.obj *.exe pprime tune mersenne drprime tune86 tune86l mont 2kprime pprime.dat *.il
68