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

    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>