mknative-gcc revision 1.15
11.1Smrg#!/bin/sh 21.15Smrg# $NetBSD: mknative-gcc,v 1.15 2004/12/10 13:58:11 mrg 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.15Smrg_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.14Sthorpej##### gnu/lib/crtstuff ##### 191.14Sthorpej 201.14Sthorpejget_crtstuff () { 211.14Sthorpej mkdir -p $_TOP/gnu/lib/crtstuff3/arch 221.14Sthorpej 231.14Sthorpej getvars gcc/Makefile \ 241.14Sthorpej INCLUDES CRTSTUFF_CFLAGS CRTSTUFF_T_CFLAGS \ 251.14Sthorpej tm_defines xm_file xm_defines \ 261.14Sthorpej | write_mk gnu/lib/crtstuff3/arch/$MACHINE_ARCH.mk 271.14Sthorpej} 281.14Sthorpej 291.1Smrg##### gnu/lib/libg2c ##### 301.1Smrg 311.1Smrgget_libg2c () { 321.1Smrg mkdir -p $_TOP/gnu/lib/libg2c3/arch/$MACHINE_ARCH 331.1Smrg 341.1Smrg write_c gnu/lib/libg2c3/arch/$MACHINE_ARCH/config.h <$_TMPDIR/$_PLATFORM/libf2c/libU77/config.h 351.1Smrg write_c gnu/lib/libg2c3/arch/$MACHINE_ARCH/g2c.h <$_TMPDIR/$_PLATFORM/libf2c/g2c.h 361.1Smrg 371.1Smrg { 381.1Smrg getvars $_PLATFORM/libf2c/Makefile \ 391.1Smrg F2CEXT 401.1Smrg getvars $_PLATFORM/libf2c/libF77/Makefile \ 411.1Smrg ALL_CFLAGS OBJS 421.1Smrg getvars $_PLATFORM/libf2c/libI77/Makefile \ 431.1Smrg ALL_CFLAGS OBJS | sed 's,=,+=,' 441.1Smrg getvars $_PLATFORM/libf2c/libU77/Makefile \ 451.1Smrg ALL_CFLAGS OBJS | sed 's,=,+=,' 461.1Smrg } | write_mk gnu/lib/libg2c3/arch/$MACHINE_ARCH/defs.mk 471.1Smrg} 481.1Smrg 491.1Smrg##### gnu/lib/libgcc ##### 501.1Smrg 511.1Smrgget_libgcc () { 521.11Sskrll mkdir -p $_TOP/gnu/lib/libgcc3/arch 531.1Smrg 541.1Smrg # DPBIT, FPBIT only used on mn10[23]00, we don't need them. 551.4Smrg # XXX we should probably grab everything Just In Case for 561.4Smrg # the future. 571.1Smrg getvars gcc/Makefile \ 581.1Smrg INCLUDES LIB2ADD LIB2ADDEH LIB2FUNCS_1 LIB2FUNCS_2 \ 591.12Sskrll LIB1ASMFUNCS LIB1ASMSRC \ 601.1Smrg LIB2_DIVMOD_FUNCS LIB2FUNCS_ST \ 611.12Sskrll LIBGCC2_CFLAGS USE_COLLECT2 \ 621.13Sskrll SHLIB_MKMAP SHLIB_MKMAP_OPTS \ 631.13Sskrll SHLIB_MAPFILES SHLIB_NM_FLAGS \ 641.12Sskrll EXTRA_HEADERS \ 651.1Smrg tm_defines xm_file xm_defines \ 661.11Sskrll | write_mk gnu/lib/libgcc3/arch/$MACHINE_ARCH.mk 671.1Smrg} 681.1Smrg 691.1Smrg##### gnu/usr.bin/gcc3/libiberty ##### 701.1Smrg 711.1Smrgget_gcc3_libiberty () { 721.4Smrg mkdir -p $_TOP/gnu/usr.bin/gcc3/libiberty/arch/$MACHINE_ARCH 731.1Smrg 741.1Smrg getvars libiberty/Makefile \ 751.1Smrg ALLOCA EXTRA_OFILES LIBOBJS REQUIRED_OFILES \ 761.1Smrg | write_mk gnu/usr.bin/gcc3/libiberty/defs.mk 771.1Smrg 781.5Smrg write_c gnu/usr.bin/gcc3/libiberty/arch/$MACHINE_ARCH/config.h \ 791.1Smrg <$_TMPDIR/libiberty/config.h 801.1Smrg} 811.1Smrg 821.1Smrg##### gnu/lib/libobjc ##### 831.1Smrg 841.1Smrgget_libobjc () { 851.1Smrg mkdir -p $_TOP/gnu/lib/libobjc3 861.1Smrg 871.1Smrg getvars $_PLATFORM/libobjc/Makefile \ 881.1Smrg ALL_CFLAGS INCLUDES OBJS OBJC_H \ 891.3Smrg | sed "s,$_GNU_DIST,\${GNUHOSTDIST},g" \ 901.1Smrg | write_mk gnu/lib/libobjc3/defs.mk 911.1Smrg} 921.1Smrg 931.1Smrg##### gnu/lib/libstdc++-v3 ##### 941.1Smrg 951.1Smrgget_libstdcxx_v3 () { 961.1Smrg mkdir -p $_TOP/gnu/lib/libstdc++-v3/arch/$MACHINE_ARCH 971.1Smrg 981.1Smrg # build files 991.1Smrg for h in gthr.h gthr-single.h gthr-posix.h gthr-default.h c++config.h; do 1001.1Smrg write_c gnu/lib/libstdc++-v3/arch/$MACHINE_ARCH/$h \ 1011.1Smrg <$_TMPDIR/$_PLATFORM/libstdc++-v3/include/$_PLATFORM/bits/$h 1021.1Smrg done 1031.1Smrg 1041.6Smrg write_c gnu/lib/libstdc++-v3/arch/$MACHINE_ARCH/config.h \ 1051.6Smrg <$_TMPDIR/$_PLATFORM/libstdc++-v3/config.h 1061.6Smrg 1071.1Smrg { 1081.1Smrg # libmath 1091.1Smrg getvars $_PLATFORM/libstdc++-v3/libmath/Makefile \ 1101.1Smrg libmath_la_SOURCES libmath_la_LIBADD 1111.1Smrg 1121.1Smrg # libsupc++ 1131.1Smrg getvars $_PLATFORM/libstdc++-v3/libsupc++/Makefile \ 1141.1Smrg sources | sed 's/^G_sources=/G_LIBSUPCXX_SOURCES=/' 1151.1Smrg getvars $_PLATFORM/libstdc++-v3/libsupc++/Makefile \ 1161.1Smrg c_sources | sed 's/^G_c_sources=/G_LIBSUPCXX_C_SOURCES=/' 1171.1Smrg 1181.1Smrg # src 1191.1Smrg getvars $_PLATFORM/libstdc++-v3/src/Makefile \ 1201.1Smrg sources SECTION_FLAGS | sed 's/^G_sources=/G_SRC_SOURCES=/' 1211.1Smrg 1221.1Smrg # include 1231.1Smrg getvars $_PLATFORM/libstdc++-v3/include/Makefile \ 1241.1Smrg c_base_headers_rename std_headers_rename 1251.1Smrg getvars $_PLATFORM/libstdc++-v3/include/Makefile \ 1261.1Smrg bits_headers backward_headers ext_headers c_base_headers_extra \ 1271.1Smrg target_headers | sed 's#/[^ ][^ ]*/##g' 1281.1Smrg getvars $_PLATFORM/libstdc++-v3/include/Makefile \ 1291.1Smrg thread_target_headers target_headers_extra | sed 's#\./[^ ][^ ]*/##g' 1301.1Smrg } | write_mk gnu/lib/libstdc++-v3/arch/$MACHINE_ARCH/defs.mk 1311.1Smrg} 1321.1Smrg 1331.1Smrg##### gnu/usr.bin/gcc3 ##### 1341.1Smrg 1351.1Smrgget_gcc () { 1361.1Smrg mkdir -p $_TOP/gnu/usr.bin/gcc3/arch/$MACHINE_ARCH 1371.1Smrg 1381.1Smrg { 1391.1Smrg getvars gcc/Makefile \ 1401.1Smrg ALL_CFLAGS ALL_CPPFLAGS C_AND_OBJC_OBJS C_OBJS CCCP_OBJS \ 1411.1Smrg GCOV_OBJS PROTO_OBJS HOST_PRINT HOST_RTL HOST_RTLANAL \ 1421.1Smrg HOST_SUPPORT HOST_EARLY_SUPPORT HOST_ERRORS HOST_VARRAY \ 1431.1Smrg INCLUDES md_file OBJC_OBJS OBJS out_file version \ 1441.1Smrg BUILD_PREFIX RTL_H TREE_H HCONFIG_H BASIC_BLOCK_H GCC_H \ 1451.1Smrg GTFILES_SRCDIR GTFILES_FILES_FILES GTFILES_FILES_LANGS \ 1461.1Smrg GTFILES GTFILES_LANG_DIR_NAMES \ 1471.1Smrg tm_defines host_xm_file host_xm_defines tm_p_file \ 1481.1Smrg target_cpu_default \ 1491.1Smrg LIBCPP_OBJS LIBCPP_H \ 1501.1Smrg lang_specs_files 1511.1Smrg getvars gcc/Makefile \ 1521.1Smrg LIB2ADDEHDEP | sed 's/unwind.inc//' 1531.1Smrg getvars gcc/Makefile \ 1541.1Smrg CXX_OBJS CXX_C_OBJS | sed 's/cp\///g' 1551.1Smrg getvars gcc/Makefile \ 1561.1Smrg F77_OBJS | sed 's/f\///g' 1571.12Sskrll getvars gcc/Makefile \ 1581.12Sskrll ENABLE_SHARED SHLIB_LINK SHLIB_MULTILIB 1591.1Smrg } | write_mk gnu/usr.bin/gcc3/arch/$MACHINE_ARCH/defs.mk 1601.1Smrg 1611.7Smrg for f in auto-host configargs cs-hconfig gencheck hconfig gthr-default; do 1621.1Smrg write_c gnu/usr.bin/gcc3/arch/$MACHINE_ARCH/$f.h <$_TMPDIR/gcc/$f.h 1631.1Smrg done 1641.1Smrg} 1651.1Smrg 1661.1Smrg##### main ##### 1671.1Smrg 1681.1Smrgcase $1 in 1691.1Smrglibgcc) # .mk and .h files for libgcc bootstrap (from host build) 1701.1Smrg get_libgcc 1711.14Sthorpej get_crtstuff 1721.1Smrg exit 0 1731.1Smrg ;; 1741.1Smrg 1751.1Smrggcc3) 1761.1Smrg get_gcc 1771.1Smrg get_libg2c 1781.1Smrg get_libgcc 1791.14Sthorpej get_crtstuff 1801.1Smrg get_gcc3_libiberty 1811.1Smrg get_libobjc 1821.1Smrg get_libstdcxx_v3 1831.1Smrg exit 0 1841.1Smrg ;; 1851.1Smrg 1861.1Smrg*) echo invalid arguments; exit 1;; 1871.1Smrgesac 188