3 # early setup only see also src.sys.mk
5 # bmake-20170301 started taking '-C' "as is" for some cases, notably absolute
6 # paths. Some later comparisons will assume .CURDIR is resolved and matches
7 # what we would get with 'cd'. So just force resolve it now if it is an
9 .if ${MAKE_VERSION} >= 20170301 && !empty(.CURDIR:M/*)
10 .CURDIR:= ${.CURDIR:tA}
13 # make sure this is defined in a consistent manner
14 SRCTOP:= ${.PARSEDIR:tA:H:H}
16 .if ${.CURDIR} == ${SRCTOP}
19 .elif ${.CURDIR:M${SRCTOP}/*}
20 RELDIR:= ${.CURDIR:S,${SRCTOP}/,,}
22 RELTOP?= ${RELDIR:C,[^/]+,..,g}
26 # site customizations that do not depend on anything!
28 # Save MAKEOBJDIRPREFIX and don't let src-env.conf modify it.
29 # MAKEOBJDIRPREFIX is only needed in MAKELEVEL=0. In sub-makes it will
30 # either be read from environment or OBJDIR/MAKEOBJDIR according to
32 .if !(${.MAKE.LEVEL} == 0 || empty(OBJROOT))
33 .if defined(MAKEOBJDIRPREFIX)
34 _saveMAKEOBJDIRPREFIX:= ${MAKEOBJDIRPREFIX}
36 _undefMAKEOBJDIRPREFIX= t
40 SRC_ENV_CONF?= /etc/src-env.conf
41 .if !empty(SRC_ENV_CONF) && !target(_src_env_conf_included_)
42 .-include "${SRC_ENV_CONF}"
43 _src_env_conf_included_: .NOTMAIN
46 .if defined(_saveMAKEOBJDIRPREFIX) || defined(_undefMAKEOBJDIRPREFIX)
47 .if defined(MAKEOBJDIRPREFIX) && ((defined(_saveMAKEOBJDIRPREFIX) && \
48 ${_saveMAKEOBJDIRPREFIX} != ${MAKEOBJDIRPREFIX}) || \
49 defined(_undefMAKEOBJDIRPREFIX))
50 .warning ${SRC_ENV_CONF}: Ignoring MAKEOBJDIRPREFIX entry in sub-make. Use '?=' to avoid this warning.
52 .if defined(_saveMAKEOBJDIRPREFIX)
53 MAKEOBJDIRPREFIX:= ${_saveMAKEOBJDIRPREFIX}
54 .undef _saveMAKEOBJDIRPREFIX
55 .elif defined(_undefMAKEOBJDIRPREFIX)
56 .undef MAKEOBJDIRPREFIX
57 .undef _undefMAKEOBJDIRPREFIX
61 .include <bsd.mkopt.mk>
63 # Top-level installs should not use meta mode as it may prevent installing
65 .if make(*install*) && ${.MAKE.LEVEL} == 0
71 # If we were found via .../share/mk we need to replace that
72 # with ${.PARSEDIR:tA} so that we can be found by
73 # sub-makes launched from objdir.
74 .if ${.MAKEFLAGS:M.../share/mk} != ""
75 .MAKEFLAGS:= ${.MAKEFLAGS:S,.../share/mk,${.PARSEDIR:tA},}
77 .if ${MAKESYSPATH:Uno:M*.../*} != ""
78 MAKESYSPATH:= ${MAKESYSPATH:S,.../share/mk,${.PARSEDIR:tA},}
80 .elif empty(MAKESYSPATH)
81 MAKESYSPATH:= ${.PARSEDIR:tA}
85 .if ${RELDIR:U} == "." && ${.MAKE.LEVEL} == 0
86 .sinclude "${.CURDIR}/Makefile.sys.inc"
88 .include <src.sys.obj.mk>