diff options
Diffstat (limited to 'scripts/gdb/mkspec.in')
-rw-r--r-- | scripts/gdb/mkspec.in | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/scripts/gdb/mkspec.in b/scripts/gdb/mkspec.in new file mode 100644 index 0000000000..e3b17339ac --- /dev/null +++ b/scripts/gdb/mkspec.in @@ -0,0 +1,76 @@ +#!/bin/sh +# +# Usage: mkspec CPU +# + +RTEMS_DIR=`dirname $0`/@top_srcdir@ + +CFG=../setup.cache +exe_ext=@EXEEXT@ + +specsrc=${RTEMS_DIR}/gdb/gdb.spec.in + +usage() +{ + echo "$0 [options] <target_alias>" + echo " options:" + echo " -cfg <setup.cache>" + echo " -a <alternate specs.in>" + exit 1 ; +} + +while test $# -ge 2; do +case $1 in +-cfg) + shift + CFG=$1 + shift + ;; +-a) # alternate specs file + shift + specsrc=$1 + shift + ;; +-*) + echo "invalid option $1"; + usage + ;; +esac +done + +if test ! $# -eq 1; +then + echo "Invalid number of arguments" + usage +fi + +# target to build for +target_alias=$1 + +. ./$CFG + +case ${target_alias} in + arm* | d10v* | d30v* | erc32* | fr30* | h8300* | h8500* | hppa1.1* | \ + i960* | m32r* | mcore* | mips* | mn10200* | mn10300* | sh* | sparc*| \ + v850* | w65* | z8k*) + extra_configure_arguments="--enable-sim" + ;; + powerpc*) + extra_configure_arguments="--enable-sim --enable-sim-powerpc --enable-sim-timebase --enable-sim-hardware" + # Enabling this causes the program image to be huge and causes + # some gcc/hosts combinations to run out of memory. + # --enable-sim-inline + ;; + *) + ;; +esac + +sed -e "s%@Release\@%${gdb_rpm_release}%g" \ + -e "s,@rpm_build_root\@,${rpm_build_root},g" \ + -e "s%@prefix\@%@prefix@%g" \ + -e "s%@target_alias\@%${target_alias}%g" \ + -e "s%@gdb_version\@%${gdb_version}%g" \ + -e "s%@gdb_patch_version\@%${gdb_patch_version}%g" \ + -e "s%@extra_configure_arguments\@%${extra_configure_arguments}%g" \ + -e "s%@exe_ext\@%${exe_ext}%g" \ +< ${specsrc} |