summaryrefslogtreecommitdiff
path: root/solenv/gbuild/UnpackedTarball.mk
diff options
context:
space:
mode:
authorDavid Tardon <dtardon@redhat.com>2013-05-03 16:53:09 +0200
committerEike Rathke <erack@redhat.com>2013-05-06 17:04:07 +0200
commit38b1b1aa4bf86653dd8363e85eb7e63d19d5b123 (patch)
tree92246dac8b72294edaa191c1aeb7549f328e696f /solenv/gbuild/UnpackedTarball.mk
parent9cb21a33421b8531dd25f76cc757f0d7f0fcc5ee (diff)
gbuild: add gb_UnpackedTarball_set_pre_action
This function is for running arbitrary command just after unpacking. It turns out that gb_UnpackedTarball_set_post_action is not enough :-( Change-Id: Ibad9d7fbcdd2b95a16cc838ad8773eef5c6da019
Diffstat (limited to 'solenv/gbuild/UnpackedTarball.mk')
-rw-r--r--solenv/gbuild/UnpackedTarball.mk17
1 files changed, 17 insertions, 0 deletions
diff --git a/solenv/gbuild/UnpackedTarball.mk b/solenv/gbuild/UnpackedTarball.mk
index 2342dc9e9ee2..a62b42aaba48 100644
--- a/solenv/gbuild/UnpackedTarball.mk
+++ b/solenv/gbuild/UnpackedTarball.mk
@@ -131,6 +131,9 @@ $(call gb_Output_announce,$(2),$(true),PAT,2)
$(call gb_Helper_abbreviate_dirs,\
( \
cd $(3) && \
+ $(if $(UNPACKED_PRE_ACTION),\
+ $(UNPACKED_PRE_ACTION) && \
+ ) \
$(if $(UNPACKED_FILES),\
mkdir -p $(sort $(dir $(UNPACKED_DESTFILES))) && \
$(call gb_UnpackedTarball__copy_files,$(UNPACKED_FILES),$(UNPACKED_DESTFILES)) && \
@@ -193,6 +196,7 @@ $(call gb_UnpackedTarball_get_target,$(1)) : UNPACKED_FIX_EOL :=
$(call gb_UnpackedTarball_get_target,$(1)) : UNPACKED_PATCHES :=
$(call gb_UnpackedTarball_get_target,$(1)) : UNPACKED_PATCHLEVEL := $(gb_UnpackedTarball_PATCHLEVEL_DEFAULT)
$(call gb_UnpackedTarball_get_target,$(1)) : UNPACKED_POST_ACTION :=
+$(call gb_UnpackedTarball_get_target,$(1)) : UNPACKED_PRE_ACTION :=
$(call gb_UnpackedTarball_get_preparation_target,$(1)) : $(gb_Module_CURRENTMAKEFILE)
$(call gb_UnpackedTarball_get_preparation_target,$(1)) :| $(dir $(call gb_UnpackedTarball_get_target,$(1))).dir
@@ -288,6 +292,19 @@ endef
# Set arbitrary shell command to be run during unpack
#
+# The command is run at the very beginning, in freshly unpacked tarball.
+# The command is run in the unpacked directory. If more than one command
+# is used, care should be taken that the whole command fails if either
+# of the sub-commands fails.
+#
+# gb_UnpackedTarball_set_pre_action unpacked shell-command
+define gb_UnpackedTarball_set_pre_action
+$(call gb_UnpackedTarball_get_target,$(1)) : UNPACKED_PRE_ACTION := $(strip $(2))
+
+endef
+
+# Set arbitrary shell command to be run during unpack
+#
# The command is run at the very end: after patching, C++ extension
# mangling and copying additional files in. The command is run in the
# unpacked directory. If more than one command is used, care should be