diff options
author | Felix Fietkau <nbd@openwrt.org> | 2009-01-13 03:21:25 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2009-01-13 03:21:25 +0000 |
commit | eb1c4db03967f28efd280ecb869009e9fe9c9dab (patch) | |
tree | d622c36d667a9dba9c1dfac56b6adde613fc5814 | |
parent | ef6e3e880fd696d029f69168581893883ec69f58 (diff) | |
download | upstream-eb1c4db03967f28efd280ecb869009e9fe9c9dab.tar.gz upstream-eb1c4db03967f28efd280ecb869009e9fe9c9dab.tar.bz2 upstream-eb1c4db03967f28efd280ecb869009e9fe9c9dab.zip |
add support for an optional staging directory for debug binaries
SVN-Revision: 14018
-rw-r--r-- | Config.in | 7 | ||||
-rw-r--r-- | include/package-debug.mk | 26 | ||||
-rw-r--r-- | include/package.mk | 3 | ||||
-rw-r--r-- | package/base-files/Makefile | 1 | ||||
-rw-r--r-- | rules.mk | 1 |
5 files changed, 37 insertions, 1 deletions
@@ -106,6 +106,13 @@ config DEBUG help Disables stripping and adds -g3 to the CFLAGS +config DEBUG_DIR + bool "Install debugging binaries into a staging directory" + default n + help + This will install all compiled package binaries into build_dir/target-*/debug-*/, + useful for cross-debugging via gdb/gdbserver + config NO_STRIP bool "Install unstripped binary on the target (useful for native compiling/debugging)" default n diff --git a/include/package-debug.mk b/include/package-debug.mk new file mode 100644 index 0000000000..2a85bfebb8 --- /dev/null +++ b/include/package-debug.mk @@ -0,0 +1,26 @@ +# +# Copyright (C) 2006,2007 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +ifeq ($(DUMP),) + define BuildTarget/debug + + DEBUG_STAMP_$(1) := $(DEBUG_DIR)/stamp/$(1) + + ifdef Package/$(1)/install + ifneq ($(CONFIG_PACKAGE_$(1))$(SDK)$(DEVELOPER),) + compile: $$(DEBUG_STAMP_$(1)) + endif + endif + + $$(DEBUG_STAMP_$(1)): $(PKG_BUILD_DIR)/.built + mkdir -p $(DEBUG_DIR)/stamp + $(call Package/$(1)/install,$(DEBUG_DIR)) + touch $$(DEBUG_STAMP_$(1)) + + + endef +endif diff --git a/include/package.mk b/include/package.mk index 4e31258305..04625d9b94 100644 --- a/include/package.mk +++ b/include/package.mk @@ -27,6 +27,7 @@ include $(INCLUDE_DIR)/quilt.mk include $(INCLUDE_DIR)/package-defaults.mk include $(INCLUDE_DIR)/package-dumpinfo.mk include $(INCLUDE_DIR)/package-ipkg.mk +include $(INCLUDE_DIR)/package-debug.mk include $(INCLUDE_DIR)/package-bin.mk include $(INCLUDE_DIR)/autotools.mk @@ -146,7 +147,7 @@ endif $(Dumpinfo), \ $(foreach target, \ $(if $(Package/$(1)/targets),$(Package/$(1)/targets), \ - $(if $(PKG_TARGETS),$(PKG_TARGETS), ipkg ) \ + $(if $(PKG_TARGETS),$(PKG_TARGETS), ipkg $(if $(CONFIG_DEBUG_DIR),debug)) \ ), $(BuildTarget/$(target)) \ ) \ ) diff --git a/package/base-files/Makefile b/package/base-files/Makefile index 52e70e5ce6..581aa9365c 100644 --- a/package/base-files/Makefile +++ b/package/base-files/Makefile @@ -160,6 +160,7 @@ define Package/base-files$(TARGET)/install $(SED) 's/$$$$/:13848:0:99999:7:::/' $(1)/etc/shadow \ ) $(SED) 's,$$$$R,$(REVISION),g' $(1)/etc/banner + mkdir -p $(1)/CONTROL mkdir -p $(1)/dev mkdir -p $(1)/etc/crontabs mkdir -p $(1)/jffs @@ -64,6 +64,7 @@ PACKAGE_DIR:=$(BIN_DIR)/packages/$(ARCH) STAMP_DIR:=$(BUILD_DIR)/stamp STAMP_DIR_HOST=$(BUILD_DIR_HOST)/stamp TARGET_DIR:=$(BUILD_DIR)/root-$(BOARD) +DEBUG_DIR:=$(BUILD_DIR)/debug-$(BOARD) IPKG_STATE_DIR:=$(TARGET_DIR)/usr/lib/ipkg TARGET_PATH:=$(TOOLCHAIN_DIR)/usr/bin:$(STAGING_DIR_HOST)/bin:$(STAGING_DIR)/host/bin:$(PATH) |