]> git.ipfire.org Git - people/ms/libloc.git/blame_incremental - Makefile.am
python: Use shorthand function to export __version__
[people/ms/libloc.git] / Makefile.am
... / ...
CommitLineData
1EXTRA_DIST =
2CLEANFILES =
3ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
4AM_MAKEFLAGS = --no-print-directory
5
6SUBDIRS = . po
7BINDINGS =
8
9if ENABLE_PERL
10BINDINGS += perl
11endif
12
13AM_CPPFLAGS = \
14 -include $(top_builddir)/config.h \
15 -DSYSCONFDIR=\""$(sysconfdir)"\" \
16 -I${top_srcdir}/src
17
18AM_CFLAGS = ${my_CFLAGS} \
19 -ffunction-sections \
20 -fdata-sections
21
22AM_LDFLAGS = \
23 -Wl,--gc-sections \
24 -Wl,--as-needed
25
26LIBLOC_CURRENT=0
27LIBLOC_REVISION=0
28LIBLOC_AGE=0
29
30SED_PROCESS = \
31 $(AM_V_GEN)$(MKDIR_P) $(dir $@) && $(SED) \
32 -e 's,@VERSION\@,$(VERSION),g' \
33 -e 's,@prefix\@,$(prefix),g' \
34 -e 's,@exec_prefix\@,$(exec_prefix),g' \
35 -e 's,@libdir\@,$(libdir),g' \
36 -e 's,@includedir\@,$(includedir),g' \
37 -e 's,@databasedir\@,$(databasedir),g' \
38 < $< > $@ || rm $@
39
40databasedir = $(datadir)/location
41pkgconfigdir = $(libdir)/pkgconfig
42
43%: %.in Makefile
44 $(SED_PROCESS)
45
46@INTLTOOL_POLICY_RULE@
47
48# ------------------------------------------------------------------------------
49
50AM_V_ASCIIDOC = $(AM_V_ASCIIDOC_$(V))
51AM_V_ASCIIDOC_ = $(AM_V_ASCIIDOC_$(AM_DEFAULT_VERBOSITY))
52AM_V_ASCIIDOC_0 = @echo " ASCIIDOC" $@;
53
54AM_V_XSLT = $(AM_V_XSLT_$(V))
55AM_V_XSLT_ = $(AM_V_XSLT_$(AM_DEFAULT_VERBOSITY))
56AM_V_XSLT_0 = @echo " XSLT " $@;
57
58# ------------------------------------------------------------------------------
59
60.PHONY: update-po
61update-po:
62 $(MAKE) -C po update-po
63
64EXTRA_DIST += \
65 examples/python/create-database.py \
66 examples/python/read-database.py
67
68pkginclude_HEADERS = \
69 src/loc/libloc.h \
70 src/loc/as.h \
71 src/loc/database.h \
72 src/loc/format.h \
73 src/loc/network.h \
74 src/loc/private.h \
75 src/loc/stringpool.h \
76 src/loc/writer.h
77
78lib_LTLIBRARIES = \
79 src/libloc.la
80
81src_libloc_la_SOURCES = \
82 src/libloc.c \
83 src/as.c \
84 src/database.c \
85 src/network.c \
86 src/stringpool.c \
87 src/writer.c
88
89EXTRA_DIST += src/libloc.sym
90
91src_libloc_la_CFLAGS = \
92 $(AM_CFLAGS) \
93 -DLIBLOC_PRIVATE \
94 -fvisibility=hidden
95
96src_libloc_la_LDFLAGS = \
97 $(AM_LDFLAGS) \
98 -version-info $(LIBLOC_CURRENT):$(LIBLOC_REVISION):$(LIBLOC_AGE) \
99 -Wl,--version-script=$(top_srcdir)/src/libloc.sym
100
101src_libloc_la_DEPENDENCIES = \
102 ${top_srcdir}/src/libloc.sym
103
104pkgconfig_DATA = \
105 src/libloc.pc
106
107EXTRA_DIST += \
108 src/libloc.pc.in
109
110CLEANFILES += \
111 src/libloc.pc
112
113pyexec_LTLIBRARIES = \
114 src/python/location.la
115
116src_python_location_la_SOURCES = \
117 src/python/locationmodule.c \
118 src/python/locationmodule.h \
119 src/python/as.c \
120 src/python/as.h \
121 src/python/database.c \
122 src/python/database.h \
123 src/python/network.c \
124 src/python/network.h \
125 src/python/writer.c \
126 src/python/writer.h
127
128src_python_location_la_CFLAGS = \
129 $(AM_CFLAGS) \
130 $(PYTHON_CFLAGS)
131
132src_python_location_la_LDFLAGS = \
133 $(AM_LDFLAGS) \
134 -shared \
135 -module \
136 -avoid-version
137
138src_python_location_la_LIBADD = \
139 src/libloc.la \
140 $(PYTHON_LIBS)
141
142# Compile & install bindings
143all-local: $(foreach binding,$(BINDINGS),build-$(binding))
144check-local: $(foreach binding,$(BINDINGS),check-$(binding))
145install-exec-local: $(foreach binding,$(BINDINGS),install-$(binding))
146clean-local: $(foreach binding,$(BINDINGS),clean-$(binding))
147uninstall-local: $(foreach binding,$(BINDINGS),uninstall-$(binding))
148
149# Perl Bindings
150EXTRA_DIST += \
151 src/perl/.gitignore \
152 src/perl/Location.xs \
153 src/perl/MANIFEST \
154 src/perl/Makefile.PL \
155 src/perl/lib/Location.pm \
156 src/perl/t/Location.t \
157 src/perl/typemap
158
159.PHONY: build-perl
160build-perl:
161 @mkdir -p $(builddir)/src/perl/{lib,t}
162 @test -e $(builddir)/src/perl/Location.xs || ln -s --relative $(srcdir)/src/perl/Location.xs $(builddir)/src/perl/
163 @test -e $(builddir)/src/perl/MANIFEST || ln -s --relative $(srcdir)/src/perl/MANIFEST $(builddir)/src/perl/
164 @test -e $(builddir)/src/perl/Makefile.PL || ln -s --relative $(srcdir)/src/perl/Makefile.PL $(builddir)/src/perl/
165 @test -e $(builddir)/src/perl/lib/Location.pm || ln -s --relative $(srcdir)/src/perl/lib/Location.pm $(builddir)/src/perl/lib/
166 @test -e $(builddir)/src/perl/t/Location.t || ln -s --relative $(srcdir)/src/perl/t/Location.t $(builddir)/src/perl/t/
167 @test -e $(builddir)/src/perl/typemap || ln -s --relative $(srcdir)/src/perl/typemap $(builddir)/src/perl/
168
169 cd $(builddir)/src/perl && $(PERL) Makefile.PL PREFIX="$(prefix)" \
170 INC="-I$(abs_srcdir)/src" LIBS="-L$(abs_builddir)/src/.libs -lloc"
171 cd $(builddir)/src/perl && $(MAKE)
172
173.PHONY: check-perl
174check-perl: testdata.db
175 cd $(builddir)/src/perl && $(MAKE) test database="../../$<"
176
177.PHONY: install-perl
178install-perl:
179 cd $(builddir)/src/perl && $(MAKE) install
180
181.PHONY: clean-perl
182clean-perl:
183 cd $(builddir)/src/perl && $(MAKE) distclean
184
185.PHONY: uninstall-perl
186uninstall-perl:
187 rm -rvf \
188 $(DESTDIR)/$(prefix)/lib/*/perl/*/Location.pm \
189 $(DESTDIR)/$(prefix)/lib/*/perl/*/auto/Location \
190 $(DESTDIR)/$(prefix)/lib/*/perl/*/perllocal.pod \
191 $(DESTDIR)/$(prefix)/man/man3/Location.3pm
192
193bin_SCRIPTS = \
194 src/python/location-query
195
196EXTRA_DIST += \
197 src/python/location-query.in
198
199CLEANFILES += \
200 src/python/location-query
201
202# ------------------------------------------------------------------------------
203
204TESTS_CFLAGS = \
205 $(AM_CFLAGS) \
206 -DLIBLOC_PRIVATE
207
208TESTS = \
209 src/test-libloc \
210 src/test-stringpool \
211 src/test-database \
212 src/test-as \
213 src/test-network
214
215CLEANFILES += \
216 test.db \
217 testdata.db
218
219testdata.db: examples/python/create-database.py
220 PYTHONPATH=$(abs_builddir)/src/python/.libs $(PYTHON) $< $@
221
222check_PROGRAMS = \
223 src/test-libloc \
224 src/test-stringpool \
225 src/test-database \
226 src/test-as \
227 src/test-network
228
229src_test_libloc_SOURCES = \
230 src/test-libloc.c
231
232src_test_libloc_CFLAGS = \
233 $(TESTS_CFLAGS)
234
235src_test_libloc_LDADD = \
236 src/libloc.la
237
238src_test_as_SOURCES = \
239 src/test-as.c
240
241src_test_as_CFLAGS = \
242 $(TESTS_CFLAGS)
243
244src_test_as_LDADD = \
245 src/libloc.la
246
247src_test_network_SOURCES = \
248 src/test-network.c
249
250src_test_network_CFLAGS = \
251 $(TESTS_CFLAGS)
252
253src_test_network_LDADD = \
254 src/libloc.la
255
256src_test_stringpool_SOURCES = \
257 src/test-stringpool.c
258
259src_test_stringpool_CFLAGS = \
260 $(TESTS_CFLAGS)
261
262src_test_stringpool_LDADD = \
263 src/libloc.la
264
265src_test_database_SOURCES = \
266 src/test-database.c
267
268src_test_database_CFLAGS = \
269 $(TESTS_CFLAGS)
270
271src_test_database_LDADD = \
272 src/libloc.la
273
274# ------------------------------------------------------------------------------
275
276MANPAGES = \
277 man/location-query.8
278
279MANPAGES_TXT = $(patsubst %.8,%.txt,$(MANPAGES))
280MANPAGES_HTML = $(patsubst %.txt,%.html,$(MANPAGES_TXT))
281MANPAGES_XML = $(patsubst %.txt,%.xml,$(MANPAGES_TXT))
282
283.PHONY: man
284man: $(MANPAGES) $(MANPAGES_HTML)
285
286if ENABLE_MANPAGES
287man_MANS = \
288 $(MANPAGES)
289endif
290
291CLEANFILES += \
292 $(MANPAGES) \
293 $(MANPAGES_HTML) \
294 $(MANPAGES_XML)
295
296EXTRA_DIST += \
297 man/asciidoc.conf \
298 $(MANPAGES_TXT)
299
300XSLTPROC_FLAGS = \
301 --nonet \
302 --stringparam man.output.quietly 1 \
303 --stringparam funcsynopsis.style ansi \
304 --stringparam man.th.extra1.suppress 1 \
305 --stringparam man.authors.section.enabled 1 \
306 --stringparam man.copyright.section.enabled 1
307
308XSLTPROC_COMMAND_MAN = \
309 $(AM_V_XSLT)$(MKDIR_P) $(dir $@) && \
310 $(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) \
311 http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
312
313man/%.xml: man/%.txt man/asciidoc.conf
314 $(AM_V_ASCIIDOC)$(MKDIR_P) $(dir $@) && \
315 $(ASCIIDOC) \
316 -f $(abs_srcdir)/man/asciidoc.conf \
317 -d manpage -b docbook -o $@ $<
318
319man/%.8: man/%.xml
320 $(XSLTPROC_COMMAND_MAN)
321
322man/%.html: man/%.txt man/asciidoc.conf
323 $(AM_V_ASCIIDOC)$(MKDIR_P) $(dir $@) && \
324 $(ASCIIDOC) \
325 -f $(abs_srcdir)/man/asciidoc.conf \
326 -b html5 -a icons -a theme=flask -o $@ $<
327
328.PHONY: upload-man
329upload-man: $(MANPAGES_HTML)
330 rsync -avHz --delete --progress $(MANPAGES_HTML) ms@fs01.haj.ipfire.org:/pub/man-pages/$(PACKAGE_NAME)/