mknative-binutils revision 1.2
11.1Smrg#!/bin/sh
21.2Smrg#	$NetBSD: mknative-binutils,v 1.2 2003/11/27 10:52:53 mrg Exp $
31.1Smrg#
41.1Smrg# Shell script for generating all the constants needed for a native
51.1Smrg# platform build of src/gnu/dist/binutils.
61.1Smrg#
71.1Smrg
81.1Smrg# initialise
91.1Smrg
101.1Smrg_TMPDIR=$2
111.1Smrg_TOP=$3
121.1Smrg_PLATFORM=$4
131.1Smrg_VPATH=`grep VPATH ${_TMPDIR}/Makefile | sed 's,^.*= ,,'`
141.1Smrg
151.1Smrg. $_TOP/tools/gcc/mknative.common
161.1Smrg
171.2Smrg##### gnu/usr.bin/binutils/libbfd #####
181.1Smrg
191.1Smrgget_libbfd () {
201.2Smrg	mkdir -p $_TOP/gnu/usr.bin/binutils/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.2Smrg	} | write_mk gnu/usr.bin/binutils/libbfd/arch/$MACHINE_ARCH/defs.mk
271.1Smrg
281.2Smrg	write_c gnu/usr.bin/binutils/libbfd/arch/$MACHINE_ARCH/bfd.h <$_TMPDIR/bfd/bfd.h
291.2Smrg	write_c gnu/usr.bin/binutils/libbfd/arch/$MACHINE_ARCH/bfdver.h <$_TMPDIR/bfd/bfdver.h
301.1Smrg
311.1Smrg	{
321.1Smrg		cat $_TMPDIR/bfd/config.h
331.2Smrg	} | write_c gnu/usr.bin/binutils/libbfd/arch/$MACHINE_ARCH/config.h
341.1Smrg}
351.1Smrg
361.2Smrg##### gnu/usr.bin/binutils/libopcodes #####
371.1Smrg
381.1Smrgget_libopcodes () {
391.2Smrg	mkdir -p $_TOP/gnu/usr.bin/binutils/libopcodes/arch/$MACHINE_ARCH
401.1Smrg
411.1Smrg	{
421.1Smrg		getvars opcodes/Makefile \
431.1Smrg			archdefs BFD_MACHINES libopcodes_la_SOURCES
441.2Smrg	} | write_mk gnu/usr.bin/binutils/libopcodes/arch/$MACHINE_ARCH/defs.mk
451.1Smrg
461.1Smrg	{
471.1Smrg		cat $_TMPDIR/opcodes/config.h
481.2Smrg	} | write_c gnu/usr.bin/binutils/libopcodes/arch/$MACHINE_ARCH/config.h
491.1Smrg}
501.1Smrg
511.2Smrg##### gnu/usr.bin/binutils/libiberty #####
521.1Smrg
531.1Smrgget_libiberty () {
541.2Smrg	mkdir -p $_TOP/gnu/usr.bin/binutils/libiberty
551.1Smrg
561.1Smrg	getvars libiberty/Makefile \
571.1Smrg		ALLOCA EXTRA_OFILES LIBOBJS REQUIRED_OFILES \
581.2Smrg		| write_mk gnu/usr.bin/binutils/libiberty/defs.mk
591.1Smrg
601.2Smrg	write_c gnu/usr.bin/binutils/libiberty/config.h \
611.1Smrg		<$_TMPDIR/libiberty/config.h
621.1Smrg}
631.1Smrg
641.1Smrg##### gnu/usr.bin/binutils #####
651.1Smrg
661.1Smrgget_binutils () {
671.1Smrg	### common
681.1Smrg
691.1Smrg	mkdir -p $_TOP/gnu/usr.bin/binutils/common/arch/$MACHINE_ARCH
701.1Smrg
711.1Smrg	{
721.1Smrg		getvars binutils/Makefile \
731.1Smrg			VERSION DEFS INCLUDES PROGRAMS
741.1Smrg		getvars binutils/doc/Makefile \
751.1Smrg			man_MANS TEXINFOS
761.1Smrg
771.1Smrg		for f in `getvars binutils/Makefile PROGRAMS | sed 'y,-,_,;s,^[^=]*=,,'`; do
781.1Smrg			getvars binutils/Makefile ${f}_OBJECTS ${f}_DEPENDENCIES
791.1Smrg		done
801.1Smrg	} | write_mk gnu/usr.bin/binutils/common/arch/$MACHINE_ARCH/defs.mk
811.1Smrg
821.1Smrg	write_c gnu/usr.bin/binutils/common/arch/$MACHINE_ARCH/config.h \
831.1Smrg		<$_TMPDIR/binutils/config.h
841.1Smrg
851.1Smrg	### gas
861.1Smrg
871.1Smrg	mkdir -p $_TOP/gnu/usr.bin/binutils/gas/arch/$MACHINE_ARCH
881.1Smrg
891.1Smrg	getvars gas/Makefile \
901.1Smrg		DEFS INCLUDES OBJS \
911.1Smrg		| write_mk gnu/usr.bin/binutils/gas/arch/$MACHINE_ARCH/defs.mk
921.1Smrg
931.1Smrg	for f in config itbl-cpu obj-format targ-cpu targ-env; do
941.1Smrg		write_c gnu/usr.bin/binutils/gas/arch/$MACHINE_ARCH/$f.h <$_TMPDIR/gas/$f.h
951.1Smrg	done
961.1Smrg
971.1Smrg	### gprof
981.1Smrg
991.1Smrg	mkdir -p $_TOP/gnu/usr.bin/binutils/gprof/arch/$MACHINE_ARCH
1001.1Smrg
1011.1Smrg	getvars gprof/Makefile \
1021.1Smrg		DEFS gprof_OBJECTS INCLUDES TEXINFOS \
1031.1Smrg		| write_mk gnu/usr.bin/binutils/gprof/arch/$MACHINE_ARCH/defs.mk
1041.1Smrg
1051.1Smrg	write_c gnu/usr.bin/binutils/gprof/arch/$MACHINE_ARCH/gconfig.h <$_TMPDIR/gprof/gconfig.h
1061.1Smrg
1071.1Smrg	### ld
1081.1Smrg
1091.1Smrg	mkdir -p $_TOP/gnu/usr.bin/binutils/ld/arch/$MACHINE_ARCH
1101.1Smrg
1111.1Smrg	{
1121.1Smrg		getvars ld/Makefile \
1131.1Smrg			DEFS EMUL EMULATION_OFILES INCLUDES OFILES STRINGIFY TEXINFOS
1141.1Smrg		getvars ld/Makefile \
1151.1Smrg			target_alias | sed 's,[\._0-9A-Z]*$,,'
1161.1Smrg	} | write_mk gnu/usr.bin/binutils/ld/arch/$MACHINE_ARCH/defs.mk
1171.1Smrg
1181.1Smrg	for f in config ldemul-list; do
1191.1Smrg		write_c gnu/usr.bin/binutils/ld/arch/$MACHINE_ARCH/$f.h <$_TMPDIR/ld/$f.h
1201.1Smrg	done
1211.1Smrg}
1221.1Smrg
1231.1Smrg##### main #####
1241.1Smrg
1251.1Smrgcase $1 in
1261.2Smrgall|binutils)	# everything (uses "canadian cross" temp environment)
1271.1Smrg	get_binutils
1281.1Smrg	get_libbfd
1291.1Smrg	get_libopcodes
1301.1Smrg	get_libiberty
1311.1Smrg	exit 0
1321.1Smrg	;;
1331.1Smrg
1341.1Smrg*)	echo invalid arguments; exit 1;;
1351.1Smrgesac
136