8800d532d3
This changes the build OBJDIR from the older style of /usr/obj/<srcdir> for native builds, and /usr/obj/<target>.<target_arch>/<srcdir> for cross builds to a new simpler format of /usr/obj/<srcdir>/<target>.<target_arch>. This new format is used regardless of cross or native build. It allows easier management of multiple source tree object directories. The UNIFIED_OBJDIR option will be removed and its feature made permanent for the 12.0 release. Relnotes: yes (don't note UNIFIED_OBJDIR option since it will be removed) Prior work: D3711 D874 Reviewed by: gjb, sjg Discussed at: https://lists.freebsd.org/pipermail/freebsd-arch/2016-May/017805.html Discussed with: emaste Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D12840
48 lines
1.2 KiB
Makefile
48 lines
1.2 KiB
Makefile
# $FreeBSD$
|
|
|
|
# early setup only see also src.sys.mk
|
|
|
|
# make sure this is defined in a consistent manner
|
|
SRCTOP:= ${.PARSEDIR:tA:H:H}
|
|
|
|
.if ${.CURDIR} == ${SRCTOP}
|
|
RELDIR= .
|
|
RELTOP= .
|
|
.elif ${.CURDIR:M${SRCTOP}/*}
|
|
RELDIR:= ${.CURDIR:S,${SRCTOP}/,,}
|
|
.endif
|
|
RELTOP?= ${RELDIR:C,[^/]+,..,g}
|
|
RELOBJTOP?= ${RELTOP}
|
|
RELSRCTOP?= ${RELTOP}
|
|
|
|
# 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
|
|
|
|
# Top-level installs should not use meta mode as it may prevent installing
|
|
# based on cookies.
|
|
.if make(*install*) && ${.MAKE.LEVEL} == 0
|
|
META_MODE= normal
|
|
MK_META_MODE= no
|
|
.export MK_META_MODE
|
|
.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
|
|
.elif empty(MAKESYSPATH)
|
|
MAKESYSPATH:= ${.PARSEDIR:tA}
|
|
.export MAKESYSPATH
|
|
.endif
|
|
|
|
.include <src.sys.obj.mk>
|