#!/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