First stab at a target for making cross-development tools:
authorniklas <niklas@openbsd.org>
Fri, 28 Feb 1997 23:22:07 +0000 (23:22 +0000)
committerniklas <niklas@openbsd.org>
Fri, 28 Feb 1997 23:22:07 +0000 (23:22 +0000)
try "make TARGET=machine cross-tools" and you should get a little
hierarchy in /usr/cross/<machine>.  This is probably not in its final
shape yet ;-)

Makefile

index 90227c5..d4293b6 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-#      $OpenBSD: Makefile,v 1.14 1997/02/27 20:57:52 briggs Exp $
+#      $OpenBSD: Makefile,v 1.15 1997/02/28 23:22:07 niklas Exp $
 #      $NetBSD: Makefile,v 1.25 1995/10/09 02:11:28 thorpej Exp $
 
 .include <bsd.own.mk>  # for NOMAN, if it's there.
@@ -54,4 +54,56 @@ build:
 .endif
        ${MAKE} depend && ${MAKE} && ${MAKE} install
 
+.if !defined(TARGET)
+cross-tools:
+       echo "TARGET must be set"; exit 1
+.else
+cross-tools:   cross-helpers cross-includes cross-binutils cross-gcc
+
+CROSSDIR=      ${DESTDIR}/usr/cross/${TARGET}
+
+cross-helpers:
+       -mkdir -p ${CROSSDIR}/usr/include
+       echo _MACHINE_ARCH | \
+           cat ${.CURDIR}/sys/arch/${TARGET}/include/param.h - | \
+           ${CPP} -E |sed -n '$$p' >${CROSSDIR}/TARGET_ARCH
+       eval `grep '^osr=' sys/conf/newvers.sh`; \
+          sed "s/\$$/-unknown-openbsd$$osr/" ${CROSSDIR}/TARGET_ARCH > \
+          ${CROSSDIR}/TARGET_CANON
+
+cross-includes:
+       ${MAKE} MACHINE=${TARGET} MACHINE_ARCH=`cat ${CROSSDIR}/TARGET_ARCH` \
+           DESTDIR=${CROSSDIR} includes
+
+cross-binutils:
+       -mkdir -p ${CROSSDIR}/usr/obj
+       export BSDSRCDIR=`pwd`; \
+           (cd ${.CURDIR}/gnu/usr.bin/binutils; \
+           BSDOBJDIR=${CROSSDIR}/usr/obj \
+           MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
+           ${MAKE} -f Makefile.bsd-wrapper obj); \
+           (cd ${CROSSDIR}/usr/obj/gnu/usr.bin/binutils; \
+           ${BSDSRCDIR}/gnu/usr.bin/binutils/configure \
+           --prefix ${CROSSDIR}/usr \
+           --target `cat ${CROSSDIR}/TARGET_CANON` && \
+           ${MAKE} && ${MAKE} install)
+       ${INSTALL} -c -o ${BINOWN} -g ${BINGRP} -m 755 \
+           ${.CURDIR}/usr.bin/lorder/lorder.sh.gnm \
+           ${CROSSDIR}/usr/bin/`cat ${CROSSDIR}/TARGET_CANON`-lorder
+
+cross-gcc:
+       -mkdir -p ${CROSSDIR}/usr/obj
+       (cd gnu/usr.bin/gcc; \
+           BSDOBJDIR=${CROSSDIR}/usr/obj BSDSRCDIR=${.CURDIR} \
+           MAKEOBJDIR=obj.${MACHINE}.${TARGET} \
+           ${MAKE} -f Makefile.bsd-wrapper obj)
+       (cd ${CROSSDIR}/usr/obj/gnu/usr.bin/gcc; \
+           ${.CURDIR}/gnu/usr.bin/gcc/configure \
+           --prefix ${CROSSDIR}/usr \
+           --target `cat ${CROSSDIR}/TARGET_CANON` && \
+           ${MAKE} BISON=yacc LANGUAGES=c \
+           GCC_FOR_TARGET="./xgcc -B./ -I${CROSSDIR}/usr/include" && \
+           ${MAKE} LANGUAGES=c install)
+.endif
+
 .include <bsd.subdir.mk>