freebsd_amp_hwpstate/targets/pseudo/bootstrap-tools/Makefile

104 lines
2.9 KiB
Makefile

# building clang is particularly tedious - so avoid re-inventing wheels
all: bootstrap-toolchain
UPDATE_DEPENDFILE= no
.export UPDATE_DEPENDFILE
# we build for the pseudo machine "host"
TARGET_MACHINE= host
HOST_MACHINE!= uname -m
HOST_MACHINE_ARCH!= uname -p
BTOOLSDIR?= ${HOST_OBJTOP}/tools
WORLDTMP= ${BTOOLSDIR}
LEGACY_TOOLS?= ${BTOOLSDIR}/legacy
BSENV= \
MAKESYSPATH=${SRCTOP}/tools/build/mk:${SRCTOP}/share/mk \
TARGET=${HOST_MACHINE} TARGET_ARCH=${HOST_MACHINE_ARCH} \
WITHOUT_STAGING=1 STAGE_ROOT= BOOTSTRAPPING_TOOLS=1 \
WORLDTMP=${BTOOLSDIR} \
INSTALL="sh ${SRCTOP}/tools/install.sh" \
PATH=${LEGACY_TOOLS}/usr/sbin:${LEGACY_TOOLS}/usr/bin:${LEGACY_TOOLS}/bin:${PATH}
.if !defined(OSRELDATE)
ord_h= /usr/include/osreldate.h
.if exists(${ord_h})
OSRELDATE!= sed -n '/define.*__FreeBSD_version/{s,^[^0-9]*,,p;q;}' ${ord_h}
.endif
OSRELDATE?= 0
.endif
# need to keep this in sync with src/Makefile.inc1
BSARGS= DESTDIR= \
OBJTOP='${WORLDTMP}/obj-tools' \
OBJROOT='$${OBJTOP}/' \
MAKEOBJDIRPREFIX= \
BOOTSTRAPPING=${OSRELDATE} \
BWPHASE=${.TARGET} \
-DNO_CPU_CFLAGS \
-DNO_LINT \
-DNO_PIC \
-DNO_SHARED \
MK_CTF=no \
MK_CLANG_EXTRAS=no \
MK_CLANG_FORMAT=no \
MK_CLANG_FULL=no \
MK_HTML=no \
MK_MAN=no \
MK_PROFILE=no \
MK_RETPOLINE=no \
MK_SSP=no \
MK_TESTS=no \
MK_WERROR=no \
MK_INCLUDES=yes \
MK_MAN_UTILS=yes
# We will handle building the toolchain and cross-compiler.
BSARGS+= MK_CROSS_COMPILER=no MK_CLANG=no MK_LLDB=no
DISTRIB_ENV= INSTALL="sh ${SRCTOP}/tools/install.sh" NO_FSCHG=1 MK_TESTS=no
legacy: .MAKE ${META_DEPS}
mkdir -p ${LEGACY_TOOLS}
${DISTRIB_ENV} ${MAKE} -C ${SRCTOP}/etc distrib-dirs \
DESTDIR=${BTOOLSDIR} > $@.distrib-dirs_btoolsdir
${DISTRIB_ENV} ${MAKE} -C ${SRCTOP}/etc distrib-dirs \
DESTDIR=${LEGACY_TOOLS} > $@.distrib-dirs_legacy_tools
${BSENV} ${MAKE} -C ${SRCTOP} -f Makefile.inc1 ${BSARGS} $@
bootstrap-tools: legacy
build-tools: bootstrap-tools
cross-tools: build-tools
cross-tools build-tools bootstrap-tools: .MAKE ${META_DEPS}
${BSENV} ${MAKE} -C ${SRCTOP} -f Makefile.inc1 ${BSARGS} $@
# MAKELEVEL=0 so that dirdeps.mk does its thing
# BSENV:MPATH=* lets us use the bootstrapped stuff in LEGACY_TOOLS above.
# TARGET* is so that MK_CLANG gets set correctly.
BSTCENV= \
MAKELEVEL=0 \
MACHINE=host \
BOOTSTRAPPING_TOOLS=1 \
TARGET=${HOST_MACHINE} \
TARGET_ARCH=${HOST_MACHINE_ARCH} \
${BSENV:MPATH=*}
BSTCARGS= \
${BSARGS:NDESTDIR=*:NOBJTOP=*:NOBJROOT=*:NMK_CROSS_COMPILER=*:NMK_CLANG=*} \
BUILD_DIRDEPS=yes \
LLVM_MIN_TBLGEN=${TOOLSDIR}/usr/bin/llvm-min-tblgen \
LLVM_TBLGEN=${TOOLSDIR}/usr/bin/llvm-tblgen \
CLANG_TBLGEN=${TOOLSDIR}/usr/bin/clang-tblgen \
-DWITH_STAGING \
-DWITH_TOOLSDIR
# finally we build toolchain leveraging the above.
bootstrap-toolchain: .MAKE cross-tools
${BSTCENV} ${MAKE} -C ${SRCTOP} ${BSTCARGS} toolchain
# Ensure CCACHE_DIR is ignored since we are processing .meta files here.
.include <bsd.compiler.mk>