mknative-binutils revision 1.15
11.1Smrg#!/bin/sh 21.15Schristos# $NetBSD: mknative-binutils,v 1.15 2023/02/07 20:37:30 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.15SchristosBFD_MACHINE_ARCH=$(echo ${MACHINE_ARCH} | sed -e 's/armv[4-7]/arm/') 181.15Schristos 191.15Schristos 201.6Sskrll##### external/gpl3/binutils/lib/libbfd ##### 211.1Smrg 221.1Smrgget_libbfd () { 231.15Schristos mkdir -p $_TOP/external/gpl3/binutils/lib/libbfd/arch/$BFD_MACHINE_ARCH 241.1Smrg 251.1Smrg { 261.1Smrg getvars bfd/Makefile \ 271.1Smrg libbfd_la_DEPENDENCIES libbfd_la_OBJECTS DEFS \ 281.10Schristos INCLUDES TDEFAULTS HAVEVECS 291.15Schristos } | write_mk external/gpl3/binutils/lib/libbfd/arch/$BFD_MACHINE_ARCH/defs.mk 301.1Smrg 311.15Schristos write_c external/gpl3/binutils/lib/libbfd/arch/$BFD_MACHINE_ARCH/bfd.h <$_TMPDIR/bfd/bfd.h 321.15Schristos write_c external/gpl3/binutils/lib/libbfd/arch/$BFD_MACHINE_ARCH/bfdver.h <$_TMPDIR/bfd/bfdver.h 331.1Smrg 341.1Smrg { 351.1Smrg cat $_TMPDIR/bfd/config.h 361.15Schristos } | write_c external/gpl3/binutils/lib/libbfd/arch/$BFD_MACHINE_ARCH/config.h 371.1Smrg} 381.1Smrg 391.6Sskrll##### external/gpl3/binutils/lib/libopcodes ##### 401.1Smrg 411.1Smrgget_libopcodes () { 421.15Schristos mkdir -p $_TOP/external/gpl3/binutils/lib/libopcodes/arch/$BFD_MACHINE_ARCH 431.1Smrg 441.1Smrg { 451.1Smrg getvars opcodes/Makefile \ 461.1Smrg archdefs BFD_MACHINES libopcodes_la_SOURCES 471.15Schristos } | write_mk external/gpl3/binutils/lib/libopcodes/arch/$BFD_MACHINE_ARCH/defs.mk 481.1Smrg 491.1Smrg { 501.1Smrg cat $_TMPDIR/opcodes/config.h 511.15Schristos } | write_c external/gpl3/binutils/lib/libopcodes/arch/$BFD_MACHINE_ARCH/config.h 521.1Smrg} 531.1Smrg 541.13Schristosget_libgnuctf () { 551.15Schristos mkdir -p $_TOP/external/gpl3/binutils/lib/libgnuctf/arch/$BFD_MACHINE_ARCH 561.12Schristos 571.12Schristos { 581.12Schristos getvars libctf/Makefile libctf_la_SOURCES 591.15Schristos } | write_mk external/gpl3/binutils/lib/libgnuctf/arch/$BFD_MACHINE_ARCH/defs.mk 601.12Schristos 611.12Schristos { 621.12Schristos cat $_TMPDIR/libctf/config.h 631.15Schristos } | write_c external/gpl3/binutils/lib/libgnuctf/arch/$BFD_MACHINE_ARCH/config.h 641.12Schristos} 651.12Schristos 661.6Sskrll##### external/gpl3/binutils/lib/libiberty ##### 671.1Smrg 681.1Smrgget_libiberty () { 691.15Schristos mkdir -p $_TOP/external/gpl3/binutils/lib/libiberty/arch/$BFD_MACHINE_ARCH 701.1Smrg 711.1Smrg getvars libiberty/Makefile \ 721.1Smrg ALLOCA EXTRA_OFILES LIBOBJS REQUIRED_OFILES \ 731.15Schristos | write_mk external/gpl3/binutils/lib/libiberty/arch/$BFD_MACHINE_ARCH/defs.mk 741.1Smrg 751.15Schristos write_c external/gpl3/binutils/lib/libiberty/arch/$BFD_MACHINE_ARCH/config.h \ 761.1Smrg <$_TMPDIR/libiberty/config.h 771.1Smrg} 781.1Smrg 791.6Sskrll##### external/gpl3/binutils/usr.bin ##### 801.1Smrg 811.1Smrgget_binutils () { 821.1Smrg ### common 831.1Smrg 841.15Schristos mkdir -p $_TOP/external/gpl3/binutils/usr.bin/common/arch/$BFD_MACHINE_ARCH 851.1Smrg 861.1Smrg { 871.1Smrg getvars binutils/Makefile \ 881.1Smrg VERSION DEFS INCLUDES PROGRAMS 891.14Schristos getvars binutils/Makefile \ 901.1Smrg man_MANS TEXINFOS 911.14Schristos getvars bfd/Makefile \ 921.7Sskrll PKGVERSION | sed 's,\\\(.\),\1,' 931.14Schristos getvars bfd/Makefile \ 941.7Sskrll REPORT_BUGS_TEXI 951.1Smrg 961.1Smrg for f in `getvars binutils/Makefile PROGRAMS | sed 'y,-,_,;s,^[^=]*=,,'`; do 971.1Smrg getvars binutils/Makefile ${f}_OBJECTS ${f}_DEPENDENCIES 981.1Smrg done 991.15Schristos } | write_mk external/gpl3/binutils/usr.bin/common/arch/$BFD_MACHINE_ARCH/defs.mk 1001.1Smrg 1011.15Schristos write_c external/gpl3/binutils/usr.bin/common/arch/$BFD_MACHINE_ARCH/config.h \ 1021.1Smrg <$_TMPDIR/binutils/config.h 1031.1Smrg 1041.1Smrg ### gas 1051.1Smrg 1061.15Schristos mkdir -p $_TOP/external/gpl3/binutils/usr.bin/gas/arch/$BFD_MACHINE_ARCH 1071.1Smrg 1081.8Schristos grep -v DEPDIR "$_TMPDIR/gas/Makefile" > "$_TMPDIR/gas/Makefile.nodeps" 1091.8Schristos getvars gas/Makefile.nodeps \ 1101.8Schristos DEFS INCLUDES as_new_OBJECTS as_new_LDADD | 1111.8Schristos sed -e s/G_as_new_OBJECTS/G_OBJS/ \ 1121.8Schristos -e s/G_as_new_LDADD=/G_OBJS+=/ \ 1131.11Schristos -e s@config/@@g \ 1141.8Schristos -e 's/\.\..*a//' | 1151.15Schristos write_mk external/gpl3/binutils/usr.bin/gas/arch/$BFD_MACHINE_ARCH/defs.mk 1161.1Smrg 1171.1Smrg for f in config itbl-cpu obj-format targ-cpu targ-env; do 1181.15Schristos write_c external/gpl3/binutils/usr.bin/gas/arch/$BFD_MACHINE_ARCH/$f.h <$_TMPDIR/gas/$f.h 1191.1Smrg done 1201.1Smrg 1211.1Smrg ### gprof 1221.1Smrg 1231.15Schristos mkdir -p $_TOP/external/gpl3/binutils/usr.bin/gprof/arch/$BFD_MACHINE_ARCH 1241.1Smrg 1251.1Smrg getvars gprof/Makefile \ 1261.1Smrg DEFS gprof_OBJECTS INCLUDES TEXINFOS \ 1271.15Schristos | write_mk external/gpl3/binutils/usr.bin/gprof/arch/$BFD_MACHINE_ARCH/defs.mk 1281.1Smrg 1291.15Schristos write_c external/gpl3/binutils/usr.bin/gprof/arch/$BFD_MACHINE_ARCH/gconfig.h <$_TMPDIR/gprof/gconfig.h 1301.1Smrg 1311.1Smrg ### ld 1321.1Smrg 1331.15Schristos mkdir -p $_TOP/external/gpl3/binutils/usr.bin/ld/arch/$BFD_MACHINE_ARCH 1341.1Smrg 1351.1Smrg { 1361.1Smrg getvars ld/Makefile \ 1371.1Smrg DEFS EMUL EMULATION_OFILES INCLUDES OFILES STRINGIFY TEXINFOS 1381.1Smrg getvars ld/Makefile \ 1391.1Smrg target_alias | sed 's,[\._0-9A-Z]*$,,' 1401.9Sskrll getvars ld/Makefile \ 1411.9Sskrll enable_initfini_array 1421.15Schristos } | write_mk external/gpl3/binutils/usr.bin/ld/arch/$BFD_MACHINE_ARCH/defs.mk 1431.1Smrg 1441.1Smrg for f in config ldemul-list; do 1451.15Schristos write_c external/gpl3/binutils/usr.bin/ld/arch/$BFD_MACHINE_ARCH/$f.h <$_TMPDIR/ld/$f.h 1461.1Smrg done 1471.1Smrg} 1481.1Smrg 1491.1Smrg##### main ##### 1501.1Smrg 1511.1Smrgcase $1 in 1521.2Smrgall|binutils) # everything (uses "canadian cross" temp environment) 1531.1Smrg get_binutils 1541.1Smrg get_libbfd 1551.13Schristos get_libgnuctf 1561.1Smrg get_libopcodes 1571.1Smrg get_libiberty 1581.1Smrg exit 0 1591.1Smrg ;; 1601.1Smrg 1611.1Smrg*) echo invalid arguments; exit 1;; 1621.1Smrgesac 163