OLD | NEW |
1 @ECHO OFF | 1 @ECHO OFF |
2 | 2 |
3 :: | 3 :: |
4 :: build-all-msvc.bat -- | 4 :: build-all-msvc.bat -- |
5 :: | 5 :: |
6 :: Multi-Platform Build Tool for MSVC | 6 :: Multi-Platform Build Tool for MSVC |
7 :: | 7 :: |
8 | 8 |
9 REM | 9 REM |
10 REM This batch script is used to build the SQLite DLL for multiple platforms | 10 REM This batch script is used to build the SQLite DLL for multiple platforms |
11 REM and configurations using MSVC. The built SQLite DLLs, their associated | 11 REM and configurations using MSVC. The built SQLite DLLs, their associated |
12 REM import libraries, and optionally their symbols files, are placed within | 12 REM import libraries, and optionally their symbols files, are placed within |
13 REM the directory specified on the command line, in sub-directories named for | 13 REM the directory specified on the command line, in sub-directories named for |
14 REM their respective platforms and configurations. This batch script must be | 14 REM their respective platforms and configurations. This batch script must be |
15 REM run from inside a Visual Studio Command Prompt for the desired version of | 15 REM run from inside a Visual Studio Command Prompt for the desired version of |
16 REM Visual Studio ^(the initial platform configured for the command prompt does | 16 REM Visual Studio ^(the initial platform configured for the command prompt does |
17 REM not really matter^). Exactly one command line argument is required, the | 17 REM not really matter^). Exactly one command line argument is required, the |
18 REM name of an existing directory to be used as the final destination directory | 18 REM name of an existing directory to be used as the final destination directory |
19 REM for the generated output files, which will be placed in sub-directories | 19 REM for the generated output files, which will be placed in sub-directories |
20 REM created therein. Ideally, the directory specified should be empty. | 20 REM created therein. Ideally, the directory specified should be empty. |
21 REM | 21 REM |
22 REM Example: | 22 REM Example: |
23 REM | 23 REM |
24 REM CD /D C:\dev\sqlite\core | 24 REM CD /D C:\dev\sqlite\core |
25 REM tool\build-all-msvc.bat C:\Temp | 25 REM CALL tool\build-all-msvc.bat C:\Temp |
26 REM | 26 REM |
27 REM In the example above, "C:\dev\sqlite\core" represents the root of the | 27 REM In the example above, "C:\dev\sqlite\core" represents the root of the |
28 REM source tree for SQLite and "C:\Temp" represents the final destination | 28 REM source tree for SQLite and "C:\Temp" represents the final destination |
29 REM directory for the generated output files. | 29 REM directory for the generated output files. |
30 REM | 30 REM |
31 REM Please note that the SQLite build process performed by the Makefile | 31 REM Please note that the SQLite build process performed by the Makefile |
32 REM associated with this batch script requires a Tcl shell to be present | 32 REM associated with this batch script requires a Tcl shell to be present |
33 REM in a directory contained in the PATH environment variable unless a | 33 REM in a directory contained in the PATH environment variable unless a |
34 REM pre-existing amalgamation file is used. | 34 REM pre-existing amalgamation file is used. |
35 REM | 35 REM |
(...skipping 11 matching lines...) Expand all Loading... |
47 REM variables may be set to specify the location of the CRT, Universal CRT, and | 47 REM variables may be set to specify the location of the CRT, Universal CRT, and |
48 REM Windows SDK, respectively, that may be needed to compile executables native | 48 REM Windows SDK, respectively, that may be needed to compile executables native |
49 REM to the architecture of the build machine during any cross-compilation that | 49 REM to the architecture of the build machine during any cross-compilation that |
50 REM may be necessary, depending on the platforms to be built. These values in | 50 REM may be necessary, depending on the platforms to be built. These values in |
51 REM these three variables should be surrounded by double quotes if they contain | 51 REM these three variables should be surrounded by double quotes if they contain |
52 REM spaces. | 52 REM spaces. |
53 REM | 53 REM |
54 REM There are a few other environment variables that impact the build process | 54 REM There are a few other environment variables that impact the build process |
55 REM when set ^(to anything^), they are: | 55 REM when set ^(to anything^), they are: |
56 REM | 56 REM |
| 57 REM USE_AUTOCONF_MAKEFILE |
| 58 REM |
| 59 REM When set, the "autoconf" Makefile for MSVC will be used instead of the main |
| 60 REM Makefile for MSVC. It must exist at "%ROOT%\autoconf\Makefile.msc". |
| 61 REM |
57 REM NOCLEAN | 62 REM NOCLEAN |
58 REM | 63 REM |
59 REM When set, the "clean" target will not be used during each build iteration. | 64 REM When set, the "clean" target will not be used during each build iteration. |
60 REM However, the target binaries, if any, will still be deleted manually prior | 65 REM However, the target binaries, if any, will still be deleted manually prior |
61 REM to being rebuilt. Setting this environment variable is only rarely needed | 66 REM to being rebuilt. Setting this environment variable is only rarely needed |
62 REM and could cause issues in some circumstances; therefore, setting it is not | 67 REM and could cause issues in some circumstances; therefore, setting it is not |
63 REM recommended. | 68 REM recommended. |
64 REM | 69 REM |
65 REM NOSYMBOLS | 70 REM NOSYMBOLS |
66 REM | 71 REM |
67 REM When set, copying of symbol files ^(*.pdb^) created during the build will | 72 REM When set, copying of symbol files ^(*.pdb^) created during the build will |
68 REM be skipped and they will not appear in the final destination directory. | 73 REM be skipped and they will not appear in the final destination directory. |
69 REM Setting this environment variable is never strictly needed and could cause | 74 REM Setting this environment variable is never strictly needed and could cause |
70 REM issues in some circumstances; therefore, setting it is not recommended. | 75 REM issues in some circumstances; therefore, setting it is not recommended. |
71 REM | 76 REM |
| 77 REM NOMEMDEBUG |
| 78 REM |
| 79 REM When set, disables use of MEMDEBUG when building binaries for the "Debug" |
| 80 REM configuration. |
| 81 REM |
72 REM BUILD_ALL_SHELL | 82 REM BUILD_ALL_SHELL |
73 REM | 83 REM |
74 REM When set, the command line shell will be built for each selected platform | 84 REM When set, the command line shell will be built for each selected platform |
75 REM and configuration as well. In addition, the command line shell binaries | 85 REM and configuration as well. In addition, the command line shell binaries |
76 REM will be copied, with their symbols, to the final destination directory. | 86 REM will be copied, with their symbols, to the final destination directory. |
77 REM | 87 REM |
78 REM USE_WINV63_NSDKLIBPATH | 88 REM USE_WINV63_NSDKLIBPATH |
79 REM | 89 REM |
80 REM When set, modifies how the NSDKLIBPATH environment variable is built, based | 90 REM When set, modifies how the NSDKLIBPATH environment variable is built, based |
81 REM on the WindowsSdkDir environment variable. It forces this batch script to | 91 REM on the WindowsSdkDir environment variable. It forces this batch script to |
82 REM assume the Windows 8.1 SDK location should be used. | 92 REM assume the Windows 8.1 SDK location should be used. |
83 REM | 93 REM |
84 REM USE_WINV100_NSDKLIBPATH | 94 REM USE_WINV100_NSDKLIBPATH |
85 REM | 95 REM |
86 REM When set, modifies how the NSDKLIBPATH environment variable is built, based | 96 REM When set, modifies how the NSDKLIBPATH environment variable is built, based |
87 REM on the WindowsSdkDir environment variable. It causes this batch script to | 97 REM on the WindowsSdkDir environment variable. It causes this batch script to |
88 REM assume the Windows 10.0 SDK location should be used. | 98 REM assume the Windows 10.0 SDK location should be used. |
89 REM | 99 REM |
90 REM NMAKE_ARGS | 100 REM NMAKE_ARGS |
| 101 REM NMAKE_ARGS_DEBUG |
| 102 REM NMAKE_ARGS_RETAIL |
91 REM | 103 REM |
92 REM When set, the value is expanded and passed to the NMAKE command line, after | 104 REM When set, these values are expanded and passed to the NMAKE command line, |
93 REM its other arguments. This is used to specify additional NMAKE options, for | 105 REM after its other arguments. These may be used to specify additional NMAKE |
94 REM example: | 106 REM options, for example: |
95 REM | 107 REM |
96 REM SET NMAKE_ARGS=FOR_WINRT=1 | 108 REM SET NMAKE_ARGS=FOR_WINRT=1 |
| 109 REM SET NMAKE_ARGS_DEBUG=MEMDEBUG=1 |
| 110 REM SET NMAKE_ARGS_RETAIL=WIN32HEAP=1 |
97 REM | 111 REM |
98 REM Using the above command before running this tool will cause the compiled | 112 REM Using the above command before running this tool will cause the compiled |
99 REM binaries to target the WinRT environment, which provides a subset of the | 113 REM binaries to target the WinRT environment, which provides a subset of the |
100 REM Win32 API. | 114 REM Win32 API. |
101 REM | 115 REM |
| 116 REM DLL_FILE_NAME |
| 117 REM DLL_PDB_FILE_NAME |
| 118 REM LIB_FILE_NAME |
| 119 REM EXE_FILE_NAME |
| 120 REM EXE_PDB_FILE_NAME |
| 121 REM |
| 122 REM When set, these values will override the associated target file name used |
| 123 REM for the build. |
| 124 REM |
102 SETLOCAL | 125 SETLOCAL |
103 | 126 |
104 REM SET __ECHO=ECHO | 127 REM SET __ECHO=ECHO |
105 REM SET __ECHO2=ECHO | 128 REM SET __ECHO2=ECHO |
106 REM SET __ECHO3=ECHO | 129 REM SET __ECHO3=ECHO |
107 IF NOT DEFINED _AECHO (SET _AECHO=REM) | 130 IF NOT DEFINED _AECHO (SET _AECHO=REM) |
108 IF NOT DEFINED _CECHO (SET _CECHO=REM) | 131 IF NOT DEFINED _CECHO (SET _CECHO=REM) |
109 IF NOT DEFINED _VECHO (SET _VECHO=REM) | 132 IF NOT DEFINED _VECHO (SET _VECHO=REM) |
110 | 133 |
111 SET REDIRECT=^> | 134 SET REDIRECT=^> |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
197 SET CONFIGURATIONS=Debug Retail | 220 SET CONFIGURATIONS=Debug Retail |
198 ) | 221 ) |
199 | 222 |
200 %_VECHO% Configurations = '%CONFIGURATIONS%' | 223 %_VECHO% Configurations = '%CONFIGURATIONS%' |
201 | 224 |
202 REM | 225 REM |
203 REM NOTE: If the command used to invoke NMAKE is not already set, use the | 226 REM NOTE: If the command used to invoke NMAKE is not already set, use the |
204 REM default. | 227 REM default. |
205 REM | 228 REM |
206 IF NOT DEFINED NMAKE_CMD ( | 229 IF NOT DEFINED NMAKE_CMD ( |
207 SET NMAKE_CMD=nmake -B -f Makefile.msc | 230 IF DEFINED USE_AUTOCONF_MAKEFILE ( |
| 231 SET NMAKE_CMD=nmake -B -f autoconf\Makefile.msc |
| 232 ) ELSE ( |
| 233 SET NMAKE_CMD=nmake -B -f Makefile.msc |
| 234 ) |
208 ) | 235 ) |
209 | 236 |
210 %_VECHO% NmakeCmd = '%NMAKE_CMD%' | 237 %_VECHO% NmakeCmd = '%NMAKE_CMD%' |
211 %_VECHO% NmakeArgs = '%NMAKE_ARGS%' | 238 %_VECHO% NmakeArgs = '%NMAKE_ARGS%' |
| 239 %_VECHO% NmakeArgsDebug = '%NMAKE_ARGS_DEBUG%' |
| 240 %_VECHO% NmakeArgsRetail = '%NMAKE_ARGS_RETAIL%' |
212 | 241 |
213 REM | 242 REM |
214 REM NOTE: Setup environment variables to translate between the MSVC platform | 243 REM NOTE: Setup environment variables to translate between the MSVC platform |
215 REM names and the names to be used for the platform-specific binary | 244 REM names and the names to be used for the platform-specific binary |
216 REM directories. | 245 REM directories. |
217 REM | 246 REM |
218 SET amd64_NAME=x64 | 247 SET amd64_NAME=x64 |
219 SET arm_NAME=ARM | 248 SET arm_NAME=ARM |
220 SET x64_NAME=x64 | 249 SET x64_NAME=x64 |
221 SET x86_NAME=x86 | 250 SET x86_NAME=x86 |
(...skipping 10 matching lines...) Expand all Loading... |
232 %_VECHO% x86_x64_Name = '%x86_x64_NAME%' | 261 %_VECHO% x86_x64_Name = '%x86_x64_NAME%' |
233 | 262 |
234 REM | 263 REM |
235 REM NOTE: Check for the external tools needed during the build process ^(i.e. | 264 REM NOTE: Check for the external tools needed during the build process ^(i.e. |
236 REM those that do not get compiled as part of the build process itself^) | 265 REM those that do not get compiled as part of the build process itself^) |
237 REM along the PATH. | 266 REM along the PATH. |
238 REM | 267 REM |
239 IF DEFINED TCLSH_CMD ( | 268 IF DEFINED TCLSH_CMD ( |
240 SET TCLSH_FILE=%TCLSH_CMD% | 269 SET TCLSH_FILE=%TCLSH_CMD% |
241 ) ELSE ( | 270 ) ELSE ( |
242 SET TCLSH_FILE=tclsh85.exe | 271 SET TCLSH_FILE=tclsh.exe |
243 ) | 272 ) |
244 | 273 |
245 FOR %%T IN (%TCLSH_FILE%) DO ( | 274 FOR %%T IN (%TCLSH_FILE%) DO ( |
246 SET %%T_PATH=%%~dp$PATH:T | 275 SET %%T_PATH=%%~dp$PATH:T |
247 ) | 276 ) |
248 | 277 |
249 REM | 278 REM |
250 REM NOTE: A Tcl shell executable is required during the SQLite build process | 279 REM NOTE: A Tcl shell executable is required during the SQLite build process |
251 REM unless a pre-existing amalgamation file is used. | 280 REM unless a pre-existing amalgamation file is used. |
252 REM | 281 REM |
253 IF NOT DEFINED %TCLSH_FILE%_PATH ( | 282 IF NOT DEFINED %TCLSH_FILE%_PATH ( |
254 ECHO The Tcl shell executable "%TCLSH_FILE%" is required to be in the PATH. | 283 ECHO The Tcl shell executable "%TCLSH_FILE%" is required to be in the PATH. |
255 GOTO errors | 284 GOTO errors |
256 ) | 285 ) |
257 | 286 |
258 REM | 287 REM |
| 288 REM NOTE: Setup the default names for the build targets we are creating. Any |
| 289 REM ^(or all^) of these may end up being overridden. |
| 290 REM |
| 291 IF NOT DEFINED DLL_FILE_NAME ( |
| 292 SET DLL_FILE_NAME=sqlite3.dll |
| 293 ) |
| 294 |
| 295 IF NOT DEFINED DLL_PDB_FILE_NAME ( |
| 296 SET DLL_PDB_FILE_NAME=sqlite3.pdb |
| 297 ) |
| 298 |
| 299 IF NOT DEFINED LIB_FILE_NAME ( |
| 300 SET LIB_FILE_NAME=sqlite3.lib |
| 301 ) |
| 302 |
| 303 IF NOT DEFINED EXE_FILE_NAME ( |
| 304 SET EXE_FILE_NAME=sqlite3.exe |
| 305 ) |
| 306 |
| 307 IF NOT DEFINED EXE_PDB_FILE_NAME ( |
| 308 SET EXE_PDB_FILE_NAME=sqlite3sh.pdb |
| 309 ) |
| 310 |
| 311 REM |
259 REM NOTE: Set the TOOLPATH variable to contain all the directories where the | 312 REM NOTE: Set the TOOLPATH variable to contain all the directories where the |
260 REM external tools were found in the search above. | 313 REM external tools were found in the search above. |
261 REM | 314 REM |
262 CALL :fn_CopyVariable %TCLSH_FILE%_PATH TOOLPATH | 315 CALL :fn_CopyVariable %TCLSH_FILE%_PATH TOOLPATH |
263 | 316 |
264 %_VECHO% ToolPath = '%TOOLPATH%' | 317 %_VECHO% ToolPath = '%TOOLPATH%' |
265 | 318 |
266 REM | 319 REM |
267 REM NOTE: Setting the Windows SDK library path is only required for MSVC | 320 REM NOTE: Setting the Windows SDK library path is only required for MSVC |
268 REM 2012, 2013, and 2015. | 321 REM 2012, 2013, and 2015. |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
427 REM disable all compiler optimizations and prevent use of the | 480 REM disable all compiler optimizations and prevent use of the |
428 REM NDEBUG define. Additionally, both SQLITE_ENABLE_API_ARMOR | 481 REM NDEBUG define. Additionally, both SQLITE_ENABLE_API_ARMOR |
429 REM and SQLITE_DEBUG defines should be enabled. | 482 REM and SQLITE_DEBUG defines should be enabled. |
430 REM | 483 REM |
431 SET DEBUG=3 | 484 SET DEBUG=3 |
432 | 485 |
433 REM | 486 REM |
434 REM NOTE: Setting this to non-zero should enable the SQLITE_MEMDEBUG | 487 REM NOTE: Setting this to non-zero should enable the SQLITE_MEMDEBUG |
435 REM define. | 488 REM define. |
436 REM | 489 REM |
437 SET MEMDEBUG=1 | 490 IF NOT DEFINED NOMEMDEBUG ( |
| 491 SET MEMDEBUG=1 |
| 492 ) |
438 ) ELSE ( | 493 ) ELSE ( |
439 CALL :fn_UnsetVariable DEBUG | 494 CALL :fn_UnsetVariable DEBUG |
440 CALL :fn_UnsetVariable MEMDEBUG | 495 CALL :fn_UnsetVariable MEMDEBUG |
441 ) | 496 ) |
442 | 497 |
443 REM | 498 REM |
| 499 REM NOTE: Copy the extra NMAKE arguments for this configuration into the |
| 500 REM common variable used by the actual commands. |
| 501 REM |
| 502 CALL :fn_CopyVariable NMAKE_ARGS_%%B NMAKE_ARGS_CFG |
| 503 |
| 504 REM |
444 REM NOTE: Launch a nested command shell to perform the following steps: | 505 REM NOTE: Launch a nested command shell to perform the following steps: |
445 REM | 506 REM |
446 REM 1. Setup the MSVC environment for this platform using the | 507 REM 1. Setup the MSVC environment for this platform using the |
447 REM official batch file. | 508 REM official batch file. |
448 REM | 509 REM |
449 REM 2. Make sure that no stale build output files are present. | 510 REM 2. Make sure that no stale build output files are present. |
450 REM | 511 REM |
451 REM 3. Build the "sqlite3.dll" and "sqlite3.lib" binaries for this | 512 REM 3. Build the "sqlite3.dll" and "sqlite3.lib" binaries for this |
452 REM platform. | 513 REM platform. |
453 REM | 514 REM |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
539 ) | 600 ) |
540 ) | 601 ) |
541 | 602 |
542 REM | 603 REM |
543 REM NOTE: Unless prevented from doing so, invoke NMAKE with the MSVC | 604 REM NOTE: Unless prevented from doing so, invoke NMAKE with the MSVC |
544 REM makefile to clean any stale build output from previous | 605 REM makefile to clean any stale build output from previous |
545 REM iterations of this loop and/or previous runs of this batch | 606 REM iterations of this loop and/or previous runs of this batch |
546 REM file, etc. | 607 REM file, etc. |
547 REM | 608 REM |
548 IF NOT DEFINED NOCLEAN ( | 609 IF NOT DEFINED NOCLEAN ( |
549 %__ECHO% %NMAKE_CMD% clean | 610 CALL :fn_MakeClean %%D |
550 | 611 |
551 IF ERRORLEVEL 1 ( | 612 IF ERRORLEVEL 1 ( |
552 ECHO Failed to clean for platform %%P. | 613 ECHO Failed to clean for platform %%P. |
553 GOTO errors | 614 GOTO errors |
554 ) | 615 ) |
555 ) ELSE ( | 616 ) ELSE ( |
556 REM | 617 REM |
557 REM NOTE: Even when the cleaning step has been disabled, we still | 618 REM NOTE: Even when the cleaning step has been disabled, we still |
558 REM need to remove the build output for all the files we are | 619 REM need to remove the build output for all the files we are |
559 REM specifically wanting to build for each platform. | 620 REM specifically wanting to build for each platform. |
560 REM | 621 REM |
561 %_AECHO% Cleaning final core library output files only... | 622 %_AECHO% Cleaning final core library output files only... |
562 %__ECHO% DEL /Q *.lo sqlite3.dll sqlite3.lib sqlite3.pdb 2%REDIRECT% N
UL | 623 %__ECHO% DEL /Q *.lo "%DLL_FILE_NAME%" "%LIB_FILE_NAME%" "%DLL_PDB_FIL
E_NAME%" 2%REDIRECT% NUL |
563 ) | 624 ) |
564 | 625 |
565 REM | 626 REM |
566 REM NOTE: Call NMAKE with the MSVC makefile to build the "sqlite3.dll" | 627 REM NOTE: Call NMAKE with the MSVC makefile to build the "sqlite3.dll" |
567 REM binary. The x86 compiler will be used to compile the native | 628 REM binary. The x86 compiler will be used to compile the native |
568 REM command line tools needed during the build process itself. | 629 REM command line tools needed during the build process itself. |
569 REM Also, disable looking for and/or linking to the native Tcl | 630 REM Also, disable looking for and/or linking to the native Tcl |
570 REM runtime library. | 631 REM runtime library. |
571 REM | 632 REM |
572 %__ECHO% %NMAKE_CMD% sqlite3.dll XCOMPILE=1 USE_NATIVE_LIBPATHS=1 NO_TCL
=1 %NMAKE_ARGS% | 633 CALL :fn_MakeDll %%D |
573 | 634 |
574 IF ERRORLEVEL 1 ( | 635 IF ERRORLEVEL 1 ( |
575 ECHO Failed to build %%B "sqlite3.dll" for platform %%P. | 636 ECHO Failed to build %%B "%DLL_FILE_NAME%" for platform %%P. |
576 GOTO errors | 637 GOTO errors |
577 ) | 638 ) |
578 | 639 |
579 REM | 640 REM |
580 REM NOTE: Copy the "sqlite3.dll" file to the appropriate directory for | 641 REM NOTE: Copy the "sqlite3.dll" file to the appropriate directory for |
581 REM the build and platform beneath the binary directory. | 642 REM the build and platform beneath the binary directory. |
582 REM | 643 REM |
583 %__ECHO% XCOPY sqlite3.dll "%BINARYDIRECTORY%\%%B\%%D\" %FFLAGS% %DFLAGS
% | 644 %__ECHO% XCOPY "%DLL_FILE_NAME%" "%BINARYDIRECTORY%\%%B\%%D\" %FFLAGS% %
DFLAGS% |
584 | 645 |
585 IF ERRORLEVEL 1 ( | 646 IF ERRORLEVEL 1 ( |
586 ECHO Failed to copy "sqlite3.dll" to "%BINARYDIRECTORY%\%%B\%%D\". | 647 ECHO Failed to copy "%DLL_FILE_NAME%" to "%BINARYDIRECTORY%\%%B\%%D\". |
587 GOTO errors | 648 GOTO errors |
588 ) | 649 ) |
589 | 650 |
590 REM | 651 REM |
591 REM NOTE: Copy the "sqlite3.lib" file to the appropriate directory for | 652 REM NOTE: Copy the "sqlite3.lib" file to the appropriate directory for |
592 REM the build and platform beneath the binary directory. | 653 REM the build and platform beneath the binary directory. |
593 REM | 654 REM |
594 %__ECHO% XCOPY sqlite3.lib "%BINARYDIRECTORY%\%%B\%%D\" %FFLAGS% %DFLAGS
% | 655 %__ECHO% XCOPY "%LIB_FILE_NAME%" "%BINARYDIRECTORY%\%%B\%%D\" %FFLAGS% %
DFLAGS% |
595 | 656 |
596 IF ERRORLEVEL 1 ( | 657 IF ERRORLEVEL 1 ( |
597 ECHO Failed to copy "sqlite3.lib" to "%BINARYDIRECTORY%\%%B\%%D\". | 658 ECHO Failed to copy "%LIB_FILE_NAME%" to "%BINARYDIRECTORY%\%%B\%%D\". |
598 GOTO errors | 659 GOTO errors |
599 ) | 660 ) |
600 | 661 |
601 REM | 662 REM |
602 REM NOTE: Copy the "sqlite3.pdb" file to the appropriate directory for | 663 REM NOTE: Copy the "sqlite3.pdb" file to the appropriate directory for |
603 REM the build and platform beneath the binary directory unless we | 664 REM the build and platform beneath the binary directory unless we |
604 REM are prevented from doing so. | 665 REM are prevented from doing so. |
605 REM | 666 REM |
606 IF NOT DEFINED NOSYMBOLS ( | 667 IF NOT DEFINED NOSYMBOLS ( |
607 %__ECHO% XCOPY sqlite3.pdb "%BINARYDIRECTORY%\%%B\%%D\" %FFLAGS% %DFLA
GS% | 668 IF EXIST "%DLL_PDB_FILE_NAME%" ( |
| 669 %__ECHO% XCOPY "%DLL_PDB_FILE_NAME%" "%BINARYDIRECTORY%\%%B\%%D\" %F
FLAGS% %DFLAGS% |
608 | 670 |
609 IF ERRORLEVEL 1 ( | 671 IF ERRORLEVEL 1 ( |
610 ECHO Failed to copy "sqlite3.pdb" to "%BINARYDIRECTORY%\%%B\%%D\". | 672 ECHO Failed to copy "%DLL_PDB_FILE_NAME%" to "%BINARYDIRECTORY%\%%
B\%%D\". |
611 GOTO errors | 673 GOTO errors |
| 674 ) |
612 ) | 675 ) |
613 ) | 676 ) |
614 | 677 |
615 REM | 678 REM |
616 REM NOTE: If requested, also build the shell executable. | 679 REM NOTE: If requested, also build the shell executable. |
617 REM | 680 REM |
618 IF DEFINED BUILD_ALL_SHELL ( | 681 IF DEFINED BUILD_ALL_SHELL ( |
619 REM | 682 REM |
620 REM NOTE: If necessary, make sure any previous build output for the | 683 REM NOTE: If necessary, make sure any previous build output for the |
621 REM shell executable is deleted. | 684 REM shell executable is deleted. |
622 REM | 685 REM |
623 IF DEFINED NOCLEAN ( | 686 IF DEFINED NOCLEAN ( |
624 REM | 687 REM |
625 REM NOTE: Even when the cleaning step has been disabled, we still | 688 REM NOTE: Even when the cleaning step has been disabled, we still |
626 REM need to remove the build output for all the files we are | 689 REM need to remove the build output for all the files we are |
627 REM specifically wanting to build for each platform. | 690 REM specifically wanting to build for each platform. |
628 REM | 691 REM |
629 %_AECHO% Cleaning final shell executable output files only... | 692 %_AECHO% Cleaning final shell executable output files only... |
630 %__ECHO% DEL /Q sqlite3.exe sqlite3sh.pdb 2%REDIRECT% NUL | 693 %__ECHO% DEL /Q "%EXE_FILE_NAME%" "%EXE_PDB_FILE_NAME%" 2%REDIRECT%
NUL |
631 ) | 694 ) |
632 | 695 |
633 REM | 696 REM |
634 REM NOTE: Call NMAKE with the MSVC makefile to build the "sqlite3.exe" | 697 REM NOTE: Call NMAKE with the MSVC makefile to build the "sqlite3.exe" |
635 REM binary. The x86 compiler will be used to compile the native | 698 REM binary. The x86 compiler will be used to compile the native |
636 REM command line tools needed during the build process itself. | 699 REM command line tools needed during the build process itself. |
637 REM Also, disable looking for and/or linking to the native Tcl | 700 REM Also, disable looking for and/or linking to the native Tcl |
638 REM runtime library. | 701 REM runtime library. |
639 REM | 702 REM |
640 %__ECHO% %NMAKE_CMD% sqlite3.exe XCOMPILE=1 USE_NATIVE_LIBPATHS=1 NO_T
CL=1 %NMAKE_ARGS% | 703 CALL :fn_MakeExe %%D |
641 | 704 |
642 IF ERRORLEVEL 1 ( | 705 IF ERRORLEVEL 1 ( |
643 ECHO Failed to build %%B "sqlite3.exe" for platform %%P. | 706 ECHO Failed to build %%B "%EXE_FILE_NAME%" for platform %%P. |
644 GOTO errors | 707 GOTO errors |
645 ) | 708 ) |
646 | 709 |
647 REM | 710 REM |
648 REM NOTE: Copy the "sqlite3.exe" file to the appropriate directory | 711 REM NOTE: Copy the "sqlite3.exe" file to the appropriate directory |
649 REM for the build and platform beneath the binary directory. | 712 REM for the build and platform beneath the binary directory. |
650 REM | 713 REM |
651 %__ECHO% XCOPY sqlite3.exe "%BINARYDIRECTORY%\%%B\%%D\" %FFLAGS% %DFLA
GS% | 714 %__ECHO% XCOPY "%EXE_FILE_NAME%" "%BINARYDIRECTORY%\%%B\%%D\" %FFLAGS%
%DFLAGS% |
652 | 715 |
653 IF ERRORLEVEL 1 ( | 716 IF ERRORLEVEL 1 ( |
654 ECHO Failed to copy "sqlite3.exe" to "%BINARYDIRECTORY%\%%B\%%D\". | 717 ECHO Failed to copy "%EXE_FILE_NAME%" to "%BINARYDIRECTORY%\%%B\%%D\
". |
655 GOTO errors | 718 GOTO errors |
656 ) | 719 ) |
657 | 720 |
658 REM | 721 REM |
659 REM NOTE: Copy the "sqlite3sh.pdb" file to the appropriate directory | 722 REM NOTE: Copy the "sqlite3sh.pdb" file to the appropriate directory |
660 REM for the build and platform beneath the binary directory | 723 REM for the build and platform beneath the binary directory |
661 REM unless we are prevented from doing so. | 724 REM unless we are prevented from doing so. |
662 REM | 725 REM |
663 IF NOT DEFINED NOSYMBOLS ( | 726 IF NOT DEFINED NOSYMBOLS ( |
664 %__ECHO% XCOPY sqlite3sh.pdb "%BINARYDIRECTORY%\%%B\%%D\" %FFLAGS% %
DFLAGS% | 727 IF EXIST "%EXE_PDB_FILE_NAME%" ( |
| 728 %__ECHO% XCOPY "%EXE_PDB_FILE_NAME%" "%BINARYDIRECTORY%\%%B\%%D\"
%FFLAGS% %DFLAGS% |
665 | 729 |
666 IF ERRORLEVEL 1 ( | 730 IF ERRORLEVEL 1 ( |
667 ECHO Failed to copy "sqlite3sh.pdb" to "%BINARYDIRECTORY%\%%B\%%D\
". | 731 ECHO Failed to copy "%EXE_PDB_FILE_NAME%" to "%BINARYDIRECTORY%\
%%B\%%D\". |
668 GOTO errors | 732 GOTO errors |
| 733 ) |
669 ) | 734 ) |
670 ) | 735 ) |
671 ) | 736 ) |
672 ) | 737 ) |
673 ) | 738 ) |
674 ) | 739 ) |
675 | 740 |
676 REM | 741 REM |
677 REM NOTE: Handle any errors generated during the nested command shell. | 742 REM NOTE: Handle any errors generated during the nested command shell. |
678 REM | 743 REM |
(...skipping 10 matching lines...) Expand all Loading... |
689 IF ERRORLEVEL 1 ( | 754 IF ERRORLEVEL 1 ( |
690 ECHO Could not restore directory. | 755 ECHO Could not restore directory. |
691 GOTO errors | 756 GOTO errors |
692 ) | 757 ) |
693 | 758 |
694 REM | 759 REM |
695 REM NOTE: If we get to this point, we have succeeded. | 760 REM NOTE: If we get to this point, we have succeeded. |
696 REM | 761 REM |
697 GOTO no_errors | 762 GOTO no_errors |
698 | 763 |
| 764 :fn_MakeClean |
| 765 %__ECHO% %NMAKE_CMD% clean "PLATFORM=%1" XCOMPILE=1 USE_NATIVE_LIBPATHS=1 NO_T
CL=1 %NMAKE_ARGS% %NMAKE_ARGS_CFG% |
| 766 GOTO :EOF |
| 767 |
| 768 :fn_MakeDll |
| 769 %__ECHO% %NMAKE_CMD% "%DLL_FILE_NAME%" "PLATFORM=%1" XCOMPILE=1 USE_NATIVE_LIB
PATHS=1 NO_TCL=1 %NMAKE_ARGS% %NMAKE_ARGS_CFG% |
| 770 GOTO :EOF |
| 771 |
| 772 :fn_MakeExe |
| 773 %__ECHO% %NMAKE_CMD% "%EXE_FILE_NAME%" "PLATFORM=%1" XCOMPILE=1 USE_NATIVE_LIB
PATHS=1 NO_TCL=1 %NMAKE_ARGS% %NMAKE_ARGS_CFG% |
| 774 GOTO :EOF |
| 775 |
699 :fn_ShowVariable | 776 :fn_ShowVariable |
700 SETLOCAL | 777 SETLOCAL |
701 SET __ECHO_CMD=ECHO %%%2%% | 778 SET __ECHO_CMD=ECHO %%%2%% |
702 FOR /F "delims=" %%V IN ('%__ECHO_CMD%') DO ( | 779 FOR /F "delims=" %%V IN ('%__ECHO_CMD%') DO ( |
703 IF NOT "%%V" == "" ( | 780 IF NOT "%%V" == "" ( |
704 IF NOT "%%V" == "%%%2%%" ( | 781 IF NOT "%%V" == "%%%2%%" ( |
705 %_VECHO% %1 = '%%V' | 782 %_VECHO% %1 = '%%V' |
706 ) | 783 ) |
707 ) | 784 ) |
708 ) | 785 ) |
(...skipping 13 matching lines...) Expand all Loading... |
722 IF "%2" == "" GOTO :EOF | 799 IF "%2" == "" GOTO :EOF |
723 SETLOCAL | 800 SETLOCAL |
724 SET __ECHO_CMD=ECHO %%%1%% | 801 SET __ECHO_CMD=ECHO %%%1%% |
725 FOR /F "delims=" %%V IN ('%__ECHO_CMD%') DO ( | 802 FOR /F "delims=" %%V IN ('%__ECHO_CMD%') DO ( |
726 SET VALUE=%%V | 803 SET VALUE=%%V |
727 ) | 804 ) |
728 ENDLOCAL && SET %2=%VALUE% | 805 ENDLOCAL && SET %2=%VALUE% |
729 GOTO :EOF | 806 GOTO :EOF |
730 | 807 |
731 :fn_UnsetVariable | 808 :fn_UnsetVariable |
732 IF NOT "%1" == "" ( | 809 SETLOCAL |
733 SET %1= | 810 SET VALUE=%1 |
734 CALL :fn_ResetErrorLevel | 811 IF DEFINED VALUE ( |
| 812 SET VALUE= |
| 813 ENDLOCAL |
| 814 SET %VALUE%= |
| 815 ) ELSE ( |
| 816 ENDLOCAL |
735 ) | 817 ) |
| 818 CALL :fn_ResetErrorLevel |
736 GOTO :EOF | 819 GOTO :EOF |
737 | 820 |
738 :fn_AppendVariable | 821 :fn_AppendVariable |
739 SET __ECHO_CMD=ECHO %%%1%% | 822 SET __ECHO_CMD=ECHO %%%1%% |
740 IF DEFINED %1 ( | 823 IF DEFINED %1 ( |
741 FOR /F "delims=" %%V IN ('%__ECHO_CMD%') DO ( | 824 FOR /F "delims=" %%V IN ('%__ECHO_CMD%') DO ( |
742 SET %1=%%V%~2 | 825 SET %1=%%V%~2 |
743 ) | 826 ) |
744 ) ELSE ( | 827 ) ELSE ( |
745 SET %1=%~2 | 828 SET %1=%~2 |
(...skipping 17 matching lines...) Expand all Loading... |
763 | 846 |
764 :no_errors | 847 :no_errors |
765 CALL :fn_ResetErrorLevel | 848 CALL :fn_ResetErrorLevel |
766 ENDLOCAL | 849 ENDLOCAL |
767 ECHO. | 850 ECHO. |
768 ECHO Success, no errors were encountered. | 851 ECHO Success, no errors were encountered. |
769 GOTO end_of_file | 852 GOTO end_of_file |
770 | 853 |
771 :end_of_file | 854 :end_of_file |
772 %__ECHO% EXIT /B %ERRORLEVEL% | 855 %__ECHO% EXIT /B %ERRORLEVEL% |
OLD | NEW |