version 1.2, 2005/01/10 17:47:15 |
version 1.25, 2008/05/13 21:15:58 |
|
|
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-etc-root-var |
|
|
|
# Have to compute TARGET_ARCH directly in the Makefile, for .if tests involving |
|
# this variable to work. |
|
.if (${TARGET} == "armish" || ${TARGET} == "zaurus") |
|
TARGET_ARCH= arm |
|
.elif (${TARGET} == "hp300" || ${TARGET} == "mac68k" || \ |
|
${TARGET} == "mvme68k") |
|
TARGET_ARCH= m68k |
|
.elif (${TARGET} == "aviion" || ${TARGET} == "luna88k" || \ |
|
${TARGET} == "mvme88k") |
|
TARGET_ARCH= m88k |
|
.elif (${TARGET} == "sgi") |
|
TARGET_ARCH= mips64 |
|
.elif (${TARGET} == "solbourne") |
|
TARGET_ARCH= sparc |
|
.elif (${TARGET} == "macppc" || ${TARGET} == "mvmeppc" || \ |
|
${TARGET} == "socppc") |
|
TARGET_ARCH= powerpc |
|
.elif (${TARGET} == "landisk") |
|
TARGET_ARCH= sh |
|
.else |
|
TARGET_ARCH= ${TARGET} |
|
.endif |
|
|
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} |
CROSSCFLAGS?= ${CROSSCPPFLAGS} |
|
|
CROSSENV= AR=${CROSSDIR}/usr/bin/ar AS=${CROSSDIR}/usr/bin/as \ |
CROSSENV= AR=${CROSSDIR}/usr/bin/ar AS=${CROSSDIR}/usr/bin/as \ |
CC=${CROSSDIR}/usr/bin/cc CPP=${CROSSDIR}/usr/bin/cpp \ |
CC=${CROSSDIR}/usr/bin/cc CPP=${CROSSDIR}/usr/bin/cpp \ |
CXX=${CROSSDIR}/usr/bin/c++ \ |
CXX=${CROSSDIR}/usr/bin/c++ \ |
LD=${CROSSDIR}/usr/bin/ld NM=${CROSSDIR}/usr/bin/nm \ |
LD=${CROSSDIR}/usr/bin/ld \ |
LORDER=/usr/bin/lorder RANLIB=${CROSSDIR}/usr/bin/ranlib \ |
LORDER=/usr/bin/lorder RANLIB=${CROSSDIR}/usr/bin/ranlib \ |
SIZE=${CROSSDIR}/usr/bin/size STRIP=${CROSSDIR}/usr/bin/strip \ |
STRIP=${CROSSDIR}/usr/bin/strip \ |
HOSTCC=\"${CC}\" HOSTCXX=\"${CXX}\" NOMAN= DESTDIR=${CROSSDIR} \ |
HOSTCC=\"${CC}\" HOSTCXX=\"${CXX}\" NOMAN= DESTDIR=${CROSSDIR} \ |
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}\" |
|
|
CROSSLANGS?= c c++ |
CROSSLANGS?= c c++ |
|
|
TARGET_CANON=`cat ${CROSSDIR}/TARGET_CANON` |
TARGET_CANON=`cat ${CROSSDIR}/TARGET_CANON` |
TARGET_ARCH=`cat ${CROSSDIR}/TARGET_ARCH` |
|
|
|
CROSSDIRS= ${CROSSDIR}/.dirs_done |
CROSSDIRS= ${CROSSDIR}/.dirs_done |
CROSSOBJ= ${CROSSDIR}/usr/obj/.obj_done |
CROSSOBJ= ${CROSSDIR}/usr/obj/.obj_done |
|
|
CROSSBINUTILS= ${CROSSDIR}/usr/bin/.binutils_done |
CROSSBINUTILS= ${CROSSDIR}/usr/bin/.binutils_done |
CROSSGCC= ${CROSSDIR}/usr/bin/.gcc_done |
CROSSGCC= ${CROSSDIR}/usr/bin/.gcc_done |
NO_CROSS= isakmpd tn3270 less sudo openssl libkeynote libssl \ |
NO_CROSS= isakmpd tn3270 less sudo openssl libkeynote libssl \ |
photurisd keynote sectok ssh |
keynote sectok ssh |
|
|
# no libcrypto.... these won't build |
# no libcrypto.... these won't build |
NO_CROSS+= telnetd login_krb5 login_krb5-or-pwd dc passwd telnet ppp \ |
NO_CROSS+= dc login_krb5 login_krb5-or-pwd passwd ppp tcpdump telnet |
tcpdump |
|
# need host setup for ydr |
# need host setup for ydr |
NO_CROSS+=afs |
NO_CROSS+=afs |
# explicit cross-compile |
# explicit cross-compile |
|
|
|
|
cross-env: |
cross-env: |
@echo ${CROSSENV} MACHINE=${TARGET} \ |
@echo ${CROSSENV} MACHINE=${TARGET} \ |
MACHINE_ARCH=`cat ${CROSSDIR}/TARGET_ARCH` |
MACHINE_ARCH=`cat ${CROSSDIR}/TARGET_ARCH` \ |
|
BSDOBJDIR=${CROSSDIR}/usr/obj \ |
|
BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} |
|
|
${CROSSDIRS}: |
${CROSSDIRS}: |
@-mkdir -p ${CROSSDIR} |
@-mkdir -p ${CROSSDIR} |
@case ${TARGET} in \ |
@echo ${TARGET_ARCH} > ${CROSSDIR}/TARGET_ARCH |
alpha|amd64|hppa|hppa64|i386|m68k|m88k|powerpc|sparc|sparc64|vax) \ |
|
echo ${TARGET} ;;\ |
|
amiga|hp300|mac68k|mvme68k) \ |
|
echo m68k ;;\ |
|
luna88k|mvme88k) \ |
|
echo m88k ;;\ |
|
macppc|mvmeppc) \ |
|
echo powerpc ;;\ |
|
sgi) \ |
|
echo mips64 ;;\ |
|
*) \ |
|
(echo Unknown arch ${TARGET} >&2) ; exit 1;; \ |
|
esac > ${CROSSDIR}/TARGET_ARCH |
|
@echo TARGET_ARCH is `cat ${CROSSDIR}/TARGET_ARCH` |
@echo TARGET_ARCH is `cat ${CROSSDIR}/TARGET_ARCH` |
@eval `grep '^osr=' sys/conf/newvers.sh`; \ |
@eval `grep '^osr=' sys/conf/newvers.sh`; \ |
sed "s/\$$/-unknown-openbsd$$osr/" ${CROSSDIR}/TARGET_ARCH > \ |
sed "s/\$$/-unknown-openbsd$$osr/" ${CROSSDIR}/TARGET_ARCH > \ |
|
|
@(cd ${.CURDIR}/include && \ |
@(cd ${.CURDIR}/include && \ |
MACHINE=${TARGET} MACHINE_ARCH=${TARGET_ARCH} \ |
MACHINE=${TARGET} MACHINE_ARCH=${TARGET_ARCH} \ |
MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
|
TARGET_ARCH=${TARGET_ARCH} \ |
${MAKE} prereq && \ |
${MAKE} prereq && \ |
MACHINE=${TARGET} MACHINE_ARCH=${TARGET_ARCH} \ |
MACHINE=${TARGET} MACHINE_ARCH=${TARGET_ARCH} \ |
MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
|
TARGET_ARCH=${TARGET_ARCH} \ |
${MAKE} DESTDIR=${CROSSDIR} includes) |
${MAKE} DESTDIR=${CROSSDIR} includes) |
@touch ${CROSSINCLUDES} |
@touch ${CROSSINCLUDES} |
|
|
.if ${MACHINE_ARCH} == "m68k" || ${MACHINE_ARCH} == "m88k" || \ |
.if (${TARGET_ARCH} == "m68k" || ${TARGET_ARCH} == "m88k" || \ |
${MACHINE_ARCH} == "vax" |
${TARGET_ARCH} == "vax") |
BINUTILS= ar as ld nm ranlib objcopy objdump strings strip |
BINUTILS= ar as ld nm ranlib objcopy objdump strings strip |
NEW_BINUTILS?= No |
NEW_BINUTILS?= No |
.else |
.else |
|
|
.endif |
.endif |
|
|
${CROSSBINUTILS}: ${CROSSINCLUDES} |
${CROSSBINUTILS}: ${CROSSINCLUDES} |
.if ${NEW_BINUTILS:L} == "yes" |
|
(cd ${.CURDIR}/gnu/usr.bin/binutils; \ |
(cd ${.CURDIR}/gnu/usr.bin/binutils; \ |
MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
|
USING_NEW_BINUTILS=${NEW_BINUTILS} \ |
TARGET_ARCH=${TARGET_ARCH} \ |
TARGET_ARCH=${TARGET_ARCH} \ |
${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} \ |
TARGET_ARCH=${TARGET_ARCH} \ |
TARGET_ARCH=${TARGET_ARCH} \ |
${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} \ |
${MAKE} -f Makefile.bsd-wrapper install) |
${MAKE} -f Makefile.bsd-wrapper install) |
.else |
.if ${NEW_BINUTILS:L} != "yes" |
(cd ${.CURDIR}/gnu/usr.bin/gas; \ |
(cd ${.CURDIR}/gnu/usr.bin/gas; \ |
TARGET_MACHINE_ARCH=${TARGET_ARCH} \ |
TARGET_MACHINE_ARCH=${TARGET_ARCH} \ |
MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} depend all; \ |
MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} depend all; \ |
|
|
DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
${MAKE} NOMAN= install) |
${MAKE} NOMAN= install) |
ln -sf ${CROSSDIR}/usr/bin/as \ |
ln -sf ${CROSSDIR}/usr/bin/as \ |
${CROSSDIR}/usr/${TARGET_ARCH}/bin/as |
${CROSSDIR}/usr/${TARGET_CANON}/bin/as |
(cd ${.CURDIR}/gnu/usr.bin/ld; \ |
(cd ${.CURDIR}/gnu/usr.bin/ld; \ |
TARGET_MACHINE_ARCH=${TARGET_ARCH} \ |
TARGET_MACHINE_ARCH=${TARGET_ARCH} \ |
MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
|
|
ln -sf ${CROSSDIR}/usr/bin/ld \ |
ln -sf ${CROSSDIR}/usr/bin/ld \ |
${CROSSDIR}/usr/${TARGET_CANON}/bin/ld |
${CROSSDIR}/usr/${TARGET_CANON}/bin/ld |
(cd ${.CURDIR}/usr.bin/ar; \ |
(cd ${.CURDIR}/usr.bin/ar; \ |
|
ELF_TOOLCHAIN=no \ |
MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} NOMAN= depend all; \ |
MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} NOMAN= depend all; \ |
|
ELF_TOOLCHAIN=no \ |
DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
${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 \ |
MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} NOMAN= depend all; \ |
MAKEOBJDIR=obj.${MACHINE}.${TARGET} ${MAKE} NOMAN= depend all; \ |
|
ELF_TOOLCHAIN=no \ |
DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
DESTDIR=${CROSSDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
${MAKE} NOMAN= install) |
${MAKE} NOMAN= install) |
ln -sf ${CROSSDIR}/usr/bin/ranlib \ |
ln -sf ${CROSSDIR}/usr/bin/ranlib \ |
|
|
@touch ${CROSSBINUTILS} |
@touch ${CROSSBINUTILS} |
|
|
# bsd.own.mk can't do it for us |
# bsd.own.mk can't do it for us |
.if ${TARGET} == "amd64" || ${TARGET} == "cats" || \ |
.if ${TARGET_ARCH} == "m68k" || ${TARGET_ARCH} == "m88k" || \ |
${TARGET} == "hppa" || ${TARGET} == "hppa64" || \ |
${TARGET_ARCH} == "sparc" || ${TARGET_ARCH} == "vax" |
${TARGET} == "i386" || \ |
TARGET_USE_GCC3=No |
${TARGET} == "sparc64" || ${TARGET} == "sgi" |
|
USE_GCC3=yes |
|
.else |
.else |
USE_GCC3=no |
TARGET_USE_GCC3=Yes |
.endif |
.endif |
|
|
${CROSSGCC}: ${CROSSBINUTILS} |
${CROSSGCC}: ${CROSSBINUTILS} |
.if ${USE_GCC3:L} == "yes" |
.if ${TARGET_USE_GCC3:L} == "yes" |
(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} CROSSDIR=${CROSSDIR} \ |
|
|
${CROSSDIR}/usr/libexec/cpp |
${CROSSDIR}/usr/libexec/cpp |
sed -e 's#/usr/libexec/cpp#${CROSSDIR}/usr/libexec/cpp#' \ |
sed -e 's#/usr/libexec/cpp#${CROSSDIR}/usr/libexec/cpp#' \ |
-e 's#/usr/include#${CROSSDIR}/usr/include#' \ |
-e 's#/usr/include#${CROSSDIR}/usr/include#' \ |
|
-e 's/@dollaropt@/-$$/' \ |
${.CURDIR}/usr.bin/cpp/cpp.sh > ${CROSSDIR}/usr/bin/cpp |
${.CURDIR}/usr.bin/cpp/cpp.sh > ${CROSSDIR}/usr/bin/cpp |
chmod ${BINMODE} ${CROSSDIR}/usr/bin/cpp |
chmod ${BINMODE} ${CROSSDIR}/usr/bin/cpp |
chown ${BINOWN}:${BINGRP} ${CROSSDIR}/usr/bin/cpp |
chown ${BINOWN}:${BINGRP} ${CROSSDIR}/usr/bin/cpp |
|
|
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} depend all install); \ |
${MAKE} WANTLINT=no depend all 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} depend all install) |
${MAKE} WANTLINT=no depend all install) |
|
|
cross-bin: ${CROSSOBJ} |
cross-bin: ${CROSSOBJ} |
MACHINE=${TARGET} MACHINE_ARCH=${TARGET_ARCH}; \ |
MACHINE=${TARGET} MACHINE_ARCH=${TARGET_ARCH}; \ |
|
|
|
|
cross-etc-root-var: ${CROSSOBJ} |
cross-etc-root-var: ${CROSSOBJ} |
(cd ${.CURDIR}/etc && \ |
(cd ${.CURDIR}/etc && \ |
|
MACHINE=${TARGET} MACHINE_ARCH=${TARGET_ARCH} \ |
DESTDIR=${CROSSDIR} ${MAKE} distribution-etc-root-var) |
DESTDIR=${CROSSDIR} ${MAKE} distribution-etc-root-var) |
|
|
cross-depend: |
cross-depend: |
|
|
BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
BSDSRCDIR=${.CURDIR} MAKEOBJDIR=obj.${MACHINE}.${TARGET} \ |
SKIPDIR="${NO_CROSS}" \ |
SKIPDIR="${NO_CROSS}" \ |
${MAKE} cleandir) |
${MAKE} cleandir) |
|
|