summaryrefslogtreecommitdiffstats
path: root/Makefile.inc1
diff options
context:
space:
mode:
authorbapt <bapt@FreeBSD.org>2014-04-12 15:06:15 +0000
committerbapt <bapt@FreeBSD.org>2014-04-12 15:06:15 +0000
commite7708e06f4a6088bb9590929df1388ab797948d0 (patch)
tree77c9eb9f05726c6baf5e66a1830075a0dcd1c94c /Makefile.inc1
parent91bb0a33cf2c7aef87b701e0eb66e13ab437dae7 (diff)
downloadFreeBSD-src-e7708e06f4a6088bb9590929df1388ab797948d0.zip
FreeBSD-src-e7708e06f4a6088bb9590929df1388ab797948d0.tar.gz
MFC: r263881, r263952, r263983, r264068, r264090, r264131
Some xdev fixes: - if TARGET_ARCH is not defined and XDEV_ARCH is defined then early define TARGET_ARCH to the valud of XDEV_ARCH: This allow the xdev-build target to be able to correctly chose the compiler it needs to build - Allow overwriting XDTP to allow a user to not chose where the xdev env will live in - Fix build for gcc only xdev (like ia64) by providing the proper -B to the toolchain and not relying on gcc being installed already in base - Fix TOOLS_PREFIX so the generated toolchain has the right default sysroot when installed intead of getting the DESTDIR one - Fix supporting DESTDIR - Also overwrite CXX (needed for cross building c++ libraries with clang) and CPP (needed to cross build some libraries when gcc is the target default compiler but gcc is not installed on the building host) - Prevent XDTP from being a relative path: XDTP is used as the default SYSROOT for clang and thus should be an absolute path. - Respect default CC
Diffstat (limited to 'Makefile.inc1')
-rw-r--r--Makefile.inc134
1 files changed, 22 insertions, 12 deletions
diff --git a/Makefile.inc1 b/Makefile.inc1
index dfe589b..3ffc1a4 100644
--- a/Makefile.inc1
+++ b/Makefile.inc1
@@ -975,6 +975,8 @@ INSTALLKERNEL= ${_kernel}
.endif
.endfor
+buildkernel ${WMAKE_TGTS} ${.ALLTARGETS:M_*}: .MAKE
+
#
# buildkernel
#
@@ -1369,6 +1371,9 @@ build-tools: .MAKE
#
# cross-tools: Build cross-building tools
#
+.if !defined(TARGET_ARCH) && defined(XDEV_ARCH)
+TARGET_ARCH= ${XDEV_ARCH}
+.endif
.if ${TARGET_ARCH} != ${MACHINE_ARCH} || ${BOOTSTRAPPING} < 800035
.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "i386"
_btxld= usr.sbin/btxld
@@ -1875,15 +1880,21 @@ NOFUN=-DNO_FSCHG -DWITHOUT_HTML -DWITHOUT_INFO -DNO_LINT \
CPUTYPE=${XDEV_CPUTYPE}
XDDIR=${XDEV_ARCH}-freebsd
-XDTP=usr/${XDDIR}
+XDTP?=/usr/${XDDIR}
+.if ${XDTP:N/*}
+.error XDTP variable should be an absolute path
+.endif
+
CDBENV=MAKEOBJDIRPREFIX=${MAKEOBJDIRPREFIX}/${XDDIR} \
INSTALL="sh ${.CURDIR}/tools/install.sh"
CDENV= ${CDBENV} \
_SHLIBDIRPREFIX=${XDDESTDIR} \
- TOOLS_PREFIX=${XDDESTDIR}
+ TOOLS_PREFIX=${XDTP}
CD2CFLAGS=-isystem ${XDDESTDIR}/usr/include -L${XDDESTDIR}/usr/lib \
- -B${XDDESTDIR}/usr/lib
-CD2ENV=${CDENV} CC="${CC} ${CD2CFLAGS}" \
+ --sysroot=${XDDESTDIR}/ -B${XDDESTDIR}/usr/libexec \
+ -B${XDDESTDIR}/usr/bin -B${XDDESTDIR}/usr/lib
+CD2ENV=${CDENV} CC="${CC} ${CD2CFLAGS}" CXX="${CXX} ${CD2CFLAGS}" \
+ CPP="${CPP} ${CD2CFLAGS}" \
MACHINE=${XDEV} MACHINE_ARCH=${XDEV_ARCH}
CDTMP= ${MAKEOBJDIRPREFIX}/${XDDIR}/${.CURDIR}/tmp
@@ -1922,11 +1933,11 @@ _xb-build-tools:
_xb-cross-tools:
.for _tool in \
- gnu/usr.bin/binutils \
- gnu/usr.bin/cc \
+ ${_binutils} \
usr.bin/ar \
${_clang_libs} \
- ${_clang}
+ ${_clang} \
+ ${_cc}
${_+_}@${ECHODIR} "===> xdev ${_tool} (obj,depend,all)"; \
cd ${.CURDIR}/${_tool} && \
${CDMAKE} DIRPRFX=${_tool}/ obj && \
@@ -1950,10 +1961,11 @@ xdev-install: xdev-build _xi-mtree _xi-cross-tools _xi-includes _xi-libraries _x
_xi-cross-tools:
@echo "_xi-cross-tools"
.for _tool in \
- gnu/usr.bin/binutils \
- gnu/usr.bin/cc \
+ ${_binutils} \
usr.bin/ar \
- ${_clang}
+ ${_clang_libs} \
+ ${_clang} \
+ ${_cc}
${_+_}@${ECHODIR} "===> xdev ${_tool} (install)"; \
cd ${.CURDIR}/${_tool}; \
${CDMAKE} DIRPRFX=${_tool}/ install DESTDIR=${XDDESTDIR}
@@ -1980,5 +1992,3 @@ _xi-links:
xdev xdev-build xdev-install:
@echo "*** Error: Both XDEV and XDEV_ARCH must be defined for \"${.TARGET}\" target"
.endif
-
-buildkernel ${WMAKE_TGTS} ${.ALLTARGETS:M_*}: .MAKE
OpenPOWER on IntegriCloud