# makefile # # @since 2015-05-14 # @category Library # @package PdfFont # @author Nicola Asuni # @copyright 2011-2024 Nicola Asuni - Tecnick.com LTD # @license http://www.gnu.org/copyleft/lesser.html GNU-LGPL v3 (see LICENSE) # @link https://github.com/tecnickcom/tc-lib-pdf-font # # This file is part of tc-lib-pdf-font software library. # # Download and convert fonts for tc-lib-pdf-font. # ---------------------------------------------------------------------------------------------------------------------- # Folder containing the font to install (package) PKGFONTDIR=. # License name of the font to be packaged PKGFONTLICENSE=. # Project owner OWNER=tecnickcom # Project vendor VENDOR=${OWNER} # Project name PROJECT=tc-lib-pdf-font-data-$(PKGFONTDIR) # Project version VERSION=$(shell cat ../VERSION) # Project release number (packaging build number) RELEASE=$(shell cat ../RELEASE) # Name of RPM or DEB package PKGNAME=php-${OWNER}-${PROJECT} # Data dir DATADIR=usr/share # PHP home folder PHPHOME=${DATADIR}/php/Com/Tecnick # Default installation path for code FONTPATH=${PHPHOME}/Pdf/Font/fonts/$(PKGFONTDIR)/ # Default installation path for documentation DOCPATH=${DATADIR}/doc/$(PKGNAME)/ # Installation path for the code PATHINSTFONT=$(DESTDIR)/$(FONTPATH) # Installation path for documentation PATHINSTDOC=$(DESTDIR)/$(DOCPATH) # Current directory CURRENTDIR=$(dir $(realpath $(firstword $(MAKEFILE_LIST)))) # RPM Packaging path (where RPMs will be stored) PATHRPMPKG=$(CURRENTDIR)/../target/RPM_FONTS/$(PKGFONTDIR) # DEB Packaging path (where DEBs will be stored) PATHDEBPKG=$(CURRENTDIR)/../target/DEB_FONTS/$(PKGFONTDIR) # BZ2 Packaging path (where BZ2s will be stored) PATHBZ2PKG=$(CURRENTDIR)/../target/BZ2_FONTS/$(PKGFONTDIR) # Composer executable (disable APC to as a work-around of a bug) COMPOSER=$(shell which php) -d "apc.enable_cli=0" $(shell which composer) # --- MAKE TARGETS --- # Display general help about this command .PHONY: help help: @echo "" @echo "${PROJECT} Makefile." @echo "The following commands are available:" @echo "" @echo " make clean : Delete the vendor and target directory" @echo " make build : Clean and download the composer dependencies" @echo " make update : Update composer dependencies" @echo " make install : Install this library" @echo " make uninstall : Remove all installed files" @echo " make rpm : Build an RPM package" @echo " make deb : Build a DEB package" @echo " make bz2 : Build a tar bz2 (tbz2) compressed archive" @echo "" # alias for help target .PHONY: all all: help # delete the vendor and target directory .PHONY: clean clean: rm -rf ./vendor/ rm -rf ../target/fonts .PHONY: deps deps: ($(COMPOSER) install --no-dev --no-interaction) # clean and download the composer dependencies (all TTF font files) .PHONY: build build: deps ./bulk_convert.php # update composer dependencies .PHONY: update update: ($(COMPOSER) update --no-interaction) # Install this application .PHONY: install install: uninstall mkdir -p $(PATHINSTFONT) cp -rf ../target/fonts/$(PKGFONTDIR)/*.json $(PATHINSTFONT) cp -rf ../target/fonts/$(PKGFONTDIR)/*.z $(PATHINSTFONT) | true find $(PATHINSTFONT) -type d -exec chmod 755 {} \; find $(PATHINSTFONT) -type f -exec chmod 644 {} \; mkdir -p $(PATHINSTDOC) cp -f ../target/fonts/$(PKGFONTDIR)/LICENSE $(PATHINSTDOC) cp -f ../target/fonts/$(PKGFONTDIR)/README $(PATHINSTDOC) cp -f ../VERSION $(PATHINSTDOC) cp -f ../RELEASE $(PATHINSTDOC) chmod -R 644 $(PATHINSTDOC)* # Remove all installed files .PHONY: uninstall uninstall: rm -rf $(PATHINSTFONT) # --- PACKAGING --- # Build the RPM package for RedHat-like Linux distributions .PHONY: rpm rpm: rm -rf $(PATHRPMPKG) rpmbuild --define \ "_topdir $(PATHRPMPKG)" \ --define "_vendor $(VENDOR)" \ --define "_owner $(OWNER)" \ --define "_project $(PROJECT)" \ --define "_package $(PKGNAME)" \ --define "_version $(VERSION)" \ --define "_release $(RELEASE)" \ --define "_current_directory $(CURRENTDIR)" \ --define "_fontpath /$(FONTPATH)" \ --define "_docpath /$(DOCPATH)" \ --define "_fontdir $(PKGFONTDIR)" \ --define "_license $(PKGFONTLICENSE)" \ -bb ../resources/rpm/fonts.spec # Build the DEB package for Debian-like Linux distributions .PHONY: deb deb: echo resources/fonts/control/$(DEBCOPYRIGHT) rm -rf $(PATHDEBPKG) make install DESTDIR=$(PATHDEBPKG)/$(PKGNAME)-$(VERSION) PKGFONTDIR=$(PKGFONTDIR) tar -zcvf $(PATHDEBPKG)/$(PKGNAME)_$(VERSION).orig.tar.gz -C $(PATHDEBPKG)/ $(PKGNAME)-$(VERSION) cp -rf ../resources/fonts/debian $(PATHDEBPKG)/$(PKGNAME)-$(VERSION)/debian find $(PATHDEBPKG)/$(PKGNAME)-$(VERSION)/debian/ -type f -exec sed -i "s/~#DATE#~/`date -R`/" {} \; find $(PATHDEBPKG)/$(PKGNAME)-$(VERSION)/debian/ -type f -exec sed -i "s/~#VENDOR#~/$(VENDOR)/" {} \; find $(PATHDEBPKG)/$(PKGNAME)-$(VERSION)/debian/ -type f -exec sed -i "s/~#PROJECT#~/$(PROJECT)/" {} \; find $(PATHDEBPKG)/$(PKGNAME)-$(VERSION)/debian/ -type f -exec sed -i "s/~#PKGNAME#~/$(PKGNAME)/" {} \; find $(PATHDEBPKG)/$(PKGNAME)-$(VERSION)/debian/ -type f -exec sed -i "s/~#VERSION#~/$(VERSION)/" {} \; find $(PATHDEBPKG)/$(PKGNAME)-$(VERSION)/debian/ -type f -exec sed -i "s/~#RELEASE#~/$(RELEASE)/" {} \; find $(PATHDEBPKG)/$(PKGNAME)-$(VERSION)/debian/ -type f -exec sed -i "s/~#FONT#~/$(PKGFONTDIR)/" {} \; find $(PATHDEBPKG)/$(PKGNAME)-$(VERSION)/debian/ -type f -exec sed -i "s/~#LICENSE#~/$(PKGFONTLICENSE)/" {} \; echo $(FONTPATH) > $(PATHDEBPKG)/$(PKGNAME)-$(VERSION)/debian/$(PKGNAME).dirs echo "$(FONTPATH)* $(FONTPATH)" > $(PATHDEBPKG)/$(PKGNAME)-$(VERSION)/debian/install echo $(DOCPATH) >> $(PATHDEBPKG)/$(PKGNAME)-$(VERSION)/debian/$(PKGNAME).dirs echo "$(DOCPATH)* $(DOCPATH)" >> $(PATHDEBPKG)/$(PKGNAME)-$(VERSION)/debian/install echo "new-package-should-close-itp-bug" > $(PATHDEBPKG)/$(PKGNAME)-$(VERSION)/debian/$(PKGNAME).lintian-overrides echo "extra-license-file $(DOCPATH)LICENSE.gz" >> $(PATHDEBPKG)/$(PKGNAME)-$(VERSION)/debian/$(PKGNAME).lintian-overrides cd $(PATHDEBPKG)/$(PKGNAME)-$(VERSION) && debuild -us -uc # build a compressed bz2 archive .PHONY: bz2 bz2: rm -rf $(PATHBZ2PKG) make install DESTDIR=$(PATHBZ2PKG) PKGFONTDIR=$(PKGFONTDIR) tar -jcvf $(PATHBZ2PKG)/$(PKGNAME)-$(VERSION)-$(RELEASE).tbz2 -C $(PATHBZ2PKG) $(DATADIR)