Makefile 20 KB

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