File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / sqlite3 / main.mk
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 17:04:16 2012 UTC (12 years, 10 months ago) by misho
Branches: sqlite3, MAIN
CVS tags: v3_7_10, HEAD
sqlite3

    1: ###############################################################################
    2: # The following macros should be defined before this script is
    3: # invoked:
    4: #
    5: # TOP              The toplevel directory of the source tree.  This is the
    6: #                  directory that contains this "Makefile.in" and the
    7: #                  "configure.in" script.
    8: #
    9: # BCC              C Compiler and options for use in building executables that
   10: #                  will run on the platform that is doing the build.
   11: #
   12: # THREADLIB        Specify any extra linker options needed to make the library
   13: #                  thread safe
   14: #
   15: # OPTS             Extra compiler command-line options.
   16: #
   17: # EXE              The suffix to add to executable files.  ".exe" for windows
   18: #                  and "" for Unix.
   19: #
   20: # TCC              C Compiler and options for use in building executables that 
   21: #                  will run on the target platform.  This is usually the same
   22: #                  as BCC, unless you are cross-compiling.
   23: #
   24: # AR               Tools used to build a static library.
   25: # RANLIB
   26: #
   27: # TCL_FLAGS        Extra compiler options needed for programs that use the
   28: #                  TCL library.
   29: #
   30: # LIBTCL           Linker options needed to link against the TCL library.
   31: #
   32: # READLINE_FLAGS   Compiler options needed for programs that use the
   33: #                  readline() library.
   34: #
   35: # LIBREADLINE      Linker options needed by programs using readline() must
   36: #                  link against.
   37: #
   38: # NAWK             Nawk compatible awk program.  Older (obsolete?) solaris
   39: #                  systems need this to avoid using the original AT&T AWK.
   40: #
   41: # Once the macros above are defined, the rest of this make script will
   42: # build the SQLite library and testing tools.
   43: ################################################################################
   44: 
   45: # This is how we compile
   46: #
   47: TCCX =  $(TCC) $(OPTS) -I. -I$(TOP)/src -I$(TOP) 
   48: TCCX += -I$(TOP)/ext/rtree -I$(TOP)/ext/icu -I$(TOP)/ext/fts3
   49: TCCX += -I$(TOP)/ext/async
   50: 
   51: # Object files for the SQLite library.
   52: #
   53: LIBOBJ+= alter.o analyze.o attach.o auth.o \
   54:          backup.o bitvec.o btmutex.o btree.o build.o \
   55:          callback.o complete.o ctime.o date.o delete.o expr.o fault.o fkey.o \
   56:          fts3.o fts3_aux.o fts3_expr.o fts3_hash.o fts3_icu.o fts3_porter.o \
   57:          fts3_snippet.o fts3_tokenizer.o fts3_tokenizer1.o \
   58:          fts3_write.o func.o global.o hash.o \
   59:          icu.o insert.o journal.o legacy.o loadext.o \
   60:          main.o malloc.o mem0.o mem1.o mem2.o mem3.o mem5.o \
   61:          memjournal.o \
   62:          mutex.o mutex_noop.o mutex_os2.o mutex_unix.o mutex_w32.o \
   63:          notify.o opcodes.o os.o os_os2.o os_unix.o os_win.o \
   64:          pager.o parse.o pcache.o pcache1.o pragma.o prepare.o printf.o \
   65:          random.o resolve.o rowset.o rtree.o select.o status.o \
   66:          table.o tokenize.o trigger.o \
   67:          update.o util.o vacuum.o \
   68:          vdbe.o vdbeapi.o vdbeaux.o vdbeblob.o vdbemem.o vdbesort.o \
   69: 	 vdbetrace.o wal.o walker.o where.o utf.o vtab.o
   70: 
   71: 
   72: 
   73: # All of the source code files.
   74: #
   75: SRC = \
   76:   $(TOP)/src/alter.c \
   77:   $(TOP)/src/analyze.c \
   78:   $(TOP)/src/attach.c \
   79:   $(TOP)/src/auth.c \
   80:   $(TOP)/src/backup.c \
   81:   $(TOP)/src/bitvec.c \
   82:   $(TOP)/src/btmutex.c \
   83:   $(TOP)/src/btree.c \
   84:   $(TOP)/src/btree.h \
   85:   $(TOP)/src/btreeInt.h \
   86:   $(TOP)/src/build.c \
   87:   $(TOP)/src/callback.c \
   88:   $(TOP)/src/complete.c \
   89:   $(TOP)/src/ctime.c \
   90:   $(TOP)/src/date.c \
   91:   $(TOP)/src/delete.c \
   92:   $(TOP)/src/expr.c \
   93:   $(TOP)/src/fault.c \
   94:   $(TOP)/src/fkey.c \
   95:   $(TOP)/src/func.c \
   96:   $(TOP)/src/global.c \
   97:   $(TOP)/src/hash.c \
   98:   $(TOP)/src/hash.h \
   99:   $(TOP)/src/hwtime.h \
  100:   $(TOP)/src/insert.c \
  101:   $(TOP)/src/journal.c \
  102:   $(TOP)/src/legacy.c \
  103:   $(TOP)/src/loadext.c \
  104:   $(TOP)/src/main.c \
  105:   $(TOP)/src/malloc.c \
  106:   $(TOP)/src/mem0.c \
  107:   $(TOP)/src/mem1.c \
  108:   $(TOP)/src/mem2.c \
  109:   $(TOP)/src/mem3.c \
  110:   $(TOP)/src/mem5.c \
  111:   $(TOP)/src/memjournal.c \
  112:   $(TOP)/src/mutex.c \
  113:   $(TOP)/src/mutex.h \
  114:   $(TOP)/src/mutex_noop.c \
  115:   $(TOP)/src/mutex_os2.c \
  116:   $(TOP)/src/mutex_unix.c \
  117:   $(TOP)/src/mutex_w32.c \
  118:   $(TOP)/src/notify.c \
  119:   $(TOP)/src/os.c \
  120:   $(TOP)/src/os.h \
  121:   $(TOP)/src/os_common.h \
  122:   $(TOP)/src/os_os2.c \
  123:   $(TOP)/src/os_unix.c \
  124:   $(TOP)/src/os_win.c \
  125:   $(TOP)/src/pager.c \
  126:   $(TOP)/src/pager.h \
  127:   $(TOP)/src/parse.y \
  128:   $(TOP)/src/pcache.c \
  129:   $(TOP)/src/pcache.h \
  130:   $(TOP)/src/pcache1.c \
  131:   $(TOP)/src/pragma.c \
  132:   $(TOP)/src/prepare.c \
  133:   $(TOP)/src/printf.c \
  134:   $(TOP)/src/random.c \
  135:   $(TOP)/src/resolve.c \
  136:   $(TOP)/src/rowset.c \
  137:   $(TOP)/src/select.c \
  138:   $(TOP)/src/status.c \
  139:   $(TOP)/src/shell.c \
  140:   $(TOP)/src/sqlite.h.in \
  141:   $(TOP)/src/sqlite3ext.h \
  142:   $(TOP)/src/sqliteInt.h \
  143:   $(TOP)/src/sqliteLimit.h \
  144:   $(TOP)/src/table.c \
  145:   $(TOP)/src/tclsqlite.c \
  146:   $(TOP)/src/tokenize.c \
  147:   $(TOP)/src/trigger.c \
  148:   $(TOP)/src/utf.c \
  149:   $(TOP)/src/update.c \
  150:   $(TOP)/src/util.c \
  151:   $(TOP)/src/vacuum.c \
  152:   $(TOP)/src/vdbe.c \
  153:   $(TOP)/src/vdbe.h \
  154:   $(TOP)/src/vdbeapi.c \
  155:   $(TOP)/src/vdbeaux.c \
  156:   $(TOP)/src/vdbeblob.c \
  157:   $(TOP)/src/vdbemem.c \
  158:   $(TOP)/src/vdbesort.c \
  159:   $(TOP)/src/vdbetrace.c \
  160:   $(TOP)/src/vdbeInt.h \
  161:   $(TOP)/src/vtab.c \
  162:   $(TOP)/src/wal.c \
  163:   $(TOP)/src/wal.h \
  164:   $(TOP)/src/walker.c \
  165:   $(TOP)/src/where.c
  166: 
  167: # Source code for extensions
  168: #
  169: SRC += \
  170:   $(TOP)/ext/fts1/fts1.c \
  171:   $(TOP)/ext/fts1/fts1.h \
  172:   $(TOP)/ext/fts1/fts1_hash.c \
  173:   $(TOP)/ext/fts1/fts1_hash.h \
  174:   $(TOP)/ext/fts1/fts1_porter.c \
  175:   $(TOP)/ext/fts1/fts1_tokenizer.h \
  176:   $(TOP)/ext/fts1/fts1_tokenizer1.c
  177: SRC += \
  178:   $(TOP)/ext/fts2/fts2.c \
  179:   $(TOP)/ext/fts2/fts2.h \
  180:   $(TOP)/ext/fts2/fts2_hash.c \
  181:   $(TOP)/ext/fts2/fts2_hash.h \
  182:   $(TOP)/ext/fts2/fts2_icu.c \
  183:   $(TOP)/ext/fts2/fts2_porter.c \
  184:   $(TOP)/ext/fts2/fts2_tokenizer.h \
  185:   $(TOP)/ext/fts2/fts2_tokenizer.c \
  186:   $(TOP)/ext/fts2/fts2_tokenizer1.c
  187: SRC += \
  188:   $(TOP)/ext/fts3/fts3.c \
  189:   $(TOP)/ext/fts3/fts3.h \
  190:   $(TOP)/ext/fts3/fts3Int.h \
  191:   $(TOP)/ext/fts3/fts3_aux.c \
  192:   $(TOP)/ext/fts3/fts3_expr.c \
  193:   $(TOP)/ext/fts3/fts3_hash.c \
  194:   $(TOP)/ext/fts3/fts3_hash.h \
  195:   $(TOP)/ext/fts3/fts3_icu.c \
  196:   $(TOP)/ext/fts3/fts3_porter.c \
  197:   $(TOP)/ext/fts3/fts3_snippet.c \
  198:   $(TOP)/ext/fts3/fts3_tokenizer.h \
  199:   $(TOP)/ext/fts3/fts3_tokenizer.c \
  200:   $(TOP)/ext/fts3/fts3_tokenizer1.c \
  201:   $(TOP)/ext/fts3/fts3_write.c
  202: SRC += \
  203:   $(TOP)/ext/icu/sqliteicu.h \
  204:   $(TOP)/ext/icu/icu.c
  205: SRC += \
  206:   $(TOP)/ext/rtree/rtree.h \
  207:   $(TOP)/ext/rtree/rtree.c
  208: 
  209: 
  210: # Generated source code files
  211: #
  212: SRC += \
  213:   keywordhash.h \
  214:   opcodes.c \
  215:   opcodes.h \
  216:   parse.c \
  217:   parse.h \
  218:   sqlite3.h
  219: 
  220: 
  221: # Source code to the test files.
  222: #
  223: TESTSRC = \
  224:   $(TOP)/ext/fts3/fts3_term.c \
  225:   $(TOP)/ext/fts3/fts3_test.c \
  226:   $(TOP)/src/test1.c \
  227:   $(TOP)/src/test2.c \
  228:   $(TOP)/src/test3.c \
  229:   $(TOP)/src/test4.c \
  230:   $(TOP)/src/test5.c \
  231:   $(TOP)/src/test6.c \
  232:   $(TOP)/src/test7.c \
  233:   $(TOP)/src/test8.c \
  234:   $(TOP)/src/test9.c \
  235:   $(TOP)/src/test_autoext.c \
  236:   $(TOP)/src/test_async.c \
  237:   $(TOP)/src/test_backup.c \
  238:   $(TOP)/src/test_btree.c \
  239:   $(TOP)/src/test_config.c \
  240:   $(TOP)/src/test_demovfs.c \
  241:   $(TOP)/src/test_devsym.c \
  242:   $(TOP)/src/test_func.c \
  243:   $(TOP)/src/test_fuzzer.c \
  244:   $(TOP)/src/test_hexio.c \
  245:   $(TOP)/src/test_init.c \
  246:   $(TOP)/src/test_intarray.c \
  247:   $(TOP)/src/test_journal.c \
  248:   $(TOP)/src/test_malloc.c \
  249:   $(TOP)/src/test_multiplex.c \
  250:   $(TOP)/src/test_mutex.c \
  251:   $(TOP)/src/test_onefile.c \
  252:   $(TOP)/src/test_osinst.c \
  253:   $(TOP)/src/test_pcache.c \
  254:   $(TOP)/src/test_quota.c \
  255:   $(TOP)/src/test_rtree.c \
  256:   $(TOP)/src/test_schema.c \
  257:   $(TOP)/src/test_server.c \
  258:   $(TOP)/src/test_stat.c \
  259:   $(TOP)/src/test_superlock.c \
  260:   $(TOP)/src/test_syscall.c \
  261:   $(TOP)/src/test_tclvar.c \
  262:   $(TOP)/src/test_thread.c \
  263:   $(TOP)/src/test_vfs.c \
  264:   $(TOP)/src/test_wholenumber.c \
  265:   $(TOP)/src/test_wsd.c
  266: 
  267: #TESTSRC += $(TOP)/ext/fts2/fts2_tokenizer.c
  268: #TESTSRC += $(TOP)/ext/fts3/fts3_tokenizer.c
  269: 
  270: TESTSRC2 = \
  271:   $(TOP)/src/attach.c \
  272:   $(TOP)/src/backup.c \
  273:   $(TOP)/src/btree.c \
  274:   $(TOP)/src/build.c \
  275:   $(TOP)/src/date.c \
  276:   $(TOP)/src/expr.c \
  277:   $(TOP)/src/func.c \
  278:   $(TOP)/src/insert.c \
  279:   $(TOP)/src/wal.c \
  280:   $(TOP)/src/mem5.c \
  281:   $(TOP)/src/os.c \
  282:   $(TOP)/src/os_os2.c \
  283:   $(TOP)/src/os_unix.c \
  284:   $(TOP)/src/os_win.c \
  285:   $(TOP)/src/pager.c \
  286:   $(TOP)/src/pragma.c \
  287:   $(TOP)/src/prepare.c \
  288:   $(TOP)/src/printf.c \
  289:   $(TOP)/src/random.c \
  290:   $(TOP)/src/pcache.c \
  291:   $(TOP)/src/pcache1.c \
  292:   $(TOP)/src/select.c \
  293:   $(TOP)/src/tokenize.c \
  294:   $(TOP)/src/utf.c \
  295:   $(TOP)/src/util.c \
  296:   $(TOP)/src/vdbeapi.c \
  297:   $(TOP)/src/vdbeaux.c \
  298:   $(TOP)/src/vdbe.c \
  299:   $(TOP)/src/vdbemem.c \
  300:   $(TOP)/src/where.c \
  301:   parse.c \
  302:   $(TOP)/ext/fts3/fts3.c \
  303:   $(TOP)/ext/fts3/fts3_aux.c \
  304:   $(TOP)/ext/fts3/fts3_expr.c \
  305:   $(TOP)/ext/fts3/fts3_tokenizer.c \
  306:   $(TOP)/ext/fts3/fts3_write.c \
  307:   $(TOP)/ext/async/sqlite3async.c
  308: 
  309: # Header files used by all library source files.
  310: #
  311: HDR = \
  312:    $(TOP)/src/btree.h \
  313:    $(TOP)/src/btreeInt.h \
  314:    $(TOP)/src/hash.h \
  315:    $(TOP)/src/hwtime.h \
  316:    keywordhash.h \
  317:    $(TOP)/src/mutex.h \
  318:    opcodes.h \
  319:    $(TOP)/src/os.h \
  320:    $(TOP)/src/os_common.h \
  321:    $(TOP)/src/pager.h \
  322:    $(TOP)/src/pcache.h \
  323:    parse.h  \
  324:    sqlite3.h  \
  325:    $(TOP)/src/sqlite3ext.h \
  326:    $(TOP)/src/sqliteInt.h  \
  327:    $(TOP)/src/sqliteLimit.h \
  328:    $(TOP)/src/vdbe.h \
  329:    $(TOP)/src/vdbeInt.h
  330: 
  331: # Header files used by extensions
  332: #
  333: EXTHDR += \
  334:   $(TOP)/ext/fts1/fts1.h \
  335:   $(TOP)/ext/fts1/fts1_hash.h \
  336:   $(TOP)/ext/fts1/fts1_tokenizer.h
  337: EXTHDR += \
  338:   $(TOP)/ext/fts2/fts2.h \
  339:   $(TOP)/ext/fts2/fts2_hash.h \
  340:   $(TOP)/ext/fts2/fts2_tokenizer.h
  341: EXTHDR += \
  342:   $(TOP)/ext/fts3/fts3.h \
  343:   $(TOP)/ext/fts3/fts3Int.h \
  344:   $(TOP)/ext/fts3/fts3_hash.h \
  345:   $(TOP)/ext/fts3/fts3_tokenizer.h
  346: EXTHDR += \
  347:   $(TOP)/ext/rtree/rtree.h
  348: EXTHDR += \
  349:   $(TOP)/ext/icu/sqliteicu.h
  350: 
  351: # This is the default Makefile target.  The objects listed here
  352: # are what get build when you type just "make" with no arguments.
  353: #
  354: all:	sqlite3.h libsqlite3.a sqlite3$(EXE)
  355: 
  356: libsqlite3.a:	$(LIBOBJ)
  357: 	$(AR) libsqlite3.a $(LIBOBJ)
  358: 	$(RANLIB) libsqlite3.a
  359: 
  360: sqlite3$(EXE):	$(TOP)/src/shell.c libsqlite3.a sqlite3.h
  361: 	$(TCCX) $(READLINE_FLAGS) -o sqlite3$(EXE)                  \
  362: 		$(TOP)/src/shell.c                                  \
  363: 		libsqlite3.a $(LIBREADLINE) $(TLIBS) $(THREADLIB)
  364: 
  365: sqlite3.o:	sqlite3.c
  366: 	$(TCCX) -c sqlite3.c
  367: 
  368: # This target creates a directory named "tsrc" and fills it with
  369: # copies of all of the C source code and header files needed to
  370: # build on the target system.  Some of the C source code and header
  371: # files are automatically generated.  This target takes care of
  372: # all that automatic generation.
  373: #
  374: target_source:	$(SRC) $(TOP)/tool/vdbe-compress.tcl
  375: 	rm -rf tsrc
  376: 	mkdir tsrc
  377: 	cp -f $(SRC) tsrc
  378: 	rm tsrc/sqlite.h.in tsrc/parse.y
  379: 	tclsh $(TOP)/tool/vdbe-compress.tcl <tsrc/vdbe.c >vdbe.new
  380: 	mv vdbe.new tsrc/vdbe.c
  381: 	touch target_source
  382: 
  383: sqlite3.c:	target_source $(TOP)/tool/mksqlite3c.tcl
  384: 	tclsh $(TOP)/tool/mksqlite3c.tcl
  385: 	echo '#ifndef USE_SYSTEM_SQLITE' >tclsqlite3.c
  386: 	cat sqlite3.c >>tclsqlite3.c
  387: 	echo '#endif /* USE_SYSTEM_SQLITE */' >>tclsqlite3.c
  388: 	cat $(TOP)/src/tclsqlite.c >>tclsqlite3.c
  389: 
  390: sqlite3.c-debug:	target_source $(TOP)/tool/mksqlite3c.tcl
  391: 	tclsh $(TOP)/tool/mksqlite3c.tcl --linemacros
  392: 	echo '#ifndef USE_SYSTEM_SQLITE' >tclsqlite3.c
  393: 	cat sqlite3.c >>tclsqlite3.c
  394: 	echo '#endif /* USE_SYSTEM_SQLITE */' >>tclsqlite3.c
  395: 	echo '#line 1 "tclsqlite.c"' >>tclsqlite3.c
  396: 	cat $(TOP)/src/tclsqlite.c >>tclsqlite3.c
  397: 
  398: sqlite3-all.c:	sqlite3.c $(TOP)/tool/split-sqlite3c.tcl
  399: 	tclsh $(TOP)/tool/split-sqlite3c.tcl
  400: 
  401: fts2amal.c:	target_source $(TOP)/ext/fts2/mkfts2amal.tcl
  402: 	tclsh $(TOP)/ext/fts2/mkfts2amal.tcl
  403: 
  404: fts3amal.c:	target_source $(TOP)/ext/fts3/mkfts3amal.tcl
  405: 	tclsh $(TOP)/ext/fts3/mkfts3amal.tcl
  406: 
  407: # Rules to build the LEMON compiler generator
  408: #
  409: lemon:	$(TOP)/tool/lemon.c $(TOP)/src/lempar.c
  410: 	$(BCC) -o lemon $(TOP)/tool/lemon.c
  411: 	cp $(TOP)/src/lempar.c .
  412: 
  413: # Rules to build individual *.o files from generated *.c files. This
  414: # applies to:
  415: #
  416: #     parse.o
  417: #     opcodes.o
  418: #
  419: %.o: %.c $(HDR)
  420: 	$(TCCX) -c $<
  421: 
  422: # Rules to build individual *.o files from files in the src directory.
  423: #
  424: %.o: $(TOP)/src/%.c $(HDR)
  425: 	$(TCCX) -c $<
  426: 
  427: tclsqlite.o:	$(TOP)/src/tclsqlite.c $(HDR)
  428: 	$(TCCX) $(TCL_FLAGS) -c $(TOP)/src/tclsqlite.c
  429: 
  430: 
  431: 
  432: # Rules to build opcodes.c and opcodes.h
  433: #
  434: opcodes.c:	opcodes.h $(TOP)/mkopcodec.awk
  435: 	$(NAWK) -f $(TOP)/mkopcodec.awk opcodes.h >opcodes.c
  436: 
  437: opcodes.h:	parse.h $(TOP)/src/vdbe.c $(TOP)/mkopcodeh.awk
  438: 	cat parse.h $(TOP)/src/vdbe.c | \
  439: 		$(NAWK) -f $(TOP)/mkopcodeh.awk >opcodes.h
  440: 
  441: # Rules to build parse.c and parse.h - the outputs of lemon.
  442: #
  443: parse.h:	parse.c
  444: 
  445: parse.c:	$(TOP)/src/parse.y lemon $(TOP)/addopcodes.awk
  446: 	cp $(TOP)/src/parse.y .
  447: 	rm -f parse.h
  448: 	./lemon $(OPTS) parse.y
  449: 	mv parse.h parse.h.temp
  450: 	$(NAWK) -f $(TOP)/addopcodes.awk parse.h.temp >parse.h
  451: 
  452: sqlite3.h:	$(TOP)/src/sqlite.h.in $(TOP)/manifest.uuid $(TOP)/VERSION
  453: 	tclsh $(TOP)/tool/mksqlite3h.tcl $(TOP) >sqlite3.h
  454: 
  455: keywordhash.h:	$(TOP)/tool/mkkeywordhash.c
  456: 	$(BCC) -o mkkeywordhash $(OPTS) $(TOP)/tool/mkkeywordhash.c
  457: 	./mkkeywordhash >keywordhash.h
  458: 
  459: 
  460: 
  461: # Rules to build the extension objects.
  462: #
  463: icu.o:	$(TOP)/ext/icu/icu.c $(HDR) $(EXTHDR)
  464: 	$(TCCX) -DSQLITE_CORE -c $(TOP)/ext/icu/icu.c
  465: 
  466: fts2.o:	$(TOP)/ext/fts2/fts2.c $(HDR) $(EXTHDR)
  467: 	$(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts2/fts2.c
  468: 
  469: fts2_hash.o:	$(TOP)/ext/fts2/fts2_hash.c $(HDR) $(EXTHDR)
  470: 	$(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts2/fts2_hash.c
  471: 
  472: fts2_icu.o:	$(TOP)/ext/fts2/fts2_icu.c $(HDR) $(EXTHDR)
  473: 	$(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts2/fts2_icu.c
  474: 
  475: fts2_porter.o:	$(TOP)/ext/fts2/fts2_porter.c $(HDR) $(EXTHDR)
  476: 	$(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts2/fts2_porter.c
  477: 
  478: fts2_tokenizer.o:	$(TOP)/ext/fts2/fts2_tokenizer.c $(HDR) $(EXTHDR)
  479: 	$(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts2/fts2_tokenizer.c
  480: 
  481: fts2_tokenizer1.o:	$(TOP)/ext/fts2/fts2_tokenizer1.c $(HDR) $(EXTHDR)
  482: 	$(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts2/fts2_tokenizer1.c
  483: 
  484: fts3.o:	$(TOP)/ext/fts3/fts3.c $(HDR) $(EXTHDR)
  485: 	$(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3.c
  486: 
  487: fts3_aux.o:	$(TOP)/ext/fts3/fts3_aux.c $(HDR) $(EXTHDR)
  488: 	$(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_aux.c
  489: 
  490: fts3_expr.o:	$(TOP)/ext/fts3/fts3_expr.c $(HDR) $(EXTHDR)
  491: 	$(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_expr.c
  492: 
  493: fts3_hash.o:	$(TOP)/ext/fts3/fts3_hash.c $(HDR) $(EXTHDR)
  494: 	$(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_hash.c
  495: 
  496: fts3_icu.o:	$(TOP)/ext/fts3/fts3_icu.c $(HDR) $(EXTHDR)
  497: 	$(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_icu.c
  498: 
  499: fts3_snippet.o:	$(TOP)/ext/fts3/fts3_snippet.c $(HDR) $(EXTHDR)
  500: 	$(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_snippet.c
  501: 
  502: fts3_porter.o:	$(TOP)/ext/fts3/fts3_porter.c $(HDR) $(EXTHDR)
  503: 	$(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_porter.c
  504: 
  505: fts3_tokenizer.o:	$(TOP)/ext/fts3/fts3_tokenizer.c $(HDR) $(EXTHDR)
  506: 	$(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_tokenizer.c
  507: 
  508: fts3_tokenizer1.o:	$(TOP)/ext/fts3/fts3_tokenizer1.c $(HDR) $(EXTHDR)
  509: 	$(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_tokenizer1.c
  510: 
  511: fts3_write.o:	$(TOP)/ext/fts3/fts3_write.c $(HDR) $(EXTHDR)
  512: 	$(TCCX) -DSQLITE_CORE -c $(TOP)/ext/fts3/fts3_write.c
  513: 
  514: rtree.o:	$(TOP)/ext/rtree/rtree.c $(HDR) $(EXTHDR)
  515: 	$(TCCX) -DSQLITE_CORE -c $(TOP)/ext/rtree/rtree.c
  516: 
  517: 
  518: # Rules for building test programs and for running tests
  519: #
  520: tclsqlite3:	$(TOP)/src/tclsqlite.c libsqlite3.a
  521: 	$(TCCX) $(TCL_FLAGS) -DTCLSH=1 -o tclsqlite3 \
  522: 		$(TOP)/src/tclsqlite.c libsqlite3.a $(LIBTCL) $(THREADLIB)
  523: 
  524: sqlite3_analyzer.c: sqlite3.c $(TOP)/src/test_stat.c $(TOP)/src/tclsqlite.c $(TOP)/tool/spaceanal.tcl
  525: 	echo "#define TCLSH 2" > $@
  526: 	cat sqlite3.c $(TOP)/src/test_stat.c $(TOP)/src/tclsqlite.c >> $@
  527: 	echo "static const char *tclsh_main_loop(void){" >> $@
  528: 	echo "static const char *zMainloop = " >> $@
  529: 	$(NAWK) -f $(TOP)/tool/tostr.awk $(TOP)/tool/spaceanal.tcl >> $@
  530: 	echo "; return zMainloop; }" >> $@
  531: 
  532: sqlite3_analyzer$(EXE): sqlite3_analyzer.c
  533: 	$(TCCX) $(TCL_FLAGS) sqlite3_analyzer.c -o $@ $(LIBTCL) $(THREADLIB) 
  534: 
  535: # Rules to build the 'testfixture' application.
  536: #
  537: TESTFIXTURE_FLAGS  = -DSQLITE_TEST=1 -DSQLITE_CRASH_TEST=1
  538: TESTFIXTURE_FLAGS += -DSQLITE_SERVER=1 -DSQLITE_PRIVATE="" -DSQLITE_CORE 
  539: 
  540: testfixture$(EXE): $(TESTSRC2) libsqlite3.a $(TESTSRC) $(TOP)/src/tclsqlite.c
  541: 	$(TCCX) $(TCL_FLAGS) -DTCLSH=1 $(TESTFIXTURE_FLAGS)                  \
  542: 		$(TESTSRC) $(TESTSRC2) $(TOP)/src/tclsqlite.c                \
  543: 		-o testfixture$(EXE) $(LIBTCL) $(THREADLIB) libsqlite3.a
  544: 
  545: amalgamation-testfixture$(EXE): sqlite3.c $(TESTSRC) $(TOP)/src/tclsqlite.c
  546: 	$(TCCX) $(TCL_FLAGS) -DTCLSH=1 $(TESTFIXTURE_FLAGS)                  \
  547: 		$(TESTSRC) $(TOP)/src/tclsqlite.c sqlite3.c                  \
  548: 		-o testfixture$(EXE) $(LIBTCL) $(THREADLIB)
  549: 
  550: fts3-testfixture$(EXE): sqlite3.c fts3amal.c $(TESTSRC) $(TOP)/src/tclsqlite.c
  551: 	$(TCCX) $(TCL_FLAGS) -DTCLSH=1 $(TESTFIXTURE_FLAGS)                  \
  552: 	-DSQLITE_ENABLE_FTS3=1                                               \
  553: 		$(TESTSRC) $(TOP)/src/tclsqlite.c sqlite3.c fts3amal.c       \
  554: 		-o testfixture$(EXE) $(LIBTCL) $(THREADLIB)
  555: 
  556: fulltest:	testfixture$(EXE) sqlite3$(EXE)
  557: 	./testfixture$(EXE) $(TOP)/test/all.test
  558: 
  559: soaktest:	testfixture$(EXE) sqlite3$(EXE)
  560: 	./testfixture$(EXE) $(TOP)/test/all.test -soak=1
  561: 
  562: test:	testfixture$(EXE) sqlite3$(EXE)
  563: 	./testfixture$(EXE) $(TOP)/test/veryquick.test
  564: 
  565: # The next two rules are used to support the "threadtest" target. Building
  566: # threadtest runs a few thread-safety tests that are implemented in C. This
  567: # target is invoked by the releasetest.tcl script.
  568: # 
  569: threadtest3$(EXE): sqlite3.o $(TOP)/test/threadtest3.c $(TOP)/test/tt3_checkpoint.c
  570: 	$(TCCX) -O2 sqlite3.o $(TOP)/test/threadtest3.c \
  571: 		-o threadtest3$(EXE) $(THREADLIB)
  572: 
  573: threadtest: threadtest3$(EXE)
  574: 	./threadtest3$(EXE)
  575: 
  576: TEST_EXTENSION = $(SHPREFIX)testloadext.$(SO)
  577: $(TEST_EXTENSION): $(TOP)/src/test_loadext.c
  578: 	$(MKSHLIB) $(TOP)/src/test_loadext.c -o $(TEST_EXTENSION)
  579: 
  580: extensiontest: testfixture$(EXE) $(TEST_EXTENSION)
  581: 	./testfixture$(EXE) $(TOP)/test/loadext.test
  582: 
  583: # This target will fail if the SQLite amalgamation contains any exported
  584: # symbols that do not begin with "sqlite3_". It is run as part of the
  585: # releasetest.tcl script.
  586: #
  587: checksymbols: sqlite3.o
  588: 	nm -g --defined-only sqlite3.o | grep -v " sqlite3_" ; test $$? -ne 0
  589: 
  590: 
  591: # Standard install and cleanup targets
  592: #
  593: install:	sqlite3 libsqlite3.a sqlite3.h
  594: 	mv sqlite3 /usr/bin
  595: 	mv libsqlite3.a /usr/lib
  596: 	mv sqlite3.h /usr/include
  597: 
  598: clean:	
  599: 	rm -f *.o sqlite3 sqlite3.exe libsqlite3.a sqlite3.h opcodes.*
  600: 	rm -f lemon lemon.exe lempar.c parse.* sqlite*.tar.gz
  601: 	rm -f mkkeywordhash mkkeywordhash.exe keywordhash.h
  602: 	rm -f $(PUBLISH)
  603: 	rm -f *.da *.bb *.bbg gmon.out
  604: 	rm -rf tsrc target_source
  605: 	rm -f testloadext.dll libtestloadext.so
  606: 	rm -f amalgamation-testfixture amalgamation-testfixture.exe
  607: 	rm -f fts3-testfixture fts3-testfixture.exe
  608: 	rm -f testfixture testfixture.exe
  609: 	rm -f threadtest3 threadtest3.exe
  610: 	rm -f sqlite3.c fts?amal.c tclsqlite3.c
  611: 	rm -f sqlite3_analyzer sqlite3_analyzer.exe sqlite3_analyzer.c

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>