Makefile 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526
  1. ##
  2. ## Author......: Jens Steube <jens.steube@gmail.com>
  3. ## License.....: MIT
  4. ##
  5. ##
  6. ## Makefile for hashcat
  7. ##
  8. ##
  9. ## Detect number of processors
  10. ##
  11. NPROCS := 1
  12. OS := $(shell uname)
  13. ifeq ($(OS),Linux)
  14. NPROCS := $(shell grep -c ^processor /proc/cpuinfo)
  15. else ifeq ($(OS),Darwin)
  16. NPROCS := $(shell system_profiler | awk '/Number of CPUs/ {print $$4}{next;}')
  17. endif
  18. ##
  19. ## Makefile flags
  20. ##
  21. MAKEFLAGS += -l -j $(NPROCS) -rR --no-print-directory
  22. ifneq ($(findstring clean,$(MAKECMDGOALS)),)
  23. MAKEFLAGS += -j 1
  24. endif
  25. # -mstackrealign is required otherwise crashes on windows xp, see hashcat v0.41 and v0.42
  26. CFLAGS := -W -Wall -pipe -I include/ -O2 -s -fomit-frame-pointer -funroll-loops
  27. #CFLAGS := -W -Wall -pipe -I include/ -g
  28. LDFLAGS :=
  29. all: binaries
  30. clean:
  31. rm -rf core out word hash release obj/* hashcat.pot hashcat-cli*
  32. binaries: linux windows osx
  33. osx: osx64
  34. #linux: posix32 posix64 posixAVX posixAVX2 posixXOP
  35. #windows: windows32 windows64 windowsAVX windowsAVX2 windowsXOP
  36. linux: posix32 posix64 posixXOP
  37. windows: windows32 windows64 windowsXOP
  38. release:
  39. rm -rf release
  40. mkdir release
  41. cp -a charsets docs rules tables salts examples hashcat-cli*.bin hashcat-cli*.exe hashcat-cli64.app release/
  42. find release -type f -exec chmod 600 {} \;
  43. find release -type d -exec chmod 700 {} \;
  44. chmod 700 release/*.bin
  45. chmod 700 release/*.app
  46. unix2dos release/salts/*
  47. unix2dos release/rules/*
  48. unix2dos release/tables/*
  49. unix2dos release/docs/*
  50. unix2dos release/examples/*
  51. ##
  52. ## OSX64
  53. ##
  54. DIR_OSX64 = obj
  55. CC_OSX64 = i686-apple-darwin10-gcc
  56. LIBGMP_OSX64 = /opt/hashcat-deps/gmp/osx64
  57. CFLAGS_OSX64 = $(CFLAGS) -I$(LIBGMP_OSX64)/include -D__HC_x86_64__ -DPOSIX -DOSX -m64 -msse2 -fnested-functions -arch x86_64 -mmacosx-version-min=10.5
  58. LDFLAGS_OSX64 = $(LDFLAGS) -L$(LIBGMP_OSX64)/lib -lm -lpthread -mmacosx-version-min=10.5 -lgmp
  59. osx64: hashcat-cli64.app
  60. rules-osx64: rules-debug64.app
  61. rules-debug64.app: $(DIR_OSX64)/rp.OSX.64.o src/rules-debug.c
  62. $(CC_OSX64) $(filter-out -s,$(CFLAGS_OSX64)) $(DIR_OSX64)/*.OSX.64.o src/rules-debug.c -o rules-debug64.app $(LDFLAGS_OSX64)
  63. hashcat-osx64: hashcat-cli64.app
  64. hashcat-cli64.app: $(DIR_OSX64)/tsearch.OSX.64.o $(DIR_OSX64)/rp.OSX.64.o $(DIR_OSX64)/engine.OSX.64.o src/hashcat-cli.c
  65. $(CC_OSX64) $(filter-out -s,$(CFLAGS_OSX64)) $(DIR_OSX64)/*.OSX.64.o src/hashcat-cli.c -o hashcat-cli64.app $(LDFLAGS_OSX64)
  66. engine-osx64: $(DIR_OSX64)/engine.OSX.64.o
  67. $(DIR_OSX64)/engine.OSX.64.o: $(DIR_OSX64)/common.OSX.64.o src/engine.c
  68. $(CC_OSX64) $(CFLAGS_OSX64) -c src/engine.c -o $(DIR_OSX64)/engine.OSX.64.o
  69. rp-osx64: $(DIR_OSX64)/rp.OSX.64.o
  70. $(DIR_OSX64)/rp.OSX.64.o: $(DIR_OSX64)/common.OSX.64.o src/rp.c
  71. $(CC_OSX64) $(CFLAGS_OSX64) -c src/rp.c -o $(DIR_OSX64)/rp.OSX.64.o
  72. tsearch-osx64: $(DIR_OSX64)/tsearch.OSX.64.o
  73. $(DIR_OSX64)/tsearch.OSX.64.o: $(DIR_OSX64)/common.OSX.64.o src/tsearch.c
  74. $(CC_OSX64) $(CFLAGS_OSX64) -c src/tsearch.c -o $(DIR_OSX64)/tsearch.OSX.64.o
  75. common-osx64: $(DIR_OSX64)/common.OSX.64.o
  76. $(DIR_OSX64)/common.OSX.64.o: src/common.c
  77. $(CC_OSX64) $(CFLAGS_OSX64) -c src/common.c -o $(DIR_OSX64)/common.OSX.64.o
  78. ##
  79. ## POSIX32
  80. ##
  81. DIR_POSIX32 = obj
  82. LIBGMP_POSIX32 = /opt/hashcat-deps/gmp/linux32
  83. CC_POSIX32 = gcc
  84. CFLAGS_POSIX32 = $(CFLAGS) -I$(LIBGMP_POSIX32)/include -D__HC_x86_32__ -DPOSIX -m32 -msse2
  85. LDFLAGS_POSIX32 = $(LDFLAGS) -L$(LIBGMP_POSIX32)/lib -lm -lpthread -lgmp
  86. posix32: hashcat-cli32.bin
  87. rules-posix32: rules-debug32.bin
  88. rules-debug32.bin: $(DIR_POSIX32)/rp.LINUX.32.o src/rules-debug.c
  89. $(CC_POSIX32) $(CFLAGS_POSIX32) $(DIR_POSIX32)/*.LINUX.32.o src/rules-debug.c -o rules-debug32.bin $(LDFLAGS_POSIX32)
  90. hashcat-posix32: hashcat-cli32.bin
  91. hashcat-cli32.bin: $(DIR_POSIX32)/tsearch.LINUX.32.o $(DIR_POSIX32)/rp.LINUX.32.o $(DIR_POSIX32)/engine.LINUX.32.o src/hashcat-cli.c
  92. $(CC_POSIX32) $(CFLAGS_POSIX32) $(DIR_POSIX32)/*.LINUX.32.o src/hashcat-cli.c -o hashcat-cli32.bin $(LDFLAGS_POSIX32)
  93. engine-posix32: $(DIR_POSIX32)/engine.LINUX.32.o
  94. $(DIR_POSIX32)/engine.LINUX.32.o: $(DIR_POSIX32)/common.LINUX.32.o src/engine.c
  95. $(CC_POSIX32) $(CFLAGS_POSIX32) -c src/engine.c -o $(DIR_POSIX32)/engine.LINUX.32.o
  96. rp-posix32: $(DIR_POSIX32)/rp.LINUX.32.o
  97. $(DIR_POSIX32)/rp.LINUX.32.o: $(DIR_POSIX32)/common.LINUX.32.o src/rp.c
  98. $(CC_POSIX32) $(CFLAGS_POSIX32) -c src/rp.c -o $(DIR_POSIX32)/rp.LINUX.32.o
  99. tsearch-posix32: $(DIR_POSIX32)/tsearch.LINUX.32.o
  100. $(DIR_POSIX32)/tsearch.LINUX.32.o: $(DIR_POSIX32)/common.LINUX.32.o src/tsearch.c
  101. $(CC_POSIX32) $(CFLAGS_POSIX32) -c src/tsearch.c -o $(DIR_POSIX32)/tsearch.LINUX.32.o
  102. common-posix32: $(DIR_POSIX32)/common.LINUX.32.o
  103. $(DIR_POSIX32)/common.LINUX.32.o: src/common.c
  104. $(CC_POSIX32) $(CFLAGS_POSIX32) -c src/common.c -o $(DIR_POSIX32)/common.LINUX.32.o
  105. ##
  106. ## POSIX64
  107. ##
  108. DIR_POSIX64 = obj
  109. LIBGMP_POSIX64 = /opt/hashcat-deps/gmp/linux64
  110. CC_POSIX64 = gcc
  111. CFLAGS_POSIX64 = $(CFLAGS) -I$(LIBGMP_POSIX64)/include -D__HC_x86_64__ -DPOSIX -m64 -msse2
  112. LDFLAGS_POSIX64 = $(LDFLAGS) -L$(LIBGMP_POSIX64)/lib -lm -lpthread -lgmp
  113. posix64: hashcat-cli64.bin
  114. rules-posix64: $(DIR_POSIX64)/rp.LINUX.64.o
  115. rules-debug64.bin: $(DIR_POSIX64)/rp.LINUX.64.o src/rules-debug.c
  116. $(CC_POSIX64) $(CFLAGS_POSIX64) $(DIR_POSIX64)/*.LINUX.64.o src/rules-debug.c -o rules-debug64.bin $(LDFLAGS_POSIX64)
  117. hashcat-posix64: hashcat-cli64.bin
  118. hashcat-cli64.bin: $(DIR_POSIX64)/tsearch.LINUX.64.o $(DIR_POSIX64)/rp.LINUX.64.o $(DIR_POSIX64)/engine.LINUX.64.o src/hashcat-cli.c
  119. $(CC_POSIX64) $(CFLAGS_POSIX64) $(DIR_POSIX64)/*.LINUX.64.o src/hashcat-cli.c -o hashcat-cli64.bin $(LDFLAGS_POSIX64)
  120. engine-posix64: $(DIR_POSIX64)/engine.LINUX.64.o
  121. $(DIR_POSIX64)/engine.LINUX.64.o: $(DIR_POSIX64)/common.LINUX.64.o src/engine.c
  122. $(CC_POSIX64) $(CFLAGS_POSIX64) -c src/engine.c -o $(DIR_POSIX64)/engine.LINUX.64.o
  123. rp-posix64: $(DIR_POSIX64)/rp.LINUX.64.o
  124. $(DIR_POSIX64)/rp.LINUX.64.o: $(DIR_POSIX64)/common.LINUX.64.o src/rp.c
  125. $(CC_POSIX64) $(CFLAGS_POSIX64) -c src/rp.c -o $(DIR_POSIX64)/rp.LINUX.64.o
  126. tsearch-posix64: $(DIR_POSIX64)/tsearch.LINUX.64.o
  127. $(DIR_POSIX64)/tsearch.LINUX.64.o: $(DIR_POSIX64)/common.LINUX.64.o src/tsearch.c
  128. $(CC_POSIX64) $(CFLAGS_POSIX64) -c src/tsearch.c -o $(DIR_POSIX64)/tsearch.LINUX.64.o
  129. common-posix64: $(DIR_POSIX64)/common.LINUX.64.o
  130. $(DIR_POSIX64)/common.LINUX.64.o: src/common.c
  131. $(CC_POSIX64) $(CFLAGS_POSIX64) -c src/common.c -o $(DIR_POSIX64)/common.LINUX.64.o
  132. ##
  133. ## POSIXAVX
  134. ##
  135. DIR_POSIXAVX = obj
  136. LIBGMP_POSIXAVX = /opt/hashcat-deps/gmp/linux64
  137. CC_POSIXAVX = gcc
  138. CFLAGS_POSIXAVX = $(CFLAGS) -I$(LIBGMP_POSIXAVX)/include -D__HC_AVX__ -DPOSIX -m64 -mavx
  139. LDFLAGS_POSIXAVX = $(LDFLAGS) -L$(LIBGMP_POSIXAVX)/lib -lm -lpthread -lgmp
  140. posixAVX: hashcat-cliAVX.bin
  141. rules-posixAVX: rules-debugAVX.bin
  142. rules-debugAVX.bin: $(DIR_POSIXAVX)/rp.LINUX.AVX.o src/rules-debug.c
  143. $(CC_POSIXAVX) $(CFLAGS_POSIXAVX) $(DIR_POSIXAVX)/*.LINUX.AVX.o src/rules-debug.c -o rules-debugAVX.bin $(LDFLAGS_POSIXAVX)
  144. hashcat-posixAVX: hashcat-cliAVX.bin
  145. hashcat-cliAVX.bin: $(DIR_POSIXAVX)/tsearch.LINUX.AVX.o $(DIR_POSIXAVX)/rp.LINUX.AVX.o $(DIR_POSIXAVX)/engine.LINUX.AVX.o src/hashcat-cli.c
  146. $(CC_POSIXAVX) $(CFLAGS_POSIXAVX) $(DIR_POSIXAVX)/*.LINUX.AVX.o src/hashcat-cli.c -o hashcat-cliAVX.bin $(LDFLAGS_POSIXAVX)
  147. engine-posixAVX: $(DIR_POSIXAVX)/engine.LINUX.AVX.o
  148. $(DIR_POSIXAVX)/engine.LINUX.AVX.o: $(DIR_POSIXAVX)/common.LINUX.AVX.o src/engine.c
  149. $(CC_POSIXAVX) $(CFLAGS_POSIXAVX) -c src/engine.c -o $(DIR_POSIXAVX)/engine.LINUX.AVX.o
  150. rp-posixAVX: $(DIR_POSIXAVX)/rp.LINUX.AVX.o
  151. $(DIR_POSIXAVX)/rp.LINUX.AVX.o: $(DIR_POSIXAVX)/common.LINUX.AVX.o src/rp.c
  152. $(CC_POSIXAVX) $(CFLAGS_POSIXAVX) -c src/rp.c -o $(DIR_POSIXAVX)/rp.LINUX.AVX.o
  153. tsearch-posixAVX: $(DIR_POSIXAVX)/tsearch.LINUX.AVX.o
  154. $(DIR_POSIXAVX)/tsearch.LINUX.AVX.o: $(DIR_POSIXAVX)/common.LINUX.AVX.o src/tsearch.c
  155. $(CC_POSIXAVX) $(CFLAGS_POSIXAVX) -c src/tsearch.c -o $(DIR_POSIXAVX)/tsearch.LINUX.AVX.o
  156. common-posixAVX: $(DIR_POSIXAVX)/common.LINUX.AVX.o
  157. $(DIR_POSIXAVX)/common.LINUX.AVX.o: src/common.c
  158. $(CC_POSIXAVX) $(CFLAGS_POSIXAVX) -c src/common.c -o $(DIR_POSIXAVX)/common.LINUX.AVX.o
  159. ##
  160. ## POSIXAVX2
  161. ##
  162. DIR_POSIXAVX2 = obj
  163. LIBGMP_POSIXAVX2 = /opt/hashcat-deps/gmp/linux64
  164. CC_POSIXAVX2 = gcc
  165. CFLAGS_POSIXAVX2 = $(CFLAGS) -I$(LIBGMP_POSIXAVX2)/include -D__HC_AVX2__ -DPOSIX -m64 -mavx2
  166. LDFLAGS_POSIXAVX2 = $(LDFLAGS) -L$(LIBGMP_POSIXAVX2)/lib -lm -lpthread -lgmp
  167. posixAVX2: hashcat-cliAVX2.bin
  168. rules-posixAVX2: rules-debugAVX2.bin
  169. rules-debugAVX2.bin: $(DIR_POSIXAVX2)/rp.LINUX.AVX2.o src/rules-debug.c
  170. $(CC_POSIXAVX2) $(CFLAGS_POSIXAVX2) $(DIR_POSIXAVX2)/*.LINUX.AVX2.o src/rules-debug.c -o rules-debugAVX2.bin $(LDFLAGS_POSIXAVX2)
  171. hashcat-posixAVX2: hashcat-cliAVX2.bin
  172. hashcat-cliAVX2.bin: $(DIR_POSIXAVX2)/tsearch.LINUX.AVX2.o $(DIR_POSIXAVX2)/rp.LINUX.AVX2.o $(DIR_POSIXAVX2)/engine.LINUX.AVX2.o src/hashcat-cli.c
  173. $(CC_POSIXAVX2) $(CFLAGS_POSIXAVX2) $(DIR_POSIXAVX2)/*.LINUX.AVX2.o src/hashcat-cli.c -o hashcat-cliAVX2.bin $(LDFLAGS_POSIXAVX2)
  174. engine-posixAVX2: $(DIR_POSIXAVX2)/engine.LINUX.AVX2.o
  175. $(DIR_POSIXAVX2)/engine.LINUX.AVX2.o: $(DIR_POSIXAVX2)/common.LINUX.AVX2.o src/engine.c
  176. $(CC_POSIXAVX2) $(CFLAGS_POSIXAVX2) -c src/engine.c -o $(DIR_POSIXAVX2)/engine.LINUX.AVX2.o
  177. rp-posixAVX2: $(DIR_POSIXAVX2)/rp.LINUX.AVX2.o
  178. $(DIR_POSIXAVX2)/rp.LINUX.AVX2.o: $(DIR_POSIXAVX2)/common.LINUX.AVX2.o src/rp.c
  179. $(CC_POSIXAVX2) $(CFLAGS_POSIXAVX2) -c src/rp.c -o $(DIR_POSIXAVX2)/rp.LINUX.AVX2.o
  180. tsearch-posixAVX2: $(DIR_POSIXAVX2)/tsearch.LINUX.AVX2.o
  181. $(DIR_POSIXAVX2)/tsearch.LINUX.AVX2.o: $(DIR_POSIXAVX2)/common.LINUX.AVX2.o src/tsearch.c
  182. $(CC_POSIXAVX2) $(CFLAGS_POSIXAVX2) -c src/tsearch.c -o $(DIR_POSIXAVX2)/tsearch.LINUX.AVX2.o
  183. common-posixAVX2: $(DIR_POSIXAVX2)/common.LINUX.AVX2.o
  184. $(DIR_POSIXAVX2)/common.LINUX.AVX2.o: src/common.c
  185. $(CC_POSIXAVX2) $(CFLAGS_POSIXAVX2) -c src/common.c -o $(DIR_POSIXAVX2)/common.LINUX.AVX2.o
  186. ##
  187. ## POSIXXOP
  188. ##
  189. DIR_POSIXXOP = obj
  190. LIBGMP_POSIXXOP = /opt/hashcat-deps/gmp/linux64
  191. CC_POSIXXOP = gcc
  192. CFLAGS_POSIXXOP = $(CFLAGS) -I$(LIBGMP_POSIXXOP)/include -D__HC_XOP__ -DPOSIX -m64 -mxop
  193. LDFLAGS_POSIXXOP = $(LDFLAGS) -L$(LIBGMP_POSIXXOP)/lib -lm -lpthread -lgmp
  194. posixXOP: hashcat-cliXOP.bin
  195. rules-posixXOP: rules-debugXOP.bin
  196. rules-debugXOP.bin: $(DIR_POSIXXOP)/rp.LINUX.XOP.o src/rules-debug.c
  197. $(CC_POSIXXOP) $(CFLAGS_POSIXXOP) $(DIR_POSIXXOP)/*.LINUX.XOP.o src/rules-debug.c -o rules-debugXOP.bin $(LDFLAGS_POSIXXOP)
  198. hashcat-posixXOP: hashcat-cliXOP.bin
  199. hashcat-cliXOP.bin: $(DIR_POSIXXOP)/tsearch.LINUX.XOP.o $(DIR_POSIXXOP)/rp.LINUX.XOP.o $(DIR_POSIXXOP)/engine.LINUX.XOP.o src/hashcat-cli.c
  200. $(CC_POSIXXOP) $(CFLAGS_POSIXXOP) $(DIR_POSIXXOP)/*.LINUX.XOP.o src/hashcat-cli.c -o hashcat-cliXOP.bin $(LDFLAGS_POSIXXOP)
  201. engine-posixXOP: $(DIR_POSIXXOP)/engine.LINUX.XOP.o
  202. $(DIR_POSIXXOP)/engine.LINUX.XOP.o: $(DIR_POSIXXOP)/common.LINUX.XOP.o src/engine.c
  203. $(CC_POSIXXOP) $(CFLAGS_POSIXXOP) -c src/engine.c -o $(DIR_POSIXXOP)/engine.LINUX.XOP.o
  204. rp-posixXOP: $(DIR_POSIXXOP)/rp.LINUX.XOP.o
  205. $(DIR_POSIXXOP)/rp.LINUX.XOP.o: $(DIR_POSIXXOP)/common.LINUX.XOP.o src/rp.c
  206. $(CC_POSIXXOP) $(CFLAGS_POSIXXOP) -c src/rp.c -o $(DIR_POSIXXOP)/rp.LINUX.XOP.o
  207. tsearch-posixXOP: $(DIR_POSIXXOP)/tsearch.LINUX.XOP.o
  208. $(DIR_POSIXXOP)/tsearch.LINUX.XOP.o: $(DIR_POSIXXOP)/common.LINUX.XOP.o src/tsearch.c
  209. $(CC_POSIXXOP) $(CFLAGS_POSIXXOP) -c src/tsearch.c -o $(DIR_POSIXXOP)/tsearch.LINUX.XOP.o
  210. common-posixXOP: $(DIR_POSIXXOP)/common.LINUX.XOP.o
  211. $(DIR_POSIXXOP)/common.LINUX.XOP.o: src/common.c
  212. $(CC_POSIXXOP) $(CFLAGS_POSIXXOP) -c src/common.c -o $(DIR_POSIXXOP)/common.LINUX.XOP.o
  213. ##
  214. ## WINDOWS32
  215. ##
  216. DIR_WINDOWS32 = obj
  217. LIBGMP_WINDOW32 = /opt/hashcat-deps/gmp/win32
  218. CC_WINDOWS32 = i686-w64-mingw32-gcc
  219. CFLAGS_WINDOWS32 = $(CFLAGS) -I$(LIBGMP_WINDOW32)/include -D__HC_x86_32__ -DWINDOWS -m32 -msse2 -D__USE_MINGW_ANSI_STDIO=1 -mstackrealign
  220. LDFLAGS_WINDOWS32 = $(LDFLAGS) -L$(LIBGMP_WINDOW32)/lib -lm -lgmp
  221. windows32: hashcat-cli32.exe
  222. rules-windows32: rules-debug32.exe
  223. rules-debug32.exe: $(DIR_WINDOWS32)/rp.WIN.32.o src/rules-debug.c
  224. $(CC_WINDOWS32) $(CFLAGS_WINDOWS32) $(DIR_WINDOWS32)/*.WIN.32.o src/rules-debug.c -o rules-debug32.exe $(LDFLAGS_WINDOWS32)
  225. hashcat-windows32: hashcat-cli32.exe
  226. hashcat-cli32.exe: $(DIR_WINDOWS32)/tsearch.WIN.32.o $(DIR_WINDOWS32)/rp.WIN.32.o $(DIR_WINDOWS32)/engine.WIN.32.o src/hashcat-cli.c
  227. $(CC_WINDOWS32) $(CFLAGS_WINDOWS32) $(DIR_WINDOWS32)/*.WIN.32.o /usr/i686-w64-mingw32/lib/CRT_glob.o src/hashcat-cli.c -o hashcat-cli32.exe $(LDFLAGS_WINDOWS32)
  228. engine-windows32: $(DIR_WINDOWS32)/engine.WIN.32.o
  229. $(DIR_WINDOWS32)/engine.WIN.32.o: $(DIR_WINDOWS32)/common.WIN.32.o src/engine.c
  230. $(CC_WINDOWS32) $(CFLAGS_WINDOWS32) -c src/engine.c -o $(DIR_WINDOWS32)/engine.WIN.32.o
  231. rp-windows32: $(DIR_WINDOWS32)/rp.WIN.32.o
  232. $(DIR_WINDOWS32)/rp.WIN.32.o: $(DIR_WINDOWS32)/common.WIN.32.o src/rp.c
  233. $(CC_WINDOWS32) $(CFLAGS_WINDOWS32) -c src/rp.c -o $(DIR_WINDOWS32)/rp.WIN.32.o
  234. tsearch-windows32: $(DIR_WINDOWS32)/tsearch.WIN.32.o
  235. $(DIR_WINDOWS32)/tsearch.WIN.32.o: $(DIR_WINDOWS32)/common.WIN.32.o src/tsearch.c
  236. $(CC_WINDOWS32) $(CFLAGS_WINDOWS32) -c src/tsearch.c -o $(DIR_WINDOWS32)/tsearch.WIN.32.o
  237. common-windows32: $(DIR_WINDOWS32)/common.WIN.32.o
  238. $(DIR_WINDOWS32)/common.WIN.32.o: src/common.c
  239. $(CC_WINDOWS32) $(CFLAGS_WINDOWS32) -c src/common.c -o $(DIR_WINDOWS32)/common.WIN.32.o
  240. ##
  241. ## WINDOWS64
  242. ##
  243. DIR_WINDOWS64 = obj
  244. LIBGMP_WINDOWS64 = /opt/hashcat-deps/gmp/win64
  245. CC_WINDOWS64 = x86_64-w64-mingw32-gcc
  246. CFLAGS_WINDOWS64 = $(CFLAGS) -I$(LIBGMP_WINDOWS64)/include -D__HC_x86_64__ -DWINDOWS -m64 -msse2 -D__USE_MINGW_ANSI_STDIO=1 -mstackrealign
  247. LDFLAGS_WINDOWS64 = $(LDFLAGS) -L$(LIBGMP_WINDOWS64)/lib -lm -lgmp
  248. windows64: hashcat-cli64.exe
  249. rules-windows64: rules-debug64.exe
  250. rules-debug64.exe: $(DIR_WINDOWS64)/rp.WIN.64.o src/rules-debug.c
  251. $(CC_WINDOWS64) $(CFLAGS_WINDOWS64) $(DIR_WINDOWS64)/*.WIN.64.o src/rules-debug.c -o rules-debug64.exe $(LDFLAGS_WINDOWS64)
  252. hashcat-windows64: hashcat-cli64.exe
  253. hashcat-cli64.exe: $(DIR_WINDOWS64)/tsearch.WIN.64.o $(DIR_WINDOWS64)/rp.WIN.64.o $(DIR_WINDOWS64)/engine.WIN.64.o src/hashcat-cli.c
  254. $(CC_WINDOWS64) $(CFLAGS_WINDOWS64) $(DIR_WINDOWS64)/*.WIN.64.o /usr/x86_64-w64-mingw32/lib/CRT_glob.o src/hashcat-cli.c -o hashcat-cli64.exe $(LDFLAGS_WINDOWS64)
  255. engine-windows64: $(DIR_WINDOWS64)/engine.WIN.64.o
  256. $(DIR_WINDOWS64)/engine.WIN.64.o: $(DIR_WINDOWS64)/common.WIN.64.o src/engine.c
  257. $(CC_WINDOWS64) $(CFLAGS_WINDOWS64) -c src/engine.c -o $(DIR_WINDOWS64)/engine.WIN.64.o
  258. rp-windows64: $(DIR_WINDOWS64)/rp.WIN.64.o
  259. $(DIR_WINDOWS64)/rp.WIN.64.o: $(DIR_WINDOWS64)/common.WIN.64.o src/rp.c
  260. $(CC_WINDOWS64) $(CFLAGS_WINDOWS64) -c src/rp.c -o $(DIR_WINDOWS64)/rp.WIN.64.o
  261. tsearch-windows64: $(DIR_WINDOWS64)/tsearch.WIN.64.o
  262. $(DIR_WINDOWS64)/tsearch.WIN.64.o: $(DIR_WINDOWS64)/common.WIN.64.o src/tsearch.c
  263. $(CC_WINDOWS64) $(CFLAGS_WINDOWS64) -c src/tsearch.c -o $(DIR_WINDOWS64)/tsearch.WIN.64.o
  264. common-windows64: $(DIR_WINDOWS64)/common.WIN.64.o
  265. $(DIR_WINDOWS64)/common.WIN.64.o: src/common.c
  266. $(CC_WINDOWS64) $(CFLAGS_WINDOWS64) -c src/common.c -o $(DIR_WINDOWS64)/common.WIN.64.o
  267. ##
  268. ## WINDOWSAVX
  269. ##
  270. DIR_WINDOWSAVX = obj
  271. LIBGMP_WINDOWSAVX = /opt/hashcat-deps/gmp/win64
  272. CC_WINDOWSAVX = x86_64-w64-mingw32-gcc
  273. CFLAGS_WINDOWSAVX = $(CFLAGS) -I$(LIBGMP_WINDOWSAVX)/include -D__HC_AVX__ -DWINDOWS -m64 -mavx -D__USE_MINGW_ANSI_STDIO=1 -mstackrealign
  274. LDFLAGS_WINDOWSAVX = $(LDFLAGS) -L$(LIBGMP_WINDOWSAVX)/lib -lm -lgmp
  275. windowsAVX: hashcat-cliAVX.exe
  276. rules-windowsAVX: rules-debugAVX.exe
  277. rules-debugAVX.exe: $(DIR_WINDOWSAVX)/rp.WIN.AVX.o src/rules-debug.c
  278. $(CC_WINDOWSAVX) $(CFLAGS_WINDOWSAVX) $(DIR_WINDOWSAVX)/*.WIN.AVX.o src/rules-debug.c -o rules-debugAVX.exe $(LDFLAGS_WINDOWSAVX)
  279. hashcat-windowsAVX: hashcat-cliAVX.exe
  280. hashcat-cliAVX.exe: $(DIR_WINDOWSAVX)/tsearch.WIN.AVX.o $(DIR_WINDOWSAVX)/rp.WIN.AVX.o $(DIR_WINDOWSAVX)/engine.WIN.AVX.o src/hashcat-cli.c
  281. $(CC_WINDOWSAVX) $(CFLAGS_WINDOWSAVX) $(DIR_WINDOWSAVX)/*.WIN.AVX.o /usr/x86_64-w64-mingw32/lib/CRT_glob.o src/hashcat-cli.c -o hashcat-cliAVX.exe $(LDFLAGS_WINDOWSAVX)
  282. engine-windowsAVX: $(DIR_WINDOWSAVX)/engine.WIN.AVX.o
  283. $(DIR_WINDOWSAVX)/engine.WIN.AVX.o: $(DIR_WINDOWSAVX)/common.WIN.AVX.o src/engine.c
  284. $(CC_WINDOWSAVX) $(CFLAGS_WINDOWSAVX) -c src/engine.c -o $(DIR_WINDOWSAVX)/engine.WIN.AVX.o
  285. rp-windowsAVX: $(DIR_WINDOWSAVX)/rp.WIN.AVX.o
  286. $(DIR_WINDOWSAVX)/rp.WIN.AVX.o: $(DIR_WINDOWSAVX)/common.WIN.AVX.o src/rp.c
  287. $(CC_WINDOWSAVX) $(CFLAGS_WINDOWSAVX) -c src/rp.c -o $(DIR_WINDOWSAVX)/rp.WIN.AVX.o
  288. tsearch-windowsAVX: $(DIR_WINDOWSAVX)/tsearch.WIN.AVX.o
  289. $(DIR_WINDOWSAVX)/tsearch.WIN.AVX.o: $(DIR_WINDOWSAVX)/common.WIN.AVX.o src/tsearch.c
  290. $(CC_WINDOWSAVX) $(CFLAGS_WINDOWSAVX) -c src/tsearch.c -o $(DIR_WINDOWSAVX)/tsearch.WIN.AVX.o
  291. common-windowsAVX: $(DIR_WINDOWSAVX)/common.WIN.AVX.o
  292. $(DIR_WINDOWSAVX)/common.WIN.AVX.o: src/common.c
  293. $(CC_WINDOWSAVX) $(CFLAGS_WINDOWSAVX) -c src/common.c -o $(DIR_WINDOWSAVX)/common.WIN.AVX.o
  294. ##
  295. ## WINDOWSAVX2
  296. ##
  297. DIR_WINDOWSAVX2 = obj
  298. LIBGMP_WINDOWSAVX2 = /opt/hashcat-deps/gmp/win64
  299. CC_WINDOWSAVX2 = x86_64-w64-mingw32-gcc
  300. CFLAGS_WINDOWSAVX2 = $(CFLAGS) -I$(LIBGMP_WINDOWSAVX2)/include -D__HC_AVX2__ -DWINDOWS -m64 -mavx2 -D__USE_MINGW_ANSI_STDIO=1 -mstackrealign
  301. LDFLAGS_WINDOWSAVX2 = $(LDFLAGS) -L$(LIBGMP_WINDOWSAVX2)/lib -lm -lgmp
  302. windowsAVX2: hashcat-cliAVX2.exe
  303. rules-windowsAVX2: rules-debugAVX2.exe
  304. rules-debugAVX2.exe: $(DIR_WINDOWSAVX2)/rp.WIN.AVX2.o src/rules-debug.c
  305. $(CC_WINDOWSAVX2) $(CFLAGS_WINDOWSAVX2) $(DIR_WINDOWSAVX2)/*.WIN.AVX2.o src/rules-debug.c -o rules-debugAVX2.exe $(LDFLAGS_WINDOWSAVX2)
  306. hashcat-windowsAVX2: hashcat-cliAVX2.exe
  307. hashcat-cliAVX2.exe: $(DIR_WINDOWSAVX2)/tsearch.WIN.AVX2.o $(DIR_WINDOWSAVX2)/rp.WIN.AVX2.o $(DIR_WINDOWSAVX2)/engine.WIN.AVX2.o src/hashcat-cli.c
  308. $(CC_WINDOWSAVX2) $(CFLAGS_WINDOWSAVX2) $(DIR_WINDOWSAVX2)/*.WIN.AVX2.o /usr/x86_64-w64-mingw32/lib/CRT_glob.o src/hashcat-cli.c -o hashcat-cliAVX2.exe $(LDFLAGS_WINDOWSAVX2)
  309. engine-windowsAVX2: $(DIR_WINDOWSAVX2)/engine.WIN.AVX2.o
  310. $(DIR_WINDOWSAVX2)/engine.WIN.AVX2.o: $(DIR_WINDOWSAVX2)/common.WIN.AVX2.o src/engine.c
  311. $(CC_WINDOWSAVX2) $(CFLAGS_WINDOWSAVX2) -c src/engine.c -o $(DIR_WINDOWSAVX2)/engine.WIN.AVX2.o
  312. rp-windowsAVX2: $(DIR_WINDOWSAVX2)/rp.WIN.AVX2.o
  313. $(DIR_WINDOWSAVX2)/rp.WIN.AVX2.o: $(DIR_WINDOWSAVX2)/common.WIN.AVX2.o src/rp.c
  314. $(CC_WINDOWSAVX2) $(CFLAGS_WINDOWSAVX2) -c src/rp.c -o $(DIR_WINDOWSAVX2)/rp.WIN.AVX2.o
  315. tsearch-windowsAVX2: $(DIR_WINDOWSAVX2)/tsearch.WIN.AVX2.o
  316. $(DIR_WINDOWSAVX2)/tsearch.WIN.AVX2.o: $(DIR_WINDOWSAVX2)/common.WIN.AVX2.o src/tsearch.c
  317. $(CC_WINDOWSAVX2) $(CFLAGS_WINDOWSAVX2) -c src/tsearch.c -o $(DIR_WINDOWSAVX2)/tsearch.WIN.AVX2.o
  318. common-windowsAVX2: $(DIR_WINDOWSAVX2)/common.WIN.AVX2.o
  319. $(DIR_WINDOWSAVX2)/common.WIN.AVX2.o: src/common.c
  320. $(CC_WINDOWSAVX2) $(CFLAGS_WINDOWSAVX2) -c src/common.c -o $(DIR_WINDOWSAVX2)/common.WIN.AVX2.o
  321. ##
  322. ## WINDOWSXOP
  323. ##
  324. DIR_WINDOWSXOP = obj
  325. LIBGMP_WINDOWSXOP = /opt/hashcat-deps/gmp/win64
  326. CC_WINDOWSXOP = x86_64-w64-mingw32-gcc
  327. CFLAGS_WINDOWSXOP = $(CFLAGS) -I$(LIBGMP_WINDOWSXOP)/include -D__HC_XOP__ -DWINDOWS -m64 -mxop -D__USE_MINGW_ANSI_STDIO=1 -mstackrealign
  328. LDFLAGS_WINDOWSXOP = $(LDFLAGS) -L$(LIBGMP_WINDOWSXOP)/lib -lm -lgmp
  329. windowsXOP: hashcat-cliXOP.exe
  330. rules-windowsXOP: rules-debugXOP.exe
  331. rules-debugXOP.exe: $(DIR_WINDOWSXOP)/rp.WIN.XOP.o src/rules-debug.c
  332. $(CC_WINDOWSXOP) $(CFLAGS_WINDOWSXOP) $(DIR_WINDOWSXOP)/*.WIN.XOP.o src/rules-debug.c -o rules-debugXOP.exe $(LDFLAGS_WINDOWSXOP)
  333. hashcat-windowsXOP: hashcat-cliXOP.exe
  334. hashcat-cliXOP.exe: $(DIR_WINDOWSXOP)/tsearch.WIN.XOP.o $(DIR_WINDOWSXOP)/rp.WIN.XOP.o $(DIR_WINDOWSXOP)/engine.WIN.XOP.o src/hashcat-cli.c
  335. $(CC_WINDOWSXOP) $(CFLAGS_WINDOWSXOP) $(DIR_WINDOWSXOP)/*.WIN.XOP.o /usr/x86_64-w64-mingw32/lib/CRT_glob.o src/hashcat-cli.c -o hashcat-cliXOP.exe $(LDFLAGS_WINDOWSXOP)
  336. engine-windowsXOP: $(DIR_WINDOWSXOP)/engine.WIN.XOP.o
  337. $(DIR_WINDOWSXOP)/engine.WIN.XOP.o: $(DIR_WINDOWSXOP)/common.WIN.XOP.o src/engine.c
  338. $(CC_WINDOWSXOP) $(CFLAGS_WINDOWSXOP) -c src/engine.c -o $(DIR_WINDOWSXOP)/engine.WIN.XOP.o
  339. rp-windowsXOP: $(DIR_WINDOWSXOP)/rp.WIN.XOP.o
  340. $(DIR_WINDOWSXOP)/rp.WIN.XOP.o: $(DIR_WINDOWSXOP)/common.WIN.XOP.o src/rp.c
  341. $(CC_WINDOWSXOP) $(CFLAGS_WINDOWSXOP) -c src/rp.c -o $(DIR_WINDOWSXOP)/rp.WIN.XOP.o
  342. tsearch-windowsXOP: $(DIR_WINDOWSXOP)/tsearch.WIN.XOP.o
  343. $(DIR_WINDOWSXOP)/tsearch.WIN.XOP.o: $(DIR_WINDOWSXOP)/common.WIN.XOP.o src/tsearch.c
  344. $(CC_WINDOWSXOP) $(CFLAGS_WINDOWSXOP) -c src/tsearch.c -o $(DIR_WINDOWSXOP)/tsearch.WIN.XOP.o
  345. common-windowsXOP: $(DIR_WINDOWSXOP)/common.WIN.XOP.o
  346. $(DIR_WINDOWSXOP)/common.WIN.XOP.o: src/common.c
  347. $(CC_WINDOWSXOP) $(CFLAGS_WINDOWSXOP) -c src/common.c -o $(DIR_WINDOWSXOP)/common.WIN.XOP.o