aboutsummaryrefslogtreecommitdiff
path: root/rules
diff options
context:
space:
mode:
authorIgor Pashev <igor.pashev@nexenta.com>2012-09-14 09:46:08 +0400
committerIgor Pashev <igor.pashev@nexenta.com>2012-09-14 09:46:08 +0400
commitf5f58371de3ccfff2ce6e1aac35de3e6106002ae (patch)
treee43dada06ad4f2f5b47263918469112c34b1c2c7 /rules
parent0f7141c9d86752933972be9ab485a9e7cd0da539 (diff)
downloadcibs-f5f58371de3ccfff2ce6e1aac35de3e6106002ae.tar.gz
Simple patch system with pre-configure hook
Diffstat (limited to 'rules')
-rw-r--r--rules/autotools.mk2
-rw-r--r--rules/patch.mk45
2 files changed, 46 insertions, 1 deletions
diff --git a/rules/autotools.mk b/rules/autotools.mk
index fea7d12..b6769d0 100644
--- a/rules/autotools.mk
+++ b/rules/autotools.mk
@@ -39,7 +39,7 @@ configure-options = \
--bindir="$(bindir)" \
--includedir="$(includedir)" \
-configure-%-stamp: patch-stamp unpack-stamp
+configure-%-stamp: pre-configure
[ -d "$(builddir)" ] || mkdir -p "$(builddir)"
cd "$(builddir)" && \
env $(configure-env) \
diff --git a/rules/patch.mk b/rules/patch.mk
new file mode 100644
index 0000000..54ec563
--- /dev/null
+++ b/rules/patch.mk
@@ -0,0 +1,45 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license
+# at http://www.opensource.org/licenses/CDDL-1.0
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each file.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+#
+# Copyright (C) 2012, Nexenta Systems, Inc. All rights reserved.
+#
+
+# include guard
+ifeq (,$(__patch_mk))
+
+patchdir = $(CURDIR)/patches
+patches := $(shell cd "$(patchdir)" && ls -1 | sort)
+
+# Try different path levels:
+applied-%-stamp: $(patchdir)/% unpack-stamp
+ cd "$(sourcedir)" && \
+ patch -p1 -t < $< || \
+ patch -p0 -t < $< || \
+ patch -p2 -t < $<
+ touch $@
+
+
+patch-stamp: $(patches:%=applied-%-stamp)
+
+pre-configure:: patch-stamp
+
+__patch_mk := included
+endif
+