-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmakefile
More file actions
93 lines (77 loc) · 2.71 KB
/
Copy pathmakefile
File metadata and controls
93 lines (77 loc) · 2.71 KB
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
OUT := sabaton.exe
CLEAN := rm -f sabaton sabaton.exe && rm -rf build
MKDIR := mkdir -p
BUILD := build
CC := gcc
NVCC := nvcc
CUDA ?= 0
CFLAGS_COMMON = -O3 -march=native -mtune=native -ffast-math -funroll-loops \
-fomit-frame-pointer -fno-asynchronous-unwind-tables -fno-unwind-tables
CFLAGS = $(CFLAGS_COMMON)
NVCCFLAGS = -O3
ifeq ($(CUDA),1)
CFLAGS += -DUSE_CUDA
NVCCFLAGS += -DUSE_CUDA
endif
C_SOURCES = \
./main.c \
./internals/hash.c \
./internals/cyphers/affineCaesar.c ./internals/cyphers/enigma.c \
./internals/cyphers/aes.c ./internals/cyphers/feistel.c \
./internals/cyphers/block.c ./internals/cyphers/hill.c \
./internals/cyphers/scytale.c ./internals/cyphers/transposition.c \
./internals/cyphers/vigenere.c \
./internals/hashes/crc32.c ./internals/hashes/murmur3.c \
./internals/hashes/sha1.c ./internals/hashes/sha256.c \
./internals/hashes/xxhash32.c ./internals/enhancements/lith/lithuanian.c \
./internals/cyphers/bifid.c ./internals/cyphers/fleissner.c \
./internals/cyphers/stream.c ./internals/cyphers/stattests.c \
./internals/cyphers/knapsack.c ./internals/cyphers/merkle.c ./internals/cyphers/graham.c \
./internals/cyphers/rsa.c ./util/bigint.c \
./internals/cyphers/elgamal.c ./internals/cyphers/elliptic.c ./internals/cyphers/rabin.c \
./internals/cyphers/zkp.c ./internals/cyphers/shamir.c ./internals/cyphers/asmuth.c \
./internals/cyphers/a5.c \
C_OBJECTS = $(patsubst ./%.c,$(BUILD)/%.o,$(C_SOURCES))
ifeq ($(CUDA),1)
CU_SOURCES = \
./internals/enhancements/cuda/feistel.cu \
./internals/enhancements/cuda/entry.cu \
./internals/enhancements/cuda/stream.cu \
./internals/enhancements/cuda/rsa_rabin.cu \
./internals/enhancements/cuda/knapsack.cu \
./internals/enhancements/cuda/aes.cu \
./internals/enhancements/cuda/secret_sharing.cu \
./internals/enhancements/cuda/elliptic_elgamal.cu \
./internals/enhancements/cuda/blum_goldwasser.cu \
./internals/enhancements/cuda/a5.cu \
./internals/enhancements/cuda/block.cu
CU_OBJECTS = $(patsubst ./%.cu,$(BUILD)/%.o,$(CU_SOURCES))
OBJECTS = $(C_OBJECTS) $(CU_OBJECTS)
else
OBJECTS = $(C_OBJECTS)
endif
all: $(OUT)
$(BUILD):
$(MKDIR) $(BUILD)
$(MKDIR) $(BUILD)/internals
$(MKDIR) $(BUILD)/internals/cyphers
$(MKDIR) $(BUILD)/internals/hashes
$(MKDIR) $(BUILD)/util
$(MKDIR) $(BUILD)/internals/enhancements
$(MKDIR) $(BUILD)/internals/enhancements/lith
$(MKDIR) $(BUILD)/internals/enhancements/cuda
$(BUILD)/%.o: ./%.c | $(BUILD)
$(CC) $(CFLAGS) -c $< -o $@
ifeq ($(CUDA),1)
$(BUILD)/%.o: ./%.cu | $(BUILD)
$(NVCC) $(NVCCFLAGS) -c $< -o $@
endif
ifeq ($(CUDA),1)
$(OUT): $(OBJECTS)
$(NVCC) $(NVCCFLAGS) $(OBJECTS) -lm -o $(OUT)
else
$(OUT): $(OBJECTS)
$(CC) $(CFLAGS) $(OBJECTS) -lm -o $(OUT)
endif
clean:
$(CLEAN)