aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2007-07-19 19:56:10 +0000
committerRoland McGrath <roland@gnu.org>2007-07-19 19:56:10 +0000
commit92b93329b58c744ea269b50f6278ed99416941a9 (patch)
tree415eaf8c24ce53fd9cdab8ed6af4f5cd6fdd1ede /ld/genscripts.sh
parentPR binutils/4797 (diff)
downloadbinutils-gdb-92b93329b58c744ea269b50f6278ed99416941a9.tar.gz
binutils-gdb-92b93329b58c744ea269b50f6278ed99416941a9.tar.bz2
binutils-gdb-92b93329b58c744ea269b50f6278ed99416941a9.zip
2007-07-19 Roland McGrath <roland@redhat.com>
* genscripts.sh (source_em, fragment): New sh functions. Truncate e${EMULATION_NAME}.c file before .em script fills it. Use source_em in place of . for the .em script. * emultempl/generic.em: Use fragment and source_em functions. * emultempl/aix.em: Likewise. * emultempl/alphaelf.em: Likewise. * emultempl/armcoff.em: Likewise. * emultempl/armelf.em: Likewise. * emultempl/avrelf.em: Likewise. * emultempl/beos.em: Likewise. * emultempl/cr16elf.em: Likewise. * emultempl/crxelf.em: Likewise. * emultempl/elf-generic.em: Likewise. * emultempl/elf32.em: Likewise. * emultempl/genelf.em: Likewise. * emultempl/gld960.em: Likewise. * emultempl/gld960c.em: Likewise. * emultempl/hppaelf.em: Likewise. * emultempl/ia64elf.em: Likewise. * emultempl/irix.em: Likewise. * emultempl/linux.em: Likewise. * emultempl/lnk960.em: Likewise. * emultempl/m68hc1xelf.em: Likewise. * emultempl/m68kcoff.em: Likewise. * emultempl/m68kelf.em: Likewise. * emultempl/mipsecoff.em: Likewise. * emultempl/mipself.em: Likewise. * emultempl/mmix-elfnmmo.em: Likewise. * emultempl/mmixelf.em: Likewise. * emultempl/mmo.em: Likewise. * emultempl/needrelax.em: Likewise. * emultempl/netbsd.em: Likewise. * emultempl/pe.em: Likewise. * emultempl/pep.em: Likewise. * emultempl/ppc32elf.em: Likewise. * emultempl/ppc64elf.em: Likewise. * emultempl/scoreelf.em: Likewise. * emultempl/sh64elf.em: Likewise. * emultempl/spuelf.em: Likewise. * emultempl/sunos.em: Likewise. * emultempl/ticoff.em: Likewise. * emultempl/vanilla.em: Likewise. * emultempl/vxworks.em: Likewise. * emultempl/xtensaelf.em: Likewise. * emultempl/z80.em: Likewise.
Diffstat (limited to 'ld/genscripts.sh')
-rwxr-xr-xld/genscripts.sh30
1 files changed, 29 insertions, 1 deletions
diff --git a/ld/genscripts.sh b/ld/genscripts.sh
index f4c4709d694..17c516c4790 100755
--- a/ld/genscripts.sh
+++ b/ld/genscripts.sh
@@ -393,5 +393,33 @@ case " $EMULATION_LIBPATH " in
*" ${EMULATION_NAME} "*) COMPILE_IN=true;;
esac
+if test -n "${BASH+set}"; then
+ source_em()
+ {
+ local current_script="$em_script"
+ em_script=$1
+ . $em_script
+ em_script=$current_script
+ }
+ fragment()
+ {
+ local lineno=$[${BASH_LINENO[0]} + 1]
+ echo >> e${EMULATION_NAME}.c "#line $lineno \"$em_script\""
+ cat >> e${EMULATION_NAME}.c
+ }
+else
+ source_em()
+ {
+ . $1
+ }
+ fragment()
+ {
+ cat >> e${EMULATION_NAME}.c
+ }
+fi
+
# Generate e${EMULATION_NAME}.c.
-. ${srcdir}/emultempl/${TEMPLATE_NAME-generic}.em
+# Start with an empty file, then the sourced .em script
+# can use the "fragment" function to append.
+> e${EMULATION_NAME}.c
+source_em ${srcdir}/emultempl/${TEMPLATE_NAME-generic}.em