mknative-gcc revision 1.13
11.1Smrg#!/bin/sh 21.13Sskrll# $NetBSD: mknative-gcc,v 1.13 2004/07/01 13:22:25 skrll Exp $ 31.1Smrg# 41.1Smrg# Shell script for generating all the constants needed for a native 51.10Smrg# platform build of src/gnu/dist/gcc. 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.11Sskrll mkdir -p $_TOP/gnu/lib/libgcc3/arch 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 INCLUDES LIB2ADD LIB2ADDEH LIB2FUNCS_1 LIB2FUNCS_2 \ 481.12Sskrll LIB1ASMFUNCS LIB1ASMSRC \ 491.1Smrg LIB2_DIVMOD_FUNCS LIB2FUNCS_ST \ 501.12Sskrll LIBGCC2_CFLAGS USE_COLLECT2 \ 511.13Sskrll SHLIB_MKMAP SHLIB_MKMAP_OPTS \ 521.13Sskrll SHLIB_MAPFILES SHLIB_NM_FLAGS \ 531.12Sskrll EXTRA_HEADERS \ 541.1Smrg tm_defines xm_file xm_defines \ 551.11Sskrll | write_mk gnu/lib/libgcc3/arch/$MACHINE_ARCH.mk 561.1Smrg} 571.1Smrg 581.1Smrg##### gnu/usr.bin/gcc3/libiberty ##### 591.1Smrg 601.1Smrgget_gcc3_libiberty () { 611.4Smrg mkdir -p $_TOP/gnu/usr.bin/gcc3/libiberty/arch/$MACHINE_ARCH 621.1Smrg 631.1Smrg getvars libiberty/Makefile \ 641.1Smrg ALLOCA EXTRA_OFILES LIBOBJS REQUIRED_OFILES \ 651.1Smrg | write_mk gnu/usr.bin/gcc3/libiberty/defs.mk 661.1Smrg 671.5Smrg write_c gnu/usr.bin/gcc3/libiberty/arch/$MACHINE_ARCH/config.h \ 681.1Smrg <$_TMPDIR/libiberty/config.h 691.1Smrg} 701.1Smrg 711.1Smrg##### gnu/lib/libobjc ##### 721.1Smrg 731.1Smrgget_libobjc () { 741.1Smrg mkdir -p $_TOP/gnu/lib/libobjc3 751.1Smrg 761.1Smrg getvars $_PLATFORM/libobjc/Makefile \ 771.1Smrg ALL_CFLAGS INCLUDES OBJS OBJC_H \ 781.3Smrg | sed "s,$_GNU_DIST,\${GNUHOSTDIST},g" \ 791.1Smrg | write_mk gnu/lib/libobjc3/defs.mk 801.1Smrg} 811.1Smrg 821.1Smrg##### gnu/lib/libstdc++-v3 ##### 831.1Smrg 841.1Smrgget_libstdcxx_v3 () { 851.1Smrg mkdir -p $_TOP/gnu/lib/libstdc++-v3/arch/$MACHINE_ARCH 861.1Smrg 871.1Smrg # build files 881.1Smrg for h in gthr.h gthr-single.h gthr-posix.h gthr-default.h c++config.h; do 891.1Smrg write_c gnu/lib/libstdc++-v3/arch/$MACHINE_ARCH/$h \ 901.1Smrg <$_TMPDIR/$_PLATFORM/libstdc++-v3/include/$_PLATFORM/bits/$h 911.1Smrg done 921.1Smrg 931.6Smrg write_c gnu/lib/libstdc++-v3/arch/$MACHINE_ARCH/config.h \ 941.6Smrg <$_TMPDIR/$_PLATFORM/libstdc++-v3/config.h 951.6Smrg 961.1Smrg { 971.1Smrg # libmath 981.1Smrg getvars $_PLATFORM/libstdc++-v3/libmath/Makefile \ 991.1Smrg libmath_la_SOURCES libmath_la_LIBADD 1001.1Smrg 1011.1Smrg # libsupc++ 1021.1Smrg getvars $_PLATFORM/libstdc++-v3/libsupc++/Makefile \ 1031.1Smrg sources | sed 's/^G_sources=/G_LIBSUPCXX_SOURCES=/' 1041.1Smrg getvars $_PLATFORM/libstdc++-v3/libsupc++/Makefile \ 1051.1Smrg c_sources | sed 's/^G_c_sources=/G_LIBSUPCXX_C_SOURCES=/' 1061.1Smrg 1071.1Smrg # src 1081.1Smrg getvars $_PLATFORM/libstdc++-v3/src/Makefile \ 1091.1Smrg sources SECTION_FLAGS | sed 's/^G_sources=/G_SRC_SOURCES=/' 1101.1Smrg 1111.1Smrg # include 1121.1Smrg getvars $_PLATFORM/libstdc++-v3/include/Makefile \ 1131.1Smrg c_base_headers_rename std_headers_rename 1141.1Smrg getvars $_PLATFORM/libstdc++-v3/include/Makefile \ 1151.1Smrg bits_headers backward_headers ext_headers c_base_headers_extra \ 1161.1Smrg target_headers | sed 's#/[^ ][^ ]*/##g' 1171.1Smrg getvars $_PLATFORM/libstdc++-v3/include/Makefile \ 1181.1Smrg thread_target_headers target_headers_extra | sed 's#\./[^ ][^ ]*/##g' 1191.1Smrg } | write_mk gnu/lib/libstdc++-v3/arch/$MACHINE_ARCH/defs.mk 1201.1Smrg} 1211.1Smrg 1221.1Smrg##### gnu/usr.bin/gcc3 ##### 1231.1Smrg 1241.1Smrgget_gcc () { 1251.1Smrg mkdir -p $_TOP/gnu/usr.bin/gcc3/arch/$MACHINE_ARCH 1261.1Smrg 1271.1Smrg { 1281.1Smrg getvars gcc/Makefile \ 1291.1Smrg ALL_CFLAGS ALL_CPPFLAGS C_AND_OBJC_OBJS C_OBJS CCCP_OBJS \ 1301.1Smrg GCOV_OBJS PROTO_OBJS HOST_PRINT HOST_RTL HOST_RTLANAL \ 1311.1Smrg HOST_SUPPORT HOST_EARLY_SUPPORT HOST_ERRORS HOST_VARRAY \ 1321.1Smrg INCLUDES md_file OBJC_OBJS OBJS out_file version \ 1331.1Smrg BUILD_PREFIX RTL_H TREE_H HCONFIG_H BASIC_BLOCK_H GCC_H \ 1341.1Smrg GTFILES_SRCDIR GTFILES_FILES_FILES GTFILES_FILES_LANGS \ 1351.1Smrg GTFILES GTFILES_LANG_DIR_NAMES \ 1361.1Smrg tm_defines host_xm_file host_xm_defines tm_p_file \ 1371.1Smrg target_cpu_default \ 1381.1Smrg LIBCPP_OBJS LIBCPP_H \ 1391.1Smrg lang_specs_files 1401.1Smrg getvars gcc/Makefile \ 1411.1Smrg LIB2ADDEHDEP | sed 's/unwind.inc//' 1421.1Smrg getvars gcc/Makefile \ 1431.1Smrg CXX_OBJS CXX_C_OBJS | sed 's/cp\///g' 1441.1Smrg getvars gcc/Makefile \ 1451.1Smrg F77_OBJS | sed 's/f\///g' 1461.12Sskrll getvars gcc/Makefile \ 1471.12Sskrll ENABLE_SHARED SHLIB_LINK SHLIB_MULTILIB 1481.1Smrg } | write_mk gnu/usr.bin/gcc3/arch/$MACHINE_ARCH/defs.mk 1491.1Smrg 1501.7Smrg for f in auto-host configargs cs-hconfig gencheck hconfig gthr-default; do 1511.1Smrg write_c gnu/usr.bin/gcc3/arch/$MACHINE_ARCH/$f.h <$_TMPDIR/gcc/$f.h 1521.1Smrg done 1531.1Smrg} 1541.1Smrg 1551.1Smrg##### main ##### 1561.1Smrg 1571.1Smrgcase $1 in 1581.1Smrglibgcc) # .mk and .h files for libgcc bootstrap (from host build) 1591.1Smrg get_libgcc 1601.1Smrg exit 0 1611.1Smrg ;; 1621.1Smrg 1631.1Smrggcc3) 1641.1Smrg get_gcc 1651.1Smrg get_libg2c 1661.1Smrg get_libgcc 1671.1Smrg get_gcc3_libiberty 1681.1Smrg get_libobjc 1691.1Smrg get_libstdcxx_v3 1701.1Smrg exit 0 1711.1Smrg ;; 1721.1Smrg 1731.1Smrg*) echo invalid arguments; exit 1;; 1741.1Smrgesac 175