mknative-binutils revision 1.7
11.1Smrg#!/bin/sh
21.7Sskrll#	$NetBSD: mknative-binutils,v 1.7 2009/11/09 13:50:41 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.7Sskrll		getvars bfd/doc/Makefile \
781.7Sskrll			PKGVERSION | sed 's,\\\(.\),\1,'
791.7Sskrll		getvars bfd/doc/Makefile \
801.7Sskrll			REPORT_BUGS_TEXI
811.1Smrg
821.1Smrg		for f in `getvars binutils/Makefile PROGRAMS | sed 'y,-,_,;s,^[^=]*=,,'`; do
831.1Smrg			getvars binutils/Makefile ${f}_OBJECTS ${f}_DEPENDENCIES
841.1Smrg		done
851.6Sskrll	} | write_mk external/gpl3/binutils/usr.bin/common/arch/$MACHINE_ARCH/defs.mk
861.1Smrg
871.6Sskrll	write_c external/gpl3/binutils/usr.bin/common/arch/$MACHINE_ARCH/config.h \
881.1Smrg		<$_TMPDIR/binutils/config.h
891.1Smrg
901.1Smrg	### gas
911.1Smrg
921.6Sskrll	mkdir -p $_TOP/external/gpl3/binutils/usr.bin/gas/arch/$MACHINE_ARCH
931.1Smrg
941.1Smrg	getvars gas/Makefile \
951.1Smrg		DEFS INCLUDES OBJS \
961.6Sskrll		| write_mk external/gpl3/binutils/usr.bin/gas/arch/$MACHINE_ARCH/defs.mk
971.1Smrg
981.1Smrg	for f in config itbl-cpu obj-format targ-cpu targ-env; do
991.6Sskrll		write_c external/gpl3/binutils/usr.bin/gas/arch/$MACHINE_ARCH/$f.h <$_TMPDIR/gas/$f.h
1001.1Smrg	done
1011.1Smrg
1021.1Smrg	### gprof
1031.1Smrg
1041.6Sskrll	mkdir -p $_TOP/external/gpl3/binutils/usr.bin/gprof/arch/$MACHINE_ARCH
1051.1Smrg
1061.1Smrg	getvars gprof/Makefile \
1071.1Smrg		DEFS gprof_OBJECTS INCLUDES TEXINFOS \
1081.6Sskrll		| write_mk external/gpl3/binutils/usr.bin/gprof/arch/$MACHINE_ARCH/defs.mk
1091.1Smrg
1101.6Sskrll	write_c external/gpl3/binutils/usr.bin/gprof/arch/$MACHINE_ARCH/gconfig.h <$_TMPDIR/gprof/gconfig.h
1111.1Smrg
1121.1Smrg	### ld
1131.1Smrg
1141.6Sskrll	mkdir -p $_TOP/external/gpl3/binutils/usr.bin/ld/arch/$MACHINE_ARCH
1151.1Smrg
1161.1Smrg	{
1171.1Smrg		getvars ld/Makefile \
1181.1Smrg			DEFS EMUL EMULATION_OFILES INCLUDES OFILES STRINGIFY TEXINFOS
1191.1Smrg		getvars ld/Makefile \
1201.1Smrg			target_alias | sed 's,[\._0-9A-Z]*$,,'
1211.6Sskrll	} | write_mk external/gpl3/binutils/usr.bin/ld/arch/$MACHINE_ARCH/defs.mk
1221.1Smrg
1231.1Smrg	for f in config ldemul-list; do
1241.6Sskrll		write_c external/gpl3/binutils/usr.bin/ld/arch/$MACHINE_ARCH/$f.h <$_TMPDIR/ld/$f.h
1251.1Smrg	done
1261.1Smrg}
1271.1Smrg
1281.1Smrg##### main #####
1291.1Smrg
1301.1Smrgcase $1 in
1311.2Smrgall|binutils)	# everything (uses "canadian cross" temp environment)
1321.1Smrg	get_binutils
1331.1Smrg	get_libbfd
1341.1Smrg	get_libopcodes
1351.1Smrg	get_libiberty
1361.1Smrg	exit 0
1371.1Smrg	;;
1381.1Smrg
1391.1Smrg*)	echo invalid arguments; exit 1;;
1401.1Smrgesac
141