From 29fbb8071fd99dd8f90a29538e30c16a89c2dfd2 Mon Sep 17 00:00:00 2001 From: Bryan Drewery Date: Mon, 18 Apr 2016 18:14:02 +0000 Subject: [PATCH] Cause an error during 'make install' if trying to compile with CC. This is limited to src-tree builds, meaning not extended to ports or other out-of-tree builds. This will help ensure that read-only OBJDIRS will be respected at install-time by causing a more consistent failure for those who don't use a read-only OBJDIR. It also will cause Jenkins to yell. This is a better solution than trying to see CC=false as has been attempted and discussed before. Of course this is only relevant for files generated by CC. Disable this for META_MODE since it will detect the CFLAGS/command change and force a rebuild. Sponsored by: EMC / Isilon Storage Division --- share/mk/bsd.sys.mk | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/share/mk/bsd.sys.mk b/share/mk/bsd.sys.mk index 5660bd43b83..709556e192e 100644 --- a/share/mk/bsd.sys.mk +++ b/share/mk/bsd.sys.mk @@ -178,6 +178,13 @@ ACFLAGS+= ${ACFLAGS.${.IMPSRC:T}} CFLAGS+= ${CFLAGS.${.IMPSRC:T}} CXXFLAGS+= ${CXXFLAGS.${.IMPSRC:T}} +.if defined(SRCTOP) +# Prevent rebuilding during install to support read-only objdirs. +.if make(install) && empty(.MAKE.MODE:Mmeta) +CFLAGS+= ERROR-tried-to-rebuild-during-make-install +.endif +.endif + # Tell bmake not to mistake standard targets for things to be searched for # or expect to ever be up-to-date. PHONY_NOTMAIN = analyze afterdepend afterinstall all beforedepend beforeinstall \