#!/usr/bin/make -f include /usr/share/dpkg/architecture.mk include /usr/share/dpkg/pkg-info.mk export CHEZ_VERSION = $(shell echo '$(DEB_VERSION_UPSTREAM)' | sed -e 's/[+~].*$$//') export DH_VERBOSE = 1 export DEB_BUILD_MAINT_OPTIONS = hardening=+all DOPACKAGES = $(shell dh_listpackages) # Translate the host architecture (the arch we're building for) to # terms the build system understands. ifeq ($(DEB_HOST_GNU_TYPE), x86_64-linux-gnu) export HOST_MACHINE_TYPE = ta6le else ifeq ($(DEB_HOST_GNU_TYPE), i386-linux-gnu) export HOST_MACHINE_TYPE = ti3le else ifeq ($(DEB_HOST_GNU_TYPE), i686-linux-gnu) export HOST_MACHINE_TYPE = ti3le else ifeq ($(DEB_HOST_GNU_TYPE), arm-linux-gnueabihf) export HOST_MACHINE_TYPE = arm32le else ifeq ($(DEB_HOST_GNU_TYPE), arm-linux-gnueabi) export HOST_MACHINE_TYPE = arm32le else $(error Cannot yet build for $(DEB_HOST_GNU_TYPE)) endif ifeq ($(origin CC),default) CC := $(DEB_HOST_GNU_TYPE)-gcc LD := $(DEB_HOST_GNU_TYPE)-ld endif # Avoid using /usr/bin/scheme to run stex INSTALLED_CHEZ=/usr/bin/chezscheme LIBDIR=usr/lib/csv$(CHEZ_VERSION)/$(HOST_MACHINE_TYPE) fix_conf = sed -i -e 's,^ncursesLib=.*,ncursesLib=-lncurses -lz -llz4,g' %: dh $@ override_dh_auto_configure: ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) if [ ! -d boot/$(HOST_MACHINE_TYPE) ]; then \ cp -r /usr/lib/csv$(CHEZ_VERSION)/$(HOST_MACHINE_TYPE) boot/$(HOST_MACHINE_TYPE); \ touch boot/$(HOST_MACHINE_TYPE)/.debian-cleanup; \ fi CC=$(CC) ./configure --workarea=build -m=$(HOST_MACHINE_TYPE) --installprefix=/usr --temproot=$(shell pwd)/debian/tmp ZLIB= LZ4= else ./configure --workarea=crossbuilder --threads --installprefix=/usr --temproot=$(shell pwd)/debian/tmp ZLIB= LZ4= $(fix_conf) crossbuilder/c/Mf-config make -C crossbuilder ./workarea $(HOST_MACHINE_TYPE) mv $(HOST_MACHINE_TYPE) build echo "ncursesLib=-lncurses -lz -llz4" >> build/c/Mf-config echo 'Kernel=$${KernelO}' >> build/c/Mf-config echo 'KernelLinkDeps=$${KernelOLinkDeps}' >> build/c/Mf-config echo 'KernelLinkLibs=$${KernelOLinkLibs}' >> build/c/Mf-config endif $(fix_conf) build/c/Mf-config (cd build/s; ln -s ../../s/primdata.ss primdata.ss) cp -a release_notes/ build/ cp -a csug/ build/ (echo "\def\INSERTREVISIONMONTHSPACEYEAR{}"; cat csug/copyright.stex) > \ build/csug/copyright.stex override_dh_auto_test: ifeq (fullcheck,$(filter fullcheck,$(DEB_BUILD_OPTIONS))) dh_auto_test endif override_dh_auto_build-arch: ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) make -C build else $(eval BUILD_MACHINE_TYPE = $(shell awk -F= '/^m=/ {print $$2}' crossbuilder/Mf-install)) make -C build/s -f Mf-cross m=$(BUILD_MACHINE_TYPE) xm=$(HOST_MACHINE_TYPE) base=$(CURDIR)/crossbuilder make -C build/c CC=$(CC) LD=$(LD) endif override_dh_auto_build-indep: ifneq (,$(filter chezscheme-doc,$(DOPACKAGES))) make -C build/release_notes Scheme=$(INSTALLED_CHEZ) STEXLIB=/usr/share/stex make -C build/csug Scheme=$(INSTALLED_CHEZ) STEXLIB=/usr/share/stex endif override_dh_auto_install-arch: ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) make install else make -C build -f ../crossbuilder/Mf-install m=$(HOST_MACHINE_TYPE) endif sed -e 's,^\\fI\(Chez Scheme\)\\fP,chezscheme \- Chez Scheme,' \ -e 's,^\\fI\(Petite Chez Scheme\)\\fP,petite \- Petite Chez Scheme,' \ build/scheme.1 > build/chezscheme.1 override_dh_auto_install-indep: ifneq (,$(filter chezscheme-doc,$(DOPACKAGES))) make -C build/release_notes Scheme=$(INSTALLED_CHEZ) STEXLIB=/usr/share/stex INSTALL=../installsh \ installdir=$(shell pwd)/debian/tmp/usr/share/doc/chezscheme-doc/ \ install make -C build/csug Scheme=$(INSTALLED_CHEZ) STEXLIB=/usr/share/stex INSTALL=../installsh \ installdir=$(shell pwd)/debian/tmp/usr/share/doc/chezscheme-doc/html/ \ install rm -f debian/tmp/usr/share/doc/chezscheme-doc/html/canned/*-orig.png ln -sf ../csug.css debian/tmp/usr/share/doc/chezscheme-doc/html/canned/csug.css endif ifneq (,$(filter chezscheme,$(DOPACKAGES))) override_dh_link: dh_link $(LIBDIR)/scheme.boot $(LIBDIR)/chezscheme.boot \ $(LIBDIR)/scheme.boot $(LIBDIR)/scheme-script.boot \ /usr/share/man/man1/chezscheme.1.gz \ /usr/share/man/man1/petite.1.gz \ /usr/share/man/man1/chezscheme.1.gz \ /usr/share/man/man1/scheme-script-chez.1.gz endif override_dh_auto_clean: rm -f Makefile csug/Makefile release_notes/Makefile dh_auto_clean if [ -f boot/$(HOST_MACHINE_TYPE)/.debian-cleanup ]; then \ rm -rf boot/$(HOST_MACHINE_TYPE); \ fi override_dh_installdocs: dh_installdocs -A NOTICE override_dh_installchangelogs: dh_installchangelogs LOG override_dh_installman-arch: dh_installman build/chezscheme.1