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