version 1.65, 2013/07/05 21:29:51 |
version 1.69, 2014/03/18 22:36:27 |
|
|
|
|
# Have to compute TARGET_ARCH directly in the Makefile, for .if tests involving |
# Have to compute TARGET_ARCH directly in the Makefile, for .if tests involving |
# this variable to work. |
# this variable to work. |
.if (${TARGET} == "armish" || ${TARGET} == "beagle" || \ |
.if (${TARGET} == "armish" || ${TARGET} == "armv7" || \ |
${TARGET} == "zaurus") |
${TARGET} == "zaurus") |
TARGET_ARCH= arm |
TARGET_ARCH= arm |
.elif (${TARGET} == "hp300" || ${TARGET} == "mvme68k") |
.elif (${TARGET} == "aviion" || ${TARGET} == "luna88k") |
TARGET_ARCH= m68k |
|
.elif (${TARGET} == "aviion" || ${TARGET} == "luna88k" || \ |
|
${TARGET} == "mvme88k") |
|
TARGET_ARCH= m88k |
TARGET_ARCH= m88k |
.elif (${TARGET} == "sgi" || ${TARGET} == "octeon") |
.elif (${TARGET} == "sgi" || ${TARGET} == "octeon") |
TARGET_ARCH= mips64 |
TARGET_ARCH= mips64 |
|
|
.include <bsd.own.mk> |
.include <bsd.own.mk> |
|
|
.for _arch in ${TARGET_ARCH} |
.for _arch in ${TARGET_ARCH} |
.if !empty(GCC2_ARCH:M${_arch}) |
.if !empty(GCC3_ARCH:M${_arch}) |
COMPILER_VERSION=gcc2 |
|
.elif !empty(GCC4_ARCH:M${_arch}) |
|
COMPILER_VERSION=gcc4 |
|
.else |
|
COMPILER_VERSION=gcc3 |
COMPILER_VERSION=gcc3 |
|
.else |
|
COMPILER_VERSION=gcc4 |
.endif |
.endif |
|
|
.if !empty(BINUTILS217_ARCH:M${_arch}) |
.if !empty(BINUTILS217_ARCH:M${_arch}) |
|
|
|
|
${CROSSDIRS}: |
${CROSSDIRS}: |
.if ${TARGET_ARCH} == "arm" && ${MACHINE_IS_LP64} == "yes" |
.if ${TARGET_ARCH} == "arm" && ${MACHINE_IS_LP64} == "yes" |
# this config is allowed |
# this config is allowed |
.elif ${TARGET_IS_LP64} != ${MACHINE_IS_LP64} |
.elif ${TARGET_IS_LP64} != ${MACHINE_IS_LP64} |
@echo "host and target have different size longs" |
@echo "host and target have different size longs" |
@echo "cross compiler generates bad code; aborting"; exit 1 |
@echo "cross compiler generates bad code; aborting"; exit 1 |
.endif |
.endif |
@-mkdir -p ${CROSSDIR} |
@-mkdir -p ${CROSSDIR} |
@echo ${TARGET_ARCH} > ${CROSSDIR}/TARGET_ARCH |
@echo ${TARGET_ARCH} > ${CROSSDIR}/TARGET_ARCH |
|
|
|
|
|
|
${CROSSGCC}: ${CROSSBINUTILS} |
${CROSSGCC}: ${CROSSBINUTILS} |
.if ${COMPILER_VERSION:L} == "gcc4" |
.if ${COMPILER_VERSION:L} == "gcc3" |
(cd ${.CURDIR}/gnu/usr.bin/cc; \ |
(cd ${.CURDIR}/gnu/usr.bin/gcc; \ |
MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ |
TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ |
CROSSDIR=${CROSSDIR} \ |
CROSSDIR=${CROSSDIR} \ |
MACHINE=${TARGET} \ |
PATH=${CROSSPATH} ${MAKE} -f Makefile.bsd-wrapper depend && \ |
PATH=${CROSSPATH} ${MAKE} depend ) |
|
(cd ${.CURDIR}/gnu/usr.bin/cc; \ |
|
MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ |
TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ |
CROSSDIR=${CROSSDIR} \ |
CROSSDIR=${CROSSDIR} \ |
MACHINE=${TARGET} \ |
${MAKE} -f Makefile.bsd-wrapper all && \ |
${MAKE} all ) |
|
(cd ${.CURDIR}/gnu/usr.bin/cc; \ |
|
env CROSSDIR=${CROSSDIR} DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
env CROSSDIR=${CROSSDIR} DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ |
PATH=${CROSSPATH} ${MAKE} -f Makefile.bsd-wrapper install) |
MACHINE=${TARGET} \ |
|
PATH=${CROSSPATH} ${MAKE} install) |
|
cp -f ${CROSSDIR}/usr/bin/g++ ${CROSSDIR}/usr/bin/${TARGET_CANON}-g++ |
|
cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-g++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-c++ |
cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-g++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-c++ |
cp -f ${CROSSDIR}/usr/libexec/cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp |
|
cp -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc |
cp -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc |
|
cp -f ${CROSSDIR}/usr/libexec/cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp |
|
rm -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/bin/cc ${CROSSDIR}/usr/libexec/cpp |
ln -sf ${TARGET_CANON}-cc ${CROSSDIR}/usr/${TARGET_CANON}/bin/cc |
ln -sf ${TARGET_CANON}-cc ${CROSSDIR}/usr/${TARGET_CANON}/bin/cc |
|
ln -sf ${TARGET_CANON}-c++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/c++ |
cp -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc |
|
rm -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/bin/g++ ${CROSSDIR}/usr/bin/cc ${CROSSDIR}/usr/libexec/cpp |
|
# fix links |
|
rm -f ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp |
rm -f ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp |
sed -e 's#/usr/libexec/cpp#${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp#' \ |
sed -e 's#/usr/libexec/cpp#${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp#' \ |
-e 's/@GNUC@//' \ |
-e 's/@GNUC@/-D__GNUC__/' \ |
-e 's#/usr/include#${CROSSDIR}/usr/include#' \ |
-e 's#/usr/include#${CROSSDIR}/usr/include#' \ |
-e 's/@dollaropt@//' \ |
-e 's/@dollaropt@//' \ |
${.CURDIR}/usr.bin/cpp/cpp.sh > ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp |
${.CURDIR}/usr.bin/cpp/cpp.sh > ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp |
chmod ${BINMODE} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp |
chmod ${BINMODE} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp |
chown ${BINOWN}:${BINGRP} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp |
chown ${BINOWN}:${BINGRP} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp |
ln -sf ${TARGET_CANON}-cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/cpp |
ln -sf ${TARGET_CANON}-cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/cpp |
.elif ${COMPILER_VERSION:L} == "gcc3" |
.else |
(cd ${.CURDIR}/gnu/usr.bin/gcc; \ |
(cd ${.CURDIR}/gnu/usr.bin/cc; \ |
MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ |
TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ |
CROSSDIR=${CROSSDIR} \ |
CROSSDIR=${CROSSDIR} \ |
PATH=${CROSSPATH} ${MAKE} -f Makefile.bsd-wrapper depend && \ |
MACHINE=${TARGET} \ |
|
PATH=${CROSSPATH} ${MAKE} depend ) |
|
(cd ${.CURDIR}/gnu/usr.bin/cc; \ |
MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ |
TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ |
CROSSDIR=${CROSSDIR} \ |
CROSSDIR=${CROSSDIR} \ |
${MAKE} -f Makefile.bsd-wrapper all && \ |
MACHINE=${TARGET} \ |
|
${MAKE} all ) |
|
(cd ${.CURDIR}/gnu/usr.bin/cc; \ |
env CROSSDIR=${CROSSDIR} DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
env CROSSDIR=${CROSSDIR} DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
PATH=${CROSSPATH} ${MAKE} -f Makefile.bsd-wrapper install) |
TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ |
|
MACHINE=${TARGET} \ |
|
PATH=${CROSSPATH} ${MAKE} install) |
|
cp -f ${CROSSDIR}/usr/bin/g++ ${CROSSDIR}/usr/bin/${TARGET_CANON}-g++ |
cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-g++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-c++ |
cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-g++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-c++ |
cp -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc |
|
cp -f ${CROSSDIR}/usr/libexec/cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp |
cp -f ${CROSSDIR}/usr/libexec/cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp |
rm -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/bin/cc ${CROSSDIR}/usr/libexec/cpp |
cp -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc |
ln -sf ${TARGET_CANON}-cc ${CROSSDIR}/usr/${TARGET_CANON}/bin/cc |
ln -sf ${TARGET_CANON}-cc ${CROSSDIR}/usr/${TARGET_CANON}/bin/cc |
ln -sf ${TARGET_CANON}-c++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/c++ |
|
|
cp -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc |
|
rm -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/bin/g++ ${CROSSDIR}/usr/bin/cc ${CROSSDIR}/usr/libexec/cpp |
|
# fix links |
rm -f ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp |
rm -f ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp |
sed -e 's#/usr/libexec/cpp#${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp#' \ |
sed -e 's#/usr/libexec/cpp#${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp#' \ |
-e 's/@GNUC@/-D__GNUC__/' \ |
-e 's/@GNUC@//' \ |
-e 's#/usr/include#${CROSSDIR}/usr/include#' \ |
-e 's#/usr/include#${CROSSDIR}/usr/include#' \ |
-e 's/@dollaropt@//' \ |
-e 's/@dollaropt@//' \ |
${.CURDIR}/usr.bin/cpp/cpp.sh > ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp |
${.CURDIR}/usr.bin/cpp/cpp.sh > ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp |
chmod ${BINMODE} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp |
chmod ${BINMODE} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp |
chown ${BINOWN}:${BINGRP} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp |
chown ${BINOWN}:${BINGRP} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp |
ln -sf ${TARGET_CANON}-cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/cpp |
ln -sf ${TARGET_CANON}-cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/cpp |
.else |
|
(cd ${CROSSDIR}/usr/obj/gnu/egcs/gcc; \ |
|
/bin/sh ${.CURDIR}/gnu/egcs/gcc/configure \ |
|
--with-gnu-as --with-gnu-ld --prefix ${CROSSDIR}/usr \ |
|
--target ${TARGET_CANON} \ |
|
--enable-languages="c,c++" --enable-cpp --disable-nls \ |
|
--with-gxx-include-dir=${CROSSDIR}/usr/include/g++ && \ |
|
PATH=${CROSSPATH} ${MAKE} BISON=yacc LANGUAGES="${CROSSLANGS}" \ |
|
CFLAGS="${CFLAGS} -DOPENBSD_CROSS -I${.CURDIR}/gnu/lib/libiberty/include" \ |
|
LIBIBERTY_INCLUDES=${.CURDIR}/gnu/lib/libiberty/include \ |
|
DEMANGLER_PROG= DEMANGLE_H= LDFLAGS="${LDSTATIC}" build_infodir=. \ |
|
GCC_FOR_TARGET="./xgcc -B./ -I${CROSSDIR}/usr/include" && \ |
|
${MAKE} BISON=yacc LANGUAGES="${CROSSLANGS}" LDFLAGS="${LDSTATIC}" \ |
|
GCC_FOR_TARGET="./xgcc -B./ -I${CROSSDIR}/usr/include" \ |
|
CFLAGS="${CFLAGS} -DOPENBSD_CROSS -I${.CURDIR}/gnu/lib/libiberty/include" \ |
|
LIBIBERTY_INCLUDES=${.CURDIR}/gnu/lib/libiberty/include \ |
|
build_infodir=. INSTALL_MAN= INSTALL_HEADERS_DIR= install) |
|
mv -f ${CROSSDIR}/usr/bin/cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp |
|
rm -f ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp |
|
sed -e 's#/usr/libexec/cpp#${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp#' \ |
|
-e 's/@GNUC@/-D__GNUC__/' \ |
|
-e 's#/usr/include#${CROSSDIR}/usr/include#' \ |
|
-e 's/@dollaropt@/-$$/' ${.CURDIR}/usr.bin/cpp/cpp.sh > \ |
|
${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp |
|
chmod ${BINMODE} \ |
|
${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp |
|
chown ${BINOWN}:${BINGRP}\ |
|
${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp |
|
ln -sf ${TARGET_CANON}-cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/cpp |
|
ln -sf gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/cc |
|
ln -sf gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc |
|
cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-g++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-c++ |
|
ln -sf ${TARGET_CANON}-c++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/c++ |
|
.endif |
.endif |
@touch ${CROSSGCC} |
@touch ${CROSSGCC} |
|
|