RN rnmake  3.0.0
Rules.dpkg.mk
Go to the documentation of this file.
1 ################################################################################
2 #
3 # Rules.dpkg.mk
4 #
5 ifdef RNMAKE_DOXY
6 /*!
7 \file
8 
9 \brief Make Debian repo packages for a package.
10 
11 This file is automatically included by \ref Rules.mk when one or more of the
12 Debian make goals are specified.
13 
14 \pkgsynopsis
15 RN Make System
16 
17 \pkgfile{Rules.dpkg.mk}
18 
19 \pkgauthor{Daniel Packard,daniel@roadnarrows.com}
20 \pkgauthor{Robin Knight,robin.knight@roadnarrows.com}
21 
22 \pkgcopyright{2009-2018,RoadNarrows LLC,http://www.roadnarrows.com}
23 
24 \license{MIT}
25 
26 \EulaBegin
27 \EulaEnd
28 
29 \cond RNMAKE_DOXY
30  */
31 endif
32 #
33 ################################################################################
34 
35 _RULES_DPKG_MK = 1
36 
37 # Debian package install prefix
38 RNMAKE_DEB_PREFIX ?= /usr/local
39 
40 # Debian configuration directories for development, source, and documentation
41 DEB_CONF_DEV = $(RNMAKE_PKG_ROOT)/make/deb-dev
42 DEB_CONF_SRC = $(RNMAKE_PKG_ROOT)/make/deb-src
43 DEB_CONF_DOC = $(RNMAKE_PKG_ROOT)/make/deb-doc
44 
45 # Debian package file basenames for development, source, and documentation
46 DEB_PKG_DEV_NAME = $(RNMAKE_PKG)-dev-$(RNMAKE_PKG_VERSION_DOTTED)
47 DEB_PKG_SRC_NAME = $(RNMAKE_PKG)-src-$(RNMAKE_PKG_VERSION_DOTTED)
48 DEB_PKG_DOC_NAME = $(RNMAKE_PKG)-doc-$(RNMAKE_PKG_VERSION_DOTTED)
49 
50 # temporary staging directories
51 DISTDIR_TMP_DEB = $(DIST_ARCH)/tmp/deb
52 DISTDIR_TMP_DEB_DEV = $(DISTDIR_TMP_DEB)/$(DEB_PKG_DEV_NAME)
53 DISTDIR_TMP_DEB_SRC = $(DISTDIR_TMP_DEB)/$(DEB_PKG_SRC_NAME)
54 DISTDIR_TMP_DEB_DOC = $(DISTDIR_TMP_DEB)/$(DEB_PKG_DOC_NAME)
55 
56 # include tarball rules if not already included
57 ifeq ($(_RULES_TARBALL_MK),)
58  $(eval include $(RNMAKE_ROOT)/Rules.tarball.mk)
59 endif
60 
61 # include document rules if not already included
62 ifeq ($(_RULES_DOC_MK),)
63  $(eval include $(RNMAKE_ROOT)/Rules.doc.mk)
64 endif
65 
66 .PHONY: deb-pkgs
67 deb-pkgs: pkgbanner echo-deb-pkgs deb-pkg-dev deb-pkg-src deb-pkg-doc
68  $(footer)
69 
70 .PHONY: echo-deb-pkgs
71 echo-deb-pkgs:
72  $(call printEchoTgtGoalDesc,Make all Debian packages)
73 
74 .PHONY: deb-pkg-dev
75 deb-pkg-dev: pkgbanner all echo-deb-pkg-dev
76  $(if $(call isDir, $(DEB_CONF_DEV)),\
77  $(shell $(RNMAKE_ROOT)/utils/dpkg-helper.sh \
78  -a $(RNMAKE_ARCH) \
79  -c $(DEB_CONF_DEV) \
80  -d $(DIST_ARCH) \
81  -t $(DISTDIR_TMP_DEB_DEV) \
82  -n $(DEB_PKG_DEV_NAME) \
83  -p $(RNMAKE_DEB_PREFIX) \
84  -v $(RNMAKE_PKG_VERSION_DOTTED) \
85  -y pkgtype-dev \
86  1>&2 \
87  ),\
88  $(info Debian conf directory not found: $(DEB_CONF_DEV). Skipping $(DEB_PKG_DEV_NAME)))
89  $(footer)
90 
91 .PHONY: echo-deb-pkg-dev
92 echo-deb-pkg-dev:
93  $(call printEchoTgtGoalDesc,Making Debian development package)
94 
95 .PHONY: deb-pkg-src
96 deb-pkg-src: pkgbanner tarball-src echo-deb-pkg-src
97  $(if $(call isDir, $(DEB_CONF_SRC)),\
98  $(shell $(RNMAKE_ROOT)/utils/dpkg-helper.sh \
99  -a $(RNMAKE_ARCH) \
100  -c $(DEB_CONF_SRC) \
101  -d $(DIST_ARCH) \
102  -t $(DISTDIR_TMP_DEB_SRC) \
103  -n $(DEB_PKG_SRC_NAME) \
104  -p $(RNMAKE_DEB_PREFIX) \
105  -v $(RNMAKE_PKG_VERSION_DOTTED) \
106  -y pkgtype-src \
107  1>&2 \
108  ),\
109  $(info Debian conf directory not found: $(DEB_CONF_SRC). Skipping $(DEB_PKG_SRC_NAME)))
110  $(footer)
111 
112 .PHONY: echo-deb-pkg-src
113 echo-deb-pkg-src:
114  $(call printEchoTgtGoalDesc,Making Debian source package)
115 
116 .PHONY: deb-pkg-doc
117 deb-pkg-doc: pkgbanner documents echo-deb-pkg-doc
118  $(if $(call isDir, $(DEB_CONF_DOC)),\
119  $(shell $(RNMAKE_ROOT)/utils/dpkg-helper.sh \
120  -a $(RNMAKE_ARCH) \
121  -c $(DEB_CONF_DOC) \
122  -d $(DIST_ARCH) \
123  -t $(DISTDIR_TMP_DEB_DOC) \
124  -n $(DEB_PKG_DOC_NAME) \
125  -p $(RNMAKE_DEB_PREFIX) \
126  -v $(RNMAKE_PKG_VERSION_DOTTED) \
127  -y pkgtype-doc \
128  1>&2 \
129  ),\
130  $(info Debian conf directory not found: $(DEB_CONF_DOC). Skipping $(DEB_PKG_DOC_NAME)))
131  $(footer)
132 
133 .PHONY: echo-deb-pkg-doc
134 echo-deb-pkg-doc:
135  $(call printEchoTgtGoalDesc,Making Debian documentaion package)
136 
137 ifdef RNMAKE_DOXY
138 /*! \endcond RNMAKE_DOXY */
139 endif