summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2011-10-09 16:33:59 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2011-10-09 16:33:59 +0000
commit444bd443905edd99ee84435bbbb0deebd17331bd (patch)
tree9502c0cdf7ed2067d0a495750d93be7a34130f5e
parent9f1311dac5ff92444c707e327f754f77a3aa7236 (diff)
build system: add a feature that allows you to pull sources from a git tree instead of the usual tarball
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28394 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--Config.in8
-rw-r--r--include/package.mk14
2 files changed, 21 insertions, 1 deletions
diff --git a/Config.in b/Config.in
index f36221cee6..4fc0d1a55f 100644
--- a/Config.in
+++ b/Config.in
@@ -430,6 +430,14 @@ menuconfig DEVEL
help
If enabled log files will be written to the ./log directory
+ config SRC_TREE_OVERRIDE
+ bool "Enable package source tree override" if DEVEL
+ help
+ If enabled, you can force a package to use a git tree as source
+ code instead of the normal tarball. Create a symlink 'git-src'
+ in the package directory, pointing to the .git tree that you want
+ to pull the source code from
+
menuconfig TARGET_OPTIONS
bool "Target Options" if DEVEL
diff --git a/include/package.mk b/include/package.mk
index cfb39dac83..2ad0f11bc8 100644
--- a/include/package.mk
+++ b/include/package.mk
@@ -37,6 +37,10 @@ STAMP_BUILT:=$(PKG_BUILD_DIR)/.built
STAMP_INSTALLED:=$(STAGING_DIR)/stamp/.$(PKG_NAME)_installed
STAGING_FILES_LIST:=$(PKG_NAME)$(if $(BUILD_VARIANT),.$(BUILD_VARIANT),).list
+ifneq ($(if $(CONFIG_SRC_TREE_OVERRIDE),$(wildcard ./git-src)),)
+ USE_GIT_TREE:=1
+ QUILT:=1
+endif
include $(INCLUDE_DIR)/download.mk
include $(INCLUDE_DIR)/quilt.mk
@@ -84,6 +88,14 @@ define Download/default
MD5SUM:=$(PKG_MD5SUM)
endef
+ifdef USE_GIT_TREE
+ define Build/Prepare/Default
+ mkdir -p $(PKG_BUILD_DIR)
+ ln -s $(CURDIR)/git-src $(PKG_BUILD_DIR)/.git
+ ( cd $(PKG_BUILD_DIR); git checkout .)
+ endef
+endif
+
define Build/Exports/Default
$(1) : export ACLOCAL_INCLUDE=$$(foreach p,$$(wildcard $$(STAGING_DIR)/usr/share/aclocal $$(STAGING_DIR)/usr/share/aclocal-* $$(STAGING_DIR)/host/share/aclocal $$(STAGING_DIR)/host/share/aclocal-*),-I $$(p))
$(1) : export STAGING_PREFIX=$$(STAGING_DIR)/usr
@@ -97,7 +109,7 @@ Build/Exports=$(Build/Exports/Default)
define Build/DefaultTargets
$(if $(QUILT),$(Build/Quilt))
- $(if $(strip $(PKG_SOURCE_URL)),$(call Download,default))
+ $(if $(USE_GIT_TREE),$(if $(strip $(PKG_SOURCE_URL)),$(call Download,default)))
$(call Build/Autoclean)
download: