r2200: Auto commit for Debian build
[clsql.git] / debian / rules
1 #!/usr/bin/make -f
2 # Sample debian/rules that uses debhelper.
3 # GNU copyright 1997 to 1999 by Joey Hess.
4
5 # Uncomment this to turn on verbose mode.
6 export DH_VERBOSE=1
7
8 # This is the debhelper compatibility version to use.
9 export DH_COMPAT=4
10
11 plain-pkg       := clsql
12
13 pkg             := cl-sql
14 pkg-base        := cl-sql-base
15 pkg-mysql       := cl-sql-mysql
16 pkg-pg          := cl-sql-postgresql
17 pkg-pg-socket   := cl-sql-postgresql-socket
18 pkg-aodbc       := cl-sql-aodbc
19 all-pkgs        := $(pkg) $(pkg-base) $(pkg-mysql) $(pkg-pg) $(pkg-pg-socket) $(pkg-aodbc)
20
21 prefix          := debian/$(pkg)
22 prefix-base     := debian/$(pkg-base)
23 prefix-mysql    := debian/$(pkg-mysql)
24 prefix-pg       := debian/$(pkg-pg)
25 prefix-pg-socket := debian/$(pkg-pg-socket)
26 prefix-aodbc    := debian/$(pkg-aodbc)
27
28 UPSTREAM_VER    := $(shell sed -n -e "s/${pkg} (\(.*\)-[0-9.]).*/\1/p" < debian/changelog |head -1)
29
30 ## Lisp sources
31 srcs            := $(wildcard sql/*.cl)
32 srcs-base       := $(wildcard base/*.cl)
33 srcs-base-uffi  := $(wildcard interfaces/clsql-uffi/*.cl) 
34 srcs-base-uffi-so:= $(wildcard interfaces/clsql-uffi/*.so)
35 srcs-mysql      := $(wildcard interfaces/mysql/*.cl)
36 srcs-mysql-so   :=  $(wildcard interfaces/mysql/*.so)
37 srcs-pg         := $(wildcard interfaces/postgresql/*.cl)
38 srcs-pg-socket  := $(wildcard interfaces/postgresql-socket/*.cl)
39 srcs-aodbc      := $(wildcard interfaces/aodbc/*.cl)
40
41 INSTALL := install
42 INSTALLFLAGS    := -g root -o root -m 0644
43 INSTALLEXECFLAGS        := -g root -o root -m 0755
44 INSTALLDIRFLAGS := -d -g root -o root -m 0755
45
46 clc-base        := usr/share/common-lisp
47 clc-source      := $(clc-base)/source
48 clc-systems     := $(clc-base)/systems
49 doc-dir         := $(prefix-base)/usr/share/doc/cl-sql
50
51 clc-clsql       := $(clc-source)/$(plain-pkg)-$(UPSTREAM_VER)
52
53 lispdir         := $(prefix)/$(clc-clsql)
54 lispdir-sql     := $(prefix)/$(clc-clsql)/sql
55 lispdir-base    := $(prefix-base)/$(clc-clsql)/base
56 lispdir-base-uffi := $(prefix-base)/$(clc-clsql)/interfaces/clsql-uffi
57 sodir-base-uffi := $(prefix-base)/usr/lib/clsql
58 lispdir-mysql   := $(prefix-mysql)/$(clc-clsql)/interfaces/mysql
59 sodir-mysql     := $(prefix-mysql)/usr/lib/clsql
60 lispdir-pg      := $(prefix-pg)/$(clc-clsql)/interfaces/postgresql
61 lispdir-pg-socket := $(prefix-pg-socket)/$(clc-clsql)/interfaces/postgresql-socket
62 lispdir-aodbc   := $(prefix-aodbc)/$(clc-clsql)/interfaces/aodbc
63
64
65 configure: configure-stamp
66 configure-stamp:
67         dh_testdir
68         # Add here commands to configure the package.
69         touch configure-stamp
70
71
72 build: build-stamp
73
74 build-stamp: configure-stamp 
75         dh_testdir
76         # Compile helper libraries
77         $(MAKE)
78         touch build-stamp
79
80 clean:
81         dh_testdir
82         dh_testroot
83         rm -f build-stamp configure-stamp
84         # Add here commands to clean up after the build process.
85         $(MAKE) clean
86         dh_clean
87
88 install: build
89         dh_testdir
90         dh_testroot
91         dh_clean -k
92         dh_installdirs --all  $(clc-systems) $(clc-source)
93
94         $(INSTALL) $(INSTALLDIRFLAGS) $(lispdir) $(lispdir-base) \
95                 $(lispdir-base-uffi) $(lispdir-pg) $(lispdir-pg-socket) \
96                 $(lispdir-mysql) $(lispdir-sql) $(lispdir-aodbc) \
97                 $(sodir-base-uffi) $(sodir-mysql)
98
99         # Main package
100         $(INSTALL) $(INSTALLDIRFLAGS) $(lispdir) $(lispdir-int)
101         $(INSTALL) $(INSTALLFLAGS) $(srcs) $(lispdir-sql)
102
103         # Base
104         $(INSTALL) $(INSTALLFLAGS) $(srcs-base) $(lispdir-base)
105         $(INSTALL) $(INSTALLFLAGS) $(srcs-base-uffi) $(lispdir-base-uffi)
106         $(INSTALL) $(INSTALLEXECFLAGS) $(srcs-base-uffi-so) $(sodir-base-uffi)
107
108         $(INSTALL) $(INSTALLFLAGS) $(srcs-mysql) $(lispdir-mysql)
109         $(INSTALL) $(INSTALLEXECFLAGS) $(srcs-mysql-so) $(sodir-mysql)
110         $(INSTALL) $(INSTALLFLAGS) $(srcs-pg) $(lispdir-pg)
111         $(INSTALL) $(INSTALLFLAGS) $(srcs-pg-socket) $(lispdir-pg-socket)
112         $(INSTALL) $(INSTALLFLAGS) $(srcs-aodbc) $(lispdir-aodbc)
113
114         # CLC Systems
115         $(INSTALL) $(INSTALLFLAGS) clsql.system $(prefix)/$(clc-systems)
116         $(INSTALL) $(INSTALLFLAGS) clsql-base.system clsql-uffi.system $(prefix-base)/$(clc-systems)
117         $(INSTALL) $(INSTALLFLAGS) clsql-mysql.system $(prefix-mysql)/$(clc-systems)
118         $(INSTALL) $(INSTALLFLAGS) clsql-postgresql.system $(prefix-pg)/$(clc-systems)
119         $(INSTALL) $(INSTALLFLAGS) clsql-postgresql-socket.system $(prefix-pg-socket)/$(clc-systems)
120         $(INSTALL) $(INSTALLFLAGS) clsql-aodbc.system $(prefix-aodbc)/$(clc-systems)
121
122         # Test suite
123         $(INSTALL) $(INSTALLDIRFLAGS) $(doc-dir)/html $(doc-dir)/test-suite
124  
125         $(INSTALL) $(INSTALLFLAGS) test-suite/tester-clsql.cl test-suite/acl-compat-tester.cl $(doc-dir)/test-suite
126
127         # Documentation
128         rm -rf doc/html
129         (cd doc; tar xzf html.tar.gz; cd ..)
130         $(INSTALL) $(INSTALLFLAGS) doc/html/* $(doc-dir)/html
131         rm -rf doc/html
132         cp doc/clsql.pdf doc/cl-sql.pdf
133         rm -f doc/cl-sql.pdf.gz
134         gzip doc/cl-sql.pdf
135         $(INSTALL) $(INSTALLFLAGS) doc/cl-sql.pdf.gz $(doc-dir)
136         rm -f doc/cl-sql.pdf.gz
137
138 #       From UncommonSQL Debian package: build prerm postinst from templates
139         set -e ;\
140         for p in $(all-pkgs); do \
141                 echo "processing maintainer scripts for $$p" ;\
142                 l=`echo $$p | sed -e "s/^cl-/cl/;"` ;\
143                 sed -e "s/%%/$$l/;" debian/prerm.template > debian/$$p.prerm ;\
144                 sed -e "s/%%/$$l/;" debian/postinst.template > debian/$$p.postinst ;\
145         done
146
147
148 # Build architecture-independent files here.
149 binary-indep: build install
150
151
152
153 # Build architecture-dependent files here.
154 binary-arch: build install
155         dh_testdir
156         dh_testroot
157 #       dh_installdebconf       
158         dh_installdocs
159 #       dh_installexamples 
160         dh_installchangelogs ChangeLog
161         dh_link -p $(pkg-base) $(clc-clsql) $(clc-source)/clsql
162         dh_link -p $(pkg-base) $(clc-clsql) $(clc-source)/clsql-base
163         dh_link -p $(pkg-mysql) $(clc-clsql) $(clc-source)/clsql-mysql
164         dh_link -p $(pkg-pg) $(clc-clsql) $(clc-source)/clsql-postgresql
165         dh_link -p $(pkg-pg-socket) $(clc-clsql) $(clc-source)/clsql-postgresql-socket
166         dh_link -p $(pkg-aodbc) $(clc-clsql) $(clc-source)/clsql-aodbc
167         dh_strip
168         dh_compress
169         dh_fixperms
170 #       dh_makeshlibs
171         dh_installdeb
172 #       dh_perl
173         dh_shlibdeps
174         dh_gencontrol
175         dh_md5sums
176         dh_builddeb
177
178 binary: binary-indep binary-arch
179 .PHONY: build clean binary-indep binary-arch binary install configure