BOINC_LIB_DIR = $(BOINC_DIR)/lib
CC = g++
COMMON_LIB_DIR = /usr/lib
-INCLUDES = -I../../../Common/rt\ api -I$(BOINC_DIR) -I$(BOINC_LIB_DIR) -I$(BOINC_API_DIR) -I/usr/local/cuda/include
+CUDA_PATH = /usr/local/cuda
+CUDA_LIB = libcudart.so.2
+#CUDA_LIB = libcudart.so.3
+INCLUDES = -I../../../Common/rt\ api -I$(BOINC_DIR) -I$(BOINC_LIB_DIR) \
+ -I$(BOINC_API_DIR) -I$(CUDA_PATH)/include
COMMON_API_PATH = ../../../Common/rt\ api
OPTIMIZATION = -O3
-WARNALL = -Wextra -Wunused-macros -Wunsafe-loop-optimizations -Wundef -Woverlength-strings -Wdisabled-optimization -Wformat-extra-args -Wformat-security -Winline
+WARNALL = -Wextra -Wunused-macros -Wunsafe-loop-optimizations -Wundef \
+ -Woverlength-strings -Wdisabled-optimization -Wformat-extra-args \
+ -Wformat-security -Winline
-# -static -static-libgcc
-CXXFLAGS = -Wall -ansi -c -DBOINC $(INCLUDES) $(OPTIMIZATION) $(DEBUG)
+CXXFLAGS = -Wall -static -static-libgcc -ansi -c -DBOINC $(INCLUDES) \
+ $(OPTIMIZATION) $(DEBUG)
-# -static-libgcc
-LFLAGS = -Wall -ansi $(INCLUDES) $(OPTIMIZATION) -L$(BOINC_API_DIR) \
- -L$(BOINC_LIB_DIR) -L/usr/X11R6/lib -L/usr/lib -L/usr/local/cuda/lib64 -L/usr/local/cuda/lib -L. $(DEBUG)
+# -static
+LFLAGS = -Wall -static-libgcc -ansi $(INCLUDES) $(OPTIMIZATION) \
+ -L$(BOINC_API_DIR) -L$(BOINC_LIB_DIR) -L/usr/X11R6/lib -L/usr/lib \
+ -L$(CUDA_PATH)/lib64 -L$(CUDA_PATH)/lib -L. -Xlinker -rpath . \
+ $(DEBUG)
-LIBS = -lboinc_api -lboinc -lpthread -lssl -lcudart libstdc++.a $(COMMON_LIB_DIR)/libssl.a $(COMMON_LIB_DIR)/libpthread.a
-OBJS = ChainWalkContext.o des_enc.o des_setkey.o distrrtgen.o ecb_enc.o HashAlgorithm.o HashRoutine.o md4.o md5.o Public.o rcuda_ext.o rcuda.o
+LIBS = -lboinc_api -lboinc -lpthread -lcudart $(CUDA_LIB) libgcc_s.so.1 \
+ libstdc++.so.6 $(COMMON_LIB_DIR)/libpthread.a
+OBJS = ChainWalkContext.o des_enc.o des_setkey.o distrrtgen.o ecb_enc.o \
+ HashAlgorithm.o HashRoutine.o md4.o md5.o Public.o rcuda_ext.o rcuda.o
OSNAME = $(shell uname -s)
all: distrrtgen
-distrrtgen: libstdc++.a $(BOINC_API_DIR)/libboinc_api.a $(BOINC_LIB_DIR)/libboinc.a $(OBJS)
+distrrtgen: $(CUDA_LIB) libgcc_s.so.1 libstdc++.so.6 $(BOINC_API_DIR)/libboinc_api.a $(BOINC_LIB_DIR)/libboinc.a $(OBJS)
$(CXX) $(LFLAGS) $(OBJS) $(LIBS) -o distrrtgen
-libstdc++.a:
- ln -s `$(CC) $(CXXFLAGS) -print-file-name=libstdc++.a`
+$(CUDA_LIB):
+ ln -s $(CUDA_PATH)/lib64/$(CUDA_LIB) $(CUDA_LIB)
+
+libstdc++.so.6:
+ ln -s `$(CC) $(CXXFLAGS) -print-file-name=libstdc++.so.6`
+
+libgcc_s.so.1:
+ ln -s `$(CC) $(CXXFLAGS) -print-file-name=libgcc_s.so.1`
clean:
/bin/rm -f distrrtgen *.o
debugall: all
distclean:
- /bin/rm -f distrrtgen *.o libstdc++.a
-
-m32: DEBUG += -m32
-m32: all
+ /bin/rm -f distrrtgen *.o $(CUDA_LIB) libgcc_s.so.1 libstdc++.so.6
rebuild: clean all
$(CXX) $(CXXFLAGS) rcuda_ext.cpp
rcuda.o: rcuda.h rcuda.cu $(COMMON_API_PATH)/Public.h $(COMMON_API_PATH)/global.h
- /usr/local/cuda/bin/nvcc -I../../../Common/rt\ api --compile rcuda.cu
-# /usr/local/cuda/bin/nvcc --machine 32 -I../../../Common/rt\ api --compile rcuda.cu
+ $(CUDA_PATH)/bin/nvcc $(OPTIMIZATION) $(DEBUG) -I../../../Common/rt\ api --compile rcuda.cu
+# $(CUDA_PATH)/bin/nvcc -G $(DEBUG) --machine 32 -I../../../Common/rt\ api --compile rcuda.cu