File: Makefile.am

package info (click to toggle)
pdns-recursor 5.3.4-2
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 11,116 kB
  • sloc: cpp: 109,672; javascript: 20,651; python: 5,657; sh: 5,114; makefile: 782; ansic: 582; xml: 37
file content (33 lines) | stat: -rw-r--r-- 1,526 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# It's a bit dirty that this Makefile also generates a file inside rust/src (lib.rs). 

EXTRA_DIST = \
	cxxsettings-generated.cc \
	cxxsettings-private.hh \
	cxxsettings.hh \
	docs-new-preamble-in.rst \
	docs-old-preamble-in.rst \
	generate.py \
	rust-bridge-in.rs \
	rust-preamble-in.rs \
	table.py \
	rust/src/bridge.hh \
	rust/src/lib.rs

all: cxxsettings-generated.cc rust/src/lib.rs

BUILT_SOURCES=cxxsettings-generated.cc rust/src/lib.rs

# We need to clean in the Rust dir, as in some cases the Serde/CXX derive/generate code does not get
# re-run by cargo after rust/src/lib.rs changed because of a generate.py run. In that case we end up
# with an rust/src/lib.rs.h that does not contain e.g. field name or field type changes. This
# cleanup is now done from generate.py itself.
#
# Use patterns to avoid having two instances of generate run simultaneously, a well-known hack for GNU make
cxxsettings-generated%cc rust/src/lib%rs: table.py generate.py rust-preamble-in.rs rust-bridge-in.rs docs-old-preamble-in.rst docs-new-preamble-in.rst
	@if test "$(PYTHON)" = ":"; then echo "Settings table table.py has changed, python is needed to regenerate the related settings files but python was not found. Please install python and re-run configure"; exit 1; fi
	@if ! $(PYTHON) --version | grep -q "Python 3"; then echo $(PYTHON) should be at least version 3. Please install python 3 and re-run configure; exit 1; fi
	(cd ${srcdir} && $(PYTHON) generate.py)

clean-local:
	rm -f cxxsettings-generated.cc rust/src/lib.rs