mknative-gcc revision 1.9
11.1Smrg#!/bin/sh
21.9Smrg#	$NetBSD: mknative-gcc,v 1.9 2003/11/27 01:05:45 mrg Exp $
31.1Smrg#
41.1Smrg# Shell script for generating all the constants needed for a native
51.1Smrg# platform build of src/gnu/dist/toolchain.
61.1Smrg#
71.1Smrg
81.9Smrg# initialise
91.9Smrg
101.9Smrg_TMPDIR=$2
111.9Smrg_TOP=$3
121.9Smrg_PLATFORM=$4
131.9Smrg_VPATH=`grep VPATH ${_TMPDIR}/Makefile | sed 's,^.*= ,,'`
141.9Smrg_GNU_DIST=`cd ${_VPATH}; pwd`
151.9Smrg
161.9Smrg. $_TOP/tools/gcc/mknative.common
171.1Smrg
181.1Smrg##### gnu/lib/libg2c #####
191.1Smrg
201.1Smrgget_libg2c () {
211.1Smrg	mkdir -p $_TOP/gnu/lib/libg2c3/arch/$MACHINE_ARCH
221.1Smrg
231.1Smrg	write_c gnu/lib/libg2c3/arch/$MACHINE_ARCH/config.h <$_TMPDIR/$_PLATFORM/libf2c/libU77/config.h
241.1Smrg	write_c gnu/lib/libg2c3/arch/$MACHINE_ARCH/g2c.h <$_TMPDIR/$_PLATFORM/libf2c/g2c.h
251.1Smrg
261.1Smrg	{
271.1Smrg		getvars $_PLATFORM/libf2c/Makefile \
281.1Smrg			F2CEXT
291.1Smrg		getvars $_PLATFORM/libf2c/libF77/Makefile \
301.1Smrg			ALL_CFLAGS OBJS
311.1Smrg		getvars $_PLATFORM/libf2c/libI77/Makefile \
321.1Smrg			ALL_CFLAGS OBJS | sed 's,=,+=,'
331.1Smrg		getvars $_PLATFORM/libf2c/libU77/Makefile \
341.1Smrg			ALL_CFLAGS OBJS | sed 's,=,+=,'
351.1Smrg	} | write_mk gnu/lib/libg2c3/arch/$MACHINE_ARCH/defs.mk
361.1Smrg}
371.1Smrg
381.1Smrg##### gnu/lib/libgcc #####
391.1Smrg
401.1Smrgget_libgcc () {
411.4Smrg	mkdir -p $_TOP/gnu/lib/libgcc3
421.1Smrg
431.1Smrg	# DPBIT, FPBIT only used on mn10[23]00, we don't need them.
441.4Smrg	# XXX we should probably grab everything Just In Case for
451.4Smrg	# the future.
461.1Smrg	getvars gcc/Makefile \
471.1Smrg		CXX_EXTRA_HEADERS CXX_LIB2FUNCS CXX_LIB2SRCS \
481.1Smrg		INCLUDES LIB2ADD LIB2ADDEH LIB2FUNCS_1 LIB2FUNCS_2 \
491.8Smrg		LIB2FUNCS_EXTRA \
501.1Smrg		LIB2_DIVMOD_FUNCS LIB2FUNCS_ST \
511.1Smrg		LIBGCC2_CFLAGS MAYBE_USE_COLLECT2 \
521.1Smrg		tm_defines xm_file xm_defines \
531.1Smrg		| write_mk gnu/lib/libgcc3/$MACHINE_ARCH.mk
541.1Smrg}
551.1Smrg
561.1Smrg##### gnu/usr.bin/gcc3/libiberty #####
571.1Smrg
581.1Smrgget_gcc3_libiberty () {
591.4Smrg	mkdir -p $_TOP/gnu/usr.bin/gcc3/libiberty/arch/$MACHINE_ARCH
601.1Smrg
611.1Smrg	getvars libiberty/Makefile \
621.1Smrg		ALLOCA EXTRA_OFILES LIBOBJS REQUIRED_OFILES \
631.1Smrg		| write_mk gnu/usr.bin/gcc3/libiberty/defs.mk
641.1Smrg
651.5Smrg	write_c gnu/usr.bin/gcc3/libiberty/arch/$MACHINE_ARCH/config.h \
661.1Smrg		<$_TMPDIR/libiberty/config.h
671.1Smrg}
681.1Smrg
691.1Smrg##### gnu/lib/libobjc #####
701.1Smrg
711.1Smrgget_libobjc () {
721.1Smrg	mkdir -p $_TOP/gnu/lib/libobjc3
731.1Smrg
741.1Smrg	getvars $_PLATFORM/libobjc/Makefile \
751.1Smrg		ALL_CFLAGS INCLUDES OBJS OBJC_H \
761.3Smrg		| sed "s,$_GNU_DIST,\${GNUHOSTDIST},g" \
771.1Smrg		| write_mk gnu/lib/libobjc3/defs.mk
781.1Smrg}
791.1Smrg
801.1Smrg##### gnu/lib/libstdc++-v3 #####
811.1Smrg
821.1Smrgget_libstdcxx_v3 () {
831.1Smrg	mkdir -p $_TOP/gnu/lib/libstdc++-v3/arch/$MACHINE_ARCH
841.1Smrg
851.1Smrg	# build files
861.1Smrg	for h in gthr.h gthr-single.h gthr-posix.h gthr-default.h c++config.h; do
871.1Smrg		write_c gnu/lib/libstdc++-v3/arch/$MACHINE_ARCH/$h \
881.1Smrg			<$_TMPDIR/$_PLATFORM/libstdc++-v3/include/$_PLATFORM/bits/$h
891.1Smrg	done
901.1Smrg
911.6Smrg	write_c gnu/lib/libstdc++-v3/arch/$MACHINE_ARCH/config.h \
921.6Smrg		<$_TMPDIR/$_PLATFORM/libstdc++-v3/config.h
931.6Smrg
941.1Smrg	{
951.1Smrg		# libmath
961.1Smrg		getvars $_PLATFORM/libstdc++-v3/libmath/Makefile \
971.1Smrg			libmath_la_SOURCES libmath_la_LIBADD
981.1Smrg
991.1Smrg		# libsupc++
1001.1Smrg		getvars $_PLATFORM/libstdc++-v3/libsupc++/Makefile \
1011.1Smrg			sources | sed 's/^G_sources=/G_LIBSUPCXX_SOURCES=/'
1021.1Smrg		getvars $_PLATFORM/libstdc++-v3/libsupc++/Makefile \
1031.1Smrg			c_sources | sed 's/^G_c_sources=/G_LIBSUPCXX_C_SOURCES=/'
1041.1Smrg
1051.1Smrg		# src
1061.1Smrg		getvars $_PLATFORM/libstdc++-v3/src/Makefile \
1071.1Smrg			sources SECTION_FLAGS | sed 's/^G_sources=/G_SRC_SOURCES=/'
1081.1Smrg
1091.1Smrg		# include
1101.1Smrg		getvars $_PLATFORM/libstdc++-v3/include/Makefile \
1111.1Smrg			c_base_headers_rename std_headers_rename
1121.1Smrg		getvars $_PLATFORM/libstdc++-v3/include/Makefile \
1131.1Smrg			bits_headers backward_headers ext_headers c_base_headers_extra \
1141.1Smrg			target_headers | sed 's#/[^ 	][^ 	]*/##g'
1151.1Smrg		getvars $_PLATFORM/libstdc++-v3/include/Makefile \
1161.1Smrg			thread_target_headers target_headers_extra | sed 's#\./[^ 	][^ 	]*/##g'
1171.1Smrg	} | write_mk gnu/lib/libstdc++-v3/arch/$MACHINE_ARCH/defs.mk
1181.1Smrg}
1191.1Smrg
1201.1Smrg##### gnu/usr.bin/gcc3 #####
1211.1Smrg
1221.1Smrgget_gcc () {
1231.1Smrg	mkdir -p $_TOP/gnu/usr.bin/gcc3/arch/$MACHINE_ARCH
1241.1Smrg
1251.1Smrg	{
1261.1Smrg		getvars gcc/Makefile \
1271.1Smrg			ALL_CFLAGS ALL_CPPFLAGS C_AND_OBJC_OBJS C_OBJS CCCP_OBJS \
1281.1Smrg			GCOV_OBJS PROTO_OBJS HOST_PRINT HOST_RTL HOST_RTLANAL \
1291.1Smrg			HOST_SUPPORT HOST_EARLY_SUPPORT HOST_ERRORS HOST_VARRAY \
1301.1Smrg			INCLUDES md_file OBJC_OBJS OBJS out_file version \
1311.1Smrg			BUILD_PREFIX RTL_H TREE_H HCONFIG_H BASIC_BLOCK_H GCC_H \
1321.1Smrg			GTFILES_SRCDIR GTFILES_FILES_FILES GTFILES_FILES_LANGS \
1331.1Smrg			GTFILES GTFILES_LANG_DIR_NAMES \
1341.1Smrg			tm_defines host_xm_file host_xm_defines tm_p_file \
1351.1Smrg			target_cpu_default \
1361.1Smrg			LIBCPP_OBJS LIBCPP_H \
1371.1Smrg			lang_specs_files
1381.1Smrg		getvars gcc/Makefile \
1391.1Smrg			LIB2ADDEHDEP | sed 's/unwind.inc//'
1401.1Smrg		getvars gcc/Makefile \
1411.1Smrg			CXX_OBJS CXX_C_OBJS | sed 's/cp\///g'
1421.1Smrg		getvars gcc/Makefile \
1431.1Smrg			F77_OBJS | sed 's/f\///g'
1441.1Smrg	} | write_mk gnu/usr.bin/gcc3/arch/$MACHINE_ARCH/defs.mk
1451.1Smrg
1461.7Smrg	for f in auto-host configargs cs-hconfig gencheck hconfig gthr-default; do
1471.1Smrg		write_c gnu/usr.bin/gcc3/arch/$MACHINE_ARCH/$f.h <$_TMPDIR/gcc/$f.h
1481.1Smrg	done
1491.1Smrg}
1501.1Smrg
1511.1Smrg##### main #####
1521.1Smrg
1531.1Smrgcase $1 in
1541.1Smrglibgcc)	# .mk and .h files for libgcc bootstrap (from host build)
1551.1Smrg	get_libgcc
1561.1Smrg	exit 0
1571.1Smrg	;;
1581.1Smrg
1591.1Smrggcc3)
1601.1Smrg	get_gcc
1611.1Smrg	get_libg2c
1621.1Smrg	get_libgcc
1631.1Smrg	get_gcc3_libiberty
1641.1Smrg	get_libobjc
1651.1Smrg	get_libstdcxx_v3
1661.1Smrg	exit 0
1671.1Smrg	;;
1681.1Smrg
1691.1Smrg*)	echo invalid arguments; exit 1;;
1701.1Smrgesac
171