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