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