-
Notifications
You must be signed in to change notification settings - Fork 1
/
Makefile
75 lines (56 loc) · 2.09 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
69
70
71
72
73
74
75
# Copyright 2020 Seth Troisi
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
OBJS = gap_common.o modulo_search.o gap_test_common.o
OUT = combined_sieve gap_stats gap_test_simple benchmark benchmark_google
CC = g++
CFLAGS = -Wall -Werror -O3
NVCC = nvcc
CUDA_FLAGS = -Xcompiler -Wall -Xcompiler -Werror -O3
BITS = 1024
LDFLAGS = -lgmp -lsqlite3 -fopenmp
# Need for local gmp / primesieve
LDFLAGS+= -L /usr/local/lib
DEFINES =
ifdef VALIDATE_FACTORS
DEFINES += -DGMP_VALIDATE_FACTORS
endif
ifdef VALIDATE_LARGE
DEFINES += -DGMP_VALIDATE_LARGE_FACTORS
endif
%.o: %.cpp
$(CC) -c -o $@ $< $(CFLAGS) $(DEFINES)
%_cuda.o: %.cpp
$(NVCC) -c -o $@ $< $(CUDA_FLAGS) $(DEFINES)
all: $(OUT)
#$(PROGS) : %: %.cpp $(OBJS)
# $(CC) -o $@ $^ $(CFLAGS) $(LDFLAGS) $(DEFINES)
combined_sieve: combined_sieve.cpp $(OBJS)
$(CC) -o $@ $^ $(CFLAGS) -lprimesieve $(LDFLAGS) $(DEFINES)
gap_stats: gap_stats.cpp gap_common.o
$(CC) -o $@ $^ $(CFLAGS) $(LDFLAGS)
gap_test_simple: gap_test_simple.cpp gap_common.o gap_test_common.o
$(CC) -o $@ $^ $(CFLAGS) $(LDFLAGS)
gap_test_gpu: gap_test_gpu.cu miller_rabin.h gap_common_cuda.o gap_test_common_cuda.o
nvcc -o $@ -I../CGBN/include \
-DGPU_BITS=$(BITS) \
$(filter-out miller_rabin.h, $^) \
-arch=sm_61 $(CUDA_FLAGS) \
$(filter-out -fopenmp, $(LDFLAGS))
benchmark: misc/benchmark.cpp modulo_search.o
$(CC) -o $@ $^ $(CFLAGS) -lprimesieve $(LDFLAGS) -I.
benchmark_google: misc/benchmark_google.cpp modulo_search.o
$(CC) -o $@ $^ $(CFLAGS) -std=c++14 -lprimesieve -lbenchmark -lpthread -I.
.PHONY: clean
clean:
rm -f $(OBJS) $(OUT) gap_test_gpu gap_common_cuda.o gap_test_common_cuda.o