Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

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}