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)

Discussed with:	imp
This commit is contained in:
Baptiste Daroussin 2014-04-03 07:28:36 +00:00
parent 413ef2a3d1
commit cf44c89bba

View File

@ -1359,6 +1359,9 @@ kernel-tools: .MAKE
# #
# cross-tools: Build cross-building tools # 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} != ${MACHINE_ARCH} || ${BOOTSTRAPPING} < 800035
.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "i386" .if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "i386"
_btxld= usr.sbin/btxld _btxld= usr.sbin/btxld
@ -1872,15 +1875,17 @@ NOFUN=-DNO_FSCHG MK_HTML=no MK_INFO=no -DNO_LINT \
CPUTYPE=${XDEV_CPUTYPE} CPUTYPE=${XDEV_CPUTYPE}
XDDIR=${XDEV_ARCH}-freebsd XDDIR=${XDEV_ARCH}-freebsd
XDTP=usr/${XDDIR} XDTP?=usr/${XDDIR}
CDBENV=MAKEOBJDIRPREFIX=${MAKEOBJDIRPREFIX}/${XDDIR} \ CDBENV=MAKEOBJDIRPREFIX=${MAKEOBJDIRPREFIX}/${XDDIR} \
INSTALL="sh ${.CURDIR}/tools/install.sh" INSTALL="sh ${.CURDIR}/tools/install.sh"
CDENV= ${CDBENV} \ CDENV= ${CDBENV} \
_SHLIBDIRPREFIX=${XDDESTDIR} \ _SHLIBDIRPREFIX=${XDDESTDIR} \
TOOLS_PREFIX=${XDDESTDIR} TOOLS_PREFIX=${XDTP}
CD2CFLAGS=-isystem ${XDDESTDIR}/usr/include -L${XDDESTDIR}/usr/lib \ CD2CFLAGS=-isystem ${XDDESTDIR}/usr/include -L${XDDESTDIR}/usr/lib \
-B${XDDESTDIR}/usr/lib --sysroot=${XDDESTDIR}/ -B${XDDESTDIR}/usr/libexec \
CD2ENV=${CDENV} CC="${CC} ${CD2CFLAGS}" \ -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} MACHINE=${XDEV} MACHINE_ARCH=${XDEV_ARCH}
CDTMP= ${MAKEOBJDIRPREFIX}/${XDDIR}/${.CURDIR}/tmp CDTMP= ${MAKEOBJDIRPREFIX}/${XDDIR}/${.CURDIR}/tmp