Skip to content

Commit c187fb6

Browse files
committed
Makefile: Autodependency tweaks
Drop more old fixed dependencies. Most of these were added 10 years ago and generated by the naive perl script so not great even then. Add a few dependencies for $(DEPDIR) so we can build particular stuff from a distclean source directory (i.e. with .deps directory missing). An example - that a buildbot found - is "make unit-tests". Also merely moves the symlink recipe for rar2john a little bit just for easier side to side compare with Makefile.legacy.
1 parent 42bb228 commit c187fb6

File tree

1 file changed

+28
-26
lines changed

1 file changed

+28
-26
lines changed

src/Makefile.in

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,12 @@ PLUGIN_OBJS := $(PLUGIN_OBJS:.c=.o)
7878
OPENCL_PLUGIN_OBJS := $(wildcard opencl*_plug.c)
7979
OPENCL_PLUGIN_OBJS := $(OPENCL_PLUGIN_OBJS:.c=.o)
8080

81+
##### Auto dependency generation
82+
AUTODEP=@DEPFLAGS@
83+
ifdef AUTODEP
84+
DEPDIR := .deps
85+
endif
86+
8187
JOHN_OBJS = \
8288
jumbo.o john_mpi.o \
8389
DES_fmt.o DES_std.o DES_bs.o DES_bs_b.o \
@@ -226,10 +232,10 @@ digipaq-alpha.o: alpha.S
226232
$(AS) $(ASFLAGS) tmp.s -o digipaq-alpha.o
227233
$(RM) tmp.s
228234

229-
princeprocessor:
230-
$(CC) @DEPFLAGS@ @CFLAGS@ @JOHN_NO_SIMD@ @CFLAGS_EXTRA@ @OPENSSL_CFLAGS@ @OPENMP_CFLAGS@ @HAVE_MPI@ @PTHREAD_CFLAGS@ $(CPPFLAGS) $(OPT_NORMAL) -DLINUX pp.c $(LDFLAGS) -o ../run/pp
235+
princeprocessor: | $(DEPDIR)
236+
$(CC) @CFLAGS@ @JOHN_NO_SIMD@ @CFLAGS_EXTRA@ @OPENSSL_CFLAGS@ @OPENMP_CFLAGS@ @HAVE_MPI@ @PTHREAD_CFLAGS@ $(CPPFLAGS) $(OPT_NORMAL) -DLINUX pp.c $(LDFLAGS) -o ../run/pp
231237

232-
pp.o: pp.c autoconfig.h arch.h mem_map.h os.h os-autoconf.h jumbo.h mmap-windows.c memory.h mpz_int128.h int128.h misc.h config.h params.h common.h path.h signals.h loader.h list.h formats.h logger.h status.h recovery.h options.h getopt.h external.h compiler.h cracker.h john.h unicode.h prince.h rpp.h rules.h mask.h
238+
pp.o: pp.c prince.h | $(DEPDIR)
233239
$(CC) $(CFLAGS) $(OPT_NORMAL) -DJTR_MODE -c pp.c
234240

235241
options.o: options.c options.h version.h
@@ -267,10 +273,10 @@ $(SUBDIRS):
267273
$(MAKE) -C $@ all
268274

269275
# Inlining the S-boxes produces faster code as long as they fit in the cache.
270-
DES_bs_b.o: DES_bs_b.c arch.h common.h memory.h DES_bs.h loader.h params.h list.h formats.h misc.h jumbo.h autoconfig.h os.h os-autoconf.h sboxes.c nonstd.c sboxes-s.c sboxes-t.c
276+
DES_bs_b.o: DES_bs_b.c sboxes.c nonstd.c sboxes-s.c sboxes-t.c | $(DEPDIR)
271277
$(CC) $(CFLAGS) $(OPT_INLINE) DES_bs_b.c
272278

273-
miscnl.o: misc.c
279+
miscnl.o: misc.c | $(DEPDIR)
274280
$(CC) $(CFLAGS) $(OPT_NORMAL) -D_JOHN_MISC_NO_LOG misc.c -o miscnl.o
275281

276282
mbedtls/aes.a:
@@ -352,6 +358,10 @@ poly1305-donna/poly1305-donna.a:
352358
$(CC) symlink.c -o ../run/undrop.exe
353359
$(STRIP) ../run/undrop.exe
354360

361+
../run/rar2john.exe: symlink.c
362+
$(CC) symlink.c -o ../run/rar2john.exe
363+
$(STRIP) ../run/rar2john.exe
364+
355365
../run/zip2john.exe: symlink.c
356366
$(CC) symlink.c -o ../run/zip2john.exe
357367
$(STRIP) ../run/zip2john.exe
@@ -360,10 +370,6 @@ poly1305-donna/poly1305-donna.a:
360370
$(CC) symlink.c -o ../run/gpg2john.exe
361371
$(STRIP) ../run/gpg2john.exe
362372

363-
../run/rar2john.exe: symlink.c
364-
$(CC) symlink.c -o ../run/rar2john.exe
365-
$(STRIP) ../run/rar2john.exe
366-
367373
../run/base64conv.exe: symlink.c
368374
$(CC) symlink.c -o ../run/base64conv.exe
369375
$(STRIP) ../run/base64conv.exe
@@ -401,13 +407,13 @@ poly1305-donna/poly1305-donna.a:
401407
$(LD) $(LDFLAGS) @PTHREAD_CFLAGS@ @PTHREAD_LIBS@ uaf2john.o uaf_encode.o @OPENMP_CFLAGS@ -o $@
402408

403409
../run/keepass2john@EXE_EXT@: keepass2john.c jumbo.c base64_convert.c misc.c common.c memory.c sha2.o
404-
$(CC) -DAC_BUILT -Wall -O2 @CPPFLAGS@ @DEPFLAGS@ @CFLAGS@ @OPENSSL_CFLAGS@ @CFLAGS_EXTRA@ @PTHREAD_CFLAGS@ @PTHREAD_LIBS@ keepass2john.c jumbo.c base64_convert.c -D_JOHN_MISC_NO_LOG misc.c common.c memory.c sha2.o $(LDFLAGS) @OPENMP_CFLAGS@ @OPENSSL_LIBS@ -o $@
410+
$(CC) -DAC_BUILT -Wall -O2 @CPPFLAGS@ @CFLAGS@ @OPENSSL_CFLAGS@ @CFLAGS_EXTRA@ @PTHREAD_CFLAGS@ @PTHREAD_LIBS@ keepass2john.c jumbo.c base64_convert.c -D_JOHN_MISC_NO_LOG misc.c common.c memory.c sha2.o $(LDFLAGS) @OPENMP_CFLAGS@ @OPENSSL_LIBS@ -o $@
405411

406412
../run/dmg2john@EXE_EXT@: dmg2john.o jumbo.o
407413
$(LD) $(LDFLAGS) @PTHREAD_CFLAGS@ @PTHREAD_LIBS@ dmg2john.o jumbo.o @OPENMP_CFLAGS@ -o $@
408414

409415
../run/bitlocker2john@EXE_EXT@: bitlocker2john.c jumbo.c base64_convert.c misc.c common.o memory.c
410-
$(CC) -DAC_BUILT -Wall -O2 @CPPFLAGS@ @DEPFLAGS@ @CFLAGS@ @OPENSSL_CFLAGS@ @CFLAGS_EXTRA@ @PTHREAD_CFLAGS@ @PTHREAD_LIBS@ bitlocker2john.c jumbo.c base64_convert.c -D_JOHN_MISC_NO_LOG misc.c common.c memory.c $(LDFLAGS) @OPENMP_CFLAGS@ @OPENSSL_LIBS@ -o $@
416+
$(CC) -DAC_BUILT -Wall -O2 @CPPFLAGS@ @CFLAGS@ @OPENSSL_CFLAGS@ @CFLAGS_EXTRA@ @PTHREAD_CFLAGS@ @PTHREAD_LIBS@ bitlocker2john.c jumbo.c base64_convert.c -D_JOHN_MISC_NO_LOG misc.c common.c memory.c $(LDFLAGS) @OPENMP_CFLAGS@ @OPENSSL_LIBS@ -o $@
411417

412418
../run/racf2john@EXE_EXT@: racf2john.o jumbo.o
413419
$(LD) $(LDFLAGS) @PTHREAD_CFLAGS@ @PTHREAD_LIBS@ racf2john.o jumbo.o @OPENMP_CFLAGS@ -o $@
@@ -424,30 +430,26 @@ poly1305-donna/poly1305-donna.a:
424430

425431
# Note, this one is NOT build by default. To get it, do a make ../run/dynacomptest (or ../run/dynacomptest.exe for cygwin/mingw builds)
426432
../run/dynacomptest@EXE_EXT@: dynamic_compiler.c dynamic_compiler_lib.c dynamic_utils.c misc.c unicode.c base64_convert.o base64.o common.o crc32.o KeccakDuplex.o KeccakF-1600-opt64.o KeccakHash.o KeccakSponge.o gost.o jumbo.o memory.o ripemd.o tiger.o haval.o skein.o md2.o panama.o whirlpool.o sha1.o sha2.o
427-
$(CC) -DAC_BUILT -Wall -O2 @CPPFLAGS@ @DEPFLAGS@ @CFLAGS@ @CFLAGS_EXTRA@ @OPENSSL_CFLAGS@ @OPENMP_CFLAGS@ -DWITH_MAIN -D_JOHN_MISC_NO_LOG -DUNICODE_NO_OPTIONS dynamic_compiler.c dynamic_compiler_lib.c dynamic_utils.c misc.c unicode.c base64_convert.o base64.o common.o crc32.o KeccakDuplex.o KeccakF-1600-opt64.o KeccakHash.o KeccakSponge.o gost.o jumbo.o memory.o ripemd.o tiger.o haval.o skein.o md2.o panama.o whirlpool.o sha1.o sha2.o $(LDFLAGS) @OPENSSL_LIBS@ -o $@
433+
$(CC) -DAC_BUILT -Wall -O2 @CPPFLAGS@ @CFLAGS@ @CFLAGS_EXTRA@ @OPENSSL_CFLAGS@ @OPENMP_CFLAGS@ -DWITH_MAIN -D_JOHN_MISC_NO_LOG -DUNICODE_NO_OPTIONS dynamic_compiler.c dynamic_compiler_lib.c dynamic_utils.c misc.c unicode.c base64_convert.o base64.o common.o crc32.o KeccakDuplex.o KeccakF-1600-opt64.o KeccakHash.o KeccakSponge.o gost.o jumbo.o memory.o ripemd.o tiger.o haval.o skein.o md2.o panama.o whirlpool.o sha1.o sha2.o $(LDFLAGS) @OPENSSL_LIBS@ -o $@
428434

429-
../run/cprepair@EXE_EXT@: cprepair.c autoconfig.h unicode.c unicode.h options.h misc.h misc.c
435+
../run/cprepair@EXE_EXT@: cprepair.c unicode.c misc.c | $(DEPDIR)
430436
$(CC) -DAC_BUILT -Wall -O3 @CFLAGS_EXTRA@ @OPENSSL_CFLAGS@ -DNOT_JOHN -D_JOHN_MISC_NO_LOG $(CPPFLAGS) cprepair.c unicode.c misc.c memory.c -o $@
431437

432438
../run/tgtsnarf@EXE_EXT@: tgtsnarf.o
433439
$(LD) tgtsnarf.o $(LDFLAGS) @OPENMP_CFLAGS@ -o $@
434440

435-
john.o: john.c john.h fmt_externs.h fmt_registers.h
441+
john.o: john.c john.h fmt_externs.h fmt_registers.h | $(DEPDIR)
436442
$(CC) $(CFLAGS_MAIN) $(OPT_NORMAL) -O1 $*.c
437443

438-
path.o: path.c path.h autoconfig.h arch.h params.h misc.h memory.h
444+
path.o: path.c path.h arch.h params.h misc.h memory.h | $(DEPDIR)
439445
$(CC) $(CFLAGS_MAIN) $(OPT_NORMAL) -O1 $*.c
440446

441447
# Workaround for gcc 3.4.6 (seen on Sparc32) (do not use -funroll-loops)
442-
unrarppm.o: unrarppm.c arch.h aes.h autoconfig.h unrar.h unrarhlp.h memory.h jumbo.h unrarppm.h unrarvm.h unrarcmd.h unrarfilter.h common.h os.h os-autoconf.h
448+
unrarppm.o: unrarppm.c | $(DEPDIR)
443449
$(CC) -DAC_BUILT $(CFLAGS) $< -o $@
444450

445-
AUTODEP=@DEPFLAGS@
446451
ifdef AUTODEP
447452

448-
##### Auto dependency generation
449-
DEPDIR := .deps
450-
451453
$(DEPDIR):
452454
@mkdir -p $@
453455

@@ -525,22 +527,22 @@ UNIT_TEST_OBJS = \
525527
UNIT_TEST_INCLUDED_PIECES = \
526528
tests/test_valid_utf8.c
527529

528-
tests/unit-tests.o: tests/unit-tests.c common.h memory.h misc.h
530+
tests/unit-tests.o: tests/unit-tests.c | $(DEPDIR)
529531
$(CC) -o tests/unit-tests.o $(CFLAGS) -DFORCE_GENERIC_SHA2 -D_JOHN_MISC_NO_LOG tests/unit-tests.c
530532

531-
tests/sha2.o: sha2.c arch.h sha2.h aligned.h openssl_local_overrides.h md4.h md5.h jtr_sha2.h johnswap.h common.h memory.h stdbool.h params.h os.h os-autoconf.h autoconfig.h jumbo.h
533+
tests/sha2.o: sha2.c | $(DEPDIR)
532534
$(CC) -o tests/sha2.o $(CFLAGS) -DFORCE_GENERIC_SHA2 -D_JOHN_MISC_NO_LOG sha2.c
533535

534-
tests/misc.o: misc.c os.h os-autoconf.h autoconfig.h jumbo.h arch.h logger.h params.h misc.h options.h list.h loader.h formats.h getopt.h common.h memory.h john_mpi.h
536+
tests/misc.o: misc.c misc.h | $(DEPDIR)
535537
$(CC) -o tests/misc.o $(CFLAGS) -D_JOHN_MISC_NO_LOG misc.c
536538

537-
tests/common.o: common.c arch.h common.h memory.h os.h os-autoconf.h autoconfig.h jumbo.h misc.h base64_convert.h
539+
tests/common.o: common.c common.h | $(DEPDIR)
538540
$(CC) -o tests/common.o $(CFLAGS) -D_JOHN_MISC_NO_LOG common.c
539541

540-
tests/memory.o: memory.c arch.h misc.h jumbo.h autoconfig.h memory.h common.h johnswap.h os.h os-autoconf.h
542+
tests/memory.o: memory.c memory.h | $(DEPDIR)
541543
$(CC) -o tests/memory.o $(CFLAGS) -D_JOHN_MISC_NO_LOG memory.c
542544

543-
tests/unicode.o: unicode.o # just to have all the same deps
545+
tests/unicode.o: unicode.o | $(DEPDIR)
544546
$(CC) -o tests/unicode.o $(CFLAGS) -DUNICODE_NO_OPTIONS -DNOT_JOHN unicode.c
545547

546548
# keep the 'easy name' build target of unit-tests The 'real' target is ../run/unit-tests[.exe]

0 commit comments

Comments
 (0)