1*6231a781Smiod# $OpenBSD: Makefile.cross,v 1.65 2013/07/05 21:29:51 miod Exp $ 2a222f159Sespie 3a222f159Sespiecross-tools: cross-includes cross-binutils cross-gcc cross-lib 4a071a6c7Sdrahncross-distrib: cross-tools cross-bin cross-share cross-sys cross-etc-root-var 5a071a6c7Sdrahn# cross-gnu \ 6a222f159Sespie 7a78fab76Smiod# Have to compute TARGET_ARCH directly in the Makefile, for .if tests involving 8a78fab76Smiod# this variable to work. 943421439Smatthieu.if (${TARGET} == "armish" || ${TARGET} == "beagle" || \ 10f78813fcSderaadt ${TARGET} == "zaurus") 11a78fab76SmiodTARGET_ARCH= arm 12a0c16a81Smatthew.elif (${TARGET} == "hp300" || ${TARGET} == "mvme68k") 13a78fab76SmiodTARGET_ARCH= m68k 14ad744452Smiod.elif (${TARGET} == "aviion" || ${TARGET} == "luna88k" || \ 15ad744452Smiod ${TARGET} == "mvme88k") 16a78fab76SmiodTARGET_ARCH= m88k 17c3ed6a03Ssyuu.elif (${TARGET} == "sgi" || ${TARGET} == "octeon") 18a78fab76SmiodTARGET_ARCH= mips64 1956074f2fSmiod.elif (${TARGET} == "loongson") 2056074f2fSmiodTARGET_ARCH= mips64el 2156074f2fSmiodTARGET_CPU= mips64 22990b83faSderaadt.elif (${TARGET} == "solbourne") 23990b83faSderaadtTARGET_ARCH= sparc 245b036de8Sderaadt.elif (${TARGET} == "macppc" || ${TARGET} == "socppc") 25a78fab76SmiodTARGET_ARCH= powerpc 262f050487Smiod.elif (${TARGET} == "landisk") 272f050487SmiodTARGET_ARCH= sh 28a78fab76Smiod.else 29a78fab76SmiodTARGET_ARCH= ${TARGET} 30a78fab76Smiod.endif 3156074f2fSmiodTARGET_CPU?= ${TARGET_ARCH} 32a78fab76Smiod 33a732d4d4Sguenther# List of LP64 archs 34a732d4d4Sguenther# XXX move to bsd.*.mk? 35a732d4d4SguentherLP64_ARCH = amd64 alpha hppa64 ia64 mips64 sparc64 vax64 36a732d4d4Sguenther 37a732d4d4SguentherTARGET_IS_LP64 = 38a732d4d4SguentherMACHINE_IS_LP64 = 39a732d4d4Sguenther.for _ in ${LP64_ARCH} 40a732d4d4Sguenther. if !empty(TARGET_ARCH:M$_) 41a732d4d4Sguenther TARGET_IS_LP64 = yes 42a732d4d4Sguenther. endif 43a732d4d4Sguenther. if !empty(MACHINE_ARCH:M$_) 44a732d4d4Sguenther MACHINE_IS_LP64 = yes 45a732d4d4Sguenther. endif 46a732d4d4Sguenther.endfor 47a732d4d4Sguenther 48a071a6c7Sdrahn#CROSSCPPFLAGS?= -nostdinc -I${CROSSDIR}/usr/include 49a071a6c7Sdrahn#CROSSLDFLAGS?= -nostdlib -L${CROSSDIR}/usr/lib -static 50a071a6c7SdrahnCROSSCFLAGS?= ${CROSSCPPFLAGS} -O2 ${PIPE} ${DEBUG} 51a222f159SespieCROSSCXXFLAGS?= ${CROSSCPPFLAGS} 52a071a6c7Sdrahn#LDSTATIC?= -static 53a071a6c7Sdrahn 54a222f159SespieCROSSDIR= ${DESTDIR}/usr/cross/${TARGET} 55a071a6c7SdrahnCROSSENV= AR=${CROSSDIR}/usr/${TARGET_CANON}/bin/ar \ 56a071a6c7Sdrahn AS=${CROSSDIR}/usr/${TARGET_CANON}/bin/as \ 57a071a6c7Sdrahn CC=${CROSSDIR}/usr/${TARGET_CANON}/bin/cc \ 58a071a6c7Sdrahn CPP=${CROSSDIR}/usr/${TARGET_CANON}/bin/cpp \ 59a071a6c7Sdrahn CXX=${CROSSDIR}/usr/${TARGET_CANON}/bin/c++ \ 60a071a6c7Sdrahn LD=${CROSSDIR}/usr/${TARGET_CANON}/bin/ld \ 61a071a6c7Sdrahn OBJCOPY=${CROSSDIR}/usr/${TARGET_CANON}/bin/objcopy \ 62a071a6c7Sdrahn LORDER=/usr/bin/lorder RANLIB=${CROSSDIR}/usr/${TARGET_CANON}/bin/ranlib \ 63a071a6c7Sdrahn STRIP=${CROSSDIR}/usr/${TARGET_CANON}/bin/strip \ 64a071a6c7Sdrahn HOSTCC=\"${CC}\" HOSTCXX=\"${CXX}\" NOMAN= \ 65a222f159Sespie HOSTCFLAGS=\"${CFLAGS}\" HOSTCXXFLAGS=\"${CXXFLAGS}\" \ 66a222f159Sespie HOSTLDFLAGS=\"${LDFLAGS}\" \ 67a222f159Sespie CFLAGS=\"${CROSSCFLAGS}\" CPPFLAGS=\"${CROSSCPPFLAGS}\" \ 68a222f159Sespie CXXFLAGS=\"${CROSSCXXFLAGS}\" \ 69a222f159Sespie LDFLAGS=\"${CROSSLDFLAGS}\" 70a071a6c7SdrahnCROSSADDPATH=:${CROSSDIR}/usr/${TARGET_CANON}/bin 71a071a6c7SdrahnCROSSPATH= /usr/bin:/bin:/usr/sbin:/sbin${CROSSADDPATH} 72a222f159SespieCROSSLANGS?= c c++ 73a222f159Sespie 74141bf37aSespieTARGET_CANON=`cat ${CROSSDIR}/TARGET_CANON` 75141bf37aSespie 76a222f159SespieCROSSDIRS= ${CROSSDIR}/.dirs_done 77a071a6c7SdrahnCROSSOBJ= ${CROSSDIR}/.obj_done 78a071a6c7SdrahnCROSSINCLUDES= ${CROSSDIR}/.includes_done 79a071a6c7SdrahnCROSSBINUTILS= ${CROSSDIR}/.binutils_done 80a071a6c7SdrahnCROSSGCC= ${CROSSDIR}/.gcc_done 81bab9f9c3Sdjm#NO_CROSS= isakmpd keynote ssh 82a222f159Sespie 83b14edc4dSdrahn.include <bsd.own.mk> 84b14edc4dSdrahn 859102a13aSdrahn.for _arch in ${TARGET_ARCH} 869102a13aSdrahn.if !empty(GCC2_ARCH:M${_arch}) 873f5a0f4fSmiodCOMPILER_VERSION=gcc2 889102a13aSdrahn.elif !empty(GCC4_ARCH:M${_arch}) 893f5a0f4fSmiodCOMPILER_VERSION=gcc4 9088ff6307Sdrahn.else 913f5a0f4fSmiodCOMPILER_VERSION=gcc3 9288ff6307Sdrahn.endif 9388ff6307Sdrahn 949102a13aSdrahn.if !empty(BINUTILS217_ARCH:M${_arch}) 959102a13aSdrahnBINUTILS_VERSION=binutils-2.17 969102a13aSdrahn.else 979102a13aSdrahnBINUTILS_VERSION=binutils 989102a13aSdrahn.endif 999102a13aSdrahn 1004eec3ddaSmiod.if !empty(PIE_ARCH:M${_arch}) 1014eec3ddaSmiodNOPIE_FLAGS=-fno-pie 1024eec3ddaSmiodNOPIE_LDFLAGS=-nopie 1034eec3ddaSmiodPIE_DEFAULT=${DEFAULT_PIE_DEF} 1044eec3ddaSmiod.else 1054eec3ddaSmiodNOPIE_FLAGS= 1064eec3ddaSmiodPIE_DEFAULT= 1074eec3ddaSmiod.endif 1084eec3ddaSmiod 1099102a13aSdrahnBINUTILS= ar as gasp ld nm objcopy objdump ranlib readelf size \ 1109102a13aSdrahn strings strip 1119102a13aSdrahnBINUTILS_DIR=gnu/usr.bin/${BINUTILS_VERSION} 1129102a13aSdrahn.endfor 1139102a13aSdrahn 114141bf37aSespie# no libcrypto.... these won't build 115a071a6c7Sdrahn#NO_CROSS+= dc login_krb5 login_krb5-or-pwd passwd ppp tcpdump telnet \ 116a071a6c7Sdrahn# ftp gzsig sasyncd vnconfig 117a071a6c7Sdrahn 118141bf37aSespie# explicit cross-compile 119141bf37aSespieNO_CROSS+=bind 120a071a6c7SdrahnNO_CROSS+=httpd 121a071a6c7SdrahnNO_CROSS+=microcode 1229102a13aSdrahnNO_CROSS+=groff lynx binutils binutils-2.17 perl texinfo gcc cvs 123e3bab464SdrahnNO_CROSS+=nsd 124e4aad24cSjsingNO_CROSS+=nginx 125372e2726SjsingNO_CROSS+=sqlite3 126141bf37aSespie 127a222f159Sespiecross-dirs: ${CROSSDIRS} 128a222f159Sespiecross-obj: ${CROSSOBJ} 129a222f159Sespiecross-includes: ${CROSSINCLUDES} 130a222f159Sespiecross-binutils: ${CROSSBINUTILS} 131a222f159Sespiecross-gcc: ${CROSSGCC} 132a222f159Sespie 133a222f159Sespiecross-env: 134a222f159Sespie @echo ${CROSSENV} MACHINE=${TARGET} \ 135d49bf4ccSmickey MACHINE_ARCH=`cat ${CROSSDIR}/TARGET_ARCH` \ 13656074f2fSmiod MACHINE_CPU=`cat ${CROSSDIR}/TARGET_CPU` \ 137d49bf4ccSmickey BSDOBJDIR=${CROSSDIR}/usr/obj \ 138d49bf4ccSmickey BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} 139a222f159Sespie 140a222f159Sespie${CROSSDIRS}: 141b14edc4dSdrahn.if ${TARGET_ARCH} == "arm" && ${MACHINE_IS_LP64} == "yes" 142b14edc4dSdrahn# this config is allowed 143b14edc4dSdrahn.elif ${TARGET_IS_LP64} != ${MACHINE_IS_LP64} 144a732d4d4Sguenther@echo "host and target have different size longs" 145a732d4d4Sguenther@echo "cross compiler generates bad code; aborting"; exit 1 146a732d4d4Sguenther.endif 147a222f159Sespie @-mkdir -p ${CROSSDIR} 148a78fab76Smiod @echo ${TARGET_ARCH} > ${CROSSDIR}/TARGET_ARCH 149a222f159Sespie @echo TARGET_ARCH is `cat ${CROSSDIR}/TARGET_ARCH` 15056074f2fSmiod @echo ${TARGET_CPU} > ${CROSSDIR}/TARGET_CPU 15156074f2fSmiod @echo TARGET_CPU is `cat ${CROSSDIR}/TARGET_CPU` 152a222f159Sespie @eval `grep '^osr=' sys/conf/newvers.sh`; \ 15356074f2fSmiod echo ${TARGET_ARCH}-unknown-openbsd$$osr > \ 154a222f159Sespie ${CROSSDIR}/TARGET_CANON 155a222f159Sespie @-mkdir -p ${CROSSDIR} 156141bf37aSespie @-mkdir -p ${CROSSDIR}/usr/${TARGET_CANON} 157a222f159Sespie @ln -sf ${CROSSDIR}/usr/include \ 158141bf37aSespie ${CROSSDIR}/usr/${TARGET_CANON}/include 159a222f159Sespie @ln -sf ${CROSSDIR}/usr/lib \ 160141bf37aSespie ${CROSSDIR}/usr/${TARGET_CANON}/lib 161141bf37aSespie @-mkdir -p ${CROSSDIR}/usr/${TARGET_CANON}/bin 162a222f159Sespie @(cd ${.CURDIR}/etc && DESTDIR=${CROSSDIR} ${MAKE} distrib-dirs) 163a222f159Sespie @touch ${CROSSDIRS} 164a222f159Sespie 165a222f159Sespie${CROSSOBJ}: ${CROSSDIRS} 166a222f159Sespie @-mkdir -p ${CROSSDIR}/usr/obj 167a222f159Sespie @(cd ${.CURDIR} && \ 168a222f159Sespie BSDOBJDIR=${CROSSDIR}/usr/obj \ 16988ff6307Sdrahn COMPILER_VERSION=${COMPILER_VERSION} \ 170a222f159Sespie MACHINE=${TARGET} \ 17156074f2fSmiod MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \ 172a222f159Sespie BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 173a222f159Sespie ${MAKE} obj) 174a222f159Sespie @touch ${CROSSOBJ} 175a222f159Sespie 176a222f159Sespie${CROSSINCLUDES}: ${CROSSOBJ} 177a222f159Sespie @-mkdir -p ${CROSSDIR}/usr/include 178a222f159Sespie @(cd ${.CURDIR}/include && \ 17988ff6307Sdrahn COMPILER_VERSION=${COMPILER_VERSION} \ 18056074f2fSmiod MACHINE=${TARGET} \ 18156074f2fSmiod MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \ 182a222f159Sespie MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 18356074f2fSmiod TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 184a222f159Sespie ${MAKE} prereq && \ 18588ff6307Sdrahn COMPILER_VERSION=${COMPILER_VERSION} \ 18656074f2fSmiod MACHINE=${TARGET} \ 18756074f2fSmiod MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \ 188a222f159Sespie MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 18956074f2fSmiod TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 190a222f159Sespie ${MAKE} DESTDIR=${CROSSDIR} includes) 191a222f159Sespie @touch ${CROSSINCLUDES} 192a222f159Sespie 193a222f159Sespie${CROSSBINUTILS}: ${CROSSINCLUDES} 1949102a13aSdrahn (cd ${.CURDIR}/${BINUTILS_DIR}; \ 195a222f159Sespie MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 196*6231a781Smiod PIE_DEFAULT=${PIE_DEFAULT} \ 19756074f2fSmiod TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 19856074f2fSmiod PATH=${CROSSPATH} \ 199a222f159Sespie ${MAKE} -f Makefile.bsd-wrapper depend && \ 200a222f159Sespie MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 201*6231a781Smiod PIE_DEFAULT=${PIE_DEFAULT} \ 20256074f2fSmiod TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 203a222f159Sespie ${MAKE} -f Makefile.bsd-wrapper all && \ 204a222f159Sespie DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 20588ff6307Sdrahn COMPILER_VERSION=${COMPILER_VERSION} \ 206*6231a781Smiod PIE_DEFAULT=${PIE_DEFAULT} \ 20756074f2fSmiod MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 20856074f2fSmiod TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 209a222f159Sespie ${MAKE} -f Makefile.bsd-wrapper install) 210a222f159Sespie @for cmd in ${BINUTILS}; do \ 211a071a6c7Sdrahn if [ -e ${CROSSDIR}/usr/bin/${TARGET_CANON}-$$cmd ] ; then \ 212a071a6c7Sdrahn cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-$$cmd \ 213a071a6c7Sdrahn ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-$$cmd ; \ 214a071a6c7Sdrahn ln -sf ${TARGET_CANON}-$$cmd \ 215141bf37aSespie ${CROSSDIR}/usr/${TARGET_CANON}/bin/$$cmd ;\ 216a071a6c7Sdrahn if [ -e ${CROSSDIR}/usr/bin/$$cmd ] ; then \ 217a071a6c7Sdrahn rm -f ${CROSSDIR}/usr/bin/$$cmd ;\ 218a071a6c7Sdrahn fi ;\ 219a071a6c7Sdrahn elif [ -e ${CROSSDIR}/usr/bin/$$cmd ] ; then \ 220a071a6c7Sdrahn cp -f ${CROSSDIR}/usr/bin/$$cmd \ 221a071a6c7Sdrahn ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-$$cmd ; \ 222a071a6c7Sdrahn ln -sf ${TARGET_CANON}-$$cmd \ 223a071a6c7Sdrahn ${CROSSDIR}/usr/${TARGET_CANON}/bin/$$cmd ;\ 224a071a6c7Sdrahn mv ${CROSSDIR}/usr/bin/$$cmd \ 225a071a6c7Sdrahn ${CROSSDIR}/usr/bin/${TARGET_CANON}-$$cmd ;\ 226a222f159Sespie fi ;\ 227a222f159Sespie done 228a222f159Sespie @touch ${CROSSBINUTILS} 229a222f159Sespie 230a222f159Sespie 231a222f159Sespie${CROSSGCC}: ${CROSSBINUTILS} 23288ff6307Sdrahn.if ${COMPILER_VERSION:L} == "gcc4" 23388ff6307Sdrahn (cd ${.CURDIR}/gnu/usr.bin/cc; \ 23488ff6307Sdrahn MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 23588ff6307Sdrahn TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 23688ff6307Sdrahn CROSSDIR=${CROSSDIR} \ 23788ff6307Sdrahn MACHINE=${TARGET} \ 23888ff6307Sdrahn PATH=${CROSSPATH} ${MAKE} depend ) 23988ff6307Sdrahn (cd ${.CURDIR}/gnu/usr.bin/cc; \ 24088ff6307Sdrahn MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 24188ff6307Sdrahn TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 24288ff6307Sdrahn CROSSDIR=${CROSSDIR} \ 24388ff6307Sdrahn MACHINE=${TARGET} \ 24488ff6307Sdrahn ${MAKE} all ) 24588ff6307Sdrahn (cd ${.CURDIR}/gnu/usr.bin/cc; \ 24688ff6307Sdrahn env CROSSDIR=${CROSSDIR} DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 24788ff6307Sdrahn TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 24888ff6307Sdrahn MACHINE=${TARGET} \ 24988ff6307Sdrahn PATH=${CROSSPATH} ${MAKE} install) 2508d925239Sdrahn cp -f ${CROSSDIR}/usr/bin/g++ ${CROSSDIR}/usr/bin/${TARGET_CANON}-g++ 25188ff6307Sdrahn cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-g++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-c++ 25288ff6307Sdrahn cp -f ${CROSSDIR}/usr/libexec/cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp 2538d925239Sdrahn cp -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc 25488ff6307Sdrahn ln -sf ${TARGET_CANON}-cc ${CROSSDIR}/usr/${TARGET_CANON}/bin/cc 2558d925239Sdrahn 2568d925239Sdrahn cp -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc 2578d925239Sdrahn rm -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/bin/g++ ${CROSSDIR}/usr/bin/cc ${CROSSDIR}/usr/libexec/cpp 2588d925239Sdrahn # fix links 25988ff6307Sdrahn rm -f ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 26088ff6307Sdrahn sed -e 's#/usr/libexec/cpp#${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp#' \ 261846f21d9Sdrahn -e 's/@GNUC@//' \ 26288ff6307Sdrahn -e 's#/usr/include#${CROSSDIR}/usr/include#' \ 26388ff6307Sdrahn -e 's/@dollaropt@//' \ 26488ff6307Sdrahn ${.CURDIR}/usr.bin/cpp/cpp.sh > ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 26588ff6307Sdrahn chmod ${BINMODE} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 26688ff6307Sdrahn chown ${BINOWN}:${BINGRP} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 26788ff6307Sdrahn ln -sf ${TARGET_CANON}-cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/cpp 26888ff6307Sdrahn.elif ${COMPILER_VERSION:L} == "gcc3" 269a222f159Sespie (cd ${.CURDIR}/gnu/usr.bin/gcc; \ 270a222f159Sespie MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 27156074f2fSmiod TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 27256074f2fSmiod CROSSDIR=${CROSSDIR} \ 273a071a6c7Sdrahn PATH=${CROSSPATH} ${MAKE} -f Makefile.bsd-wrapper depend && \ 274a222f159Sespie MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 27556074f2fSmiod TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 27656074f2fSmiod CROSSDIR=${CROSSDIR} \ 277a222f159Sespie ${MAKE} -f Makefile.bsd-wrapper all && \ 278a071a6c7Sdrahn env CROSSDIR=${CROSSDIR} DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 279a071a6c7Sdrahn PATH=${CROSSPATH} ${MAKE} -f Makefile.bsd-wrapper install) 280a071a6c7Sdrahn cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-g++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-c++ 281a071a6c7Sdrahn cp -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc 282a071a6c7Sdrahn cp -f ${CROSSDIR}/usr/libexec/cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp 283a071a6c7Sdrahn rm -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/bin/cc ${CROSSDIR}/usr/libexec/cpp 284a071a6c7Sdrahn ln -sf ${TARGET_CANON}-cc ${CROSSDIR}/usr/${TARGET_CANON}/bin/cc 285a071a6c7Sdrahn ln -sf ${TARGET_CANON}-c++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/c++ 286a071a6c7Sdrahn rm -f ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 287a071a6c7Sdrahn sed -e 's#/usr/libexec/cpp#${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp#' \ 288846f21d9Sdrahn -e 's/@GNUC@/-D__GNUC__/' \ 289a071a6c7Sdrahn -e 's#/usr/include#${CROSSDIR}/usr/include#' \ 290a071a6c7Sdrahn -e 's/@dollaropt@//' \ 291a071a6c7Sdrahn ${.CURDIR}/usr.bin/cpp/cpp.sh > ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 292a071a6c7Sdrahn chmod ${BINMODE} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 293a071a6c7Sdrahn chown ${BINOWN}:${BINGRP} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 294a071a6c7Sdrahn ln -sf ${TARGET_CANON}-cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/cpp 295a222f159Sespie.else 296a222f159Sespie (cd ${CROSSDIR}/usr/obj/gnu/egcs/gcc; \ 297a222f159Sespie /bin/sh ${.CURDIR}/gnu/egcs/gcc/configure \ 298a222f159Sespie --with-gnu-as --with-gnu-ld --prefix ${CROSSDIR}/usr \ 299141bf37aSespie --target ${TARGET_CANON} \ 300a222f159Sespie --enable-languages="c,c++" --enable-cpp --disable-nls \ 301a222f159Sespie --with-gxx-include-dir=${CROSSDIR}/usr/include/g++ && \ 302a222f159Sespie PATH=${CROSSPATH} ${MAKE} BISON=yacc LANGUAGES="${CROSSLANGS}" \ 303e1e6bc48Smiod CFLAGS="${CFLAGS} -DOPENBSD_CROSS -I${.CURDIR}/gnu/lib/libiberty/include" \ 304a222f159Sespie LIBIBERTY_INCLUDES=${.CURDIR}/gnu/lib/libiberty/include \ 305a222f159Sespie DEMANGLER_PROG= DEMANGLE_H= LDFLAGS="${LDSTATIC}" build_infodir=. \ 306a222f159Sespie GCC_FOR_TARGET="./xgcc -B./ -I${CROSSDIR}/usr/include" && \ 307a222f159Sespie ${MAKE} BISON=yacc LANGUAGES="${CROSSLANGS}" LDFLAGS="${LDSTATIC}" \ 308a222f159Sespie GCC_FOR_TARGET="./xgcc -B./ -I${CROSSDIR}/usr/include" \ 309e1e6bc48Smiod CFLAGS="${CFLAGS} -DOPENBSD_CROSS -I${.CURDIR}/gnu/lib/libiberty/include" \ 310a222f159Sespie LIBIBERTY_INCLUDES=${.CURDIR}/gnu/lib/libiberty/include \ 311a222f159Sespie build_infodir=. INSTALL_MAN= INSTALL_HEADERS_DIR= install) 312a071a6c7Sdrahn mv -f ${CROSSDIR}/usr/bin/cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp 313a071a6c7Sdrahn rm -f ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 314a071a6c7Sdrahn sed -e 's#/usr/libexec/cpp#${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp#' \ 315846f21d9Sdrahn -e 's/@GNUC@/-D__GNUC__/' \ 316a222f159Sespie -e 's#/usr/include#${CROSSDIR}/usr/include#' \ 317a071a6c7Sdrahn -e 's/@dollaropt@/-$$/' ${.CURDIR}/usr.bin/cpp/cpp.sh > \ 318a071a6c7Sdrahn ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 319a071a6c7Sdrahn chmod ${BINMODE} \ 320a071a6c7Sdrahn ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 321a071a6c7Sdrahn chown ${BINOWN}:${BINGRP}\ 322a071a6c7Sdrahn ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 323a071a6c7Sdrahn ln -sf ${TARGET_CANON}-cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/cpp 324a071a6c7Sdrahn ln -sf gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/cc 325a071a6c7Sdrahn ln -sf gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc 326a071a6c7Sdrahn cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-g++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-c++ 327a071a6c7Sdrahn ln -sf ${TARGET_CANON}-c++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/c++ 328a222f159Sespie.endif 329a222f159Sespie @touch ${CROSSGCC} 330a222f159Sespie 331a222f159Sespie# XXX MAKEOBJDIR maybe should be obj.${TARGET} here, revisit later 332a222f159Sespiecross-lib: ${CROSSGCC} 33356074f2fSmiod MACHINE=${TARGET} \ 33456074f2fSmiod MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \ 33556074f2fSmiod export MACHINE MACHINE_ARCH MACHINE_CPU; \ 336a222f159Sespie (cd ${.CURDIR}/lib; \ 337a222f159Sespie for lib in csu libc; do \ 338a222f159Sespie (cd $$lib; \ 339a222f159Sespie eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 3407cd9afdfSokan ${MAKE} depend all ;\ 341a071a6c7Sdrahn eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \ 3427cd9afdfSokan ${MAKE} install); \ 343a222f159Sespie done; \ 344a222f159Sespie eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 345a222f159Sespie SKIPDIR=\"${NO_CROSS} libocurses/PSD.doc\" \ 3467cd9afdfSokan ${MAKE} depend all ; \ 347a071a6c7Sdrahn eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \ 348a071a6c7Sdrahn SKIPDIR=\"${NO_CROSS} libocurses/PSD.doc\" \ 3497cd9afdfSokan ${MAKE} install) 350a222f159Sespie 351a222f159Sespiecross-bin: ${CROSSOBJ} 35256074f2fSmiod MACHINE=${TARGET} \ 35356074f2fSmiod MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \ 35456074f2fSmiod export MACHINE MACHINE_ARCH MACHINE_CPU; \ 355a222f159Sespie for i in libexec bin sbin usr.bin usr.sbin; do \ 356a222f159Sespie (cd ${.CURDIR}/$$i; \ 357a222f159Sespie eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 358a222f159Sespie SKIPDIR=\"${BINUTILS} ${NO_CROSS}\" \ 359a071a6c7Sdrahn ${MAKE} depend all ; \ 360a071a6c7Sdrahn eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \ 361a071a6c7Sdrahn SKIPDIR=\"${BINUTILS} ${NO_CROSS}\" \ 362a071a6c7Sdrahn ${MAKE} install); \ 363a071a6c7Sdrahn done 364a071a6c7Sdrahn 365a071a6c7Sdrahncross-gnu: ${CROSSOBJ} 36656074f2fSmiod MACHINE=${TARGET} \ 36756074f2fSmiod MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \ 36856074f2fSmiod export MACHINE MACHINE_ARCH MACHINE_CPU; \ 369a071a6c7Sdrahn for i in gnu/lib gnu/usr.sbin gnu/usr.bin ; do \ 370a071a6c7Sdrahn (cd ${.CURDIR}/$$i; \ 371a071a6c7Sdrahn eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 372a071a6c7Sdrahn SKIPDIR=\"${NO_CROSS}\" \ 373a071a6c7Sdrahn ${MAKE} depend all ; \ 374a071a6c7Sdrahn eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \ 375a071a6c7Sdrahn SKIPDIR=\"${NO_CROSS}\" \ 376a071a6c7Sdrahn ${MAKE} install); \ 377a071a6c7Sdrahn done 378a071a6c7Sdrahn 379a071a6c7Sdrahncross-share: ${CROSSOBJ} 38056074f2fSmiod MACHINE=${TARGET} \ 38156074f2fSmiod MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \ 38256074f2fSmiod export MACHINE MACHINE_ARCH MACHINE_CPU; \ 383a071a6c7Sdrahn for i in share; do \ 384a071a6c7Sdrahn (cd ${.CURDIR}/$$i; \ 385a071a6c7Sdrahn eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 386a071a6c7Sdrahn SKIPDIR=\"${NO_CROSS}\" \ 387a071a6c7Sdrahn ${MAKE} depend all install); \ 388a071a6c7Sdrahn done 389a071a6c7Sdrahn 390a071a6c7Sdrahncross-sys: ${CROSSOBJ} 39156074f2fSmiod MACHINE=${TARGET} \ 39256074f2fSmiod MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \ 39356074f2fSmiod export MACHINE MACHINE_ARCH MACHINE_CPU; \ 394a071a6c7Sdrahn for i in sys; do \ 395a071a6c7Sdrahn (cd ${.CURDIR}/$$i; \ 396a071a6c7Sdrahn eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 397a071a6c7Sdrahn SKIPDIR=\"${NO_CROSS}\" \ 398a222f159Sespie ${MAKE} depend all install); \ 399a222f159Sespie done 400a222f159Sespie 401a222f159Sespiecross-etc-root-var: ${CROSSOBJ} 402a222f159Sespie (cd ${.CURDIR}/etc && \ 40356074f2fSmiod MACHINE=${TARGET} \ 40456074f2fSmiod MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \ 40556074f2fSmiod DESTDIR=${CROSSDIR} \ 40656074f2fSmiod ${MAKE} distribution-etc-root-var) 407a222f159Sespie 408a222f159Sespiecross-depend: 409a222f159Sespie @(cd ${.CURDIR} && \ 410a222f159Sespie BSDOBJDIR=${CROSSDIR}/usr/obj \ 411a222f159Sespie BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 412a222f159Sespie SKIPDIR="${NO_CROSS}" \ 413a222f159Sespie ${MAKE} depend) 414a222f159Sespie 415a222f159Sespiecross-clean: 416a222f159Sespie @(cd ${.CURDIR} && \ 417a222f159Sespie BSDOBJDIR=${CROSSDIR}/usr/obj \ 418a222f159Sespie BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 419a222f159Sespie SKIPDIR="${NO_CROSS}" \ 420a222f159Sespie ${MAKE} clean) 421a222f159Sespie 422a222f159Sespiecross-cleandir: 423a222f159Sespie @(cd ${.CURDIR} && \ 424a222f159Sespie BSDOBJDIR=${CROSSDIR}/usr/obj \ 425a222f159Sespie BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 426a222f159Sespie SKIPDIR="${NO_CROSS}" \ 427a222f159Sespie ${MAKE} cleandir) 428