diff options
Diffstat (limited to 'Makefile.am')
-rw-r--r-- | Makefile.am | 259 |
1 files changed, 259 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..10f26ee --- /dev/null +++ b/Makefile.am @@ -0,0 +1,259 @@ +## Process this file with automake to produce Makefile.in + +if BUILD_DSELECT + MAYBE_DSELECT = dselect +endif + +SUBDIRS = \ + lib \ + src \ + utils \ + $(MAYBE_DSELECT) \ + scripts \ + po \ + man \ + # EOL + +ACLOCAL_AMFLAGS = -I m4 + +aclocaldir = $(datadir)/aclocal + +dist_aclocal_DATA = \ + m4/dpkg-arch.m4 \ + m4/dpkg-build.m4 \ + m4/dpkg-compiler.m4 \ + m4/dpkg-coverage.m4 \ + m4/dpkg-funcs.m4 \ + m4/dpkg-libs.m4 \ + m4/dpkg-linker.m4 \ + m4/dpkg-progs.m4 \ + m4/dpkg-types.m4 \ + m4/dpkg-unicode.m4 \ + # EOL + +dist_pkgdata_DATA = \ + data/pie-compile.specs \ + data/pie-link.specs \ + data/no-pie-compile.specs \ + data/no-pie-link.specs \ + data/cputable \ + data/ostable \ + data/abitable \ + data/tupletable \ + # EOL + +dist_doc_DATA = \ + doc/README.api \ + doc/README.feature-removal-schedule \ + # EOL + +docspecdir = $(docdir)/spec + +dist_docspec_DATA = \ + doc/spec/frontend-api.txt \ + doc/spec/protected-field.txt \ + doc/spec/rootless-builds.txt \ + doc/spec/triggers.txt \ + # EOL + +EXTRA_DIST = \ + .gitlab-ci.yml \ + .mailmap \ + ChangeLog.old \ + README.l10n \ + autogen \ + build-aux/gen-changelog \ + build-aux/get-version \ + build-aux/lcov-inject \ + build-aux/run-script \ + build-aux/test-runner \ + doc/coding-style.txt \ + debian/README.bug-usertags \ + debian/bug-script \ + debian/changelog \ + debian/control \ + debian/copyright \ + debian/dpkg-dev.docs \ + debian/dpkg-dev.install \ + debian/dpkg-dev.manpages \ + debian/dpkg.alternatives.logrotate \ + debian/dpkg.cfg \ + debian/dpkg.cron.daily \ + debian/dpkg.docs \ + debian/dpkg.dpkg-db-backup.service \ + debian/dpkg.dpkg-db-backup.timer \ + debian/dpkg.install \ + debian/dpkg.manpages \ + debian/dpkg.postinst \ + debian/dpkg.postrm \ + debian/dpkg.logrotate \ + debian/dpkg.lintian-overrides \ + debian/dpkg.lintian-profile \ + debian/dselect.cfg \ + debian/dselect.docs \ + debian/dselect.install \ + debian/dselect.lintian-overrides \ + debian/dselect.manpages \ + debian/dselect.postrm \ + debian/dselect.preinst \ + debian/dselect.prerm \ + debian/libdpkg-dev.install \ + debian/libdpkg-perl.install \ + debian/source/format \ + debian/source/lintian-overrides \ + debian/not-installed \ + debian/rules \ + debian/shlibs.default \ + debian/shlibs.override \ + debian/tests/control \ + debian/tests/test-func \ + debian/tests/test-func-root \ + debian/tests/test-not-root \ + debian/tests/test-root \ + po/its/polkit.its \ + po/its/polkit.loc \ + tests \ + $(test_scripts) \ + $(test_data) \ + # EOL + +.PHONY: doc + +doc: doc/Doxyfile + $(DOXYGEN) doc/Doxyfile + +doc-clean: + rm -rf doc/html/ + +# Code coverage support + +.PHONY: coverage coverage-clean + +if COVERAGE_ENABLED +LCOV_OPTS = --quiet --rc geninfo_checksum=1 --rc lcov_branch_coverage=1 +LCOV_CAPTURE_OPTS = $(LCOV_OPTS) --no-recursion \ + --directory $(top_builddir)/lib/dpkg \ + --directory $(top_builddir)/src/common \ + --directory $(top_builddir)/src/deb \ + --directory $(top_builddir)/src/split \ + --directory $(top_builddir)/src/divert \ + --directory $(top_builddir)/src/query \ + --directory $(top_builddir)/src/trigger \ + --directory $(top_builddir)/src/statoverride \ + --directory $(top_builddir)/src/main \ + --directory $(top_builddir)/utils \ + # EOL +LCOV_INJECT = $(PERL) -i $(top_srcdir)/build-aux/lcov-inject + +coverage: all + : # Remove coverage data from any previous run + rm -f *.lcov + find -name '*.gcda' -o -name '*.gcov' | xargs rm -f + + : # Initialize data + $(LCOV) $(LCOV_CAPTURE_OPTS) --capture --initial \ + --output-file dpkg_base.lcov + : # Run test cases + $(MAKE) -C lib/dpkg check + $(MAKE) -C src check + $(MAKE) -C utils check + : # Merge test coverage data + $(LCOV) $(LCOV_CAPTURE_OPTS) --capture \ + --output-file dpkg_test.lcov + $(LCOV) $(LCOV_OPTS) \ + --add-tracefile dpkg_base.lcov \ + --add-tracefile dpkg_test.lcov \ + --output-file dpkg_merge.lcov + $(LCOV) $(LCOV_OPTS) --remove dpkg_merge.lcov '/usr/include/*' \ + --output-file dpkg.lcov + : # Generate reports + $(LCOV) $(LCOV_OPTS) --list dpkg.lcov + $(LCOV_GENHTML) $(LCOV_OPTS) \ + --legend --title "dpkg $(VERSION) C code coverage" \ + --output-directory doc/coverage dpkg.lcov + + $(MAKE) -C scripts $@ + + : # XXX: Inject perl coverage into lcov index files. This is a fragile + : # hack which might break depending on the html output generated. + $(LCOV_INJECT) doc/coverage/index-sort-b.html + $(LCOV_INJECT) doc/coverage/index-sort-f.html + $(LCOV_INJECT) doc/coverage/index-sort-l.html + $(LCOV_INJECT) doc/coverage/index.html + +coverage-clean: + rm -rf doc/coverage/ + find -name '*.gcno' -o -name '*.gcda' -o \ + -name '*.gcov' -o -name '*.lcov' | xargs rm -f + $(MAKE) -C scripts $@ +else +coverage: + @echo "Need to reconfigure with --enable-coverage" + +coverage-clean: +endif + +test_scripts = \ + t/po.t \ + t/pod.t \ + t/pod-spell.t \ + t/pod-coverage.t \ + t/synopsis.t \ + t/minimum-version.t \ + t/module-version.t \ + t/syntax.t \ + t/strict.t \ + t/critic.t \ + t/codespell.t \ + t/shellcheck.t \ + t/cppcheck.t \ + # EOL + +test_data = \ + t/codespell/stopwords \ + t/cppcheck/cppcheck.supp \ + t/critic/perlcriticrc \ + # EOL + +# We need to use absolute paths here due to strict.t invoking a sub-perl, +# while changing dir to source dir on out-of-tree builds. +TEST_ENV_VARS = \ + DPKG_DATADIR=$(abs_top_srcdir)/data \ + # EOL + +include $(top_srcdir)/build-aux/tap.am + +check-local: tap-check + +.PHONY: update-po + +update-po: + $(MAKE) -C po update-po + $(MAKE) -C scripts/po update-po + $(MAKE) -C dselect/po update-po + $(MAKE) -C man update-po + +include $(top_srcdir)/build-aux/cpan.am + +# If we create the dist tarball from the git repository, make sure +# that we're not forgetting some files, and we are not storing any symlink +# in the repository (except for the origins/default one) as those degrade +# to regular files due to automake telling tar to dereference them. +dist-hook: + echo $(VERSION) >$(distdir)/.dist-version + if [ -e .git ]; then \ + for file in `git ls-tree -r HEAD | grep ^12 | grep -v t/origins/default`; do \ + echo "$$file is a symlink packed as a file on the dist tar" >&2 ; \ + exit 1 ; \ + done ; \ + for file in `git ls-files | grep -v .gitignore`; do \ + if [ ! -e "$(distdir)/$$file" ]; then \ + echo "$$file is missing in $(distdir)" >&2 ; \ + exit 1 ; \ + fi ; \ + done ; \ + XDG_CONFIG_HOME= HOME= \ + git log -C --stat 1.15.0.. >$(distdir)/ChangeLog; \ + fi + +clean-local: doc-clean coverage-clean tap-clean |