rules 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. #!/usr/bin/make -f
  2. # debian/rules for Free Pascal
  3. # Note: You must unset FPCDIR before using this Makefile
  4. # Documentation type to use pdf/html
  5. DOCTYPE=pdf
  6. # Get Package version and FPC version out of changelog file
  7. PACKAGEVERSION:=$(shell head -n 1 debian/changelog | awk '{ print $$2 }' | tr -d '[()]')
  8. FPCVERSION:=$(shell echo $(PACKAGEVERSION) | awk -F '-' '{ print $$1 }')
  9. # Get directories
  10. PWD:=$(shell pwd)
  11. BUILD_DIR=$(PWD)/debian/build
  12. INSTALL_DIR=$(PWD)/debian/tmp
  13. DOC_DIR=$(INSTALL_DIR)/usr/share/doc
  14. # Get utils
  15. NEWPP=$(PWD)/compiler/ppc386
  16. NEWPPUFILES=$(PWD)/utils/ppufiles
  17. # Create default options
  18. BUILDOPTS=PP=$(NEWPP)
  19. INSTALLOPTS=PP=$(NEWPP) PPUFILES=$(NEWPPUFILES) PREFIXINSTALLDIR=$(INSTALL_DIR)/usr
  20. export DH_COMPAT=2
  21. # export DH_VERBOSE=1
  22. ###################
  23. # Clean
  24. #
  25. clean:
  26. @echo "--- Cleaning"
  27. dh_testdir
  28. dh_testroot
  29. rm -f build-arch-stamp install-arch-stamp arrange-arch-stamp
  30. rm -f build-indep-stamp install-indep-stamp
  31. rm -f debian-files-stamp
  32. rm -f debian/*.files debian/*.docs debian/*.examples debian/*.postinst
  33. $(MAKE) compiler_distclean
  34. $(MAKE) rtl_distclean
  35. $(MAKE) fcl_distclean
  36. $(MAKE) api_distclean
  37. $(MAKE) utils_distclean
  38. $(MAKE) packages_distclean
  39. $(MAKE) -C docs clean
  40. dh_clean
  41. # Cannot do that because the control-file is often needed afetr a cleanup
  42. # rm -f debian/control
  43. ###################
  44. # Debian files
  45. #
  46. debian-files: debian-files-stamp
  47. debian-files-stamp:
  48. @echo "--- Creating debian files"
  49. bash debian/fixdeb debian
  50. touch debian-files-stamp
  51. ###################
  52. # Arch packages
  53. #
  54. build-arch: build-arch-stamp
  55. build-arch-stamp: debian-files-stamp
  56. @echo "--- Building"
  57. dh_testdir
  58. # First make a new Compiler and RTL using a make cycle
  59. $(MAKE) compiler_cycle
  60. $(MAKE) rtl_clean rtl_smart $(BUILDOPTS)
  61. $(MAKE) fcl_smart $(BUILDOPTS)
  62. $(MAKE) api_smart $(BUILDOPTS)
  63. $(MAKE) packages_smart $(BUILDOPTS)
  64. $(MAKE) utils_all $(BUILDOPTS)
  65. touch build-arch-stamp
  66. install-arch: install-arch-stamp
  67. install-arch-stamp: build-arch-stamp debian-files-stamp
  68. @echo "--- Installing"
  69. dh_testdir
  70. dh_testroot
  71. dh_clean -k
  72. # Specify the compiler to use so installing will use the correct versioned dir
  73. $(MAKE) compiler_install $(INSTALLOPTS)
  74. $(MAKE) rtl_install $(INSTALLOPTS)
  75. $(MAKE) fcl_install $(INSTALLOPTS)
  76. $(MAKE) api_install $(INSTALLOPTS)
  77. $(MAKE) utils_install $(INSTALLOPTS)
  78. $(MAKE) packages_install $(INSTALLOPTS)
  79. $(MAKE) fcl_exampleinstall $(INSTALLOPTS) DOCINSTALLDIR=$(DOC_DIR)/fp-units-fcl
  80. $(MAKE) api_exampleinstall $(INSTALLOPTS) DOCINSTALLDIR=$(DOC_DIR)/fp-units-api
  81. $(MAKE) -C packages pkggtk_exampleinstall $(INSTALLOPTS) DOCINSTALLDIR=$(DOC_DIR)/fp-units-gtk
  82. $(MAKE) -C packages pkggfx_exampleinstall $(INSTALLOPTS) DOCINSTALLDIR=$(DOC_DIR)/fp-units-gfx
  83. $(MAKE) -C packages pkgmisc_exampleinstall $(INSTALLOPTS) DOCINSTALLDIR=$(DOC_DIR)/fp-units-misc
  84. $(MAKE) -C packages pkgbase_exampleinstall $(INSTALLOPTS) DOCINSTALLDIR=$(DOC_DIR)/fp-units-base
  85. $(MAKE) -C packages pkgnet_exampleinstall $(INSTALLOPTS) DOCINSTALLDIR=$(DOC_DIR)/fp-units-net
  86. $(MAKE) -C packages pkgdb_exampleinstall $(INSTALLOPTS) DOCINSTALLDIR=$(DOC_DIR)/fp-units-db
  87. $(MAKE) man_install $(INSTALLOPTS) PREFIXINSTALLDIR=$(INSTALL_DIR)/usr/share
  88. $(MAKE) demo_install $(INSTALLOPTS) DOCINSTALLDIR=$(INSTALL_DIR)/usr/share/doc/fp-compiler
  89. $(MAKE) doc_install $(INSTALLOPTS) DOCINSTALLDIR=$(INSTALL_DIR)/usr/share/doc/fp-compiler
  90. touch install-arch-stamp
  91. arrange-arch: arrange-arch-stamp
  92. arrange-arch-stamp: install-arch-stamp debian-files-stamp
  93. dh_testversion 2
  94. dh_testdir
  95. dh_testroot
  96. dh_movefiles -a
  97. touch arrange-arch-stamp
  98. ###################
  99. # Documentation
  100. #
  101. build-indep: build-indep-stamp
  102. build-indep-stamp: debian-files-stamp
  103. @echo "--- Building Documentation"
  104. dh_testdir
  105. $(MAKE) -C docs $(DOCTYPE)
  106. touch build-indep-stamp
  107. install-indep: install-indep-stamp
  108. install-indep-stamp: debian-files build-indep
  109. @echo "--- Installing Documentation"
  110. dh_testdir
  111. dh_testroot
  112. dh_clean -k
  113. $(MAKE) -C docs $(DOCTYPE)install DOCINSTALLDIR=$(INSTALL_DIR)/usr/share/doc/fpc/$(FPCVERSION)/
  114. touch install-indep-stamp
  115. ###################
  116. # Generic
  117. #
  118. build: build-arch build-indep
  119. install: install-arch install-indep
  120. binary: binary-indep binary-arch
  121. ###################
  122. # Deb building
  123. #
  124. binary-indep: build-indep install-indep debian-files
  125. @echo "--- Building: arch-indep packages"
  126. dh_testversion 2
  127. dh_testdir
  128. dh_testroot
  129. dh_installdocs -i
  130. dh_installchangelogs -i
  131. dh_movefiles -i
  132. dh_compress -i -X.pdf
  133. dh_fixperms -i
  134. dh_installdeb -i
  135. dh_gencontrol -i
  136. dh_md5sums -i
  137. dh_builddeb -i
  138. binary-arch: build-arch arrange-arch debian-files
  139. @echo "--- Building: arch packages"
  140. dh_testversion 2
  141. dh_testdir
  142. dh_testroot
  143. dh_installdocs -a
  144. dh_installchangelogs -a
  145. dh_installchangelogs -pfp-compiler logs/Changes.compiler
  146. dh_installchangelogs -pfp-rtl logs/Changes.rtl
  147. dh_installchangelogs -pfp-utils logs/Changes.utils
  148. dh_installchangelogs -pfp-units-fcl logs/Changes.fcl
  149. dh_installchangelogs -pfp-units-api logs/Changes.api
  150. dh_undocumented -a
  151. dh_installexamples -a
  152. dh_compress -a
  153. dh_fixperms -a
  154. dh_installdeb -a
  155. dh_shlibdeps -a
  156. dh_gencontrol -a
  157. dh_md5sums -a
  158. dh_builddeb -a
  159. .PHONY: build clean binary debian-files \
  160. build-arch install-arch binary-arch \
  161. binary-indep