build system cleanup/restructuring as described in http://lists.openwrt.org/pipermail...
[openwrt-10.03/.git] / toolchain / gdb / Makefile
index 85dfa7164c9c9cb739c0fb2c798f97e5d5e5def3..40fc2789b6d081508dfff2a4cfdc53c4c4285612 100644 (file)
@@ -1,36 +1,29 @@
-# $Id$
-
+# 
+# Copyright (C) 2006 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
 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)
+PKG_NAME:=gdb
+PKG_VERSION:=6.3
 
-$(DL_DIR)/$(GDB_SOURCE):
-       $(WGET) -P $(DL_DIR) $(GDB_SITE)/$(GDB_SOURCE)
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_MD5SUM:=05b928f41fa5b482e49ca2c24762a0ae
+PKG_SOURCE_URL:=http://ftp.gnu.org/gnu/gdb
+PKG_CAT:=bzcat
 
-$(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
+STAGING_DIR_HOST:=$(TOOLCHAIN_DIR)
+BUILD_DIR_HOST:=$(BUILD_DIR_TOOLCHAIN)
 
-# gdb client
+include $(INCLUDE_DIR)/host-build.mk
 
-GDB_CLIENT_DIR:=$(TOOL_BUILD_DIR)/gdbclient-$(GDB_VERSION)
-
-$(GDB_CLIENT_DIR)/.configured: $(GDB_DIR)/.patched
-       mkdir -p $(GDB_CLIENT_DIR)
-       (cd $(GDB_CLIENT_DIR); \
+define Build/Configure
+       (cd $(PKG_BUILD_DIR); \
                gdb_cv_func_sigsetjmp=yes \
-               $(GDB_DIR)/configure \
-               --prefix=$(STAGING_DIR) \
+               $(PKG_BUILD_DIR)/configure \
+               --prefix=$(TOOLCHAIN_DIR) \
                --build=$(GNU_HOST_NAME) \
                --host=$(GNU_HOST_NAME) \
                --target=$(REAL_GNU_TARGET_NAME) \
@@ -40,20 +33,22 @@ $(GDB_CLIENT_DIR)/.configured: $(GDB_DIR)/.patched
                --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
-       cd $(STAGING_DIR)/bin && \
-       ln -fs $(GNU_TARGET_NAME)-gdb $(REAL_GNU_TARGET_NAME)-gdb
-
-source: $(DL_DIR)/$(GDB_SOURCE)
-prepare: $(GDB_DIR)/.patched
-compile: 
-install: $(TARGET_CROSS)gdb
-clean:
-       rm -rf $(GDB_CLIENT_DIR)
+endef
+
+define Build/Compile
+       $(MAKE) -C $(PKG_BUILD_DIR)
+       strip $(PKG_BUILD_DIR)/gdb/gdb
+endef
+
+define Build/Install
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/gdb/gdb $(TARGET_CROSS)gdb
+       ln -fs $(TARGET_CROSS)gdb $(TOOLCHAIN_DIR)/$(GNU_TARGET_NAME)-gdb; \
+endef
+
+define Build/Clean
+       rm -rf $(PKG_BUILD_DIR)
+       rm -f $(TOOLCHAIN_DIR)/bin/$(TARGET_CROSS)gdb
+       rm -f $(TOOLCHAIN_DIR)/bin/$(GNU_TARGET_NAME)-gdb
+endef
+
+$(eval $(call HostBuild))