Index: share/mk/local.sys.env.mk =================================================================== --- share/mk/local.sys.env.mk +++ share/mk/local.sys.env.mk @@ -1,5 +1,7 @@ # $FreeBSD$ +# This makefile is for customizations that should be done early + .if !defined(_TARGETS) # some things we do only once _TARGETS:= ${.TARGETS} @@ -29,28 +31,6 @@ # convert a path to a valid shell variable M_P2V = tu:C,[./-],_,g -.if ${MK_META_MODE} == "yes" -MAKE_PRINT_VAR_ON_ERROR+= \ - .CURDIR \ - .MAKE \ - .OBJDIR \ - .TARGETS \ - DESTDIR \ - LD_LIBRARY_PATH \ - MACHINE \ - MACHINE_ARCH \ - MAKEOBJDIRPREFIX \ - MAKESYSPATH \ - MAKE_VERSION\ - SRCTOP \ - OBJTOP \ - ${MAKE_PRINT_VAR_ON_ERROR_XTRAS} - -.if ${.MAKE.LEVEL} > 0 -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. @@ -60,4 +40,4 @@ TIME_STAMP_DATE = `date '+${TIME_STAMP_FMT}'` TIME_STAMP_END?= ${TIME_STAMP_DATE} -.include "src.sys.mk" +.include "src.sys.env.mk" Index: share/mk/local.sys.mk =================================================================== --- share/mk/local.sys.mk +++ 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 @@ .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" Index: share/mk/src.sys.env.mk =================================================================== --- share/mk/src.sys.env.mk +++ share/mk/src.sys.env.mk @@ -1,19 +1,18 @@ # $FreeBSD$ -# Note: This file is also duplicated in the sys/conf/kern.pre.mk so -# it will always grab SRCCONF, even if it isn't being built in-tree -# to preserve historical (and useful) behavior. Changes here need to -# be reflected there so SRCCONF isn't included multiple times. +# early setup only see also src.sys.mk # 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 +# site customizations that do not depend on anything! +_src_env_conf= /etc/src.env.conf +SRC_ENV_CONF?= ${_src_env_conf} +.if (exists(${SRC_ENV_CONF}) || ${SRC_ENV_CONF} != ${_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. @@ -24,5 +23,3 @@ MAKESYSPATH:= ${MAKESYSPATH:S,.../share/mk,${.PARSEDIR:tA},} .export MAKESYSPATH .endif -# tempting, but bsd.compiler.mk causes problems this early -#.include "src.opts.mk" Index: share/mk/src.sys.mk =================================================================== --- share/mk/src.sys.mk +++ share/mk/src.sys.mk @@ -5,9 +5,6 @@ # 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_) @@ -14,15 +11,7 @@ .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" Index: share/mk/sys.mk =================================================================== --- share/mk/sys.mk +++ share/mk/sys.mk @@ -31,16 +31,10 @@ .include -# Pull in global settings. -__MAKE_CONF?=/etc/make.conf -.if exists(${__MAKE_CONF}) -.include "${__MAKE_CONF}" -.endif +# early include for customization +# see local.sys.mk below +.-include -# Set any local definitions first. Place this early, but it needs -# MACHINE_CPUARCH to be defined. -.-include - .if ${MK_META_MODE} == "yes" .-include .elif ${MK_META_FILES} == "yes" && ${.MAKEFLAGS:U:M-B} == "" @@ -360,7 +354,15 @@ 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 + .if defined(__MAKE_SHELL) && !empty(__MAKE_SHELL) SHELL= ${__MAKE_SHELL} .SHELL: path=${__MAKE_SHELL}