endif
LIBLOC_CURRENT=1
-LIBLOC_REVISION=0
+LIBLOC_REVISION=2
LIBLOC_AGE=0
DISTCHECK_CONFIGURE_FLAGS = \
-e 's,@databasedir\@,$(databasedir),g' \
< $< > $@ || rm $@
+cron_dailydir = $(sysconfdir)/cron.daily
databasedir = $(localstatedir)/lib/location
pkgconfigdir = $(libdir)/pkgconfig
pkginclude_HEADERS = \
src/libloc/libloc.h \
+ src/libloc/address.h \
src/libloc/as.h \
src/libloc/as-list.h \
src/libloc/compat.h \
src_libloc_la_SOURCES = \
src/libloc.c \
+ src/address.c \
src/as.c \
src/as-list.c \
src/country.c \
src_libloc_internal_la_SOURCES = \
$(src_libloc_la_SOURCES)
-src_libloc_internal_la_CPPFLAGS = \
- $(src_libloc_la_CPPFLAGS)
-
src_libloc_internal_la_CFLAGS = \
$(src_libloc_la_CFLAGS)
src/libloc.pc
dist_pkgpython_PYTHON = \
- src/python/database.py \
- src/python/downloader.py \
- src/python/export.py \
- src/python/i18n.py \
- src/python/importer.py \
- src/python/logger.py
-
-pkgpython_PYTHON = \
- src/python/__init__.py
-
-EXTRA_DIST += \
- src/python/__init__.py.in
-
-CLEANFILES += \
- src/python/__init__.py
+ src/python/location/__init__.py \
+ src/python/location/database.py \
+ src/python/location/downloader.py \
+ src/python/location/export.py \
+ src/python/location/i18n.py \
+ src/python/location/importer.py \
+ src/python/location/logger.py
pyexec_LTLIBRARIES = \
src/python/_location.la
src/perl/t/Location.t \
src/perl/typemap
-.PHONY: build-perl
-build-perl:
+build-perl: src/libloc.la
@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/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)" \
+ cd $(builddir)/src/perl && $(PERL) Makefile.PL NO_PACKLIST=1 NO_PERLLOCAL=1 \
+ INSTALLDIRS=vendor \
INC="-I$(abs_srcdir)/src" LIBS="-L$(abs_builddir)/src/.libs -lloc"
- cd $(builddir)/src/perl && $(MAKE) LD_RUN_PATH=
+ cd $(builddir)/src/perl && $(MAKE)
+ touch build-perl
.PHONY: check-perl
-check-perl: testdata.db
+check-perl: testdata.db build-perl
cd $(builddir)/src/perl && $(MAKE) LD_LIBRARY_PATH="$(abs_builddir)/src/.libs" test \
database="../../$<" keyfile="$(abs_srcdir)/examples/public-key.pem"
.PHONY: install-perl
-install-perl:
- cd $(builddir)/src/perl && $(MAKE) install DESTIDR=$(DESTDIR)
+install-perl: build-perl
+ cd $(builddir)/src/perl && $(MAKE) install DESTDIR=$(DESTDIR)
.PHONY: clean-perl
clean-perl:
cd $(builddir)/src/perl && $(MAKE) distclean
+ rm -f build-perl
.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
+ rm -vf \
+ $(DESTDIR)/@PERL_MODPATH@/Location.pm \
+ $(DESTDIR)/@PERL_MODPATH@/auto/Location/Location.so \
+ $(DESTDIR)/@PERL_MANPATH@/Location.3pm
+ -rmdir $(DESTDIR)/@PERL_MODPATH@/auto/Location
bin_SCRIPTS = \
- src/python/location \
- src/python/location-importer
+ src/scripts/location \
+ src/scripts/location-importer
EXTRA_DIST += \
- src/python/location.in \
- src/python/location-importer.in
+ src/scripts/location.in \
+ src/scripts/location-importer.in
CLEANFILES += \
- src/python/location \
- src/python/location-importer
+ src/scripts/location \
+ src/scripts/location-importer
# ------------------------------------------------------------------------------
+# Use systemd timers if available
if HAVE_SYSTEMD
systemdsystemunit_DATA = \
src/systemd/location-update.service \
INSTALL_DIRS += \
$(systemdsystemunitdir)
+
+# Otherwise fall back to cron
+else
+cron_daily_SCRIPTS = \
+ src/cron/location-update
+
+CLEANFILES += \
+ $(cron_daily_DATA)
endif
EXTRA_DIST += \
+ src/cron/location-update.in \
src/systemd/location-update.service.in \
src/systemd/location-update.timer.in
# ------------------------------------------------------------------------------
dist_database_DATA = \
- src/signing-key.pem
+ data/database.db \
+ data/signing-key.pem
+
+install-data-hook:
+ chmod 444 $(DESTDIR)$(databasedir)/database.db
+
+.PHONY: update-database
+update-database:
+ curl https://location.ipfire.org/databases/1/location.db.xz | xz -d > data/database.db
# ------------------------------------------------------------------------------
src/libloc.la \
src/libloc-internal.la
+TESTS_ENVIRONMENT = \
+ PYTHONPATH=$(abs_srcdir)/src/python:$(abs_builddir)/src/python/.libs \
+ TEST_DATA_DIR="$(abs_top_srcdir)/data"
+
TESTS = \
- src/test-libloc \
- src/test-stringpool \
- src/test-database \
- src/test-as \
- src/test-network \
- src/test-country \
- src/test-signature
+ $(check_PROGRAMS) \
+ $(dist_check_SCRIPTS)
CLEANFILES += \
testdata.db
testdata.db: examples/python/create-database.py
- PYTHONPATH=$(abs_builddir)/src/python/.libs \
+ PYTHONPATH=$(abs_srcdir)/src/python:$(abs_builddir)/src/python/.libs \
ABS_SRCDIR="$(abs_srcdir)" \
$(PYTHON) $< $@
+dist_check_SCRIPTS = \
+ tests/python/test-database.py \
+ tests/python/test-export.py
+
check_PROGRAMS = \
src/test-libloc \
src/test-stringpool \
src/test-network \
src/test-network-list \
src/test-country \
- src/test-signature
+ src/test-signature \
+ src/test-address
src_test_libloc_SOURCES = \
src/test-libloc.c
src_test_signature_LDADD = \
$(TESTS_LDADD)
+src_test_address_SOURCES = \
+ src/test-address.c
+
+src_test_address_CFLAGS = \
+ $(TESTS_CFLAGS)
+
+src_test_address_LDADD = \
+ $(TESTS_LDADD)
+
# ------------------------------------------------------------------------------
MANPAGES = \
- man/location.8
-
-MANPAGES_TXT = $(patsubst %.8,%.txt,$(MANPAGES))
-MANPAGES_HTML = $(patsubst %.txt,%.html,$(MANPAGES_TXT))
-MANPAGES_XML = $(patsubst %.txt,%.xml,$(MANPAGES_TXT))
+ $(MANPAGES_3) \
+ $(MANPAGES_1)
+
+MANPAGES_3 = \
+ man/libloc.3 \
+ man/loc_database_count_as.3 \
+ man/loc_database_get_as.3 \
+ man/loc_database_get_country.3 \
+ man/loc_database_lookup.3 \
+ man/loc_database_new.3 \
+ man/loc_get_log_priority.3 \
+ man/loc_new.3 \
+ man/loc_set_log_fn.3 \
+ man/loc_set_log_priority.3
+
+MANPAGES_1 = \
+ man/location.1
+
+MANPAGES_TXT = $(MANPAGES_TXT_3) $(MANPAGES_TXT_1)
+MANPAGES_TXT_3 = $(patsubst %.3,%.txt,$(MANPAGES_3))
+MANPAGES_TXT_1 = $(patsubst %.1,%.txt,$(MANPAGES_1))
+MANPAGES_HTML = $(patsubst %.txt,%.html,$(MANPAGES_TXT))
+MANPAGES_XML = $(patsubst %.txt,%.xml,$(MANPAGES_TXT))
.PHONY: man
man: $(MANPAGES) $(MANPAGES_HTML)
-f $(abs_srcdir)/man/asciidoc.conf \
-d manpage -b docbook -o $@ $<
-man/%.8: man/%.xml
+man/%.3: man/%.xml
+ $(XSLTPROC_COMMAND_MAN)
+
+man/%.1: man/%.xml
$(XSLTPROC_COMMAND_MAN)
man/%.html: man/%.txt man/asciidoc.conf
EXTRA_DIST += \
debian/build.sh \
debian/changelog \
- debian/compat \
debian/control \
debian/copyright \
- debian/location.install \
- debian/location.manpages \
- debian/location-python.install \
+ debian/genchangelog.sh \
+ debian/gensymbols.sh \
debian/libloc1.install \
+ debian/libloc1.symbols \
debian/libloc-dev.install \
+ debian/location.install \
+ debian/location.postinst \
+ debian/location.postrm \
+ debian/python3-location.examples \
+ debian/python3-location.install \
debian/rules \
- debian/source/format
+ debian/source/format \
+ debian/watch
.PHONY: debian
debian: dist