r2006: debian
[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-mysql       := 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 ##
27 ## lisp sources per pkg
28 ##
29 srcs            := sql/pool.cl sql/sql.cl sql/transactions.cl sql/utils.cl sql/functional.cl sql/usql.cl
30 srcs-cmucl-compat := $(wilcard cmucl-compat/*.cl)
31 srcs-base       := sql/package.cl sql/db-interface.cl sql/classes.cl sql/conditions.cl
32 srcs-base-uffi  := $(wildcard interfaces/clsql-uffi/*.cl) $(wildcard interfaces/clsql-uffi/*.so)
33 srcs-mysql      := $(wildcard interfaces/mysql/*.cl) $(wildcards interfaces/mysl/*.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 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
80         $(INSTALL) $(INSTALLFLAGS) $(srcs-cmucl-compat) $(prefix)/$(clc-repos)/clsql/cmucl-compat
81
82         # Base
83         $(INSTALL) $(INSTALLFLAGS) $(srcs-base) $(prefix-base)/$(clc-repos)/clsql
84         $(INSTALL) $(INSTALLFLAGS) $(srcs-base-uffi) $(prefix-base)/$(clc-repos)/clsql/interfaces/clsql-uffi
85
86         $(INSTALL) $(INSTALLFLAGS) $(srcs-mysql) $(prefix-mysql)/$(clc-repos)/clsql/interfaces/mysql
87         $(INSTALL) $(INSTALLFLAGS) $(srcs-pg) $(prefix-pg)/$(clc-repos)/clsql/interfaces/postgresql
88         $(INSTALL) $(INSTALLFLAGS) $(srcs-pg-socket) $(prefix-pg-socket)/$(clc-repos)/clsql/interfaces/postgresql-socket
89         $(INSTALL) $(INSTALLFLAGS) $(srcs-aodbc) $(prefix-aodbc)/$(clc-repos)/clsql/interfaces/aodbc
90
91         dh_link ../repositories/clsql $(prefix-base)/$(clc-source)/clsql
92
93         # CLC Systems
94         $(INSTALL) $(INSTALLFLAGS) clsql.system $(prefix)/$(clc-systems)/
95         $(INSTALL) $(INSTALLFLAGS) clsql-base.system $(prefix-base)/$(clc-systems)/
96         $(INSTALL) $(INSTALLFLAGS) clsql-mysql.system $(prefix-mysql)/$(clc-systems)/
97         $(INSTALL) $(INSTALLFLAGS) clsql-postgresql.system $(prefix-pg)/$(clc-systems)/
98         $(INSTALL) $(INSTALLFLAGS) clsql-postgresql-socket.system $(prefix-pg-socket)/$(clc-systems)/
99         $(INSTALL) $(INSTALLFLAGS) clsql-aodbc.system $(prefix-aodbc)/$(clc-systems)/
100
101         # Test suite
102         $(INSTALL) $(INSTALLFLAGS) test-suite/tester-clsql.cl test-suite/acl-compat-tester.cl $(doc-dir)/test-suite
103
104         # Documentation
105         $(INSTALL) $(INSTALLFLAGS) doc/html/* $(doc-dir)/html
106         cp doc/clsql.pdf doc/cl-sql.pdf
107         rm -f doc/cl-sql.pdf.gz
108         gzip doc/cl-sql.pdf
109         $(INSTALL) $(INSTALLFLAGS) doc/cl-sql.pdf.gz $(doc-dir)
110         rm -f doc/cl-sql.pdf.gz
111
112
113 # Build architecture-independent files here.
114 binary-indep: build install
115
116
117
118 # Build architecture-dependent files here.
119 binary-arch: build install
120         dh_testdir
121         dh_testroot
122 #       dh_installdebconf       
123         dh_installdocs
124 #       dh_installexamples 
125 #       dh_installmenu
126 #       dh_installlogrotate
127 #       dh_installemacsen
128 #       dh_installpam
129 #       dh_installmime
130 #       dh_installinit
131 #       dh_installcron
132 #       dh_installman
133 #       dh_installinfo
134 #       dh_undocumented
135         dh_installchangelogs ChangeLog
136         dh_link
137         dh_strip
138         dh_compress
139         dh_fixperms
140 #       dh_makeshlibs
141         dh_installdeb
142 #       dh_perl
143 #       dh_shlibdeps
144         dh_gencontrol
145         dh_md5sums
146         dh_builddeb
147
148 binary: binary-indep binary-arch
149 .PHONY: build clean binary-indep binary-arch binary install configure