tech-userlevel archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
RFC: adding .-include <local.*.mk> to share/mk
Having finally replaced the dead power supply in my NetBSD server,
and again have a useful box running 11.0
I'd like to commit a few .-include <local.*.mk> as per the patch below.
These provide a hook for customizing build behavior.
For example as described in
https://www.crufty.net/sjg/docs/netbsd-meta-mode.htm
I put similar changes into FreeBSD in 2015, though in that case
I also committed local.*.mk as well as a bunch of makefiles
that are distributed with bmake. Lots of FreeBSD devs use META_MODE
even with the traditional build targets.
For NetBSD I'm currently using:
MAKESYSPATH=.../share/mk:${HOME}/nb:${HOME}/share/mk
where local.*.mk are found in ${HOME}/nb and these include
makefiles like *dirdeps*.mk from ${HOME}/share/mk
This just keeps the tree clean.
If anyone is interested I can post the current state of the local.*.mk
I'm using:
/homes/sjg/nb/local.dirdeps-build.mk
/homes/sjg/nb/local.dirdeps-missing.mk
/homes/sjg/nb/local.dirdeps.mk
/homes/sjg/nb/local.final.mk
/homes/sjg/nb/local.gendirdeps.mk
/homes/sjg/nb/local.init.mk
/homes/sjg/nb/local.meta.sys.mk
/homes/sjg/nb/local.sys.dirdeps.env.mk
/homes/sjg/nb/local.sys.dirdeps.mk
/homes/sjg/nb/local.sys.env.mk
/homes/sjg/nb/local.sys.machine.mk
/homes/sjg/nb/local.sys.mk
everything else is distributed with bmake
https://www.crufty.net/ftp/pub/sjg/bmake.tar.gz
or found in
https://www.crufty.net/ftp/pub/sjg/mk.tar.gz
--------------------8<--------------------
Add optional includes of local.*.mk
local.*.mk provide a means of customizing the build for downstream
projects without impacting normal builds.
The intent is that these makefiles are not installed to /usr/share/mk/
nor need they even exist in the src tree.
The target 'beforebuild' provides a hook for running targets before
normal build activity. This is useful for generating headers and
similar.
--------------------8<--------------------
Index: share/mk/bsd.README
===================================================================
RCS file: /cvsroot/src/share/mk/bsd.README,v
retrieving revision 1.465
diff -u -p -r1.465 bsd.README
--- share/mk/bsd.README 28 Apr 2026 15:06:40 -0000 1.465
+++ share/mk/bsd.README 26 Jul 2026 19:34:43 -0000
@@ -2045,5 +2045,12 @@ kernel, including "ioconf.c", "ioconf.h"
TODO: variables
+=-=-=-=-= local.*.mk =-=-=-=-=
+
+These makefiles are not installed in /usr/share/mk
+and may not even exist in the src tree.
+
+The includes of these makefiles provide hooks for customizing the build
+for downstream projects.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Index: share/mk/bsd.init.mk
===================================================================
RCS file: /cvsroot/src/share/mk/bsd.init.mk,v
retrieving revision 1.2
diff -u -p -r1.2 bsd.init.mk
--- share/mk/bsd.init.mk 28 Jul 2003 02:38:33 -0000 1.2
+++ share/mk/bsd.init.mk 26 Jul 2026 19:34:43 -0000
@@ -6,8 +6,11 @@
.if !defined(_BSD_INIT_MK_)
_BSD_INIT_MK_=1
+.-include "local.init.mk"
+
.-include "${.CURDIR}/../Makefile.inc"
.include <bsd.own.mk>
.MAIN: all
+beforebuild:
.endif # !defined(_BSD_INIT_MK_)
Index: share/mk/bsd.lib.mk
===================================================================
RCS file: /cvsroot/src/share/mk/bsd.lib.mk,v
retrieving revision 1.427
diff -u -p -r1.427 bsd.lib.mk
--- share/mk/bsd.lib.mk 21 Jan 2026 17:57:27 -0000 1.427
+++ share/mk/bsd.lib.mk 26 Jul 2026 19:34:43 -0000
@@ -550,7 +550,11 @@ _YLSRCS= ${SRCS:M*.[ly]:C/\..$/.c/} ${YH
.NOPATH: ${ALLOBJS} ${_LIBS} ${_YLSRCS}
-realall: ${SRCS} ${ALLOBJS:O} ${_LIBS} ${_LIB.so.debug}
+.if empty(_SKIP_BUILD)
+realall: beforebuild .WAIT ${SRCS} ${ALLOBJS:O} ${_LIBS} ${_LIB.so.debug}
+.else
+realall:
+.endif
.if ${MKARZERO} == "yes"
_ARFL=crsD
Index: share/mk/bsd.prog.mk
===================================================================
RCS file: /cvsroot/src/share/mk/bsd.prog.mk,v
retrieving revision 1.364
diff -u -p -r1.364 bsd.prog.mk
--- share/mk/bsd.prog.mk 14 Feb 2026 16:07:25 -0000 1.364
+++ share/mk/bsd.prog.mk 26 Jul 2026 19:34:43 -0000
@@ -562,7 +562,11 @@ MAN.${_P}= ${_P}.1
MAN+= ${MAN.${_P}}
.endif
-realall: ${_P} ${_PROGDEBUG.${_P}}
+.if empty(_SKIP_BUILD)
+realall: beforebuild .WAIT ${_P} ${_PROGDEBUG.${_P}}
+.else
+realall:
+.endif
CLEANFILES+= ${_P} ${_PROGDEBUG.${_P}}
Index: share/mk/sys.mk
===================================================================
RCS file: /cvsroot/src/share/mk/sys.mk,v
retrieving revision 1.152
diff -u -p -r1.152 sys.mk
--- share/mk/sys.mk 18 Jan 2026 08:30:33 -0000 1.152
+++ share/mk/sys.mk 26 Jul 2026 19:34:43 -0000
@@ -7,6 +7,8 @@
unix?= We run NetBSD.
+.-include <local.sys.env.mk>
+
.SUFFIXES: .a .o .ln .s .S .c .cc .cpp .cxx .C .r .p .l .y .sh
_FORTRAN_SUFFIXES_NOCPP=.f .for .ftn .f90 .f95 .f03 .f08
_FORTRAN_SUFFIXES_CPP= .F .FOR .fpp .FPP .FTN .F90 .F95 .F03 .F08
@@ -252,3 +254,5 @@ ${_FORTRAN_SUFFIXES_CPP:=.a}:
rm -f ${.TARGET}
cp ${.IMPSRC} ${.TARGET}
chmod a+x ${.TARGET}
+
+.-include <local.sys.mk>
Home |
Main Index |
Thread Index |
Old Index