r2027: 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=3
10
11 pkg             := cl-sql
12 pkg-base        := cl-sql-base
13 pkg-mysql       := cl-sql-mysql
14 pkg-pg          := cl-sql-postgresql
15 pkg-pg-socket   := cl-sql-postgresql-socket
16 pkg-aodbc       := cl-sql-aodbc
17 all-pkgs        := $(pkg) $(pkg-base) $(pkg-mysql) $(pkg-pg) $(pkg-pg-socket) $(pkg-aodbc)
18
19 prefix          := debian/$(pkg)
20 prefix-base     := debian/$(pkg-base)
21 prefix-mysql    := debian/$(pkg-mysql)
22 prefix-pg       := debian/$(pkg-pg)
23 prefix-pg-socket := debian/$(pkg-pg-socket)
24 prefix-aodbc    := debian/$(pkg-aodbc)
25
26 ## Lisp sources
27 srcs            := $(wildcard sql/*.cl)
28 srcs-cmucl-compat:= $(wildcard cmucl-compat/*.cl)
29 srcs-base       := $(wildcard base/*.cl)
30 srcs-base-uffi  := $(wildcard interfaces/clsql-uffi/*.cl) 
31 srcs-base-uffi-so:= $(wildcard interfaces/clsql-uffi/*.so)
32 srcs-mysql      := $(wildcard interfaces/mysql/*.cl)
33 srcs-mysql-so   :=  $(wildcard interfaces/mysql/*.so)
34 srcs-pg         := $(wildcard interfaces/postgresql/*.cl)
35 srcs-pg-socket  := $(wildcard interfaces/postgresql-socket/*.cl)
36 srcs-aodbc      := $(wildcard interfaces/aodbc/*.cl)
37
38 INSTALL := install
39 INSTALLFLAGS    := -g root -o root -m 0644
40 INSTALLEXECFLAGS        := -g root -o root -m 0755
41 INSTALLDIRFLAGS := -d -g root -o root -m 0755
42
43 clc-base        := usr/share/common-lisp
44 clc-source      := $(clc-base)/source
45 clc-repos       := $(clc-base)/repositories
46 clc-systems     := $(clc-base)/systems
47 doc-dir         := $(prefix)/usr/share/doc/cl-sql
48
49
50 configure: configure-stamp
51 configure-stamp:
52         dh_testdir
53         # Add here commands to configure the package.
54         touch configure-stamp
55
56
57 build: build-stamp
58
59 build-stamp: configure-stamp 
60         dh_testdir
61         # Compile helper libraries
62         $(MAKE)
63         touch build-stamp
64
65 clean:
66         dh_testdir
67         dh_testroot
68         rm -f build-stamp configure-stamp
69         # Add here commands to clean up after the build process.
70         $(MAKE) clean
71         dh_clean
72
73 install: build
74         dh_testdir
75         dh_testroot
76         dh_clean -k
77         dh_installdirs
78
79         # Main package
80         $(INSTALL) $(INSTALLFLAGS) $(srcs) $(prefix)/$(clc-repos)/clsql/sql
81         $(INSTALL) $(INSTALLFLAGS) $(srcs-cmucl-compat) $(prefix)/$(clc-repos)/clsql/cmucl-compat
82
83         # Base
84         $(INSTALL) $(INSTALLFLAGS) $(srcs-base) $(prefix-base)/$(clc-repos)/clsql/base
85         $(INSTALL) $(INSTALLFLAGS) $(srcs-base-uffi) $(prefix-base)/$(clc-repos)/clsql/interfaces/clsql-uffi
86         $(INSTALL) $(INSTALLEXECFLAGS) $(srcs-base-uffi-so) $(prefix-base)/$(clc-repos)/clsql/interfaces/clsql-uffi
87
88         $(INSTALL) $(INSTALLFLAGS) $(srcs-mysql) $(prefix-mysql)/$(clc-repos)/clsql/interfaces/mysql
89         $(INSTALL) $(INSTALLEXECFLAGS) $(srcs-mysql-so) $(prefix-mysql)/$(clc-repos)/clsql/interfaces/mysql
90         $(INSTALL) $(INSTALLFLAGS) $(srcs-pg) $(prefix-pg)/$(clc-repos)/clsql/interfaces/postgresql
91         $(INSTALL) $(INSTALLFLAGS) $(srcs-pg-socket) $(prefix-pg-socket)/$(clc-repos)/clsql/interfaces/postgresql-socket
92         $(INSTALL) $(INSTALLFLAGS) $(srcs-aodbc) $(prefix-aodbc)/$(clc-repos)/clsql/interfaces/aodbc
93
94         # CLC Systems
95         $(INSTALL) $(INSTALLFLAGS) clsql.system $(prefix)/$(clc-systems)/
96         $(INSTALL) $(INSTALLFLAGS) clsql-base.system $(prefix-base)/$(clc-systems)/
97         $(INSTALL) $(INSTALLFLAGS) clsql-mysql.system $(prefix-mysql)/$(clc-systems)/
98         $(INSTALL) $(INSTALLFLAGS) clsql-postgresql.system $(prefix-pg)/$(clc-systems)/
99         $(INSTALL) $(INSTALLFLAGS) clsql-postgresql-socket.system $(prefix-pg-socket)/$(clc-systems)/
100         $(INSTALL) $(INSTALLFLAGS) clsql-aodbc.system $(prefix-aodbc)/$(clc-systems)/
101
102         # Test suite
103         $(INSTALL) $(INSTALLFLAGS) test-suite/tester-clsql.cl test-suite/acl-compat-tester.cl $(doc-dir)/test-suite
104
105         # Documentation
106         $(INSTALL) $(INSTALLFLAGS) doc/html/* $(doc-dir)/html
107         cp doc/clsql.pdf doc/cl-sql.pdf
108         rm -f doc/cl-sql.pdf.gz
109         gzip doc/cl-sql.pdf
110         $(INSTALL) $(INSTALLFLAGS) doc/cl-sql.pdf.gz $(doc-dir)
111         rm -f doc/cl-sql.pdf.gz
112
113 #       From UncommonSQL Debian package: build prerm postinst from templates
114         set -e ;\
115         for p in $(all-pkgs); do \
116                 echo "processing maintainer scripts for $$p" ;\
117                 l=`echo $$p | sed -e "s/^cl-/cl/;"` ;\
118                 sed -e "s/%%/$$l/;" debian/prerm.template > debian/$$p.prerm ;\
119                 sed -e "s/%%/$$l/;" debian/postinst.template > debian/$$p.postinst ;\
120         done
121
122
123 # Build architecture-independent files here.
124 binary-indep: build install
125
126
127
128 # Build architecture-dependent files here.
129 binary-arch: build install
130         dh_testdir
131         dh_testroot
132 #       dh_installdebconf       
133         dh_installdocs
134 #       dh_installexamples 
135         dh_installchangelogs ChangeLog
136         dh_link -p $(pkg-base) $(clc-repos)/clsql $(clc-source)/clsql
137         dh_link -p $(pkg-base) $(clc-repos)/clsql $(clc-source)/clsql-base
138         dh_link -p $(pkg-mysql) $(clc-repos)/clsql $(clc-source)/clsql-mysql
139         dh_link -p $(pkg-pg) $(clc-repos)/clsql $(clc-source)/clsql-postgresql
140         dh_link -p $(pkg-pg-socket) $(clc-repos)/clsql $(clc-source)/clsql-postgresql-socket
141         dh_link -p $(pkg-aodbc) $(clc-repos)/clsql $(clc-source)/clsql-aodbc
142         dh_strip
143         dh_compress
144         dh_fixperms
145 #       dh_makeshlibs
146         dh_installdeb
147 #       dh_perl
148 #       dh_shlibdeps
149         dh_gencontrol
150         dh_md5sums
151         dh_builddeb
152
153 binary: binary-indep binary-arch
154 .PHONY: build clean binary-indep binary-arch binary install configure