diff options
author | Igor Pashev <igor.pashev@nexenta.com> | 2012-09-14 09:46:08 +0400 |
---|---|---|
committer | Igor Pashev <igor.pashev@nexenta.com> | 2012-09-14 09:46:08 +0400 |
commit | f5f58371de3ccfff2ce6e1aac35de3e6106002ae (patch) | |
tree | e43dada06ad4f2f5b47263918469112c34b1c2c7 | |
parent | 0f7141c9d86752933972be9ab485a9e7cd0da539 (diff) | |
download | cibs-f5f58371de3ccfff2ce6e1aac35de3e6106002ae.tar.gz |
Simple patch system with pre-configure hook
-rw-r--r-- | rules/autotools.mk | 2 | ||||
-rw-r--r-- | rules/patch.mk | 45 |
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 + |