|
@@ -251,6 +251,25 @@ $(BUILD_DIR)/%/.stamp_extracted:
|
|
|
$(foreach hook,$($(PKG)_POST_EXTRACT_HOOKS),$(call $(hook))$(sep))
|
|
|
$(Q)touch $@
|
|
|
|
|
|
+# Rsync the source directory if the <pkg>_OVERRIDE_SRCDIR feature is
|
|
|
+# used.
|
|
|
+$(BUILD_DIR)/%/.stamp_rsynced:
|
|
|
+ @$(call MESSAGE,"Syncing from source dir $(SRCDIR)")
|
|
|
+ @test -d $(SRCDIR) || (echo "ERROR: $(SRCDIR) does not exist" ; exit 1)
|
|
|
+ rsync -au $(SRCDIR)/ $(@D)
|
|
|
+ $(Q)touch $@
|
|
|
+
|
|
|
+# Handle the SOURCE_CHECK and SHOW_EXTERNAL_DEPS cases for rsynced
|
|
|
+# packages
|
|
|
+$(BUILD_DIR)/%/.stamp_rsync_sourced:
|
|
|
+ifeq ($(DL_MODE),SOURCE_CHECK)
|
|
|
+ test -d $(SRCDIR)
|
|
|
+else ifeq ($(DL_MODE),SHOW_EXTERNAL_DEPS)
|
|
|
+ echo "file://$(SRCDIR)"
|
|
|
+else
|
|
|
+ @true # Nothing to do to source a local package
|
|
|
+endif
|
|
|
+
|
|
|
# Patch
|
|
|
#
|
|
|
# The RAWNAME variable is the lowercased package name, which allows to
|
|
@@ -384,6 +403,10 @@ $(2)_BASE_NAME = $(1)-$$($(2)_VERSION)
|
|
|
$(2)_DL_DIR = $$(DL_DIR)/$$($(2)_BASE_NAME)
|
|
|
$(2)_DIR = $$(BUILD_DIR)/$$($(2)_BASE_NAME)
|
|
|
|
|
|
+ifneq ($$($(2)_OVERRIDE_SRCDIR),)
|
|
|
+$(2)_VERSION = custom
|
|
|
+endif
|
|
|
+
|
|
|
ifndef $(2)_SOURCE
|
|
|
ifdef $(3)_SOURCE
|
|
|
$(2)_SOURCE = $($(3)_SOURCE)
|
|
@@ -429,6 +452,8 @@ $(2)_TARGET_INSTALL_IMAGES = $$($(2)_DIR)/.stamp_images_installed
|
|
|
$(2)_TARGET_INSTALL_HOST = $$($(2)_DIR)/.stamp_host_installed
|
|
|
$(2)_TARGET_BUILD = $$($(2)_DIR)/.stamp_built
|
|
|
$(2)_TARGET_CONFIGURE = $$($(2)_DIR)/.stamp_configured
|
|
|
+$(2)_TARGET_RSYNC = $$($(2)_DIR)/.stamp_rsynced
|
|
|
+$(2)_TARGET_RSYNC_SOURCE = $$($(2)_DIR)/.stamp_rsync_sourced
|
|
|
$(2)_TARGET_PATCH = $$($(2)_DIR)/.stamp_patched
|
|
|
$(2)_TARGET_EXTRACT = $$($(2)_DIR)/.stamp_extracted
|
|
|
$(2)_TARGET_SOURCE = $$($(2)_DIR)/.stamp_downloaded
|
|
@@ -489,6 +514,13 @@ $(1)-install-host: $(1)-build $$($(2)_TARGET_INSTALL_HOST)
|
|
|
$(1)-build: $(1)-configure \
|
|
|
$$($(2)_TARGET_BUILD)
|
|
|
|
|
|
+ifeq ($$($(2)_OVERRIDE_SRCDIR),)
|
|
|
+# In the normal case (no package override), the sequence of steps is
|
|
|
+# source, by downloading
|
|
|
+# depends
|
|
|
+# extract
|
|
|
+# patch
|
|
|
+# configure
|
|
|
$(1)-configure: $(1)-patch $(1)-depends \
|
|
|
$$($(2)_TARGET_CONFIGURE)
|
|
|
|
|
@@ -499,11 +531,25 @@ $(1)-extract: $(1)-source \
|
|
|
|
|
|
$(1)-depends: $$($(2)_DEPENDENCIES)
|
|
|
|
|
|
+$(1)-source: $$($(2)_TARGET_SOURCE)
|
|
|
+else
|
|
|
+# In the package override case, the sequence of steps
|
|
|
+# source, by rsyncing
|
|
|
+# depends
|
|
|
+# configure
|
|
|
+$(1)-configure: $(1)-depends \
|
|
|
+ $$($(2)_TARGET_CONFIGURE)
|
|
|
+
|
|
|
+$(1)-depends: $(1)-rsync $$($(2)_DEPENDENCIES)
|
|
|
+
|
|
|
+$(1)-rsync: $$($(2)_TARGET_RSYNC)
|
|
|
+
|
|
|
+$(1)-source: $$($(2)_TARGET_RSYNC_SOURCE)
|
|
|
+endif
|
|
|
+
|
|
|
$(1)-show-depends:
|
|
|
@echo $$($(2)_DEPENDENCIES)
|
|
|
|
|
|
-$(1)-source: $$($(2)_TARGET_SOURCE)
|
|
|
-
|
|
|
$(1)-uninstall: $(1)-configure $$($(2)_TARGET_UNINSTALL)
|
|
|
|
|
|
$(1)-clean: $(1)-uninstall \
|
|
@@ -519,6 +565,10 @@ $$($(2)_TARGET_INSTALL_IMAGES): PKG=$(2)
|
|
|
$$($(2)_TARGET_INSTALL_HOST): PKG=$(2)
|
|
|
$$($(2)_TARGET_BUILD): PKG=$(2)
|
|
|
$$($(2)_TARGET_CONFIGURE): PKG=$(2)
|
|
|
+$$($(2)_TARGET_RSYNC): SRCDIR=$$($(2)_OVERRIDE_SRCDIR)
|
|
|
+$$($(2)_TARGET_RSYNC): PKG=$(2)
|
|
|
+$$($(2)_TARGET_RSYNC_SOURCE): SRCDIR=$$($(2)_OVERRIDE_SRCDIR)
|
|
|
+$$($(2)_TARGET_RSYNC_SOURCE): PKG=$(2)
|
|
|
$$($(2)_TARGET_PATCH): PKG=$(2)
|
|
|
$$($(2)_TARGET_PATCH): RAWNAME=$(patsubst host-%,%,$(1))
|
|
|
$$($(2)_TARGET_EXTRACT): PKG=$(2)
|