]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Improvements to the makefile and README for MSVC.
authormistachkin <mistachkin@noemail.net>
Thu, 13 Feb 2014 21:57:48 +0000 (21:57 +0000)
committermistachkin <mistachkin@noemail.net>
Thu, 13 Feb 2014 21:57:48 +0000 (21:57 +0000)
FossilOrigin-Name: b22b61406899c2694dae984995d2484fdb8122f1

Makefile.msc
README.md
manifest
manifest.uuid

index 8dce52b5bc7c29e6fa0a4b4c82f2b03b04fa5bb8..61e51026072b280a35db0a1d56d25e0988b52399 100644 (file)
@@ -214,7 +214,7 @@ NLTLIBPATHS = "/LIBPATH:$(NCRTLIBPATH)" "/LIBPATH:$(NSDKLIBPATH)"
 # will run on the target platform.  (BCC and TCC are usually the
 # same unless your are cross-compiling.)
 #
-TCC = $(CC) -W3 -DSQLITE_OS_WIN=1 -I$(TOP) -I$(TOP)\src -fp:precise
+TCC = $(CC) -W3 -DSQLITE_OS_WIN=1 -I. -I$(TOP) -I$(TOP)\src -fp:precise
 RCC = $(RC) -DSQLITE_OS_WIN=1 -I$(TOP) -I$(TOP)\src
 
 # Check if assembly code listings should be generated for the source
@@ -1219,7 +1219,7 @@ parse.c:  $(TOP)\src\parse.y lemon.exe $(TOP)\addopcodes.awk
        $(NAWK) -f $(TOP)\addopcodes.awk parse.h.temp > parse.h
 
 sqlite3.h:     $(TOP)\src\sqlite.h.in $(TOP)\manifest.uuid $(TOP)\VERSION
-       $(TCLSH_CMD) $(TOP)\tool\mksqlite3h.tcl $(TOP) > sqlite3.h
+       $(TCLSH_CMD) $(TOP)\tool\mksqlite3h.tcl $(TOP:\=/) > sqlite3.h
 
 mkkeywordhash.exe:     $(TOP)\tool\mkkeywordhash.c
        $(BCC) -Fe$@ $(OPT_FEATURE_FLAGS) $(OPTS) $(TOP)\tool\mkkeywordhash.c /link $(NLTLIBPATHS)
index d8042cee4520e22ffa4964ae27f5c1a609f5b363..5e52dea507a0fbd3a162c8d17374655b57f97625 100644 (file)
--- a/README.md
+++ b/README.md
@@ -20,7 +20,7 @@ For example:
     ../sqlite/configure      ;#  Run the configure script
     make                     ;#  Run the makefile.
     make sqlite3.c           ;#  Build the "amalgamation" source file
-    make test                ;#  Run some tests (requires TCL)
+    make test                ;#  Run some tests (requires Tcl)
 
 See the makefile for additional targets.
 
@@ -30,10 +30,33 @@ script does not work out for you, there is a generic makefile named
 can copy and edit to suit your needs.  Comments on the generic makefile
 show what changes are needed.
 
-SQLite does not require TCL to run, but a TCL installation is required
-by the makefiles.  SQLite contains a lot of generated code and TCL is
-used to do much of that code generation.  The makefile also requires
-AWK.
+## Using MSVC
+
+On Windows, all applicable build products can be compiled with MSVC.
+First open the command prompt window associated with the desired compiler
+version (e.g. "Developer Command Prompt for VS2013").  Next, use NMAKE
+with the provided "Makefile.msc" to build one of the supported targets.
+
+For example:
+
+    mkdir bld
+    cd bld
+    nmake /f Makefile.msc TOP=..\sqlite
+    nmake /f Makefile.msc sqlite3.c TOP=..\sqlite
+    nmake /f Makefile.msc sqlite3.dll TOP=..\sqlite
+    nmake /f Makefile.msc sqlite3.exe TOP=..\sqlite
+    nmake /f Makefile.msc test TOP=..\sqlite
+
+There are several build options that can be set via the NMAKE command
+line.  For example, to build for WinRT, simply add "FOR_WINRT=1" argument
+to the "sqlite3.dll" command line above.  When debugging into the SQLite
+code, adding the "DEBUG=1" argument to one of the above command lines is
+recommended.
+
+SQLite does not require Tcl to run, but a Tcl installation is required
+by the makefiles (including those for MSVC).  SQLite contains a lot of
+generated code and Tcl is used to do much of that code generation.  The
+makefiles also require AWK.
 
 ## Source Code Tour
 
@@ -42,11 +65,11 @@ src/ also contains files used to build the "testfixture" test harness;
 those file all begin with "test".  And src/ contains the "shell.c" file
 which is the main program for the "sqlite3.exe" command-line shell and
 the "tclsqlite.c" file which implements the bindings to SQLite from the
-TCL programming language.  (Historical note:  SQLite began as a TCL
+Tcl programming language.  (Historical note:  SQLite began as a Tcl
 extension and only later escaped to the wild as an independent library.)
 
 Test scripts and programs are found in the **test/** subdirectory.
-There are other test suites for SQLite (see 
+There are other test suites for SQLite (see
 [How SQLite Is Tested](http://www.sqlite.org/testing.html))
 but those other test suites are
 in separate source repositories.
@@ -67,23 +90,23 @@ other sources rather than being typed in manually by a programmer.  This
 section will summarize those automatically-generated files.  To create all
 of the automatically-generated files, simply run "make target&#95;source".
 The "target&#95;source" make target will create a subdirectory "tsrc/" and
-fill it with all the source files needed to build SQLite, both 
+fill it with all the source files needed to build SQLite, both
 manually-edited files and automatically-generated files.
 
 The SQLite interface is defined by the **sqlite3.h** header file, which is
 generated from src/sqlite.h.in, ./manifest.uuid, and ./VERSION.  The
-TCL script at tool/mksqlite3h.tcl does the conversion.  The manifest.uuid
+Tcl script at tool/mksqlite3h.tcl does the conversion.  The manifest.uuid
 file contains the SHA1 hash of the particular check-in and is used to generate
 the SQLITE_SOURCE_ID macro.  The VERSION file contains the current SQLite
 version number.  The sqlite3.h header is really just a copy of src/sqlite.h.in
 with the source-id and version number inserted at just the right spots.
 Note that comment text in the sqlite3.h file is used to generate much of
-the SQLite API documentation.  The TCL scripts used to generate that
+the SQLite API documentation.  The Tcl scripts used to generate that
 documentation are in a separate source repository.
 
 The SQL language parser is **parse.c** which is generate from a grammar in
 the src/parse.y file.  The conversion of "parse.y" into "parse.c" is done
-by the [lemon](./doc/lemon.html) LALR(1) parser generator.  The source code 
+by the [lemon](./doc/lemon.html) LALR(1) parser generator.  The source code
 for lemon is at tool/lemon.c.  Lemon uses a
 template for generating its parser.  A generic template is in tool/lempar.c,
 but SQLite uses a slightly modified template found in src/lempar.c.
@@ -117,7 +140,7 @@ to perform more cross-procedure analysis and generate better code.  SQLite
 runs about 5% faster when compiled from the amalgamation versus when compiled
 from individual source files.
 
-The amalgamation is generated from the tool/mksqlite3c.tcl TCL script.
+The amalgamation is generated from the tool/mksqlite3c.tcl Tcl script.
 First, all of the individual source files must be gathered into the tsrc/
 subdirectory (using the equivalent of "make target_source") then the
 tool/mksqlite3c.tcl script is run to copy them all together in just the
@@ -125,23 +148,23 @@ right order while resolving internal "#include" references.
 
 The amalgamation source file is more than 100K lines long.  Some symbolic
 debuggers (most notably MSVC) are unable to deal with files longer than 64K
-lines.  To work around this, a separate TCL script, tool/split-sqlite3c.tcl,
+lines.  To work around this, a separate Tcl script, tool/split-sqlite3c.tcl,
 can be run on the amalgamation to break it up into a single small C file
 called **sqlite3-all.c** that does #include on about five other files
 named **sqlite3-1.c**, **sqlite3-2.c**, ..., **sqlite3-5.c**.  In this way,
 all of the source code is contained within a single translation unit so
-that the compiler can do extra cross-procedure optimization, but no 
+that the compiler can do extra cross-procedure optimization, but no
 individual source file exceeds 32K lines in length.
 
 ## How It All Fits Together
 
 SQLite is modular in design.
-See the [architectural description](http://www.sqlite.org/arch.html) 
+See the [architectural description](http://www.sqlite.org/arch.html)
 for details. Other documents that are useful in
 (helping to understand how SQLite works include the
 [file format](http://www.sqlite.org/fileformat2.html) description,
 the [virtual machine](http://www.sqlite.org/vdbe.html) that runs
-prepared statements, the description of 
+prepared statements, the description of
 [how transactions work](http://www.sqlite.org/atomiccommit.html), and
 the [overview of the query planner](http://www.sqlite.org/optoverview.html).
 
@@ -182,7 +205,7 @@ Key files:
   *  **os_unix.c** and **os_win.c** - These two files implement the interface
      between SQLite and the underlying operating system using the run-time
      pluggable VFS interface.
-  
+
 
 ## Contacts
 
index e5a8a9f1568ae04dfe678d18915b22db44932f25..a0e6034070967fd46440d1be5439f8adc2156fd9 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,11 +1,11 @@
-C Ensure\sthat\sif\sthe\s"psow=0"\sURI\soption\sor\sFCNTL_POWERSAFE_OVERWRITE\sfile-control\sis\sused\sto\sclear\sthe\spower-safe\soverwrite\sflag,\sextra\spadding\sframes\sare\sadded\sto\sthe\sWAL\sfile.
-D 2014-02-13T19:27:08.812
+C Improvements\sto\sthe\smakefile\sand\sREADME\sfor\sMSVC.
+D 2014-02-13T21:57:48.016
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in 2ef13430cd359f7b361bb863504e227b25cc7f81
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
-F Makefile.msc 6ff3ff2eef45c7dd309a8626ff7947b20bd387e7
+F Makefile.msc 371a17ef9cd011b103cfa1964119a8528f5427c9
 F Makefile.vxworks db21ed42a01d5740e656b16f92cb5d8d5e5dd315
-F README.md 8ff4548af6f7cdf4b02e585d4dd552b233998a9b
+F README.md 64f270c43c38c46de749e419c22f0ae2f4499fe8
 F VERSION 0dc30ad5cf90736d5fd9e540c9f05c542658abe7
 F aclocal.m4 a5c22d164aff7ed549d53a90fa56d56955281f50
 F addopcodes.awk 9eb448a552d5c0185cf62c463f9c173cedae3811
@@ -1150,7 +1150,7 @@ F tool/vdbe-compress.tcl 0cf56e9263a152b84da86e75a5c0cdcdb7a47891
 F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
 F tool/warnings.sh d1a6de74685f360ab718efda6265994b99bbea01
 F tool/win/sqlite.vsix 030f3eeaf2cb811a3692ab9c14d021a75ce41fff
-P 18d4e258c45c32984b23d97b896a761eeef2dbdf
-R 8c9ce91bde08452c57ff8bd83f7e4683
-U dan
-Z a2f4dabb4be0cf1b9a50023d91f3c52c
+P 48c821fd97a8f03757c90560c37a46bd0843570e
+R e8c48a1ab293ac2d556c755a2d22ba69
+U mistachkin
+Z fd16507dbadca8019665c7ea56e69ef4
index 678e82d8ecb0ba1ace78babe924b0ca82fd03871..267d4e00eb0b4f1ff223c723dab9f7190b361647 100644 (file)
@@ -1 +1 @@
-48c821fd97a8f03757c90560c37a46bd0843570e
\ No newline at end of file
+b22b61406899c2694dae984995d2484fdb8122f1
\ No newline at end of file