summaryrefslogtreecommitdiffstats
path: root/scripts/gdb/mkspec.in
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/gdb/mkspec.in')
-rw-r--r--scripts/gdb/mkspec.in76
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}