| | @@ -148,12 +148,16 @@ |
| 148 | 148 | set SHELL_OPTIONS { |
| 149 | 149 | -Dmain=sqlite3_shell |
| 150 | 150 | -DSQLITE_OMIT_LOAD_EXTENSION=1 |
| 151 | 151 | -Dsqlite3_strglob=strglob |
| 152 | 152 | } |
| 153 | | -#lappend SHELL_OPTIONS -Dgetenv=fossil_getenv |
| 154 | | -#lappend SHELL_OPTIONS -Dfopen=fossil_fopen |
| 153 | + |
| 154 | +# Options used to compile the included SQLite shell on Windows. |
| 155 | +# |
| 156 | +set SHELL_WIN32_OPTIONS $SHELL_OPTIONS |
| 157 | +lappend SHELL_WIN32_OPTIONS -Dgetenv=fossil_getenv |
| 158 | +lappend SHELL_WIN32_OPTIONS -Dfopen=fossil_fopen |
| 155 | 159 | |
| 156 | 160 | # Name of the final application |
| 157 | 161 | # |
| 158 | 162 | set name fossil |
| 159 | 163 | |
| | @@ -212,11 +216,13 @@ |
| 212 | 216 | } |
| 213 | 217 | writeln "\n" |
| 214 | 218 | writeln "APPNAME = $name\$(E)" |
| 215 | 219 | writeln "\n" |
| 216 | 220 | |
| 217 | | -writeln { |
| 221 | +writeln [string map [list \ |
| 222 | + <<<SQLITE_OPTIONS>>> [join $SQLITE_OPTIONS " \\\n "] \ |
| 223 | + <<<SHELL_OPTIONS>>> [join $SHELL_OPTIONS " \\\n "]] { |
| 218 | 224 | all: $(OBJDIR) $(APPNAME) |
| 219 | 225 | |
| 220 | 226 | install: $(APPNAME) |
| 221 | 227 | mkdir -p $(INSTALLDIR) |
| 222 | 228 | mv $(APPNAME) $(INSTALLDIR) |
| | @@ -244,10 +250,16 @@ |
| 244 | 250 | |
| 245 | 251 | $(OBJDIR)/VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(SRCDIR)/../VERSION $(OBJDIR)/mkversion |
| 246 | 252 | $(OBJDIR)/mkversion $(SRCDIR)/../manifest.uuid \ |
| 247 | 253 | $(SRCDIR)/../manifest \ |
| 248 | 254 | $(SRCDIR)/../VERSION >$(OBJDIR)/VERSION.h |
| 255 | + |
| 256 | +# Setup the options used to compile the included SQLite library. |
| 257 | +SQLITE3_OPTIONS = <<<SQLITE_OPTIONS>>> |
| 258 | + |
| 259 | +# Setup the options used to compile the included SQLite shell. |
| 260 | +SHELL_OPTIONS = <<<SHELL_OPTIONS>>> |
| 249 | 261 | |
| 250 | 262 | # The USE_SYSTEM_SQLITE variable may be undefined, set to 0, or set |
| 251 | 263 | # to 1. If it is set to 1, then there is no need to build or link |
| 252 | 264 | # the sqlite3.o object. Instead, the system sqlite will be linked |
| 253 | 265 | # using -lsqlite3. |
| | @@ -280,11 +292,11 @@ |
| 280 | 292 | # noop |
| 281 | 293 | |
| 282 | 294 | clean: |
| 283 | 295 | rm -rf $(OBJDIR)/* $(APPNAME) |
| 284 | 296 | |
| 285 | | -} |
| 297 | +}] |
| 286 | 298 | |
| 287 | 299 | set mhargs {} |
| 288 | 300 | foreach s [lsort $src] { |
| 289 | 301 | append mhargs " \$(OBJDIR)/${s}_.c:\$(OBJDIR)/$s.h" |
| 290 | 302 | set extra_h($s) {} |
| | @@ -310,14 +322,14 @@ |
| 310 | 322 | writeln "\t\$(XTCC) -o \$(OBJDIR)/$s.o -c \$(OBJDIR)/${s}_.c\n" |
| 311 | 323 | writeln "\$(OBJDIR)/$s.h:\t\$(OBJDIR)/headers" |
| 312 | 324 | } |
| 313 | 325 | |
| 314 | 326 | writeln "\$(OBJDIR)/sqlite3.o:\t\$(SRCDIR)/sqlite3.c" |
| 315 | | -writeln "\t\$(XTCC) [join $SQLITE_OPTIONS { }] \$(SQLITE3_CFLAGS) -c \$(SRCDIR)/sqlite3.c -o \$(OBJDIR)/sqlite3.o\n" |
| 327 | +writeln "\t\$(XTCC) \$(SQLITE_OPTIONS) \$(SQLITE3_CFLAGS) -c \$(SRCDIR)/sqlite3.c -o \$(OBJDIR)/sqlite3.o\n" |
| 316 | 328 | |
| 317 | 329 | writeln "\$(OBJDIR)/shell.o:\t\$(SRCDIR)/shell.c \$(SRCDIR)/sqlite3.h" |
| 318 | | -writeln "\t\$(XTCC) [join $SHELL_OPTIONS { }] \$(SHELL_CFLAGS) -c \$(SRCDIR)/shell.c -o \$(OBJDIR)/shell.o\n" |
| 330 | +writeln "\t\$(XTCC) \$(SHELL_OPTIONS) \$(SHELL_CFLAGS) -c \$(SRCDIR)/shell.c -o \$(OBJDIR)/shell.o\n" |
| 319 | 331 | |
| 320 | 332 | writeln "\$(OBJDIR)/th.o:\t\$(SRCDIR)/th.c" |
| 321 | 333 | writeln "\t\$(XTCC) -c \$(SRCDIR)/th.c -o \$(OBJDIR)/th.o\n" |
| 322 | 334 | |
| 323 | 335 | writeln "\$(OBJDIR)/th_lang.o:\t\$(SRCDIR)/th_lang.c" |
| | @@ -787,11 +799,10 @@ |
| 787 | 799 | } |
| 788 | 800 | |
| 789 | 801 | |
| 790 | 802 | writeln "\$(OBJDIR)/sqlite3.o:\t\$(SRCDIR)/sqlite3.c" |
| 791 | 803 | set opt [join $SQLITE_OPTIONS { }] |
| 792 | | -append opt " -DSQLITE_WIN32_NO_ANSI" |
| 793 | 804 | append opt " -D_HAVE_SQLITE_CONFIG_H" |
| 794 | 805 | append opt " -DSQLITE_USE_MALLOC_H" |
| 795 | 806 | append opt " -DSQLITE_USE_MSIZE" |
| 796 | 807 | writeln "\t\$(XTCC) $opt \$(SQLITE3_CFLAGS) -c \$(SRCDIR)/sqlite3.c -o \$(OBJDIR)/sqlite3.o\n" |
| 797 | 808 | |
| | @@ -799,13 +810,11 @@ |
| 799 | 810 | writeln "\$(OBJDIR)/cson_amalgamation.o:\t\$(SRCDIR)/cson_amalgamation.c" |
| 800 | 811 | writeln "\t\$(XTCC) $opt -c \$(SRCDIR)/cson_amalgamation.c -o \$(OBJDIR)/cson_amalgamation.o\n" |
| 801 | 812 | writeln "\$(OBJDIR)/json.o \$(OBJDIR)/json_artifact.o \$(OBJDIR)/json_branch.o \$(OBJDIR)/json_config.o \$(OBJDIR)/json_diff.o \$(OBJDIR)/json_dir.o \$(OBJDIR)/jsos_finfo.o \$(OBJDIR)/json_login.o \$(OBJDIR)/json_query.o \$(OBJDIR)/json_report.o \$(OBJDIR)/json_status.o \$(OBJDIR)/json_tag.o \$(OBJDIR)/json_timeline.o \$(OBJDIR)/json_user.o \$(OBJDIR)/json_wiki.o : \$(SRCDIR)/json_detail.h\n" |
| 802 | 813 | |
| 803 | 814 | writeln "\$(OBJDIR)/shell.o:\t\$(SRCDIR)/shell.c \$(SRCDIR)/sqlite3.h" |
| 804 | | -set opt [join $SHELL_OPTIONS { }] |
| 805 | | -append opt " -Dgetenv=fossil_getenv" |
| 806 | | -append opt " -Dfopen=fossil_fopen" |
| 815 | +set opt [join $SHELL_WIN32_OPTIONS { }] |
| 807 | 816 | writeln "\t\$(XTCC) $opt \$(SHELL_CFLAGS) -c \$(SRCDIR)/shell.c -o \$(OBJDIR)/shell.o\n" |
| 808 | 817 | |
| 809 | 818 | writeln "\$(OBJDIR)/th.o:\t\$(SRCDIR)/th.c" |
| 810 | 819 | writeln "\t\$(XTCC) -c \$(SRCDIR)/th.c -o \$(OBJDIR)/th.o\n" |
| 811 | 820 | |
| | @@ -855,12 +864,12 @@ |
| 855 | 864 | CFLAGS = -o |
| 856 | 865 | BCC = $(DMDIR)\bin\dmc $(CFLAGS) |
| 857 | 866 | TCC = $(DMDIR)\bin\dmc $(CFLAGS) $(DMCDEF) $(SSL) $(INCL) |
| 858 | 867 | LIBS = $(DMDIR)\extra\lib\ zlib wsock32 advapi32 |
| 859 | 868 | } |
| 860 | | -writeln "SQLITE_OPTIONS = [join $SQLITE_OPTIONS { }] -DSQLITE_WIN32_NO_ANSI\n" |
| 861 | | -writeln "SHELL_OPTIONS = [join $SHELL_OPTIONS { }] -Dgetenv=fossil_getenv -Dfopen=fossil_fopen\n" |
| 869 | +writeln "SQLITE_OPTIONS = [join $SQLITE_OPTIONS { }]\n" |
| 870 | +writeln "SHELL_OPTIONS = [join $SHELL_WIN32_OPTIONS { }]\n" |
| 862 | 871 | writeln -nonewline "SRC = " |
| 863 | 872 | foreach s [lsort $src] { |
| 864 | 873 | writeln -nonewline "${s}_.c " |
| 865 | 874 | } |
| 866 | 875 | writeln "\n" |
| | @@ -1049,17 +1058,14 @@ |
| 1049 | 1058 | LIBS = $(LIBS) $(SSLLIB) |
| 1050 | 1059 | LIBDIR = $(LIBDIR) -LIBPATH:$(SSLLIBDIR) |
| 1051 | 1060 | !endif |
| 1052 | 1061 | } |
| 1053 | 1062 | regsub -all {[-]D} [join $SQLITE_OPTIONS { }] {/D} MSC_SQLITE_OPTIONS |
| 1054 | | -lappend MSC_SQLITE_OPTIONS /DSQLITE_WIN32_NO_ANSI |
| 1055 | 1063 | set j " \\\n " |
| 1056 | 1064 | writeln "SQLITE_OPTIONS = [join $MSC_SQLITE_OPTIONS $j]\n" |
| 1057 | 1065 | |
| 1058 | | -regsub -all {[-]D} [join $SHELL_OPTIONS { }] {/D} MSC_SHELL_OPTIONS |
| 1059 | | -lappend MSC_SHELL_OPTIONS /Dgetenv=fossil_getenv |
| 1060 | | -lappend MSC_SHELL_OPTIONS /Dfopen=fossil_fopen |
| 1066 | +regsub -all {[-]D} [join $SHELL_WIN32_OPTIONS { }] {/D} MSC_SHELL_OPTIONS |
| 1061 | 1067 | set j " \\\n " |
| 1062 | 1068 | writeln "SHELL_OPTIONS = [join $MSC_SHELL_OPTIONS $j]\n" |
| 1063 | 1069 | |
| 1064 | 1070 | writeln -nonewline "SRC = " |
| 1065 | 1071 | set i 0 |
| | @@ -1145,11 +1151,10 @@ |
| 1145 | 1151 | -del $(OX)\*.obj |
| 1146 | 1152 | -del *.obj |
| 1147 | 1153 | -del *_.c |
| 1148 | 1154 | -del *.h |
| 1149 | 1155 | -del *.map |
| 1150 | | - -del *.manifest |
| 1151 | 1156 | -del headers |
| 1152 | 1157 | -del linkopts |
| 1153 | 1158 | -del *.res |
| 1154 | 1159 | |
| 1155 | 1160 | realclean: clean |
| | @@ -1215,11 +1220,11 @@ |
| 1215 | 1220 | set output_file [open ../win/Makefile.PellesCGMake w] |
| 1216 | 1221 | fconfigure $output_file -translation binary |
| 1217 | 1222 | |
| 1218 | 1223 | writeln [string map [list \ |
| 1219 | 1224 | <<<SQLITE_OPTIONS>>> [join $SQLITE_OPTIONS { }] \ |
| 1220 | | - <<<SHELL_OPTIONS>>> [join $SHELL_OPTIONS { }]] {# |
| 1225 | + <<<SHELL_OPTIONS>>> [join $SHELL_WIN32_OPTIONS { }]] {# |
| 1221 | 1226 | ############################################################################## |
| 1222 | 1227 | # WARNING: DO NOT EDIT, AUTOMATICALLY GENERATED FILE (SEE "src/makemake.tcl") |
| 1223 | 1228 | ############################################################################## |
| 1224 | 1229 | # |
| 1225 | 1230 | # This file is automatically generated. Instead of editing this |
| | @@ -1302,17 +1307,17 @@ |
| 1302 | 1307 | |
| 1303 | 1308 | # define the sqlite files, which need special flags on compile |
| 1304 | 1309 | SQLITESRC=sqlite3.c |
| 1305 | 1310 | ORIGSQLITESRC=$(foreach sf,$(SQLITESRC),$(SRCDIR)$(sf)) |
| 1306 | 1311 | SQLITEOBJ=$(foreach sf,$(SQLITESRC),$(sf:.c=.obj)) |
| 1307 | | -SQLITEDEFINES=<<<SQLITE_OPTIONS>>> -DSQLITE_WIN32_NO_ANSI |
| 1312 | +SQLITEDEFINES=<<<SQLITE_OPTIONS>>> |
| 1308 | 1313 | |
| 1309 | 1314 | # define the sqlite shell files, which need special flags on compile |
| 1310 | 1315 | SQLITESHELLSRC=shell.c |
| 1311 | 1316 | ORIGSQLITESHELLSRC=$(foreach sf,$(SQLITESHELLSRC),$(SRCDIR)$(sf)) |
| 1312 | 1317 | SQLITESHELLOBJ=$(foreach sf,$(SQLITESHELLSRC),$(sf:.c=.obj)) |
| 1313 | | -SQLITESHELLDEFINES=<<<SHELL_OPTIONS>>> -Dgetenv=fossil_getenv -Dfopen=fossil_fopen |
| 1318 | +SQLITESHELLDEFINES=<<<SHELL_OPTIONS>>> |
| 1314 | 1319 | |
| 1315 | 1320 | # define the th scripting files, which need special flags on compile |
| 1316 | 1321 | THSRC=th.c th_lang.c |
| 1317 | 1322 | ORIGTHSRC=$(foreach sf,$(THSRC),$(SRCDIR)$(sf)) |
| 1318 | 1323 | THOBJ=$(foreach sf,$(THSRC),$(sf:.c=.obj)) |
| 1319 | 1324 | |