]> git.sesse.net Git - freerainbowtables/blob - BOINC software/BOINC client apps/distrrtgen_cuda/Makefile.linux_i686
backport rcracki_mt trunk from rcracki.sourceforge.net
[freerainbowtables] / BOINC software / BOINC client apps / distrrtgen_cuda / Makefile.linux_i686
1 # freerainbowtables is a project for generating, distributing, and using
2 # perfect rainbow tables
3 #
4 # Copyright (C) Zhu Shuanglei <shuanglei@hotmail.com>
5 # Copyright 2010 Martin Westergaard Jørgensen <martinwj2005@gmail.com>
6 # Copyright 2009, 2010 Daniël Niggebrugge <niggebrugge@fox-it.com>
7 # Copyright 2009, 2010 James Nobis <frt@quelrod.net>
8 #
9 # This file is part of freerainbowtables.
10 #
11 # freerainbowtables is free software: you can redistribute it and/or modify
12 # it under the terms of the GNU General Public License as published by
13 # the Free Software Foundation, either version 2 of the License, or
14 # (at your option) any later version.
15 #
16 # freerainbowtables is distributed in the hope that it will be useful,
17 # but WITHOUT ANY WARRANTY; without even the implied warranty of
18 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19 # GNU General Public License for more details.
20 #
21 # You should have received a copy of the GNU General Public License
22 # along with freerainbowtables.  If not, see <http://www.gnu.org/licenses/>.
23
24 SHELL = /bin/sh
25
26 #BOINC_DIR = /home/ubuntu/boinc
27 BOINC_DIR = /usr/share/boinc-dev
28 BOINC_API_DIR = $(BOINC_DIR)/api
29 BOINC_LIB_DIR = $(BOINC_DIR)/lib
30 CC = g++
31 COMMON_LIB_DIR = /usr/lib
32 # ending for libcudart
33 CUDA_LIB = so.2
34 #CUDA_LIB = so.3
35 CUDA_PATH = /usr/local/cuda
36 CUDA_VERSION = cuda__23
37 #CUDA_VERSION = cuda__30
38 #CUDA_VERSION = cuda__32
39 PLATFORM = i686-pc-linux-gnu
40 VERSION = 3.11
41 INCLUDES = -I../../../Common/rt\ api -I$(BOINC_DIR) -I$(BOINC_LIB_DIR) \
42         -I$(BOINC_API_DIR) -I$(CUDA_PATH)/include
43 COMMON_API_PATH = ../../../Common/rt\ api
44
45 OPTIMIZATION = -O3
46 WARNALL = -Wextra -Wunused-macros -Wunsafe-loop-optimizations -Wundef \
47         -Woverlength-strings -Wdisabled-optimization -Wformat-extra-args \
48         -Wformat-security -Winline
49
50 CXXFLAGS = -Wall -static -static-libgcc -ansi -c -DBOINC $(INCLUDES) \
51         $(OPTIMIZATION) $(DEBUG)
52
53 # -static
54 LFLAGS = -Wall -static-libgcc -ansi $(INCLUDES) $(OPTIMIZATION) \
55         -L$(BOINC_API_DIR) -L$(BOINC_LIB_DIR) -L/usr/X11R6/lib -L/usr/lib \
56         -L$(CUDA_PATH)/lib -L. -Xlinker -rpath . $(DEBUG)
57
58 LIBS = -lboinc_api -lboinc -lpthread -lcudart \
59         libcudart.$(CUDA_LIB)=libcudart_$(VERSION)_$(PLATFORM)_$(CUDA_VERSION).$(CUDA_LIB) \
60         libgcc_s.so.1=libgcc_s_$(VERSION)_$(PLATFORM)_$(CUDA_VERSION).so.1 \
61         libstdc++.so.6=libstdc++_$(VERSION)_$(PLATFORM)_$(CUDA_VERSION).so.6 \
62         $(COMMON_LIB_DIR)/libpthread.a
63 OBJS = ChainWalkContext.o des_enc.o des_setkey.o distrrtgen.o ecb_enc.o \
64         HashAlgorithm.o HashRoutine.o md4.o md5.o Public.o rcuda_ext.o rcuda.o
65
66 OSNAME = $(shell uname -s)
67
68 all: distrrtgen
69
70 distrrtgen: libcudart_$(PLATFORM).$(CUDA_LIB) \
71         libgcc_s_$(PLATFORM).so.1 libstdc++_$(PLATFORM).so.6 \
72         $(BOINC_API_DIR)/libboinc_api.a $(BOINC_LIB_DIR)/libboinc.a $(OBJS)
73         $(CXX) $(LFLAGS) $(OBJS) $(LIBS) -o distrrtgen
74
75 libcudart_$(PLATFORM).$(CUDA_LIB):
76         ln -s $(CUDA_PATH)/lib/libcudart.$(CUDA_LIB) \
77                 libcudart.$(CUDA_LIB)=libcudart_$(VERSION)_$(PLATFORM)_$(CUDA_VERSION).$(CUDA_LIB)
78         echo -n "<copy_file/>" > libcudart.$(CUDA_LIB)=libcudart_$(VERSION)_$(PLATFORM)_$(CUDA_VERSION).$(CUDA_LIB).file_ref_info
79
80 libstdc++_$(PLATFORM).so.6:
81         ln -s `$(CC) $(CXXFLAGS) -print-file-name=libstdc++.so.6` \
82                 libstdc++.so.6=libstdc++_$(VERSION)_$(PLATFORM)_$(CUDA_VERSION).so.6
83         echo -n "<copy_file/>" > libstdc++.so.6=libstdc++_$(VERSION)_$(PLATFORM)_$(CUDA_VERSION).so.6.file_ref_info
84
85 libgcc_s_$(PLATFORM).so.1:
86         ln -s `$(CC) $(CXXFLAGS) -print-file-name=libgcc_s.so.1` \
87                 libgcc_s.so.1=libgcc_s_$(VERSION)_$(PLATFORM)_$(CUDA_VERSION).so.1
88         echo -n "<copy_file/>" > libgcc_s.so.1=libgcc_s_$(VERSION)_$(PLATFORM)_$(CUDA_VERSION).so.1.file_ref_info
89
90 clean:
91         /bin/rm -f distrrtgen *.o
92
93 debug: DEBUG += -DDEBUG -g
94 debug: all
95
96 debugall: DEBUG += -DDEBUG -g $(WARNALL)
97 debugall: all
98
99 distclean:
100         /bin/rm -f distrrtgen *.o \
101                 libgcc_s.so.1=libgcc_s_$(VERSION)_$(PLATFORM)_$(CUDA_VERSION).so.1 \
102                 libstdc++.so.6=libstdc++_$(VERSION)_$(PLATFORM)_$(CUDA_VERSION).so.6 \
103                 libcudart.$(CUDA_LIB)=libcudart_$(VERSION)_$(PLATFORM)_$(CUDA_VERSION).$(CUDA_LIB) \
104                 libgcc_s.so.1=libgcc_s_$(VERSION)_$(PLATFORM)_$(CUDA_VERSION).so.1.file_ref_info \
105                 libstdc++.so.6=libstdc++_$(VERSION)_$(PLATFORM)_$(CUDA_VERSION).so.6.file_ref_info \
106                 libcudart.$(CUDA_LIB)=libcudart_$(VERSION)_$(PLATFORM)_$(CUDA_VERSION).$(CUDA_LIB).file_ref_info
107
108 rebuild: clean all
109
110 ChainWalkContext.o: $(COMMON_API_PATH)/ChainWalkContext.h $(COMMON_API_PATH)/ChainWalkContext.cpp $(COMMON_API_PATH)/HashRoutine.h $(COMMON_API_PATH)/Public.h
111         $(CXX) $(CXXFLAGS) $(COMMON_API_PATH)/ChainWalkContext.cpp
112
113 des_enc.o: $(COMMON_API_PATH)/des_enc.c $(COMMON_API_PATH)/des_locl.h $(COMMON_API_PATH)/spr.h
114         $(CXX) $(CXXFLAGS) $(COMMON_API_PATH)/des_enc.c
115
116 des_setkey.o: $(COMMON_API_PATH)/des_setkey.c $(COMMON_API_PATH)/des_locl.h $(COMMON_API_PATH)/podd.h $(COMMON_API_PATH)/sk.h
117         $(CXX) $(CXXFLAGS) $(COMMON_API_PATH)/des_setkey.c
118
119 distrrtgen.o: distrrtgen.cpp distrrtgen.h $(COMMON_API_PATH)/ChainWalkContext.h $(COMMON_API_PATH)/Public.h
120         $(CXX) $(CXXFLAGS) distrrtgen.cpp
121
122 ecb_enc.o: $(COMMON_API_PATH)/ecb_enc.c $(COMMON_API_PATH)/des_locl.h $(COMMON_API_PATH)/spr.h
123         $(CXX) $(CXXFLAGS) $(COMMON_API_PATH)/ecb_enc.c
124
125 HashAlgorithm.o: $(COMMON_API_PATH)/HashAlgorithm.h $(COMMON_API_PATH)/HashAlgorithm.cpp $(COMMON_API_PATH)/Public.h $(COMMON_API_PATH)/md4.h 
126         $(CXX) $(CXXFLAGS) $(COMMON_API_PATH)/HashAlgorithm.cpp
127
128 HashRoutine.o: $(COMMON_API_PATH)/HashRoutine.h $(COMMON_API_PATH)/HashRoutine.cpp $(COMMON_API_PATH)/global.h $(COMMON_API_PATH)/HashAlgorithm.h
129         $(CXX) $(CXXFLAGS) $(COMMON_API_PATH)/HashRoutine.cpp
130
131 md4.o: $(COMMON_API_PATH)/md4.h $(COMMON_API_PATH)/md4.cpp $(COMMON_API_PATH)/global.h
132         $(CXX) $(CXXFLAGS) $(COMMON_API_PATH)/md4.cpp
133
134 md5.o: $(COMMON_API_PATH)/md5.h $(COMMON_API_PATH)/md5.cpp $(COMMON_API_PATH)/global.h
135         $(CXX) $(CXXFLAGS) $(COMMON_API_PATH)/md5.cpp
136
137 Public.o: $(COMMON_API_PATH)/Public.h $(COMMON_API_PATH)/Public.cpp $(COMMON_API_PATH)/global.h
138         $(CXX) $(CXXFLAGS) $(COMMON_API_PATH)/Public.cpp
139
140 rcuda_ext.o: rcuda_ext.h rcuda_ext.cpp $(COMMON_API_PATH)/ChainWalkContext.h
141         $(CXX) $(CXXFLAGS) rcuda_ext.cpp
142
143 rcuda.o: rcuda.h rcuda.cu $(COMMON_API_PATH)/Public.h $(COMMON_API_PATH)/global.h
144         $(CUDA_PATH)/bin/nvcc $(OPTIMIZATION) $(DEBUG) --machine 32 -I../../../Common/rt\ api --compile rcuda.cu
145 #       $(CUDA_PATH)/bin/nvcc -G $(DEBUG) --machine 32 -I../../../Common/rt\ api --compile rcuda.cu