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