summaryrefslogtreecommitdiff
path: root/scripts/build/debug/300-gdb.sh
diff options
context:
space:
mode:
authorYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2008-05-02 21:59:14 (GMT)
committerYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2008-05-02 21:59:14 (GMT)
commitff1d30c4a3c619bf6e451634c35c23ffce835001 (patch)
tree5c8b7f516ada07f973d70556cd7ac3977106edab /scripts/build/debug/300-gdb.sh
parentfdb7c1e75d537921898d2068530c137881769eb5 (diff)
For tools/ and debug/ build scripts, annd a numeric prefix, so that they always get built in the same order, in case of library dependencies.
/trunk/scripts/build/debug.sh | 2 1 1 0 +- /trunk/scripts/build/tools.sh | 2 1 1 0 +- 2 files changed, 2 insertions(+), 2 deletions(-)
Diffstat (limited to 'scripts/build/debug/300-gdb.sh')
-rw-r--r--scripts/build/debug/300-gdb.sh144
1 files changed, 144 insertions, 0 deletions
diff --git a/scripts/build/debug/300-gdb.sh b/scripts/build/debug/300-gdb.sh
new file mode 100644
index 0000000..7140a0f
--- /dev/null
+++ b/scripts/build/debug/300-gdb.sh
@@ -0,0 +1,144 @@
+# Build script for the gdb debug facility
+
+is_enabled="${CT_GDB}"
+
+do_print_filename() {
+ [ "${CT_GDB}" = "y" ] || return 0
+ echo "gdb`do_debug_gdb_suffix`"
+}
+
+do_debug_gdb_suffix() {
+ case "${CT_GDB_VERSION}" in
+ snapshot) ;;
+ *) echo "-${CT_GDB_VERSION}";;
+ esac
+}
+
+do_debug_gdb_get() {
+ CT_GetFile "gdb`do_debug_gdb_suffix`" \
+ ftp://ftp.gnu.org/pub/gnu/gdb \
+ ftp://sources.redhat.com/pub/gdb/releases \
+ ftp://sources.redhat.com/pub/gdb/old-releases \
+ ftp://sources.redhat.com/pub/gdb/snapshots/current
+}
+
+do_debug_gdb_extract() {
+ CT_ExtractAndPatch "gdb`do_debug_gdb_suffix`"
+}
+
+do_debug_gdb_build() {
+ gdb_src_dir="${CT_SRC_DIR}/gdb`do_debug_gdb_suffix`"
+
+ extra_config=
+ # Version 6.3 and below behave badly with gdbmi
+ case "${CT_GDB_VERSION}" in
+ 6.2*|6.3) extra_config="${extra_config} --disable-gdbmi";;
+ esac
+
+ if [ "${CT_GDB_CROSS}" = "y" ]; then
+ CT_DoStep INFO "Installing cross-gdb"
+ CT_DoLog EXTRA "Configuring cross-gdb"
+
+ mkdir -p "${CT_BUILD_DIR}/build-gdb-cross"
+ cd "${CT_BUILD_DIR}/build-gdb-cross"
+
+ CC_for_gdb=
+ LD_for_gdb=
+ if [ "${CT_GDB_CROSS_STATIC_GDBSERVER}" = "y" ]; then
+ CC_for_gdb="gcc -static"
+ LD_for_gdb="ld -static"
+ fi
+
+ CC="${CC_for_gdb}" \
+ LD="${LD_forgdb}" \
+ "${gdb_src_dir}/configure" \
+ --build=${CT_BUILD} \
+ --host=${CT_HOST} \
+ --target=${CT_TARGET} \
+ --prefix="${CT_PREFIX_DIR}" \
+ --with-build-sysroot="${CT_SYSROOT_DIR}" \
+ --enable-threads \
+ ${extra_config} 2>&1 |CT_DoLog ALL
+
+ CT_DoLog EXTRA "Building cross-gdb"
+ make ${PARALLELMFLAGS} 2>&1 |CT_DoLog ALL
+
+ CT_DoLog EXTRA "Installing cross-gdb"
+ make install 2>&1 |CT_DoLog ALL
+
+ CT_EndStep
+
+ CT_DoStep INFO "Installing gdbserver"
+ CT_DoLog EXTRA "Configuring gdbserver"
+
+ mkdir -p "${CT_BUILD_DIR}/build-gdb-gdbserver"
+ cd "${CT_BUILD_DIR}/build-gdb-gdbserver"
+
+ # Workaround for bad versions, where the configure
+ # script for gdbserver is not executable...
+ # Bah, GNU folks strike again... :-(
+ chmod +x "${gdb_src_dir}/gdb/gdbserver/configure"
+
+ gdbserver_LDFLAGS=
+ if [ "${CT_GDB_CROSS_STATIC_GDBSERVER}" = "y" ]; then
+ gdbserver_LDFLAGS=-static
+ fi
+
+ LDFLAGS="${gdbserver_LDFLAGS}" \
+ "${gdb_src_dir}/gdb/gdbserver/configure" \
+ --build=${CT_BUILD} \
+ --host=${CT_TARGET} \
+ --target=${CT_TARGET} \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --includedir="${CT_HEADERS_DIR}" \
+ --with-build-sysroot="${CT_SYSROOT_DIR}" \
+ --program-prefix= \
+ --without-uiout \
+ --disable-tui \
+ --disable-gdbtk \
+ --without-x \
+ --without-included-gettext \
+ ${extra_config} 2>&1 |CT_DoLog ALL
+
+ CT_DoLog EXTRA "Building gdbserver"
+ make ${PARALLELMFLAGS} CC=${CT_TARGET}-${CT_CC} 2>&1 |CT_DoLog ALL
+
+ CT_DoLog EXTRA "Installing gdbserver"
+ make DESTDIR="${CT_DEBUG_INSTALL_DIR}" install 2>&1 |CT_DoLog ALL
+
+ CT_EndStep
+ fi
+
+ if [ "${CT_GDB_NATIVE}" = "y" ]; then
+ CT_DoStep EXTRA "Installing native gdb"
+ CT_DoLog EXTRA "Configuring native gdb"
+
+ mkdir -p "${CT_BUILD_DIR}/build-gdb-native"
+ cd "${CT_BUILD_DIR}/build-gdb-native"
+
+ "${gdb_src_dir}/configure" \
+ --build=${CT_BUILD} \
+ --host=${CT_TARGET} \
+ --target=${CT_TARGET} \
+ --prefix=/usr \
+ --with-build-sysroot="${CT_SYSROOT_DIR}" \
+ --without-uiout \
+ --disable-tui \
+ --disable-gdbtk \
+ --without-x \
+ --disable-sim \
+ --disable-gdbserver \
+ --without-included-gettext \
+ ${extra_config} 2>&1 |CT_DoLog ALL
+
+ CT_DoLog EXTRA "Building native gdb"
+ make ${PARALLELMFLAGS} CC=${CT_TARGET}-${CT_CC} 2>&1 |CT_DoLog ALL
+
+ CT_DoLog EXTRA "Installing native gdb"
+ make DESTDIR="${CT_DEBUG_INSTALL_DIR}" install 2>&1 |CT_DoLog ALL
+
+ CT_EndStep
+ fi
+}