11
22CUR_DIR =$(shell pwd)
3- DIRS =util AddressUtil CmdParse CryptoUtil KeyFinderLib cudaDeviceContext cudaMath cudaUtil secp256k1lib Logger
3+ DIRS =util AddressUtil CmdParse CryptoUtil KeyFinderLib CLKeySearchDevice CudaKeySearchDevice cudaMath clUtil cudaUtil secp256k1lib Logger
44
55INCLUDE = $(foreach d, $(DIRS ) , -I$(CUR_DIR ) /$d)
66
@@ -10,17 +10,20 @@ LIBS+=-L$(LIBDIR)
1010
1111# C++ options
1212CXX =g++
13- CXXFLAGS =-O2
13+ CXXFLAGS =-O2 -std=c++11
1414
1515# CUDA variables
1616COMPUTE_CAP =30
1717NVCC =nvcc
18- NVCCFLAGS=-gencode=arch=compute_${COMPUTE_CAP},code =\"sm_${COMPUTE_CAP}\" -Xptxas="-v" -Xcompiler "${CXXFLAGS}"
18+ NVCCFLAGS=-std =c++11 - gencode=arch=compute_${COMPUTE_CAP},code=\"sm_${COMPUTE_CAP}\" -Xptxas="-v" -Xcompiler "${CXXFLAGS}"
1919CUDA_HOME =/usr/local/cuda-9.2
2020CUDA_LIB =${CUDA_HOME}/lib64
2121CUDA_INCLUDE =${CUDA_HOME}/include
2222CUDA_MATH =$(CUR_DIR ) /cudaMath
2323
24+ # OpenCL variables
25+ OPENCL_LIB =${CUDA_LIB}
26+ OPENCL_INCLUDE =${CUDA_INCLUDE}
2427
2528
2629export INCLUDE
@@ -34,8 +37,28 @@ export CXXFLAGS
3437export CUDA_LIB
3538export CUDA_INCLUDE
3639export CUDA_MATH
40+ export OPENCL_LIB
41+ export OPENCL_INCLUDE
42+ export BUILD_OPENCL
43+ export BUILD_CUDA
3744
38- all : dir_addressutil dir_cmdparse dir_cryptoutil dir_keyfinderlib dir_keyfinder dir_cudadevicecontext dir_cudautil dir_secp256k1lib dir_util dir_cudainfo dir_logger
45+ TARGETS =dir_addressutil dir_cmdparse dir_cryptoutil dir_keyfinderlib dir_keyfinder dir_cudautil dir_secp256k1lib dir_util dir_cudainfo dir_logger
46+
47+ ifeq ($(BUILD_CUDA ) ,1)
48+ TARGETS:=${TARGETS} dir_cudaKeySearchDevice dir_cudautil
49+ endif
50+
51+ ifeq ($(BUILD_OPENCL ) ,1)
52+ TARGETS:=${TARGETS} dir_clKeySearchDevice dir_clutil
53+ endif
54+
55+ all : ${TARGETS}
56+
57+ dir_cudaKeySearchDevice : dir_keyfinderlib dir_cudautil dir_logger
58+ make --directory CudaKeySearchDevice
59+
60+ dir_clKeySearchDevice : dir_keyfinderlib dir_clutil dir_logger
61+ make --directory CLKeySearchDevice
3962
4063dir_addressutil : dir_util dir_secp256k1lib dir_cryptoutil
4164 make --directory AddressUtil
@@ -46,18 +69,28 @@ dir_cmdparse:
4669dir_cryptoutil :
4770 make --directory CryptoUtil
4871
49- dir_keyfinderlib : dir_util dir_secp256k1lib dir_cryptoutil dir_addressutil dir_cudautil dir_cudadevicecontext dir_cudautil dir_logger
72+ dir_keyfinderlib : dir_util dir_secp256k1lib dir_cryptoutil dir_addressutil dir_logger
5073 make --directory KeyFinderLib
5174
52- dir_keyfinder : dir_keyfinderlib
53- make --directory KeyFinder
75+ KEYFINDER_DEPS =dir_keyfinderlib
76+
77+ ifeq ($(BUILD_CUDA ) , 1)
78+ KEYFINDER_DEPS:=$(KEYFINDER_DEPS) dir_cudaKeySearchDevice
79+ endif
5480
55- dir_cudadevicecontext :
56- make --directory cudaDeviceContext
81+ ifeq ($(BUILD_OPENCL ) ,1)
82+ KEYFINDER_DEPS:=$(KEYFINDER_DEPS) dir_clKeySearchDevice
83+ endif
84+
85+ dir_keyfinder : $(KEYFINDER_DEPS )
86+ make --directory KeyFinder
5787
5888dir_cudautil :
5989 make --directory cudaUtil
6090
91+ dir_clutil :
92+ make --directory clUtil
93+
6194dir_secp256k1lib : dir_cryptoutil
6295 make --directory secp256k1lib
6396
@@ -76,12 +109,14 @@ clean:
76109 make --directory CryptoUtil clean
77110 make --directory KeyFinderLib clean
78111 make --directory KeyFinder clean
79- make --directory cudaDeviceContext clean
80112 make --directory cudaUtil clean
81113 make --directory secp256k1lib clean
82114 make --directory util clean
83115 make --directory cudaInfo clean
84116 make --directory Logger clean
117+ make --directory clUtil clean
118+ make --directory CLKeySearchDevice clean
119+ make --directory CudaKeySearchDevice clean
85120
86121 rm -rf ${LIBDIR}
87122 rm -rf ${BINDIR}
0 commit comments