endif
LIBLOC_CURRENT=1
-LIBLOC_REVISION=1
+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
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 \
- src/test-address
+ $(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 \
MANPAGES = \
$(MANPAGES_3) \
- $(MANPAGES_8)
+ $(MANPAGES_1)
MANPAGES_3 = \
man/libloc.3 \
man/loc_set_log_fn.3 \
man/loc_set_log_priority.3
-MANPAGES_8 = \
- man/location.8
+MANPAGES_1 = \
+ man/location.1
-MANPAGES_TXT = $(MANPAGES_TXT_3) $(MANPAGES_TXT_8)
+MANPAGES_TXT = $(MANPAGES_TXT_3) $(MANPAGES_TXT_1)
MANPAGES_TXT_3 = $(patsubst %.3,%.txt,$(MANPAGES_3))
-MANPAGES_TXT_8 = $(patsubst %.8,%.txt,$(MANPAGES_8))
+MANPAGES_TXT_1 = $(patsubst %.1,%.txt,$(MANPAGES_1))
MANPAGES_HTML = $(patsubst %.txt,%.html,$(MANPAGES_TXT))
MANPAGES_XML = $(patsubst %.txt,%.xml,$(MANPAGES_TXT))
man/%.3: man/%.xml
$(XSLTPROC_COMMAND_MAN)
-man/%.8: man/%.xml
+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