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