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