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