166738971Srin#!/bin/sh 2*3af1bc3cSchristos# $NetBSD: mknative-binutils.old,v 1.3 2024/07/01 01:56:52 christos Exp $ 366738971Srin# 466738971Srin# Shell script for generating all the constants needed for a native 5*3af1bc3cSchristos# platform build of src/external/gpl3/binutils.old 666738971Srin# 766738971Srin 866738971Srin# initialise 966738971Srin 1066738971Srin_TMPDIR=$2 1166738971Srin_TOP=$3 1266738971Srin_PLATFORM=$4 1366738971Srin_VPATH=`grep VPATH ${_TMPDIR}/Makefile | sed 's,^.*=[ ]*,,'` 1466738971Srin 1566738971Srin. $_TOP/tools/gcc/mknative.common 1666738971Srin 173cfdedbdSchristosBFD_MACHINE_ARCH=$(echo ${MACHINE_ARCH} | sed -e 's/armv[4-7]/arm/') 183cfdedbdSchristos 193cfdedbdSchristos 20*3af1bc3cSchristos##### external/gpl3/binutils.old/lib/libbfd ##### 2166738971Srin 2266738971Sringet_libbfd () { 23*3af1bc3cSchristos mkdir -p $_TOP/external/gpl3/binutils.old/lib/libbfd/arch/$BFD_MACHINE_ARCH 2466738971Srin 2566738971Srin { 2666738971Srin getvars bfd/Makefile \ 2766738971Srin libbfd_la_DEPENDENCIES libbfd_la_OBJECTS DEFS \ 2866738971Srin INCLUDES TDEFAULTS HAVEVECS 29*3af1bc3cSchristos } | write_mk external/gpl3/binutils.old/lib/libbfd/arch/$BFD_MACHINE_ARCH/defs.mk 3066738971Srin 31*3af1bc3cSchristos write_c external/gpl3/binutils.old/lib/libbfd/arch/$BFD_MACHINE_ARCH/bfd.h <$_TMPDIR/bfd/bfd.h 32*3af1bc3cSchristos write_c external/gpl3/binutils.old/lib/libbfd/arch/$BFD_MACHINE_ARCH/bfdver.h <$_TMPDIR/bfd/bfdver.h 3366738971Srin 3466738971Srin { 3566738971Srin cat $_TMPDIR/bfd/config.h 36*3af1bc3cSchristos } | write_c external/gpl3/binutils.old/lib/libbfd/arch/$BFD_MACHINE_ARCH/config.h 3766738971Srin} 3866738971Srin 39*3af1bc3cSchristos##### external/gpl3/binutils.old/lib/libopcodes ##### 4066738971Srin 4166738971Sringet_libopcodes () { 42*3af1bc3cSchristos mkdir -p $_TOP/external/gpl3/binutils.old/lib/libopcodes/arch/$BFD_MACHINE_ARCH 4366738971Srin 4466738971Srin { 4566738971Srin getvars opcodes/Makefile \ 4666738971Srin archdefs BFD_MACHINES libopcodes_la_SOURCES 47*3af1bc3cSchristos } | write_mk external/gpl3/binutils.old/lib/libopcodes/arch/$BFD_MACHINE_ARCH/defs.mk 4866738971Srin 4966738971Srin { 5066738971Srin cat $_TMPDIR/opcodes/config.h 51*3af1bc3cSchristos } | write_c external/gpl3/binutils.old/lib/libopcodes/arch/$BFD_MACHINE_ARCH/config.h 5266738971Srin} 5366738971Srin 5466738971Sringet_libgnuctf () { 55*3af1bc3cSchristos mkdir -p $_TOP/external/gpl3/binutils.old/lib/libgnuctf/arch/$BFD_MACHINE_ARCH 5666738971Srin 5766738971Srin { 5866738971Srin getvars libctf/Makefile libctf_la_SOURCES 59*3af1bc3cSchristos } | write_mk external/gpl3/binutils.old/lib/libgnuctf/arch/$BFD_MACHINE_ARCH/defs.mk 6066738971Srin 6166738971Srin { 6266738971Srin cat $_TMPDIR/libctf/config.h 63*3af1bc3cSchristos } | write_c external/gpl3/binutils.old/lib/libgnuctf/arch/$BFD_MACHINE_ARCH/config.h 6466738971Srin} 6566738971Srin 66*3af1bc3cSchristos##### external/gpl3/binutils.old/lib/libiberty ##### 6766738971Srin 6866738971Sringet_libiberty () { 69*3af1bc3cSchristos mkdir -p $_TOP/external/gpl3/binutils.old/lib/libiberty/arch/$BFD_MACHINE_ARCH 7066738971Srin 7166738971Srin getvars libiberty/Makefile \ 7266738971Srin ALLOCA EXTRA_OFILES LIBOBJS REQUIRED_OFILES \ 73*3af1bc3cSchristos | write_mk external/gpl3/binutils.old/lib/libiberty/arch/$BFD_MACHINE_ARCH/defs.mk 7466738971Srin 75*3af1bc3cSchristos write_c external/gpl3/binutils.old/lib/libiberty/arch/$BFD_MACHINE_ARCH/config.h \ 7666738971Srin <$_TMPDIR/libiberty/config.h 7766738971Srin} 7866738971Srin 79*3af1bc3cSchristos##### external/gpl3/binutils.old/usr.bin ##### 8066738971Srin 8166738971Sringet_binutils () { 8266738971Srin ### common 8366738971Srin 84*3af1bc3cSchristos mkdir -p $_TOP/external/gpl3/binutils.old/usr.bin/common/arch/$BFD_MACHINE_ARCH 8566738971Srin 8666738971Srin { 8766738971Srin getvars binutils/Makefile \ 8866738971Srin VERSION DEFS INCLUDES PROGRAMS 893cfdedbdSchristos getvars binutils/Makefile \ 9066738971Srin man_MANS TEXINFOS 913cfdedbdSchristos getvars bfd/Makefile \ 9266738971Srin PKGVERSION | sed 's,\\\(.\),\1,' 933cfdedbdSchristos getvars bfd/Makefile \ 9466738971Srin REPORT_BUGS_TEXI 9566738971Srin 9666738971Srin for f in `getvars binutils/Makefile PROGRAMS | sed 'y,-,_,;s,^[^=]*=,,'`; do 9766738971Srin getvars binutils/Makefile ${f}_OBJECTS ${f}_DEPENDENCIES 9866738971Srin done 99*3af1bc3cSchristos } | write_mk external/gpl3/binutils.old/usr.bin/common/arch/$BFD_MACHINE_ARCH/defs.mk 10066738971Srin 101*3af1bc3cSchristos write_c external/gpl3/binutils.old/usr.bin/common/arch/$BFD_MACHINE_ARCH/config.h \ 102*3af1bc3cSchristos <$_TMPDIR/binutils.old/config.h 10366738971Srin 10466738971Srin ### gas 10566738971Srin 106*3af1bc3cSchristos mkdir -p $_TOP/external/gpl3/binutils.old/usr.bin/gas/arch/$BFD_MACHINE_ARCH 10766738971Srin 10866738971Srin grep -v DEPDIR "$_TMPDIR/gas/Makefile" > "$_TMPDIR/gas/Makefile.nodeps" 10966738971Srin getvars gas/Makefile.nodeps \ 11066738971Srin DEFS INCLUDES as_new_OBJECTS as_new_LDADD | 11166738971Srin sed -e s/G_as_new_OBJECTS/G_OBJS/ \ 11266738971Srin -e s/G_as_new_LDADD=/G_OBJS+=/ \ 11366738971Srin -e s@config/@@g \ 11466738971Srin -e 's/\.\..*a//' | 115*3af1bc3cSchristos write_mk external/gpl3/binutils.old/usr.bin/gas/arch/$BFD_MACHINE_ARCH/defs.mk 11666738971Srin 11766738971Srin for f in config itbl-cpu obj-format targ-cpu targ-env; do 118*3af1bc3cSchristos write_c external/gpl3/binutils.old/usr.bin/gas/arch/$BFD_MACHINE_ARCH/$f.h <$_TMPDIR/gas/$f.h 11966738971Srin done 12066738971Srin 12166738971Srin ### gprof 12266738971Srin 123*3af1bc3cSchristos mkdir -p $_TOP/external/gpl3/binutils.old/usr.bin/gprof/arch/$BFD_MACHINE_ARCH 12466738971Srin 12566738971Srin getvars gprof/Makefile \ 12666738971Srin DEFS gprof_OBJECTS INCLUDES TEXINFOS \ 127*3af1bc3cSchristos | write_mk external/gpl3/binutils.old/usr.bin/gprof/arch/$BFD_MACHINE_ARCH/defs.mk 12866738971Srin 129*3af1bc3cSchristos write_c external/gpl3/binutils.old/usr.bin/gprof/arch/$BFD_MACHINE_ARCH/gconfig.h <$_TMPDIR/gprof/gconfig.h 13066738971Srin 13166738971Srin ### ld 13266738971Srin 133*3af1bc3cSchristos mkdir -p $_TOP/external/gpl3/binutils.old/usr.bin/ld/arch/$BFD_MACHINE_ARCH 13466738971Srin 13566738971Srin { 13666738971Srin getvars ld/Makefile \ 13766738971Srin DEFS EMUL EMULATION_OFILES INCLUDES OFILES STRINGIFY TEXINFOS 13866738971Srin getvars ld/Makefile \ 13966738971Srin target_alias | sed 's,[\._0-9A-Z]*$,,' 14066738971Srin getvars ld/Makefile \ 14166738971Srin enable_initfini_array 142*3af1bc3cSchristos } | write_mk external/gpl3/binutils.old/usr.bin/ld/arch/$BFD_MACHINE_ARCH/defs.mk 14366738971Srin 14466738971Srin for f in config ldemul-list; do 145*3af1bc3cSchristos write_c external/gpl3/binutils.old/usr.bin/ld/arch/$BFD_MACHINE_ARCH/$f.h <$_TMPDIR/ld/$f.h 14666738971Srin done 14766738971Srin} 14866738971Srin 14966738971Srin##### main ##### 15066738971Srin 15166738971Srincase $1 in 15266738971Srinall|binutils) # everything (uses "canadian cross" temp environment) 15366738971Srin get_binutils 15466738971Srin get_libbfd 15566738971Srin get_libgnuctf 15666738971Srin get_libopcodes 15766738971Srin get_libiberty 15866738971Srin exit 0 15966738971Srin ;; 16066738971Srin 16166738971Srin*) echo invalid arguments; exit 1;; 16266738971Srinesac 163