Makefile.am 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. ## Process this file with automake to produce Makefile.in
  2. if BUILD_DSELECT
  3. MAYBE_DSELECT = dselect
  4. endif
  5. SUBDIRS = \
  6. lib \
  7. dpkg-deb \
  8. dpkg-split \
  9. src \
  10. utils \
  11. $(MAYBE_DSELECT) \
  12. scripts \
  13. t-func \
  14. po \
  15. man
  16. ACLOCAL_AMFLAGS = -I m4
  17. dist_pkgdata_DATA = \
  18. data/pie-compile.specs \
  19. data/pie-link.specs \
  20. data/no-pie-compile.specs \
  21. data/no-pie-link.specs \
  22. data/cputable \
  23. data/ostable \
  24. data/abitable \
  25. data/tupletable \
  26. $(nil)
  27. EXTRA_DIST = \
  28. .mailmap \
  29. ChangeLog.old \
  30. README.l10n \
  31. get-version \
  32. run-script \
  33. doc/README.api \
  34. doc/README.feature-removal-schedule \
  35. doc/coding-style.txt \
  36. doc/frontend.txt \
  37. doc/lcov-inject.pl \
  38. doc/triggers.txt \
  39. debian/changelog \
  40. debian/compat \
  41. debian/control \
  42. debian/copyright \
  43. debian/dpkg-dev.docs \
  44. debian/dpkg-dev.install \
  45. debian/dpkg-dev.manpages \
  46. debian/dpkg-dev.preinst \
  47. debian/dpkg-dev.lintian-overrides \
  48. debian/dpkg.cfg \
  49. debian/dpkg.cron.daily \
  50. debian/dpkg.docs \
  51. debian/dpkg.install \
  52. debian/dpkg.manpages \
  53. debian/dpkg.postinst \
  54. debian/dpkg.postrm \
  55. debian/dpkg.prerm \
  56. debian/dpkg.logrotate \
  57. debian/dpkg.lintian-overrides \
  58. debian/dselect.cfg \
  59. debian/dselect.docs \
  60. debian/dselect.install \
  61. debian/dselect.manpages \
  62. debian/dselect.preinst \
  63. debian/dselect.lintian-overrides \
  64. debian/libdpkg-dev.docs \
  65. debian/libdpkg-dev.install \
  66. debian/libdpkg-dev.lintian-overrides \
  67. debian/libdpkg-perl.docs \
  68. debian/libdpkg-perl.install \
  69. debian/libdpkg-perl.lintian-overrides \
  70. debian/source/lintian-overrides \
  71. debian/source/format \
  72. debian/source/options \
  73. debian/usertags \
  74. debian/rules \
  75. debian/shlibs.default \
  76. debian/shlibs.override \
  77. $(test_scripts) \
  78. $(test_data) \
  79. $(nil)
  80. .PHONY: doc
  81. doc: doc/Doxyfile
  82. $(DOXYGEN) doc/Doxyfile
  83. doc-clean:
  84. rm -rf doc/html/
  85. # Code coverage support
  86. .PHONY: coverage coverage-clean
  87. if COVERAGE_ENABLED
  88. LCOV_OPTS = -q --rc geninfo_checksum=1 --rc lcov_branch_coverage=1
  89. LCOV_CAPTURE_OPTS = $(LCOV_OPTS) --no-recursion \
  90. -d $(top_builddir)/lib/dpkg \
  91. -d $(top_builddir)/src \
  92. -d $(top_builddir)/utils
  93. LCOV_INJECT = $(PERL) -i $(top_srcdir)/doc/lcov-inject.pl
  94. coverage: all
  95. : # Remove coverage data from any previous run
  96. rm -f *.lcov
  97. find -name '*.gcda' -o -name '*.gcov' | xargs rm -f
  98. : # Initialize data
  99. $(LCOV) $(LCOV_CAPTURE_OPTS) -c -o dpkg_base.lcov -i
  100. : # Run test cases
  101. $(MAKE) -C lib/dpkg check
  102. $(MAKE) -C src check
  103. $(MAKE) -C utils check
  104. : # Merge test coverage data
  105. $(LCOV) $(LCOV_CAPTURE_OPTS) -c -o dpkg_test.lcov
  106. $(LCOV) $(LCOV_OPTS) -a dpkg_base.lcov -a dpkg_test.lcov \
  107. -o dpkg_merge.lcov
  108. $(LCOV) $(LCOV_OPTS) -r dpkg_merge.lcov '/usr/include/*' -o dpkg.lcov
  109. : # Generate reports
  110. $(LCOV) $(LCOV_OPTS) -l dpkg.lcov
  111. $(LCOV_GENHTML) $(LCOV_OPTS) \
  112. --legend --title "dpkg $(VERSION) C code coverage" \
  113. -o doc/coverage dpkg.lcov
  114. $(MAKE) -C scripts $@
  115. : # XXX: Inject perl coverage into lcov index files. This is a fragile
  116. : # hack which might break depending on the html output generated.
  117. $(LCOV_INJECT) doc/coverage/index-sort-b.html
  118. $(LCOV_INJECT) doc/coverage/index-sort-f.html
  119. $(LCOV_INJECT) doc/coverage/index-sort-l.html
  120. $(LCOV_INJECT) doc/coverage/index.html
  121. coverage-clean:
  122. rm -rf doc/coverage/
  123. find -name '*.gcno' -o -name '*.gcda' -o \
  124. -name '*.gcov' -o -name '*.lcov' | xargs rm -f
  125. $(MAKE) -C scripts $@
  126. else
  127. coverage:
  128. @echo "Need to reconfigure with --enable-coverage"
  129. coverage-clean:
  130. endif
  131. test_scripts = \
  132. t/pod.t \
  133. t/pod-spell.t \
  134. t/pod-coverage.t \
  135. t/synopsis.t \
  136. t/minimum-version.t \
  137. t/syntax.t \
  138. t/strict.t \
  139. t/critic.t \
  140. $(nil)
  141. test_data = \
  142. t/critic/perlcriticrc \
  143. $(nil)
  144. # We need to use absolute paths here due to strict.t invoking a sub-perl,
  145. # while changing dir to source dir on out-of-tree builds.
  146. TEST_ENV_VARS = \
  147. DPKG_DATADIR=$(abs_top_srcdir)/data \
  148. $(nil)
  149. include $(top_srcdir)/check.am
  150. .PHONY: update-po
  151. update-po:
  152. $(MAKE) -C po update-po
  153. $(MAKE) -C scripts/po update-po
  154. $(MAKE) -C dselect/po update-po
  155. $(MAKE) -C man update-po
  156. # If we create the dist tarball from the git repository, make sure
  157. # that we're not forgetting some files...
  158. dist-hook:
  159. echo $(VERSION) >$(distdir)/.dist-version
  160. if [ -e .git ]; then \
  161. for file in `git ls-files | grep -v .gitignore`; do \
  162. if [ ! -e "$(distdir)/$$file" ]; then \
  163. echo "$$file is missing in $(distdir)" >&2 ; \
  164. exit 1 ; \
  165. fi ; \
  166. done ; \
  167. XDG_CONFIG_HOME= HOME= \
  168. git log -C --stat 1.15.0.. >$(distdir)/ChangeLog; \
  169. fi
  170. clean-local: doc-clean coverage-clean check-clean