summaryrefslogtreecommitdiffstats
path: root/build/config.mk
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@tavianator.com>2025-08-31 10:30:59 -0400
committerTavian Barnes <tavianator@tavianator.com>2025-08-31 11:32:16 -0400
commit703412368c8afc811f2cec47684054e3875b607b (patch)
tree4900ecc1cd54a57f9e797de53319b3f4da3b6842 /build/config.mk
parentc8a3dc9edf2500bfdb5c231c36e77424728a6365 (diff)
downloadbfs-703412368c8afc811f2cec47684054e3875b607b.tar.xz
build: Allow ./configure CFLAGS=... to override auto-detected flagsHEADmain
Diffstat (limited to 'build/config.mk')
-rw-r--r--build/config.mk21
1 files changed, 15 insertions, 6 deletions
diff --git a/build/config.mk b/build/config.mk
index 663926c..be57678 100644
--- a/build/config.mk
+++ b/build/config.mk
@@ -10,8 +10,16 @@ include build/exports.mk
config: gen/config.mk gen/config.h
.PHONY: config
+# All the generated makefile fragments
+MKS := \
+ gen/vars.mk \
+ gen/early.mk \
+ gen/auto.mk \
+ gen/pkgs.mk \
+ gen/late.mk
+
# The main configuration file, which includes the others
-gen/config.mk: gen/vars.mk gen/flags.mk gen/pkgs.mk
+gen/config.mk: ${MKS}
${MSG} "[ GEN] $@"
@printf '# %s\n' "$@" >$@
@printf 'include %s\n' $^ >>$@
@@ -36,16 +44,17 @@ gen/vars.mk::
# Sets the build flags. This depends on vars.mk and uses a recursive make so
# that the default flags can depend on variables like ${OS}.
-gen/flags.mk: gen/vars.mk
+gen/early.mk gen/late.mk: gen/vars.mk
@+XMAKEFLAGS="$$MAKEFLAGS" ${MAKE} -sf build/flags.mk $@
-.PHONY: gen/flags.mk
+
+# Auto-detected build flags
+gen/auto.mk: gen/early.mk gen/late.mk
+ @+XMAKEFLAGS="$$MAKEFLAGS" ${MAKE} -sf build/auto.mk $@
# Auto-detect dependencies and their build flags
-gen/pkgs.mk: gen/flags.mk
+gen/pkgs.mk: gen/auto.mk
@+XMAKEFLAGS="$$MAKEFLAGS" ${MAKE} -sf build/pkgs.mk $@
-.PHONY: gen/pkgs.mk
# Compile-time feature detection
gen/config.h: gen/pkgs.mk
@+XMAKEFLAGS="$$MAKEFLAGS" ${MAKE} -sf build/header.mk $@
-.PHONY: gen/config.h