gdp / Makefile @ master
History | View | Annotate | Download (5.97 KB)
1 |
# |
---|---|
2 |
# ----- BEGIN LICENSE BLOCK ----- |
3 |
# GDP: Global Data Plane |
4 |
# From the Ubiquitous Swarm Lab, 490 Cory Hall, U.C. Berkeley. |
5 |
# |
6 |
# Copyright (c) 2015-2019, Regents of the University of California. |
7 |
# All rights reserved. |
8 |
# |
9 |
# Permission is hereby granted, without written agreement and without |
10 |
# license or royalty fees, to use, copy, modify, and distribute this |
11 |
# software and its documentation for any purpose, provided that the above |
12 |
# copyright notice and the following two paragraphs appear in all copies |
13 |
# of this software. |
14 |
# |
15 |
# IN NO EVENT SHALL REGENTS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, |
16 |
# SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST |
17 |
# PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, |
18 |
# EVEN IF REGENTS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
19 |
# |
20 |
# REGENTS SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT |
21 |
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS |
22 |
# FOR A PARTICULAR PURPOSE. THE SOFTWARE AND ACCOMPANYING DOCUMENTATION, |
23 |
# IF ANY, PROVIDED HEREUNDER IS PROVIDED "AS IS". REGENTS HAS NO |
24 |
# OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, |
25 |
# OR MODIFICATIONS. |
26 |
# ----- END LICENSE BLOCK ----- |
27 |
# |
28 |
|
29 |
# DESTDIR is just for staging. LOCALROOT should be /usr or /usr/local. |
30 |
DESTDIR= |
31 |
LOCALROOT= /usr |
32 |
INSTALLROOT= ${DESTDIR}${LOCALROOT} |
33 |
DOCROOT= ${INSTALLROOT}/share/doc/gdp |
34 |
DOCDIR= ${DOCROOT}/`${ADM}/gdp-get-version.sh mm` |
35 |
CLEANEXTRA= gdp-client*.deb gdp-server*.deb gdp-python*.deb \ |
36 |
README*.html \ |
37 |
libs/*.a libs/*.so* libs/*.dylib \ |
38 |
|
39 |
all: all-nodoc |
40 |
|
41 |
all-nodoc: |
42 |
(cd ep && ${MAKE} all) |
43 |
(cd gdp && ${MAKE} all) |
44 |
(cd gdplogd && ${MAKE} all) |
45 |
(cd apps && ${MAKE} all) |
46 |
(cd util && ${MAKE} all) |
47 |
(cd examples && ${MAKE} all) |
48 |
(cd scgilib && ${MAKE} all) |
49 |
|
50 |
all-withdoc: all-nodoc |
51 |
(cd doc && ${MAKE} all) # needs pandoc |
52 |
|
53 |
all-clientonly: |
54 |
(cd ep && ${MAKE} all) |
55 |
(cd gdp && ${MAKE} all) |
56 |
(cd apps && ${MAKE} all) |
57 |
|
58 |
# Build without avahi, the zero-conf facility that |
59 |
# can be tricky to compile under Mac OS X. |
60 |
all_noavahi: |
61 |
(cd ep && ${MAKE} all) |
62 |
(cd gdp && ${MAKE} all_noavahi) |
63 |
(cd scgilib && ${MAKE} all) |
64 |
(cd gdplogd && ${MAKE} all_noavahi) |
65 |
(cd apps && ${MAKE} all_noavahi) |
66 |
(cd util && ${MAKE} all) |
67 |
(cd examples && ${MAKE} all_noavahi) |
68 |
|
69 |
clean: |
70 |
(cd doc && ${MAKE} clean) |
71 |
(cd ep && ${MAKE} clean) |
72 |
(cd gdp && ${MAKE} clean) |
73 |
(cd scgilib && ${MAKE} clean) |
74 |
(cd gdplogd && ${MAKE} clean) |
75 |
(cd apps && ${MAKE} clean) |
76 |
(cd util && ${MAKE} clean) |
77 |
(cd examples && ${MAKE} clean) |
78 |
rm -f ${CLEANEXTRA} |
79 |
|
80 |
# Install libraries needed to run (but not compile) applications |
81 |
# (FIXME: this installs static as well as shared libraries) |
82 |
install-lib: |
83 |
(cd ep && ${MAKE} install-lib DESTDIR=${DESTDIR} LOCALROOT=${LOCALROOT}) |
84 |
(cd gdp && ${MAKE} install-lib DESTDIR=${DESTDIR} LOCALROOT=${LOCALROOT}) |
85 |
|
86 |
install-include: |
87 |
(cd ep && ${MAKE} install-include DESTDIR=${DESTDIR} LOCALROOT=${LOCALROOT}) |
88 |
(cd gdp && ${MAKE} install-include DESTDIR=${DESTDIR} LOCALROOT=${LOCALROOT}) |
89 |
|
90 |
# Install code used by GDP-based application developers (including old names). |
91 |
# For the time being client installs include development files. |
92 |
install-dev-c install-client: install-include install-lib |
93 |
(cd gdp && ${MAKE} install DESTDIR=${DESTDIR} LOCALROOT=${LOCALROOT}) |
94 |
(cd apps && ${MAKE} install DESTDIR=${DESTDIR} LOCALROOT=${LOCALROOT}) |
95 |
|
96 |
# Install code used by the log server |
97 |
install-gdplogd: install-lib |
98 |
(cd gdplogd && ${MAKE} install DESTDIR=${DESTDIR} LOCALROOT=${LOCALROOT}) |
99 |
(cd util && ${MAKE} install DESTDIR=${DESTDIR} LOCALROOT=${LOCALROOT}) |
100 |
|
101 |
# Install all documentation |
102 |
install-doc: |
103 |
(cd doc && ${MAKE} install DESTDIR=${DESTDIR} LOCALROOT=${LOCALROOT}) |
104 |
mkdir -p ${DOCDIR} |
105 |
cp -rp examples ${DOCDIR} |
106 |
|
107 |
# Used only for language installs (???) |
108 |
install-local: |
109 |
(cd ep && ${MAKE} install-local DESTDIR=${DESTDIR} LOCALROOT=${LOCALROOT}) |
110 |
(cd gdp && ${MAKE} install-local DESTDIR=${DESTDIR} LOCALROOT=${LOCALROOT}) |
111 |
|
112 |
# Split it into sub-targets to mimic our distribution, also |
113 |
# used by the debian packaging scripts. So if you change it here, |
114 |
# make sure you don't break the packaging. |
115 |
install: install-dev-c install-gdplogd install-doc |
116 |
|
117 |
GDPROOT= ~gdp |
118 |
GDPALL= adm/start-* \ |
119 |
adm/run-* \ |
120 |
apps/gcl-create \ |
121 |
apps/gdp-rest \ |
122 |
apps/gdp-reader \ |
123 |
apps/gdp-writer \ |
124 |
gdplogd/gdplogd \ |
125 |
|
126 |
CSRCS= ep/*.[ch] \ |
127 |
gdp/*.[ch] \ |
128 |
gdplogd/*.[ch] \ |
129 |
scgilib/scgilib.[ch] \ |
130 |
apps/*.[ch] \ |
131 |
|
132 |
CTAGS= ctags |
133 |
|
134 |
tags: .FORCE |
135 |
${CTAGS} ${CSRCS} |
136 |
|
137 |
.FORCE: |
138 |
|
139 |
# Install Python interface in system paths. Optional (including old name) |
140 |
install-dev-python install-python: install-dev-c |
141 |
(cd lang/python && $(MAKE) install) |
142 |
|
143 |
# Build the Java interface to the GDP. Optional for the GDP per se. |
144 |
all_Java: |
145 |
(cd lang/java && ${MAKE} clean all) |
146 |
|
147 |
install_Java: |
148 |
(cd lang/java && ${MAKE} clean install) |
149 |
|
150 |
clean_Java: |
151 |
(cd lang/java && ${MAKE} clean) |
152 |
|
153 |
# Build the Node.js/JavaScript GDP accessing apps and the Node.js/JS |
154 |
# RESTful GDP interface. Optional for the GDP per se. |
155 |
all_JavaScript: |
156 |
(cd lang/js && ${MAKE} clean all) |
157 |
|
158 |
clean_JavaScript: |
159 |
(cd lang/js && ${MAKE} clean) |
160 |
|
161 |
# Build the debian-style package. Must be done on the oldest system |
162 |
# around because of dependencies. |
163 |
|
164 |
debian-package: all |
165 |
adm/deb-pkg/client/package.sh |
166 |
adm/deb-pkg/server/package.sh |
167 |
lang/python/deb-pkg/package.sh |
168 |
|
169 |
|
170 |
ADM= adm |
171 |
UPDATE_LICENSE= ${ADM}/update-license.sh |
172 |
GET_VERSION_INFO= ${ADM}/get-version-info.sh |
173 |
|
174 |
update-license: |
175 |
${UPDATE_LICENSE} Makefile *.[ch] |
176 |
(cd ep && ${MAKE} update-license) |
177 |
(cd gdp && ${MAKE} update-license) |
178 |
(cd gdplogd && ${MAKE} update-license) |
179 |
(cd apps && ${MAKE} update-license) |
180 |
(cd doc && ${MAKE} update-license) |
181 |
(cd lang && ${MAKE} update-license) |
182 |
(cd test && ${MAKE} update-license) |
183 |
(cd examples && ${MAKE} update-license) |
184 |
(cd util && ${MAKE} update-license) |
185 |
|
186 |
git-version.txt: .FORCE |
187 |
${GET_VERSION_INFO} > /dev/null |
188 |
|
189 |
# Not made by default |
190 |
READMES_HTML= \ |
191 |
README.html \ |
192 |
README-admin.html \ |
193 |
README-CAAPI.html \ |
194 |
README-compiling.html \ |
195 |
README-deb.html \ |
196 |
README-developers.html \ |
197 |
|
198 |
PANDOC= pandoc |
199 |
PANFLAGS= -s -c doc/gdpdoc.css |
200 |
|
201 |
.SUFFIXES: .md .html |
202 |
|
203 |
.md.html: |
204 |
${PANDOC} ${PANFLAGS} -o $@ $< |
205 |
|
206 |
README_html: ${READMES_HTML} |