xref: /illumos-gate/usr/src/lib/libsqlite/main.mk (revision c5c4113dfcabb1eed3d4bdf7609de5170027a794)
1*c5c4113dSnw141292#ident	"%Z%%M%	%I%	%E% SMI"
2*c5c4113dSnw141292#
3*c5c4113dSnw141292###############################################################################
4*c5c4113dSnw141292# The following macros should be defined before this script is
5*c5c4113dSnw141292# invoked:
6*c5c4113dSnw141292#
7*c5c4113dSnw141292# TOP              The toplevel directory of the source tree.  This is the
8*c5c4113dSnw141292#                  directory that contains this "Makefile.in" and the
9*c5c4113dSnw141292#                  "configure.in" script.
10*c5c4113dSnw141292#
11*c5c4113dSnw141292# BCC              C Compiler and options for use in building executables that
12*c5c4113dSnw141292#                  will run on the platform that is doing the build.
13*c5c4113dSnw141292#
14*c5c4113dSnw141292# USLEEP           If the target operating system supports the "usleep()" system
15*c5c4113dSnw141292#                  call, then define the HAVE_USLEEP macro for all C modules.
16*c5c4113dSnw141292#
17*c5c4113dSnw141292# THREADSAFE       If you want the SQLite library to be safe for use within a
18*c5c4113dSnw141292#                  multi-threaded program, then define the following macro
19*c5c4113dSnw141292#                  appropriately:
20*c5c4113dSnw141292#
21*c5c4113dSnw141292# THREADLIB        Specify any extra linker options needed to make the library
22*c5c4113dSnw141292#                  thread safe
23*c5c4113dSnw141292#
24*c5c4113dSnw141292# OPTS             Extra compiler command-line options.
25*c5c4113dSnw141292#
26*c5c4113dSnw141292# EXE              The suffix to add to executable files.  ".exe" for windows
27*c5c4113dSnw141292#                  and "" for Unix.
28*c5c4113dSnw141292#
29*c5c4113dSnw141292# TCC              C Compiler and options for use in building executables that
30*c5c4113dSnw141292#                  will run on the target platform.  This is usually the same
31*c5c4113dSnw141292#                  as BCC, unless you are cross-compiling.
32*c5c4113dSnw141292#
33*c5c4113dSnw141292# AR               Tools used to build a static library.
34*c5c4113dSnw141292# RANLIB
35*c5c4113dSnw141292#
36*c5c4113dSnw141292# TCL_FLAGS        Extra compiler options needed for programs that use the
37*c5c4113dSnw141292#                  TCL library.
38*c5c4113dSnw141292#
39*c5c4113dSnw141292# LIBTCL           Linker options needed to link against the TCL library.
40*c5c4113dSnw141292#
41*c5c4113dSnw141292# READLINE_FLAGS   Compiler options needed for programs that use the
42*c5c4113dSnw141292#                  readline() library.
43*c5c4113dSnw141292#
44*c5c4113dSnw141292# LIBREADLINE      Linker options needed by programs using readline() must
45*c5c4113dSnw141292#                  link against.
46*c5c4113dSnw141292#
47*c5c4113dSnw141292# ENCODING         "UTF8" or "ISO8859"
48*c5c4113dSnw141292#
49*c5c4113dSnw141292# Once the macros above are defined, the rest of this make script will
50*c5c4113dSnw141292# build the SQLite library and testing tools.
51*c5c4113dSnw141292################################################################################
52*c5c4113dSnw141292
53*c5c4113dSnw141292# This is how we compile
54*c5c4113dSnw141292#
55*c5c4113dSnw141292TCCX = $(TCC) $(OPTS) $(THREADSAFE) $(USLEEP) -I. -I$(TOP)/src
56*c5c4113dSnw141292
57*c5c4113dSnw141292# Object files for the SQLite library.
58*c5c4113dSnw141292#
59*c5c4113dSnw141292LIBOBJ = attach.o auth.o btree.o btree_rb.o build.o copy.o date.o delete.o \
60*c5c4113dSnw141292         expr.o func.o hash.o insert.o \
61*c5c4113dSnw141292         main.o opcodes.o os.o pager.o parse.o pragma.o printf.o random.o \
62*c5c4113dSnw141292         select.o table.o tokenize.o trigger.o update.o util.o \
63*c5c4113dSnw141292         vacuum.o vdbe.o vdbeaux.o where.o tclsqlite.o
64*c5c4113dSnw141292
65*c5c4113dSnw141292# All of the source code files.
66*c5c4113dSnw141292#
67*c5c4113dSnw141292SRC = \
68*c5c4113dSnw141292  $(TOP)/src/attach.c \
69*c5c4113dSnw141292  $(TOP)/src/auth.c \
70*c5c4113dSnw141292  $(TOP)/src/btree.c \
71*c5c4113dSnw141292  $(TOP)/src/btree.h \
72*c5c4113dSnw141292  $(TOP)/src/btree_rb.c \
73*c5c4113dSnw141292  $(TOP)/src/build.c \
74*c5c4113dSnw141292  $(TOP)/src/copy.c \
75*c5c4113dSnw141292  $(TOP)/src/date.c \
76*c5c4113dSnw141292  $(TOP)/src/delete.c \
77*c5c4113dSnw141292  $(TOP)/src/encode.c \
78*c5c4113dSnw141292  $(TOP)/src/expr.c \
79*c5c4113dSnw141292  $(TOP)/src/func.c \
80*c5c4113dSnw141292  $(TOP)/src/hash.c \
81*c5c4113dSnw141292  $(TOP)/src/hash.h \
82*c5c4113dSnw141292  $(TOP)/src/insert.c \
83*c5c4113dSnw141292  $(TOP)/src/main.c \
84*c5c4113dSnw141292  $(TOP)/src/os.c \
85*c5c4113dSnw141292  $(TOP)/src/pager.c \
86*c5c4113dSnw141292  $(TOP)/src/pager.h \
87*c5c4113dSnw141292  $(TOP)/src/parse.y \
88*c5c4113dSnw141292  $(TOP)/src/pragma.c \
89*c5c4113dSnw141292  $(TOP)/src/printf.c \
90*c5c4113dSnw141292  $(TOP)/src/random.c \
91*c5c4113dSnw141292  $(TOP)/src/select.c \
92*c5c4113dSnw141292  $(TOP)/src/shell.c \
93*c5c4113dSnw141292  $(TOP)/src/sqlite.h.in \
94*c5c4113dSnw141292  $(TOP)/src/sqliteInt.h \
95*c5c4113dSnw141292  $(TOP)/src/table.c \
96*c5c4113dSnw141292  $(TOP)/src/tclsqlite.c \
97*c5c4113dSnw141292  $(TOP)/src/tokenize.c \
98*c5c4113dSnw141292  $(TOP)/src/trigger.c \
99*c5c4113dSnw141292  $(TOP)/src/update.c \
100*c5c4113dSnw141292  $(TOP)/src/util.c \
101*c5c4113dSnw141292  $(TOP)/src/vacuum.c \
102*c5c4113dSnw141292  $(TOP)/src/vdbe.c \
103*c5c4113dSnw141292  $(TOP)/src/vdbe.h \
104*c5c4113dSnw141292  $(TOP)/src/vdbeaux.c \
105*c5c4113dSnw141292  $(TOP)/src/vdbeInt.h \
106*c5c4113dSnw141292  $(TOP)/src/where.c
107*c5c4113dSnw141292
108*c5c4113dSnw141292# Source code to the test files.
109*c5c4113dSnw141292#
110*c5c4113dSnw141292TESTSRC = \
111*c5c4113dSnw141292  $(TOP)/src/btree.c \
112*c5c4113dSnw141292  $(TOP)/src/func.c \
113*c5c4113dSnw141292  $(TOP)/src/os.c \
114*c5c4113dSnw141292  $(TOP)/src/pager.c \
115*c5c4113dSnw141292  $(TOP)/src/test1.c \
116*c5c4113dSnw141292  $(TOP)/src/test2.c \
117*c5c4113dSnw141292  $(TOP)/src/test3.c \
118*c5c4113dSnw141292  $(TOP)/src/test4.c \
119*c5c4113dSnw141292  $(TOP)/src/vdbe.c \
120*c5c4113dSnw141292  $(TOP)/src/md5.c
121*c5c4113dSnw141292
122*c5c4113dSnw141292# Header files used by all library source files.
123*c5c4113dSnw141292#
124*c5c4113dSnw141292HDR = \
125*c5c4113dSnw141292   sqlite.h  \
126*c5c4113dSnw141292   $(TOP)/src/btree.h \
127*c5c4113dSnw141292   config.h \
128*c5c4113dSnw141292   $(TOP)/src/hash.h \
129*c5c4113dSnw141292   opcodes.h \
130*c5c4113dSnw141292   $(TOP)/src/os.h \
131*c5c4113dSnw141292   $(TOP)/src/sqliteInt.h  \
132*c5c4113dSnw141292   $(TOP)/src/vdbe.h \
133*c5c4113dSnw141292   parse.h
134*c5c4113dSnw141292
135*c5c4113dSnw141292# Header files used by the VDBE submodule
136*c5c4113dSnw141292#
137*c5c4113dSnw141292VDBEHDR = \
138*c5c4113dSnw141292   $(HDR) \
139*c5c4113dSnw141292   $(TOP)/src/vdbeInt.h
140*c5c4113dSnw141292
141*c5c4113dSnw141292# This is the default Makefile target.  The objects listed here
142*c5c4113dSnw141292# are what get build when you type just "make" with no arguments.
143*c5c4113dSnw141292#
144*c5c4113dSnw141292all:	sqlite.h config.h libsqlite.a sqlite$(EXE)
145*c5c4113dSnw141292
146*c5c4113dSnw141292# Generate the file "last_change" which contains the date of change
147*c5c4113dSnw141292# of the most recently modified source code file
148*c5c4113dSnw141292#
149*c5c4113dSnw141292last_change:	$(SRC)
150*c5c4113dSnw141292	cat $(SRC) | grep '$$Id: ' | sort +4 | tail -1 \
151*c5c4113dSnw141292          | awk '{print $$5,$$6}' >last_change
152*c5c4113dSnw141292
153*c5c4113dSnw141292libsqlite.a:	$(LIBOBJ)
154*c5c4113dSnw141292	$(AR) libsqlite.a $(LIBOBJ)
155*c5c4113dSnw141292	$(RANLIB) libsqlite.a
156*c5c4113dSnw141292
157*c5c4113dSnw141292sqlite$(EXE):	$(TOP)/src/shell.c libsqlite.a sqlite.h
158*c5c4113dSnw141292	$(TCCX) $(READLINE_FLAGS) -o sqlite$(EXE) $(TOP)/src/shell.c \
159*c5c4113dSnw141292		libsqlite.a $(LIBREADLINE) $(THREADLIB)
160*c5c4113dSnw141292
161*c5c4113dSnw141292sqlite_analyzer$(EXE):	$(TOP)/src/tclsqlite.c libsqlite.a $(TESTSRC) \
162*c5c4113dSnw141292			$(TOP)/tool/spaceanal.tcl
163*c5c4113dSnw141292	sed \
164*c5c4113dSnw141292	  -e '/^#/d' \
165*c5c4113dSnw141292	  -e 's,\\,\\\\,g' \
166*c5c4113dSnw141292	  -e 's,",\\",g' \
167*c5c4113dSnw141292	  -e 's,^,",' \
168*c5c4113dSnw141292	  -e 's,$$,\\n",' \
169*c5c4113dSnw141292	  $(TOP)/tool/spaceanal.tcl >spaceanal_tcl.h
170*c5c4113dSnw141292	$(TCCX) $(TCL_FLAGS) -DTCLSH=2 -DSQLITE_TEST=1 -static -o \
171*c5c4113dSnw141292 		sqlite_analyzer$(EXE) $(TESTSRC) $(TOP)/src/tclsqlite.c \
172*c5c4113dSnw141292		libsqlite.a $(LIBTCL)
173*c5c4113dSnw141292
174*c5c4113dSnw141292
175*c5c4113dSnw141292# This target creates a directory named "tsrc" and fills it with
176*c5c4113dSnw141292# copies of all of the C source code and header files needed to
177*c5c4113dSnw141292# build on the target system.  Some of the C source code and header
178*c5c4113dSnw141292# files are automatically generated.  This target takes care of
179*c5c4113dSnw141292# all that automatic generation.
180*c5c4113dSnw141292#
181*c5c4113dSnw141292target_source:	$(SRC) $(VDBEHDR) opcodes.c
182*c5c4113dSnw141292	rm -rf tsrc
183*c5c4113dSnw141292	mkdir tsrc
184*c5c4113dSnw141292	cp $(SRC) $(VDBEHDR) tsrc
185*c5c4113dSnw141292	rm tsrc/sqlite.h.in tsrc/parse.y
186*c5c4113dSnw141292	cp parse.c opcodes.c tsrc
187*c5c4113dSnw141292
188*c5c4113dSnw141292# Rules to build the LEMON compiler generator
189*c5c4113dSnw141292#
190*c5c4113dSnw141292lemon:	$(TOP)/tool/lemon.c $(TOP)/tool/lempar.c
191*c5c4113dSnw141292	$(BCC) -o lemon $(TOP)/tool/lemon.c
192*c5c4113dSnw141292	cp $(TOP)/tool/lempar.c .
193*c5c4113dSnw141292
194*c5c4113dSnw141292btree.o:	$(TOP)/src/btree.c $(HDR) $(TOP)/src/pager.h
195*c5c4113dSnw141292	$(TCCX) -c $(TOP)/src/btree.c
196*c5c4113dSnw141292
197*c5c4113dSnw141292btree_rb.o:	$(TOP)/src/btree_rb.c $(HDR)
198*c5c4113dSnw141292	$(TCCX) -c $(TOP)/src/btree_rb.c
199*c5c4113dSnw141292
200*c5c4113dSnw141292build.o:	$(TOP)/src/build.c $(HDR)
201*c5c4113dSnw141292	$(TCCX) -c $(TOP)/src/build.c
202*c5c4113dSnw141292
203*c5c4113dSnw141292main.o:	$(TOP)/src/main.c $(HDR)
204*c5c4113dSnw141292	$(TCCX) -c $(TOP)/src/main.c
205*c5c4113dSnw141292
206*c5c4113dSnw141292pager.o:	$(TOP)/src/pager.c $(HDR) $(TOP)/src/pager.h
207*c5c4113dSnw141292	$(TCCX) -c $(TOP)/src/pager.c
208*c5c4113dSnw141292
209*c5c4113dSnw141292opcodes.o:	opcodes.c
210*c5c4113dSnw141292	$(TCCX) -c opcodes.c
211*c5c4113dSnw141292
212*c5c4113dSnw141292opcodes.c:	$(TOP)/src/vdbe.c
213*c5c4113dSnw141292	echo '/* Automatically generated file.  Do not edit */' >opcodes.c
214*c5c4113dSnw141292	echo 'char *sqliteOpcodeNames[] = { "???", ' >>opcodes.c
215*c5c4113dSnw141292	grep '^case OP_' $(TOP)/src/vdbe.c | \
216*c5c4113dSnw141292	  sed -e 's/^.*OP_/  "/' -e 's/:.*$$/", /' >>opcodes.c
217*c5c4113dSnw141292	echo '};' >>opcodes.c
218*c5c4113dSnw141292
219*c5c4113dSnw141292opcodes.h:	$(TOP)/src/vdbe.h
220*c5c4113dSnw141292	echo '/* Automatically generated file.  Do not edit */' >opcodes.h
221*c5c4113dSnw141292	grep '^case OP_' $(TOP)/src/vdbe.c | \
222*c5c4113dSnw141292	  sed -e 's/://' | \
223*c5c4113dSnw141292	  awk '{printf "#define %-30s %3d\n", $$2, ++cnt}' >>opcodes.h
224*c5c4113dSnw141292
225*c5c4113dSnw141292os.o:	$(TOP)/src/os.c $(HDR)
226*c5c4113dSnw141292	$(TCCX) -c $(TOP)/src/os.c
227*c5c4113dSnw141292
228*c5c4113dSnw141292parse.o:	parse.c $(HDR)
229*c5c4113dSnw141292	$(TCCX) -c parse.c
230*c5c4113dSnw141292
231*c5c4113dSnw141292parse.h:	parse.c
232*c5c4113dSnw141292
233*c5c4113dSnw141292parse.c:	$(TOP)/src/parse.y lemon
234*c5c4113dSnw141292	cp $(TOP)/src/parse.y .
235*c5c4113dSnw141292	./lemon parse.y
236*c5c4113dSnw141292
237*c5c4113dSnw141292# The config.h file will contain a single #define that tells us how
238*c5c4113dSnw141292# many bytes are in a pointer.  This only works if a pointer is the
239*c5c4113dSnw141292# same size on the host as it is on the target.  If you are cross-compiling
240*c5c4113dSnw141292# to a target with a different pointer size, you'll need to manually
241*c5c4113dSnw141292# configure the config.h file.
242*c5c4113dSnw141292#
243*c5c4113dSnw141292config.h:
244*c5c4113dSnw141292	echo '#include <stdio.h>' >temp.c
245*c5c4113dSnw141292	echo 'int main(){printf(' >>temp.c
246*c5c4113dSnw141292	echo '"#define SQLITE_PTR_SZ %d",sizeof(char*));' >>temp.c
247*c5c4113dSnw141292	echo 'exit(0);}' >>temp.c
248*c5c4113dSnw141292	$(BCC) -o temp temp.c
249*c5c4113dSnw141292	./temp >config.h
250*c5c4113dSnw141292	echo >>config.h
251*c5c4113dSnw141292	rm -f temp.c temp
252*c5c4113dSnw141292
253*c5c4113dSnw141292sqlite.h:	$(TOP)/src/sqlite.h.in
254*c5c4113dSnw141292	sed -e s/--VERS--/`cat ${TOP}/VERSION`/ \
255*c5c4113dSnw141292            -e s/--ENCODING--/$(ENCODING)/ \
256*c5c4113dSnw141292                 $(TOP)/src/sqlite.h.in >sqlite.h
257*c5c4113dSnw141292
258*c5c4113dSnw141292tokenize.o:	$(TOP)/src/tokenize.c $(HDR)
259*c5c4113dSnw141292	$(TCCX) -c $(TOP)/src/tokenize.c
260*c5c4113dSnw141292
261*c5c4113dSnw141292trigger.o:	$(TOP)/src/trigger.c $(HDR)
262*c5c4113dSnw141292	$(TCCX) -c $(TOP)/src/trigger.c
263*c5c4113dSnw141292
264*c5c4113dSnw141292util.o:	$(TOP)/src/util.c $(HDR)
265*c5c4113dSnw141292	$(TCCX) -c $(TOP)/src/util.c
266*c5c4113dSnw141292
267*c5c4113dSnw141292vacuum.o:	$(TOP)/src/vacuum.c $(HDR)
268*c5c4113dSnw141292	$(TCCX) -c $(TOP)/src/vacuum.c
269*c5c4113dSnw141292
270*c5c4113dSnw141292vdbe.o:	$(TOP)/src/vdbe.c $(VDBEHDR)
271*c5c4113dSnw141292	$(TCCX) -c $(TOP)/src/vdbe.c
272*c5c4113dSnw141292
273*c5c4113dSnw141292vdbeaux.o:	$(TOP)/src/vdbeaux.c $(VDBEHDR)
274*c5c4113dSnw141292	$(TCCX) -c $(TOP)/src/vdbeaux.c
275*c5c4113dSnw141292
276*c5c4113dSnw141292where.o:	$(TOP)/src/where.c $(HDR)
277*c5c4113dSnw141292	$(TCCX) -c $(TOP)/src/where.c
278*c5c4113dSnw141292
279*c5c4113dSnw141292copy.o:	$(TOP)/src/copy.c $(HDR)
280*c5c4113dSnw141292	$(TCCX) -c $(TOP)/src/copy.c
281*c5c4113dSnw141292
282*c5c4113dSnw141292date.o:	$(TOP)/src/date.c $(HDR)
283*c5c4113dSnw141292	$(TCCX) -c $(TOP)/src/date.c
284*c5c4113dSnw141292
285*c5c4113dSnw141292delete.o:	$(TOP)/src/delete.c $(HDR)
286*c5c4113dSnw141292	$(TCCX) -c $(TOP)/src/delete.c
287*c5c4113dSnw141292
288*c5c4113dSnw141292encode.o:	$(TOP)/src/encode.c
289*c5c4113dSnw141292	$(TCCX) -c $(TOP)/src/encode.c
290*c5c4113dSnw141292
291*c5c4113dSnw141292expr.o:	$(TOP)/src/expr.c $(HDR)
292*c5c4113dSnw141292	$(TCCX) -c $(TOP)/src/expr.c
293*c5c4113dSnw141292
294*c5c4113dSnw141292func.o:	$(TOP)/src/func.c $(HDR)
295*c5c4113dSnw141292	$(TCCX) -c $(TOP)/src/func.c
296*c5c4113dSnw141292
297*c5c4113dSnw141292hash.o:	$(TOP)/src/hash.c $(HDR)
298*c5c4113dSnw141292	$(TCCX) -c $(TOP)/src/hash.c
299*c5c4113dSnw141292
300*c5c4113dSnw141292insert.o:	$(TOP)/src/insert.c $(HDR)
301*c5c4113dSnw141292	$(TCCX) -c $(TOP)/src/insert.c
302*c5c4113dSnw141292
303*c5c4113dSnw141292random.o:	$(TOP)/src/random.c $(HDR)
304*c5c4113dSnw141292	$(TCCX) -c $(TOP)/src/random.c
305*c5c4113dSnw141292
306*c5c4113dSnw141292select.o:	$(TOP)/src/select.c $(HDR)
307*c5c4113dSnw141292	$(TCCX) -c $(TOP)/src/select.c
308*c5c4113dSnw141292
309*c5c4113dSnw141292table.o:	$(TOP)/src/table.c $(HDR)
310*c5c4113dSnw141292	$(TCCX) -c $(TOP)/src/table.c
311*c5c4113dSnw141292
312*c5c4113dSnw141292update.o:	$(TOP)/src/update.c $(HDR)
313*c5c4113dSnw141292	$(TCCX) -c $(TOP)/src/update.c
314*c5c4113dSnw141292
315*c5c4113dSnw141292tclsqlite.o:	$(TOP)/src/tclsqlite.c $(HDR)
316*c5c4113dSnw141292	$(TCCX) $(TCL_FLAGS) -c $(TOP)/src/tclsqlite.c
317*c5c4113dSnw141292
318*c5c4113dSnw141292pragma.o:	$(TOP)/src/pragma.c $(HDR)
319*c5c4113dSnw141292	$(TCCX) $(TCL_FLAGS) -c $(TOP)/src/pragma.c
320*c5c4113dSnw141292
321*c5c4113dSnw141292printf.o:	$(TOP)/src/printf.c $(HDR)
322*c5c4113dSnw141292	$(TCCX) $(TCL_FLAGS) -c $(TOP)/src/printf.c
323*c5c4113dSnw141292
324*c5c4113dSnw141292attach.o:	$(TOP)/src/attach.c $(HDR)
325*c5c4113dSnw141292	$(TCCX) -c $(TOP)/src/attach.c
326*c5c4113dSnw141292
327*c5c4113dSnw141292auth.o:	$(TOP)/src/auth.c $(HDR)
328*c5c4113dSnw141292	$(TCCX) -c $(TOP)/src/auth.c
329*c5c4113dSnw141292
330*c5c4113dSnw141292tclsqlite:	$(TOP)/src/tclsqlite.c libsqlite.a
331*c5c4113dSnw141292	$(TCCX) $(TCL_FLAGS) -DTCLSH=1 -o tclsqlite \
332*c5c4113dSnw141292		$(TOP)/src/tclsqlite.c libsqlite.a $(LIBTCL)
333*c5c4113dSnw141292
334*c5c4113dSnw141292testfixture$(EXE):	$(TOP)/src/tclsqlite.c libsqlite.a $(TESTSRC)
335*c5c4113dSnw141292	$(TCCX) $(TCL_FLAGS) -DTCLSH=1 -DSQLITE_TEST=1 -o testfixture$(EXE) \
336*c5c4113dSnw141292		$(TESTSRC) $(TOP)/src/tclsqlite.c \
337*c5c4113dSnw141292		libsqlite.a $(LIBTCL) $(THREADLIB)
338*c5c4113dSnw141292
339*c5c4113dSnw141292fulltest:	testfixture$(EXE) sqlite$(EXE)
340*c5c4113dSnw141292	./testfixture$(EXE) $(TOP)/test/all.test
341*c5c4113dSnw141292
342*c5c4113dSnw141292test:	testfixture$(EXE) sqlite$(EXE)
343*c5c4113dSnw141292	./testfixture$(EXE) $(TOP)/test/quick.test
344*c5c4113dSnw141292
345*c5c4113dSnw141292index.html:	$(TOP)/www/index.tcl last_change
346*c5c4113dSnw141292	tclsh $(TOP)/www/index.tcl `cat $(TOP)/VERSION` >index.html
347*c5c4113dSnw141292
348*c5c4113dSnw141292sqlite.html:	$(TOP)/www/sqlite.tcl
349*c5c4113dSnw141292	tclsh $(TOP)/www/sqlite.tcl >sqlite.html
350*c5c4113dSnw141292
351*c5c4113dSnw141292c_interface.html:	$(TOP)/www/c_interface.tcl
352*c5c4113dSnw141292	tclsh $(TOP)/www/c_interface.tcl >c_interface.html
353*c5c4113dSnw141292
354*c5c4113dSnw141292changes.html:	$(TOP)/www/changes.tcl
355*c5c4113dSnw141292	tclsh $(TOP)/www/changes.tcl >changes.html
356*c5c4113dSnw141292
357*c5c4113dSnw141292lang.html:	$(TOP)/www/lang.tcl
358*c5c4113dSnw141292	tclsh $(TOP)/www/lang.tcl >lang.html
359*c5c4113dSnw141292
360*c5c4113dSnw141292vdbe.html:	$(TOP)/www/vdbe.tcl
361*c5c4113dSnw141292	tclsh $(TOP)/www/vdbe.tcl >vdbe.html
362*c5c4113dSnw141292
363*c5c4113dSnw141292arch.html:	$(TOP)/www/arch.tcl
364*c5c4113dSnw141292	tclsh $(TOP)/www/arch.tcl >arch.html
365*c5c4113dSnw141292
366*c5c4113dSnw141292arch.png:	$(TOP)/www/arch.png
367*c5c4113dSnw141292	cp $(TOP)/www/arch.png .
368*c5c4113dSnw141292
369*c5c4113dSnw141292opcode.html:	$(TOP)/www/opcode.tcl $(TOP)/src/vdbe.c
370*c5c4113dSnw141292	tclsh $(TOP)/www/opcode.tcl $(TOP)/src/vdbe.c >opcode.html
371*c5c4113dSnw141292
372*c5c4113dSnw141292mingw.html:	$(TOP)/www/mingw.tcl
373*c5c4113dSnw141292	tclsh $(TOP)/www/mingw.tcl >mingw.html
374*c5c4113dSnw141292
375*c5c4113dSnw141292tclsqlite.html:	$(TOP)/www/tclsqlite.tcl
376*c5c4113dSnw141292	tclsh $(TOP)/www/tclsqlite.tcl >tclsqlite.html
377*c5c4113dSnw141292
378*c5c4113dSnw141292speed.html:	$(TOP)/www/speed.tcl
379*c5c4113dSnw141292	tclsh $(TOP)/www/speed.tcl >speed.html
380*c5c4113dSnw141292
381*c5c4113dSnw141292faq.html:	$(TOP)/www/faq.tcl
382*c5c4113dSnw141292	tclsh $(TOP)/www/faq.tcl >faq.html
383*c5c4113dSnw141292
384*c5c4113dSnw141292formatchng.html:	$(TOP)/www/formatchng.tcl
385*c5c4113dSnw141292	tclsh $(TOP)/www/formatchng.tcl >formatchng.html
386*c5c4113dSnw141292
387*c5c4113dSnw141292conflict.html:	$(TOP)/www/conflict.tcl
388*c5c4113dSnw141292	tclsh $(TOP)/www/conflict.tcl >conflict.html
389*c5c4113dSnw141292
390*c5c4113dSnw141292download.html:	$(TOP)/www/download.tcl
391*c5c4113dSnw141292	tclsh $(TOP)/www/download.tcl >download.html
392*c5c4113dSnw141292
393*c5c4113dSnw141292omitted.html:	$(TOP)/www/omitted.tcl
394*c5c4113dSnw141292	tclsh $(TOP)/www/omitted.tcl >omitted.html
395*c5c4113dSnw141292
396*c5c4113dSnw141292datatypes.html:	$(TOP)/www/datatypes.tcl
397*c5c4113dSnw141292	tclsh $(TOP)/www/datatypes.tcl >datatypes.html
398*c5c4113dSnw141292
399*c5c4113dSnw141292quickstart.html:	$(TOP)/www/quickstart.tcl
400*c5c4113dSnw141292	tclsh $(TOP)/www/quickstart.tcl >quickstart.html
401*c5c4113dSnw141292
402*c5c4113dSnw141292fileformat.html:	$(TOP)/www/fileformat.tcl
403*c5c4113dSnw141292	tclsh $(TOP)/www/fileformat.tcl >fileformat.html
404*c5c4113dSnw141292
405*c5c4113dSnw141292nulls.html:	$(TOP)/www/nulls.tcl
406*c5c4113dSnw141292	tclsh $(TOP)/www/nulls.tcl >nulls.html
407*c5c4113dSnw141292
408*c5c4113dSnw141292
409*c5c4113dSnw141292# Files to be published on the website.
410*c5c4113dSnw141292#
411*c5c4113dSnw141292DOC = \
412*c5c4113dSnw141292  index.html \
413*c5c4113dSnw141292  sqlite.html \
414*c5c4113dSnw141292  changes.html \
415*c5c4113dSnw141292  lang.html \
416*c5c4113dSnw141292  opcode.html \
417*c5c4113dSnw141292  arch.html \
418*c5c4113dSnw141292  arch.png \
419*c5c4113dSnw141292  vdbe.html \
420*c5c4113dSnw141292  c_interface.html \
421*c5c4113dSnw141292  mingw.html \
422*c5c4113dSnw141292  tclsqlite.html \
423*c5c4113dSnw141292  download.html \
424*c5c4113dSnw141292  speed.html \
425*c5c4113dSnw141292  faq.html \
426*c5c4113dSnw141292  formatchng.html \
427*c5c4113dSnw141292  conflict.html \
428*c5c4113dSnw141292  omitted.html \
429*c5c4113dSnw141292  datatypes.html \
430*c5c4113dSnw141292  quickstart.html \
431*c5c4113dSnw141292  fileformat.html \
432*c5c4113dSnw141292  nulls.html
433*c5c4113dSnw141292
434*c5c4113dSnw141292doc:	$(DOC)
435*c5c4113dSnw141292	mkdir -p doc
436*c5c4113dSnw141292	mv $(DOC) doc
437*c5c4113dSnw141292
438*c5c4113dSnw141292install:	sqlite libsqlite.a sqlite.h
439*c5c4113dSnw141292	mv sqlite /usr/bin
440*c5c4113dSnw141292	mv libsqlite.a /usr/lib
441*c5c4113dSnw141292	mv sqlite.h /usr/include
442*c5c4113dSnw141292
443*c5c4113dSnw141292clean:
444*c5c4113dSnw141292	rm -f *.o sqlite libsqlite.a sqlite.h opcodes.*
445*c5c4113dSnw141292	rm -f lemon lempar.c parse.* sqlite*.tar.gz
446*c5c4113dSnw141292	rm -f $(PUBLISH)
447*c5c4113dSnw141292	rm -f *.da *.bb *.bbg gmon.out
448*c5c4113dSnw141292	rm -rf tsrc
449