diff options
-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 + |