1 1.1 rin #!/bin/sh 2 1.3 christos # $NetBSD: mknative-binutils.old,v 1.3 2024/07/01 01:56:52 christos Exp $ 3 1.1 rin # 4 1.1 rin # Shell script for generating all the constants needed for a native 5 1.3 christos # platform build of src/external/gpl3/binutils.old 6 1.1 rin # 7 1.1 rin 8 1.1 rin # initialise 9 1.1 rin 10 1.1 rin _TMPDIR=$2 11 1.1 rin _TOP=$3 12 1.1 rin _PLATFORM=$4 13 1.1 rin _VPATH=`grep VPATH ${_TMPDIR}/Makefile | sed 's,^.*=[ ]*,,'` 14 1.1 rin 15 1.1 rin . $_TOP/tools/gcc/mknative.common 16 1.1 rin 17 1.2 christos BFD_MACHINE_ARCH=$(echo ${MACHINE_ARCH} | sed -e 's/armv[4-7]/arm/') 18 1.2 christos 19 1.2 christos 20 1.3 christos ##### external/gpl3/binutils.old/lib/libbfd ##### 21 1.1 rin 22 1.1 rin get_libbfd () { 23 1.3 christos mkdir -p $_TOP/external/gpl3/binutils.old/lib/libbfd/arch/$BFD_MACHINE_ARCH 24 1.1 rin 25 1.1 rin { 26 1.1 rin getvars bfd/Makefile \ 27 1.1 rin libbfd_la_DEPENDENCIES libbfd_la_OBJECTS DEFS \ 28 1.1 rin INCLUDES TDEFAULTS HAVEVECS 29 1.3 christos } | write_mk external/gpl3/binutils.old/lib/libbfd/arch/$BFD_MACHINE_ARCH/defs.mk 30 1.1 rin 31 1.3 christos write_c external/gpl3/binutils.old/lib/libbfd/arch/$BFD_MACHINE_ARCH/bfd.h <$_TMPDIR/bfd/bfd.h 32 1.3 christos write_c external/gpl3/binutils.old/lib/libbfd/arch/$BFD_MACHINE_ARCH/bfdver.h <$_TMPDIR/bfd/bfdver.h 33 1.1 rin 34 1.1 rin { 35 1.1 rin cat $_TMPDIR/bfd/config.h 36 1.3 christos } | write_c external/gpl3/binutils.old/lib/libbfd/arch/$BFD_MACHINE_ARCH/config.h 37 1.1 rin } 38 1.1 rin 39 1.3 christos ##### external/gpl3/binutils.old/lib/libopcodes ##### 40 1.1 rin 41 1.1 rin get_libopcodes () { 42 1.3 christos mkdir -p $_TOP/external/gpl3/binutils.old/lib/libopcodes/arch/$BFD_MACHINE_ARCH 43 1.1 rin 44 1.1 rin { 45 1.1 rin getvars opcodes/Makefile \ 46 1.1 rin archdefs BFD_MACHINES libopcodes_la_SOURCES 47 1.3 christos } | write_mk external/gpl3/binutils.old/lib/libopcodes/arch/$BFD_MACHINE_ARCH/defs.mk 48 1.1 rin 49 1.1 rin { 50 1.1 rin cat $_TMPDIR/opcodes/config.h 51 1.3 christos } | write_c external/gpl3/binutils.old/lib/libopcodes/arch/$BFD_MACHINE_ARCH/config.h 52 1.1 rin } 53 1.1 rin 54 1.1 rin get_libgnuctf () { 55 1.3 christos mkdir -p $_TOP/external/gpl3/binutils.old/lib/libgnuctf/arch/$BFD_MACHINE_ARCH 56 1.1 rin 57 1.1 rin { 58 1.1 rin getvars libctf/Makefile libctf_la_SOURCES 59 1.3 christos } | write_mk external/gpl3/binutils.old/lib/libgnuctf/arch/$BFD_MACHINE_ARCH/defs.mk 60 1.1 rin 61 1.1 rin { 62 1.1 rin cat $_TMPDIR/libctf/config.h 63 1.3 christos } | write_c external/gpl3/binutils.old/lib/libgnuctf/arch/$BFD_MACHINE_ARCH/config.h 64 1.1 rin } 65 1.1 rin 66 1.3 christos ##### external/gpl3/binutils.old/lib/libiberty ##### 67 1.1 rin 68 1.1 rin get_libiberty () { 69 1.3 christos mkdir -p $_TOP/external/gpl3/binutils.old/lib/libiberty/arch/$BFD_MACHINE_ARCH 70 1.1 rin 71 1.1 rin getvars libiberty/Makefile \ 72 1.1 rin ALLOCA EXTRA_OFILES LIBOBJS REQUIRED_OFILES \ 73 1.3 christos | write_mk external/gpl3/binutils.old/lib/libiberty/arch/$BFD_MACHINE_ARCH/defs.mk 74 1.1 rin 75 1.3 christos write_c external/gpl3/binutils.old/lib/libiberty/arch/$BFD_MACHINE_ARCH/config.h \ 76 1.1 rin <$_TMPDIR/libiberty/config.h 77 1.1 rin } 78 1.1 rin 79 1.3 christos ##### external/gpl3/binutils.old/usr.bin ##### 80 1.1 rin 81 1.1 rin get_binutils () { 82 1.1 rin ### common 83 1.1 rin 84 1.3 christos mkdir -p $_TOP/external/gpl3/binutils.old/usr.bin/common/arch/$BFD_MACHINE_ARCH 85 1.1 rin 86 1.1 rin { 87 1.1 rin getvars binutils/Makefile \ 88 1.1 rin VERSION DEFS INCLUDES PROGRAMS 89 1.2 christos getvars binutils/Makefile \ 90 1.1 rin man_MANS TEXINFOS 91 1.2 christos getvars bfd/Makefile \ 92 1.1 rin PKGVERSION | sed 's,\\\(.\),\1,' 93 1.2 christos getvars bfd/Makefile \ 94 1.1 rin REPORT_BUGS_TEXI 95 1.1 rin 96 1.1 rin for f in `getvars binutils/Makefile PROGRAMS | sed 'y,-,_,;s,^[^=]*=,,'`; do 97 1.1 rin getvars binutils/Makefile ${f}_OBJECTS ${f}_DEPENDENCIES 98 1.1 rin done 99 1.3 christos } | write_mk external/gpl3/binutils.old/usr.bin/common/arch/$BFD_MACHINE_ARCH/defs.mk 100 1.1 rin 101 1.3 christos write_c external/gpl3/binutils.old/usr.bin/common/arch/$BFD_MACHINE_ARCH/config.h \ 102 1.3 christos <$_TMPDIR/binutils.old/config.h 103 1.1 rin 104 1.1 rin ### gas 105 1.1 rin 106 1.3 christos mkdir -p $_TOP/external/gpl3/binutils.old/usr.bin/gas/arch/$BFD_MACHINE_ARCH 107 1.1 rin 108 1.1 rin grep -v DEPDIR "$_TMPDIR/gas/Makefile" > "$_TMPDIR/gas/Makefile.nodeps" 109 1.1 rin getvars gas/Makefile.nodeps \ 110 1.1 rin DEFS INCLUDES as_new_OBJECTS as_new_LDADD | 111 1.1 rin sed -e s/G_as_new_OBJECTS/G_OBJS/ \ 112 1.1 rin -e s/G_as_new_LDADD=/G_OBJS+=/ \ 113 1.1 rin -e s@config/@@g \ 114 1.1 rin -e 's/\.\..*a//' | 115 1.3 christos write_mk external/gpl3/binutils.old/usr.bin/gas/arch/$BFD_MACHINE_ARCH/defs.mk 116 1.1 rin 117 1.1 rin for f in config itbl-cpu obj-format targ-cpu targ-env; do 118 1.3 christos write_c external/gpl3/binutils.old/usr.bin/gas/arch/$BFD_MACHINE_ARCH/$f.h <$_TMPDIR/gas/$f.h 119 1.1 rin done 120 1.1 rin 121 1.1 rin ### gprof 122 1.1 rin 123 1.3 christos mkdir -p $_TOP/external/gpl3/binutils.old/usr.bin/gprof/arch/$BFD_MACHINE_ARCH 124 1.1 rin 125 1.1 rin getvars gprof/Makefile \ 126 1.1 rin DEFS gprof_OBJECTS INCLUDES TEXINFOS \ 127 1.3 christos | write_mk external/gpl3/binutils.old/usr.bin/gprof/arch/$BFD_MACHINE_ARCH/defs.mk 128 1.1 rin 129 1.3 christos write_c external/gpl3/binutils.old/usr.bin/gprof/arch/$BFD_MACHINE_ARCH/gconfig.h <$_TMPDIR/gprof/gconfig.h 130 1.1 rin 131 1.1 rin ### ld 132 1.1 rin 133 1.3 christos mkdir -p $_TOP/external/gpl3/binutils.old/usr.bin/ld/arch/$BFD_MACHINE_ARCH 134 1.1 rin 135 1.1 rin { 136 1.1 rin getvars ld/Makefile \ 137 1.1 rin DEFS EMUL EMULATION_OFILES INCLUDES OFILES STRINGIFY TEXINFOS 138 1.1 rin getvars ld/Makefile \ 139 1.1 rin target_alias | sed 's,[\._0-9A-Z]*$,,' 140 1.1 rin getvars ld/Makefile \ 141 1.1 rin enable_initfini_array 142 1.3 christos } | write_mk external/gpl3/binutils.old/usr.bin/ld/arch/$BFD_MACHINE_ARCH/defs.mk 143 1.1 rin 144 1.1 rin for f in config ldemul-list; do 145 1.3 christos write_c external/gpl3/binutils.old/usr.bin/ld/arch/$BFD_MACHINE_ARCH/$f.h <$_TMPDIR/ld/$f.h 146 1.1 rin done 147 1.1 rin } 148 1.1 rin 149 1.1 rin ##### main ##### 150 1.1 rin 151 1.1 rin case $1 in 152 1.1 rin all|binutils) # everything (uses "canadian cross" temp environment) 153 1.1 rin get_binutils 154 1.1 rin get_libbfd 155 1.1 rin get_libgnuctf 156 1.1 rin get_libopcodes 157 1.1 rin get_libiberty 158 1.1 rin exit 0 159 1.1 rin ;; 160 1.1 rin 161 1.1 rin *) echo invalid arguments; exit 1;; 162 1.1 rin esac 163