summaryrefslogtreecommitdiff
path: root/debian/rules
blob: 1bd18cc36f0d59e4c12506ebcbdc4517d56e5341 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#!/usr/bin/make -f

DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/buildflags.mk

include /usr/share/dpkg/architecture.mk

export DH_VERBOSE = 1

# make clean does not clean properly, so building out of source
BUILD = $(CURDIR)/build-tree

LDFLAGS += -Wl,--as-needed
LISP := sbcl

oa_libdir := /usr/lib/open-axiom

PACKAGE      := open-axiom
SVN_REPO     := svn://svn.code.sf.net/p/open-axiom/code/trunk
DEBIAN_PATH  := $(abspath $(dir $(firstword $(MAKEFILE_LIST))))
SRC_VERSION  := $(shell dpkg-parsechangelog -l$(DEBIAN_PATH)/changelog | awk '/^Version:/ {sub(/-[^-]*/, "", $$2); print $$2}')
SVN_REVISION := $(shell echo $(SRC_VERSION) | sed -r 's,.+svn([0-9]+).*,\1,')
TARBALL      := $(PACKAGE)_$(SRC_VERSION).orig.tar.xz
.PHONY: get-orig-source
get-orig-source:
	rm -rf get-orig-source $(TARBALL)
	mkdir get-orig-source
	svn export -r $(SVN_REVISION) $(SVN_REPO) \
	get-orig-source/$(PACKAGE)-$(SRC_VERSION)
	 tar cJf $(TARBALL) -C get-orig-source \
		 --exclude=contrib \
		 $(PACKAGE)-$(SRC_VERSION)
	@rm -rf get-orig-source
	@echo "  "$(TARBALL)" created; move it to the right destination to build the package"

debian/open-axiom.1: build-stamp
	help2man --no-info \
		--version-string='$(SRC_VERSION)' \
		-m 'The open scientific computation platform' \
		-n 'open source platform for symbolic, algebraic, and numerical computations' \
		$(BUILD)/src/driver/open-axiom > $@

# --disable-gcl is for included GCL:
configure-stamp:
	dh_testdir
	dh_autotools-dev_updateconfig
	# aclocal.m4 is older than configure; rebuilding aclocal.m4 requires aclocal-1.13
	touch aclocal.m4 config/*.m4 -r configure.ac
	$(LISP) --version </dev/null || true
	dh_auto_configure -B $(BUILD) -- \
		--with-lisp=$(LISP) \
		--with-x \
		--disable-gcl
	touch $@

build: build-arch build-indep
build-arch: build-stamp
build-indep: build-stamp
build-stamp: configure-stamp
	dh_testdir
	cd $(BUILD) && $(MAKE) \
		open_axiom_installdir=$(oa_libdir)
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	cd $(BUILD) && $(MAKE) check
endif
	touch $@

install: install-stamp
install-stamp: build-stamp
	dh_testdir
	dh_testroot
	dh_prep
	dh_auto_install -B $(BUILD) -- \
		oa_installdir=$(oa_libdir)
	touch $@

binary: binary-arch binary-indep
binary-indep: install
binary-arch: install debian/open-axiom.1
ifeq ($(LISP), sbcl)
	dh_install -p open-axiom  usr/lib/open-axiom/lib/libopen-axiom-core.so
	dh_install -p open-axiom  usr/lib/open-axiom/algebra/*.fasl
	dh_install -p open-axiom  usr/lib/open-axiom/interp/*.fasl
	# Remove shebangs and "compiled from ..." lines.
	# This makes lintian happy and prevents disclosure
	# of paths on build machine. E. g.:
	## !$(BUILD)/src/interp/interpsys --script
	## FASL
	#   compiled from "$(BUILD)/src/algebra/IDECOMP.NRLIB/code.lsp"
	#   using SBCL version 1.0.50.0.debian
	find debian/open-axiom -type f -name \*.fasl -exec \
		sed -i '/^#!/ d; /compiled/ d' {} \;
else ifeq ($(LISP), clisp)
	dh_install -p open-axiom  usr/lib/open-axiom/lib/libopen-axiom-core.so
	dh_install -p open-axiom  usr/lib/open-axiom/algebra/*.fas
	dh_install -p open-axiom  usr/lib/open-axiom/interp/*.fas
else ifeq ($(LISP), gcl)
	dh_install -p open-axiom  usr/lib/open-axiom/algebra/*.o
endif
	dh_install
	dh_installman
	dh_installdocs -p open-axiom-graphics --link-doc=open-axiom
	dh_installdocs -p open-axiom-test     --link-doc=open-axiom
	dh_installdocs -p open-axiom-hypertex --link-doc=open-axiom
	dh_installdocs --remaining-packages
	dh_installexamples
	dh_installchangelogs
	dh_installmenu
	dh_link

# AXIOMsys seems already stripped, and dh_strip breaks it:
	dh_strip -X AXIOMsys

	dh_compress
	dh_fixperms
	dh_makeshlibs
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
	dh_buildinfo
	dh_lintian
	dh_md5sums
	dh_builddeb -- -Zxz

clean:
	dh_testdir
	dh_testroot
	rm -rf $(BUILD)
	dh_autotools-dev_restoreconfig
	dh_clean