1*39646eb4Sdrahn# $OpenBSD: Makefile.cross,v 1.30 2010/05/31 17:38:03 drahn 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" || \ 10*39646eb4Sdrahn ${TARGET} == "gumstix" || ${TARGET} == "palm" || \ 11*39646eb4Sdrahn ${TARGET} == "zaurus") 12a78fab76SmiodTARGET_ARCH= arm 13a78fab76Smiod.elif (${TARGET} == "hp300" || ${TARGET} == "mac68k" || \ 14a78fab76Smiod ${TARGET} == "mvme68k") 15a78fab76SmiodTARGET_ARCH= m68k 16ad744452Smiod.elif (${TARGET} == "aviion" || ${TARGET} == "luna88k" || \ 17ad744452Smiod ${TARGET} == "mvme88k") 18a78fab76SmiodTARGET_ARCH= m88k 19a78fab76Smiod.elif (${TARGET} == "sgi") 20a78fab76SmiodTARGET_ARCH= mips64 2156074f2fSmiod.elif (${TARGET} == "loongson") 2256074f2fSmiodTARGET_ARCH= mips64el 2356074f2fSmiodTARGET_CPU= mips64 24990b83faSderaadt.elif (${TARGET} == "solbourne") 25990b83faSderaadtTARGET_ARCH= sparc 26e330ff7cSmiod.elif (${TARGET} == "macppc" || ${TARGET} == "mvmeppc" || \ 27e330ff7cSmiod ${TARGET} == "socppc") 28a78fab76SmiodTARGET_ARCH= powerpc 292f050487Smiod.elif (${TARGET} == "landisk") 302f050487SmiodTARGET_ARCH= sh 31a78fab76Smiod.else 32a78fab76SmiodTARGET_ARCH= ${TARGET} 33a78fab76Smiod.endif 3456074f2fSmiodTARGET_CPU?= ${TARGET_ARCH} 35a78fab76Smiod 36a071a6c7Sdrahn#CROSSCPPFLAGS?= -nostdinc -I${CROSSDIR}/usr/include 37a071a6c7Sdrahn#CROSSLDFLAGS?= -nostdlib -L${CROSSDIR}/usr/lib -static 38a071a6c7SdrahnCROSSCFLAGS?= ${CROSSCPPFLAGS} -O2 ${PIPE} ${DEBUG} 39a222f159SespieCROSSCXXFLAGS?= ${CROSSCPPFLAGS} 40a071a6c7Sdrahn#LDSTATIC?= -static 41a071a6c7Sdrahn 42a071a6c7Sdrahn# XXX 43a071a6c7SdrahnBINMODE?=555 44a071a6c7SdrahnBINOWN?=root 45a071a6c7SdrahnBINOWN?=bin 46a222f159Sespie 47a222f159SespieCROSSDIR= ${DESTDIR}/usr/cross/${TARGET} 48a071a6c7SdrahnCROSSENV= AR=${CROSSDIR}/usr/${TARGET_CANON}/bin/ar \ 49a071a6c7Sdrahn AS=${CROSSDIR}/usr/${TARGET_CANON}/bin/as \ 50a071a6c7Sdrahn CC=${CROSSDIR}/usr/${TARGET_CANON}/bin/cc \ 51a071a6c7Sdrahn CPP=${CROSSDIR}/usr/${TARGET_CANON}/bin/cpp \ 52a071a6c7Sdrahn CXX=${CROSSDIR}/usr/${TARGET_CANON}/bin/c++ \ 53a071a6c7Sdrahn LD=${CROSSDIR}/usr/${TARGET_CANON}/bin/ld \ 54a071a6c7Sdrahn OBJCOPY=${CROSSDIR}/usr/${TARGET_CANON}/bin/objcopy \ 55a071a6c7Sdrahn LORDER=/usr/bin/lorder RANLIB=${CROSSDIR}/usr/${TARGET_CANON}/bin/ranlib \ 56a071a6c7Sdrahn STRIP=${CROSSDIR}/usr/${TARGET_CANON}/bin/strip \ 57a071a6c7Sdrahn HOSTCC=\"${CC}\" HOSTCXX=\"${CXX}\" NOMAN= \ 58a222f159Sespie HOSTCFLAGS=\"${CFLAGS}\" HOSTCXXFLAGS=\"${CXXFLAGS}\" \ 59a222f159Sespie HOSTLDFLAGS=\"${LDFLAGS}\" \ 60a222f159Sespie CFLAGS=\"${CROSSCFLAGS}\" CPPFLAGS=\"${CROSSCPPFLAGS}\" \ 61a222f159Sespie CXXFLAGS=\"${CROSSCXXFLAGS}\" \ 62a222f159Sespie LDFLAGS=\"${CROSSLDFLAGS}\" 63a071a6c7SdrahnCROSSADDPATH=:${CROSSDIR}/usr/${TARGET_CANON}/bin 64a071a6c7SdrahnCROSSPATH= /usr/bin:/bin:/usr/sbin:/sbin${CROSSADDPATH} 65a222f159SespieCROSSLANGS?= c c++ 66a222f159Sespie 67141bf37aSespieTARGET_CANON=`cat ${CROSSDIR}/TARGET_CANON` 68141bf37aSespie 69a222f159SespieCROSSDIRS= ${CROSSDIR}/.dirs_done 70a071a6c7SdrahnCROSSOBJ= ${CROSSDIR}/.obj_done 71a071a6c7SdrahnCROSSINCLUDES= ${CROSSDIR}/.includes_done 72a071a6c7SdrahnCROSSBINUTILS= ${CROSSDIR}/.binutils_done 73a071a6c7SdrahnCROSSGCC= ${CROSSDIR}/.gcc_done 74a071a6c7Sdrahn#NO_CROSS= isakmpd tn3270 keynote sectok ssh 75a222f159Sespie 76141bf37aSespie# no libcrypto.... these won't build 77a071a6c7Sdrahn#NO_CROSS+= dc login_krb5 login_krb5-or-pwd passwd ppp tcpdump telnet \ 78a071a6c7Sdrahn# ftp gzsig sasyncd vnconfig 79a071a6c7Sdrahn 80141bf37aSespie# need host setup for ydr 81141bf37aSespieNO_CROSS+=afs 82141bf37aSespie# explicit cross-compile 83141bf37aSespieNO_CROSS+=bind 84a071a6c7SdrahnNO_CROSS+=httpd 85a071a6c7SdrahnNO_CROSS+=microcode 86a071a6c7SdrahnNO_CROSS+=groff lynx binutils perl texinfo gcc cvs 87141bf37aSespie 88a222f159Sespiecross-dirs: ${CROSSDIRS} 89a222f159Sespiecross-obj: ${CROSSOBJ} 90a222f159Sespiecross-includes: ${CROSSINCLUDES} 91a222f159Sespiecross-binutils: ${CROSSBINUTILS} 92a222f159Sespiecross-gcc: ${CROSSGCC} 93a222f159Sespie 94a222f159Sespiecross-env: 95a222f159Sespie @echo ${CROSSENV} MACHINE=${TARGET} \ 96d49bf4ccSmickey MACHINE_ARCH=`cat ${CROSSDIR}/TARGET_ARCH` \ 9756074f2fSmiod MACHINE_CPU=`cat ${CROSSDIR}/TARGET_CPU` \ 98d49bf4ccSmickey BSDOBJDIR=${CROSSDIR}/usr/obj \ 99d49bf4ccSmickey BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} 100a222f159Sespie 101a222f159Sespie${CROSSDIRS}: 102a222f159Sespie @-mkdir -p ${CROSSDIR} 103a78fab76Smiod @echo ${TARGET_ARCH} > ${CROSSDIR}/TARGET_ARCH 104a222f159Sespie @echo TARGET_ARCH is `cat ${CROSSDIR}/TARGET_ARCH` 10556074f2fSmiod @echo ${TARGET_CPU} > ${CROSSDIR}/TARGET_CPU 10656074f2fSmiod @echo TARGET_CPU is `cat ${CROSSDIR}/TARGET_CPU` 107a222f159Sespie @eval `grep '^osr=' sys/conf/newvers.sh`; \ 10856074f2fSmiod echo ${TARGET_ARCH}-unknown-openbsd$$osr > \ 109a222f159Sespie ${CROSSDIR}/TARGET_CANON 110a222f159Sespie @-mkdir -p ${CROSSDIR} 111141bf37aSespie @-mkdir -p ${CROSSDIR}/usr/${TARGET_CANON} 112a222f159Sespie @ln -sf ${CROSSDIR}/usr/include \ 113141bf37aSespie ${CROSSDIR}/usr/${TARGET_CANON}/include 114a222f159Sespie @ln -sf ${CROSSDIR}/usr/lib \ 115141bf37aSespie ${CROSSDIR}/usr/${TARGET_CANON}/lib 116141bf37aSespie @-mkdir -p ${CROSSDIR}/usr/${TARGET_CANON}/bin 117a222f159Sespie @(cd ${.CURDIR}/etc && DESTDIR=${CROSSDIR} ${MAKE} distrib-dirs) 118a222f159Sespie @touch ${CROSSDIRS} 119a222f159Sespie 120a222f159Sespie${CROSSOBJ}: ${CROSSDIRS} 121a222f159Sespie @-mkdir -p ${CROSSDIR}/usr/obj 122a222f159Sespie @(cd ${.CURDIR} && \ 123a222f159Sespie BSDOBJDIR=${CROSSDIR}/usr/obj \ 124a222f159Sespie MACHINE=${TARGET} \ 12556074f2fSmiod MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \ 126a222f159Sespie BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 127a222f159Sespie ${MAKE} obj) 128a222f159Sespie @touch ${CROSSOBJ} 129a222f159Sespie 130a222f159Sespie${CROSSINCLUDES}: ${CROSSOBJ} 131a222f159Sespie @-mkdir -p ${CROSSDIR}/usr/include 132a222f159Sespie @(cd ${.CURDIR}/include && \ 13356074f2fSmiod MACHINE=${TARGET} \ 13456074f2fSmiod MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \ 135a222f159Sespie MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 13656074f2fSmiod TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 137a222f159Sespie ${MAKE} prereq && \ 13856074f2fSmiod MACHINE=${TARGET} \ 13956074f2fSmiod MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \ 140a222f159Sespie MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 14156074f2fSmiod TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 142a222f159Sespie ${MAKE} DESTDIR=${CROSSDIR} includes) 143a222f159Sespie @touch ${CROSSINCLUDES} 144a222f159Sespie 145a78fab76Smiod.if (${TARGET_ARCH} == "m68k" || ${TARGET_ARCH} == "m88k" || \ 146a78fab76Smiod ${TARGET_ARCH} == "vax") 147a222f159SespieBINUTILS= ar as ld nm ranlib objcopy objdump strings strip 148a222f159SespieNEW_BINUTILS?= No 149a222f159Sespie.else 150a222f159SespieBINUTILS= ar as gasp ld nm objcopy objdump ranlib readelf size \ 151a222f159Sespie strings strip 152a222f159SespieNEW_BINUTILS?= Yes 153a222f159Sespie.endif 154a222f159Sespie 155a222f159Sespie${CROSSBINUTILS}: ${CROSSINCLUDES} 156a222f159Sespie (cd ${.CURDIR}/gnu/usr.bin/binutils; \ 157a222f159Sespie MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 158e829c094Smiod USING_NEW_BINUTILS=${NEW_BINUTILS} \ 15956074f2fSmiod TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 16056074f2fSmiod PATH=${CROSSPATH} \ 161a222f159Sespie ${MAKE} -f Makefile.bsd-wrapper depend && \ 162a222f159Sespie MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 163e829c094Smiod USING_NEW_BINUTILS=${NEW_BINUTILS} \ 16456074f2fSmiod TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 165a222f159Sespie ${MAKE} -f Makefile.bsd-wrapper all && \ 166a222f159Sespie DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 167e829c094Smiod USING_NEW_BINUTILS=${NEW_BINUTILS} \ 16856074f2fSmiod MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 16956074f2fSmiod USING_NEW_BINUTILS=${NEW_BINUTILS} \ 17056074f2fSmiod TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 171a222f159Sespie ${MAKE} -f Makefile.bsd-wrapper install) 172e829c094Smiod.if ${NEW_BINUTILS:L} != "yes" 173a222f159Sespie (cd ${.CURDIR}/gnu/usr.bin/gas; \ 174141bf37aSespie TARGET_MACHINE_ARCH=${TARGET_ARCH} \ 175a222f159Sespie MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} depend all; \ 176141bf37aSespie TARGET_MACHINE_ARCH=${TARGET_ARCH} \ 177a222f159Sespie DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 178a222f159Sespie ${MAKE} NOMAN= install) 179a222f159Sespie ln -sf ${CROSSDIR}/usr/bin/as \ 1804149f057Smiod ${CROSSDIR}/usr/${TARGET_CANON}/bin/as 181a222f159Sespie (cd ${.CURDIR}/gnu/usr.bin/ld; \ 182141bf37aSespie TARGET_MACHINE_ARCH=${TARGET_ARCH} \ 183a222f159Sespie MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 184a222f159Sespie ${MAKE} NOPIC= NOMAN= depend all; \ 185141bf37aSespie TARGET_MACHINE_ARCH=${TARGET_ARCH} \ 186a222f159Sespie DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 187a222f159Sespie ${MAKE} NOPIC= NOMAN= install) 188a222f159Sespie ln -sf ${CROSSDIR}/usr/bin/ld \ 189141bf37aSespie ${CROSSDIR}/usr/${TARGET_CANON}/bin/ld 190a222f159Sespie (cd ${.CURDIR}/usr.bin/ar; \ 191a57924a5Smiod ELF_TOOLCHAIN=no \ 192a222f159Sespie MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} NOMAN= depend all; \ 193a57924a5Smiod ELF_TOOLCHAIN=no \ 194a222f159Sespie DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 195a222f159Sespie ${MAKE} NOMAN= install) 196a222f159Sespie ln -sf ${CROSSDIR}/usr/bin/ar \ 197141bf37aSespie ${CROSSDIR}/usr/${TARGET_CANON}/bin/ar 198a222f159Sespie (cd ${.CURDIR}/usr.bin/ranlib; \ 199a57924a5Smiod ELF_TOOLCHAIN=no \ 200a222f159Sespie MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} NOMAN= depend all; \ 201a57924a5Smiod ELF_TOOLCHAIN=no \ 202a222f159Sespie DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 203a222f159Sespie ${MAKE} NOMAN= install) 204a222f159Sespie ln -sf ${CROSSDIR}/usr/bin/ranlib \ 205141bf37aSespie ${CROSSDIR}/usr/${TARGET_CANON}/bin/ranlib 206a222f159Sespie (cd ${.CURDIR}/usr.bin/strip; \ 207a222f159Sespie MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 208141bf37aSespie ${MAKE} TARGET_MACHINE_ARCH=${TARGET_ARCH} \ 209a222f159Sespie NOMAN= depend all; \ 210a222f159Sespie DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 211141bf37aSespie ${MAKE} TARGET_MACHINE_ARCH=${TARGET_ARCH} \ 212a222f159Sespie NOMAN= install) 213a222f159Sespie ln -sf ${CROSSDIR}/usr/bin/strip \ 214141bf37aSespie ${CROSSDIR}/usr/${TARGET_CANON}/bin/strip 215a222f159Sespie.endif 216a222f159Sespie @for cmd in ${BINUTILS}; do \ 217a071a6c7Sdrahn if [ -e ${CROSSDIR}/usr/bin/${TARGET_CANON}-$$cmd ] ; then \ 218a071a6c7Sdrahn cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-$$cmd \ 219a071a6c7Sdrahn ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-$$cmd ; \ 220a071a6c7Sdrahn ln -sf ${TARGET_CANON}-$$cmd \ 221141bf37aSespie ${CROSSDIR}/usr/${TARGET_CANON}/bin/$$cmd ;\ 222a071a6c7Sdrahn if [ -e ${CROSSDIR}/usr/bin/$$cmd ] ; then \ 223a071a6c7Sdrahn rm -f ${CROSSDIR}/usr/bin/$$cmd ;\ 224a071a6c7Sdrahn fi ;\ 225a071a6c7Sdrahn elif [ -e ${CROSSDIR}/usr/bin/$$cmd ] ; then \ 226a071a6c7Sdrahn cp -f ${CROSSDIR}/usr/bin/$$cmd \ 227a071a6c7Sdrahn ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-$$cmd ; \ 228a071a6c7Sdrahn ln -sf ${TARGET_CANON}-$$cmd \ 229a071a6c7Sdrahn ${CROSSDIR}/usr/${TARGET_CANON}/bin/$$cmd ;\ 230a071a6c7Sdrahn mv ${CROSSDIR}/usr/bin/$$cmd \ 231a071a6c7Sdrahn ${CROSSDIR}/usr/bin/${TARGET_CANON}-$$cmd ;\ 232a222f159Sespie fi ;\ 233a222f159Sespie done 234a222f159Sespie @touch ${CROSSBINUTILS} 235a222f159Sespie 236a222f159Sespie# bsd.own.mk can't do it for us 237df2fec26Smickey.if ${TARGET_ARCH} == "m68k" || ${TARGET_ARCH} == "m88k" || \ 238a78fab76Smiod ${TARGET_ARCH} == "sparc" || ${TARGET_ARCH} == "vax" 239ca88db65SespieTARGET_USE_GCC3=No 24019bc13dbSmickey.else 24119bc13dbSmickeyTARGET_USE_GCC3=Yes 242a222f159Sespie.endif 243a222f159Sespie 244a222f159Sespie${CROSSGCC}: ${CROSSBINUTILS} 245ca88db65Sespie.if ${TARGET_USE_GCC3:L} == "yes" 246a222f159Sespie (cd ${.CURDIR}/gnu/usr.bin/gcc; \ 247a222f159Sespie MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 24856074f2fSmiod TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 24956074f2fSmiod CROSSDIR=${CROSSDIR} \ 250a071a6c7Sdrahn PATH=${CROSSPATH} ${MAKE} -f Makefile.bsd-wrapper depend && \ 251a222f159Sespie MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 25256074f2fSmiod TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \ 25356074f2fSmiod CROSSDIR=${CROSSDIR} \ 254a222f159Sespie ${MAKE} -f Makefile.bsd-wrapper all && \ 255a071a6c7Sdrahn env CROSSDIR=${CROSSDIR} DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 256a071a6c7Sdrahn PATH=${CROSSPATH} ${MAKE} -f Makefile.bsd-wrapper install) 257a071a6c7Sdrahn cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-g++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-c++ 258a071a6c7Sdrahn cp -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc 259a071a6c7Sdrahn cp -f ${CROSSDIR}/usr/libexec/cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp 260a071a6c7Sdrahn rm -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/bin/cc ${CROSSDIR}/usr/libexec/cpp 261a071a6c7Sdrahn ln -sf ${TARGET_CANON}-cc ${CROSSDIR}/usr/${TARGET_CANON}/bin/cc 262a071a6c7Sdrahn ln -sf ${TARGET_CANON}-c++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/c++ 263a071a6c7Sdrahn rm -f ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 264a071a6c7Sdrahn sed -e 's#/usr/libexec/cpp#${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp#' \ 265a071a6c7Sdrahn -e 's#/usr/include#${CROSSDIR}/usr/include#' \ 266a071a6c7Sdrahn -e 's/@dollaropt@//' \ 267a071a6c7Sdrahn ${.CURDIR}/usr.bin/cpp/cpp.sh > ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 268a071a6c7Sdrahn chmod ${BINMODE} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 269a071a6c7Sdrahn chown ${BINOWN}:${BINGRP} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 270a071a6c7Sdrahn ln -sf ${TARGET_CANON}-cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/cpp 271a222f159Sespie.else 272a222f159Sespie (cd ${CROSSDIR}/usr/obj/gnu/egcs/gcc; \ 273a222f159Sespie /bin/sh ${.CURDIR}/gnu/egcs/gcc/configure \ 274a222f159Sespie --with-gnu-as --with-gnu-ld --prefix ${CROSSDIR}/usr \ 275141bf37aSespie --target ${TARGET_CANON} \ 276a222f159Sespie --enable-languages="c,c++" --enable-cpp --disable-nls \ 277a222f159Sespie --with-gxx-include-dir=${CROSSDIR}/usr/include/g++ && \ 278a222f159Sespie PATH=${CROSSPATH} ${MAKE} BISON=yacc LANGUAGES="${CROSSLANGS}" \ 279a222f159Sespie CFLAGS="${CFLAGS} -I${.CURDIR}/gnu/lib/libiberty/include" \ 280a222f159Sespie LIBIBERTY_INCLUDES=${.CURDIR}/gnu/lib/libiberty/include \ 281a222f159Sespie DEMANGLER_PROG= DEMANGLE_H= LDFLAGS="${LDSTATIC}" build_infodir=. \ 282a222f159Sespie GCC_FOR_TARGET="./xgcc -B./ -I${CROSSDIR}/usr/include" && \ 283a222f159Sespie ${MAKE} BISON=yacc LANGUAGES="${CROSSLANGS}" LDFLAGS="${LDSTATIC}" \ 284a222f159Sespie GCC_FOR_TARGET="./xgcc -B./ -I${CROSSDIR}/usr/include" \ 285a222f159Sespie CFLAGS="${CFLAGS} -I${.CURDIR}/gnu/lib/libiberty/include" \ 286a222f159Sespie LIBIBERTY_INCLUDES=${.CURDIR}/gnu/lib/libiberty/include \ 287a222f159Sespie build_infodir=. INSTALL_MAN= INSTALL_HEADERS_DIR= install) 288a071a6c7Sdrahn mv -f ${CROSSDIR}/usr/bin/cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp 289a071a6c7Sdrahn rm -f ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 290a071a6c7Sdrahn sed -e 's#/usr/libexec/cpp#${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp#' \ 291a222f159Sespie -e 's#/usr/include#${CROSSDIR}/usr/include#' \ 292a071a6c7Sdrahn -e 's/@dollaropt@/-$$/' ${.CURDIR}/usr.bin/cpp/cpp.sh > \ 293a071a6c7Sdrahn ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 294a071a6c7Sdrahn chmod ${BINMODE} \ 295a071a6c7Sdrahn ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 296a071a6c7Sdrahn chown ${BINOWN}:${BINGRP}\ 297a071a6c7Sdrahn ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp 298a071a6c7Sdrahn ln -sf ${TARGET_CANON}-cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/cpp 299a071a6c7Sdrahn ln -sf gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/cc 300a071a6c7Sdrahn ln -sf gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc 301a071a6c7Sdrahn cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-g++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-c++ 302a071a6c7Sdrahn ln -sf ${TARGET_CANON}-c++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/c++ 303a222f159Sespie.endif 304a222f159Sespie @touch ${CROSSGCC} 305a222f159Sespie 306a222f159Sespie# XXX MAKEOBJDIR maybe should be obj.${TARGET} here, revisit later 307a222f159Sespiecross-lib: ${CROSSGCC} 30856074f2fSmiod MACHINE=${TARGET} \ 30956074f2fSmiod MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \ 31056074f2fSmiod export MACHINE MACHINE_ARCH MACHINE_CPU; \ 311a222f159Sespie (cd ${.CURDIR}/lib; \ 312a222f159Sespie for lib in csu libc; do \ 313a222f159Sespie (cd $$lib; \ 314a222f159Sespie eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 315a071a6c7Sdrahn ${MAKE} WANTLINT=no depend all ;\ 316a071a6c7Sdrahn eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \ 317a071a6c7Sdrahn ${MAKE} WANTLINT=no install); \ 318a222f159Sespie done; \ 319a222f159Sespie eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 320a222f159Sespie SKIPDIR=\"${NO_CROSS} libocurses/PSD.doc\" \ 321a071a6c7Sdrahn ${MAKE} WANTLINT=no depend all ; \ 322a071a6c7Sdrahn eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \ 323a071a6c7Sdrahn SKIPDIR=\"${NO_CROSS} libocurses/PSD.doc\" \ 324a071a6c7Sdrahn ${MAKE} WANTLINT=no install) 325a222f159Sespie 326a222f159Sespiecross-bin: ${CROSSOBJ} 32756074f2fSmiod MACHINE=${TARGET} \ 32856074f2fSmiod MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \ 32956074f2fSmiod export MACHINE MACHINE_ARCH MACHINE_CPU; \ 330a222f159Sespie for i in libexec bin sbin usr.bin usr.sbin; do \ 331a222f159Sespie (cd ${.CURDIR}/$$i; \ 332a222f159Sespie eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 333a222f159Sespie SKIPDIR=\"${BINUTILS} ${NO_CROSS}\" \ 334a071a6c7Sdrahn ${MAKE} depend all ; \ 335a071a6c7Sdrahn eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \ 336a071a6c7Sdrahn SKIPDIR=\"${BINUTILS} ${NO_CROSS}\" \ 337a071a6c7Sdrahn ${MAKE} install); \ 338a071a6c7Sdrahn done 339a071a6c7Sdrahn 340a071a6c7Sdrahncross-gnu: ${CROSSOBJ} 34156074f2fSmiod MACHINE=${TARGET} \ 34256074f2fSmiod MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \ 34356074f2fSmiod export MACHINE MACHINE_ARCH MACHINE_CPU; \ 344a071a6c7Sdrahn for i in gnu/lib gnu/usr.sbin gnu/usr.bin ; do \ 345a071a6c7Sdrahn (cd ${.CURDIR}/$$i; \ 346a071a6c7Sdrahn eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 347a071a6c7Sdrahn SKIPDIR=\"${NO_CROSS}\" \ 348a071a6c7Sdrahn ${MAKE} depend all ; \ 349a071a6c7Sdrahn eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \ 350a071a6c7Sdrahn SKIPDIR=\"${NO_CROSS}\" \ 351a071a6c7Sdrahn ${MAKE} install); \ 352a071a6c7Sdrahn done 353a071a6c7Sdrahn 354a071a6c7Sdrahncross-share: ${CROSSOBJ} 35556074f2fSmiod MACHINE=${TARGET} \ 35656074f2fSmiod MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \ 35756074f2fSmiod export MACHINE MACHINE_ARCH MACHINE_CPU; \ 358a071a6c7Sdrahn for i in share; do \ 359a071a6c7Sdrahn (cd ${.CURDIR}/$$i; \ 360a071a6c7Sdrahn eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 361a071a6c7Sdrahn SKIPDIR=\"${NO_CROSS}\" \ 362a071a6c7Sdrahn ${MAKE} depend all install); \ 363a071a6c7Sdrahn done 364a071a6c7Sdrahn 365a071a6c7Sdrahncross-sys: ${CROSSOBJ} 36656074f2fSmiod MACHINE=${TARGET} \ 36756074f2fSmiod MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \ 36856074f2fSmiod export MACHINE MACHINE_ARCH MACHINE_CPU; \ 369a071a6c7Sdrahn for i in sys; do \ 370a071a6c7Sdrahn (cd ${.CURDIR}/$$i; \ 371a071a6c7Sdrahn eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 372a071a6c7Sdrahn SKIPDIR=\"${NO_CROSS}\" \ 373a222f159Sespie ${MAKE} depend all install); \ 374a222f159Sespie done 375a222f159Sespie 376a222f159Sespiecross-etc-root-var: ${CROSSOBJ} 377a222f159Sespie (cd ${.CURDIR}/etc && \ 37856074f2fSmiod MACHINE=${TARGET} \ 37956074f2fSmiod MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \ 38056074f2fSmiod DESTDIR=${CROSSDIR} \ 38156074f2fSmiod ${MAKE} distribution-etc-root-var) 382a222f159Sespie 383a222f159Sespiecross-depend: 384a222f159Sespie @(cd ${.CURDIR} && \ 385a222f159Sespie BSDOBJDIR=${CROSSDIR}/usr/obj \ 386a222f159Sespie BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 387a222f159Sespie SKIPDIR="${NO_CROSS}" \ 388a222f159Sespie ${MAKE} depend) 389a222f159Sespie 390a222f159Sespiecross-clean: 391a222f159Sespie @(cd ${.CURDIR} && \ 392a222f159Sespie BSDOBJDIR=${CROSSDIR}/usr/obj \ 393a222f159Sespie BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 394a222f159Sespie SKIPDIR="${NO_CROSS}" \ 395a222f159Sespie ${MAKE} clean) 396a222f159Sespie 397a222f159Sespiecross-cleandir: 398a222f159Sespie @(cd ${.CURDIR} && \ 399a222f159Sespie BSDOBJDIR=${CROSSDIR}/usr/obj \ 400a222f159Sespie BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ 401a222f159Sespie SKIPDIR="${NO_CROSS}" \ 402a222f159Sespie ${MAKE} cleandir) 403