[BACK]Return to Makefile.cross CVS log [TXT][DIR] Up to [local] / src

Diff for /src/Makefile.cross between version 1.17 and 1.68

version 1.17, 2006/05/09 21:17:11 version 1.68, 2013/09/04 14:43:27
Line 1 
Line 1 
 # $OpenBSD$  # $OpenBSD$
   
 cross-tools:    cross-includes cross-binutils cross-gcc cross-lib  cross-tools:    cross-includes cross-binutils cross-gcc cross-lib
 cross-distrib:  cross-tools cross-bin cross-etc-root-var  cross-distrib:  cross-tools cross-bin cross-share cross-sys cross-etc-root-var
   # cross-gnu \
   
 # 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} == "cats" || ${TARGET} == "zaurus")  .if     (${TARGET} == "armish" || ${TARGET} == "armv7" || \
            ${TARGET} == "zaurus")
 TARGET_ARCH=    arm  TARGET_ARCH=    arm
 .elif   (${TARGET} == "hp300" || ${TARGET} == "mac68k" || \  .elif   (${TARGET} == "hp300" || ${TARGET} == "mvme68k")
          ${TARGET} == "mvme68k")  
 TARGET_ARCH=    m68k  TARGET_ARCH=    m68k
 .elif   (${TARGET} == "aviion" || ${TARGET} == "luna88k" || \  .elif   (${TARGET} == "aviion" || ${TARGET} == "luna88k" || \
          ${TARGET} == "mvme88k")           ${TARGET} == "mvme88k")
 TARGET_ARCH=    m88k  TARGET_ARCH=    m88k
 .elif   (${TARGET} == "sgi")  .elif   (${TARGET} == "sgi" || ${TARGET} == "octeon")
 TARGET_ARCH=    mips64  TARGET_ARCH=    mips64
 .elif   (${TARGET} == "macppc" || ${TARGET} == "mvmeppc")  .elif   (${TARGET} == "loongson")
   TARGET_ARCH=    mips64el
   TARGET_CPU=     mips64
   .elif   (${TARGET} == "solbourne")
   TARGET_ARCH=    sparc
   .elif   (${TARGET} == "macppc" || ${TARGET} == "socppc")
 TARGET_ARCH=    powerpc  TARGET_ARCH=    powerpc
   .elif   (${TARGET} == "landisk")
   TARGET_ARCH=    sh
 .else  .else
 TARGET_ARCH=    ${TARGET}  TARGET_ARCH=    ${TARGET}
 .endif  .endif
   TARGET_CPU?=    ${TARGET_ARCH}
   
 CROSSCPPFLAGS?= -nostdinc -I${CROSSDIR}/usr/include  # List of LP64 archs
 CROSSLDFLAGS?=  -nostdlib -L${CROSSDIR}/usr/lib -static  # XXX move to bsd.*.mk?
 CROSSCFLAGS?=   ${CROSSCPPFLAGS}  LP64_ARCH = amd64 alpha hppa64 ia64 mips64 sparc64 vax64
   
   TARGET_IS_LP64 =
   MACHINE_IS_LP64 =
   .for _ in ${LP64_ARCH}
   . if !empty(TARGET_ARCH:M$_)
       TARGET_IS_LP64 = yes
   . endif
   . if !empty(MACHINE_ARCH:M$_)
       MACHINE_IS_LP64 = yes
   . endif
   .endfor
   
   #CROSSCPPFLAGS?=        -nostdinc -I${CROSSDIR}/usr/include
   #CROSSLDFLAGS?= -nostdlib -L${CROSSDIR}/usr/lib -static
   CROSSCFLAGS?=   ${CROSSCPPFLAGS} -O2 ${PIPE} ${DEBUG}
 CROSSCXXFLAGS?= ${CROSSCPPFLAGS}  CROSSCXXFLAGS?= ${CROSSCPPFLAGS}
 LDSTATIC?=      -static  #LDSTATIC?=     -static
   
 CROSSDIR=       ${DESTDIR}/usr/cross/${TARGET}  CROSSDIR=       ${DESTDIR}/usr/cross/${TARGET}
 CROSSENV=       AR=${CROSSDIR}/usr/bin/ar AS=${CROSSDIR}/usr/bin/as \  CROSSENV=       AR=${CROSSDIR}/usr/${TARGET_CANON}/bin/ar \
                 CC=${CROSSDIR}/usr/bin/cc CPP=${CROSSDIR}/usr/bin/cpp \                  AS=${CROSSDIR}/usr/${TARGET_CANON}/bin/as \
                 CXX=${CROSSDIR}/usr/bin/c++ \                  CC=${CROSSDIR}/usr/${TARGET_CANON}/bin/cc \
                 LD=${CROSSDIR}/usr/bin/ld \                  CPP=${CROSSDIR}/usr/${TARGET_CANON}/bin/cpp \
                 LORDER=/usr/bin/lorder RANLIB=${CROSSDIR}/usr/bin/ranlib \                  CXX=${CROSSDIR}/usr/${TARGET_CANON}/bin/c++ \
                 STRIP=${CROSSDIR}/usr/bin/strip \                  LD=${CROSSDIR}/usr/${TARGET_CANON}/bin/ld \
                 HOSTCC=\"${CC}\" HOSTCXX=\"${CXX}\" NOMAN= DESTDIR=${CROSSDIR} \                  OBJCOPY=${CROSSDIR}/usr/${TARGET_CANON}/bin/objcopy \
                   LORDER=/usr/bin/lorder RANLIB=${CROSSDIR}/usr/${TARGET_CANON}/bin/ranlib \
                   STRIP=${CROSSDIR}/usr/${TARGET_CANON}/bin/strip \
                   HOSTCC=\"${CC}\" HOSTCXX=\"${CXX}\" NOMAN= \
                 HOSTCFLAGS=\"${CFLAGS}\" HOSTCXXFLAGS=\"${CXXFLAGS}\" \                  HOSTCFLAGS=\"${CFLAGS}\" HOSTCXXFLAGS=\"${CXXFLAGS}\" \
                 HOSTLDFLAGS=\"${LDFLAGS}\" \                  HOSTLDFLAGS=\"${LDFLAGS}\" \
                 CFLAGS=\"${CROSSCFLAGS}\" CPPFLAGS=\"${CROSSCPPFLAGS}\" \                  CFLAGS=\"${CROSSCFLAGS}\" CPPFLAGS=\"${CROSSCPPFLAGS}\" \
                 CXXFLAGS=\"${CROSSCXXFLAGS}\" \                  CXXFLAGS=\"${CROSSCXXFLAGS}\" \
                 LDFLAGS=\"${CROSSLDFLAGS}\"                  LDFLAGS=\"${CROSSLDFLAGS}\"
 CROSSPATH=      ${PATH}:${CROSSDIR}/usr/bin  CROSSADDPATH=:${CROSSDIR}/usr/${TARGET_CANON}/bin
   CROSSPATH=      /usr/bin:/bin:/usr/sbin:/sbin${CROSSADDPATH}
 CROSSLANGS?=    c c++  CROSSLANGS?=    c c++
   
 TARGET_CANON=`cat ${CROSSDIR}/TARGET_CANON`  TARGET_CANON=`cat ${CROSSDIR}/TARGET_CANON`
   
 CROSSDIRS=      ${CROSSDIR}/.dirs_done  CROSSDIRS=      ${CROSSDIR}/.dirs_done
 CROSSOBJ=       ${CROSSDIR}/usr/obj/.obj_done  CROSSOBJ=       ${CROSSDIR}/.obj_done
 CROSSINCLUDES=  ${CROSSDIR}/usr/include/.includes_done  CROSSINCLUDES=  ${CROSSDIR}/.includes_done
 CROSSBINUTILS=  ${CROSSDIR}/usr/bin/.binutils_done  CROSSBINUTILS=  ${CROSSDIR}/.binutils_done
 CROSSGCC=       ${CROSSDIR}/usr/bin/.gcc_done  CROSSGCC=       ${CROSSDIR}/.gcc_done
 NO_CROSS=       isakmpd tn3270 less sudo openssl libkeynote libssl \  #NO_CROSS=      isakmpd keynote ssh
                 keynote sectok ssh  
   
   .include <bsd.own.mk>
   
   .for _arch in ${TARGET_ARCH}
   .if !empty(GCC3_ARCH:M${_arch})
   COMPILER_VERSION=gcc3
   .else
   COMPILER_VERSION=gcc4
   .endif
   
   .if !empty(BINUTILS217_ARCH:M${_arch})
   BINUTILS_VERSION=binutils-2.17
   .else
   BINUTILS_VERSION=binutils
   .endif
   
   .if !empty(PIE_ARCH:M${_arch})
   NOPIE_FLAGS=-fno-pie
   NOPIE_LDFLAGS=-nopie
   PIE_DEFAULT=${DEFAULT_PIE_DEF}
   .else
   NOPIE_FLAGS=
   PIE_DEFAULT=
   .endif
   
   BINUTILS=       ar as gasp ld nm objcopy objdump ranlib readelf size \
                   strings strip
   BINUTILS_DIR=gnu/usr.bin/${BINUTILS_VERSION}
   .endfor
   
 # no libcrypto.... these won't build  # no libcrypto.... these won't build
 NO_CROSS+=      dc login_krb5 login_krb5-or-pwd passwd ppp tcpdump telnet  #NO_CROSS+=     dc login_krb5 login_krb5-or-pwd passwd ppp tcpdump telnet \
 # need host setup for ydr  #               ftp gzsig sasyncd vnconfig
 NO_CROSS+=afs  
 # explicit cross-compile  # explicit cross-compile
 NO_CROSS+=bind  NO_CROSS+=bind
   NO_CROSS+=httpd
   NO_CROSS+=microcode
   NO_CROSS+=groff lynx binutils binutils-2.17 perl texinfo gcc cvs
   NO_CROSS+=nsd
   NO_CROSS+=nginx
   NO_CROSS+=sqlite3
   
 cross-dirs:     ${CROSSDIRS}  cross-dirs:     ${CROSSDIRS}
 cross-obj:      ${CROSSOBJ}  cross-obj:      ${CROSSOBJ}
Line 68 
Line 130 
   
 cross-env:  cross-env:
         @echo ${CROSSENV} MACHINE=${TARGET} \          @echo ${CROSSENV} MACHINE=${TARGET} \
             MACHINE_ARCH=`cat ${CROSSDIR}/TARGET_ARCH`              MACHINE_ARCH=`cat ${CROSSDIR}/TARGET_ARCH` \
               MACHINE_CPU=`cat ${CROSSDIR}/TARGET_CPU` \
               BSDOBJDIR=${CROSSDIR}/usr/obj \
               BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET}
   
 ${CROSSDIRS}:  ${CROSSDIRS}:
   .if ${TARGET_ARCH} == "arm" &&  ${MACHINE_IS_LP64} == "yes"
           # this config is allowed
   .elif ${TARGET_IS_LP64} != ${MACHINE_IS_LP64}
           @echo "host and target have different size longs"
           @echo "cross compiler generates bad code; aborting"; exit 1
   .endif
         @-mkdir -p ${CROSSDIR}          @-mkdir -p ${CROSSDIR}
         @echo ${TARGET_ARCH} > ${CROSSDIR}/TARGET_ARCH          @echo ${TARGET_ARCH} > ${CROSSDIR}/TARGET_ARCH
         @echo TARGET_ARCH is `cat ${CROSSDIR}/TARGET_ARCH`          @echo TARGET_ARCH is `cat ${CROSSDIR}/TARGET_ARCH`
           @echo ${TARGET_CPU} > ${CROSSDIR}/TARGET_CPU
           @echo TARGET_CPU is `cat ${CROSSDIR}/TARGET_CPU`
         @eval `grep '^osr=' sys/conf/newvers.sh`; \          @eval `grep '^osr=' sys/conf/newvers.sh`; \
            sed "s/\$$/-unknown-openbsd$$osr/" ${CROSSDIR}/TARGET_ARCH > \             echo ${TARGET_ARCH}-unknown-openbsd$$osr > \
            ${CROSSDIR}/TARGET_CANON             ${CROSSDIR}/TARGET_CANON
         @-mkdir -p ${CROSSDIR}          @-mkdir -p ${CROSSDIR}
         @-mkdir -p ${CROSSDIR}/usr/${TARGET_CANON}          @-mkdir -p ${CROSSDIR}/usr/${TARGET_CANON}
Line 91 
Line 164 
         @-mkdir -p ${CROSSDIR}/usr/obj          @-mkdir -p ${CROSSDIR}/usr/obj
         @(cd ${.CURDIR} && \          @(cd ${.CURDIR} && \
             BSDOBJDIR=${CROSSDIR}/usr/obj \              BSDOBJDIR=${CROSSDIR}/usr/obj \
               COMPILER_VERSION=${COMPILER_VERSION} \
             MACHINE=${TARGET} \              MACHINE=${TARGET} \
             MACHINE_ARCH=${TARGET_ARCH} \              MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \
             BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \              BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
             ${MAKE} obj)              ${MAKE} obj)
         @touch ${CROSSOBJ}          @touch ${CROSSOBJ}
Line 100 
Line 174 
 ${CROSSINCLUDES}:       ${CROSSOBJ}  ${CROSSINCLUDES}:       ${CROSSOBJ}
         @-mkdir -p ${CROSSDIR}/usr/include          @-mkdir -p ${CROSSDIR}/usr/include
         @(cd ${.CURDIR}/include && \          @(cd ${.CURDIR}/include && \
             MACHINE=${TARGET} MACHINE_ARCH=${TARGET_ARCH} \              COMPILER_VERSION=${COMPILER_VERSION} \
               MACHINE=${TARGET} \
               MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \
             MAKEOBJDIR=obj.${MACHINE}.${TARGET} \              MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
             TARGET_ARCH=${TARGET_ARCH} \              TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \
             ${MAKE} prereq && \              ${MAKE} prereq && \
             MACHINE=${TARGET} MACHINE_ARCH=${TARGET_ARCH} \              COMPILER_VERSION=${COMPILER_VERSION} \
               MACHINE=${TARGET} \
               MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \
             MAKEOBJDIR=obj.${MACHINE}.${TARGET} \              MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
             TARGET_ARCH=${TARGET_ARCH} \              TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \
             ${MAKE} DESTDIR=${CROSSDIR} includes)              ${MAKE} DESTDIR=${CROSSDIR} includes)
         @touch ${CROSSINCLUDES}          @touch ${CROSSINCLUDES}
   
 .if (${TARGET_ARCH} == "m68k" || ${TARGET_ARCH} == "m88k" || \  
      ${TARGET_ARCH} == "vax")  
 BINUTILS=       ar as ld nm ranlib objcopy objdump strings strip  
 NEW_BINUTILS?=  No  
 .else  
 BINUTILS=       ar as gasp ld nm objcopy objdump ranlib readelf size \  
                 strings strip  
 NEW_BINUTILS?=  Yes  
 .endif  
   
 ${CROSSBINUTILS}:       ${CROSSINCLUDES}  ${CROSSBINUTILS}:       ${CROSSINCLUDES}
         (cd ${.CURDIR}/gnu/usr.bin/binutils; \          (cd ${.CURDIR}/${BINUTILS_DIR}; \
             MAKEOBJDIR=obj.${MACHINE}.${TARGET} \              MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
             USING_NEW_BINUTILS=${NEW_BINUTILS} \              PIE_DEFAULT=${PIE_DEFAULT} \
             TARGET_ARCH=${TARGET_ARCH} \              TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \
               PATH=${CROSSPATH} \
             ${MAKE} -f Makefile.bsd-wrapper depend && \              ${MAKE} -f Makefile.bsd-wrapper depend && \
             MAKEOBJDIR=obj.${MACHINE}.${TARGET} \              MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
             USING_NEW_BINUTILS=${NEW_BINUTILS} \              PIE_DEFAULT=${PIE_DEFAULT} \
             TARGET_ARCH=${TARGET_ARCH} \              TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \
             ${MAKE} -f Makefile.bsd-wrapper all && \              ${MAKE} -f Makefile.bsd-wrapper all && \
             DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \              DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
             USING_NEW_BINUTILS=${NEW_BINUTILS} \              COMPILER_VERSION=${COMPILER_VERSION} \
             ${MAKE} -f Makefile.bsd-wrapper install)              PIE_DEFAULT=${PIE_DEFAULT} \
 .if ${NEW_BINUTILS:L} != "yes"  
         (cd ${.CURDIR}/gnu/usr.bin/gas; \  
             TARGET_MACHINE_ARCH=${TARGET_ARCH} \  
             MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} depend all; \  
             TARGET_MACHINE_ARCH=${TARGET_ARCH} \  
             DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \  
             ${MAKE} NOMAN= install)  
         ln -sf ${CROSSDIR}/usr/bin/as \  
             ${CROSSDIR}/usr/${TARGET_CANON}/bin/as  
         (cd ${.CURDIR}/gnu/usr.bin/ld; \  
             TARGET_MACHINE_ARCH=${TARGET_ARCH} \  
             MAKEOBJDIR=obj.${MACHINE}.${TARGET} \              MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
             ${MAKE} NOPIC= NOMAN= depend all; \              TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \
             TARGET_MACHINE_ARCH=${TARGET_ARCH} \              ${MAKE} -f Makefile.bsd-wrapper install)
             DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \  
             ${MAKE} NOPIC= NOMAN= install)  
         ln -sf ${CROSSDIR}/usr/bin/ld \  
             ${CROSSDIR}/usr/${TARGET_CANON}/bin/ld  
         (cd ${.CURDIR}/usr.bin/ar; \  
             ELF_TOOLCHAIN=no \  
             MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} NOMAN= depend all; \  
             ELF_TOOLCHAIN=no \  
             DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \  
             ${MAKE} NOMAN= install)  
         ln -sf ${CROSSDIR}/usr/bin/ar \  
             ${CROSSDIR}/usr/${TARGET_CANON}/bin/ar  
         (cd ${.CURDIR}/usr.bin/ranlib; \  
             ELF_TOOLCHAIN=no \  
             MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} NOMAN= depend all; \  
             ELF_TOOLCHAIN=no \  
             DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \  
             ${MAKE} NOMAN= install)  
         ln -sf ${CROSSDIR}/usr/bin/ranlib \  
             ${CROSSDIR}/usr/${TARGET_CANON}/bin/ranlib  
         (cd ${.CURDIR}/usr.bin/strip; \  
             MAKEOBJDIR=obj.${MACHINE}.${TARGET} \  
             ${MAKE} TARGET_MACHINE_ARCH=${TARGET_ARCH} \  
             NOMAN= depend all; \  
             DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \  
             ${MAKE} TARGET_MACHINE_ARCH=${TARGET_ARCH} \  
             NOMAN= install)  
         ln -sf ${CROSSDIR}/usr/bin/strip \  
             ${CROSSDIR}/usr/${TARGET_CANON}/bin/strip  
 .endif  
         @for cmd in ${BINUTILS}; do \          @for cmd in ${BINUTILS}; do \
          if [ ! -e ${CROSSDIR}/usr/bin/$$cmd -a \           if [ -e ${CROSSDIR}/usr/bin/${TARGET_CANON}-$$cmd ] ; then \
          -e ${CROSSDIR}/usr/bin/${TARGET_CANON}-$$cmd ]; then \              cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-$$cmd \
             ln -sf ${TARGET_CANON}-$$cmd ${CROSSDIR}/usr/bin/$$cmd ;\                  ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-$$cmd ; \
          elif [ -e ${CROSSDIR}/usr/bin/$$cmd -a \              ln -sf ${TARGET_CANON}-$$cmd \
          ! -e ${CROSSDIR}/usr/bin/${TARGET_CANON}-$$cmd ]; then \                  ${CROSSDIR}/usr/${TARGET_CANON}/bin/$$cmd ;\
             ln -sf $$cmd ${CROSSDIR}/usr/bin/${TARGET_CANON}-$$cmd; \             if [ -e ${CROSSDIR}/usr/bin/$$cmd ] ; then \
               rm -f ${CROSSDIR}/usr/bin/$$cmd ;\
              fi ;\
            elif [ -e ${CROSSDIR}/usr/bin/$$cmd ] ; then \
               cp -f ${CROSSDIR}/usr/bin/$$cmd \
                   ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-$$cmd ; \
               ln -sf ${TARGET_CANON}-$$cmd \
                   ${CROSSDIR}/usr/${TARGET_CANON}/bin/$$cmd ;\
               mv ${CROSSDIR}/usr/bin/$$cmd \
                   ${CROSSDIR}/usr/bin/${TARGET_CANON}-$$cmd ;\
          fi ;\           fi ;\
          if [ -e ${CROSSDIR}/usr/bin/$$cmd -a \  
          ! -e ${CROSSDIR}/usr/${TARGET_CANON}/bin/$$cmd ]; then \  
             ln -sf ${CROSSDIR}/usr/bin/$$cmd \  
                 ${CROSSDIR}/usr/${TARGET_CANON}/bin/$$cmd; \  
          fi ;\  
         done          done
         @touch ${CROSSBINUTILS}          @touch ${CROSSBINUTILS}
   
 # bsd.own.mk can't do it for us  
 .if ${TARGET_ARCH} == "alpha" || \  
     ${TARGET_ARCH} == "m68k" || ${TARGET_ARCH} == "m88k" || \  
     ${TARGET_ARCH} == "sparc" || ${TARGET_ARCH} == "vax"  
 TARGET_USE_GCC3=No  
 .else  
 TARGET_USE_GCC3=Yes  
 .endif  
   
 ${CROSSGCC}:            ${CROSSBINUTILS}  ${CROSSGCC}:            ${CROSSBINUTILS}
 .if ${TARGET_USE_GCC3:L} == "yes"  .if ${COMPILER_VERSION:L} == "gcc3"
         (cd ${.CURDIR}/gnu/usr.bin/gcc; \          (cd ${.CURDIR}/gnu/usr.bin/gcc; \
             MAKEOBJDIR=obj.${MACHINE}.${TARGET} \              MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
             TARGET_ARCH=${TARGET_ARCH} CROSSDIR=${CROSSDIR} \              TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \
             ${MAKE} -f Makefile.bsd-wrapper depend && \              CROSSDIR=${CROSSDIR} \
               PATH=${CROSSPATH} ${MAKE} -f Makefile.bsd-wrapper depend && \
             MAKEOBJDIR=obj.${MACHINE}.${TARGET} \              MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
             TARGET_ARCH=${TARGET_ARCH} CROSSDIR=${CROSSDIR} \              TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \
               CROSSDIR=${CROSSDIR} \
             ${MAKE} -f Makefile.bsd-wrapper all && \              ${MAKE} -f Makefile.bsd-wrapper all && \
             DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \              env CROSSDIR=${CROSSDIR} DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
             ${MAKE} -f Makefile.bsd-wrapper install)              PATH=${CROSSPATH} ${MAKE} -f Makefile.bsd-wrapper install)
         ln -sf ${TARGET_CANON}-g++ ${CROSSDIR}/usr/bin/c++          cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-g++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-c++
         ln -sf ${CROSSDIR}/usr/libexec/cpp \          cp -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc
             ${CROSSDIR}/usr/bin/cpp          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}-c++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/c++
           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
 .else  .else
         (cd ${CROSSDIR}/usr/obj/gnu/egcs/gcc; \          (cd ${.CURDIR}/gnu/usr.bin/cc; \
             /bin/sh ${.CURDIR}/gnu/egcs/gcc/configure \              MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
             --with-gnu-as --with-gnu-ld --prefix ${CROSSDIR}/usr \              TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \
             --target ${TARGET_CANON} \              CROSSDIR=${CROSSDIR} \
             --enable-languages="c,c++" --enable-cpp --disable-nls \              MACHINE=${TARGET} \
             --with-gxx-include-dir=${CROSSDIR}/usr/include/g++ && \              PATH=${CROSSPATH} ${MAKE} depend  )
             PATH=${CROSSPATH} ${MAKE} BISON=yacc LANGUAGES="${CROSSLANGS}" \          (cd ${.CURDIR}/gnu/usr.bin/cc; \
             CFLAGS="${CFLAGS} -I${.CURDIR}/gnu/lib/libiberty/include" \              MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
             LIBIBERTY_INCLUDES=${.CURDIR}/gnu/lib/libiberty/include \              TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \
             DEMANGLER_PROG= DEMANGLE_H= LDFLAGS="${LDSTATIC}" build_infodir=. \              CROSSDIR=${CROSSDIR} \
             GCC_FOR_TARGET="./xgcc -B./ -I${CROSSDIR}/usr/include" && \              MACHINE=${TARGET} \
             ${MAKE} BISON=yacc LANGUAGES="${CROSSLANGS}" LDFLAGS="${LDSTATIC}" \              ${MAKE} all )
             GCC_FOR_TARGET="./xgcc -B./ -I${CROSSDIR}/usr/include" \          (cd ${.CURDIR}/gnu/usr.bin/cc; \
             CFLAGS="${CFLAGS} -I${.CURDIR}/gnu/lib/libiberty/include" \              env CROSSDIR=${CROSSDIR} DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
             LIBIBERTY_INCLUDES=${.CURDIR}/gnu/lib/libiberty/include \              TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \
             build_infodir=. INSTALL_MAN= INSTALL_HEADERS_DIR= install)              MACHINE=${TARGET} \
         ln -sf ${TARGET_CANON}-gcc ${CROSSDIR}/usr/bin/cc              PATH=${CROSSPATH} ${MAKE} install)
         ln -sf ${TARGET_CANON}-g++ ${CROSSDIR}/usr/bin/c++          cp -f ${CROSSDIR}/usr/bin/g++  ${CROSSDIR}/usr/bin/${TARGET_CANON}-g++
         ${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m ${BINMODE} \          cp -f ${CROSSDIR}/usr/bin/${TARGET_CANON}-g++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-c++
             ${CROSSDIR}/usr/obj/gnu/egcs/gcc/cpp \          cp -f ${CROSSDIR}/usr/libexec/cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp
             ${CROSSDIR}/usr/libexec/cpp          cp -f ${CROSSDIR}/usr/bin/gcc ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cc
         sed -e 's#/usr/libexec/cpp#${CROSSDIR}/usr/libexec/cpp#' \          ln -sf ${TARGET_CANON}-cc ${CROSSDIR}/usr/${TARGET_CANON}/bin/cc
   
           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
           sed -e 's#/usr/libexec/cpp#${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp#' \
               -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/bin/cpp              ${.CURDIR}/usr.bin/cpp/cpp.sh > ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp
         chmod ${BINMODE} ${CROSSDIR}/usr/bin/cpp          chmod ${BINMODE} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp
         chown ${BINOWN}:${BINGRP} ${CROSSDIR}/usr/bin/cpp          chown ${BINOWN}:${BINGRP} ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp
           ln -sf ${TARGET_CANON}-cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/cpp
 .endif  .endif
         @touch ${CROSSGCC}          @touch ${CROSSGCC}
   
 # XXX MAKEOBJDIR maybe should be obj.${TARGET} here, revisit later  # XXX MAKEOBJDIR maybe should be obj.${TARGET} here, revisit later
 cross-lib:      ${CROSSGCC}  cross-lib:      ${CROSSGCC}
         MACHINE=${TARGET} MACHINE_ARCH=${TARGET_ARCH}; \          MACHINE=${TARGET} \
         export MACHINE MACHINE_ARCH; \              MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \
           export MACHINE MACHINE_ARCH MACHINE_CPU; \
         (cd ${.CURDIR}/lib; \          (cd ${.CURDIR}/lib; \
             for lib in csu libc; do \              for lib in csu libc; do \
             (cd $$lib; \              (cd $$lib; \
                 eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \                  eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
                     ${MAKE} WANTLINT=no depend all install); \                      ${MAKE} depend all ;\
                   eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \
                       ${MAKE} install); \
             done; \              done; \
             eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \              eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
                 SKIPDIR=\"${NO_CROSS} libocurses/PSD.doc\" \                  SKIPDIR=\"${NO_CROSS} libocurses/PSD.doc\" \
                 ${MAKE} WANTLINT=no depend all install)                  ${MAKE} depend all ; \
               eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \
                   SKIPDIR=\"${NO_CROSS} libocurses/PSD.doc\" \
                   ${MAKE} install)
   
 cross-bin:      ${CROSSOBJ}  cross-bin:      ${CROSSOBJ}
         MACHINE=${TARGET} MACHINE_ARCH=${TARGET_ARCH}; \          MACHINE=${TARGET} \
         export MACHINE MACHINE_ARCH; \              MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \
           export MACHINE MACHINE_ARCH MACHINE_CPU; \
         for i in libexec bin sbin usr.bin usr.sbin; do \          for i in libexec bin sbin usr.bin usr.sbin; do \
         (cd ${.CURDIR}/$$i; \          (cd ${.CURDIR}/$$i; \
             eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \              eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
                 SKIPDIR=\"${BINUTILS} ${NO_CROSS}\" \                  SKIPDIR=\"${BINUTILS} ${NO_CROSS}\" \
                 ${MAKE} depend all install); \                  ${MAKE} depend all ; \
               eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \
                   SKIPDIR=\"${BINUTILS} ${NO_CROSS}\" \
                   ${MAKE} install); \
         done          done
   
   cross-gnu:      ${CROSSOBJ}
           MACHINE=${TARGET} \
               MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \
           export MACHINE MACHINE_ARCH MACHINE_CPU; \
           for i in gnu/lib gnu/usr.sbin gnu/usr.bin ; do \
           (cd ${.CURDIR}/$$i; \
               eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
                   SKIPDIR=\"${NO_CROSS}\" \
                   ${MAKE} depend all ; \
               eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} DESTDIR=${CROSSDIR} \
                   SKIPDIR=\"${NO_CROSS}\" \
                   ${MAKE} install); \
           done
   
   cross-share:   ${CROSSOBJ}
           MACHINE=${TARGET} \
               MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \
           export MACHINE MACHINE_ARCH MACHINE_CPU; \
           for i in share; do \
               (cd ${.CURDIR}/$$i; \
                   eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
                   SKIPDIR=\"${NO_CROSS}\" \
                   ${MAKE} depend all install); \
           done
   
   cross-sys:   ${CROSSOBJ}
           MACHINE=${TARGET} \
               MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU}; \
           export MACHINE MACHINE_ARCH MACHINE_CPU; \
           for i in sys; do \
               (cd ${.CURDIR}/$$i; \
                   eval ${CROSSENV} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
                   SKIPDIR=\"${NO_CROSS}\" \
                   ${MAKE} depend all install); \
           done
   
 cross-etc-root-var:     ${CROSSOBJ}  cross-etc-root-var:     ${CROSSOBJ}
         (cd ${.CURDIR}/etc && \          (cd ${.CURDIR}/etc && \
             MACHINE=${TARGET} MACHINE_ARCH=${TARGET_ARCH} \              MACHINE=${TARGET} \
             DESTDIR=${CROSSDIR} ${MAKE} distribution-etc-root-var)              MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \
               DESTDIR=${CROSSDIR} \
               ${MAKE} distribution-etc-root-var)
   
 cross-depend:  cross-depend:
         @(cd ${.CURDIR} && \          @(cd ${.CURDIR} && \

Legend:
Removed from v.1.17  
changed lines
  Added in v.1.68