summaryrefslogtreecommitdiff
path: root/debian/rules
blob: e3074ba34bf5e4bbe6ac2f779dca8dbf19c40685 (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
#!/usr/bin/make -f

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

LDFLAGS = -Wl,--as-needed

DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH)

# List of archs currently having SBCL
# Keep build-deb on sbcl in one line: sbcl (...) [...],
HAVE_SBCL := $(shell grep sbcl debian/control | sed -r 's,.*\[(.+)\].*,\1,')

ifneq (,$(filter $(DEB_HOST_ARCH),$(HAVE_SBCL)))
LISP := sbcl
else
LISP := gcl
endif

oa_libdir := /usr/lib/open-axiom

PACKAGE      := open-axiom
SVN_REPO     := svn://svn.code.sf.net/p/open-axiom/code/trunk
SRC_VERSION  := $(shell dpkg-parsechangelog | 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 \
		 $(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
	# aclocal.m4 is older than configure; rebuilding aclocal.m4 requires aclocal-1.13
	touch aclocal.m4 -r configure.ac
	dh_auto_configure -B $(BUILD) -- \
		--with-lisp=$(LISP) \
		--with-x \
		--disable-gcl \
		LDFLAGS="$(LDFLAGS)"
	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_md5sums
	dh_builddeb -- -Zxz

clean:
	dh_testdir
	dh_testroot
	rm -rf $(BUILD)
	rm -f install-stamp build-stamp configure-stamp
	dh_clean