]> git.ipfire.org Git - people/ms/libloc.git/blobdiff - Makefile.am
Make package compile on Mac OS X
[people/ms/libloc.git] / Makefile.am
index eddef93bc4f8bca952fad0f5e67cb0dae9610339..be8d94c08bf2172444aba54be90c83a58d47c9b5 100644 (file)
@@ -3,6 +3,13 @@ CLEANFILES =
 ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
 AM_MAKEFLAGS = --no-print-directory
 
+SUBDIRS = . po
+BINDINGS =
+
+if ENABLE_PERL
+BINDINGS += perl
+endif
+
 AM_CPPFLAGS = \
        -include $(top_builddir)/config.h \
        -DSYSCONFDIR=\""$(sysconfdir)"\" \
@@ -27,17 +34,42 @@ SED_PROCESS = \
        -e 's,@exec_prefix\@,$(exec_prefix),g' \
        -e 's,@libdir\@,$(libdir),g' \
        -e 's,@includedir\@,$(includedir),g' \
+       -e 's,@databasedir\@,$(databasedir),g' \
        < $< > $@ || rm $@
 
-pythondir    = $(pyexecdir)
+databasedir = $(datadir)/location
 pkgconfigdir = $(libdir)/pkgconfig
 
-%.pc: %.pc.in Makefile
+%: %.in Makefile
        $(SED_PROCESS)
 
+@INTLTOOL_POLICY_RULE@
+
+# ------------------------------------------------------------------------------
+
+AM_V_ASCIIDOC   = $(AM_V_ASCIIDOC_$(V))
+AM_V_ASCIIDOC_  = $(AM_V_ASCIIDOC_$(AM_DEFAULT_VERBOSITY))
+AM_V_ASCIIDOC_0 = @echo "  ASCIIDOC" $@;
+
+AM_V_XSLT   = $(AM_V_XSLT_$(V))
+AM_V_XSLT_  = $(AM_V_XSLT_$(AM_DEFAULT_VERBOSITY))
+AM_V_XSLT_0 = @echo "  XSLT    " $@;
+
+# ------------------------------------------------------------------------------
+
+.PHONY: update-po
+update-po:
+       $(MAKE) -C po update-po
+
+EXTRA_DIST += \
+       examples/python/create-database.py \
+       examples/python/read-database.py
+
 pkginclude_HEADERS = \
        src/loc/libloc.h \
        src/loc/as.h \
+       src/loc/compat.h \
+       src/loc/country.h \
        src/loc/database.h \
        src/loc/format.h \
        src/loc/network.h \
@@ -51,6 +83,7 @@ lib_LTLIBRARIES = \
 src_libloc_la_SOURCES = \
        src/libloc.c \
        src/as.c \
+       src/country.c \
        src/database.c \
        src/network.c \
        src/stringpool.c \
@@ -60,6 +93,7 @@ EXTRA_DIST += src/libloc.sym
 
 src_libloc_la_CFLAGS = \
        $(AM_CFLAGS) \
+       -DLIBLOC_PRIVATE \
        -fvisibility=hidden
 
 src_libloc_la_LDFLAGS = \
@@ -79,13 +113,22 @@ EXTRA_DIST += \
 CLEANFILES += \
        src/libloc.pc
 
-pkgpyexec_LTLIBRARIES = \
+pyexec_LTLIBRARIES = \
        src/python/location.la
 
 src_python_location_la_SOURCES = \
        src/python/locationmodule.c \
+       src/python/locationmodule.h \
+       src/python/as.c \
+       src/python/as.h \
+       src/python/country.c \
+       src/python/country.h \
        src/python/database.c \
-       src/python/database.h
+       src/python/database.h \
+       src/python/network.c \
+       src/python/network.h \
+       src/python/writer.c \
+       src/python/writer.h
 
 src_python_location_la_CFLAGS = \
        $(AM_CFLAGS) \
@@ -101,46 +144,203 @@ src_python_location_la_LIBADD = \
        src/libloc.la \
        $(PYTHON_LIBS)
 
+# Compile & install bindings
+all-local: $(foreach binding,$(BINDINGS),build-$(binding))
+check-local: $(foreach binding,$(BINDINGS),check-$(binding))
+install-exec-local: $(foreach binding,$(BINDINGS),install-$(binding))
+clean-local: $(foreach binding,$(BINDINGS),clean-$(binding))
+uninstall-local: $(foreach binding,$(BINDINGS),uninstall-$(binding))
+
+# Perl Bindings
+EXTRA_DIST += \
+       src/perl/.gitignore \
+       src/perl/Location.xs \
+       src/perl/MANIFEST \
+       src/perl/Makefile.PL \
+       src/perl/lib/Location.pm \
+       src/perl/t/Location.t \
+       src/perl/typemap
+
+.PHONY: build-perl
+build-perl:
+       @mkdir -p $(builddir)/src/perl/{lib,t}
+       @test -e $(builddir)/src/perl/Location.xs || ln -s --relative $(srcdir)/src/perl/Location.xs $(builddir)/src/perl/
+       @test -e $(builddir)/src/perl/MANIFEST || ln -s --relative $(srcdir)/src/perl/MANIFEST $(builddir)/src/perl/
+       @test -e $(builddir)/src/perl/Makefile.PL || ln -s --relative $(srcdir)/src/perl/Makefile.PL $(builddir)/src/perl/
+       @test -e $(builddir)/src/perl/lib/Location.pm || ln -s --relative $(srcdir)/src/perl/lib/Location.pm $(builddir)/src/perl/lib/
+       @test -e $(builddir)/src/perl/t/Location.t || ln -s --relative $(srcdir)/src/perl/t/Location.t $(builddir)/src/perl/t/
+       @test -e $(builddir)/src/perl/typemap || ln -s --relative $(srcdir)/src/perl/typemap $(builddir)/src/perl/
+
+       cd $(builddir)/src/perl && $(PERL) Makefile.PL PREFIX="$(prefix)" \
+               INC="-I$(abs_srcdir)/src" LIBS="-L$(abs_builddir)/src/.libs -lloc"
+       cd $(builddir)/src/perl && $(MAKE)
+
+.PHONY: check-perl
+check-perl: testdata.db
+       cd $(builddir)/src/perl && $(MAKE) test database="../../$<"
+
+.PHONY: install-perl
+install-perl:
+       cd $(builddir)/src/perl && $(MAKE) install
+
+.PHONY: clean-perl
+clean-perl:
+       cd $(builddir)/src/perl && $(MAKE) distclean
+
+.PHONY: uninstall-perl
+uninstall-perl:
+       rm -rvf \
+               $(DESTDIR)/$(prefix)/lib/*/perl/*/Location.pm \
+               $(DESTDIR)/$(prefix)/lib/*/perl/*/auto/Location \
+               $(DESTDIR)/$(prefix)/lib/*/perl/*/perllocal.pod \
+               $(DESTDIR)/$(prefix)/man/man3/Location.3pm
+
+bin_SCRIPTS = \
+       src/python/location-query
+
+EXTRA_DIST += \
+       src/python/location-query.in
+
+CLEANFILES += \
+       src/python/location-query
+
+# ------------------------------------------------------------------------------
+
+TESTS_CFLAGS = \
+       $(AM_CFLAGS) \
+       -DLIBLOC_PRIVATE
+
 TESTS = \
        src/test-libloc \
        src/test-stringpool \
        src/test-database \
        src/test-as \
-       src/test-network
+       src/test-network \
+       src/test-country
+
+CLEANFILES += \
+       test.db \
+       testdata.db
+
+testdata.db: examples/python/create-database.py
+       PYTHONPATH=$(abs_builddir)/src/python/.libs $(PYTHON) $< $@
 
 check_PROGRAMS = \
        src/test-libloc \
        src/test-stringpool \
        src/test-database \
        src/test-as \
-       src/test-network
+       src/test-network \
+       src/test-country
 
 src_test_libloc_SOURCES = \
        src/test-libloc.c
 
+src_test_libloc_CFLAGS = \
+       $(TESTS_CFLAGS)
+
 src_test_libloc_LDADD = \
        src/libloc.la
 
 src_test_as_SOURCES = \
        src/test-as.c
 
+src_test_as_CFLAGS = \
+       $(TESTS_CFLAGS)
+
 src_test_as_LDADD = \
        src/libloc.la
 
+src_test_country_SOURCES = \
+       src/test-country.c
+
+src_test_country_CFLAGS = \
+       $(TESTS_CFLAGS)
+
+src_test_country_LDADD = \
+       src/libloc.la
+
 src_test_network_SOURCES = \
        src/test-network.c
 
+src_test_network_CFLAGS = \
+       $(TESTS_CFLAGS)
+
 src_test_network_LDADD = \
        src/libloc.la
 
 src_test_stringpool_SOURCES = \
        src/test-stringpool.c
 
+src_test_stringpool_CFLAGS = \
+       $(TESTS_CFLAGS)
+
 src_test_stringpool_LDADD = \
        src/libloc.la
 
 src_test_database_SOURCES = \
        src/test-database.c
 
+src_test_database_CFLAGS = \
+       $(TESTS_CFLAGS)
+
 src_test_database_LDADD = \
        src/libloc.la
+
+# ------------------------------------------------------------------------------
+
+MANPAGES = \
+       man/location-query.8
+
+MANPAGES_TXT  = $(patsubst %.8,%.txt,$(MANPAGES))
+MANPAGES_HTML = $(patsubst %.txt,%.html,$(MANPAGES_TXT))
+MANPAGES_XML  = $(patsubst %.txt,%.xml,$(MANPAGES_TXT))
+
+.PHONY: man
+man: $(MANPAGES) $(MANPAGES_HTML)
+
+if ENABLE_MANPAGES
+man_MANS = \
+       $(MANPAGES)
+endif
+
+CLEANFILES += \
+       $(MANPAGES) \
+       $(MANPAGES_HTML) \
+       $(MANPAGES_XML)
+
+EXTRA_DIST += \
+       man/asciidoc.conf \
+       $(MANPAGES_TXT)
+
+XSLTPROC_FLAGS = \
+       --nonet \
+       --stringparam man.output.quietly 1 \
+       --stringparam funcsynopsis.style ansi \
+       --stringparam man.th.extra1.suppress 1 \
+       --stringparam man.authors.section.enabled 1 \
+       --stringparam man.copyright.section.enabled 1
+
+XSLTPROC_COMMAND_MAN = \
+       $(AM_V_XSLT)$(MKDIR_P) $(dir $@) && \
+       $(XSLTPROC) -o $@ $(XSLTPROC_FLAGS) \
+               http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
+
+man/%.xml: man/%.txt man/asciidoc.conf
+       $(AM_V_ASCIIDOC)$(MKDIR_P) $(dir $@) && \
+       $(ASCIIDOC) \
+               -f $(abs_srcdir)/man/asciidoc.conf \
+               -d manpage -b docbook -o $@ $<
+
+man/%.8: man/%.xml
+       $(XSLTPROC_COMMAND_MAN)
+
+man/%.html: man/%.txt man/asciidoc.conf
+       $(AM_V_ASCIIDOC)$(MKDIR_P) $(dir $@) && \
+       $(ASCIIDOC) \
+               -f $(abs_srcdir)/man/asciidoc.conf \
+               -b html5 -a icons -a theme=flask -o $@ $<
+
+.PHONY: upload-man
+upload-man: $(MANPAGES_HTML)
+       rsync -avHz --delete --progress $(MANPAGES_HTML) ms@fs01.haj.ipfire.org:/pub/man-pages/$(PACKAGE_NAME)/