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