summaryrefslogtreecommitdiffstats
path: root/config/pkgs.mk
diff options
context:
space:
mode:
Diffstat (limited to 'config/pkgs.mk')
-rw-r--r--config/pkgs.mk35
1 files changed, 30 insertions, 5 deletions
diff --git a/config/pkgs.mk b/config/pkgs.mk
index 3a18289..2c100ab 100644
--- a/config/pkgs.mk
+++ b/config/pkgs.mk
@@ -6,12 +6,37 @@
include config/prelude.mk
include ${GEN}/vars.mk
include ${GEN}/flags.mk
-include ${GEN}/pkgs.mk
include config/exports.mk
-${GEN}/pkgs.mk::
+# External dependencies
+USE_PKGS := \
+ ${GEN}/libacl.use \
+ ${GEN}/libcap.use \
+ ${GEN}/libselinux.use \
+ ${GEN}/liburing.use \
+ ${GEN}/oniguruma.use
+
+${GEN}/pkgs.mk: ${USE_PKGS}
${MSG} "[ GEN] ${TGT}"
- printf 'CFLAGS += %s\n' "$$(config/pkgconf.sh --cflags ${PKGS})" >>$@ 2>>$@.log
- printf 'LDFLAGS += %s\n' "$$(config/pkgconf.sh --ldflags ${PKGS})" >>$@ 2>>$@.log
- printf 'LDLIBS := %s $${LDLIBS}\n' "$$(config/pkgconf.sh --ldlibs ${PKGS})" >>$@ 2>>$@.log
+ printf '# %s\n' "${TGT}" >$@
+ gen() { \
+ printf 'PKGS := %s\n' "$$*"; \
+ printf 'CFLAGS += %s\n' "$$(config/pkgconf.sh --cflags "$$@")"; \
+ printf 'LDFLAGS += %s\n' "$$(config/pkgconf.sh --ldflags "$$@")"; \
+ printf 'LDLIBS := %s $${LDLIBS}\n' "$$(config/pkgconf.sh --ldlibs "$$@")"; \
+ }; \
+ gen $$(cat ${.ALLSRC}) >>$@
${VCAT} $@
+.PHONY: ${GEN}/pkgs.mk
+
+# Convert ${GEN}/foo.use to foo
+PKG = ${@:${GEN}/%.use=%}
+
+${USE_PKGS}::
+ if config/pkgconf.sh ${PKG} 2>$@.log; then \
+ printf '%s\n' ${PKG} >$@; \
+ test "${IS_V}" || printf '[ CC ] %-${MSG_WIDTH}s ✔\n' config/${PKG}.c; \
+ else \
+ : >$@; \
+ test "${IS_V}" || printf '[ CC ] %-${MSG_WIDTH}s ✘\n' config/${PKG}.c; \
+ fi