1: #!/usr/make
2: #
3: # Makefile for SQLITE on VxWorks
4:
5: ifeq ($(FORCPU),)
6: FORCPU = SH32gnule
7: endif
8:
9: TOOL_FAMILY = gnu
10:
11: include $(WIND_USR)/tool/gnu/make.$(FORCPU)
12:
13: #### The toplevel directory of the source tree. This is the directory
14: # that contains this "Makefile.in" and the "configure.in" script.
15: #
16: TOP = .
17:
18: #### C Compiler and options for use in building executables that
19: # will run on the platform that is doing the build.
20: #
21: BCC = gcc -g -O2
22: #BCC = /opt/ancic/bin/c89 -0
23:
24: #### If the target operating system supports the "usleep()" system
25: # call, then define the HAVE_USLEEP macro for all C modules.
26: #
27: USLEEP =
28: #USLEEP = -DHAVE_USLEEP=1
29:
30: #### If you want the SQLite library to be safe for use within a
31: # multi-threaded program, then define the following macro
32: # appropriately:
33: #
34: THREADSAFE = -DSQLITE_THREADSAFE=1
35: #THREADSAFE = -DSQLITE_THREADSAFE=0
36:
37: #### Specify any extra linker options needed to make the library
38: # thread safe
39: #
40: #THREADLIB = -lpthread
41: THREADLIB =
42:
43: #### Specify any extra libraries needed to access required functions.
44: #
45: ifeq ($(CPU),SH32)
46: # for SH4 shared library
47: TLIBS_SHARED += -L$(WIND_USR)/lib/sh/SH32/commonle/PIC
48: else
49: # for all other CPUs shared library
50: TLIBS_SHARED += $(LD_LINK_PATH_ATEND) $(LD_PARTIAL_LAST_FLAGS)
51: endif
52: # for static library
53: TLIBS += $(LD_LINK_PATH_ATEND) $(LD_PARTIAL_LAST_FLAGS)
54:
55: #### Leave SQLITE_DEBUG undefined for maximum speed. Use SQLITE_DEBUG=1
56: # to check for memory leaks. Use SQLITE_DEBUG=2 to print a log of all
57: # malloc()s and free()s in order to track down memory leaks.
58: #
59: # SQLite uses some expensive assert() statements in the inner loop.
60: # You can make the library go almost twice as fast if you compile
61: # with -DNDEBUG=1
62: #
63: #OPTS = -DSQLITE_DEBUG=2
64: #OPTS = -DSQLITE_DEBUG=1
65: #OPTS =
66: OPTS = -DNDEBUG=1 -DSQLITE_OS_UNIX=1 $(THREADSAFE)
67: OPTS += -DSQLITE_OMIT_LOAD_EXTENSION=1
68: OPTS += -DSQLITE_ENABLE_LOCKING_STYLE=1
69: OPTS += -DSQLITE_THREAD_OVERRIDE_LOCK=0
70: OPTS += -DSQLITE_ENABLE_COLUMN_METADATA=1
71: OPTS += -DHAVE_FDATASYNC=1
72:
73: #### The suffix to add to executable files. ".exe" for windows.
74: # Nothing for unix.
75: #
76: EXE = .vxe
77: #EXE =
78:
79: #### C Compile and options for use in building executables that
80: # will run on the target platform. This is usually the same
81: # as BCC, unless you are cross-compiling.
82: #
83: #TCC = gcc -O6
84: #TCC = gcc -g -O0 -Wall
85: #TCC = gcc -g -O0 -Wall -fprofile-arcs -ftest-coverage
86: #TCC = /opt/mingw/bin/i386-mingw32-gcc -O6
87: TCC = $(CC) $(DEFINE_CC) -O2 -g -mrtp $(CC_ARCH_SPEC) -D_REENTRANT=1 -D_VX_CPU=_VX_$(CPU) -D_VX_TOOL_FAMILY=$(TOOL_FAMILY) -D_VX_TOOL=$(TOOL)
88: TCC += -I$(WIND_USR)/h -I$(WIND_USR)/h/wrn/coreip
89: #TCC = /opt/ansic/bin/c89 -O +z -Wl,-a,archive
90:
91: #TCC_SHARED = $(TCC) -fPIC
92: TCC_SHARED = $(TCC)
93:
94: #### Tools used to build a static library.
95: #
96: #ARX = ar cr
97: #ARX = /opt/mingw/bin/i386-mingw32-ar cr
98: AR += cr
99: #RANLIB = ranlib
100: #RANLIB = /opt/mingw/bin/i386-mingw32-ranlib
101:
102: #MKSHLIB = gcc -shared
103: #SO = so
104: #SHPREFIX = lib
105: MKSHLIB = $(CC) $(DEFINE_CC) -mrtp -shared $(CC_ARCH_SPEC) -D_VX_CPU=_VX_$(CPU) -D_VX_TOOL_FAMILY=$(TOOL_FAMILY) -D_VX_TOOL=$(TOOL)
106: SO = so
107: SHPREFIX = lib
108:
109: #### Extra compiler options needed for programs that use the TCL library.
110: #
111: #TCL_FLAGS =
112: #TCL_FLAGS = -DSTATIC_BUILD=1
113: TCL_FLAGS = -I/home/drh/tcltk/8.5linux
114: #TCL_FLAGS = -I/home/drh/tcltk/8.5win -DSTATIC_BUILD=1
115: #TCL_FLAGS = -I/home/drh/tcltk/8.3hpux
116:
117: #### Linker options needed to link against the TCL library.
118: #
119: #LIBTCL = -ltcl -lm -ldl
120: LIBTCL = /home/drh/tcltk/8.5linux/libtcl8.5g.a -lm -ldl
121: #LIBTCL = /home/drh/tcltk/8.5win/libtcl85s.a -lmsvcrt
122: #LIBTCL = /home/drh/tcltk/8.3hpux/libtcl8.3.a -ldld -lm -lc
123:
124: #### Additional objects for SQLite library when TCL support is enabled.
125: TCLOBJ =
126: #TCLOBJ = tclsqlite.o
127:
128: #### Compiler options needed for programs that use the readline() library.
129: #
130: READLINE_FLAGS =
131: #READLINE_FLAGS = -DHAVE_READLINE=1 -I/usr/include/readline
132:
133: #### Linker options needed by programs using readline() must link against.
134: #
135: LIBREADLINE =
136: #LIBREADLINE = -static -lreadline -ltermcap
137:
138: #### Which "awk" program provides nawk compatibilty
139: #
140: # NAWK = nawk
141: NAWK = awk
142:
143:
144: #### Pasted and adapted main.mk file
145: ###############################################################################
146: # The following macros should be defined before this script is
147: # invoked:
148: #
149: # TOP The toplevel directory of the source tree. This is the
150: # directory that contains this "Makefile.in" and the
151: # "configure.in" script.
152: #
153: # BCC C Compiler and options for use in building executables that
154: # will run on the platform that is doing the build.
155: #
156: # THREADLIB Specify any extra linker options needed to make the library
157: # thread safe
158: #
159: # OPTS Extra compiler command-line options.
160: #
161: # EXE The suffix to add to executable files. ".exe" for windows
162: # and "" for Unix.
163: #
164: # TCC C Compiler and options for use in building executables that
165: # will run on the target platform. This is usually the same
166: # as BCC, unless you are cross-compiling.
167: #
168: # AR Tools used to build a static library.
169: # RANLIB
170: #
171: # TCL_FLAGS Extra compiler options needed for programs that use the
172: # TCL library.
173: #
174: # LIBTCL Linker options needed to link against the TCL library.
175: #
176: # READLINE_FLAGS Compiler options needed for programs that use the
177: # readline() library.
178: #
179: # LIBREADLINE Linker options needed by programs using readline() must
180: # link against.
181: #
182: # NAWK Nawk compatible awk program. Older (obsolete?) solaris
183: # systems need this to avoid using the original AT&T AWK.
184: #
185: # Once the macros above are defined, the rest of this make script will
186: # build the SQLite library and testing tools.
187: ################################################################################
188:
189: # This is how we compile
190: #
191: TCCX = $(TCC) $(OPTS) -I. -I$(TOP)/src -I$(TOP)
192: TCCX_SHARED = $(TCC_SHARED) $(OPTS) -I. -I$(TOP)/src -I$(TOP) \
193: -I$(TOP)/ext/rtree -I$(TOP)/ext/icu -I$(TOP)/ext/fts3 \
194: -I$(TOP)/ext/async
195:
196: # Object files for the SQLite library.
197: #
198: LIBOBJ+= alter.o analyze.o attach.o auth.o \
199: backup.o bitvec.o btmutex.o btree.o build.o \
200: callback.o complete.o date.o delete.o expr.o fault.o \
201: fts3.o fts3_expr.o fts3_hash.o fts3_icu.o fts3_porter.o \
202: fts3_tokenizer.o fts3_tokenizer1.o \
203: func.o global.o hash.o \
204: icu.o insert.o journal.o legacy.o loadext.o \
205: main.o malloc.o mem0.o mem1.o mem2.o mem3.o mem5.o \
206: memjournal.o \
207: mutex.o mutex_noop.o mutex_os2.o mutex_unix.o mutex_w32.o \
208: notify.o opcodes.o os.o os_os2.o os_unix.o os_win.o \
209: pager.o parse.o pcache.o pcache1.o pragma.o prepare.o printf.o \
210: random.o resolve.o rowset.o rtree.o select.o status.o \
211: table.o tokenize.o trigger.o \
212: update.o util.o vacuum.o \
213: vdbe.o vdbeapi.o vdbeaux.o vdbeblob.o vdbemem.o \
214: walker.o where.o utf.o vtab.o
215:
216:
217:
218: # All of the source code files.
219: #
220: SRC = \
221: $(TOP)/src/alter.c \
222: $(TOP)/src/analyze.c \
223: $(TOP)/src/attach.c \
224: $(TOP)/src/auth.c \
225: $(TOP)/src/backup.c \
226: $(TOP)/src/bitvec.c \
227: $(TOP)/src/btmutex.c \
228: $(TOP)/src/btree.c \
229: $(TOP)/src/btree.h \
230: $(TOP)/src/btreeInt.h \
231: $(TOP)/src/build.c \
232: $(TOP)/src/callback.c \
233: $(TOP)/src/complete.c \
234: $(TOP)/src/ctime.c \
235: $(TOP)/src/date.c \
236: $(TOP)/src/delete.c \
237: $(TOP)/src/expr.c \
238: $(TOP)/src/fault.c \
239: $(TOP)/src/func.c \
240: $(TOP)/src/global.c \
241: $(TOP)/src/hash.c \
242: $(TOP)/src/hash.h \
243: $(TOP)/src/hwtime.h \
244: $(TOP)/src/insert.c \
245: $(TOP)/src/journal.c \
246: $(TOP)/src/legacy.c \
247: $(TOP)/src/loadext.c \
248: $(TOP)/src/main.c \
249: $(TOP)/src/malloc.c \
250: $(TOP)/src/mem0.c \
251: $(TOP)/src/mem1.c \
252: $(TOP)/src/mem2.c \
253: $(TOP)/src/mem3.c \
254: $(TOP)/src/mem5.c \
255: $(TOP)/src/memjournal.c \
256: $(TOP)/src/mutex.c \
257: $(TOP)/src/mutex.h \
258: $(TOP)/src/mutex_noop.c \
259: $(TOP)/src/mutex_os2.c \
260: $(TOP)/src/mutex_unix.c \
261: $(TOP)/src/mutex_w32.c \
262: $(TOP)/src/notify.c \
263: $(TOP)/src/os.c \
264: $(TOP)/src/os.h \
265: $(TOP)/src/os_common.h \
266: $(TOP)/src/os_os2.c \
267: $(TOP)/src/os_unix.c \
268: $(TOP)/src/os_win.c \
269: $(TOP)/src/pager.c \
270: $(TOP)/src/pager.h \
271: $(TOP)/src/parse.y \
272: $(TOP)/src/pcache.c \
273: $(TOP)/src/pcache.h \
274: $(TOP)/src/pcache1.c \
275: $(TOP)/src/pragma.c \
276: $(TOP)/src/prepare.c \
277: $(TOP)/src/printf.c \
278: $(TOP)/src/random.c \
279: $(TOP)/src/resolve.c \
280: $(TOP)/src/rowset.c \
281: $(TOP)/src/select.c \
282: $(TOP)/src/status.c \
283: $(TOP)/src/shell.c \
284: $(TOP)/src/sqlite.h.in \
285: $(TOP)/src/sqlite3ext.h \
286: $(TOP)/src/sqliteInt.h \
287: $(TOP)/src/sqliteLimit.h \
288: $(TOP)/src/table.c \
289: $(TOP)/src/tclsqlite.c \
290: $(TOP)/src/tokenize.c \
291: $(TOP)/src/trigger.c \
292: $(TOP)/src/utf.c \
293: $(TOP)/src/update.c \
294: $(TOP)/src/util.c \
295: $(TOP)/src/vacuum.c \
296: $(TOP)/src/vdbe.c \
297: $(TOP)/src/vdbe.h \
298: $(TOP)/src/vdbeapi.c \
299: $(TOP)/src/vdbeaux.c \
300: $(TOP)/src/vdbeblob.c \
301: $(TOP)/src/vdbemem.c \
302: $(TOP)/src/vdbeInt.h \
303: $(TOP)/src/vtab.c \
304: $(TOP)/src/walker.c \
305: $(TOP)/src/where.c
306:
307: # Source code for extensions
308: #
309: SRC += \
310: $(TOP)/ext/fts1/fts1.c \
311: $(TOP)/ext/fts1/fts1.h \
312: $(TOP)/ext/fts1/fts1_hash.c \
313: $(TOP)/ext/fts1/fts1_hash.h \
314: $(TOP)/ext/fts1/fts1_porter.c \
315: $(TOP)/ext/fts1/fts1_tokenizer.h \
316: $(TOP)/ext/fts1/fts1_tokenizer1.c
317: SRC += \
318: $(TOP)/ext/fts2/fts2.c \
319: $(TOP)/ext/fts2/fts2.h \
320: $(TOP)/ext/fts2/fts2_hash.c \
321: $(TOP)/ext/fts2/fts2_hash.h \
322: $(TOP)/ext/fts2/fts2_icu.c \
323: $(TOP)/ext/fts2/fts2_porter.c \
324: $(TOP)/ext/fts2/fts2_tokenizer.h \
325: $(TOP)/ext/fts2/fts2_tokenizer.c \
326: $(TOP)/ext/fts2/fts2_tokenizer1.c
327: SRC += \
328: $(TOP)/ext/fts3/fts3.c \
329: $(TOP)/ext/fts3/fts3.h \
330: $(TOP)/ext/fts3/fts3_expr.c \
331: $(TOP)/ext/fts3/fts3_expr.h \
332: $(TOP)/ext/fts3/fts3_hash.c \
333: $(TOP)/ext/fts3/fts3_hash.h \
334: $(TOP)/ext/fts3/fts3_icu.c \
335: $(TOP)/ext/fts3/fts3_porter.c \
336: $(TOP)/ext/fts3/fts3_tokenizer.h \
337: $(TOP)/ext/fts3/fts3_tokenizer.c \
338: $(TOP)/ext/fts3/fts3_tokenizer1.c
339: SRC += \
340: $(TOP)/ext/icu/sqliteicu.h \
341: $(TOP)/ext/icu/icu.c
342: SRC += \
343: $(TOP)/ext/rtree/rtree.h \
344: $(TOP)/ext/rtree/rtree.c
345:
346:
347: # Generated source code files
348: #
349: SRC += \
350: keywordhash.h \
351: opcodes.c \
352: opcodes.h \
353: parse.c \
354: parse.h \
355: sqlite3.h
356:
357:
358: # Source code to the test files.
359: #
360: TESTSRC = \
361: $(TOP)/src/test1.c \
362: $(TOP)/src/test2.c \
363: $(TOP)/src/test3.c \
364: $(TOP)/src/test4.c \
365: $(TOP)/src/test5.c \
366: $(TOP)/src/test6.c \
367: $(TOP)/src/test7.c \
368: $(TOP)/src/test8.c \
369: $(TOP)/src/test9.c \
370: $(TOP)/src/test_autoext.c \
371: $(TOP)/src/test_async.c \
372: $(TOP)/src/test_backup.c \
373: $(TOP)/src/test_btree.c \
374: $(TOP)/src/test_config.c \
375: $(TOP)/src/test_devsym.c \
376: $(TOP)/src/test_func.c \
377: $(TOP)/src/test_hexio.c \
378: $(TOP)/src/test_journal.c \
379: $(TOP)/src/test_malloc.c \
380: $(TOP)/src/test_md5.c \
381: $(TOP)/src/test_mutex.c \
382: $(TOP)/src/test_onefile.c \
383: $(TOP)/src/test_osinst.c \
384: $(TOP)/src/test_pcache.c \
385: $(TOP)/src/test_schema.c \
386: $(TOP)/src/test_server.c \
387: $(TOP)/src/test_tclvar.c \
388: $(TOP)/src/test_thread.c \
389: $(TOP)/src/test_vfs.c \
390: $(TOP)/src/test_wsd.c \
391:
392: #TESTSRC += $(TOP)/ext/fts2/fts2_tokenizer.c
393: #TESTSRC += $(TOP)/ext/fts3/fts3_tokenizer.c
394:
395: TESTSRC2 = \
396: $(TOP)/src/attach.c $(TOP)/src/backup.c $(TOP)/src/btree.c \
397: $(TOP)/src/build.c $(TOP)/src/ctime.c $(TOP)/src/date.c \
398: $(TOP)/src/expr.c $(TOP)/src/func.c $(TOP)/src/insert.c $(TOP)/src/os.c \
399: $(TOP)/src/os_os2.c $(TOP)/src/os_unix.c $(TOP)/src/os_win.c \
400: $(TOP)/src/pager.c $(TOP)/src/pragma.c $(TOP)/src/prepare.c \
401: $(TOP)/src/printf.c $(TOP)/src/random.c $(TOP)/src/pcache.c \
402: $(TOP)/src/pcache1.c $(TOP)/src/select.c $(TOP)/src/tokenize.c \
403: $(TOP)/src/utf.c $(TOP)/src/util.c $(TOP)/src/vdbeapi.c $(TOP)/src/vdbeaux.c \
404: $(TOP)/src/vdbe.c $(TOP)/src/vdbemem.c $(TOP)/src/where.c parse.c \
405: $(TOP)/ext/fts3/fts3.c $(TOP)/ext/fts3/fts3_expr.c \
406: $(TOP)/ext/fts3/fts3_tokenizer.c \
407: $(TOP)/ext/async/sqlite3async.c
408:
409: # Header files used by all library source files.
410: #
411: HDR = \
412: $(TOP)/src/btree.h \
413: $(TOP)/src/btreeInt.h \
414: $(TOP)/src/hash.h \
415: $(TOP)/src/hwtime.h \
416: keywordhash.h \
417: $(TOP)/src/mutex.h \
418: opcodes.h \
419: $(TOP)/src/os.h \
420: $(TOP)/src/os_common.h \
421: $(TOP)/src/pager.h \
422: $(TOP)/src/pcache.h \
423: parse.h \
424: sqlite3.h \
425: $(TOP)/src/sqlite3ext.h \
426: $(TOP)/src/sqliteInt.h \
427: $(TOP)/src/sqliteLimit.h \
428: $(TOP)/src/vdbe.h \
429: $(TOP)/src/vdbeInt.h
430:
431: # Header files used by extensions
432: #
433: EXTHDR += \
434: $(TOP)/ext/fts1/fts1.h \
435: $(TOP)/ext/fts1/fts1_hash.h \
436: $(TOP)/ext/fts1/fts1_tokenizer.h
437: EXTHDR += \
438: $(TOP)/ext/fts2/fts2.h \
439: $(TOP)/ext/fts2/fts2_hash.h \
440: $(TOP)/ext/fts2/fts2_tokenizer.h
441: EXTHDR += \
442: $(TOP)/ext/fts3/fts3.h \
443: $(TOP)/ext/fts3/fts3_expr.h \
444: $(TOP)/ext/fts3/fts3_hash.h \
445: $(TOP)/ext/fts3/fts3_tokenizer.h
446: EXTHDR += \
447: $(TOP)/ext/rtree/rtree.h
448: EXTHDR += \
449: $(TOP)/ext/icu/sqliteicu.h
450:
451: # This is the default Makefile target. The objects listed here
452: # are what get build when you type just "make" with no arguments.
453: #
454: all: sqlite3.h libsqlite3.a sqlite3$(EXE)
455:
456: libsqlite3.a: $(LIBOBJ)
457: $(AR) libsqlite3.a $(LIBOBJ)
458: $(RANLIB) libsqlite3.a
459:
460: $(SHPREFIX)sqlite3.$(SO): $(LIBOBJ)
461: $(MKSHLIB) -o $(SHPREFIX)sqlite3.$(SO) $(LIBOBJ) $(TLIBS_SHARED)
462:
463: sqlite3$(EXE): $(TOP)/src/shell.c libsqlite3.a sqlite3.h
464: $(TCCX) $(READLINE_FLAGS) -o sqlite3$(EXE) \
465: $(TOP)/src/shell.c \
466: $(LIBREADLINE) $(TLIBS) $(THREADLIB) -L. -lsqlite3
467:
468: # This target creates a directory named "tsrc" and fills it with
469: # copies of all of the C source code and header files needed to
470: # build on the target system. Some of the C source code and header
471: # files are automatically generated. This target takes care of
472: # all that automatic generation.
473: #
474: target_source: $(SRC)
475: rm -rf tsrc
476: mkdir tsrc
477: cp -f $(SRC) tsrc
478: rm tsrc/sqlite.h.in tsrc/parse.y
479: touch target_source
480:
481: sqlite3.c: target_source $(TOP)/tool/mksqlite3c.tcl
482: tclsh $(TOP)/tool/mksqlite3c.tcl
483: cp sqlite3.c tclsqlite3.c
484: cat $(TOP)/src/tclsqlite.c >>tclsqlite3.c
485:
486: fts2amal.c: target_source $(TOP)/ext/fts2/mkfts2amal.tcl
487: tclsh $(TOP)/ext/fts2/mkfts2amal.tcl
488:
489: fts3amal.c: target_source $(TOP)/ext/fts3/mkfts3amal.tcl
490: tclsh $(TOP)/ext/fts3/mkfts3amal.tcl
491:
492: # Rules to build the LEMON compiler generator
493: #
494: lemon: $(TOP)/tool/lemon.c $(TOP)/src/lempar.c
495: $(BCC) -o lemon $(TOP)/tool/lemon.c
496: cp $(TOP)/src/lempar.c .
497:
498: # Rules to build individual *.o files from generated *.c files. This
499: # applies to:
500: #
501: # parse.o
502: # opcodes.o
503: #
504: %.o: %.c $(HDR)
505: $(TCCX_SHARED) -c $<
506:
507: # Rules to build individual *.o files from files in the src directory.
508: #
509: %.o: $(TOP)/src/%.c $(HDR)
510: $(TCCX_SHARED) -c $<
511:
512: tclsqlite.o: $(TOP)/src/tclsqlite.c $(HDR)
513: $(TCCX_SHARED) $(TCL_FLAGS) -c $(TOP)/src/tclsqlite.c
514:
515:
516:
517: # Rules to build opcodes.c and opcodes.h
518: #
519: opcodes.c: opcodes.h $(TOP)/mkopcodec.awk
520: $(NAWK) -f $(TOP)/mkopcodec.awk opcodes.h >opcodes.c
521:
522: opcodes.h: parse.h $(TOP)/src/vdbe.c $(TOP)/mkopcodeh.awk
523: cat parse.h $(TOP)/src/vdbe.c | \
524: $(NAWK) -f $(TOP)/mkopcodeh.awk >opcodes.h
525:
526: # Rules to build parse.c and parse.h - the outputs of lemon.
527: #
528: parse.h: parse.c
529:
530: parse.c: $(TOP)/src/parse.y lemon $(TOP)/addopcodes.awk
531: cp $(TOP)/src/parse.y .
532: rm -f parse.h
533: ./lemon $(OPTS) parse.y
534: mv parse.h parse.h.temp
535: awk -f $(TOP)/addopcodes.awk parse.h.temp >parse.h
536:
537: sqlite3.h: $(TOP)/src/sqlite.h.in
538: sed -e s/--VERS--/`cat ${TOP}/VERSION`/ \
539: -e s/--VERSION-NUMBER--/`cat ${TOP}/VERSION | sed 's/[^0-9]/ /g' | $(NAWK) '{printf "%d%03d%03d",$$1,$$2,$$3}'`/ \
540: $(TOP)/src/sqlite.h.in >sqlite3.h
541:
542: keywordhash.h: $(TOP)/tool/mkkeywordhash.c
543: $(BCC) -o mkkeywordhash $(OPTS) $(TOP)/tool/mkkeywordhash.c
544: ./mkkeywordhash >keywordhash.h
545:
546:
547:
548: # Rules to build the extension objects.
549: #
550: icu.o: $(TOP)/ext/icu/icu.c $(HDR) $(EXTHDR)
551: $(TCCX_SHARED) -DSQLITE_CORE -c $(TOP)/ext/icu/icu.c
552:
553: fts2.o: $(TOP)/ext/fts2/fts2.c $(HDR) $(EXTHDR)
554: $(TCCX_SHARED) -DSQLITE_CORE -c $(TOP)/ext/fts2/fts2.c
555:
556: fts2_hash.o: $(TOP)/ext/fts2/fts2_hash.c $(HDR) $(EXTHDR)
557: $(TCCX_SHARED) -DSQLITE_CORE -c $(TOP)/ext/fts2/fts2_hash.c
558:
559: fts2_icu.o: $(TOP)/ext/fts2/fts2_icu.c $(HDR) $(EXTHDR)
560: $(TCCX_SHARED) -DSQLITE_CORE -c $(TOP)/ext/fts2/fts2_icu.c
561:
562: fts2_porter.o: $(TOP)/ext/fts2/fts2_porter.c $(HDR) $(EXTHDR)
563: $(TCCX_SHARED) -DSQLITE_CORE -c $(TOP)/ext/fts2/fts2_porter.c
564:
565: fts2_tokenizer.o: $(TOP)/ext/fts2/fts2_tokenizer.c $(HDR) $(EXTHDR)
566: $(TCCX_SHARED) -DSQLITE_CORE -c $(TOP)/ext/fts2/fts2_tokenizer.c
567:
568: fts2_tokenizer1.o: $(TOP)/ext/fts2/fts2_tokenizer1.c $(HDR) $(EXTHDR)
569: $(TCCX_SHARED) -DSQLITE_CORE -c $(TOP)/ext/fts2/fts2_tokenizer1.c
570:
571: fts3.o: $(TOP)/ext/fts3/fts3.c $(HDR) $(EXTHDR)
572: $(TCCX_SHARED) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3.c
573:
574: fts3_expr.o: $(TOP)/ext/fts3/fts3_expr.c $(HDR) $(EXTHDR)
575: $(TCCX_SHARED) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_expr.c
576:
577: fts3_hash.o: $(TOP)/ext/fts3/fts3_hash.c $(HDR) $(EXTHDR)
578: $(TCCX_SHARED) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_hash.c
579:
580: fts3_icu.o: $(TOP)/ext/fts3/fts3_icu.c $(HDR) $(EXTHDR)
581: $(TCCX_SHARED) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_icu.c
582:
583: fts3_porter.o: $(TOP)/ext/fts3/fts3_porter.c $(HDR) $(EXTHDR)
584: $(TCCX_SHARED) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_porter.c
585:
586: fts3_tokenizer.o: $(TOP)/ext/fts3/fts3_tokenizer.c $(HDR) $(EXTHDR)
587: $(TCCX_SHARED) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_tokenizer.c
588:
589: fts3_tokenizer1.o: $(TOP)/ext/fts3/fts3_tokenizer1.c $(HDR) $(EXTHDR)
590: $(TCCX_SHARED) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_tokenizer1.c
591:
592: rtree.o: $(TOP)/ext/rtree/rtree.c $(HDR) $(EXTHDR)
593: $(TCCX_SHARED) -DSQLITE_CORE -c $(TOP)/ext/rtree/rtree.c
594:
595:
596: # Rules for building test programs and for running tests
597: #
598: tclsqlite3: $(TOP)/src/tclsqlite.c libsqlite3.a
599: $(TCCX_SHARED) $(TCL_FLAGS) -DTCLSH=1 -o tclsqlite3 \
600: $(TOP)/src/tclsqlite.c libsqlite3.a $(LIBTCL) $(THREADLIB)
601:
602:
603: # Rules to build the 'testfixture' application.
604: #
605: TESTFIXTURE_FLAGS = -DTCLSH=1 -DSQLITE_TEST=1 -DSQLITE_CRASH_TEST=1
606: TESTFIXTURE_FLAGS += -DSQLITE_SERVER=1 -DSQLITE_PRIVATE="" -DSQLITE_CORE
607:
608: testfixture$(EXE): $(TESTSRC2) libsqlite3.a $(TESTSRC) $(TOP)/src/tclsqlite.c
609: $(TCCX) $(TCL_FLAGS) $(TESTFIXTURE_FLAGS) \
610: $(TESTSRC) $(TESTSRC2) $(TOP)/src/tclsqlite.c \
611: -o testfixture$(EXE) $(LIBTCL) $(THREADLIB) libsqlite3.a
612:
613: amalgamation-testfixture$(EXE): sqlite3.c $(TESTSRC) $(TOP)/src/tclsqlite.c
614: $(TCCX) $(TCL_FLAGS) $(TESTFIXTURE_FLAGS) \
615: $(TESTSRC) $(TOP)/src/tclsqlite.c sqlite3.c \
616: -o testfixture$(EXE) $(LIBTCL) $(THREADLIB)
617:
618: fts3-testfixture$(EXE): sqlite3.c fts3amal.c $(TESTSRC) $(TOP)/src/tclsqlite.c
619: $(TCCX) $(TCL_FLAGS) $(TESTFIXTURE_FLAGS) \
620: -DSQLITE_ENABLE_FTS3=1 \
621: $(TESTSRC) $(TOP)/src/tclsqlite.c sqlite3.c fts3amal.c \
622: -o testfixture$(EXE) $(LIBTCL) $(THREADLIB)
623:
624: fulltest: testfixture$(EXE) sqlite3$(EXE)
625: ./testfixture$(EXE) $(TOP)/test/all.test
626:
627: soaktest: testfixture$(EXE) sqlite3$(EXE)
628: ./testfixture$(EXE) $(TOP)/test/all.test -soak=1
629:
630: test: testfixture$(EXE) sqlite3$(EXE)
631: ./testfixture$(EXE) $(TOP)/test/veryquick.test
632:
633: sqlite3_analyzer$(EXE): $(TOP)/src/tclsqlite.c sqlite3.c $(TESTSRC) \
634: $(TOP)/tool/spaceanal.tcl
635: sed \
636: -e '/^#/d' \
637: -e 's,\\,\\\\,g' \
638: -e 's,",\\",g' \
639: -e 's,^,",' \
640: -e 's,$$,\\n",' \
641: $(TOP)/tool/spaceanal.tcl >spaceanal_tcl.h
642: $(TCCX) $(TCL_FLAGS) $(TESTFIXTURE_FLAGS) \
643: -DTCLSH=2 -DSQLITE_TEST=1 -DSQLITE_DEBUG=1 -DSQLITE_PRIVATE="" \
644: $(TESTSRC) $(TOP)/src/tclsqlite.c sqlite3.c \
645: -o sqlite3_analyzer$(EXE) \
646: $(LIBTCL) $(THREADLIB)
647:
648: TEST_EXTENSION = $(SHPREFIX)testloadext.$(SO)
649: $(TEST_EXTENSION): $(TOP)/src/test_loadext.c
650: $(MKSHLIB) $(TOP)/src/test_loadext.c -o $(TEST_EXTENSION)
651:
652: extensiontest: testfixture$(EXE) $(TEST_EXTENSION)
653: ./testfixture$(EXE) $(TOP)/test/loadext.test
654:
655: clean:
656: rm -f *.o sqlite3$(EXE) libsqlite3.a sqlite3.h opcodes.*
657: rm -f lemon lempar.c parse.* sqlite*.tar.gz mkkeywordhash keywordhash.h
658: rm -f $(PUBLISH)
659: rm -f *.da *.bb *.bbg gmon.out
660: rm -rf tsrc target_source
661: rm -f testloadext.dll libtestloadext.so
662: rm -f sqlite3.c fts?amal.c tclsqlite3.c
663: rm -f $(SHPREFIX)sqlite3.$(SO)
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>