forked from JJChiDguez/csidh
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
70 lines (53 loc) · 2.3 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# INCLUDE FOLDER
INC_DIR+= -I./inc -I./inc/fp$(BITLENGTH_OF_P)/
# REQUIRED FOR LIB
FILES_REQUIRED_IN_LIB=./lib/rng.c \
./lib/fp$(BITLENGTH_OF_P).S \
./lib/point_arith.c ./lib/isogenies.c \
./lib/action_simba_$(shell echo $(TYPE) | tr A-Z a-z).c
# REQUIRED FOR TESTS
FILES_REQUIRED_IN_CSIDH=./lib/rng.c \
./lib/fp$(BITLENGTH_OF_P).S \
./lib/point_arith.c ./lib/isogenies.c \
./lib/action_simba_$(shell echo $(TYPE) | tr A-Z a-z).c \
./main/csidh.c
OUTPUT_CSIDH=./bin/csidh
CFLAGS_CSIDH=-O3 -funroll-loops -fomit-frame-pointer -m64 -mbmi2 -DFP_$(BITLENGTH_OF_P) -D$(TYPE)
# REQUIRED FOR COSTS
FILES_REQUIRED_IN_ACTION=./lib/rng.c \
./lib/fp$(BITLENGTH_OF_P).S \
./lib/point_arith.c ./lib/isogenies.c \
./lib/action_simba_$(shell echo $(TYPE) | tr A-Z a-z).c \
./main/action_cost.c
OUTPUT_ACTION=./bin/action_cost
CFLAGS_ACTION=-O3 -funroll-loops -fomit-frame-pointer -m64 -mbmi2 -DFP_$(BITLENGTH_OF_P) -D$(TYPE) -lm
# REQUIRED FOR CLOCK CYCLES
FILES_REQUIRED_IN_ACTION_CC=./lib/rng.c \
./lib/fp$(BITLENGTH_OF_P).S \
./lib/point_arith.c ./lib/isogenies.c \
./lib/action_simba_$(shell echo $(TYPE) | tr A-Z a-z).c \
./main/action_timing.c
OUTPUT_ACTION_CC=./bin/action_timing
CFLAGS_ACTION_CC=-O3 -funroll-loops -fomit-frame-pointer -m64 -mbmi2 -DFP_$(BITLENGTH_OF_P) -D$(TYPE) -lm
# GLOBAL FLAGS
CFLAGS_ALWAYS=
# COMPILER
CC=gcc
help:
@echo "\nusage: make csidh BITLENGTH_OF_P=[512] TYPE=[WITHDUMMY_1/WITHDUMMY_2/DUMMYFREE]"
@echo "usage: make action_cost BITLENGTH_OF_P=[512] TYPE=[WITHDUMMY_1/WITHDUMMY_2/DUMMYFREE]"
@echo "usage: make action_timing BITLENGTH_OF_P=[512] TYPE=[WITHDUMMY_1/WITHDUMMY_2/DUMMYFREE]"
@echo "usage: make clean\n"
@echo "In addition, you can use an specific compiler by setting the variable CC with the "
@echo "compiler name.\n\t\tCC=[any version of gcc compiler]"
csidh:
$(CC) $(INC_DIR) $(FILES_REQUIRED_IN_CSIDH) -o $(OUTPUT_CSIDH) $(CFLAGS_CSIDH) $(CFLAGS_ALWAYS)
action_cost:
$(CC) $(INC_DIR) $(FILES_REQUIRED_IN_ACTION) -o $(OUTPUT_ACTION) $(CFLAGS_ACTION) $(CFLAGS_ALWAYS)
action_timing:
$(CC) $(INC_DIR) $(FILES_REQUIRED_IN_ACTION_CC) -o $(OUTPUT_ACTION_CC) $(CFLAGS_ACTION_CC) $(CFLAGS_ALWAYS)
lib: csidh
$(CC) -c $(INC_DIR) $(FILES_REQUIRED_IN_LIB) $(CFLAGS_ALWAYS) $(CFLAGS_CSIDH)
ar rcs libcsidh_$(BITLENGTH_OF_P).a *.o
clean:
rm -f ./bin/*