aboutsummaryrefslogtreecommitdiff
path: root/rules
diff options
context:
space:
mode:
authorIgor Pashev <igor.pashev@nexenta.com>2012-10-29 15:36:38 +0400
committerIgor Pashev <igor.pashev@nexenta.com>2012-10-29 15:36:38 +0400
commit434c9d1997c6b4e8efff4755511f5430ba8f7efe (patch)
treeaddb65ce4643f17b41548d4da9bb7d612fda682e /rules
parent64fb34d1346bab605bf702bf2c2659c91bac0bc3 (diff)
downloadcibs-434c9d1997c6b4e8efff4755511f5430ba8f7efe.tar.gz
Add support for creating deb packages
Diffstat (limited to 'rules')
-rw-r--r--rules/deb.mk80
-rw-r--r--rules/ips-manifest.mk24
2 files changed, 92 insertions, 12 deletions
diff --git a/rules/deb.mk b/rules/deb.mk
new file mode 100644
index 0000000..15053f5
--- /dev/null
+++ b/rules/deb.mk
@@ -0,0 +1,80 @@
+#
+# 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 (,$(__deb_mk))
+
+include /usr/share/cibs/rules/ips-manifest.mk
+
+debmaker := /usr/share/cibs/scripts/debmaker.pl
+
+DEBVERSION ?= ips
+
+pkg-define += -D COMPONENT_VERSION="$(ips-version)"
+
+debsdir := ./debs
+
+deb-build-depends = \
+ $(subst /,-, \
+ $(subst pkg:/,,$(build-depends)) \
+ )
+
+
+pre-deb: depend-stamp
+
+deb-stamp: pre-deb
+ [ -n "$(debsdir)" ]
+ [ -d "$(debsdir)" ] || mkdir -p "$(debsdir)"
+ $(root-cmd) $(debmaker) \
+ -V "$(DEBVERSION)" \
+ -S "$(name)" \
+ -O "$(debsdir)" \
+ $(pkg-define) \
+ $(pkg-protos) \
+ $(depend-manifests) \
+
+ touch $@
+
+deb: deb-stamp
+
+check-build-dep-stamp: check-deb-build-dep-stamp
+
+# issue 'make d=' to skip dependency checking:
+check-deb-build-dep-stamp: d=true
+check-deb-build-dep-stamp:
+ @[ -z "$d" ] || [ -z "$(build-depends)" ] || dpkg -l $(deb-build-depends) || \
+ (echo "type '$(MAKE) build-dep' to install build dependencies"; \
+ echo "or add 'd=' to command, e. g. '$(MAKE) build d='"; \
+ false)
+ touch $@
+
+
+# Install build dependencies:
+build-dep:
+ $(root-cmd) apt-get install $(deb-build-depends)
+
+.PHONY: deb build-dep pre-deb
+
+__deb_mk := included
+endif
+
diff --git a/rules/ips-manifest.mk b/rules/ips-manifest.mk
index 3d20e1d..7eb9fdf 100644
--- a/rules/ips-manifest.mk
+++ b/rules/ips-manifest.mk
@@ -34,26 +34,26 @@ ips-version = $(version)
# Substitutions in IPS manifest:
makefile-vars := $(shell sed -n 's/^ *\([a-zA-Z][-_0-9a-zA-Z]*\) *[:?]*=.*$$/\1/p' Makefile | sort -u)
-pkg-define = $(foreach _,$(makefile-vars),-D$(_)="$($(_))")
-pkg-define += -Dips-version="$(ips-version)"
+pkg-define = $(foreach _,$(makefile-vars),-D $(_)="$($(_))")
+pkg-define += -D ips-version="$(ips-version)"
pkg-define += \
--DMACH="$(mach)" \
--DMACH32="$(mach32)" \
--DMACH64="$(mach64)" \
--Dmach="$(mach)" \
--Dmach32="$(mach32)" \
--Dmach64="$(mach64)" \
--Dbuild32="$(build32)" \
--Dbuild64="$(build64)" \
+-D MACH="$(mach)" \
+-D MACH32="$(mach32)" \
+-D MACH64="$(mach64)" \
+-D mach="$(mach)" \
+-D mach32="$(mach32)" \
+-D mach64="$(mach64)" \
+-D build32="$(build32)" \
+-D build64="$(build64)" \
# Add $(protodir.<variant>) to use in manifest:
# file $(protodir.64) path=usr/include/header.64.h
-pkg-define += $(foreach _,$(variants),-Dprotodir.$(_)="$(protodir-base.$(_))")
+pkg-define += $(foreach _,$(variants),-D protodir.$(_)="$(protodir-base.$(_))")
# Same for $(builddir.xxx):
-pkg-define += $(foreach _,$(variants),-Dbuilddir.$(_)="$(builddir-base.$(_))")
+pkg-define += $(foreach _,$(variants),-D builddir.$(_)="$(builddir-base.$(_))")
# Where to find files:
pkg-protos = $(foreach _,$(variants),-d "$(protodir.$(_))")