summaryrefslogtreecommitdiff
path: root/toolchain/gdb/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'toolchain/gdb/Makefile')
-rw-r--r--toolchain/gdb/Makefile59
1 files changed, 59 insertions, 0 deletions
diff --git a/toolchain/gdb/Makefile b/toolchain/gdb/Makefile
new file mode 100644
index 0000000000..4b0d6b3ce4
--- /dev/null
+++ b/toolchain/gdb/Makefile
@@ -0,0 +1,59 @@
+# $Id$
+
+include $(TOPDIR)/rules.mk
+
+GDB_NAME:=gdb
+GDB_SITE:=http://ftp.gnu.org/gnu/gdb
+GDB_VERSION:=6.3
+GDB_SOURCE:=$(GDB_NAME)-$(GDB_VERSION).tar.bz2
+GDB_CAT:=bzcat
+
+GDB_DIR:=$(TOOL_BUILD_DIR)/$(GDB_NAME)-$(GDB_VERSION)
+
+$(DL_DIR)/$(GDB_SOURCE):
+ $(WGET) -P $(DL_DIR) $(GDB_SITE)/$(GDB_SOURCE)
+
+$(GDB_DIR)/.patched: $(DL_DIR)/$(GDB_SOURCE)
+ $(GDB_CAT) $(DL_DIR)/$(GDB_SOURCE) | tar -C $(TOOL_BUILD_DIR) $(TAR_OPTIONS) -
+ $(PATCH) $(GDB_DIR) ./patches
+ # Copy a config.sub from gcc. This is only necessary until
+ # gdb's config.sub supports <arch>-linux-uclibc tuples.
+ # Should probably integrate this into the patch.
+ touch $(GDB_DIR)/.patched
+
+# gdb client
+
+GDB_CLIENT_DIR:=$(TOOL_BUILD_DIR)/gdbclient-$(GDB_VERSION)
+
+$(GDB_CLIENT_DIR)/.configured: $(GDB_DIR)/.unpacked
+ mkdir -p $(GDB_CLIENT_DIR)
+ (cd $(GDB_CLIENT_DIR); \
+ gdb_cv_func_sigsetjmp=yes \
+ $(GDB_DIR)/configure \
+ --prefix=$(STAGING_DIR) \
+ --build=$(GNU_HOST_NAME) \
+ --host=$(GNU_HOST_NAME) \
+ --target=$(REAL_GNU_TARGET_NAME) \
+ $(DISABLE_NLS) \
+ --without-uiout --disable-gdbmi \
+ --disable-tui --disable-gdbtk --without-x \
+ --without-included-gettext \
+ --enable-threads \
+ );
+ touch $(GDB_CLIENT_DIR)/.configured
+
+$(GDB_CLIENT_DIR)/gdb/gdb: $(GDB_CLIENT_DIR)/.configured
+ $(MAKE) -C $(GDB_CLIENT_DIR)
+ strip $(GDB_CLIENT_DIR)/gdb/gdb
+
+$(TARGET_CROSS)gdb: $(GDB_CLIENT_DIR)/gdb/gdb
+ install -c $(GDB_CLIENT_DIR)/gdb/gdb $(TARGET_CROSS)gdb
+ ln -fs ../../bin/$(REAL_GNU_TARGET_NAME)-gdb \
+ $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/bin/gdb
+
+source: $(DL_DIR)/$(GDB_SOURCE)
+prepare: $(GDB_DIR)/.patched
+compile:
+install: $(TARGET_CROSS)gdb
+clean:
+ rm -rf $(GDB_CLIENT_DIR)