diff options
author | Tavian Barnes <tavianator@tavianator.com> | 2024-09-14 12:43:57 -0400 |
---|---|---|
committer | Tavian Barnes <tavianator@tavianator.com> | 2024-09-14 12:49:03 -0400 |
commit | 170aa3df69a64544ef5fcc24ac22de1aa7303562 (patch) | |
tree | c2363bb7e3b7d1db9d7c480a8d7c6d133a6e643d /Makefile | |
parent | 19ed06ea234c50b8e4160dcb3b6cd8fa9cc159df (diff) | |
download | bfs-170aa3df69a64544ef5fcc24ac22de1aa7303562.tar.xz |
build: Remove gen/deps.mk
Since commit 3552b79 ("build/flags: Infrastructure to detect compiler
flag support"), this file only listed a bunch of lines like
-include obj/src/alloc.d
-include obj/src/bar.d
...
We can do that just as well from the main Makefile, and in one line too:
-include ${OBJS:.o=.d}
This lets us pull the list of all objects out of build/prelude.mk and
put it closer to where those objects are actually used.
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 86 |
1 files changed, 68 insertions, 18 deletions
@@ -50,8 +50,43 @@ BINS := \ all: ${BINS} .PHONY: all +# All object files except the entry point +LIBBFS := \ + obj/src/alloc.o \ + obj/src/bar.o \ + obj/src/bfstd.o \ + obj/src/bftw.o \ + obj/src/color.o \ + obj/src/ctx.o \ + obj/src/diag.o \ + obj/src/dir.o \ + obj/src/dstring.o \ + obj/src/eval.o \ + obj/src/exec.o \ + obj/src/expr.o \ + obj/src/fsade.o \ + obj/src/ioq.o \ + obj/src/mtab.o \ + obj/src/opt.o \ + obj/src/parse.o \ + obj/src/printf.o \ + obj/src/pwcache.o \ + obj/src/sighook.o \ + obj/src/stat.o \ + obj/src/thread.o \ + obj/src/trie.o \ + obj/src/typo.o \ + obj/src/version.o \ + obj/src/xregex.o \ + obj/src/xspawn.o \ + obj/src/xtime.o + +# All object files +OBJS := ${LIBBFS} + # The main binary -bin/bfs: ${LIBBFS} obj/src/main.o +bin/bfs: obj/src/main.o ${LIBBFS} +OBJS += obj/src/main.o ${BINS}: @${MKDIR} ${@D} @@ -61,11 +96,6 @@ ${BINS}: # Get the .c file for a .o file CSRC = ${@:obj/%.o=%.c} -# Rebuild when the configuration changes -${OBJS}: gen/config.mk - @${MKDIR} ${@D} - ${MSG} "[ CC ] ${CSRC}" ${CC} ${_CPPFLAGS} ${_CFLAGS} -c ${CSRC} -o $@ - # Save the version number to this file, but only update version.c if it changes gen/version.i.new:: ${MKDIR} ${@D} @@ -103,12 +133,24 @@ unit-tests: ${UTEST_BINS} ${MSG} "[TEST] tests/units" bin/tests/units .PHONY: unit-tests -bin/tests/units: \ - ${UNIT_OBJS} \ - ${LIBBFS} - -bin/tests/xspawnee: \ - obj/tests/xspawnee.o +# Unit test objects +UNIT_OBJS := \ + obj/tests/alloc.o \ + obj/tests/bfstd.o \ + obj/tests/bit.o \ + obj/tests/ioq.o \ + obj/tests/list.o \ + obj/tests/main.o \ + obj/tests/sighook.o \ + obj/tests/trie.o \ + obj/tests/xspawn.o \ + obj/tests/xtime.o + +bin/tests/units: ${UNIT_OBJS} ${LIBBFS} +OBJS += ${UNIT_OBJS} + +bin/tests/xspawnee: obj/tests/xspawnee.o +OBJS += obj/tests/xspawnee.o # The different flag combinations we check INTEGRATIONS := default dfs ids eds j1 j2 j3 s @@ -133,13 +175,11 @@ check-j1 check-j2 check-j3 check-s: bin/bfs ${ITEST_BINS} integration-tests: ${INTEGRATION_TESTS} .PHONY: integration-tests -bin/tests/mksock: \ - obj/tests/mksock.o \ - ${LIBBFS} +bin/tests/mksock: obj/tests/mksock.o ${LIBBFS} +OBJS += obj/tests/mksock.o -bin/tests/xtouch: \ - obj/tests/xtouch.o \ - ${LIBBFS} +bin/tests/xtouch: obj/tests/xtouch.o ${LIBBFS} +OBJS += obj/tests/xtouch.o # `make distcheck` configurations DISTCHECKS := \ @@ -173,6 +213,16 @@ ${DISTCHECKS}:: && ../configure MAKE="${MAKE}" ${DISTCHECK_CONFIG_${@:distcheck-%=%}} \ && ${MAKE} check TEST_FLAGS="--sudo --verbose=skipped" +## Automatic dependency tracking + +# Rebuild when the configuration changes +${OBJS}: gen/config.mk + @${MKDIR} ${@D} + ${MSG} "[ CC ] ${CSRC}" ${CC} ${_CPPFLAGS} ${_CFLAGS} -c ${CSRC} -o $@ + +# Include any generated dependency files +-include ${OBJS:.o=.d} + ## Packaging (`make install`) DEST_PREFIX := ${DESTDIR}${PREFIX} |