[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: cross compile



tsutsui@ceres.dti.ne.jp wrote:

 > pkgsrc/cross/COMMON/ 以下に cpp.sh 用意して
 > /usr/pkg/cross/.../bin/cpp として個別に入れたほうが
 > いいような気がしないでもないです。

commitせずにほっとらかしてたpatch(^^;

sakamoto
--
Index: PLIST-egcs
===================================================================
RCS file: /cvsroot/pkgsrc/cross/COMMON/PLIST-egcs,v
retrieving revision 1.2
diff -u -r1.2 PLIST-egcs
--- PLIST-egcs	1999/01/06 01:14:20	1.2
+++ PLIST-egcs	2000/05/23 06:49:07
@@ -1,7 +1,9 @@
 @comment $NetBSD: PLIST-egcs,v 1.2 1999/01/06 01:14:20 tv Exp $
 ${TARGET_ARCH}/bin/cc
+${TARGET_ARCH}/bin/cpp
 ${TARGET_ARCH}/bin/gcc
 bin/${TARGET_ARCH}-cc
+bin/${TARGET_ARCH}-cpp
 bin/${TARGET_ARCH}-gcc
 lib/gcc-lib/${TARGET_ARCH}/${EGCS_INTVERSION}/cc1
 lib/gcc-lib/${TARGET_ARCH}/${EGCS_INTVERSION}/collect2
Index: cross.mk
===================================================================
RCS file: /cvsroot/pkgsrc/cross/COMMON/cross.mk,v
retrieving revision 1.14
diff -u -r1.14 cross.mk
--- cross.mk	1999/12/18 02:14:38	1.14
+++ cross.mk	2000/05/23 06:49:07
@@ -205,14 +205,18 @@
 .if !defined(EGCS_NO_OBJC) && !defined(EGCS_NO_OBJC_RUNTIME)
 	@cd ${EGCS_WRKSRC}/gcc && ${EGCS_MAKE} objc-runtime
 .endif
+	@${SED} -e 's|/usr/libexec\(/cpp\)|${PREFIX}/lib/gcc-lib/${TARGET_ARCH}/${EGCS_INTVERSION}\1|' \
+		${COMMON_DIR}/usr.bin.cpp.sh > ${WRKSRC}/${TARGET_ARCH}-cpp
 
 egcs-install:
 	@cd ${EGCS_WRKSRC}/gcc && ${SETENV} ${MAKE_ENV} \
 		${MAKE_PROGRAM} ${MAKE_FLAGS} ${EGCS_MAKE_FLAGS} \
 		install-common install-headers install-libgcc install-driver
-	chown -R ${BINOWN}:${BINGRP} ${PREFIX}/lib/gcc-lib/${TARGET_ARCH}/${EGCS_INTVERSION}
+	${CHOWN} -R ${BINOWN}:${BINGRP} ${PREFIX}/lib/gcc-lib/${TARGET_ARCH}/${EGCS_INTVERSION}
 	${LN} -f ${PREFIX}/bin/${TARGET_ARCH}-gcc ${PREFIX}/bin/${TARGET_ARCH}-cc
 	${LN} -f ${PREFIX}/bin/${TARGET_ARCH}-gcc ${TARGET_DIR}/bin/cc
+	${INSTALL_SCRIPT} ${WRKSRC}/${TARGET_ARCH}-cpp ${PREFIX}/bin
+	${LN} -f ${PREFIX}/bin/${TARGET_ARCH}-cpp ${TARGET_DIR}/bin/cpp
 .if !defined(EGCS_NO_F77)
 .if !defined(EGCS_NO_F77_RUNTIME)
 	@cd ${EGCS_WRKSRC} && ${EGCS_MAKE} install-target-libf2c
@@ -234,6 +239,22 @@
 .endif
 	@${RMDIR} -p ${PREFIX}/info 2>/dev/null || ${TRUE}
 	@${RMDIR} -p ${PREFIX}/man/man1 2>/dev/null || ${TRUE}
+.endif
+
+.if ${TARGET_ARCH:C/.*-//:C/elf$$//} == "netbsd"
+PLIST_PRE+=		${COMMON_DIR}/PLIST-make
+
+do-build: cross-make-build
+do-install: cross-make-install
+
+cross-make-build:
+	@${SED} -e 's|$${PREFIX}|${PREFIX}|g' \
+		-e 's|$${MACHINE_ARCH}|${TARGET_ARCH:C/-netbsd//}|g' \
+		-e 's|$${TARGET_ARCH}|${TARGET_ARCH}|g' \
+		${COMMON_DIR}/cross-make > ${WRKSRC}/${TARGET_ARCH}-make
+
+cross-make-install:
+	${INSTALL_SCRIPT} ${WRKSRC}/${TARGET_ARCH}-make ${PREFIX}/bin
 .endif
 
 .if defined(CROSS_DISTFILES)
--- /dev/null	Tue May 23 14:49:20 2000
+++ PLIST-make	Mon May 22 21:18:47 2000
@@ -0,0 +1,2 @@
+@comment $NetBSD$
+bin/${TARGET_ARCH}-make
--- /dev/null	Tue May 23 14:49:20 2000
+++ cross-make	Tue May 23 15:27:08 2000
@@ -0,0 +1,46 @@
+#!/bin/sh
+
+if [ x"${MACHINE}" = x ]; then
+	echo "Please set \"MACHINE\" environment variable."
+	exit 1
+fi
+if [ x"${DESTDIR}" = x -o "${DESTDIR}" = "/" ]; then
+	echo "Please set \"DESTDIR\" environment variable. Don't set \"/\"."
+	exit 1
+fi
+
+MACHINE_ARCH=${MACHINE_ARCH} export MACHINE_ARCH
+
+WHICH=${TARGET_ARCH}
+BINDIR=${PREFIX}/bin
+PATH=${BINDIR}:${PATH} export PATH
+
+AR=${BINDIR}/${WHICH}-ar export AR
+AS=${BINDIR}/${WHICH}-as export AS
+CC=${BINDIR}/${WHICH}-gcc export CC
+CPP=${BINDIR}/${WHICH}-cpp export CPP
+CXX=${BINDIR}/${WHICH}-c++ export CXX
+FC=${BINDIR}/${WHICH}-f77 export FC
+LD=${BINDIR}/${WHICH}-ld export LD
+NM=${BINDIR}/${WHICH}-nm export NM
+RANLIB=${BINDIR}/${WHICH}-ranlib export RANLIB
+SIZE=${BINDIR}/${WHICH}-size export SIZE
+ADDR2LINE=${BINDIR}/${WHICH}-addr2line export ADDR2LINE
+GASP=${BINDIR}/${WHICH}-gasp export GASP
+OBJCOPY=${BINDIR}/${WHICH}-objcopy export OBJCOPY
+OBJDUMP=${BINDIR}/${WHICH}-objdump export OBJDUMP
+STRINGS=${BINDIR}/${WHICH}-strings export STRINGS
+STRIP=${BINDIR}/${WHICH}-strip export STRIP
+
+MKPROFILE=no export MKPROFILE
+#MKMAN=no export MKMAN
+MKLINT=no export MKLINT
+
+HOSTED_CC=cc export HOSTED_CC
+
+MAKE=make export MAKE
+#MAKE="make -f ${DESTDIR}/usr/share/mk/sys.mk -f Makefile" export MAKE
+#MAKEFLAGS="-I ${DESTDIR}/usr/share/mk" export MAKEFLAGS
+
+set -x
+exec ${MAKE} "$@"
--- /dev/null	Tue May 23 14:49:20 2000
+++ usr.bin.cpp.sh	Tue Aug 10 12:35:30 1999
@@ -0,0 +1,105 @@
+#!/bin/sh
+#
+# Copyright (c) 1990 The Regents of the University of California.
+# All rights reserved.
+#
+# This code is derived from software contributed to Berkeley by
+# the Systems Programming Group of the University of Utah Computer
+# Science Department.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+#    must display the following acknowledgement:
+#	This product includes software developed by the University of
+#	California, Berkeley and its contributors.
+# 4. Neither the name of the University nor the names of its contributors
+#    may be used to endorse or promote products derived from this software
+#    without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+#
+#	@(#)usr.bin.cpp.sh	6.5 (Berkeley) 4/1/91
+#
+# Transitional front end to CCCP to make it behave like (Reiser) CCP:
+#	specifies -traditional
+#	doesn't search gcc-include
+#
+PATH=/usr/bin:/bin
+CC=${CC-gcc}
+CPP=/usr/libexec/cpp
+ALST="-traditional -D__GNUC__ -$ "
+NSI=no
+OPTS=""
+INCS="-nostdinc"
+FOUNDFILES=no
+
+while [ $# -gt 0 ]
+do
+	A="$1"
+	shift
+
+	case $A in
+	-nostdinc)
+		NSI=yes
+		;;
+	-traditional)
+		;;
+	-B*)
+		CPP=`${CC} $A -print-prog-name=cpp`
+		;;
+	-ansi)
+		ALST=`echo $ALST | sed -e 's/-traditional//'`
+		;;
+	-I*)
+		INCS="$INCS $A"
+		;;
+	-U__GNUC__)
+		ALST=`echo $ALST | sed -e 's/-D__GNUC__//'`
+		;;
+	-imacros|-include|-idirafter|-iprefix|-iwithprefix)
+		INCS="$INCS '$A' '$1'"
+		shift
+		;;
+	-*)
+		OPTS="$OPTS '$A'"
+		;;
+	*)
+		FOUNDFILES=yes
+		if [ $NSI = "no" ]
+		then
+			INCS="$INCS -I/usr/include"
+			NSI=skip
+		fi
+		eval $CPP $ALST $INCS $OPTS $A || exit $?
+		;;
+	esac
+done
+
+if [ $FOUNDFILES = "no" ]
+then
+	# read standard input
+	if [ $NSI = "no" ]
+	then
+		INCS="$INCS -I/usr/include"
+	fi
+	eval exec $CPP $ALST $INCS $OPTS
+fi
+
+exit 0