mknative-binutils revision 1.6
11.1Smrg#!/bin/sh
21.6Sskrll#	$NetBSD: mknative-binutils,v 1.6 2009/11/08 15:33:29 skrll Exp $
31.1Smrg#
41.1Smrg# Shell script for generating all the constants needed for a native
51.6Sskrll# platform build of src/external/gpl3/binutils
61.1Smrg#
71.1Smrg
81.1Smrg# initialise
91.1Smrg
101.1Smrg_TMPDIR=$2
111.1Smrg_TOP=$3
121.1Smrg_PLATFORM=$4
131.4Smrg_VPATH=`grep VPATH ${_TMPDIR}/Makefile | sed 's,^.*=[ 	]*,,'`
141.1Smrg
151.1Smrg. $_TOP/tools/gcc/mknative.common
161.1Smrg
171.6Sskrll##### external/gpl3/binutils/lib/libbfd #####
181.1Smrg
191.1Smrgget_libbfd () {
201.6Sskrll	mkdir -p $_TOP/external/gpl3/binutils/lib/libbfd/arch/$MACHINE_ARCH
211.1Smrg
221.1Smrg	{
231.1Smrg		getvars bfd/Makefile \
241.1Smrg			libbfd_la_DEPENDENCIES libbfd_la_OBJECTS DEFS \
251.1Smrg			INCLUDES TDEFAULTS
261.6Sskrll	} | write_mk external/gpl3/binutils/lib/libbfd/arch/$MACHINE_ARCH/defs.mk
271.1Smrg
281.6Sskrll	write_c external/gpl3/binutils/lib/libbfd/arch/$MACHINE_ARCH/bfd.h <$_TMPDIR/bfd/bfd.h
291.6Sskrll	write_c external/gpl3/binutils/lib/libbfd/arch/$MACHINE_ARCH/bfdver.h <$_TMPDIR/bfd/bfdver.h
301.6Sskrll	write_c external/gpl3/binutils/lib/libbfd/arch/$MACHINE_ARCH/bfd_stdint.h <$_TMPDIR/bfd/bfd_stdint.h
311.1Smrg
321.1Smrg	{
331.1Smrg		cat $_TMPDIR/bfd/config.h
341.6Sskrll	} | write_c external/gpl3/binutils/lib/libbfd/arch/$MACHINE_ARCH/config.h
351.1Smrg}
361.1Smrg
371.6Sskrll##### external/gpl3/binutils/lib/libopcodes #####
381.1Smrg
391.1Smrgget_libopcodes () {
401.6Sskrll	mkdir -p $_TOP/external/gpl3/binutils/lib/libopcodes/arch/$MACHINE_ARCH
411.1Smrg
421.1Smrg	{
431.1Smrg		getvars opcodes/Makefile \
441.1Smrg			archdefs BFD_MACHINES libopcodes_la_SOURCES
451.6Sskrll	} | write_mk external/gpl3/binutils/lib/libopcodes/arch/$MACHINE_ARCH/defs.mk
461.1Smrg
471.1Smrg	{
481.1Smrg		cat $_TMPDIR/opcodes/config.h
491.6Sskrll	} | write_c external/gpl3/binutils/lib/libopcodes/arch/$MACHINE_ARCH/config.h
501.1Smrg}
511.1Smrg
521.6Sskrll##### external/gpl3/binutils/lib/libiberty #####
531.1Smrg
541.1Smrgget_libiberty () {
551.6Sskrll	mkdir -p $_TOP/external/gpl3/binutils/lib/libiberty/arch/$MACHINE_ARCH
561.1Smrg
571.1Smrg	getvars libiberty/Makefile \
581.1Smrg		ALLOCA EXTRA_OFILES LIBOBJS REQUIRED_OFILES \
591.6Sskrll		| write_mk external/gpl3/binutils/lib/libiberty/arch/$MACHINE_ARCH/defs.mk
601.1Smrg
611.6Sskrll	write_c external/gpl3/binutils/lib/libiberty/arch/$MACHINE_ARCH/config.h \
621.1Smrg		<$_TMPDIR/libiberty/config.h
631.1Smrg}
641.1Smrg
651.6Sskrll##### external/gpl3/binutils/usr.bin #####
661.1Smrg
671.1Smrgget_binutils () {
681.1Smrg	### common
691.1Smrg
701.6Sskrll	mkdir -p $_TOP/external/gpl3/binutils/usr.bin/common/arch/$MACHINE_ARCH
711.1Smrg
721.1Smrg	{
731.1Smrg		getvars binutils/Makefile \
741.1Smrg			VERSION DEFS INCLUDES PROGRAMS
751.1Smrg		getvars binutils/doc/Makefile \
761.1Smrg			man_MANS TEXINFOS
771.1Smrg
781.1Smrg		for f in `getvars binutils/Makefile PROGRAMS | sed 'y,-,_,;s,^[^=]*=,,'`; do
791.1Smrg			getvars binutils/Makefile ${f}_OBJECTS ${f}_DEPENDENCIES
801.1Smrg		done
811.6Sskrll	} | write_mk external/gpl3/binutils/usr.bin/common/arch/$MACHINE_ARCH/defs.mk
821.1Smrg
831.6Sskrll	write_c external/gpl3/binutils/usr.bin/common/arch/$MACHINE_ARCH/config.h \
841.1Smrg		<$_TMPDIR/binutils/config.h
851.1Smrg
861.1Smrg	### gas
871.1Smrg
881.6Sskrll	mkdir -p $_TOP/external/gpl3/binutils/usr.bin/gas/arch/$MACHINE_ARCH
891.1Smrg
901.1Smrg	getvars gas/Makefile \
911.1Smrg		DEFS INCLUDES OBJS \
921.6Sskrll		| write_mk external/gpl3/binutils/usr.bin/gas/arch/$MACHINE_ARCH/defs.mk
931.1Smrg
941.1Smrg	for f in config itbl-cpu obj-format targ-cpu targ-env; do
951.6Sskrll		write_c external/gpl3/binutils/usr.bin/gas/arch/$MACHINE_ARCH/$f.h <$_TMPDIR/gas/$f.h
961.1Smrg	done
971.1Smrg
981.1Smrg	### gprof
991.1Smrg
1001.6Sskrll	mkdir -p $_TOP/external/gpl3/binutils/usr.bin/gprof/arch/$MACHINE_ARCH
1011.1Smrg
1021.1Smrg	getvars gprof/Makefile \
1031.1Smrg		DEFS gprof_OBJECTS INCLUDES TEXINFOS \
1041.6Sskrll		| write_mk external/gpl3/binutils/usr.bin/gprof/arch/$MACHINE_ARCH/defs.mk
1051.1Smrg
1061.6Sskrll	write_c external/gpl3/binutils/usr.bin/gprof/arch/$MACHINE_ARCH/gconfig.h <$_TMPDIR/gprof/gconfig.h
1071.1Smrg
1081.1Smrg	### ld
1091.1Smrg
1101.6Sskrll	mkdir -p $_TOP/external/gpl3/binutils/usr.bin/ld/arch/$MACHINE_ARCH
1111.1Smrg
1121.1Smrg	{
1131.1Smrg		getvars ld/Makefile \
1141.1Smrg			DEFS EMUL EMULATION_OFILES INCLUDES OFILES STRINGIFY TEXINFOS
1151.1Smrg		getvars ld/Makefile \
1161.1Smrg			target_alias | sed 's,[\._0-9A-Z]*$,,'
1171.6Sskrll	} | write_mk external/gpl3/binutils/usr.bin/ld/arch/$MACHINE_ARCH/defs.mk
1181.1Smrg
1191.1Smrg	for f in config ldemul-list; do
1201.6Sskrll		write_c external/gpl3/binutils/usr.bin/ld/arch/$MACHINE_ARCH/$f.h <$_TMPDIR/ld/$f.h
1211.1Smrg	done
1221.1Smrg}
1231.1Smrg
1241.1Smrg##### main #####
1251.1Smrg
1261.1Smrgcase $1 in
1271.2Smrgall|binutils)	# everything (uses "canadian cross" temp environment)
1281.1Smrg	get_binutils
1291.1Smrg	get_libbfd
1301.1Smrg	get_libopcodes
1311.1Smrg	get_libiberty
1321.1Smrg	exit 0
1331.1Smrg	;;
1341.1Smrg
1351.1Smrg*)	echo invalid arguments; exit 1;;
1361.1Smrgesac
137