]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - share/mk/src.sys.env.mk
Merge llvm-project release/16.x llvmorg-16.0.3-0-gda3cd333bea5
[FreeBSD/FreeBSD.git] / share / mk / src.sys.env.mk
1 # $FreeBSD$
2
3 # early setup only see also src.sys.mk
4
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
8 # absolute path.
9 .if ${MAKE_VERSION} >= 20170301 && !empty(.CURDIR:M/*)
10 .CURDIR:= ${.CURDIR:tA}
11 .endif
12
13 # make sure this is defined in a consistent manner
14 SRCTOP:= ${.PARSEDIR:tA:H:H}
15
16 .if ${.CURDIR} == ${SRCTOP}
17 RELDIR= .
18 RELTOP= .
19 .elif ${.CURDIR:M${SRCTOP}/*}
20 RELDIR:= ${.CURDIR:S,${SRCTOP}/,,}
21 .endif
22 RELTOP?=        ${RELDIR:C,[^/]+,..,g}
23 RELOBJTOP?=     ${RELTOP}
24 RELSRCTOP?=     ${RELTOP}
25
26 .if !defined(OS_REVISION)
27 OS_REVISION!=eval `sh ${SRCTOP}/sys/conf/newvers.sh -V REVISION` && echo $$REVISION || echo
28 .export OS_REVISION
29 .endif
30
31 # site customizations that do not depend on anything!
32
33 # Save MAKEOBJDIRPREFIX and don't let src-env.conf modify it.
34 # MAKEOBJDIRPREFIX is only needed in MAKELEVEL=0.  In sub-makes it will
35 # either be read from environment or OBJDIR/MAKEOBJDIR according to
36 # src.sys.obj.mk.
37 .if !(${.MAKE.LEVEL} == 0 || empty(OBJROOT))
38 .if defined(MAKEOBJDIRPREFIX)
39 _saveMAKEOBJDIRPREFIX:= ${MAKEOBJDIRPREFIX}
40 .else
41 _undefMAKEOBJDIRPREFIX= t
42 .endif
43 .endif
44
45 .-include <site.src.sys.env.mk>
46
47 SRC_ENV_CONF?= /etc/src-env.conf
48 .if !empty(SRC_ENV_CONF) && !target(_src_env_conf_included_)
49 .-include "${SRC_ENV_CONF}"
50 _src_env_conf_included_:        .NOTMAIN
51 .endif
52
53 .if defined(_saveMAKEOBJDIRPREFIX) || defined(_undefMAKEOBJDIRPREFIX)
54 .if defined(MAKEOBJDIRPREFIX) && ((defined(_saveMAKEOBJDIRPREFIX) && \
55     ${_saveMAKEOBJDIRPREFIX} != ${MAKEOBJDIRPREFIX}) || \
56     defined(_undefMAKEOBJDIRPREFIX))
57 .warning ${SRC_ENV_CONF}: Ignoring MAKEOBJDIRPREFIX entry in sub-make.  Use '?=' to avoid this warning.
58 .endif
59 .if defined(_saveMAKEOBJDIRPREFIX)
60 MAKEOBJDIRPREFIX:=      ${_saveMAKEOBJDIRPREFIX}
61 .undef _saveMAKEOBJDIRPREFIX
62 .elif defined(_undefMAKEOBJDIRPREFIX)
63 .undef MAKEOBJDIRPREFIX
64 .undef _undefMAKEOBJDIRPREFIX
65 .endif
66 .endif
67
68 .include <bsd.mkopt.mk>
69
70 # Top-level installs should not use meta mode as it may prevent installing
71 # based on cookies. It's fine with filemon though.
72 .if !empty(META_MODE:Mnofilemon) && \
73   make(*install*) && ${.MAKE.LEVEL} == 0
74 META_MODE=      normal
75 MK_META_MODE=   no
76 .export MK_META_MODE
77 .endif
78
79 # If we were found via .../share/mk we need to replace that
80 # with ${.PARSEDIR:tA} so that we can be found by
81 # sub-makes launched from objdir.
82 .if ${.MAKEFLAGS:M.../share/mk} != ""
83 .MAKEFLAGS:= ${.MAKEFLAGS:S,.../share/mk,${.PARSEDIR:tA},}
84 .endif
85 .if ${MAKESYSPATH:Uno:M*.../*} != ""
86 MAKESYSPATH:= ${MAKESYSPATH:S,.../share/mk,${.PARSEDIR:tA},}
87 .export MAKESYSPATH
88 .elif empty(MAKESYSPATH)
89 MAKESYSPATH:=   ${.PARSEDIR:tA}
90 .export MAKESYSPATH
91 .endif
92
93 .if ${RELDIR:U} == "." && ${.MAKE.LEVEL} == 0
94 .-include "${.CURDIR}/Makefile.sys.inc"
95 .endif
96 .include <src.sys.obj.mk>