Home | History | Annotate | Line # | Download | only in binutils
      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