summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--share/mk/local.sys.env.mk43
-rw-r--r--share/mk/local.sys.mk38
-rw-r--r--share/mk/src.sys.env.mk24
-rw-r--r--share/mk/src.sys.mk15
-rw-r--r--share/mk/sys.mk20
5 files changed, 80 insertions, 60 deletions
diff --git a/share/mk/local.sys.env.mk b/share/mk/local.sys.env.mk
new file mode 100644
index 0000000..ca3f7a0
--- /dev/null
+++ b/share/mk/local.sys.env.mk
@@ -0,0 +1,43 @@
+# $FreeBSD$
+
+# This makefile is for customizations that should be done early
+
+.if !defined(_TARGETS)
+# some things we do only once
+_TARGETS:= ${.TARGETS}
+.export _TARGETS
+.endif
+
+# some handy macros
+_this = ${.PARSEDIR:tA}/${.PARSEFILE}
+# some useful modifiers
+
+# A useful trick for testing multiple :M's against something
+# :L says to use the variable's name as its value - ie. literal
+# got = ${clean* destroy:${M_ListToMatch:S,V,.TARGETS,}}
+M_ListToMatch = L:@m@$${V:M$$m}@
+# match against our initial targets (see above)
+M_L_TARGETS = ${M_ListToMatch:S,V,_TARGETS,}
+
+# turn a list into a set of :N modifiers
+# NskipFoo = ${Foo:${M_ListToSkip}}
+M_ListToSkip= O:u:ts::S,:,:N,g:S,^,N,
+
+# type should be a builtin in any sh since about 1980,
+# AUTOCONF := ${autoconf:L:${M_whence}}
+M_type = @x@(type $$x 2> /dev/null); echo;@:sh:[0]:N* found*:[@]:C,[()],,g
+M_whence = ${M_type}:M/*:[1]
+
+# convert a path to a valid shell variable
+M_P2V = tu:C,[./-],_,g
+
+# these are handy
+# we can use this for a cheap timestamp at the start of a target's script,
+# but not at the end - since make will expand both at the same time.
+TIME_STAMP_FMT = @ %s [%Y-%m-%d %T]
+TIME_STAMP = ${TIME_STAMP_FMT:localtime}
+# this will produce the same output but as of when date(1) is run.
+TIME_STAMP_DATE = `date '+${TIME_STAMP_FMT}'`
+TIME_STAMP_END?= ${TIME_STAMP_DATE}
+
+.include "src.sys.env.mk"
diff --git a/share/mk/local.sys.mk b/share/mk/local.sys.mk
index 87f945e..d542f8b 100644
--- a/share/mk/local.sys.mk
+++ b/share/mk/local.sys.mk
@@ -1,34 +1,5 @@
# $FreeBSD$
-.if !defined(_TARGETS)
-# some things we do only once
-_TARGETS:= ${.TARGETS}
-.export _TARGETS
-.endif
-
-# some handy macros
-_this = ${.PARSEDIR:tA}/${.PARSEFILE}
-# some useful modifiers
-
-# A useful trick for testing multiple :M's against something
-# :L says to use the variable's name as its value - ie. literal
-# got = ${clean* destroy:${M_ListToMatch:S,V,.TARGETS,}}
-M_ListToMatch = L:@m@$${V:M$$m}@
-# match against our initial targets (see above)
-M_L_TARGETS = ${M_ListToMatch:S,V,_TARGETS,}
-
-# turn a list into a set of :N modifiers
-# NskipFoo = ${Foo:${M_ListToSkip}}
-M_ListToSkip= O:u:ts::S,:,:N,g:S,^,N,
-
-# type should be a builtin in any sh since about 1980,
-# AUTOCONF := ${autoconf:L:${M_whence}}
-M_type = @x@(type $$x 2> /dev/null); echo;@:sh:[0]:N* found*:[@]:C,[()],,g
-M_whence = ${M_type}:M/*:[1]
-
-# convert a path to a valid shell variable
-M_P2V = tu:C,[./-],_,g
-
.if ${MK_META_MODE} == "yes"
MAKE_PRINT_VAR_ON_ERROR+= \
.CURDIR \
@@ -51,13 +22,4 @@ MAKE_PRINT_VAR_ON_ERROR += .MAKE.MAKEFILES .PATH
.endif
.endif
-# these are handy
-# we can use this for a cheap timestamp at the start of a target's script,
-# but not at the end - since make will expand both at the same time.
-TIME_STAMP_FMT = @ %s [%Y-%m-%d %T]
-TIME_STAMP = ${TIME_STAMP_FMT:localtime}
-# this will produce the same output but as of when date(1) is run.
-TIME_STAMP_DATE = `date '+${TIME_STAMP_FMT}'`
-TIME_STAMP_END?= ${TIME_STAMP_DATE}
-
.include "src.sys.mk"
diff --git a/share/mk/src.sys.env.mk b/share/mk/src.sys.env.mk
new file mode 100644
index 0000000..0516075
--- /dev/null
+++ b/share/mk/src.sys.env.mk
@@ -0,0 +1,24 @@
+# $FreeBSD$
+
+# early setup only see also src.sys.mk
+
+# make sure this is defined in a consistent manner
+SRCTOP:= ${.PARSEDIR:tA:H:H}
+
+# site customizations that do not depend on anything!
+SRC_ENV_CONF?= /etc/src-env.conf
+.if !empty(SRC_ENV_CONF) && !target(_src_env_conf_included_)
+.-include "${SRC_ENV_CONF}"
+_src_env_conf_included_: .NOTMAIN
+.endif
+
+# If we were found via .../share/mk we need to replace that
+# with ${.PARSEDIR:tA} so that we can be found by
+# sub-makes launched from objdir.
+.if ${.MAKEFLAGS:M.../share/mk} != ""
+.MAKEFLAGS:= ${.MAKEFLAGS:S,.../share/mk,${.PARSEDIR:tA},}
+.endif
+.if ${MAKESYSPATH:Uno:M*.../*} != ""
+MAKESYSPATH:= ${MAKESYSPATH:S,.../share/mk,${.PARSEDIR:tA},}
+.export MAKESYSPATH
+.endif
diff --git a/share/mk/src.sys.mk b/share/mk/src.sys.mk
index f8dea28..81ecaf6 100644
--- a/share/mk/src.sys.mk
+++ b/share/mk/src.sys.mk
@@ -5,24 +5,13 @@
# to preserve historical (and useful) behavior. Changes here need to
# be reflected there so SRCCONF isn't included multiple times.
-# make sure this is defined in a consistent manner
-SRCTOP:= ${.PARSEDIR:tA:H:H}
-
# Allow user to configure things that only effect src tree builds.
SRCCONF?= /etc/src.conf
.if (exists(${SRCCONF}) || ${SRCCONF} != "/etc/src.conf") && !target(_srcconf_included_)
.sinclude "${SRCCONF}"
_srcconf_included_: .NOTMAIN
.endif
-# If we were found via .../share/mk we need to replace that
-# with ${.PARSEDIR:tA} so that we can be found by
-# sub-makes launched from objdir.
-.if ${.MAKEFLAGS:M.../share/mk} != ""
-.MAKEFLAGS:= ${.MAKEFLAGS:S,.../share/mk,${.PARSEDIR:tA},}
-.endif
-.if ${MAKESYSPATH:Uno:M*.../*} != ""
-MAKESYSPATH:= ${MAKESYSPATH:S,.../share/mk,${.PARSEDIR:tA},}
-.export MAKESYSPATH
-.endif
+
# tempting, but bsd.compiler.mk causes problems this early
+# probably need to remove dependence on bsd.own.mk
#.include "src.opts.mk"
diff --git a/share/mk/sys.mk b/share/mk/sys.mk
index f3534a6..d23d1d7 100644
--- a/share/mk/sys.mk
+++ b/share/mk/sys.mk
@@ -31,15 +31,9 @@ __DEFAULT_DEPENDENT_OPTIONS= \
.include <bsd.mkopt.mk>
-# Pull in global settings.
-__MAKE_CONF?=/etc/make.conf
-.if exists(${__MAKE_CONF})
-.include "${__MAKE_CONF}"
-.endif
-
-# Set any local definitions first. Place this early, but it needs
-# MACHINE_CPUARCH to be defined.
-.-include <local.sys.mk>
+# early include for customization
+# see local.sys.mk below
+.-include <local.sys.env.mk>
.if ${MK_META_MODE} == "yes"
.-include <meta.sys.mk>
@@ -360,6 +354,14 @@ YFLAGS ?= -d
rm -f ${.PREFIX}.tmp.c
${CTFCONVERT_CMD}
+# Pull in global settings.
+__MAKE_CONF?=/etc/make.conf
+.if exists(${__MAKE_CONF})
+.include "${__MAKE_CONF}"
+.endif
+
+# late include for customization
+.-include <local.sys.mk>
.if defined(__MAKE_SHELL) && !empty(__MAKE_SHELL)
SHELL= ${__MAKE_SHELL}
OpenPOWER on IntegriCloud