yann@96: # Build script for the gdb debug facility yann@96: yann@96: is_enabled="${CT_GDB}" yann@96: yann@161: do_print_filename() { yann@161: [ "${CT_GDB}" = "y" ] || return 0 yann@161: echo "gdb`do_debug_gdb_suffix`" yann@161: } yann@161: yann@96: do_debug_gdb_suffix() { yann@96: case "${CT_GDB_VERSION}" in yann@96: snapshot) ;; yann@96: *) echo "-${CT_GDB_VERSION}";; yann@96: esac yann@96: } yann@96: yann@96: do_debug_gdb_get() { yann@96: CT_GetFile "gdb`do_debug_gdb_suffix`" \ yann@96: ftp://ftp.gnu.org/pub/gnu/gdb \ yann@96: ftp://sources.redhat.com/pub/gdb/releases \ yann@96: ftp://sources.redhat.com/pub/gdb/old-releases \ yann@96: ftp://sources.redhat.com/pub/gdb/snapshots/current yann@96: } yann@96: yann@96: do_debug_gdb_extract() { yann@96: CT_ExtractAndPatch "gdb`do_debug_gdb_suffix`" yann@96: } yann@96: yann@96: do_debug_gdb_build() { yann@96: gdb_src_dir="${CT_SRC_DIR}/gdb`do_debug_gdb_suffix`" yann@96: yann@96: extra_config= yann@96: # Version 6.3 and below behave badly with gdbmi yann@96: case "${CT_GDB_VERSION}" in yann@96: 6.2*|6.3) extra_config="${extra_config} --disable-gdbmi";; yann@96: esac yann@96: yann@96: if [ "${CT_GDB_CROSS}" = "y" ]; then yann@97: CT_DoStep INFO "Installing cross-gdb" yann@96: CT_DoLog EXTRA "Configuring cross-gdb" yann@96: yann@96: mkdir -p "${CT_BUILD_DIR}/build-gdb-cross" yann@96: cd "${CT_BUILD_DIR}/build-gdb-cross" yann@96: yann@96: "${gdb_src_dir}/configure" \ yann@96: --build=${CT_BUILD} \ yann@96: --host=${CT_HOST} \ yann@96: --target=${CT_TARGET} \ yann@113: --prefix="${CT_PREFIX_DIR}" \ yann@96: --with-build-sysroot="${CT_SYSROOT_DIR}" \ yann@96: --enable-threads \ yann@96: ${extra_config} 2>&1 |CT_DoLog ALL yann@96: yann@96: CT_DoLog EXTRA "Building cross-gdb" yann@96: make ${PARALLELMFLAGS} 2>&1 |CT_DoLog ALL yann@96: yann@96: CT_DoLog EXTRA "Installing cross-gdb" yann@96: make install 2>&1 |CT_DoLog ALL yann@96: yann@96: CT_EndStep yann@96: yann@97: CT_DoStep INFO "Installing gdbserver" yann@96: CT_DoLog EXTRA "Configuring gdbserver" yann@96: yann@96: mkdir -p "${CT_BUILD_DIR}/build-gdb-gdbserver" yann@96: cd "${CT_BUILD_DIR}/build-gdb-gdbserver" yann@96: yann@96: # Workaround for bad versions, where the configure yann@96: # script for gdbserver is not executable... yann@96: # Bah, GNU folks strike again... :-( yann@96: chmod +x "${gdb_src_dir}/gdb/gdbserver/configure" yann@96: yann@175: gdbserver_LDFLAGS= yann@175: if [ "${CT_GDB_CROSS_STATIC_GDBSERVER}" = "y" ]; then yann@175: gdbserver_LDFLAGS=-static yann@175: fi yann@175: yann@175: LDFLAGS="${gdbserver_LDFLAGS}" \ yann@96: "${gdb_src_dir}/gdb/gdbserver/configure" \ yann@96: --build=${CT_BUILD} \ yann@96: --host=${CT_TARGET} \ yann@96: --target=${CT_TARGET} \ yann@96: --prefix=/usr \ yann@96: --sysconfdir=/etc \ yann@96: --localstatedir=/var \ yann@96: --includedir="${CT_HEADERS_DIR}" \ yann@96: --with-build-sysroot="${CT_SYSROOT_DIR}" \ yann@96: --program-prefix= \ yann@96: --without-uiout \ yann@96: --disable-tui \ yann@96: --disable-gdbtk \ yann@96: --without-x \ yann@96: --without-included-gettext \ yann@96: ${extra_config} 2>&1 |CT_DoLog ALL yann@96: yann@96: CT_DoLog EXTRA "Building gdbserver" yann@237: make ${PARALLELMFLAGS} CC=${CT_TARGET}-${CT_CC} 2>&1 |CT_DoLog ALL yann@96: yann@96: CT_DoLog EXTRA "Installing gdbserver" yann@96: make DESTDIR="${CT_DEBUG_INSTALL_DIR}" install 2>&1 |CT_DoLog ALL yann@96: yann@96: CT_EndStep yann@96: fi yann@96: yann@96: if [ "${CT_GDB_NATIVE}" = "y" ]; then yann@96: CT_DoStep EXTRA "Installing native gdb" yann@96: CT_DoLog EXTRA "Configuring native gdb" yann@96: yann@105: mkdir -p "${CT_BUILD_DIR}/build-gdb-native" yann@105: cd "${CT_BUILD_DIR}/build-gdb-native" yann@96: yann@96: "${gdb_src_dir}/configure" \ yann@96: --build=${CT_BUILD} \ yann@96: --host=${CT_TARGET} \ yann@96: --target=${CT_TARGET} \ yann@96: --prefix=/usr \ yann@96: --with-build-sysroot="${CT_SYSROOT_DIR}" \ yann@96: --without-uiout \ yann@96: --disable-tui \ yann@96: --disable-gdbtk \ yann@96: --without-x \ yann@96: --disable-sim \ yann@105: --disable-gdbserver \ yann@96: --without-included-gettext \ yann@96: ${extra_config} 2>&1 |CT_DoLog ALL yann@96: yann@96: CT_DoLog EXTRA "Building native gdb" yann@237: make ${PARALLELMFLAGS} CC=${CT_TARGET}-${CT_CC} 2>&1 |CT_DoLog ALL yann@96: yann@96: CT_DoLog EXTRA "Installing native gdb" yann@96: make DESTDIR="${CT_DEBUG_INSTALL_DIR}" install 2>&1 |CT_DoLog ALL yann@96: yann@96: CT_EndStep yann@96: fi yann@96: }