Makefile.am 4.0 KB

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