mknative-binutils revision 1.10
11.1Smrg#!/bin/sh 21.10Schristos# $NetBSD: mknative-binutils,v 1.10 2018/11/07 01:14:19 christos Exp $ 31.1Smrg# 41.1Smrg# Shell script for generating all the constants needed for a native 51.6Sskrll# platform build of src/external/gpl3/binutils 61.1Smrg# 71.1Smrg 81.1Smrg# initialise 91.1Smrg 101.1Smrg_TMPDIR=$2 111.1Smrg_TOP=$3 121.1Smrg_PLATFORM=$4 131.4Smrg_VPATH=`grep VPATH ${_TMPDIR}/Makefile | sed 's,^.*=[ ]*,,'` 141.1Smrg 151.1Smrg. $_TOP/tools/gcc/mknative.common 161.1Smrg 171.6Sskrll##### external/gpl3/binutils/lib/libbfd ##### 181.1Smrg 191.1Smrgget_libbfd () { 201.6Sskrll mkdir -p $_TOP/external/gpl3/binutils/lib/libbfd/arch/$MACHINE_ARCH 211.1Smrg 221.1Smrg { 231.1Smrg getvars bfd/Makefile \ 241.1Smrg libbfd_la_DEPENDENCIES libbfd_la_OBJECTS DEFS \ 251.10Schristos INCLUDES TDEFAULTS HAVEVECS 261.6Sskrll } | write_mk external/gpl3/binutils/lib/libbfd/arch/$MACHINE_ARCH/defs.mk 271.1Smrg 281.6Sskrll write_c external/gpl3/binutils/lib/libbfd/arch/$MACHINE_ARCH/bfd.h <$_TMPDIR/bfd/bfd.h 291.6Sskrll write_c external/gpl3/binutils/lib/libbfd/arch/$MACHINE_ARCH/bfdver.h <$_TMPDIR/bfd/bfdver.h 301.6Sskrll write_c external/gpl3/binutils/lib/libbfd/arch/$MACHINE_ARCH/bfd_stdint.h <$_TMPDIR/bfd/bfd_stdint.h 311.1Smrg 321.1Smrg { 331.1Smrg cat $_TMPDIR/bfd/config.h 341.6Sskrll } | write_c external/gpl3/binutils/lib/libbfd/arch/$MACHINE_ARCH/config.h 351.1Smrg} 361.1Smrg 371.6Sskrll##### external/gpl3/binutils/lib/libopcodes ##### 381.1Smrg 391.1Smrgget_libopcodes () { 401.6Sskrll mkdir -p $_TOP/external/gpl3/binutils/lib/libopcodes/arch/$MACHINE_ARCH 411.1Smrg 421.1Smrg { 431.1Smrg getvars opcodes/Makefile \ 441.1Smrg archdefs BFD_MACHINES libopcodes_la_SOURCES 451.6Sskrll } | write_mk external/gpl3/binutils/lib/libopcodes/arch/$MACHINE_ARCH/defs.mk 461.1Smrg 471.1Smrg { 481.1Smrg cat $_TMPDIR/opcodes/config.h 491.6Sskrll } | write_c external/gpl3/binutils/lib/libopcodes/arch/$MACHINE_ARCH/config.h 501.1Smrg} 511.1Smrg 521.6Sskrll##### external/gpl3/binutils/lib/libiberty ##### 531.1Smrg 541.1Smrgget_libiberty () { 551.6Sskrll mkdir -p $_TOP/external/gpl3/binutils/lib/libiberty/arch/$MACHINE_ARCH 561.1Smrg 571.1Smrg getvars libiberty/Makefile \ 581.1Smrg ALLOCA EXTRA_OFILES LIBOBJS REQUIRED_OFILES \ 591.6Sskrll | write_mk external/gpl3/binutils/lib/libiberty/arch/$MACHINE_ARCH/defs.mk 601.1Smrg 611.6Sskrll write_c external/gpl3/binutils/lib/libiberty/arch/$MACHINE_ARCH/config.h \ 621.1Smrg <$_TMPDIR/libiberty/config.h 631.1Smrg} 641.1Smrg 651.6Sskrll##### external/gpl3/binutils/usr.bin ##### 661.1Smrg 671.1Smrgget_binutils () { 681.1Smrg ### common 691.1Smrg 701.6Sskrll mkdir -p $_TOP/external/gpl3/binutils/usr.bin/common/arch/$MACHINE_ARCH 711.1Smrg 721.1Smrg { 731.1Smrg getvars binutils/Makefile \ 741.1Smrg VERSION DEFS INCLUDES PROGRAMS 751.1Smrg getvars binutils/doc/Makefile \ 761.1Smrg man_MANS TEXINFOS 771.7Sskrll getvars bfd/doc/Makefile \ 781.7Sskrll PKGVERSION | sed 's,\\\(.\),\1,' 791.7Sskrll getvars bfd/doc/Makefile \ 801.7Sskrll REPORT_BUGS_TEXI 811.1Smrg 821.1Smrg for f in `getvars binutils/Makefile PROGRAMS | sed 'y,-,_,;s,^[^=]*=,,'`; do 831.1Smrg getvars binutils/Makefile ${f}_OBJECTS ${f}_DEPENDENCIES 841.1Smrg done 851.6Sskrll } | write_mk external/gpl3/binutils/usr.bin/common/arch/$MACHINE_ARCH/defs.mk 861.1Smrg 871.6Sskrll write_c external/gpl3/binutils/usr.bin/common/arch/$MACHINE_ARCH/config.h \ 881.1Smrg <$_TMPDIR/binutils/config.h 891.1Smrg 901.1Smrg ### gas 911.1Smrg 921.6Sskrll mkdir -p $_TOP/external/gpl3/binutils/usr.bin/gas/arch/$MACHINE_ARCH 931.1Smrg 941.8Schristos grep -v DEPDIR "$_TMPDIR/gas/Makefile" > "$_TMPDIR/gas/Makefile.nodeps" 951.8Schristos getvars gas/Makefile.nodeps \ 961.8Schristos DEFS INCLUDES as_new_OBJECTS as_new_LDADD | 971.8Schristos sed -e s/G_as_new_OBJECTS/G_OBJS/ \ 981.8Schristos -e s/G_as_new_LDADD=/G_OBJS+=/ \ 991.10Schristos -e s@config/@@ \ 1001.8Schristos -e 's/\.\..*a//' | 1011.8Schristos write_mk external/gpl3/binutils/usr.bin/gas/arch/$MACHINE_ARCH/defs.mk 1021.1Smrg 1031.1Smrg for f in config itbl-cpu obj-format targ-cpu targ-env; do 1041.6Sskrll write_c external/gpl3/binutils/usr.bin/gas/arch/$MACHINE_ARCH/$f.h <$_TMPDIR/gas/$f.h 1051.1Smrg done 1061.1Smrg 1071.1Smrg ### gprof 1081.1Smrg 1091.6Sskrll mkdir -p $_TOP/external/gpl3/binutils/usr.bin/gprof/arch/$MACHINE_ARCH 1101.1Smrg 1111.1Smrg getvars gprof/Makefile \ 1121.1Smrg DEFS gprof_OBJECTS INCLUDES TEXINFOS \ 1131.6Sskrll | write_mk external/gpl3/binutils/usr.bin/gprof/arch/$MACHINE_ARCH/defs.mk 1141.1Smrg 1151.6Sskrll write_c external/gpl3/binutils/usr.bin/gprof/arch/$MACHINE_ARCH/gconfig.h <$_TMPDIR/gprof/gconfig.h 1161.1Smrg 1171.1Smrg ### ld 1181.1Smrg 1191.6Sskrll mkdir -p $_TOP/external/gpl3/binutils/usr.bin/ld/arch/$MACHINE_ARCH 1201.1Smrg 1211.1Smrg { 1221.1Smrg getvars ld/Makefile \ 1231.1Smrg DEFS EMUL EMULATION_OFILES INCLUDES OFILES STRINGIFY TEXINFOS 1241.1Smrg getvars ld/Makefile \ 1251.1Smrg target_alias | sed 's,[\._0-9A-Z]*$,,' 1261.9Sskrll getvars ld/Makefile \ 1271.9Sskrll enable_initfini_array 1281.6Sskrll } | write_mk external/gpl3/binutils/usr.bin/ld/arch/$MACHINE_ARCH/defs.mk 1291.1Smrg 1301.1Smrg for f in config ldemul-list; do 1311.6Sskrll write_c external/gpl3/binutils/usr.bin/ld/arch/$MACHINE_ARCH/$f.h <$_TMPDIR/ld/$f.h 1321.1Smrg done 1331.1Smrg} 1341.1Smrg 1351.1Smrg##### main ##### 1361.1Smrg 1371.1Smrgcase $1 in 1381.2Smrgall|binutils) # everything (uses "canadian cross" temp environment) 1391.1Smrg get_binutils 1401.1Smrg get_libbfd 1411.1Smrg get_libopcodes 1421.1Smrg get_libiberty 1431.1Smrg exit 0 1441.1Smrg ;; 1451.1Smrg 1461.1Smrg*) echo invalid arguments; exit 1;; 1471.1Smrgesac 148