summaryrefslogtreecommitdiffstats
path: root/share/mk
diff options
context:
space:
mode:
authorngie <ngie@FreeBSD.org>2014-10-23 00:54:52 +0000
committerngie <ngie@FreeBSD.org>2014-10-23 00:54:52 +0000
commit813210d1c2ee9d23c0ad251bbb2cff319d37c4b3 (patch)
tree348a4d97a7604fb8ae2002620e255410c10797ab /share/mk
parent2b8c74e1741f7f2f394850d6ef56dfb989c79bb2 (diff)
downloadFreeBSD-src-813210d1c2ee9d23c0ad251bbb2cff319d37c4b3.zip
FreeBSD-src-813210d1c2ee9d23c0ad251bbb2cff319d37c4b3.tar.gz
MFC r272055:
Improve bsd.progs.mk compatibility with bsd.prog.mk 1. Do not install FILES/SCRIPTS multiple times if PROGS is specified; this is already handled via bsd.prog.mk when it's called recursively (PR: 191055, 191955). 2. Some variables, like BINDIR and PROGNAME, default to a value if unset whereas others get appended to, like CFLAGS. Add support for the former case (PR: 191056) 3. Make "checkdpadd" and "clean" available targets for recursive execution. Reviewed by: marcel, sjg Phabric: D822 PR: 191055, 191056, 191955 Sponsored by: EMC / Isilon Storage Division
Diffstat (limited to 'share/mk')
-rw-r--r--share/mk/bsd.progs.mk32
1 files changed, 17 insertions, 15 deletions
diff --git a/share/mk/bsd.progs.mk b/share/mk/bsd.progs.mk
index c5e8c3d..5ca1e45 100644
--- a/share/mk/bsd.progs.mk
+++ b/share/mk/bsd.progs.mk
@@ -42,10 +42,15 @@ PROG ?= $t
.if defined(PROG)
# just one of many
-PROG_VARS += BINDIR CFLAGS CPPFLAGS CXXFLAGS DPADD DPLIBS LDADD MAN SRCS
+PROG_OVERRIDE_VARS += BINDIR MAN SRCS
+PROG_VARS += CFLAGS CPPFLAGS CXXFLAGS DPADD DPLIBS LDADD ${PROG_OVERRIDE_VARS}
.for v in ${PROG_VARS:O:u}
-.if defined(${v}.${PROG}) || defined(${v}_${PROG})
-$v += ${${v}_${PROG}:U${${v}.${PROG}}}
+.if empty(${PROG_OVERRIDE_VARS:M$v})
+.if defined(${v}.${PROG})
+$v += ${${v}.${PROG}}
+.elif defined(${v}_${PROG})
+$v += ${${v}_${PROG}}
+.endif
.else
$v ?=
.endif
@@ -61,7 +66,7 @@ UPDATE_DEPENDFILE ?= NO
DEPENDFILE?= .depend.${PROG}
# prog.mk will do the rest
.else
-all: ${PROGS}
+all: ${FILES} ${PROGS} ${SCRIPTS}
# We cannot capture dependencies for meta mode here
UPDATE_DEPENDFILE = NO
@@ -75,7 +80,7 @@ UPDATE_DEPENDFILE = NO
.ifndef _RECURSING_PROGS
# tell progs.mk we might want to install things
-PROGS_TARGETS+= cleandepend cleandir cleanobj depend install
+PROGS_TARGETS+= checkdpadd clean cleandepend cleandir cleanobj depend install
.for p in ${PROGS}
.if defined(PROGS_CXX) && !empty(PROGS_CXX:M$p)
@@ -98,18 +103,15 @@ $p.$t: .PHONY .MAKE
$t: ${PROGS:%=%.$t}
.endfor
-SCRIPTS_TARGETS+= cleandepend cleandir cleanobj depend install
+.if empty(PROGS) && !empty(SCRIPTS)
-.for p in ${SCRIPTS}
-.for t in ${SCRIPTS_TARGETS:O:u}
-$p.$t: .PHONY .MAKE
- (cd ${.CURDIR} && ${MAKE} -f ${MAKEFILE} _RECURSING_PROGS= \
- SUBDIR= SCRIPT=$p ${x.$p} ${@:E})
-.endfor
+.for t in ${PROGS_TARGETS:O:u}
+scripts.$t: .PHONY .MAKE
+ (cd ${.CURDIR} && ${MAKE} -f ${MAKEFILE} SUBDIR= _RECURSING_PROGS= \
+ $t)
+$t: scripts.$t
.endfor
-.for t in ${SCRIPTS_TARGETS:O:u}
-$t: ${SCRIPTS:%=%.$t}
-.endfor
+.endif
.endif
OpenPOWER on IntegriCloud