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

Diff for /src/Makefile.cross between version 1.29 and 1.51

version 1.29, 2010/02/05 22:36:27 version 1.51, 2012/04/06 14:55:51
Line 7 
Line 7 
 # 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} == "beagle" || \
          ${TARGET} == "gumstix" || ${TARGET} == "moko" || \           ${TARGET} == "gumstix" || ${TARGET} == "palm" || \
          ${TARGET} == "palm" || ${TARGET} == "zaurus")           ${TARGET} == "zaurus")
 TARGET_ARCH=    arm  TARGET_ARCH=    arm
 .elif   (${TARGET} == "hp300" || ${TARGET} == "mac68k" || \  .elif   (${TARGET} == "hp300" || ${TARGET} == "mac68k" || \
          ${TARGET} == "mvme68k")           ${TARGET} == "mvme68k")
Line 16 
Line 16 
 .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} == "loongson")  .elif   (${TARGET} == "loongson")
 TARGET_ARCH=    mips64el  TARGET_ARCH=    mips64el
 TARGET_CPU=     mips64  TARGET_CPU=     mips64
 .elif   (${TARGET} == "solbourne")  .elif   (${TARGET} == "solbourne")
 TARGET_ARCH=    sparc  TARGET_ARCH=    sparc
 .elif   (${TARGET} == "macppc" || ${TARGET} == "mvmeppc" || \  .elif   (${TARGET} == "macppc" || ${TARGET} == "socppc")
          ${TARGET} == "socppc")  
 TARGET_ARCH=    powerpc  TARGET_ARCH=    powerpc
 .elif   (${TARGET} == "landisk")  .elif   (${TARGET} == "landisk")
 TARGET_ARCH=    sh  TARGET_ARCH=    sh
Line 33 
Line 32 
 .endif  .endif
 TARGET_CPU?=    ${TARGET_ARCH}  TARGET_CPU?=    ${TARGET_ARCH}
   
   # List of LP64 archs
   # XXX move to bsd.*.mk?
   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  #CROSSCPPFLAGS?=        -nostdinc -I${CROSSDIR}/usr/include
 #CROSSLDFLAGS?= -nostdlib -L${CROSSDIR}/usr/lib -static  #CROSSLDFLAGS?= -nostdlib -L${CROSSDIR}/usr/lib -static
 CROSSCFLAGS?=   ${CROSSCPPFLAGS} -O2 ${PIPE} ${DEBUG}  CROSSCFLAGS?=   ${CROSSCPPFLAGS} -O2 ${PIPE} ${DEBUG}
Line 42 
Line 56 
 # XXX  # XXX
 BINMODE?=555  BINMODE?=555
 BINOWN?=root  BINOWN?=root
 BINOWN?=bin  BINGRP?=bin
   
 CROSSDIR=       ${DESTDIR}/usr/cross/${TARGET}  CROSSDIR=       ${DESTDIR}/usr/cross/${TARGET}
 CROSSENV=       AR=${CROSSDIR}/usr/${TARGET_CANON}/bin/ar \  CROSSENV=       AR=${CROSSDIR}/usr/${TARGET_CANON}/bin/ar \
Line 71 
Line 85 
 CROSSINCLUDES=  ${CROSSDIR}/.includes_done  CROSSINCLUDES=  ${CROSSDIR}/.includes_done
 CROSSBINUTILS=  ${CROSSDIR}/.binutils_done  CROSSBINUTILS=  ${CROSSDIR}/.binutils_done
 CROSSGCC=       ${CROSSDIR}/.gcc_done  CROSSGCC=       ${CROSSDIR}/.gcc_done
 #NO_CROSS=      isakmpd tn3270 keynote sectok ssh  #NO_CROSS=      isakmpd keynote ssh
   
   .include <bsd.own.mk>
   
   OLD_BINUTILS_ARCH=m68k m88k vax
   
   .for _arch in ${TARGET_ARCH}
   .if !empty(GCC2_ARCH:M${_arch})
   USE_GCC3?=no
   TARGET_USE_GCC3=No
   COMPILER_VERSION?=gcc2
   .elif !empty(GCC4_ARCH:M${_arch})
   TARGET_USE_GCC4=Yes
   COMPILER_VERSION?=gcc4
   .else
   TARGET_USE_GCC3=Yes
   COMPILER_VERSION?=gcc3
   .endif
   
   .if !empty(BINUTILS217_ARCH:M${_arch})
   BINUTILS_VERSION=binutils-2.17
   .else
   BINUTILS_VERSION=binutils
   .endif
   
   .if !empty(OLD_BINUTILS_ARCH:M${_arch})
   NEW_BINUTILS?=  No
   BINUTILS=       ar as ld nm ranlib objcopy objdump strings strip
   .else
   NEW_BINUTILS?=  Yes
   BINUTILS=       ar as gasp ld nm objcopy objdump ranlib readelf size \
                   strings strip
   .endif
   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 \
 #               ftp gzsig sasyncd vnconfig  #               ftp gzsig sasyncd vnconfig
Line 83 
Line 131 
 NO_CROSS+=bind  NO_CROSS+=bind
 NO_CROSS+=httpd  NO_CROSS+=httpd
 NO_CROSS+=microcode  NO_CROSS+=microcode
 NO_CROSS+=groff lynx binutils perl texinfo gcc cvs  NO_CROSS+=groff lynx binutils binutils-2.17 perl texinfo gcc cvs
   NO_CROSS+=nsd
   NO_CROSS+=nginx
   
 cross-dirs:     ${CROSSDIRS}  cross-dirs:     ${CROSSDIRS}
 cross-obj:      ${CROSSOBJ}  cross-obj:      ${CROSSOBJ}
Line 99 
Line 149 
             BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET}              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`
Line 121 
Line 177 
         @-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_CPU=${TARGET_CPU} \              MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \
             BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \              BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
Line 130 
Line 187 
 ${CROSSINCLUDES}:       ${CROSSOBJ}  ${CROSSINCLUDES}:       ${CROSSOBJ}
         @-mkdir -p ${CROSSDIR}/usr/include          @-mkdir -p ${CROSSDIR}/usr/include
         @(cd ${.CURDIR}/include && \          @(cd ${.CURDIR}/include && \
               COMPILER_VERSION=${COMPILER_VERSION} \
             MACHINE=${TARGET} \              MACHINE=${TARGET} \
             MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \              MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \
             MAKEOBJDIR=obj.${MACHINE}.${TARGET} \              MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
             TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \              TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \
             ${MAKE} prereq && \              ${MAKE} prereq && \
               COMPILER_VERSION=${COMPILER_VERSION} \
             MACHINE=${TARGET} \              MACHINE=${TARGET} \
             MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \              MACHINE_ARCH=${TARGET_ARCH} MACHINE_CPU=${TARGET_CPU} \
             MAKEOBJDIR=obj.${MACHINE}.${TARGET} \              MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
Line 142 
Line 201 
             ${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} \              USING_NEW_BINUTILS=${NEW_BINUTILS} \
             TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \              TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \
Line 164 
Line 213 
             TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \              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} \
               COMPILER_VERSION=${COMPILER_VERSION} \
             USING_NEW_BINUTILS=${NEW_BINUTILS} \              USING_NEW_BINUTILS=${NEW_BINUTILS} \
             MAKEOBJDIR=obj.${MACHINE}.${TARGET} \              MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
             USING_NEW_BINUTILS=${NEW_BINUTILS} \              USING_NEW_BINUTILS=${NEW_BINUTILS} \
Line 195 
Line 245 
             ${MAKE} NOMAN= install)              ${MAKE} NOMAN= install)
         ln -sf ${CROSSDIR}/usr/bin/ar \          ln -sf ${CROSSDIR}/usr/bin/ar \
             ${CROSSDIR}/usr/${TARGET_CANON}/bin/ar              ${CROSSDIR}/usr/${TARGET_CANON}/bin/ar
         (cd ${.CURDIR}/usr.bin/ranlib; \          @(cd ${.CURDIR}/usr.bin/ranlib; \
             ELF_TOOLCHAIN=no \              ELF_TOOLCHAIN=no \
             MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} NOMAN= depend all; \              MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} NOMAN= depend all; \
             ELF_TOOLCHAIN=no \              ELF_TOOLCHAIN=no \
Line 233 
Line 283 
         done          done
         @touch ${CROSSBINUTILS}          @touch ${CROSSBINUTILS}
   
 # bsd.own.mk can't do it for us  
 .if ${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} == "gcc4"
           (cd ${.CURDIR}/gnu/usr.bin/cc; \
               MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
               TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \
               CROSSDIR=${CROSSDIR} \
               MACHINE=${TARGET} \
               PATH=${CROSSPATH} ${MAKE} depend  )
           (cd ${.CURDIR}/gnu/usr.bin/cc; \
               MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
               TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \
               CROSSDIR=${CROSSDIR} \
               MACHINE=${TARGET} \
               ${MAKE} all )
           (cd ${.CURDIR}/gnu/usr.bin/cc; \
               env CROSSDIR=${CROSSDIR} DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
               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/libexec/cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp
           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
   
           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/@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
   .elif ${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} TARGET_CPU=${TARGET_CPU} \              TARGET_ARCH=${TARGET_ARCH} TARGET_CPU=${TARGET_CPU} \
Line 262 
Line 341 
         ln -sf ${TARGET_CANON}-c++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/c++          ln -sf ${TARGET_CANON}-c++ ${CROSSDIR}/usr/${TARGET_CANON}/bin/c++
         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#/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
Line 288 
Line 368 
         mv -f ${CROSSDIR}/usr/bin/cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp          mv -f ${CROSSDIR}/usr/bin/cpp ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-libexeccpp
         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#/usr/include#${CROSSDIR}/usr/include#' \              -e 's#/usr/include#${CROSSDIR}/usr/include#' \
             -e 's/@dollaropt@/-$$/' ${.CURDIR}/usr.bin/cpp/cpp.sh > \              -e 's/@dollaropt@/-$$/' ${.CURDIR}/usr.bin/cpp/cpp.sh > \
             ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp              ${CROSSDIR}/usr/${TARGET_CANON}/bin/${TARGET_CANON}-cpp

Legend:
Removed from v.1.29  
changed lines
  Added in v.1.51