-JSON11_LIBS = $(top_srcdir)/ext/json11/libjson11.la
-PROBDS_LIBS = $(top_srcdir)/ext/probds/libprobds.la
-ARC4RANDOM_LIBS = $(top_srcdir)/ext/arc4random/libarc4random.la
-RUST_LIBS = $(top_srcdir)/settings/rust/libsettings.a $(LIBDL)
+JSON11_LIBS = $(top_builddir)/ext/json11/libjson11.la
+PROBDS_LIBS = $(top_builddir)/ext/probds/libprobds.la
+ARC4RANDOM_LIBS = $(top_builddir)/ext/arc4random/libarc4random.la
+RUST_LIBS = $(top_builddir)/settings/rust/libsettings.a $(LIBDL)
AM_CPPFLAGS = $(LUA_CFLAGS) $(YAHTTP_CFLAGS) $(BOOST_CPPFLAGS) $(LIBSODIUM_CFLAGS) $(NET_SNMP_CFLAGS) $(LIBCAP_CFLAGS) $(SANITIZER_FLAGS) -O3 -Wall -pthread -DSYSCONFDIR=\"${sysconfdir}\" $(SYSTEMD_CFLAGS)
AM_CPPFLAGS += \
-I$(top_srcdir)/ext/json11 \
-I$(top_srcdir)/ext/protozero/include \
+ -I$(top_srcdir)/settings \
+ -I$(top_builddir)/settings \
$(YAHTTP_CFLAGS) \
$(LIBCRYPTO_INCLUDES) \
-DBOOST_CONTAINER_USE_STD_EXCEPTIONS
CLEANFILES = htmlfiles.h \
recursor.conf-dist recursor.yml-dist
-htmlfiles.h: incfiles html/* html/js/*
- ./incfiles > $@
+htmlfiles.h: incfiles ${srcdir}/html/* ${srcdir}/html/js/*
+ $(AM_V_GEN)$(srcdir)/incfiles > $@.tmp
+ @mv $@.tmp $@
# We explicitly build settings in two steps, as settings modifies files in the settings/rust subdir
SUBDIRS=ext settings settings/rust
$(curl_verbose)if ! curl -s -S https://publicsuffix.org/list/public_suffix_list.dat > $@; then rm -f $@; exit 1; fi
pubsuffix.cc: $(srcdir)/effective_tld_names.dat
- $(AM_V_GEN)./mkpubsuffixcc
+ $(srcdir)/mkpubsuffixcc $< $@
## Config file
sysconf_DATA = recursor.conf-dist recursor.yml-dist
if HAVE_VENV
if !HAVE_MANPAGES
$(MANPAGES): %: docs/manpages/%.rst .venv
- .venv/bin/python -msphinx -b man docs . $<
+ $(builddir)/.venv/bin/python -msphinx -b man "$(srcdir)/docs" "$(builddir)" $<
endif # if !HAVE_MANPAGES
.venv: docs/requirements.txt
$(PYTHON) -m venv .venv
.venv/bin/pip install -U pip setuptools setuptools-git wheel
- .venv/bin/pip install -r docs/requirements.txt
+ .venv/bin/pip install -r ${top_srcdir}/docs/requirements.txt
html-docs: docs/** .venv
.venv/bin/python -msphinx -b html docs html-docs
# should actually end up in a target specific dir...
libsettings.a lib.rs.h: src/bridge.rs src/lib.rs src/helpers.rs Cargo.toml Cargo.lock build.rs
- SYSCONFDIR=$(sysconfdir) NODCACHEDIRNOD=$(localstatedir)/nod NODCACHEDIRUDR=$(localstatedir)/udr $(CARGO) build --release $(RUST_TARGET)
+ SYSCONFDIR=$(sysconfdir) NODCACHEDIRNOD=$(localstatedir)/nod NODCACHEDIRUDR=$(localstatedir)/udr $(CARGO) build --release $(RUST_TARGET) --target-dir=$(builddir)/target --manifest-path ${srcdir}/Cargo.toml
cp target/$(RUSTC_TARGET_ARCH)/release/libsettings.a libsettings.a
cp target/$(RUSTC_TARGET_ARCH)/cxxbridge/settings/src/lib.rs.h lib.rs.h
cp target/$(RUSTC_TARGET_ARCH)/cxxbridge/rust/cxx.h cxx.h