diff options
-rw-r--r-- | README.md | 6 | ||||
-rw-r--r-- | rules/common.mk | 3 | ||||
-rw-r--r-- | rules/copy.mk | 42 |
3 files changed, 51 insertions, 0 deletions
@@ -102,3 +102,9 @@ Makefile should define two variables: For example see "examples/symlinks". +## copy.mk + +If this module is included, entire source tree will be copied +into all requested building directories. This is useful for +packages that do not support building out of source tree, +such as zlib or openssl. diff --git a/rules/common.mk b/rules/common.mk index 38dc39a..a10e41c 100644 --- a/rules/common.mk +++ b/rules/common.mk @@ -40,9 +40,12 @@ mach := $(shell uname -p) mach32 := mach64 := amd64 +variants := + define add-variant destdir.$1 = $(workdir)/proto/$1 builddir.$1 = $(workdir)/build/$1 +variants += $1 endef workdir := $(CURDIR)/work diff --git a/rules/copy.mk b/rules/copy.mk new file mode 100644 index 0000000..3ec574d --- /dev/null +++ b/rules/copy.mk @@ -0,0 +1,42 @@ +# +# 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. +# + +ifeq (,$(__copy_mk)) + +include /usr/share/cibs/rules/common.mk + +pre-configure-stamp: copy-stamp + +.SECONDEXPANSION: +copy-stamp: $$(addprefix copy-,$$(addsuffix -stamp,$$(variants) $$(variants))) +copy-%-stamp: patch-stamp unpack-stamp + echo $* + [ -n "$(builddir.$*)" ] + [ -d "$(builddir.$*)" ] || mkdir -p "$(builddir.$*)" + cp -r -p $(sourcedir)/* $(builddir.$*)/ + touch $@ + +__copy_mk := included + +endif + |