12159047fSniklas#!/bin/sh 22159047fSniklas# genscripts.sh - generate the ld-emulation-target specific files 32159047fSniklas# 4007c2a45Smiod# Usage: genscripts_extra.sh \ 5007c2a45Smiod# srcdir \ 6007c2a45Smiod# libdir \ 7007c2a45Smiod# exec_prefix \ 8007c2a45Smiod# host \ 9007c2a45Smiod# target \ 10007c2a45Smiod# target_alias \ 11007c2a45Smiod# default_emulation \ 12007c2a45Smiod# native_lib_dirs \ 13007c2a45Smiod# use_sysroot \ 14007c2a45Smiod# this_emulation \ 15007c2a45Smiod# optional: 16007c2a45Smiod# tool_dir \ 17007c2a45Smiod# customizer_script 182159047fSniklas# 192159047fSniklas# Sample usage: 20007c2a45Smiod# 21007c2a45Smiod# genscripts_extra.sh \ 22007c2a45Smiod# /sources/ld \ 23007c2a45Smiod# /usr/local/lib \ 24007c2a45Smiod# /usr/local \ 25007c2a45Smiod# sparc-sun-sunos4.1.3 \ 26007c2a45Smiod# sparc-sun-sunos4.1.3 \ 27007c2a45Smiod# sparc-sun-sunos4.1.3 \ 28007c2a45Smiod# sun4 \ 29007c2a45Smiod# "" \ 30007c2a45Smiod# no \ 31007c2a45Smiod# sun3 \ 32007c2a45Smiod# sparc-sun-sunos4.1.3 \ 33007c2a45Smiod# sparc.sh 34007c2a45Smiod# 35007c2a45Smiod# produces the linker scripts: 36007c2a45Smiod# 37007c2a45Smiod# sun3.x [default linker script] 38007c2a45Smiod# sun3.xbn [used when the linker is invoked with "-N"] 39007c2a45Smiod# sun3.xn [used when the linker is invoked with "-n"] 40007c2a45Smiod# sun3.xr [used when the linker is invoked with "-r"] 41007c2a45Smiod# sun3.xu [used when the linker is invoked with "-Ur"] 42007c2a45Smiod# and maybe: 43007c2a45Smiod# sun3.xc [used when the linker is invoked with "-z combreloc"] 44007c2a45Smiod# sun3.xsc [used when the linker is invoked with "--shared"] 45007c2a45Smiod# sun3.xdc [used when the linker is invoked with "-pie"] 46007c2a45Smiod# 47007c2a45Smiod# It also produced the C source file: 48007c2a45Smiod# 49007c2a45Smiod# em_sun3.c 50007c2a45Smiod# 51007c2a45Smiod# which is then compiled into the linker. 52007c2a45Smiod# 53007c2a45Smiod# The linker scripts are created by running the shell script 54007c2a45Smiod# /sources/ld/emulparams/sparc.sh to set the value of ${SCRIPT_NAME} 55007c2a45Smiod# (and any other variables it wants to). ${SCRIPT_NAME} is then 56007c2a45Smiod# invoked with a variable called ${LD_FLAG} to tell it which version 57007c2a45Smiod# of the linker script to create. 58007c2a45Smiod 592159047fSniklas 602159047fSniklassrcdir=$1 612159047fSniklaslibdir=$2 62b55d4692Sfgschexec_prefix=$3 63b55d4692Sfgschhost=$4 64b55d4692Sfgschtarget=$5 65b55d4692Sfgschtarget_alias=$6 66b55d4692SfgschEMULATION_LIBPATH=$7 67b55d4692SfgschNATIVE_LIB_DIRS=$8 68c074d1c9Sdrahnuse_sysroot=$9 69b55d4692Sfgschshift 9 70c074d1c9SdrahnEMULATION_NAME=$1 71007c2a45SmiodTOOL_LIB=$2 72007c2a45SmiodCUSTOMIZER_SCRIPT=$3 73007c2a45Smiod 74007c2a45Smiod# Can't use ${TOOL_LIB:-$target_alias} here due to an Ultrix shell bug. 75007c2a45Smiodif [ "x${TOOL_LIB}" = "x" ] ; then 76b55d4692Sfgsch tool_lib=${exec_prefix}/${target_alias}/lib 77b55d4692Sfgschelse 78007c2a45Smiod tool_lib=${exec_prefix}/${TOOL_LIB}/lib 79b55d4692Sfgschfi 802159047fSniklas 81007c2a45Smiodif [ "x${CUSTOMIZER_SCRIPT}" = "x" ] ; then 82007c2a45Smiod CUSTOMIZER_SCRIPT=${EMULATION_NAME} 83007c2a45Smiodfi 84007c2a45SmiodCUSTOMIZER_SCRIPT="${srcdir}/emulparams/${CUSTOMIZER_SCRIPT}.sh" 85007c2a45Smiod 862159047fSniklas# Include the emulation-specific parameters: 87007c2a45Smiod. ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME} 882159047fSniklas 892159047fSniklasif test -d ldscripts; then 902159047fSniklas true 912159047fSniklaselse 922159047fSniklas mkdir ldscripts 932159047fSniklasfi 942159047fSniklas 95c074d1c9Sdrahn# Set some flags for the emultempl scripts. USE_LIBPATH will 96c074d1c9Sdrahn# be set for any libpath-using emulation; NATIVE will be set for a 97c074d1c9Sdrahn# libpath-using emulation where ${host} = ${target}. NATIVE 98c074d1c9Sdrahn# may already have been set by the emulparams file, but that's OK 99c074d1c9Sdrahn# (it'll just get set to "yes" twice). 100c074d1c9Sdrahn 101c074d1c9Sdrahncase " $EMULATION_LIBPATH " in 102c074d1c9Sdrahn *" ${EMULATION_NAME} "*) 103c074d1c9Sdrahn if [ "x${host}" = "x${target}" ] ; then 104c074d1c9Sdrahn NATIVE=yes 105c074d1c9Sdrahn USE_LIBPATH=yes 106c074d1c9Sdrahn elif [ "x${use_sysroot}" = "xyes" ] ; then 107c074d1c9Sdrahn USE_LIBPATH=yes 108c074d1c9Sdrahn fi 109c074d1c9Sdrahn ;; 110c074d1c9Sdrahnesac 111c074d1c9Sdrahn 112c074d1c9Sdrahn# If the emulparams file sets NATIVE, make sure USE_LIBPATH is set also. 113c074d1c9Sdrahnif test "x$NATIVE" = "xyes" ; then 114c074d1c9Sdrahn USE_LIBPATH=yes 115c074d1c9Sdrahnfi 116c074d1c9Sdrahn 1172159047fSniklas# Set the library search path, for libraries named by -lfoo. 1182159047fSniklas# If LIB_PATH is defined (e.g., by Makefile) and non-empty, it is used. 1192159047fSniklas# Otherwise, the default is set here. 1202159047fSniklas# 1212159047fSniklas# The format is the usual list of colon-separated directories. 1222159047fSniklas# To force a logically empty LIB_PATH, do LIBPATH=":". 123c074d1c9Sdrahn# 124c074d1c9Sdrahn# If we are using a sysroot, prefix library paths with "=" to indicate this. 125c074d1c9Sdrahn# 126c074d1c9Sdrahn# If the emulparams file set LIBPATH_SUFFIX, prepend an extra copy of 127c074d1c9Sdrahn# the library path with the suffix applied. 1282159047fSniklas 129c074d1c9Sdrahnif [ "x${LIB_PATH}" = "x" ] && [ "x${USE_LIBPATH}" = xyes ] ; then 130007c2a45Smiod LIB_PATH2= 131007c2a45Smiod 132007c2a45Smiod libs=${NATIVE_LIB_DIRS} 133007c2a45Smiod if [ "x${use_sysroot}" != "xyes" ] ; then 134007c2a45Smiod case " ${libs} " in 135007c2a45Smiod *" ${libdir} "*) ;; 136007c2a45Smiod *) libs="${libdir} ${libs}" ;; 137007c2a45Smiod esac 138007c2a45Smiod case " ${libs} " in 139007c2a45Smiod *" ${tool_lib} "*) ;; 140007c2a45Smiod *) libs="${tool_lib} ${libs}" ;; 141007c2a45Smiod esac 1422159047fSniklas fi 143007c2a45Smiod 144007c2a45Smiod for lib in ${libs}; do 145c074d1c9Sdrahn # The "=" is harmless if we aren't using a sysroot, but also needless. 146c074d1c9Sdrahn if [ "x${use_sysroot}" = "xyes" ] ; then 147c074d1c9Sdrahn lib="=${lib}" 1482159047fSniklas fi 149c074d1c9Sdrahn addsuffix= 150c074d1c9Sdrahn case "${LIBPATH_SUFFIX}:${lib}" in 151c074d1c9Sdrahn :*) ;; 152c074d1c9Sdrahn *:*${LIBPATH_SUFFIX}) ;; 153c074d1c9Sdrahn *) addsuffix=yes ;; 154c074d1c9Sdrahn esac 155c074d1c9Sdrahn if test -n "$addsuffix"; then 156c074d1c9Sdrahn case :${LIB_PATH}: in 157c074d1c9Sdrahn *:${lib}${LIBPATH_SUFFIX}:*) ;; 158c074d1c9Sdrahn ::) LIB_PATH=${lib}${LIBPATH_SUFFIX} ;; 159c074d1c9Sdrahn *) LIB_PATH=${LIB_PATH}:${lib}${LIBPATH_SUFFIX} ;; 160c074d1c9Sdrahn esac 161007c2a45Smiod case :${LIB_PATH}:${LIB_PATH2}: in 162c074d1c9Sdrahn *:${lib}:*) ;; 163007c2a45Smiod *::) LIB_PATH2=${lib} ;; 164c074d1c9Sdrahn *) LIB_PATH2=${LIB_PATH2}:${lib} ;; 165c074d1c9Sdrahn esac 166c074d1c9Sdrahn else 167007c2a45Smiod case :${LIB_PATH2}: in 168c074d1c9Sdrahn *:${lib}:*) ;; 169007c2a45Smiod ::) LIB_PATH2=${lib} ;; 170007c2a45Smiod *) LIB_PATH2=${LIB_PATH2}:${lib} ;; 171b305b0f1Sespie esac 1722159047fSniklas fi 173c074d1c9Sdrahn done 174007c2a45Smiod 175007c2a45Smiod case :${LIB_PATH}:${LIB_PATH2}: in 176007c2a45Smiod *:: | ::*) LIB_PATH=${LIB_PATH}${LIB_PATH2} ;; 177007c2a45Smiod *) LIB_PATH=${LIB_PATH}:${LIB_PATH2} ;; 178007c2a45Smiod esac 1792159047fSniklasfi 1802159047fSniklas 181c074d1c9SdrahnLIB_SEARCH_DIRS=`echo ${LIB_PATH} | sed -e 's/:/ /g' -e 's/\([^ ][^ ]*\)/SEARCH_DIR(\\"\1\\");/g'` 1822159047fSniklas 183007c2a45Smiod# We need it for testsuite. 184007c2a45Smiodcase " $EMULATION_LIBPATH " in 185007c2a45Smiod *" ${EMULATION_NAME} "*) 186007c2a45Smiod test -d tmpdir || mkdir tmpdir 187007c2a45Smiod test -f tmpdir/libpath.exp || \ 188007c2a45Smiod echo "set libpath \"${LIB_PATH}\"" | sed -e 's/:/ /g' > tmpdir/libpath.exp 189007c2a45Smiod ;; 190007c2a45Smiodesac 191007c2a45Smiod 1922159047fSniklas# Generate 5 or 6 script files from a master script template in 1932159047fSniklas# ${srcdir}/scripttempl/${SCRIPT_NAME}.sh. Which one of the 5 or 6 1942159047fSniklas# script files is actually used depends on command line options given 1952159047fSniklas# to ld. (SCRIPT_NAME was set in the emulparams_file.) 1962159047fSniklas# 1972159047fSniklas# A .x script file is the default script. 1982159047fSniklas# A .xr script is for linking without relocation (-r flag). 1992159047fSniklas# A .xu script is like .xr, but *do* create constructors (-Ur flag). 2002159047fSniklas# A .xn script is for linking with -n flag (mix text and data on same page). 2012159047fSniklas# A .xbn script is for linking with -N flag (mix text and data on same page). 2022159047fSniklas# A .xs script is for generating a shared library with the --shared 2032159047fSniklas# flag; it is only generated if $GENERATE_SHLIB_SCRIPT is set by the 2042159047fSniklas# emulation parameters. 205c074d1c9Sdrahn# A .xc script is for linking with -z combreloc; it is only generated if 206c074d1c9Sdrahn# $GENERATE_COMBRELOC_SCRIPT is set by the emulation parameters or 207c074d1c9Sdrahn# $SCRIPT_NAME is "elf". 208c074d1c9Sdrahn# A .xsc script is for linking with --shared -z combreloc; it is generated 209c074d1c9Sdrahn# if $GENERATE_COMBRELOC_SCRIPT is set by the emulation parameters or 210c074d1c9Sdrahn# $SCRIPT_NAME is "elf" and $GENERATE_SHLIB_SCRIPT is set by the emulation 211c074d1c9Sdrahn# parameters too. 2122159047fSniklas 213c074d1c9Sdrahnif [ "x$SCRIPT_NAME" = "xelf" ]; then 214c074d1c9Sdrahn GENERATE_COMBRELOC_SCRIPT=yes 215c074d1c9Sdrahnfi 216c074d1c9Sdrahn 217c074d1c9SdrahnSEGMENT_SIZE=${SEGMENT_SIZE-${MAXPAGESIZE-${TARGET_PAGE_SIZE}}} 2182159047fSniklas 2192159047fSniklas# Determine DATA_ALIGNMENT for the 5 variants, using 220007c2a45Smiod# values specified in the emulparams/<script_to_run>.sh file or default. 2212159047fSniklas 2222159047fSniklasDATA_ALIGNMENT_="${DATA_ALIGNMENT_-${DATA_ALIGNMENT-ALIGN(${SEGMENT_SIZE})}}" 2232159047fSniklasDATA_ALIGNMENT_n="${DATA_ALIGNMENT_n-${DATA_ALIGNMENT_}}" 2242159047fSniklasDATA_ALIGNMENT_N="${DATA_ALIGNMENT_N-${DATA_ALIGNMENT-.}}" 2252159047fSniklasDATA_ALIGNMENT_r="${DATA_ALIGNMENT_r-${DATA_ALIGNMENT-}}" 2262159047fSniklasDATA_ALIGNMENT_u="${DATA_ALIGNMENT_u-${DATA_ALIGNMENT_r}}" 2272159047fSniklas 2282159047fSniklasLD_FLAG=r 2292159047fSniklasDATA_ALIGNMENT=${DATA_ALIGNMENT_r} 2302159047fSniklasDEFAULT_DATA_ALIGNMENT="ALIGN(${SEGMENT_SIZE})" 231c074d1c9Sdrahn( echo "/* Script for ld -r: link without relocation */" 232007c2a45Smiod . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME} 233c074d1c9Sdrahn . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc 234c074d1c9Sdrahn) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xr 2352159047fSniklas 2362159047fSniklasLD_FLAG=u 2372159047fSniklasDATA_ALIGNMENT=${DATA_ALIGNMENT_u} 2382159047fSniklasCONSTRUCTING=" " 239c074d1c9Sdrahn( echo "/* Script for ld -Ur: link w/out relocation, do create constructors */" 240007c2a45Smiod . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME} 241c074d1c9Sdrahn . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc 242c074d1c9Sdrahn) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xu 2432159047fSniklas 2442159047fSniklasLD_FLAG= 2452159047fSniklasDATA_ALIGNMENT=${DATA_ALIGNMENT_} 2462159047fSniklasRELOCATING=" " 247c074d1c9Sdrahn( echo "/* Default linker script, for normal executables */" 248007c2a45Smiod . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME} 249c074d1c9Sdrahn . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc 250c074d1c9Sdrahn) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.x 2512159047fSniklas 2522159047fSniklasLD_FLAG=n 2532159047fSniklasDATA_ALIGNMENT=${DATA_ALIGNMENT_n} 2542159047fSniklasTEXT_START_ADDR=${NONPAGED_TEXT_START_ADDR-${TEXT_START_ADDR}} 255c074d1c9Sdrahn( echo "/* Script for -n: mix text and data on same page */" 256007c2a45Smiod . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME} 257c074d1c9Sdrahn . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc 258c074d1c9Sdrahn) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xn 2592159047fSniklas 2602159047fSniklasLD_FLAG=N 2612159047fSniklasDATA_ALIGNMENT=${DATA_ALIGNMENT_N} 262c074d1c9Sdrahn( echo "/* Script for -N: mix text and data on same page; don't align data */" 263007c2a45Smiod . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME} 264c074d1c9Sdrahn . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc 265c074d1c9Sdrahn) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xbn 266c074d1c9Sdrahn 267c074d1c9Sdrahnif test -n "$GENERATE_COMBRELOC_SCRIPT"; then 268c074d1c9Sdrahn DATA_ALIGNMENT=${DATA_ALIGNMENT_c-${DATA_ALIGNMENT_}} 269c074d1c9Sdrahn LD_FLAG=c 270c074d1c9Sdrahn COMBRELOC=ldscripts/${EMULATION_NAME}.xc.tmp 271c074d1c9Sdrahn ( echo "/* Script for -z combreloc: combine and sort reloc sections */" 272007c2a45Smiod . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME} 273c074d1c9Sdrahn . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc 274c074d1c9Sdrahn ) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xc 275c074d1c9Sdrahn rm -f ${COMBRELOC} 276c074d1c9Sdrahn COMBRELOC= 277c074d1c9Sdrahnfi 2782159047fSniklas 2792159047fSniklasif test -n "$GENERATE_SHLIB_SCRIPT"; then 2802159047fSniklas LD_FLAG=shared 2812159047fSniklas DATA_ALIGNMENT=${DATA_ALIGNMENT_s-${DATA_ALIGNMENT_}} 2822159047fSniklas CREATE_SHLIB=" " 2832159047fSniklas # Note that TEXT_START_ADDR is set to NONPAGED_TEXT_START_ADDR. 284c074d1c9Sdrahn ( 285c074d1c9Sdrahn echo "/* Script for ld --shared: link shared library */" 286007c2a45Smiod . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME} 287c074d1c9Sdrahn . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc 288c074d1c9Sdrahn ) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xs 289c074d1c9Sdrahn if test -n "$GENERATE_COMBRELOC_SCRIPT"; then 290c074d1c9Sdrahn LD_FLAG=cshared 291c074d1c9Sdrahn DATA_ALIGNMENT=${DATA_ALIGNMENT_sc-${DATA_ALIGNMENT}} 292c074d1c9Sdrahn COMBRELOC=ldscripts/${EMULATION_NAME}.xc.tmp 293c074d1c9Sdrahn ( echo "/* Script for --shared -z combreloc: shared library, combine & sort relocs */" 294007c2a45Smiod . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME} 295c074d1c9Sdrahn . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc 296c074d1c9Sdrahn ) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xsc 297c074d1c9Sdrahn rm -f ${COMBRELOC} 298c074d1c9Sdrahn COMBRELOC= 299c074d1c9Sdrahn fi 30059a393deSdrahn unset CREATE_SHLIB 3012159047fSniklasfi 3022159047fSniklas 303007c2a45Smiodif test -n "$GENERATE_PIE_SCRIPT"; then 304007c2a45Smiod LD_FLAG=pie 305007c2a45Smiod DATA_ALIGNMENT=${DATA_ALIGNMENT_s-${DATA_ALIGNMENT_}} 306007c2a45Smiod CREATE_PIE=" " 307007c2a45Smiod # Note that TEXT_START_ADDR is set to NONPAGED_TEXT_START_ADDR. 308007c2a45Smiod ( 309007c2a45Smiod echo "/* Script for ld -pie: link position independent executable */" 310007c2a45Smiod . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME} 311007c2a45Smiod . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc 312007c2a45Smiod ) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xd 313007c2a45Smiod if test -n "$GENERATE_COMBRELOC_SCRIPT"; then 314007c2a45Smiod LD_FLAG=cpie 315007c2a45Smiod DATA_ALIGNMENT=${DATA_ALIGNMENT_sc-${DATA_ALIGNMENT}} 316007c2a45Smiod COMBRELOC=ldscripts/${EMULATION_NAME}.xc.tmp 317007c2a45Smiod ( echo "/* Script for -pie -z combreloc: position independent executable, combine & sort relocs */" 318007c2a45Smiod . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME} 319007c2a45Smiod . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc 320007c2a45Smiod ) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xdc 321007c2a45Smiod rm -f ${COMBRELOC} 322*1c90c84bSkurt LD_FLAG=Zcpie 323*1c90c84bSkurt ( echo "/* Script for -pie -z combreloc, -Z: position independent executable, combine & sort relocs, no PLT/GOT padding */" 324*1c90c84bSkurt . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME} 325*1c90c84bSkurt . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc 326*1c90c84bSkurt ) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xdcz 327*1c90c84bSkurt rm -f ${COMBRELOC} 328007c2a45Smiod COMBRELOC= 329007c2a45Smiod fi 330*1c90c84bSkurt LD_FLAG=Zpie 331*1c90c84bSkurt DATA_ALIGNMENT=${DATA_ALIGNMENT_sc-${DATA_ALIGNMENT}} 332*1c90c84bSkurt ( 333*1c90c84bSkurt echo "/* Script for ld -pie -Z: link position independent executable, no PLT/GOT padding */" 334*1c90c84bSkurt . ${CUSTOMIZER_SCRIPT} ${EMULATION_NAME} 335*1c90c84bSkurt . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc 336*1c90c84bSkurt ) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xdz 337007c2a45Smiod unset CREATE_PIE 338007c2a45Smiodfi 339007c2a45Smiod 34058cb0658SdrahnLD_FLAG=Z 34158cb0658SdrahnDATA_ALIGNMENT=${DATA_ALIGNMENT_} 34258cb0658SdrahnRELOCATING=" " 34359a393deSdrahn( echo "/* Script for -Z: traditional binaries with no PLT/GOT padding */" 34459a393deSdrahn . ${srcdir}/emulparams/${EMULATION_NAME}.sh 34559a393deSdrahn . ${srcdir}/scripttempl/${SCRIPT_NAME}.sc 34659a393deSdrahn) | sed -e '/^ *$/d;s/[ ]*$//' > ldscripts/${EMULATION_NAME}.xz 34758cb0658Sdrahn 348c074d1c9Sdrahncase " $EMULATION_LIBPATH " in 349c074d1c9Sdrahn *" ${EMULATION_NAME} "*) COMPILE_IN=true;; 350c074d1c9Sdrahnesac 3512159047fSniklas 3526a4c786fSespie# Generate e${EMULATION_NAME}.c. 3532159047fSniklas. ${srcdir}/emultempl/${TEMPLATE_NAME-generic}.em 354