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