123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259 |
- #!/usr/bin/make -f
- # debian/rules for Free Pascal
- # Documentation type to use pdf/html
- DOCTYPE=pdf
- # Reset FPC and FPCDIR if it was set
- FPC=
- FPCDIR=
- # Get Package version and FPC version out of changelog file
- PACKAGEVERSION:=$(shell head -n 1 debian/changelog | awk '{ print $$2 }' | tr -d '[()]')
- FPCVERSION:=$(shell echo $(PACKAGEVERSION) | awk -F '-' '{ print $$1 }')
- FPC_MAIN_VERSION:=$(shell echo $(PACKAGEVERSION) | awk -F '\.[0-9]-' '{ print $$1 }')
- # Get directories
- PWD:=$(shell pwd)
- BUILD_DIR=$(PWD)/debian/build
- INSTALL_DIR=$(PWD)/debian/tmp
- DOC_DIR=$(INSTALL_DIR)/usr/share/doc
- EXAMPLE_TEMP=$(INSTALL_DIR)/usr/doc/fpc-$(FPC_MAIN_VERSION)/examples
- # Get utils
- NEWPP=$(PWD)/compiler/ppc386
- # Create default options
- BUILDOPTS=PP=$(NEWPP)
- INSTALLOPTS=PP=$(NEWPP) INSTALL_PREFIX=$(INSTALL_DIR)/usr
- export DH_COMPAT=2
- # export DH_VERBOSE=1
- ###################
- # Clean
- #
- clean:
- @echo "--- Cleaning"
- dh_testdir
- dh_testroot
- rm -f build-arch-stamp install-arch-stamp arrange-arch-stamp
- rm -f build-indep-stamp install-indep-stamp
- rm -f debian-files-stamp
- rm -f debian/*.files debian/*.docs debian/*.examples debian/*.postinst debian/*.postrm
- $(MAKE) compiler_distclean
- $(MAKE) rtl_distclean
- $(MAKE) packages_distclean
- $(MAKE) fcl_distclean
- $(MAKE) utils_distclean
- $(MAKE) -C docs clean
- -(find . -name \*.a | xargs rm)
- rm -f docs/syntax.sty
- dh_clean
- # Cannot do that because the control-file is often needed after a cleanup
- # rm -f debian/control
- ###################
- # Debian files
- #
- debian-files: debian-files-stamp
- debian-files-stamp:
- @echo "--- Creating debian files"
- bash debian/fixdeb debian
- touch debian-files-stamp
- ###################
- # Arch packages
- #
- build-arch: build-arch-stamp
- build-arch-stamp: debian-files-stamp
- @echo "--- Building"
- dh_testdir
- # First make a new Compiler and RTL using a make cycle
- $(MAKE) compiler_cycle
- $(MAKE) rtl_clean rtl_smart $(BUILDOPTS)
- $(MAKE) packages_base_smart $(BUILDOPTS)
- $(MAKE) fcl_smart $(BUILDOPTS)
- $(MAKE) packages_extra_smart $(BUILDOPTS)
- $(MAKE) utils_all $(BUILDOPTS)
- touch build-arch-stamp
- install-arch: install-arch-stamp
- install-arch-stamp: build-arch-stamp debian-files-stamp
- @echo "--- Installing"
- dh_testdir
- dh_testroot
- dh_clean -k
- # Specify the compiler to use so installing will use the correct versioned dir
- $(MAKE) compiler_distinstall $(INSTALLOPTS)
- $(MAKE) rtl_distinstall $(INSTALLOPTS)
- $(MAKE) fcl_distinstall $(INSTALLOPTS)
- $(MAKE) packages_distinstall $(INSTALLOPTS)
- $(MAKE) utils_distinstall $(INSTALLOPTS)
- # Copy examples to the correct doc dir
- install -d -m755 $(DOC_DIR)/fp-units-base/examples
- install -d -m755 $(DOC_DIR)/fp-units-db/examples
- install -d -m755 $(DOC_DIR)/fp-units-fcl/examples
- install -d -m755 $(DOC_DIR)/fp-units-gfx/examples
- install -d -m755 $(DOC_DIR)/fp-units-gtk/examples
- install -d -m755 $(DOC_DIR)/fp-units-misc/examples
- install -d -m755 $(DOC_DIR)/fp-units-net/examples
- install -d -m755 $(DOC_DIR)/fp-units-extra/examples
- mv -f $(EXAMPLE_TEMP)/fcl $(DOC_DIR)/fp-units-fcl/examples
- mv -f $(EXAMPLE_TEMP)/gtk $(DOC_DIR)/fp-units-gtk/examples
- mv -f $(EXAMPLE_TEMP)/paszlib $(DOC_DIR)/fp-units-base/examples
- mv -f $(EXAMPLE_TEMP)/regexpr $(DOC_DIR)/fp-units-base/examples
- mv -f $(EXAMPLE_TEMP)/ncurses $(DOC_DIR)/fp-units-base/examples
- mv -f $(EXAMPLE_TEMP)/forms $(DOC_DIR)/fp-units-gfx/examples
- mv -f $(EXAMPLE_TEMP)/ggi $(DOC_DIR)/fp-units-gfx/examples
- mv -f $(EXAMPLE_TEMP)/libgd $(DOC_DIR)/fp-units-gfx/examples
- mv -f $(EXAMPLE_TEMP)/svgalib $(DOC_DIR)/fp-units-gfx/examples
- mv -f $(EXAMPLE_TEMP)/opengl $(DOC_DIR)/fp-units-gfx/examples
- mv -f $(EXAMPLE_TEMP)/ibase $(DOC_DIR)/fp-units-db/examples
- mv -f $(EXAMPLE_TEMP)/mysql $(DOC_DIR)/fp-units-db/examples
- mv -f $(EXAMPLE_TEMP)/oracle $(DOC_DIR)/fp-units-db/examples
- mv -f $(EXAMPLE_TEMP)/postgres $(DOC_DIR)/fp-units-db/examples
- mv -f $(EXAMPLE_TEMP)/gdbm $(DOC_DIR)/fp-units-db/examples
- mv -f $(EXAMPLE_TEMP)/netdb $(DOC_DIR)/fp-units-db/examples
- mv -f $(EXAMPLE_TEMP)/odbc $(DOC_DIR)/fp-units-db/examples
- mv -f $(EXAMPLE_TEMP)/cmem $(DOC_DIR)/fp-units-misc/examples
- mv -f $(EXAMPLE_TEMP)/gdbint $(DOC_DIR)/fp-units-misc/examples
- mv -f $(EXAMPLE_TEMP)/utmp $(DOC_DIR)/fp-units-misc/examples
- mv -f $(EXAMPLE_TEMP)/syslog $(DOC_DIR)/fp-units-misc/examples
- mv -f $(EXAMPLE_TEMP)/inet $(DOC_DIR)/fp-units-net/examples
- mv -f $(EXAMPLE_TEMP)/uncgi $(DOC_DIR)/fp-units-net/examples
-
- mv -f $(EXAMPLE_TEMP)/cdrom $(DOC_DIR)/fp-units-extra/examples
- mv -f $(EXAMPLE_TEMP)/gconf $(DOC_DIR)/fp-units-extra/examples
- mv -f $(EXAMPLE_TEMP)/tcl $(DOC_DIR)/fp-units-extra/examples
- mv -f $(EXAMPLE_TEMP)/zvt $(DOC_DIR)/fp-units-extra/examples
- # Check if all examples are removed, if not then the rmdir will fail
- rmdir $(EXAMPLE_TEMP)
- # Install man pages and RTL demos and whatsnew and readme
- $(MAKE) man_install $(INSTALLOPTS) INSTALL_PREFIX=$(INSTALL_DIR)/usr/share
- $(MAKE) demo_install $(INSTALLOPTS) INSTALL_DOCDIR=$(DOC_DIR)/fp-compiler
- $(MAKE) doc_install $(INSTALLOPTS) INSTALL_DOCDIR=$(DOC_DIR)/fp-compiler
- # Create fpc.cfg which is included as conffile
- chmod 755 compiler/utils/samplecfg
- compiler/utils/samplecfg "/usr/lib/fpc/\$$version" $(INSTALL_DIR)/etc
- touch install-arch-stamp
- arrange-arch: arrange-arch-stamp
- arrange-arch-stamp: install-arch-stamp debian-files-stamp
- dh_testdir
- dh_testroot
- dh_movefiles -a
- touch arrange-arch-stamp
- ###################
- # Documentation
- #
- build-indep: build-indep-stamp
- build-indep-stamp: debian-files-stamp
- @echo "--- Building Documentation"
- dh_testdir
- # We need our own syntax.sty (v1.9) which is not in the current tetex and
- # on ctan.org (PFV)
- cp debian/syntax.sty docs
- $(MAKE) -C docs $(DOCTYPE)
- touch build-indep-stamp
- install-indep: install-indep-stamp
- install-indep-stamp: debian-files build-indep
- @echo "--- Installing Documentation"
- dh_testdir
- dh_testroot
- dh_clean -k
- $(MAKE) -C docs $(DOCTYPE)install DOCINSTALLDIR=$(INSTALL_DIR)/usr/share/doc/fpc/$(FPCVERSION)/
- touch install-indep-stamp
- ###################
- # Generic
- #
- build: build-arch build-indep
- install: install-arch install-indep
- binary: binary-indep binary-arch
- ###################
- # Deb building
- #
- binary-indep: build-indep install-indep debian-files
- @echo "--- Building: arch-indep packages"
- dh_testdir
- dh_testroot
- dh_installdocs -i
- dh_installchangelogs -i
- dh_installchangelogs -pfp-docs logs/Changes.docs
- dh_movefiles -i
- dh_compress -i -X.pdf
- dh_fixperms -i
- dh_installdeb -i
- dh_gencontrol -i
- dh_md5sums -i
- dh_builddeb -i
- binary-arch: build-arch arrange-arch debian-files
- @echo "--- Building: arch packages"
- dh_testdir
- dh_testroot
- dh_installdocs -a
- dh_installchangelogs -a
- dh_installchangelogs -pfp-compiler logs/Changes.compiler
- dh_installchangelogs -pfp-units-rtl logs/Changes.rtl
- dh_installchangelogs -pfp-units-fcl logs/Changes.fcl
- dh_installchangelogs -pfp-utils logs/Changes.utils
- dh_undocumented -a
- dh_installexamples -a
- dh_compress -a
- dh_fixperms -a
- dh_installdeb -a
- dh_shlibdeps -a
- dh_gencontrol -a
- dh_md5sums -a
- dh_builddeb -a
- .PHONY: build clean binary debian-files \
- build-arch install-arch binary-arch \
- binary-indep
|