* NEWS: Mention the change. * src/: Rename as ... * spot/: ... this, adjust all headers to include <spot/...> instead of "...", and adjust all Makefile.am to search headers from the top-level directory. * HACKING: Add conventions about #include. * spot/sanity/style.test: Add a few more grep to catch cases that do not follow these conventions. * .gitignore, Makefile.am, README, bench/stutter/Makefile.am, bench/stutter/stutter_invariance_formulas.cc, bench/stutter/stutter_invariance_randomgraph.cc, configure.ac, debian/rules, doc/Doxyfile.in, doc/Makefile.am, doc/org/.dir-locals.el.in, doc/org/g++wrap.in, doc/org/init.el.in, doc/org/tut01.org, doc/org/tut02.org, doc/org/tut03.org, doc/org/tut10.org, doc/org/tut20.org, doc/org/tut21.org, doc/org/tut22.org, doc/org/tut30.org, iface/ltsmin/Makefile.am, iface/ltsmin/kripke.test, iface/ltsmin/ltsmin.cc, iface/ltsmin/ltsmin.hh, iface/ltsmin/modelcheck.cc, wrap/python/Makefile.am, wrap/python/ajax/spotcgi.in, wrap/python/spot_impl.i, wrap/python/tests/ltl2tgba.py, wrap/python/tests/randgen.py, wrap/python/tests/run.in: Adjust.
91 lines
3.4 KiB
Makefile
Executable file
91 lines
3.4 KiB
Makefile
Executable file
#!/usr/bin/make -f
|
|
# See debhelper(7) (uncomment to enable)
|
|
# output every command that modifies files on the build system.
|
|
DH_VERBOSE = 1
|
|
|
|
# see EXAMPLES in dpkg-buildflags(1) and read /usr/share/dpkg/*
|
|
DPKG_EXPORT_BUILDFLAGS = 1
|
|
include /usr/share/dpkg/default.mk
|
|
|
|
# see FEATURE AREAS in dpkg-buildflags(1)
|
|
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all
|
|
|
|
# see ENVIRONMENT in dpkg-buildflags(1)
|
|
# package maintainers to append CFLAGS
|
|
#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic
|
|
# package maintainers to append LDFLAGS
|
|
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
|
|
|
|
|
|
# main packaging script based on dh7 syntax
|
|
%:
|
|
dh $@ --parallel --with=python3
|
|
|
|
# Find the LTO plugin, which we need to pass to ar, nm, and ranlib.
|
|
LTOPLUG := $(shell gcc -v 2>&1 | \
|
|
sed -n 's:COLLECT_LTO_WRAPPER=\(/.*/\)[^/]*:\1:p')liblto_plugin.so
|
|
|
|
# ARFLAGS is for Automake
|
|
# AR_FLAGS is for Libtool
|
|
LTOSETUP = \
|
|
LDFLAGS='-fuse-linker-plugin' \
|
|
NM='nm --plugin $(LTOPLUG)' \
|
|
ARFLAGS='cru --plugin $(LTOPLUG)' \
|
|
AR_FLAGS='cru --plugin $(LTOPLUG)' \
|
|
RANLIB='ranlib --plugin $(LTOPLUG)'
|
|
PRO1SETUP = \
|
|
CFLAGS='-flto -fprofile-generate' \
|
|
CXXFLAGS='-flto -fprofile-generate'
|
|
PRO2SETUP = \
|
|
CFLAGS='-flto -fprofile-use' \
|
|
CXXFLAGS='-flto -fprofile-use'
|
|
PYDEFAULT=$(shell py3versions --default)
|
|
PYOTHERS=$(filter-out $(PYDEFAULT), $(shell py3versions --supported))
|
|
|
|
# There seem to be a problem with unwinding of exception handling when
|
|
# the binaries are compiled with -flto. For instance in autfilt,
|
|
# argp_parse() calls the locally defined parse_opt() that calls
|
|
# remove_ap::add_ap() (in libspot). The latter may throw an
|
|
# exception, which should be caught in main(). However If autfilt is
|
|
# compiled with -flto, the exception never traverses argp. Moving
|
|
# the try/catch block inside parse_opt() also fixes this praticular
|
|
# problem, but who knows about other exceptions? So as a workaround,
|
|
# we simply disable -flto in spot/bin/.
|
|
FLTOWORKAROUND = perl -pi -e s/-flto// spot/bin/Makefile
|
|
|
|
# We want to build Spot twice: once to get profile data, and a second
|
|
# time to use it.
|
|
override_dh_auto_configure:
|
|
dh_auto_configure -- $(PRO1SETUP) $(LTOSETUP) \
|
|
--disable-devel --enable-optimizations \
|
|
--disable-static PYTHON=/usr/bin/$(PYDEFAULT)
|
|
$(FLTOWORKAROUND)
|
|
dh_auto_build
|
|
dh_auto_test
|
|
make clean
|
|
dh_auto_configure -- $(PRO2SETUP) $(LTOSETUP) \
|
|
--disable-devel --enable-optimizations \
|
|
--disable-static PYTHON=/usr/bin/$(PYDEFAULT)
|
|
$(FLTOWORKAROUND)
|
|
override_dh_auto_install: fix-mathjax
|
|
dh_auto_install --destdir=$(CURDIR)/debian/tmp
|
|
# Reconfigure for every other supported Python3 version,
|
|
# and build/install only the python code.
|
|
for pyv in $(PYOTHERS); do \
|
|
dh_auto_configure -- $(LTOSETUP) \
|
|
--disable-devel --enable-optimizations \
|
|
--disable-static PYTHON=/usr/bin/$$pyv; \
|
|
dh_auto_build -- -C wrap/python clean; \
|
|
dh_auto_build -- -C wrap/python all; \
|
|
dh_auto_install -- -C wrap/python; \
|
|
done
|
|
find debian/tmp -name '*.la' -exec rm -rv {} ';'
|
|
override_dh_python3:
|
|
dh_python3 -p python3-spot
|
|
override_dh_auto_build:
|
|
dh_auto_build
|
|
$(MAKE) -C wrap/python/tests nb-html
|
|
|
|
fix-mathjax:
|
|
perl -pi -e 's|http://orgmode.org/mathjax/MathJax.js|file:///usr/share/javascript/mathjax/MathJax.js|' doc/userdoc/*.html
|
|
perl -pi -e 's|https://cdn.mathjax.org/mathjax/latest/MathJax.js|file:///usr/share/javascript/mathjax/MathJax.js|' wrap/python/tests/*.html
|