summaryrefslogtreecommitdiff
path: root/debian/rules
blob: 8db784f3799f9e4f023573f32f72fef2a398494f (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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
#!/usr/bin/make -f

plain-pkg	:= clsql

pkg		:= cl-sql
pkg-uffi	:= cl-sql-uffi
pkg-mysql	:= cl-sql-mysql
pkg-pg		:= cl-sql-postgresql
pkg-pg-socket	:= cl-sql-postgresql-socket
pkg-aodbc	:= cl-sql-aodbc
pkg-odbc	:= cl-sql-odbc
pkg-sqlite3	:= cl-sql-sqlite3
pkg-oracle	:= cl-sql-oracle
pkg-tests	:= cl-sql-tests
all-pkgs	:= $(pkg) $(pkg-uffi) $(pkg-mysql) $(pkg-pg) $(pkg-pg-socket) $(pkg-aodbc) $(pkg-odbc) $(pkg-sqlite3) $(pkg-tests)


UPSTREAM_VER	:= $(shell sed -n -e "s/${pkg} (\(.*\)-[0-9A-Za-z\.]).*/\1/p" < debian/changelog |head -1)

## Lisp sources
srcs-sql	:= $(wildcard sql/*.lisp)
srcs-uffi	:= $(wildcard uffi/*.lisp) $(wildcard uffi/*.c)
srcs-uffi-so	= $(wildcard uffi/*.so)
srcs-mysql	:= $(wildcard db-mysql/*.lisp) $(wildcard db-mysql/*.c)
srcs-mysql-so	=  $(wildcard db-mysql/*.so)
srcs-pg		:= $(wildcard db-postgresql/*.lisp)
srcs-pg-socket	:= $(wildcard db-postgresql-socket/*.lisp)
srcs-aodbc	:= $(wildcard db-aodbc/*.lisp)
srcs-odbc	:= $(wildcard db-odbc/*.lisp)
srcs-sqlite3	:= $(wildcard db-sqlite3/*.lisp)
srcs-oracle	:= $(wildcard db-oracle/*.lisp)
srcs-tests	:= $(wildcard tests/*.lisp)

clc-base	:= usr/share/common-lisp
clc-source	:= $(clc-base)/source
clc-systems	:= $(clc-base)/systems
doc-dir		:= usr/share/doc/cl-sql

clc-clsql	:= $(clc-source)/$(plain-pkg)

clc-sql		:= $(clc-source)/clsql
lispdir-sql	:= $(clc-sql)/sql
clc-uffi	:= $(clc-source)/clsql-uffi
lispdir-uffi 	:= $(clc-uffi)/uffi
sodir-uffi 	:= usr/lib/clsql
clc-mysql	:= $(clc-source)/clsql-mysql
lispdir-mysql	:= $(clc-mysql)/db-mysql
sodir-mysql	:= usr/lib/clsql
clc-pg		:= $(clc-source)/clsql-postgresql
lispdir-pg	:= $(clc-pg)/db-postgresql
clc-pg-socket 	:= $(clc-source)/clsql-postgresql-socket
lispdir-pg-socket := $(clc-pg-socket)/db-postgresql-socket
clc-aodbc	:= $(clc-source)/clsql-aodbc
lispdir-aodbc	:= $(clc-aodbc)/db-aodbc
clc-odbc	:= $(clc-source)/clsql-odbc
lispdir-odbc	:= $(clc-odbc)/db-odbc
clc-sqlite3	:= $(clc-source)/clsql-sqlite3
lispdir-sqlite3	:= $(clc-sqlite3)/db-sqlite3
clc-oracle	:= $(clc-source)/clsql-oracle
lispdir-oracle	:= $(clc-oracle)/db-oracle
clc-tests	:= $(clc-source)/clsql-tests
lispdir-tests	:= $(clc-tests)/tests


build-arch: build-arch-stamp
build-arch-stamp:
	dh_testdir
	$(MAKE)
	touch build-arch-stamp

build-indep:

build: build-arch

clean:
	dh_testdir
	dh_testroot
	rm -f build-arch-stamp
	[ ! -f Makefile ] || $(MAKE) distclean
	find . -type f -and -name \*~ -or -name .\*~ -exec rm -f {} \;
	rm -rf doc/html
	dh_clean db-mysql/clsql_mysql.dll uffi/clsql_uffi.dll

install: DH_OPTIONS= install-indep install-arch

install-indep: 
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs
	dh_installdirs --all $(clc-source)
	dh_installdirs -p $(pkg) $(lispdir-sql) etc
	dh_installdirs -p $(pkg-pg) $(lispdir-pg)
	dh_installdirs -p $(pkg-pg-socket) $(lispdir-pg-socket)
	dh_installdirs -p $(pkg-aodbc) $(lispdir-aodbc)
	dh_installdirs -p $(pkg-odbc) $(lispdir-odbc)
	dh_installdirs -p $(pkg-sqlite3) $(lispdir-sqlite3)
	dh_installdirs -p $(pkg-oracle) $(lispdir-oracle)
	dh_installdirs -p $(pkg-tests) $(lispdir-tests)

	# Main package
	dh_install -p $(pkg) $(srcs-sql) $(lispdir-sql)
	dh_install -p $(pkg) clsql.asd $(clc-clsql)
	dh_install -p $(pkg) debian/clsql-init.lisp etc

	dh_install -p $(pkg-pg) $(srcs-pg) $(lispdir-pg)
	dh_install -p $(pkg-pg) clsql-postgresql.asd $(clc-pg)
	dh_install -p $(pkg-pg-socket) $(srcs-pg-socket) $(lispdir-pg-socket)
	dh_install -p $(pkg-pg-socket) clsql-postgresql-socket.asd $(clc-pg-socket)
	dh_install -p $(pkg-aodbc) $(srcs-aodbc) $(lispdir-aodbc)
	dh_install -p $(pkg-aodbc) clsql-aodbc.asd $(clc-aodbc)
	dh_install -p $(pkg-odbc) $(srcs-odbc) $(lispdir-odbc)
	dh_install -p $(pkg-odbc) clsql-odbc.asd $(clc-odbc)
	dh_install -p $(pkg-sqlite3) $(srcs-sqlite3) $(lispdir-sqlite3)
	dh_install -p $(pkg-sqlite3) clsql-sqlite3.asd $(clc-sqlite3)
	dh_install -p $(pkg-oracle) $(srcs-oracle) $(lispdir-oracle)
	dh_install -p $(pkg-oracle) clsql-oracle.asd $(clc-oracle)

	dh_install -p $(pkg-tests) $(srcs-tests) $(lispdir-tests)
	dh_install -p $(pkg-tests) clsql-tests.asd $(clc-tests)

	# Documentation
	rm -rf doc/html
	(cd doc; tar xzf html.tar.gz; cd ..)

install-arch: 
	dh_testdir
	dh_testroot
	dh_prep
	dh_installdirs

	dh_installdirs -p $(pkg-uffi) $(lispdir-uffi) $(sodir-uffi)
	dh_installdirs -p $(pkg-mysql) $(lispdir-mysql) $(sodir-mysql)

	# UFFI
	dh_install -p $(pkg-uffi) $(srcs-uffi) $(lispdir-uffi)
	dh_install -p $(pkg-uffi) $(srcs-uffi-so) $(sodir-uffi)
	dh_install -p $(pkg-uffi) clsql-uffi.asd $(clc-uffi)

	# Backends
	dh_install -p $(pkg-mysql) $(srcs-mysql) $(lispdir-mysql)
	dh_install -p $(pkg-mysql) clsql-mysql.asd $(clc-mysql)
	dh_install -p $(pkg-mysql) $(srcs-mysql-so) $(sodir-mysql)

binary-indep: install-indep
	dh_testdir -i
	dh_testroot -i
	dh_installdocs -i -p $(pkg) doc/html doc/clsql.pdf
	dh_installexamples -i -p $(pkg) examples/*
	dh_installchangelogs -i
	dh_lisp -i
	dh_compress -i
	dh_fixperms -i
	dh_installdeb -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

binary-arch: install-arch
	dh_testdir -a
	dh_testroot -a
	dh_installdocs -a
	dh_installchangelogs -a
	dh_lisp -a
	dh_strip -a
	dh_compress -a
	dh_fixperms -a
	dh_installdeb -a
	dh_shlibdeps -a
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a

binary: binary-indep binary-arch


.PHONY: build clean binary-indep binary-arch binary install