Fossil SCM
Pull over the latest clear-title changes from trunk.
Commit
16e703be111fc2cff7e3af067a3d969578769dc4
Parent
14c19fbc1c39554…
32 files changed
+6
-5
+6
-5
+14
+63
-16
+63
-16
+26
-1
+26
-1
+5
+5
+2
-2
+2
-2
+2
-1
+10
-4
+50
-13
+38
-4
+1
-1
-10
+219
-216
+219
-216
+16
-13
+16
-13
+3
-2
+3
+38
-14
+1
-1
-1
+1
-1
+63
+7
+2
+52
+1
-1
~
Makefile
~
Makefile
~
Makefile.w32
~
src/add.c
~
src/add.c
~
src/checkin.c
~
src/checkin.c
~
src/checkout.c
~
src/checkout.c
~
src/db.c
~
src/db.c
~
src/encode.c
~
src/file.c
~
src/graph.c
~
src/http_transport.c
~
src/info.c
~
src/main.c
~
src/main.mk
~
src/main.mk
~
src/makemake.tcl
~
src/makemake.tcl
~
src/rss.c
~
src/style.c
~
src/timeline.c
~
src/tktsetup.c
~
src/vfile.c
~
src/xfer.c
~
www/custom_ticket.wiki
~
www/fileformat.wiki
~
www/index.wiki
~
www/server.wiki
~
www/theory1.wiki
M
Makefile
+6
-5
| --- Makefile | ||
| +++ Makefile | ||
| @@ -3,10 +3,15 @@ | ||
| 3 | 3 | #### The toplevel directory of the source tree. Fossil can be built |
| 4 | 4 | # in a directory that is separate from the source tree. Just change |
| 5 | 5 | # the following to point from the build directory to the src/ folder. |
| 6 | 6 | # |
| 7 | 7 | SRCDIR = ./src |
| 8 | + | |
| 9 | +#### The directory into which object code files should be written. | |
| 10 | +# | |
| 11 | +# | |
| 12 | +OBJDIR = ./obj | |
| 8 | 13 | |
| 9 | 14 | #### C Compiler and options for use in building executables that |
| 10 | 15 | # will run on the platform that is doing the build. This is used |
| 11 | 16 | # to compile code-generator programs as part of the build process. |
| 12 | 17 | # See TCC below for the C compiler for building the finished binary. |
| @@ -38,18 +43,14 @@ | ||
| 38 | 43 | # If you're on OpenSolaris: |
| 39 | 44 | # LIB += lsocket |
| 40 | 45 | # Solaris 10 needs: |
| 41 | 46 | # LIB += -lsocket -lnsl |
| 42 | 47 | # My assumption is that the Sol10 flags will work for Sol8/9 and possibly 11. |
| 43 | - | |
| 48 | +# | |
| 44 | 49 | |
| 45 | 50 | #### Tcl shell for use in running the fossil testsuite. |
| 46 | 51 | # |
| 47 | 52 | TCLSH = tclsh |
| 48 | 53 | |
| 49 | -#### Include a configuration file that can override any one of these settings. | |
| 50 | -# | |
| 51 | --include config.mak | |
| 52 | - | |
| 53 | 54 | # You should not need to change anything below this line |
| 54 | 55 | ############################################################################### |
| 55 | 56 | include $(SRCDIR)/main.mk |
| 56 | 57 |
| --- Makefile | |
| +++ Makefile | |
| @@ -3,10 +3,15 @@ | |
| 3 | #### The toplevel directory of the source tree. Fossil can be built |
| 4 | # in a directory that is separate from the source tree. Just change |
| 5 | # the following to point from the build directory to the src/ folder. |
| 6 | # |
| 7 | SRCDIR = ./src |
| 8 | |
| 9 | #### C Compiler and options for use in building executables that |
| 10 | # will run on the platform that is doing the build. This is used |
| 11 | # to compile code-generator programs as part of the build process. |
| 12 | # See TCC below for the C compiler for building the finished binary. |
| @@ -38,18 +43,14 @@ | |
| 38 | # If you're on OpenSolaris: |
| 39 | # LIB += lsocket |
| 40 | # Solaris 10 needs: |
| 41 | # LIB += -lsocket -lnsl |
| 42 | # My assumption is that the Sol10 flags will work for Sol8/9 and possibly 11. |
| 43 | |
| 44 | |
| 45 | #### Tcl shell for use in running the fossil testsuite. |
| 46 | # |
| 47 | TCLSH = tclsh |
| 48 | |
| 49 | #### Include a configuration file that can override any one of these settings. |
| 50 | # |
| 51 | -include config.mak |
| 52 | |
| 53 | # You should not need to change anything below this line |
| 54 | ############################################################################### |
| 55 | include $(SRCDIR)/main.mk |
| 56 |
| --- Makefile | |
| +++ Makefile | |
| @@ -3,10 +3,15 @@ | |
| 3 | #### The toplevel directory of the source tree. Fossil can be built |
| 4 | # in a directory that is separate from the source tree. Just change |
| 5 | # the following to point from the build directory to the src/ folder. |
| 6 | # |
| 7 | SRCDIR = ./src |
| 8 | |
| 9 | #### The directory into which object code files should be written. |
| 10 | # |
| 11 | # |
| 12 | OBJDIR = ./obj |
| 13 | |
| 14 | #### C Compiler and options for use in building executables that |
| 15 | # will run on the platform that is doing the build. This is used |
| 16 | # to compile code-generator programs as part of the build process. |
| 17 | # See TCC below for the C compiler for building the finished binary. |
| @@ -38,18 +43,14 @@ | |
| 43 | # If you're on OpenSolaris: |
| 44 | # LIB += lsocket |
| 45 | # Solaris 10 needs: |
| 46 | # LIB += -lsocket -lnsl |
| 47 | # My assumption is that the Sol10 flags will work for Sol8/9 and possibly 11. |
| 48 | # |
| 49 | |
| 50 | #### Tcl shell for use in running the fossil testsuite. |
| 51 | # |
| 52 | TCLSH = tclsh |
| 53 | |
| 54 | # You should not need to change anything below this line |
| 55 | ############################################################################### |
| 56 | include $(SRCDIR)/main.mk |
| 57 |
M
Makefile
+6
-5
| --- Makefile | ||
| +++ Makefile | ||
| @@ -3,10 +3,15 @@ | ||
| 3 | 3 | #### The toplevel directory of the source tree. Fossil can be built |
| 4 | 4 | # in a directory that is separate from the source tree. Just change |
| 5 | 5 | # the following to point from the build directory to the src/ folder. |
| 6 | 6 | # |
| 7 | 7 | SRCDIR = ./src |
| 8 | + | |
| 9 | +#### The directory into which object code files should be written. | |
| 10 | +# | |
| 11 | +# | |
| 12 | +OBJDIR = ./obj | |
| 8 | 13 | |
| 9 | 14 | #### C Compiler and options for use in building executables that |
| 10 | 15 | # will run on the platform that is doing the build. This is used |
| 11 | 16 | # to compile code-generator programs as part of the build process. |
| 12 | 17 | # See TCC below for the C compiler for building the finished binary. |
| @@ -38,18 +43,14 @@ | ||
| 38 | 43 | # If you're on OpenSolaris: |
| 39 | 44 | # LIB += lsocket |
| 40 | 45 | # Solaris 10 needs: |
| 41 | 46 | # LIB += -lsocket -lnsl |
| 42 | 47 | # My assumption is that the Sol10 flags will work for Sol8/9 and possibly 11. |
| 43 | - | |
| 48 | +# | |
| 44 | 49 | |
| 45 | 50 | #### Tcl shell for use in running the fossil testsuite. |
| 46 | 51 | # |
| 47 | 52 | TCLSH = tclsh |
| 48 | 53 | |
| 49 | -#### Include a configuration file that can override any one of these settings. | |
| 50 | -# | |
| 51 | --include config.mak | |
| 52 | - | |
| 53 | 54 | # You should not need to change anything below this line |
| 54 | 55 | ############################################################################### |
| 55 | 56 | include $(SRCDIR)/main.mk |
| 56 | 57 |
| --- Makefile | |
| +++ Makefile | |
| @@ -3,10 +3,15 @@ | |
| 3 | #### The toplevel directory of the source tree. Fossil can be built |
| 4 | # in a directory that is separate from the source tree. Just change |
| 5 | # the following to point from the build directory to the src/ folder. |
| 6 | # |
| 7 | SRCDIR = ./src |
| 8 | |
| 9 | #### C Compiler and options for use in building executables that |
| 10 | # will run on the platform that is doing the build. This is used |
| 11 | # to compile code-generator programs as part of the build process. |
| 12 | # See TCC below for the C compiler for building the finished binary. |
| @@ -38,18 +43,14 @@ | |
| 38 | # If you're on OpenSolaris: |
| 39 | # LIB += lsocket |
| 40 | # Solaris 10 needs: |
| 41 | # LIB += -lsocket -lnsl |
| 42 | # My assumption is that the Sol10 flags will work for Sol8/9 and possibly 11. |
| 43 | |
| 44 | |
| 45 | #### Tcl shell for use in running the fossil testsuite. |
| 46 | # |
| 47 | TCLSH = tclsh |
| 48 | |
| 49 | #### Include a configuration file that can override any one of these settings. |
| 50 | # |
| 51 | -include config.mak |
| 52 | |
| 53 | # You should not need to change anything below this line |
| 54 | ############################################################################### |
| 55 | include $(SRCDIR)/main.mk |
| 56 |
| --- Makefile | |
| +++ Makefile | |
| @@ -3,10 +3,15 @@ | |
| 3 | #### The toplevel directory of the source tree. Fossil can be built |
| 4 | # in a directory that is separate from the source tree. Just change |
| 5 | # the following to point from the build directory to the src/ folder. |
| 6 | # |
| 7 | SRCDIR = ./src |
| 8 | |
| 9 | #### The directory into which object code files should be written. |
| 10 | # |
| 11 | # |
| 12 | OBJDIR = ./obj |
| 13 | |
| 14 | #### C Compiler and options for use in building executables that |
| 15 | # will run on the platform that is doing the build. This is used |
| 16 | # to compile code-generator programs as part of the build process. |
| 17 | # See TCC below for the C compiler for building the finished binary. |
| @@ -38,18 +43,14 @@ | |
| 43 | # If you're on OpenSolaris: |
| 44 | # LIB += lsocket |
| 45 | # Solaris 10 needs: |
| 46 | # LIB += -lsocket -lnsl |
| 47 | # My assumption is that the Sol10 flags will work for Sol8/9 and possibly 11. |
| 48 | # |
| 49 | |
| 50 | #### Tcl shell for use in running the fossil testsuite. |
| 51 | # |
| 52 | TCLSH = tclsh |
| 53 | |
| 54 | # You should not need to change anything below this line |
| 55 | ############################################################################### |
| 56 | include $(SRCDIR)/main.mk |
| 57 |
+14
| --- Makefile.w32 | ||
| +++ Makefile.w32 | ||
| @@ -3,10 +3,11 @@ | ||
| 3 | 3 | #### The toplevel directory of the source tree. Fossil can be built |
| 4 | 4 | # in a directory that is separate from the source tree. Just change |
| 5 | 5 | # the following to point from the build directory to the src/ folder. |
| 6 | 6 | # |
| 7 | 7 | SRCDIR = ./src |
| 8 | +OBJDIR = ./wobj | |
| 8 | 9 | |
| 9 | 10 | #### C Compiler and options for use in building executables that |
| 10 | 11 | # will run on the platform that is doing the build. This is used |
| 11 | 12 | # to compile code-generator programs as part of the build process. |
| 12 | 13 | # See TCC below for the C compiler for building the finished binary. |
| @@ -15,10 +16,14 @@ | ||
| 15 | 16 | |
| 16 | 17 | #### The suffix to add to executable files. ".exe" for windows. |
| 17 | 18 | # Nothing for unix. |
| 18 | 19 | # |
| 19 | 20 | E = .exe |
| 21 | + | |
| 22 | +#### Enable HTTPS support via OpenSSL (links to libssl and libcrypto) | |
| 23 | +# | |
| 24 | +# FOSSIL_ENABLE_SSL=1 | |
| 20 | 25 | |
| 21 | 26 | #### C Compile and options for use in building executables that |
| 22 | 27 | # will run on the target platform. This is usually the same |
| 23 | 28 | # as BCC, unless you are cross-compiling. This C compiler builds |
| 24 | 29 | # the finished binary for fossil. The BCC compiler above is used |
| @@ -27,10 +32,15 @@ | ||
| 27 | 32 | #TCC = gcc -O6 |
| 28 | 33 | #TCC = gcc -g -O0 -Wall -fprofile-arcs -ftest-coverage |
| 29 | 34 | #TCC = gcc -g -Os -Wall |
| 30 | 35 | #TCC = gcc -g -Os -Wall -DFOSSIL_I18N=0 -L/usr/local/lib -I/usr/local/include |
| 31 | 36 | TCC = gcc -Os -Wall -DFOSSIL_I18N=0 -L/mingw/lib -I/mingw/include |
| 37 | + | |
| 38 | +# With HTTPS support | |
| 39 | +ifdef FOSSIL_ENABLE_SSL | |
| 40 | +TCC += -DFOSSIL_ENABLE_SSL=1 | |
| 41 | +endif | |
| 32 | 42 | |
| 33 | 43 | #### Extra arguments for linking the finished binary. Fossil needs |
| 34 | 44 | # to link against the Z-Lib compression library. There are no |
| 35 | 45 | # other dependencies. We sometimes add the -static option here |
| 36 | 46 | # so that we can build a static executable that will run in a |
| @@ -37,10 +47,14 @@ | ||
| 37 | 47 | # chroot jail. |
| 38 | 48 | # |
| 39 | 49 | #LIB = -lz |
| 40 | 50 | #LIB = -lz -lws2_32 |
| 41 | 51 | LIB = -lmingwex -lz -lws2_32 |
| 52 | +# OpenSSL: | |
| 53 | +ifdef FOSSIL_ENABLE_SSL | |
| 54 | +LIB += -lcrypto -lssl | |
| 55 | +endif | |
| 42 | 56 | |
| 43 | 57 | #### Tcl shell for use in running the fossil testsuite. |
| 44 | 58 | # |
| 45 | 59 | TCLSH = tclsh |
| 46 | 60 | |
| 47 | 61 |
| --- Makefile.w32 | |
| +++ Makefile.w32 | |
| @@ -3,10 +3,11 @@ | |
| 3 | #### The toplevel directory of the source tree. Fossil can be built |
| 4 | # in a directory that is separate from the source tree. Just change |
| 5 | # the following to point from the build directory to the src/ folder. |
| 6 | # |
| 7 | SRCDIR = ./src |
| 8 | |
| 9 | #### C Compiler and options for use in building executables that |
| 10 | # will run on the platform that is doing the build. This is used |
| 11 | # to compile code-generator programs as part of the build process. |
| 12 | # See TCC below for the C compiler for building the finished binary. |
| @@ -15,10 +16,14 @@ | |
| 15 | |
| 16 | #### The suffix to add to executable files. ".exe" for windows. |
| 17 | # Nothing for unix. |
| 18 | # |
| 19 | E = .exe |
| 20 | |
| 21 | #### C Compile and options for use in building executables that |
| 22 | # will run on the target platform. This is usually the same |
| 23 | # as BCC, unless you are cross-compiling. This C compiler builds |
| 24 | # the finished binary for fossil. The BCC compiler above is used |
| @@ -27,10 +32,15 @@ | |
| 27 | #TCC = gcc -O6 |
| 28 | #TCC = gcc -g -O0 -Wall -fprofile-arcs -ftest-coverage |
| 29 | #TCC = gcc -g -Os -Wall |
| 30 | #TCC = gcc -g -Os -Wall -DFOSSIL_I18N=0 -L/usr/local/lib -I/usr/local/include |
| 31 | TCC = gcc -Os -Wall -DFOSSIL_I18N=0 -L/mingw/lib -I/mingw/include |
| 32 | |
| 33 | #### Extra arguments for linking the finished binary. Fossil needs |
| 34 | # to link against the Z-Lib compression library. There are no |
| 35 | # other dependencies. We sometimes add the -static option here |
| 36 | # so that we can build a static executable that will run in a |
| @@ -37,10 +47,14 @@ | |
| 37 | # chroot jail. |
| 38 | # |
| 39 | #LIB = -lz |
| 40 | #LIB = -lz -lws2_32 |
| 41 | LIB = -lmingwex -lz -lws2_32 |
| 42 | |
| 43 | #### Tcl shell for use in running the fossil testsuite. |
| 44 | # |
| 45 | TCLSH = tclsh |
| 46 | |
| 47 |
| --- Makefile.w32 | |
| +++ Makefile.w32 | |
| @@ -3,10 +3,11 @@ | |
| 3 | #### The toplevel directory of the source tree. Fossil can be built |
| 4 | # in a directory that is separate from the source tree. Just change |
| 5 | # the following to point from the build directory to the src/ folder. |
| 6 | # |
| 7 | SRCDIR = ./src |
| 8 | OBJDIR = ./wobj |
| 9 | |
| 10 | #### C Compiler and options for use in building executables that |
| 11 | # will run on the platform that is doing the build. This is used |
| 12 | # to compile code-generator programs as part of the build process. |
| 13 | # See TCC below for the C compiler for building the finished binary. |
| @@ -15,10 +16,14 @@ | |
| 16 | |
| 17 | #### The suffix to add to executable files. ".exe" for windows. |
| 18 | # Nothing for unix. |
| 19 | # |
| 20 | E = .exe |
| 21 | |
| 22 | #### Enable HTTPS support via OpenSSL (links to libssl and libcrypto) |
| 23 | # |
| 24 | # FOSSIL_ENABLE_SSL=1 |
| 25 | |
| 26 | #### C Compile and options for use in building executables that |
| 27 | # will run on the target platform. This is usually the same |
| 28 | # as BCC, unless you are cross-compiling. This C compiler builds |
| 29 | # the finished binary for fossil. The BCC compiler above is used |
| @@ -27,10 +32,15 @@ | |
| 32 | #TCC = gcc -O6 |
| 33 | #TCC = gcc -g -O0 -Wall -fprofile-arcs -ftest-coverage |
| 34 | #TCC = gcc -g -Os -Wall |
| 35 | #TCC = gcc -g -Os -Wall -DFOSSIL_I18N=0 -L/usr/local/lib -I/usr/local/include |
| 36 | TCC = gcc -Os -Wall -DFOSSIL_I18N=0 -L/mingw/lib -I/mingw/include |
| 37 | |
| 38 | # With HTTPS support |
| 39 | ifdef FOSSIL_ENABLE_SSL |
| 40 | TCC += -DFOSSIL_ENABLE_SSL=1 |
| 41 | endif |
| 42 | |
| 43 | #### Extra arguments for linking the finished binary. Fossil needs |
| 44 | # to link against the Z-Lib compression library. There are no |
| 45 | # other dependencies. We sometimes add the -static option here |
| 46 | # so that we can build a static executable that will run in a |
| @@ -37,10 +47,14 @@ | |
| 47 | # chroot jail. |
| 48 | # |
| 49 | #LIB = -lz |
| 50 | #LIB = -lz -lws2_32 |
| 51 | LIB = -lmingwex -lz -lws2_32 |
| 52 | # OpenSSL: |
| 53 | ifdef FOSSIL_ENABLE_SSL |
| 54 | LIB += -lcrypto -lssl |
| 55 | endif |
| 56 | |
| 57 | #### Tcl shell for use in running the fossil testsuite. |
| 58 | # |
| 59 | TCLSH = tclsh |
| 60 | |
| 61 |
+63
-16
| --- src/add.c | ||
| +++ src/add.c | ||
| @@ -174,10 +174,57 @@ | ||
| 174 | 174 | } |
| 175 | 175 | free(zName); |
| 176 | 176 | } |
| 177 | 177 | db_end_transaction(0); |
| 178 | 178 | } |
| 179 | + | |
| 180 | +/* | |
| 181 | +** Remove all contents of zDir | |
| 182 | +*/ | |
| 183 | +void del_directory_content(const char *zDir){ | |
| 184 | + DIR *d; | |
| 185 | + int origSize; | |
| 186 | + struct dirent *pEntry; | |
| 187 | + Blob path; | |
| 188 | + | |
| 189 | + blob_zero(&path); | |
| 190 | + blob_append(&path, zDir, -1); | |
| 191 | + origSize = blob_size(&path); | |
| 192 | + d = opendir(zDir); | |
| 193 | + if( d ){ | |
| 194 | + while( (pEntry=readdir(d))!=0 ){ | |
| 195 | + char *zPath; | |
| 196 | + if( pEntry->d_name[0]=='.'){ | |
| 197 | + if( !includeDotFiles ) continue; | |
| 198 | + if( pEntry->d_name[1]==0 ) continue; | |
| 199 | + if( pEntry->d_name[1]=='.' && pEntry->d_name[2]==0 ) continue; | |
| 200 | + } | |
| 201 | + blob_appendf(&path, "/%s", pEntry->d_name); | |
| 202 | + zPath = blob_str(&path); | |
| 203 | + if( file_isdir(zPath)==1 ){ | |
| 204 | + del_directory_content(zPath); | |
| 205 | + }else if( file_isfile(zPath) ){ | |
| 206 | + char *zFilePath; | |
| 207 | + Blob pathname; | |
| 208 | + file_tree_name(zPath, &pathname, 1); | |
| 209 | + zFilePath = blob_str(&pathname); | |
| 210 | + if( !db_exists( | |
| 211 | + "SELECT 1 FROM vfile WHERE pathname=%Q AND NOT deleted", zFilePath) | |
| 212 | + ){ | |
| 213 | + printf("SKIPPED %s\n", zPath); | |
| 214 | + }else{ | |
| 215 | + db_multi_exec("UPDATE vfile SET deleted=1 WHERE pathname=%Q", zPath); | |
| 216 | + printf("DELETED %s\n", zPath); | |
| 217 | + } | |
| 218 | + blob_reset(&pathname); | |
| 219 | + } | |
| 220 | + blob_resize(&path, origSize); | |
| 221 | + } | |
| 222 | + } | |
| 223 | + closedir(d); | |
| 224 | + blob_reset(&path); | |
| 225 | +} | |
| 179 | 226 | |
| 180 | 227 | /* |
| 181 | 228 | ** COMMAND: rm |
| 182 | 229 | ** COMMAND: del |
| 183 | 230 | ** |
| @@ -200,28 +247,28 @@ | ||
| 200 | 247 | fossil_panic("no checkout to remove from"); |
| 201 | 248 | } |
| 202 | 249 | db_begin_transaction(); |
| 203 | 250 | for(i=2; i<g.argc; i++){ |
| 204 | 251 | char *zName; |
| 205 | - char *zPath; | |
| 206 | - Blob pathname; | |
| 207 | 252 | |
| 208 | 253 | zName = mprintf("%/", g.argv[i]); |
| 209 | - if( file_isdir(zName) ){ | |
| 210 | - fossil_fatal("cannot remove directories -" | |
| 211 | - " remove individual files instead"); | |
| 212 | - } | |
| 213 | - file_tree_name(zName, &pathname, 1); | |
| 214 | - zPath = blob_str(&pathname); | |
| 215 | - if( !db_exists( | |
| 216 | - "SELECT 1 FROM vfile WHERE pathname=%Q AND NOT deleted", zPath) ){ | |
| 217 | - fossil_fatal("not in the repository: %s", zName); | |
| 218 | - }else{ | |
| 219 | - db_multi_exec("UPDATE vfile SET deleted=1 WHERE pathname=%Q", zPath); | |
| 220 | - printf("DELETED %s\n", zPath); | |
| 221 | - } | |
| 222 | - blob_reset(&pathname); | |
| 254 | + if( file_isdir(zName) == 1 ){ | |
| 255 | + del_directory_content(zName); | |
| 256 | + } else { | |
| 257 | + char *zPath; | |
| 258 | + Blob pathname; | |
| 259 | + file_tree_name(zName, &pathname, 1); | |
| 260 | + zPath = blob_str(&pathname); | |
| 261 | + if( !db_exists( | |
| 262 | + "SELECT 1 FROM vfile WHERE pathname=%Q AND NOT deleted", zPath) ){ | |
| 263 | + fossil_fatal("not in the repository: %s", zName); | |
| 264 | + }else{ | |
| 265 | + db_multi_exec("UPDATE vfile SET deleted=1 WHERE pathname=%Q", zPath); | |
| 266 | + printf("DELETED %s\n", zPath); | |
| 267 | + } | |
| 268 | + blob_reset(&pathname); | |
| 269 | + } | |
| 223 | 270 | free(zName); |
| 224 | 271 | } |
| 225 | 272 | db_multi_exec("DELETE FROM vfile WHERE deleted AND rid=0"); |
| 226 | 273 | db_end_transaction(0); |
| 227 | 274 | } |
| 228 | 275 |
| --- src/add.c | |
| +++ src/add.c | |
| @@ -174,10 +174,57 @@ | |
| 174 | } |
| 175 | free(zName); |
| 176 | } |
| 177 | db_end_transaction(0); |
| 178 | } |
| 179 | |
| 180 | /* |
| 181 | ** COMMAND: rm |
| 182 | ** COMMAND: del |
| 183 | ** |
| @@ -200,28 +247,28 @@ | |
| 200 | fossil_panic("no checkout to remove from"); |
| 201 | } |
| 202 | db_begin_transaction(); |
| 203 | for(i=2; i<g.argc; i++){ |
| 204 | char *zName; |
| 205 | char *zPath; |
| 206 | Blob pathname; |
| 207 | |
| 208 | zName = mprintf("%/", g.argv[i]); |
| 209 | if( file_isdir(zName) ){ |
| 210 | fossil_fatal("cannot remove directories -" |
| 211 | " remove individual files instead"); |
| 212 | } |
| 213 | file_tree_name(zName, &pathname, 1); |
| 214 | zPath = blob_str(&pathname); |
| 215 | if( !db_exists( |
| 216 | "SELECT 1 FROM vfile WHERE pathname=%Q AND NOT deleted", zPath) ){ |
| 217 | fossil_fatal("not in the repository: %s", zName); |
| 218 | }else{ |
| 219 | db_multi_exec("UPDATE vfile SET deleted=1 WHERE pathname=%Q", zPath); |
| 220 | printf("DELETED %s\n", zPath); |
| 221 | } |
| 222 | blob_reset(&pathname); |
| 223 | free(zName); |
| 224 | } |
| 225 | db_multi_exec("DELETE FROM vfile WHERE deleted AND rid=0"); |
| 226 | db_end_transaction(0); |
| 227 | } |
| 228 |
| --- src/add.c | |
| +++ src/add.c | |
| @@ -174,10 +174,57 @@ | |
| 174 | } |
| 175 | free(zName); |
| 176 | } |
| 177 | db_end_transaction(0); |
| 178 | } |
| 179 | |
| 180 | /* |
| 181 | ** Remove all contents of zDir |
| 182 | */ |
| 183 | void del_directory_content(const char *zDir){ |
| 184 | DIR *d; |
| 185 | int origSize; |
| 186 | struct dirent *pEntry; |
| 187 | Blob path; |
| 188 | |
| 189 | blob_zero(&path); |
| 190 | blob_append(&path, zDir, -1); |
| 191 | origSize = blob_size(&path); |
| 192 | d = opendir(zDir); |
| 193 | if( d ){ |
| 194 | while( (pEntry=readdir(d))!=0 ){ |
| 195 | char *zPath; |
| 196 | if( pEntry->d_name[0]=='.'){ |
| 197 | if( !includeDotFiles ) continue; |
| 198 | if( pEntry->d_name[1]==0 ) continue; |
| 199 | if( pEntry->d_name[1]=='.' && pEntry->d_name[2]==0 ) continue; |
| 200 | } |
| 201 | blob_appendf(&path, "/%s", pEntry->d_name); |
| 202 | zPath = blob_str(&path); |
| 203 | if( file_isdir(zPath)==1 ){ |
| 204 | del_directory_content(zPath); |
| 205 | }else if( file_isfile(zPath) ){ |
| 206 | char *zFilePath; |
| 207 | Blob pathname; |
| 208 | file_tree_name(zPath, &pathname, 1); |
| 209 | zFilePath = blob_str(&pathname); |
| 210 | if( !db_exists( |
| 211 | "SELECT 1 FROM vfile WHERE pathname=%Q AND NOT deleted", zFilePath) |
| 212 | ){ |
| 213 | printf("SKIPPED %s\n", zPath); |
| 214 | }else{ |
| 215 | db_multi_exec("UPDATE vfile SET deleted=1 WHERE pathname=%Q", zPath); |
| 216 | printf("DELETED %s\n", zPath); |
| 217 | } |
| 218 | blob_reset(&pathname); |
| 219 | } |
| 220 | blob_resize(&path, origSize); |
| 221 | } |
| 222 | } |
| 223 | closedir(d); |
| 224 | blob_reset(&path); |
| 225 | } |
| 226 | |
| 227 | /* |
| 228 | ** COMMAND: rm |
| 229 | ** COMMAND: del |
| 230 | ** |
| @@ -200,28 +247,28 @@ | |
| 247 | fossil_panic("no checkout to remove from"); |
| 248 | } |
| 249 | db_begin_transaction(); |
| 250 | for(i=2; i<g.argc; i++){ |
| 251 | char *zName; |
| 252 | |
| 253 | zName = mprintf("%/", g.argv[i]); |
| 254 | if( file_isdir(zName) == 1 ){ |
| 255 | del_directory_content(zName); |
| 256 | } else { |
| 257 | char *zPath; |
| 258 | Blob pathname; |
| 259 | file_tree_name(zName, &pathname, 1); |
| 260 | zPath = blob_str(&pathname); |
| 261 | if( !db_exists( |
| 262 | "SELECT 1 FROM vfile WHERE pathname=%Q AND NOT deleted", zPath) ){ |
| 263 | fossil_fatal("not in the repository: %s", zName); |
| 264 | }else{ |
| 265 | db_multi_exec("UPDATE vfile SET deleted=1 WHERE pathname=%Q", zPath); |
| 266 | printf("DELETED %s\n", zPath); |
| 267 | } |
| 268 | blob_reset(&pathname); |
| 269 | } |
| 270 | free(zName); |
| 271 | } |
| 272 | db_multi_exec("DELETE FROM vfile WHERE deleted AND rid=0"); |
| 273 | db_end_transaction(0); |
| 274 | } |
| 275 |
+63
-16
| --- src/add.c | ||
| +++ src/add.c | ||
| @@ -174,10 +174,57 @@ | ||
| 174 | 174 | } |
| 175 | 175 | free(zName); |
| 176 | 176 | } |
| 177 | 177 | db_end_transaction(0); |
| 178 | 178 | } |
| 179 | + | |
| 180 | +/* | |
| 181 | +** Remove all contents of zDir | |
| 182 | +*/ | |
| 183 | +void del_directory_content(const char *zDir){ | |
| 184 | + DIR *d; | |
| 185 | + int origSize; | |
| 186 | + struct dirent *pEntry; | |
| 187 | + Blob path; | |
| 188 | + | |
| 189 | + blob_zero(&path); | |
| 190 | + blob_append(&path, zDir, -1); | |
| 191 | + origSize = blob_size(&path); | |
| 192 | + d = opendir(zDir); | |
| 193 | + if( d ){ | |
| 194 | + while( (pEntry=readdir(d))!=0 ){ | |
| 195 | + char *zPath; | |
| 196 | + if( pEntry->d_name[0]=='.'){ | |
| 197 | + if( !includeDotFiles ) continue; | |
| 198 | + if( pEntry->d_name[1]==0 ) continue; | |
| 199 | + if( pEntry->d_name[1]=='.' && pEntry->d_name[2]==0 ) continue; | |
| 200 | + } | |
| 201 | + blob_appendf(&path, "/%s", pEntry->d_name); | |
| 202 | + zPath = blob_str(&path); | |
| 203 | + if( file_isdir(zPath)==1 ){ | |
| 204 | + del_directory_content(zPath); | |
| 205 | + }else if( file_isfile(zPath) ){ | |
| 206 | + char *zFilePath; | |
| 207 | + Blob pathname; | |
| 208 | + file_tree_name(zPath, &pathname, 1); | |
| 209 | + zFilePath = blob_str(&pathname); | |
| 210 | + if( !db_exists( | |
| 211 | + "SELECT 1 FROM vfile WHERE pathname=%Q AND NOT deleted", zFilePath) | |
| 212 | + ){ | |
| 213 | + printf("SKIPPED %s\n", zPath); | |
| 214 | + }else{ | |
| 215 | + db_multi_exec("UPDATE vfile SET deleted=1 WHERE pathname=%Q", zPath); | |
| 216 | + printf("DELETED %s\n", zPath); | |
| 217 | + } | |
| 218 | + blob_reset(&pathname); | |
| 219 | + } | |
| 220 | + blob_resize(&path, origSize); | |
| 221 | + } | |
| 222 | + } | |
| 223 | + closedir(d); | |
| 224 | + blob_reset(&path); | |
| 225 | +} | |
| 179 | 226 | |
| 180 | 227 | /* |
| 181 | 228 | ** COMMAND: rm |
| 182 | 229 | ** COMMAND: del |
| 183 | 230 | ** |
| @@ -200,28 +247,28 @@ | ||
| 200 | 247 | fossil_panic("no checkout to remove from"); |
| 201 | 248 | } |
| 202 | 249 | db_begin_transaction(); |
| 203 | 250 | for(i=2; i<g.argc; i++){ |
| 204 | 251 | char *zName; |
| 205 | - char *zPath; | |
| 206 | - Blob pathname; | |
| 207 | 252 | |
| 208 | 253 | zName = mprintf("%/", g.argv[i]); |
| 209 | - if( file_isdir(zName) ){ | |
| 210 | - fossil_fatal("cannot remove directories -" | |
| 211 | - " remove individual files instead"); | |
| 212 | - } | |
| 213 | - file_tree_name(zName, &pathname, 1); | |
| 214 | - zPath = blob_str(&pathname); | |
| 215 | - if( !db_exists( | |
| 216 | - "SELECT 1 FROM vfile WHERE pathname=%Q AND NOT deleted", zPath) ){ | |
| 217 | - fossil_fatal("not in the repository: %s", zName); | |
| 218 | - }else{ | |
| 219 | - db_multi_exec("UPDATE vfile SET deleted=1 WHERE pathname=%Q", zPath); | |
| 220 | - printf("DELETED %s\n", zPath); | |
| 221 | - } | |
| 222 | - blob_reset(&pathname); | |
| 254 | + if( file_isdir(zName) == 1 ){ | |
| 255 | + del_directory_content(zName); | |
| 256 | + } else { | |
| 257 | + char *zPath; | |
| 258 | + Blob pathname; | |
| 259 | + file_tree_name(zName, &pathname, 1); | |
| 260 | + zPath = blob_str(&pathname); | |
| 261 | + if( !db_exists( | |
| 262 | + "SELECT 1 FROM vfile WHERE pathname=%Q AND NOT deleted", zPath) ){ | |
| 263 | + fossil_fatal("not in the repository: %s", zName); | |
| 264 | + }else{ | |
| 265 | + db_multi_exec("UPDATE vfile SET deleted=1 WHERE pathname=%Q", zPath); | |
| 266 | + printf("DELETED %s\n", zPath); | |
| 267 | + } | |
| 268 | + blob_reset(&pathname); | |
| 269 | + } | |
| 223 | 270 | free(zName); |
| 224 | 271 | } |
| 225 | 272 | db_multi_exec("DELETE FROM vfile WHERE deleted AND rid=0"); |
| 226 | 273 | db_end_transaction(0); |
| 227 | 274 | } |
| 228 | 275 |
| --- src/add.c | |
| +++ src/add.c | |
| @@ -174,10 +174,57 @@ | |
| 174 | } |
| 175 | free(zName); |
| 176 | } |
| 177 | db_end_transaction(0); |
| 178 | } |
| 179 | |
| 180 | /* |
| 181 | ** COMMAND: rm |
| 182 | ** COMMAND: del |
| 183 | ** |
| @@ -200,28 +247,28 @@ | |
| 200 | fossil_panic("no checkout to remove from"); |
| 201 | } |
| 202 | db_begin_transaction(); |
| 203 | for(i=2; i<g.argc; i++){ |
| 204 | char *zName; |
| 205 | char *zPath; |
| 206 | Blob pathname; |
| 207 | |
| 208 | zName = mprintf("%/", g.argv[i]); |
| 209 | if( file_isdir(zName) ){ |
| 210 | fossil_fatal("cannot remove directories -" |
| 211 | " remove individual files instead"); |
| 212 | } |
| 213 | file_tree_name(zName, &pathname, 1); |
| 214 | zPath = blob_str(&pathname); |
| 215 | if( !db_exists( |
| 216 | "SELECT 1 FROM vfile WHERE pathname=%Q AND NOT deleted", zPath) ){ |
| 217 | fossil_fatal("not in the repository: %s", zName); |
| 218 | }else{ |
| 219 | db_multi_exec("UPDATE vfile SET deleted=1 WHERE pathname=%Q", zPath); |
| 220 | printf("DELETED %s\n", zPath); |
| 221 | } |
| 222 | blob_reset(&pathname); |
| 223 | free(zName); |
| 224 | } |
| 225 | db_multi_exec("DELETE FROM vfile WHERE deleted AND rid=0"); |
| 226 | db_end_transaction(0); |
| 227 | } |
| 228 |
| --- src/add.c | |
| +++ src/add.c | |
| @@ -174,10 +174,57 @@ | |
| 174 | } |
| 175 | free(zName); |
| 176 | } |
| 177 | db_end_transaction(0); |
| 178 | } |
| 179 | |
| 180 | /* |
| 181 | ** Remove all contents of zDir |
| 182 | */ |
| 183 | void del_directory_content(const char *zDir){ |
| 184 | DIR *d; |
| 185 | int origSize; |
| 186 | struct dirent *pEntry; |
| 187 | Blob path; |
| 188 | |
| 189 | blob_zero(&path); |
| 190 | blob_append(&path, zDir, -1); |
| 191 | origSize = blob_size(&path); |
| 192 | d = opendir(zDir); |
| 193 | if( d ){ |
| 194 | while( (pEntry=readdir(d))!=0 ){ |
| 195 | char *zPath; |
| 196 | if( pEntry->d_name[0]=='.'){ |
| 197 | if( !includeDotFiles ) continue; |
| 198 | if( pEntry->d_name[1]==0 ) continue; |
| 199 | if( pEntry->d_name[1]=='.' && pEntry->d_name[2]==0 ) continue; |
| 200 | } |
| 201 | blob_appendf(&path, "/%s", pEntry->d_name); |
| 202 | zPath = blob_str(&path); |
| 203 | if( file_isdir(zPath)==1 ){ |
| 204 | del_directory_content(zPath); |
| 205 | }else if( file_isfile(zPath) ){ |
| 206 | char *zFilePath; |
| 207 | Blob pathname; |
| 208 | file_tree_name(zPath, &pathname, 1); |
| 209 | zFilePath = blob_str(&pathname); |
| 210 | if( !db_exists( |
| 211 | "SELECT 1 FROM vfile WHERE pathname=%Q AND NOT deleted", zFilePath) |
| 212 | ){ |
| 213 | printf("SKIPPED %s\n", zPath); |
| 214 | }else{ |
| 215 | db_multi_exec("UPDATE vfile SET deleted=1 WHERE pathname=%Q", zPath); |
| 216 | printf("DELETED %s\n", zPath); |
| 217 | } |
| 218 | blob_reset(&pathname); |
| 219 | } |
| 220 | blob_resize(&path, origSize); |
| 221 | } |
| 222 | } |
| 223 | closedir(d); |
| 224 | blob_reset(&path); |
| 225 | } |
| 226 | |
| 227 | /* |
| 228 | ** COMMAND: rm |
| 229 | ** COMMAND: del |
| 230 | ** |
| @@ -200,28 +247,28 @@ | |
| 247 | fossil_panic("no checkout to remove from"); |
| 248 | } |
| 249 | db_begin_transaction(); |
| 250 | for(i=2; i<g.argc; i++){ |
| 251 | char *zName; |
| 252 | |
| 253 | zName = mprintf("%/", g.argv[i]); |
| 254 | if( file_isdir(zName) == 1 ){ |
| 255 | del_directory_content(zName); |
| 256 | } else { |
| 257 | char *zPath; |
| 258 | Blob pathname; |
| 259 | file_tree_name(zName, &pathname, 1); |
| 260 | zPath = blob_str(&pathname); |
| 261 | if( !db_exists( |
| 262 | "SELECT 1 FROM vfile WHERE pathname=%Q AND NOT deleted", zPath) ){ |
| 263 | fossil_fatal("not in the repository: %s", zName); |
| 264 | }else{ |
| 265 | db_multi_exec("UPDATE vfile SET deleted=1 WHERE pathname=%Q", zPath); |
| 266 | printf("DELETED %s\n", zPath); |
| 267 | } |
| 268 | blob_reset(&pathname); |
| 269 | } |
| 270 | free(zName); |
| 271 | } |
| 272 | db_multi_exec("DELETE FROM vfile WHERE deleted AND rid=0"); |
| 273 | db_end_transaction(0); |
| 274 | } |
| 275 |
+26
-1
| --- src/checkin.c | ||
| +++ src/checkin.c | ||
| @@ -432,10 +432,32 @@ | ||
| 432 | 432 | @ WHERE tagid=%d AND rid=plink.cid), 'trunk') |
| 433 | 433 | ; |
| 434 | 434 | rc = db_int(0, zSql, rid, TAG_BRANCH, TAG_BRANCH); |
| 435 | 435 | return rc==0; |
| 436 | 436 | } |
| 437 | + | |
| 438 | +/* | |
| 439 | +** Make sure the current check-in with timestamp zDate is younger than its | |
| 440 | +** ancestor identified rid and zUuid. Throw a fatal error if not. | |
| 441 | +*/ | |
| 442 | +static void checkin_verify_younger( | |
| 443 | + int rid, /* The record ID of the ancestor */ | |
| 444 | + const char *zUuid, /* The artifact ID of the ancestor */ | |
| 445 | + const char *zDate /* Date & time of the current check-in */ | |
| 446 | +){ | |
| 447 | + int b; | |
| 448 | + b = db_exists( | |
| 449 | + "SELECT 1 FROM event" | |
| 450 | + " WHERE datetime(mtime)>=%Q" | |
| 451 | + " AND type='ci' AND objid=%d", | |
| 452 | + zDate, rid | |
| 453 | + ); | |
| 454 | + if( b ){ | |
| 455 | + fossil_fatal("ancestor check-in [%.10s] (%s) is younger (clock skew?)", | |
| 456 | + zUuid, zDate); | |
| 457 | + } | |
| 458 | +} | |
| 437 | 459 | |
| 438 | 460 | /* |
| 439 | 461 | ** COMMAND: ci |
| 440 | 462 | ** COMMAND: commit |
| 441 | 463 | ** |
| @@ -513,11 +535,11 @@ | ||
| 513 | 535 | } |
| 514 | 536 | zDateOvrd = find_option("date-override",0,1); |
| 515 | 537 | zUserOvrd = find_option("user-override",0,1); |
| 516 | 538 | db_must_be_within_tree(); |
| 517 | 539 | noSign = db_get_boolean("omitsign", 0)|noSign; |
| 518 | - if( db_get_boolean("clearsign", 1)==0 ){ noSign = 1; } | |
| 540 | + if( db_get_boolean("clearsign", 0)==0 ){ noSign = 1; } | |
| 519 | 541 | verify_all_options(); |
| 520 | 542 | |
| 521 | 543 | /* Get the ID of the parent manifest artifact */ |
| 522 | 544 | vid = db_lget_int("checkout", 0); |
| 523 | 545 | if( content_is_private(vid) ){ |
| @@ -657,10 +679,11 @@ | ||
| 657 | 679 | } |
| 658 | 680 | blob_appendf(&manifest, "C %F\n", blob_str(&comment)); |
| 659 | 681 | zDate = db_text(0, "SELECT datetime('%q')", zDateOvrd ? zDateOvrd : "now"); |
| 660 | 682 | zDate[10] = 'T'; |
| 661 | 683 | blob_appendf(&manifest, "D %s\n", zDate); |
| 684 | + zDate[10] = ' '; | |
| 662 | 685 | db_prepare(&q, |
| 663 | 686 | "SELECT pathname, uuid, origname, blob.rid" |
| 664 | 687 | " FROM vfile JOIN blob ON vfile.mrid=blob.rid" |
| 665 | 688 | " WHERE NOT deleted AND vfile.vid=%d" |
| 666 | 689 | " ORDER BY 1", vid); |
| @@ -690,19 +713,21 @@ | ||
| 690 | 713 | } |
| 691 | 714 | blob_reset(&filename); |
| 692 | 715 | db_finalize(&q); |
| 693 | 716 | zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", vid); |
| 694 | 717 | blob_appendf(&manifest, "P %s", zUuid); |
| 718 | + checkin_verify_younger(vid, zUuid, zDate); | |
| 695 | 719 | |
| 696 | 720 | db_prepare(&q2, "SELECT merge FROM vmerge WHERE id=:id"); |
| 697 | 721 | db_bind_int(&q2, ":id", 0); |
| 698 | 722 | while( db_step(&q2)==SQLITE_ROW ){ |
| 699 | 723 | int mid = db_column_int(&q2, 0); |
| 700 | 724 | if( !g.markPrivate && content_is_private(mid) ) continue; |
| 701 | 725 | zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", mid); |
| 702 | 726 | if( zUuid ){ |
| 703 | 727 | blob_appendf(&manifest, " %s", zUuid); |
| 728 | + checkin_verify_younger(mid, zUuid, zDate); | |
| 704 | 729 | free(zUuid); |
| 705 | 730 | } |
| 706 | 731 | } |
| 707 | 732 | db_reset(&q2); |
| 708 | 733 | |
| 709 | 734 |
| --- src/checkin.c | |
| +++ src/checkin.c | |
| @@ -432,10 +432,32 @@ | |
| 432 | @ WHERE tagid=%d AND rid=plink.cid), 'trunk') |
| 433 | ; |
| 434 | rc = db_int(0, zSql, rid, TAG_BRANCH, TAG_BRANCH); |
| 435 | return rc==0; |
| 436 | } |
| 437 | |
| 438 | /* |
| 439 | ** COMMAND: ci |
| 440 | ** COMMAND: commit |
| 441 | ** |
| @@ -513,11 +535,11 @@ | |
| 513 | } |
| 514 | zDateOvrd = find_option("date-override",0,1); |
| 515 | zUserOvrd = find_option("user-override",0,1); |
| 516 | db_must_be_within_tree(); |
| 517 | noSign = db_get_boolean("omitsign", 0)|noSign; |
| 518 | if( db_get_boolean("clearsign", 1)==0 ){ noSign = 1; } |
| 519 | verify_all_options(); |
| 520 | |
| 521 | /* Get the ID of the parent manifest artifact */ |
| 522 | vid = db_lget_int("checkout", 0); |
| 523 | if( content_is_private(vid) ){ |
| @@ -657,10 +679,11 @@ | |
| 657 | } |
| 658 | blob_appendf(&manifest, "C %F\n", blob_str(&comment)); |
| 659 | zDate = db_text(0, "SELECT datetime('%q')", zDateOvrd ? zDateOvrd : "now"); |
| 660 | zDate[10] = 'T'; |
| 661 | blob_appendf(&manifest, "D %s\n", zDate); |
| 662 | db_prepare(&q, |
| 663 | "SELECT pathname, uuid, origname, blob.rid" |
| 664 | " FROM vfile JOIN blob ON vfile.mrid=blob.rid" |
| 665 | " WHERE NOT deleted AND vfile.vid=%d" |
| 666 | " ORDER BY 1", vid); |
| @@ -690,19 +713,21 @@ | |
| 690 | } |
| 691 | blob_reset(&filename); |
| 692 | db_finalize(&q); |
| 693 | zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", vid); |
| 694 | blob_appendf(&manifest, "P %s", zUuid); |
| 695 | |
| 696 | db_prepare(&q2, "SELECT merge FROM vmerge WHERE id=:id"); |
| 697 | db_bind_int(&q2, ":id", 0); |
| 698 | while( db_step(&q2)==SQLITE_ROW ){ |
| 699 | int mid = db_column_int(&q2, 0); |
| 700 | if( !g.markPrivate && content_is_private(mid) ) continue; |
| 701 | zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", mid); |
| 702 | if( zUuid ){ |
| 703 | blob_appendf(&manifest, " %s", zUuid); |
| 704 | free(zUuid); |
| 705 | } |
| 706 | } |
| 707 | db_reset(&q2); |
| 708 | |
| 709 |
| --- src/checkin.c | |
| +++ src/checkin.c | |
| @@ -432,10 +432,32 @@ | |
| 432 | @ WHERE tagid=%d AND rid=plink.cid), 'trunk') |
| 433 | ; |
| 434 | rc = db_int(0, zSql, rid, TAG_BRANCH, TAG_BRANCH); |
| 435 | return rc==0; |
| 436 | } |
| 437 | |
| 438 | /* |
| 439 | ** Make sure the current check-in with timestamp zDate is younger than its |
| 440 | ** ancestor identified rid and zUuid. Throw a fatal error if not. |
| 441 | */ |
| 442 | static void checkin_verify_younger( |
| 443 | int rid, /* The record ID of the ancestor */ |
| 444 | const char *zUuid, /* The artifact ID of the ancestor */ |
| 445 | const char *zDate /* Date & time of the current check-in */ |
| 446 | ){ |
| 447 | int b; |
| 448 | b = db_exists( |
| 449 | "SELECT 1 FROM event" |
| 450 | " WHERE datetime(mtime)>=%Q" |
| 451 | " AND type='ci' AND objid=%d", |
| 452 | zDate, rid |
| 453 | ); |
| 454 | if( b ){ |
| 455 | fossil_fatal("ancestor check-in [%.10s] (%s) is younger (clock skew?)", |
| 456 | zUuid, zDate); |
| 457 | } |
| 458 | } |
| 459 | |
| 460 | /* |
| 461 | ** COMMAND: ci |
| 462 | ** COMMAND: commit |
| 463 | ** |
| @@ -513,11 +535,11 @@ | |
| 535 | } |
| 536 | zDateOvrd = find_option("date-override",0,1); |
| 537 | zUserOvrd = find_option("user-override",0,1); |
| 538 | db_must_be_within_tree(); |
| 539 | noSign = db_get_boolean("omitsign", 0)|noSign; |
| 540 | if( db_get_boolean("clearsign", 0)==0 ){ noSign = 1; } |
| 541 | verify_all_options(); |
| 542 | |
| 543 | /* Get the ID of the parent manifest artifact */ |
| 544 | vid = db_lget_int("checkout", 0); |
| 545 | if( content_is_private(vid) ){ |
| @@ -657,10 +679,11 @@ | |
| 679 | } |
| 680 | blob_appendf(&manifest, "C %F\n", blob_str(&comment)); |
| 681 | zDate = db_text(0, "SELECT datetime('%q')", zDateOvrd ? zDateOvrd : "now"); |
| 682 | zDate[10] = 'T'; |
| 683 | blob_appendf(&manifest, "D %s\n", zDate); |
| 684 | zDate[10] = ' '; |
| 685 | db_prepare(&q, |
| 686 | "SELECT pathname, uuid, origname, blob.rid" |
| 687 | " FROM vfile JOIN blob ON vfile.mrid=blob.rid" |
| 688 | " WHERE NOT deleted AND vfile.vid=%d" |
| 689 | " ORDER BY 1", vid); |
| @@ -690,19 +713,21 @@ | |
| 713 | } |
| 714 | blob_reset(&filename); |
| 715 | db_finalize(&q); |
| 716 | zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", vid); |
| 717 | blob_appendf(&manifest, "P %s", zUuid); |
| 718 | checkin_verify_younger(vid, zUuid, zDate); |
| 719 | |
| 720 | db_prepare(&q2, "SELECT merge FROM vmerge WHERE id=:id"); |
| 721 | db_bind_int(&q2, ":id", 0); |
| 722 | while( db_step(&q2)==SQLITE_ROW ){ |
| 723 | int mid = db_column_int(&q2, 0); |
| 724 | if( !g.markPrivate && content_is_private(mid) ) continue; |
| 725 | zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", mid); |
| 726 | if( zUuid ){ |
| 727 | blob_appendf(&manifest, " %s", zUuid); |
| 728 | checkin_verify_younger(mid, zUuid, zDate); |
| 729 | free(zUuid); |
| 730 | } |
| 731 | } |
| 732 | db_reset(&q2); |
| 733 | |
| 734 |
+26
-1
| --- src/checkin.c | ||
| +++ src/checkin.c | ||
| @@ -432,10 +432,32 @@ | ||
| 432 | 432 | @ WHERE tagid=%d AND rid=plink.cid), 'trunk') |
| 433 | 433 | ; |
| 434 | 434 | rc = db_int(0, zSql, rid, TAG_BRANCH, TAG_BRANCH); |
| 435 | 435 | return rc==0; |
| 436 | 436 | } |
| 437 | + | |
| 438 | +/* | |
| 439 | +** Make sure the current check-in with timestamp zDate is younger than its | |
| 440 | +** ancestor identified rid and zUuid. Throw a fatal error if not. | |
| 441 | +*/ | |
| 442 | +static void checkin_verify_younger( | |
| 443 | + int rid, /* The record ID of the ancestor */ | |
| 444 | + const char *zUuid, /* The artifact ID of the ancestor */ | |
| 445 | + const char *zDate /* Date & time of the current check-in */ | |
| 446 | +){ | |
| 447 | + int b; | |
| 448 | + b = db_exists( | |
| 449 | + "SELECT 1 FROM event" | |
| 450 | + " WHERE datetime(mtime)>=%Q" | |
| 451 | + " AND type='ci' AND objid=%d", | |
| 452 | + zDate, rid | |
| 453 | + ); | |
| 454 | + if( b ){ | |
| 455 | + fossil_fatal("ancestor check-in [%.10s] (%s) is younger (clock skew?)", | |
| 456 | + zUuid, zDate); | |
| 457 | + } | |
| 458 | +} | |
| 437 | 459 | |
| 438 | 460 | /* |
| 439 | 461 | ** COMMAND: ci |
| 440 | 462 | ** COMMAND: commit |
| 441 | 463 | ** |
| @@ -513,11 +535,11 @@ | ||
| 513 | 535 | } |
| 514 | 536 | zDateOvrd = find_option("date-override",0,1); |
| 515 | 537 | zUserOvrd = find_option("user-override",0,1); |
| 516 | 538 | db_must_be_within_tree(); |
| 517 | 539 | noSign = db_get_boolean("omitsign", 0)|noSign; |
| 518 | - if( db_get_boolean("clearsign", 1)==0 ){ noSign = 1; } | |
| 540 | + if( db_get_boolean("clearsign", 0)==0 ){ noSign = 1; } | |
| 519 | 541 | verify_all_options(); |
| 520 | 542 | |
| 521 | 543 | /* Get the ID of the parent manifest artifact */ |
| 522 | 544 | vid = db_lget_int("checkout", 0); |
| 523 | 545 | if( content_is_private(vid) ){ |
| @@ -657,10 +679,11 @@ | ||
| 657 | 679 | } |
| 658 | 680 | blob_appendf(&manifest, "C %F\n", blob_str(&comment)); |
| 659 | 681 | zDate = db_text(0, "SELECT datetime('%q')", zDateOvrd ? zDateOvrd : "now"); |
| 660 | 682 | zDate[10] = 'T'; |
| 661 | 683 | blob_appendf(&manifest, "D %s\n", zDate); |
| 684 | + zDate[10] = ' '; | |
| 662 | 685 | db_prepare(&q, |
| 663 | 686 | "SELECT pathname, uuid, origname, blob.rid" |
| 664 | 687 | " FROM vfile JOIN blob ON vfile.mrid=blob.rid" |
| 665 | 688 | " WHERE NOT deleted AND vfile.vid=%d" |
| 666 | 689 | " ORDER BY 1", vid); |
| @@ -690,19 +713,21 @@ | ||
| 690 | 713 | } |
| 691 | 714 | blob_reset(&filename); |
| 692 | 715 | db_finalize(&q); |
| 693 | 716 | zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", vid); |
| 694 | 717 | blob_appendf(&manifest, "P %s", zUuid); |
| 718 | + checkin_verify_younger(vid, zUuid, zDate); | |
| 695 | 719 | |
| 696 | 720 | db_prepare(&q2, "SELECT merge FROM vmerge WHERE id=:id"); |
| 697 | 721 | db_bind_int(&q2, ":id", 0); |
| 698 | 722 | while( db_step(&q2)==SQLITE_ROW ){ |
| 699 | 723 | int mid = db_column_int(&q2, 0); |
| 700 | 724 | if( !g.markPrivate && content_is_private(mid) ) continue; |
| 701 | 725 | zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", mid); |
| 702 | 726 | if( zUuid ){ |
| 703 | 727 | blob_appendf(&manifest, " %s", zUuid); |
| 728 | + checkin_verify_younger(mid, zUuid, zDate); | |
| 704 | 729 | free(zUuid); |
| 705 | 730 | } |
| 706 | 731 | } |
| 707 | 732 | db_reset(&q2); |
| 708 | 733 | |
| 709 | 734 |
| --- src/checkin.c | |
| +++ src/checkin.c | |
| @@ -432,10 +432,32 @@ | |
| 432 | @ WHERE tagid=%d AND rid=plink.cid), 'trunk') |
| 433 | ; |
| 434 | rc = db_int(0, zSql, rid, TAG_BRANCH, TAG_BRANCH); |
| 435 | return rc==0; |
| 436 | } |
| 437 | |
| 438 | /* |
| 439 | ** COMMAND: ci |
| 440 | ** COMMAND: commit |
| 441 | ** |
| @@ -513,11 +535,11 @@ | |
| 513 | } |
| 514 | zDateOvrd = find_option("date-override",0,1); |
| 515 | zUserOvrd = find_option("user-override",0,1); |
| 516 | db_must_be_within_tree(); |
| 517 | noSign = db_get_boolean("omitsign", 0)|noSign; |
| 518 | if( db_get_boolean("clearsign", 1)==0 ){ noSign = 1; } |
| 519 | verify_all_options(); |
| 520 | |
| 521 | /* Get the ID of the parent manifest artifact */ |
| 522 | vid = db_lget_int("checkout", 0); |
| 523 | if( content_is_private(vid) ){ |
| @@ -657,10 +679,11 @@ | |
| 657 | } |
| 658 | blob_appendf(&manifest, "C %F\n", blob_str(&comment)); |
| 659 | zDate = db_text(0, "SELECT datetime('%q')", zDateOvrd ? zDateOvrd : "now"); |
| 660 | zDate[10] = 'T'; |
| 661 | blob_appendf(&manifest, "D %s\n", zDate); |
| 662 | db_prepare(&q, |
| 663 | "SELECT pathname, uuid, origname, blob.rid" |
| 664 | " FROM vfile JOIN blob ON vfile.mrid=blob.rid" |
| 665 | " WHERE NOT deleted AND vfile.vid=%d" |
| 666 | " ORDER BY 1", vid); |
| @@ -690,19 +713,21 @@ | |
| 690 | } |
| 691 | blob_reset(&filename); |
| 692 | db_finalize(&q); |
| 693 | zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", vid); |
| 694 | blob_appendf(&manifest, "P %s", zUuid); |
| 695 | |
| 696 | db_prepare(&q2, "SELECT merge FROM vmerge WHERE id=:id"); |
| 697 | db_bind_int(&q2, ":id", 0); |
| 698 | while( db_step(&q2)==SQLITE_ROW ){ |
| 699 | int mid = db_column_int(&q2, 0); |
| 700 | if( !g.markPrivate && content_is_private(mid) ) continue; |
| 701 | zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", mid); |
| 702 | if( zUuid ){ |
| 703 | blob_appendf(&manifest, " %s", zUuid); |
| 704 | free(zUuid); |
| 705 | } |
| 706 | } |
| 707 | db_reset(&q2); |
| 708 | |
| 709 |
| --- src/checkin.c | |
| +++ src/checkin.c | |
| @@ -432,10 +432,32 @@ | |
| 432 | @ WHERE tagid=%d AND rid=plink.cid), 'trunk') |
| 433 | ; |
| 434 | rc = db_int(0, zSql, rid, TAG_BRANCH, TAG_BRANCH); |
| 435 | return rc==0; |
| 436 | } |
| 437 | |
| 438 | /* |
| 439 | ** Make sure the current check-in with timestamp zDate is younger than its |
| 440 | ** ancestor identified rid and zUuid. Throw a fatal error if not. |
| 441 | */ |
| 442 | static void checkin_verify_younger( |
| 443 | int rid, /* The record ID of the ancestor */ |
| 444 | const char *zUuid, /* The artifact ID of the ancestor */ |
| 445 | const char *zDate /* Date & time of the current check-in */ |
| 446 | ){ |
| 447 | int b; |
| 448 | b = db_exists( |
| 449 | "SELECT 1 FROM event" |
| 450 | " WHERE datetime(mtime)>=%Q" |
| 451 | " AND type='ci' AND objid=%d", |
| 452 | zDate, rid |
| 453 | ); |
| 454 | if( b ){ |
| 455 | fossil_fatal("ancestor check-in [%.10s] (%s) is younger (clock skew?)", |
| 456 | zUuid, zDate); |
| 457 | } |
| 458 | } |
| 459 | |
| 460 | /* |
| 461 | ** COMMAND: ci |
| 462 | ** COMMAND: commit |
| 463 | ** |
| @@ -513,11 +535,11 @@ | |
| 535 | } |
| 536 | zDateOvrd = find_option("date-override",0,1); |
| 537 | zUserOvrd = find_option("user-override",0,1); |
| 538 | db_must_be_within_tree(); |
| 539 | noSign = db_get_boolean("omitsign", 0)|noSign; |
| 540 | if( db_get_boolean("clearsign", 0)==0 ){ noSign = 1; } |
| 541 | verify_all_options(); |
| 542 | |
| 543 | /* Get the ID of the parent manifest artifact */ |
| 544 | vid = db_lget_int("checkout", 0); |
| 545 | if( content_is_private(vid) ){ |
| @@ -657,10 +679,11 @@ | |
| 679 | } |
| 680 | blob_appendf(&manifest, "C %F\n", blob_str(&comment)); |
| 681 | zDate = db_text(0, "SELECT datetime('%q')", zDateOvrd ? zDateOvrd : "now"); |
| 682 | zDate[10] = 'T'; |
| 683 | blob_appendf(&manifest, "D %s\n", zDate); |
| 684 | zDate[10] = ' '; |
| 685 | db_prepare(&q, |
| 686 | "SELECT pathname, uuid, origname, blob.rid" |
| 687 | " FROM vfile JOIN blob ON vfile.mrid=blob.rid" |
| 688 | " WHERE NOT deleted AND vfile.vid=%d" |
| 689 | " ORDER BY 1", vid); |
| @@ -690,19 +713,21 @@ | |
| 713 | } |
| 714 | blob_reset(&filename); |
| 715 | db_finalize(&q); |
| 716 | zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", vid); |
| 717 | blob_appendf(&manifest, "P %s", zUuid); |
| 718 | checkin_verify_younger(vid, zUuid, zDate); |
| 719 | |
| 720 | db_prepare(&q2, "SELECT merge FROM vmerge WHERE id=:id"); |
| 721 | db_bind_int(&q2, ":id", 0); |
| 722 | while( db_step(&q2)==SQLITE_ROW ){ |
| 723 | int mid = db_column_int(&q2, 0); |
| 724 | if( !g.markPrivate && content_is_private(mid) ) continue; |
| 725 | zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", mid); |
| 726 | if( zUuid ){ |
| 727 | blob_appendf(&manifest, " %s", zUuid); |
| 728 | checkin_verify_younger(mid, zUuid, zDate); |
| 729 | free(zUuid); |
| 730 | } |
| 731 | } |
| 732 | db_reset(&q2); |
| 733 | |
| 734 |
+5
| --- src/checkout.c | ||
| +++ src/checkout.c | ||
| @@ -180,10 +180,15 @@ | ||
| 180 | 180 | if( latestFlag ){ |
| 181 | 181 | compute_leaves(db_lget_int("checkout",0), 1); |
| 182 | 182 | zVers = db_text(0, "SELECT uuid FROM leaves, event, blob" |
| 183 | 183 | " WHERE event.objid=leaves.rid AND blob.rid=leaves.rid" |
| 184 | 184 | " ORDER BY event.mtime DESC"); |
| 185 | + if( zVers==0 ){ | |
| 186 | + zVers = db_text(0, "SELECT uuid FROM event, blob" | |
| 187 | + " WHERE event.objid=blob.rid AND event.type='ci'" | |
| 188 | + " ORDER BY event.mtime DESC"); | |
| 189 | + } | |
| 185 | 190 | if( zVers==0 ){ |
| 186 | 191 | fossil_fatal("cannot locate \"latest\" checkout"); |
| 187 | 192 | } |
| 188 | 193 | }else{ |
| 189 | 194 | zVers = g.argv[2]; |
| 190 | 195 |
| --- src/checkout.c | |
| +++ src/checkout.c | |
| @@ -180,10 +180,15 @@ | |
| 180 | if( latestFlag ){ |
| 181 | compute_leaves(db_lget_int("checkout",0), 1); |
| 182 | zVers = db_text(0, "SELECT uuid FROM leaves, event, blob" |
| 183 | " WHERE event.objid=leaves.rid AND blob.rid=leaves.rid" |
| 184 | " ORDER BY event.mtime DESC"); |
| 185 | if( zVers==0 ){ |
| 186 | fossil_fatal("cannot locate \"latest\" checkout"); |
| 187 | } |
| 188 | }else{ |
| 189 | zVers = g.argv[2]; |
| 190 |
| --- src/checkout.c | |
| +++ src/checkout.c | |
| @@ -180,10 +180,15 @@ | |
| 180 | if( latestFlag ){ |
| 181 | compute_leaves(db_lget_int("checkout",0), 1); |
| 182 | zVers = db_text(0, "SELECT uuid FROM leaves, event, blob" |
| 183 | " WHERE event.objid=leaves.rid AND blob.rid=leaves.rid" |
| 184 | " ORDER BY event.mtime DESC"); |
| 185 | if( zVers==0 ){ |
| 186 | zVers = db_text(0, "SELECT uuid FROM event, blob" |
| 187 | " WHERE event.objid=blob.rid AND event.type='ci'" |
| 188 | " ORDER BY event.mtime DESC"); |
| 189 | } |
| 190 | if( zVers==0 ){ |
| 191 | fossil_fatal("cannot locate \"latest\" checkout"); |
| 192 | } |
| 193 | }else{ |
| 194 | zVers = g.argv[2]; |
| 195 |
+5
| --- src/checkout.c | ||
| +++ src/checkout.c | ||
| @@ -180,10 +180,15 @@ | ||
| 180 | 180 | if( latestFlag ){ |
| 181 | 181 | compute_leaves(db_lget_int("checkout",0), 1); |
| 182 | 182 | zVers = db_text(0, "SELECT uuid FROM leaves, event, blob" |
| 183 | 183 | " WHERE event.objid=leaves.rid AND blob.rid=leaves.rid" |
| 184 | 184 | " ORDER BY event.mtime DESC"); |
| 185 | + if( zVers==0 ){ | |
| 186 | + zVers = db_text(0, "SELECT uuid FROM event, blob" | |
| 187 | + " WHERE event.objid=blob.rid AND event.type='ci'" | |
| 188 | + " ORDER BY event.mtime DESC"); | |
| 189 | + } | |
| 185 | 190 | if( zVers==0 ){ |
| 186 | 191 | fossil_fatal("cannot locate \"latest\" checkout"); |
| 187 | 192 | } |
| 188 | 193 | }else{ |
| 189 | 194 | zVers = g.argv[2]; |
| 190 | 195 |
| --- src/checkout.c | |
| +++ src/checkout.c | |
| @@ -180,10 +180,15 @@ | |
| 180 | if( latestFlag ){ |
| 181 | compute_leaves(db_lget_int("checkout",0), 1); |
| 182 | zVers = db_text(0, "SELECT uuid FROM leaves, event, blob" |
| 183 | " WHERE event.objid=leaves.rid AND blob.rid=leaves.rid" |
| 184 | " ORDER BY event.mtime DESC"); |
| 185 | if( zVers==0 ){ |
| 186 | fossil_fatal("cannot locate \"latest\" checkout"); |
| 187 | } |
| 188 | }else{ |
| 189 | zVers = g.argv[2]; |
| 190 |
| --- src/checkout.c | |
| +++ src/checkout.c | |
| @@ -180,10 +180,15 @@ | |
| 180 | if( latestFlag ){ |
| 181 | compute_leaves(db_lget_int("checkout",0), 1); |
| 182 | zVers = db_text(0, "SELECT uuid FROM leaves, event, blob" |
| 183 | " WHERE event.objid=leaves.rid AND blob.rid=leaves.rid" |
| 184 | " ORDER BY event.mtime DESC"); |
| 185 | if( zVers==0 ){ |
| 186 | zVers = db_text(0, "SELECT uuid FROM event, blob" |
| 187 | " WHERE event.objid=blob.rid AND event.type='ci'" |
| 188 | " ORDER BY event.mtime DESC"); |
| 189 | } |
| 190 | if( zVers==0 ){ |
| 191 | fossil_fatal("cannot locate \"latest\" checkout"); |
| 192 | } |
| 193 | }else{ |
| 194 | zVers = g.argv[2]; |
| 195 |
M
src/db.c
+2
-2
| --- src/db.c | ||
| +++ src/db.c | ||
| @@ -1406,12 +1406,12 @@ | ||
| 1406 | 1406 | ** autosync If enabled, automatically pull prior to commit |
| 1407 | 1407 | ** or update and automatically push after commit or |
| 1408 | 1408 | ** tag or branch creation. If the the value is "pullonly" |
| 1409 | 1409 | ** then only pull operations occur automatically. |
| 1410 | 1410 | ** |
| 1411 | -** clearsign When enabled (the default), fossil will attempt to | |
| 1412 | -** sign all commits with gpg. When disabled, commits will | |
| 1411 | +** clearsign When enabled, fossil will attempt to sign all commits | |
| 1412 | +** with gpg. When disabled (the default), commits will | |
| 1413 | 1413 | ** be unsigned. |
| 1414 | 1414 | ** |
| 1415 | 1415 | ** diff-command External command to run when performing a diff. |
| 1416 | 1416 | ** If undefined, the internal text diff will be used. |
| 1417 | 1417 | ** |
| 1418 | 1418 |
| --- src/db.c | |
| +++ src/db.c | |
| @@ -1406,12 +1406,12 @@ | |
| 1406 | ** autosync If enabled, automatically pull prior to commit |
| 1407 | ** or update and automatically push after commit or |
| 1408 | ** tag or branch creation. If the the value is "pullonly" |
| 1409 | ** then only pull operations occur automatically. |
| 1410 | ** |
| 1411 | ** clearsign When enabled (the default), fossil will attempt to |
| 1412 | ** sign all commits with gpg. When disabled, commits will |
| 1413 | ** be unsigned. |
| 1414 | ** |
| 1415 | ** diff-command External command to run when performing a diff. |
| 1416 | ** If undefined, the internal text diff will be used. |
| 1417 | ** |
| 1418 |
| --- src/db.c | |
| +++ src/db.c | |
| @@ -1406,12 +1406,12 @@ | |
| 1406 | ** autosync If enabled, automatically pull prior to commit |
| 1407 | ** or update and automatically push after commit or |
| 1408 | ** tag or branch creation. If the the value is "pullonly" |
| 1409 | ** then only pull operations occur automatically. |
| 1410 | ** |
| 1411 | ** clearsign When enabled, fossil will attempt to sign all commits |
| 1412 | ** with gpg. When disabled (the default), commits will |
| 1413 | ** be unsigned. |
| 1414 | ** |
| 1415 | ** diff-command External command to run when performing a diff. |
| 1416 | ** If undefined, the internal text diff will be used. |
| 1417 | ** |
| 1418 |
M
src/db.c
+2
-2
| --- src/db.c | ||
| +++ src/db.c | ||
| @@ -1406,12 +1406,12 @@ | ||
| 1406 | 1406 | ** autosync If enabled, automatically pull prior to commit |
| 1407 | 1407 | ** or update and automatically push after commit or |
| 1408 | 1408 | ** tag or branch creation. If the the value is "pullonly" |
| 1409 | 1409 | ** then only pull operations occur automatically. |
| 1410 | 1410 | ** |
| 1411 | -** clearsign When enabled (the default), fossil will attempt to | |
| 1412 | -** sign all commits with gpg. When disabled, commits will | |
| 1411 | +** clearsign When enabled, fossil will attempt to sign all commits | |
| 1412 | +** with gpg. When disabled (the default), commits will | |
| 1413 | 1413 | ** be unsigned. |
| 1414 | 1414 | ** |
| 1415 | 1415 | ** diff-command External command to run when performing a diff. |
| 1416 | 1416 | ** If undefined, the internal text diff will be used. |
| 1417 | 1417 | ** |
| 1418 | 1418 |
| --- src/db.c | |
| +++ src/db.c | |
| @@ -1406,12 +1406,12 @@ | |
| 1406 | ** autosync If enabled, automatically pull prior to commit |
| 1407 | ** or update and automatically push after commit or |
| 1408 | ** tag or branch creation. If the the value is "pullonly" |
| 1409 | ** then only pull operations occur automatically. |
| 1410 | ** |
| 1411 | ** clearsign When enabled (the default), fossil will attempt to |
| 1412 | ** sign all commits with gpg. When disabled, commits will |
| 1413 | ** be unsigned. |
| 1414 | ** |
| 1415 | ** diff-command External command to run when performing a diff. |
| 1416 | ** If undefined, the internal text diff will be used. |
| 1417 | ** |
| 1418 |
| --- src/db.c | |
| +++ src/db.c | |
| @@ -1406,12 +1406,12 @@ | |
| 1406 | ** autosync If enabled, automatically pull prior to commit |
| 1407 | ** or update and automatically push after commit or |
| 1408 | ** tag or branch creation. If the the value is "pullonly" |
| 1409 | ** then only pull operations occur automatically. |
| 1410 | ** |
| 1411 | ** clearsign When enabled, fossil will attempt to sign all commits |
| 1412 | ** with gpg. When disabled (the default), commits will |
| 1413 | ** be unsigned. |
| 1414 | ** |
| 1415 | ** diff-command External command to run when performing a diff. |
| 1416 | ** If undefined, the internal text diff will be used. |
| 1417 | ** |
| 1418 |
+2
-1
| --- src/encode.c | ||
| +++ src/encode.c | ||
| @@ -235,11 +235,12 @@ | ||
| 235 | 235 | int n, i, j, c; |
| 236 | 236 | char *zOut; |
| 237 | 237 | if( nIn<0 ) nIn = strlen(zIn); |
| 238 | 238 | for(i=n=0; i<nIn; i++){ |
| 239 | 239 | c = zIn[i]; |
| 240 | - if( c==0 || isspace(c) || c=='\\' ) n++; | |
| 240 | + if( c==0 || c==' ' || c=='\n' || c=='\t' || c=='\r' || c=='\f' || c=='\v' | |
| 241 | + || c=='\\' ) n++; | |
| 241 | 242 | } |
| 242 | 243 | n += nIn; |
| 243 | 244 | zOut = malloc( n+1 ); |
| 244 | 245 | if( zOut ){ |
| 245 | 246 | for(i=j=0; i<nIn; i++){ |
| 246 | 247 |
| --- src/encode.c | |
| +++ src/encode.c | |
| @@ -235,11 +235,12 @@ | |
| 235 | int n, i, j, c; |
| 236 | char *zOut; |
| 237 | if( nIn<0 ) nIn = strlen(zIn); |
| 238 | for(i=n=0; i<nIn; i++){ |
| 239 | c = zIn[i]; |
| 240 | if( c==0 || isspace(c) || c=='\\' ) n++; |
| 241 | } |
| 242 | n += nIn; |
| 243 | zOut = malloc( n+1 ); |
| 244 | if( zOut ){ |
| 245 | for(i=j=0; i<nIn; i++){ |
| 246 |
| --- src/encode.c | |
| +++ src/encode.c | |
| @@ -235,11 +235,12 @@ | |
| 235 | int n, i, j, c; |
| 236 | char *zOut; |
| 237 | if( nIn<0 ) nIn = strlen(zIn); |
| 238 | for(i=n=0; i<nIn; i++){ |
| 239 | c = zIn[i]; |
| 240 | if( c==0 || c==' ' || c=='\n' || c=='\t' || c=='\r' || c=='\f' || c=='\v' |
| 241 | || c=='\\' ) n++; |
| 242 | } |
| 243 | n += nIn; |
| 244 | zOut = malloc( n+1 ); |
| 245 | if( zOut ){ |
| 246 | for(i=j=0; i<nIn; i++){ |
| 247 |
+10
-4
| --- src/file.c | ||
| +++ src/file.c | ||
| @@ -41,17 +41,23 @@ | ||
| 41 | 41 | ** there is a previous value. |
| 42 | 42 | ** |
| 43 | 43 | ** Return the number of errors. No error messages are generated. |
| 44 | 44 | */ |
| 45 | 45 | static int getStat(const char *zFilename){ |
| 46 | + int rc = 0; | |
| 46 | 47 | if( zFilename==0 ){ |
| 47 | - if( fileStatValid==0 ) return 1; | |
| 48 | + if( fileStatValid==0 ) rc = 1; | |
| 48 | 49 | }else{ |
| 49 | - if( stat(zFilename, &fileStat)!=0 ) return 1; | |
| 50 | - fileStatValid = 1; | |
| 50 | + if( stat(zFilename, &fileStat)!=0 ){ | |
| 51 | + fileStatValid = 0; | |
| 52 | + rc = 1; | |
| 53 | + }else{ | |
| 54 | + fileStatValid = 1; | |
| 55 | + rc = 0; | |
| 56 | + } | |
| 51 | 57 | } |
| 52 | - return 0; | |
| 58 | + return rc; | |
| 53 | 59 | } |
| 54 | 60 | |
| 55 | 61 | |
| 56 | 62 | /* |
| 57 | 63 | ** Return the size of a file in bytes. Return -1 if the file does not |
| 58 | 64 |
| --- src/file.c | |
| +++ src/file.c | |
| @@ -41,17 +41,23 @@ | |
| 41 | ** there is a previous value. |
| 42 | ** |
| 43 | ** Return the number of errors. No error messages are generated. |
| 44 | */ |
| 45 | static int getStat(const char *zFilename){ |
| 46 | if( zFilename==0 ){ |
| 47 | if( fileStatValid==0 ) return 1; |
| 48 | }else{ |
| 49 | if( stat(zFilename, &fileStat)!=0 ) return 1; |
| 50 | fileStatValid = 1; |
| 51 | } |
| 52 | return 0; |
| 53 | } |
| 54 | |
| 55 | |
| 56 | /* |
| 57 | ** Return the size of a file in bytes. Return -1 if the file does not |
| 58 |
| --- src/file.c | |
| +++ src/file.c | |
| @@ -41,17 +41,23 @@ | |
| 41 | ** there is a previous value. |
| 42 | ** |
| 43 | ** Return the number of errors. No error messages are generated. |
| 44 | */ |
| 45 | static int getStat(const char *zFilename){ |
| 46 | int rc = 0; |
| 47 | if( zFilename==0 ){ |
| 48 | if( fileStatValid==0 ) rc = 1; |
| 49 | }else{ |
| 50 | if( stat(zFilename, &fileStat)!=0 ){ |
| 51 | fileStatValid = 0; |
| 52 | rc = 1; |
| 53 | }else{ |
| 54 | fileStatValid = 1; |
| 55 | rc = 0; |
| 56 | } |
| 57 | } |
| 58 | return rc; |
| 59 | } |
| 60 | |
| 61 | |
| 62 | /* |
| 63 | ** Return the size of a file in bytes. Return -1 if the file does not |
| 64 |
+50
-13
| --- src/graph.c | ||
| +++ src/graph.c | ||
| @@ -152,29 +152,45 @@ | ||
| 152 | 152 | |
| 153 | 153 | /* |
| 154 | 154 | ** Return the index of a rail currently not in use for any row between |
| 155 | 155 | ** top and bottom, inclusive. |
| 156 | 156 | */ |
| 157 | -static int findFreeRail(GraphContext *p, int top, int btm, u32 inUseMask){ | |
| 157 | +static int findFreeRail( | |
| 158 | + GraphContext *p, /* The graph context */ | |
| 159 | + int top, int btm, /* Span of rows for which the rail is needed */ | |
| 160 | + u32 inUseMask, /* Mask or rails already in use */ | |
| 161 | + int iNearto /* Find rail nearest to this rail */ | |
| 162 | +){ | |
| 158 | 163 | GraphRow *pRow; |
| 159 | 164 | int i; |
| 165 | + int iBest = 0; | |
| 166 | + int iBestDist = 9999; | |
| 160 | 167 | for(pRow=p->pFirst; pRow && pRow->idx<top; pRow=pRow->pNext){} |
| 161 | 168 | while( pRow && pRow->idx<=btm ){ |
| 162 | 169 | inUseMask |= pRow->railInUse; |
| 163 | 170 | pRow = pRow->pNext; |
| 164 | 171 | } |
| 165 | 172 | for(i=0; i<32; i++){ |
| 166 | - if( (inUseMask & (1<<i))==0 ) return i; | |
| 173 | + if( (inUseMask & (1<<i))==0 ){ | |
| 174 | + int dist; | |
| 175 | + if( iNearto<=0 ) return i; | |
| 176 | + dist = i - iNearto; | |
| 177 | + if( dist<0 ) dist = -dist; | |
| 178 | + if( dist<iBestDist ){ | |
| 179 | + iBestDist = dist; | |
| 180 | + iBest = i; | |
| 181 | + } | |
| 182 | + } | |
| 167 | 183 | } |
| 168 | - p->nErr++; | |
| 169 | - return 0; | |
| 184 | + if( iBestDist>1000 ) p->nErr++; | |
| 185 | + return iBest; | |
| 170 | 186 | } |
| 171 | 187 | |
| 172 | 188 | /* |
| 173 | 189 | ** Compute the complete graph |
| 174 | 190 | */ |
| 175 | -void graph_finish(GraphContext *p){ | |
| 191 | +void graph_finish(GraphContext *p, int omitDescenders){ | |
| 176 | 192 | GraphRow *pRow, *pDesc; |
| 177 | 193 | Bag allRids; |
| 178 | 194 | int i; |
| 179 | 195 | int nRow; |
| 180 | 196 | u32 mask; |
| @@ -208,36 +224,50 @@ | ||
| 208 | 224 | /* Identify rows where the primary parent is off screen. Assign |
| 209 | 225 | ** each to a rail and draw descenders to the bottom of the screen. |
| 210 | 226 | */ |
| 211 | 227 | for(pRow=p->pFirst; pRow; pRow=pRow->pNext){ |
| 212 | 228 | if( pRow->nParent==0 || !bag_find(&allRids,pRow->aParent[0]) ){ |
| 213 | - pRow->iRail = ++p->mxRail; | |
| 214 | - pRow->bDescender = pRow->nParent>0; | |
| 229 | + if( omitDescenders ){ | |
| 230 | + pRow->iRail = findFreeRail(p, pRow->idx, pRow->idx, 0, 0); | |
| 231 | + }else{ | |
| 232 | + pRow->iRail = ++p->mxRail; | |
| 233 | + } | |
| 215 | 234 | mask = 1<<(pRow->iRail); |
| 216 | - for(pDesc=pRow; pDesc; pDesc=pDesc->pNext){ | |
| 217 | - pDesc->railInUse |= mask; | |
| 235 | + if( omitDescenders ){ | |
| 236 | + pRow->railInUse |= mask; | |
| 237 | + if( pRow->pNext ) pRow->pNext->railInUse |= mask; | |
| 238 | + }else{ | |
| 239 | + pRow->bDescender = pRow->nParent>0; | |
| 240 | + for(pDesc=pRow; pDesc; pDesc=pDesc->pNext){ | |
| 241 | + pDesc->railInUse |= mask; | |
| 242 | + } | |
| 218 | 243 | } |
| 219 | 244 | } |
| 220 | 245 | } |
| 221 | 246 | |
| 222 | 247 | /* Assign rails to all rows that are still unassigned. |
| 223 | 248 | ** The first primary child of a row goes on the same rail as |
| 224 | 249 | ** that row. |
| 225 | 250 | */ |
| 226 | - inUse = 0; | |
| 251 | + inUse = (1<<(p->mxRail+1))-1; | |
| 227 | 252 | for(pRow=p->pLast; pRow; pRow=pRow->pPrev){ |
| 228 | 253 | int parentRid; |
| 229 | 254 | if( pRow->iRail>=0 ) continue; |
| 230 | 255 | assert( pRow->nParent>0 ); |
| 231 | 256 | parentRid = pRow->aParent[0]; |
| 232 | 257 | assert( bag_find(&allRids, parentRid) ); |
| 233 | 258 | for(pDesc=pRow->pNext; pDesc && pDesc->rid!=parentRid; pDesc=pDesc->pNext){} |
| 234 | - assert( pDesc!=0 ); | |
| 259 | + if( pDesc==0 ){ | |
| 260 | + /* Time skew */ | |
| 261 | + pRow->iRail = ++p->mxRail; | |
| 262 | + pRow->railInUse = 1<<pRow->iRail; | |
| 263 | + continue; | |
| 264 | + } | |
| 235 | 265 | if( pDesc->aiRaiser[pDesc->iRail]==0 && pDesc->zBranch==pRow->zBranch ){ |
| 236 | 266 | pRow->iRail = pDesc->iRail; |
| 237 | 267 | }else{ |
| 238 | - pRow->iRail = findFreeRail(p, 0, pDesc->idx, inUse); | |
| 268 | + pRow->iRail = findFreeRail(p, 0, pDesc->idx, inUse, 0); | |
| 239 | 269 | } |
| 240 | 270 | pDesc->aiRaiser[pRow->iRail] = pRow->idx; |
| 241 | 271 | mask = 1<<pRow->iRail; |
| 242 | 272 | if( pRow->isLeaf ){ |
| 243 | 273 | inUse &= ~mask; |
| @@ -259,12 +289,19 @@ | ||
| 259 | 289 | int parentRid = pRow->aParent[i]; |
| 260 | 290 | for(pDesc=pRow->pNext; pDesc && pDesc->rid!=parentRid; |
| 261 | 291 | pDesc=pDesc->pNext){} |
| 262 | 292 | if( pDesc==0 ) continue; |
| 263 | 293 | if( pDesc->mergeOut<0 ){ |
| 264 | - pDesc->mergeOut = findFreeRail(p, pRow->idx, pDesc->idx, 0); | |
| 294 | + int iTarget = (pRow->iRail + pDesc->iRail)/2; | |
| 295 | + pDesc->mergeOut = findFreeRail(p, pRow->idx, pDesc->idx, 0, iTarget); | |
| 265 | 296 | pDesc->mergeUpto = pRow->idx; |
| 297 | + mask = 1<<pDesc->mergeOut; | |
| 298 | + pDesc->railInUse |= mask; | |
| 299 | + for(pDesc=pRow->pNext; pDesc && pDesc->rid!=parentRid; | |
| 300 | + pDesc=pDesc->pNext){ | |
| 301 | + pDesc->railInUse |= mask; | |
| 302 | + } | |
| 266 | 303 | } |
| 267 | 304 | pRow->mergeIn |= 1<<pDesc->mergeOut; |
| 268 | 305 | } |
| 269 | 306 | } |
| 270 | 307 | |
| 271 | 308 |
| --- src/graph.c | |
| +++ src/graph.c | |
| @@ -152,29 +152,45 @@ | |
| 152 | |
| 153 | /* |
| 154 | ** Return the index of a rail currently not in use for any row between |
| 155 | ** top and bottom, inclusive. |
| 156 | */ |
| 157 | static int findFreeRail(GraphContext *p, int top, int btm, u32 inUseMask){ |
| 158 | GraphRow *pRow; |
| 159 | int i; |
| 160 | for(pRow=p->pFirst; pRow && pRow->idx<top; pRow=pRow->pNext){} |
| 161 | while( pRow && pRow->idx<=btm ){ |
| 162 | inUseMask |= pRow->railInUse; |
| 163 | pRow = pRow->pNext; |
| 164 | } |
| 165 | for(i=0; i<32; i++){ |
| 166 | if( (inUseMask & (1<<i))==0 ) return i; |
| 167 | } |
| 168 | p->nErr++; |
| 169 | return 0; |
| 170 | } |
| 171 | |
| 172 | /* |
| 173 | ** Compute the complete graph |
| 174 | */ |
| 175 | void graph_finish(GraphContext *p){ |
| 176 | GraphRow *pRow, *pDesc; |
| 177 | Bag allRids; |
| 178 | int i; |
| 179 | int nRow; |
| 180 | u32 mask; |
| @@ -208,36 +224,50 @@ | |
| 208 | /* Identify rows where the primary parent is off screen. Assign |
| 209 | ** each to a rail and draw descenders to the bottom of the screen. |
| 210 | */ |
| 211 | for(pRow=p->pFirst; pRow; pRow=pRow->pNext){ |
| 212 | if( pRow->nParent==0 || !bag_find(&allRids,pRow->aParent[0]) ){ |
| 213 | pRow->iRail = ++p->mxRail; |
| 214 | pRow->bDescender = pRow->nParent>0; |
| 215 | mask = 1<<(pRow->iRail); |
| 216 | for(pDesc=pRow; pDesc; pDesc=pDesc->pNext){ |
| 217 | pDesc->railInUse |= mask; |
| 218 | } |
| 219 | } |
| 220 | } |
| 221 | |
| 222 | /* Assign rails to all rows that are still unassigned. |
| 223 | ** The first primary child of a row goes on the same rail as |
| 224 | ** that row. |
| 225 | */ |
| 226 | inUse = 0; |
| 227 | for(pRow=p->pLast; pRow; pRow=pRow->pPrev){ |
| 228 | int parentRid; |
| 229 | if( pRow->iRail>=0 ) continue; |
| 230 | assert( pRow->nParent>0 ); |
| 231 | parentRid = pRow->aParent[0]; |
| 232 | assert( bag_find(&allRids, parentRid) ); |
| 233 | for(pDesc=pRow->pNext; pDesc && pDesc->rid!=parentRid; pDesc=pDesc->pNext){} |
| 234 | assert( pDesc!=0 ); |
| 235 | if( pDesc->aiRaiser[pDesc->iRail]==0 && pDesc->zBranch==pRow->zBranch ){ |
| 236 | pRow->iRail = pDesc->iRail; |
| 237 | }else{ |
| 238 | pRow->iRail = findFreeRail(p, 0, pDesc->idx, inUse); |
| 239 | } |
| 240 | pDesc->aiRaiser[pRow->iRail] = pRow->idx; |
| 241 | mask = 1<<pRow->iRail; |
| 242 | if( pRow->isLeaf ){ |
| 243 | inUse &= ~mask; |
| @@ -259,12 +289,19 @@ | |
| 259 | int parentRid = pRow->aParent[i]; |
| 260 | for(pDesc=pRow->pNext; pDesc && pDesc->rid!=parentRid; |
| 261 | pDesc=pDesc->pNext){} |
| 262 | if( pDesc==0 ) continue; |
| 263 | if( pDesc->mergeOut<0 ){ |
| 264 | pDesc->mergeOut = findFreeRail(p, pRow->idx, pDesc->idx, 0); |
| 265 | pDesc->mergeUpto = pRow->idx; |
| 266 | } |
| 267 | pRow->mergeIn |= 1<<pDesc->mergeOut; |
| 268 | } |
| 269 | } |
| 270 | |
| 271 |
| --- src/graph.c | |
| +++ src/graph.c | |
| @@ -152,29 +152,45 @@ | |
| 152 | |
| 153 | /* |
| 154 | ** Return the index of a rail currently not in use for any row between |
| 155 | ** top and bottom, inclusive. |
| 156 | */ |
| 157 | static int findFreeRail( |
| 158 | GraphContext *p, /* The graph context */ |
| 159 | int top, int btm, /* Span of rows for which the rail is needed */ |
| 160 | u32 inUseMask, /* Mask or rails already in use */ |
| 161 | int iNearto /* Find rail nearest to this rail */ |
| 162 | ){ |
| 163 | GraphRow *pRow; |
| 164 | int i; |
| 165 | int iBest = 0; |
| 166 | int iBestDist = 9999; |
| 167 | for(pRow=p->pFirst; pRow && pRow->idx<top; pRow=pRow->pNext){} |
| 168 | while( pRow && pRow->idx<=btm ){ |
| 169 | inUseMask |= pRow->railInUse; |
| 170 | pRow = pRow->pNext; |
| 171 | } |
| 172 | for(i=0; i<32; i++){ |
| 173 | if( (inUseMask & (1<<i))==0 ){ |
| 174 | int dist; |
| 175 | if( iNearto<=0 ) return i; |
| 176 | dist = i - iNearto; |
| 177 | if( dist<0 ) dist = -dist; |
| 178 | if( dist<iBestDist ){ |
| 179 | iBestDist = dist; |
| 180 | iBest = i; |
| 181 | } |
| 182 | } |
| 183 | } |
| 184 | if( iBestDist>1000 ) p->nErr++; |
| 185 | return iBest; |
| 186 | } |
| 187 | |
| 188 | /* |
| 189 | ** Compute the complete graph |
| 190 | */ |
| 191 | void graph_finish(GraphContext *p, int omitDescenders){ |
| 192 | GraphRow *pRow, *pDesc; |
| 193 | Bag allRids; |
| 194 | int i; |
| 195 | int nRow; |
| 196 | u32 mask; |
| @@ -208,36 +224,50 @@ | |
| 224 | /* Identify rows where the primary parent is off screen. Assign |
| 225 | ** each to a rail and draw descenders to the bottom of the screen. |
| 226 | */ |
| 227 | for(pRow=p->pFirst; pRow; pRow=pRow->pNext){ |
| 228 | if( pRow->nParent==0 || !bag_find(&allRids,pRow->aParent[0]) ){ |
| 229 | if( omitDescenders ){ |
| 230 | pRow->iRail = findFreeRail(p, pRow->idx, pRow->idx, 0, 0); |
| 231 | }else{ |
| 232 | pRow->iRail = ++p->mxRail; |
| 233 | } |
| 234 | mask = 1<<(pRow->iRail); |
| 235 | if( omitDescenders ){ |
| 236 | pRow->railInUse |= mask; |
| 237 | if( pRow->pNext ) pRow->pNext->railInUse |= mask; |
| 238 | }else{ |
| 239 | pRow->bDescender = pRow->nParent>0; |
| 240 | for(pDesc=pRow; pDesc; pDesc=pDesc->pNext){ |
| 241 | pDesc->railInUse |= mask; |
| 242 | } |
| 243 | } |
| 244 | } |
| 245 | } |
| 246 | |
| 247 | /* Assign rails to all rows that are still unassigned. |
| 248 | ** The first primary child of a row goes on the same rail as |
| 249 | ** that row. |
| 250 | */ |
| 251 | inUse = (1<<(p->mxRail+1))-1; |
| 252 | for(pRow=p->pLast; pRow; pRow=pRow->pPrev){ |
| 253 | int parentRid; |
| 254 | if( pRow->iRail>=0 ) continue; |
| 255 | assert( pRow->nParent>0 ); |
| 256 | parentRid = pRow->aParent[0]; |
| 257 | assert( bag_find(&allRids, parentRid) ); |
| 258 | for(pDesc=pRow->pNext; pDesc && pDesc->rid!=parentRid; pDesc=pDesc->pNext){} |
| 259 | if( pDesc==0 ){ |
| 260 | /* Time skew */ |
| 261 | pRow->iRail = ++p->mxRail; |
| 262 | pRow->railInUse = 1<<pRow->iRail; |
| 263 | continue; |
| 264 | } |
| 265 | if( pDesc->aiRaiser[pDesc->iRail]==0 && pDesc->zBranch==pRow->zBranch ){ |
| 266 | pRow->iRail = pDesc->iRail; |
| 267 | }else{ |
| 268 | pRow->iRail = findFreeRail(p, 0, pDesc->idx, inUse, 0); |
| 269 | } |
| 270 | pDesc->aiRaiser[pRow->iRail] = pRow->idx; |
| 271 | mask = 1<<pRow->iRail; |
| 272 | if( pRow->isLeaf ){ |
| 273 | inUse &= ~mask; |
| @@ -259,12 +289,19 @@ | |
| 289 | int parentRid = pRow->aParent[i]; |
| 290 | for(pDesc=pRow->pNext; pDesc && pDesc->rid!=parentRid; |
| 291 | pDesc=pDesc->pNext){} |
| 292 | if( pDesc==0 ) continue; |
| 293 | if( pDesc->mergeOut<0 ){ |
| 294 | int iTarget = (pRow->iRail + pDesc->iRail)/2; |
| 295 | pDesc->mergeOut = findFreeRail(p, pRow->idx, pDesc->idx, 0, iTarget); |
| 296 | pDesc->mergeUpto = pRow->idx; |
| 297 | mask = 1<<pDesc->mergeOut; |
| 298 | pDesc->railInUse |= mask; |
| 299 | for(pDesc=pRow->pNext; pDesc && pDesc->rid!=parentRid; |
| 300 | pDesc=pDesc->pNext){ |
| 301 | pDesc->railInUse |= mask; |
| 302 | } |
| 303 | } |
| 304 | pRow->mergeIn |= 1<<pDesc->mergeOut; |
| 305 | } |
| 306 | } |
| 307 | |
| 308 |
+38
-4
| --- src/http_transport.c | ||
| +++ src/http_transport.c | ||
| @@ -49,10 +49,15 @@ | ||
| 49 | 49 | |
| 50 | 50 | /* |
| 51 | 51 | ** Return the current transport error message. |
| 52 | 52 | */ |
| 53 | 53 | const char *transport_errmsg(void){ |
| 54 | + #ifdef FOSSIL_ENABLE_SSL | |
| 55 | + if( g.urlIsHttps ){ | |
| 56 | + return ssl_errmsg(); | |
| 57 | + } | |
| 58 | + #endif | |
| 54 | 59 | return socket_errmsg(); |
| 55 | 60 | } |
| 56 | 61 | |
| 57 | 62 | /* |
| 58 | 63 | ** Retrieve send/receive counts from the transport layer. If "resetFlag" |
| @@ -79,12 +84,17 @@ | ||
| 79 | 84 | */ |
| 80 | 85 | int transport_open(void){ |
| 81 | 86 | int rc = 0; |
| 82 | 87 | if( transport.isOpen==0 ){ |
| 83 | 88 | if( g.urlIsHttps ){ |
| 84 | - socket_set_errmsg("HTTPS: is not yet implemented"); | |
| 89 | + #ifdef FOSSIL_ENABLE_SSL | |
| 90 | + rc = ssl_open(); | |
| 91 | + if( rc==0 ) transport.isOpen = 1; | |
| 92 | + #else | |
| 93 | + socket_set_errmsg("HTTPS: Fossil has been compiled without SSL support"); | |
| 85 | 94 | rc = 1; |
| 95 | + #endif | |
| 86 | 96 | }else if( g.urlIsFile ){ |
| 87 | 97 | sqlite3_uint64 iRandId; |
| 88 | 98 | sqlite3_randomness(sizeof(iRandId), &iRandId); |
| 89 | 99 | transport.zOutFile = mprintf("%s-%llu-out.http", |
| 90 | 100 | g.zRepositoryName, iRandId); |
| @@ -112,11 +122,13 @@ | ||
| 112 | 122 | transport.pBuf = 0; |
| 113 | 123 | transport.nAlloc = 0; |
| 114 | 124 | transport.nUsed = 0; |
| 115 | 125 | transport.iCursor = 0; |
| 116 | 126 | if( g.urlIsHttps ){ |
| 117 | - /* TBD */ | |
| 127 | + #ifdef FOSSIL_ENABLE_SSL | |
| 128 | + ssl_close(); | |
| 129 | + #endif | |
| 118 | 130 | }else if( g.urlIsFile ){ |
| 119 | 131 | if( transport.pFile ){ |
| 120 | 132 | fclose(transport.pFile); |
| 121 | 133 | transport.pFile = 0; |
| 122 | 134 | } |
| @@ -137,11 +149,19 @@ | ||
| 137 | 149 | void transport_send(Blob *toSend){ |
| 138 | 150 | char *z = blob_buffer(toSend); |
| 139 | 151 | int n = blob_size(toSend); |
| 140 | 152 | transport.nSent += n; |
| 141 | 153 | if( g.urlIsHttps ){ |
| 142 | - /* TBD */ | |
| 154 | + #ifdef FOSSIL_ENABLE_SSL | |
| 155 | + int sent; | |
| 156 | + while( n>0 ){ | |
| 157 | + sent = ssl_send(0, z, n); | |
| 158 | + /* printf("Sent %d of %d bytes\n", sent, n); fflush(stdout); */ | |
| 159 | + if( sent<=0 ) break; | |
| 160 | + n -= sent; | |
| 161 | + } | |
| 162 | + #endif | |
| 143 | 163 | }else if( g.urlIsFile ){ |
| 144 | 164 | fwrite(z, 1, n, transport.pFile); |
| 145 | 165 | }else{ |
| 146 | 166 | int sent; |
| 147 | 167 | while( n>0 ){ |
| @@ -204,12 +224,16 @@ | ||
| 204 | 224 | nByte += toMove; |
| 205 | 225 | } |
| 206 | 226 | if( N>0 ){ |
| 207 | 227 | int got; |
| 208 | 228 | if( g.urlIsHttps ){ |
| 209 | - /* TBD */ | |
| 229 | + #ifdef FOSSIL_ENABLE_SSL | |
| 230 | + got = ssl_receive(0, zBuf, N); | |
| 231 | + /* printf("received %d of %d bytes\n", got, N); fflush(stdout); */ | |
| 232 | + #else | |
| 210 | 233 | got = 0; |
| 234 | + #endif | |
| 211 | 235 | }else if( g.urlIsFile ){ |
| 212 | 236 | got = fread(zBuf, 1, N, transport.pFile); |
| 213 | 237 | }else{ |
| 214 | 238 | got = socket_receive(0, zBuf, N); |
| 215 | 239 | /* printf("received %d of %d bytes\n", got, N); fflush(stdout); */ |
| @@ -293,5 +317,15 @@ | ||
| 293 | 317 | i++; |
| 294 | 318 | } |
| 295 | 319 | /* printf("Got line: [%s]\n", &transport.pBuf[iStart]); */ |
| 296 | 320 | return &transport.pBuf[iStart]; |
| 297 | 321 | } |
| 322 | + | |
| 323 | +void transport_global_shutdown(void){ | |
| 324 | + if( g.urlIsHttps ){ | |
| 325 | + #ifdef FOSSIL_ENABLE_SSL | |
| 326 | + ssl_global_shutdown(); | |
| 327 | + #endif | |
| 328 | + }else{ | |
| 329 | + socket_global_shutdown(); | |
| 330 | + } | |
| 331 | +} | |
| 298 | 332 |
| --- src/http_transport.c | |
| +++ src/http_transport.c | |
| @@ -49,10 +49,15 @@ | |
| 49 | |
| 50 | /* |
| 51 | ** Return the current transport error message. |
| 52 | */ |
| 53 | const char *transport_errmsg(void){ |
| 54 | return socket_errmsg(); |
| 55 | } |
| 56 | |
| 57 | /* |
| 58 | ** Retrieve send/receive counts from the transport layer. If "resetFlag" |
| @@ -79,12 +84,17 @@ | |
| 79 | */ |
| 80 | int transport_open(void){ |
| 81 | int rc = 0; |
| 82 | if( transport.isOpen==0 ){ |
| 83 | if( g.urlIsHttps ){ |
| 84 | socket_set_errmsg("HTTPS: is not yet implemented"); |
| 85 | rc = 1; |
| 86 | }else if( g.urlIsFile ){ |
| 87 | sqlite3_uint64 iRandId; |
| 88 | sqlite3_randomness(sizeof(iRandId), &iRandId); |
| 89 | transport.zOutFile = mprintf("%s-%llu-out.http", |
| 90 | g.zRepositoryName, iRandId); |
| @@ -112,11 +122,13 @@ | |
| 112 | transport.pBuf = 0; |
| 113 | transport.nAlloc = 0; |
| 114 | transport.nUsed = 0; |
| 115 | transport.iCursor = 0; |
| 116 | if( g.urlIsHttps ){ |
| 117 | /* TBD */ |
| 118 | }else if( g.urlIsFile ){ |
| 119 | if( transport.pFile ){ |
| 120 | fclose(transport.pFile); |
| 121 | transport.pFile = 0; |
| 122 | } |
| @@ -137,11 +149,19 @@ | |
| 137 | void transport_send(Blob *toSend){ |
| 138 | char *z = blob_buffer(toSend); |
| 139 | int n = blob_size(toSend); |
| 140 | transport.nSent += n; |
| 141 | if( g.urlIsHttps ){ |
| 142 | /* TBD */ |
| 143 | }else if( g.urlIsFile ){ |
| 144 | fwrite(z, 1, n, transport.pFile); |
| 145 | }else{ |
| 146 | int sent; |
| 147 | while( n>0 ){ |
| @@ -204,12 +224,16 @@ | |
| 204 | nByte += toMove; |
| 205 | } |
| 206 | if( N>0 ){ |
| 207 | int got; |
| 208 | if( g.urlIsHttps ){ |
| 209 | /* TBD */ |
| 210 | got = 0; |
| 211 | }else if( g.urlIsFile ){ |
| 212 | got = fread(zBuf, 1, N, transport.pFile); |
| 213 | }else{ |
| 214 | got = socket_receive(0, zBuf, N); |
| 215 | /* printf("received %d of %d bytes\n", got, N); fflush(stdout); */ |
| @@ -293,5 +317,15 @@ | |
| 293 | i++; |
| 294 | } |
| 295 | /* printf("Got line: [%s]\n", &transport.pBuf[iStart]); */ |
| 296 | return &transport.pBuf[iStart]; |
| 297 | } |
| 298 |
| --- src/http_transport.c | |
| +++ src/http_transport.c | |
| @@ -49,10 +49,15 @@ | |
| 49 | |
| 50 | /* |
| 51 | ** Return the current transport error message. |
| 52 | */ |
| 53 | const char *transport_errmsg(void){ |
| 54 | #ifdef FOSSIL_ENABLE_SSL |
| 55 | if( g.urlIsHttps ){ |
| 56 | return ssl_errmsg(); |
| 57 | } |
| 58 | #endif |
| 59 | return socket_errmsg(); |
| 60 | } |
| 61 | |
| 62 | /* |
| 63 | ** Retrieve send/receive counts from the transport layer. If "resetFlag" |
| @@ -79,12 +84,17 @@ | |
| 84 | */ |
| 85 | int transport_open(void){ |
| 86 | int rc = 0; |
| 87 | if( transport.isOpen==0 ){ |
| 88 | if( g.urlIsHttps ){ |
| 89 | #ifdef FOSSIL_ENABLE_SSL |
| 90 | rc = ssl_open(); |
| 91 | if( rc==0 ) transport.isOpen = 1; |
| 92 | #else |
| 93 | socket_set_errmsg("HTTPS: Fossil has been compiled without SSL support"); |
| 94 | rc = 1; |
| 95 | #endif |
| 96 | }else if( g.urlIsFile ){ |
| 97 | sqlite3_uint64 iRandId; |
| 98 | sqlite3_randomness(sizeof(iRandId), &iRandId); |
| 99 | transport.zOutFile = mprintf("%s-%llu-out.http", |
| 100 | g.zRepositoryName, iRandId); |
| @@ -112,11 +122,13 @@ | |
| 122 | transport.pBuf = 0; |
| 123 | transport.nAlloc = 0; |
| 124 | transport.nUsed = 0; |
| 125 | transport.iCursor = 0; |
| 126 | if( g.urlIsHttps ){ |
| 127 | #ifdef FOSSIL_ENABLE_SSL |
| 128 | ssl_close(); |
| 129 | #endif |
| 130 | }else if( g.urlIsFile ){ |
| 131 | if( transport.pFile ){ |
| 132 | fclose(transport.pFile); |
| 133 | transport.pFile = 0; |
| 134 | } |
| @@ -137,11 +149,19 @@ | |
| 149 | void transport_send(Blob *toSend){ |
| 150 | char *z = blob_buffer(toSend); |
| 151 | int n = blob_size(toSend); |
| 152 | transport.nSent += n; |
| 153 | if( g.urlIsHttps ){ |
| 154 | #ifdef FOSSIL_ENABLE_SSL |
| 155 | int sent; |
| 156 | while( n>0 ){ |
| 157 | sent = ssl_send(0, z, n); |
| 158 | /* printf("Sent %d of %d bytes\n", sent, n); fflush(stdout); */ |
| 159 | if( sent<=0 ) break; |
| 160 | n -= sent; |
| 161 | } |
| 162 | #endif |
| 163 | }else if( g.urlIsFile ){ |
| 164 | fwrite(z, 1, n, transport.pFile); |
| 165 | }else{ |
| 166 | int sent; |
| 167 | while( n>0 ){ |
| @@ -204,12 +224,16 @@ | |
| 224 | nByte += toMove; |
| 225 | } |
| 226 | if( N>0 ){ |
| 227 | int got; |
| 228 | if( g.urlIsHttps ){ |
| 229 | #ifdef FOSSIL_ENABLE_SSL |
| 230 | got = ssl_receive(0, zBuf, N); |
| 231 | /* printf("received %d of %d bytes\n", got, N); fflush(stdout); */ |
| 232 | #else |
| 233 | got = 0; |
| 234 | #endif |
| 235 | }else if( g.urlIsFile ){ |
| 236 | got = fread(zBuf, 1, N, transport.pFile); |
| 237 | }else{ |
| 238 | got = socket_receive(0, zBuf, N); |
| 239 | /* printf("received %d of %d bytes\n", got, N); fflush(stdout); */ |
| @@ -293,5 +317,15 @@ | |
| 317 | i++; |
| 318 | } |
| 319 | /* printf("Got line: [%s]\n", &transport.pBuf[iStart]); */ |
| 320 | return &transport.pBuf[iStart]; |
| 321 | } |
| 322 | |
| 323 | void transport_global_shutdown(void){ |
| 324 | if( g.urlIsHttps ){ |
| 325 | #ifdef FOSSIL_ENABLE_SSL |
| 326 | ssl_global_shutdown(); |
| 327 | #endif |
| 328 | }else{ |
| 329 | socket_global_shutdown(); |
| 330 | } |
| 331 | } |
| 332 |
+1
-1
| --- src/info.c | ||
| +++ src/info.c | ||
| @@ -143,11 +143,11 @@ | ||
| 143 | 143 | printf("project-name: %s\n", db_get("project-name", "<unnamed>")); |
| 144 | 144 | printf("repository: %s\n", db_lget("repository", "")); |
| 145 | 145 | printf("local-root: %s\n", g.zLocalRoot); |
| 146 | 146 | #ifdef __MINGW32__ |
| 147 | 147 | if( g.zHome ){ |
| 148 | - printf("user-home: : %s\n", g.zHome); | |
| 148 | + printf("user-home: %s\n", g.zHome); | |
| 149 | 149 | } |
| 150 | 150 | #endif |
| 151 | 151 | printf("project-code: %s\n", db_get("project-code", "")); |
| 152 | 152 | printf("server-code: %s\n", db_get("server-code", "")); |
| 153 | 153 | vid = db_lget_int("checkout", 0); |
| 154 | 154 |
| --- src/info.c | |
| +++ src/info.c | |
| @@ -143,11 +143,11 @@ | |
| 143 | printf("project-name: %s\n", db_get("project-name", "<unnamed>")); |
| 144 | printf("repository: %s\n", db_lget("repository", "")); |
| 145 | printf("local-root: %s\n", g.zLocalRoot); |
| 146 | #ifdef __MINGW32__ |
| 147 | if( g.zHome ){ |
| 148 | printf("user-home: : %s\n", g.zHome); |
| 149 | } |
| 150 | #endif |
| 151 | printf("project-code: %s\n", db_get("project-code", "")); |
| 152 | printf("server-code: %s\n", db_get("server-code", "")); |
| 153 | vid = db_lget_int("checkout", 0); |
| 154 |
| --- src/info.c | |
| +++ src/info.c | |
| @@ -143,11 +143,11 @@ | |
| 143 | printf("project-name: %s\n", db_get("project-name", "<unnamed>")); |
| 144 | printf("repository: %s\n", db_lget("repository", "")); |
| 145 | printf("local-root: %s\n", g.zLocalRoot); |
| 146 | #ifdef __MINGW32__ |
| 147 | if( g.zHome ){ |
| 148 | printf("user-home: %s\n", g.zHome); |
| 149 | } |
| 150 | #endif |
| 151 | printf("project-code: %s\n", db_get("project-code", "")); |
| 152 | printf("server-code: %s\n", db_get("server-code", "")); |
| 153 | vid = db_lget_int("checkout", 0); |
| 154 |
-10
| --- src/main.c | ||
| +++ src/main.c | ||
| @@ -706,20 +706,10 @@ | ||
| 706 | 706 | ** will use g.zExtra directly. |
| 707 | 707 | */ |
| 708 | 708 | dehttpize(g.zExtra); |
| 709 | 709 | cgi_set_parameter_nocopy("name", g.zExtra); |
| 710 | 710 | } |
| 711 | - | |
| 712 | - /* Prevent robots from indexing this site. | |
| 713 | - */ | |
| 714 | - if( strcmp(g.zPath, "robots.txt")==0 ){ | |
| 715 | - cgi_set_content_type("text/plain"); | |
| 716 | - @ User-agent: * | |
| 717 | - @ Disallow: / | |
| 718 | - cgi_reply(); | |
| 719 | - exit(0); | |
| 720 | - } | |
| 721 | 711 | |
| 722 | 712 | /* Locate the method specified by the path and execute the function |
| 723 | 713 | ** that implements that method. |
| 724 | 714 | */ |
| 725 | 715 | if( name_search(g.zPath, aWebpage, count(aWebpage), &idx) && |
| 726 | 716 |
| --- src/main.c | |
| +++ src/main.c | |
| @@ -706,20 +706,10 @@ | |
| 706 | ** will use g.zExtra directly. |
| 707 | */ |
| 708 | dehttpize(g.zExtra); |
| 709 | cgi_set_parameter_nocopy("name", g.zExtra); |
| 710 | } |
| 711 | |
| 712 | /* Prevent robots from indexing this site. |
| 713 | */ |
| 714 | if( strcmp(g.zPath, "robots.txt")==0 ){ |
| 715 | cgi_set_content_type("text/plain"); |
| 716 | @ User-agent: * |
| 717 | @ Disallow: / |
| 718 | cgi_reply(); |
| 719 | exit(0); |
| 720 | } |
| 721 | |
| 722 | /* Locate the method specified by the path and execute the function |
| 723 | ** that implements that method. |
| 724 | */ |
| 725 | if( name_search(g.zPath, aWebpage, count(aWebpage), &idx) && |
| 726 |
| --- src/main.c | |
| +++ src/main.c | |
| @@ -706,20 +706,10 @@ | |
| 706 | ** will use g.zExtra directly. |
| 707 | */ |
| 708 | dehttpize(g.zExtra); |
| 709 | cgi_set_parameter_nocopy("name", g.zExtra); |
| 710 | } |
| 711 | |
| 712 | /* Locate the method specified by the path and execute the function |
| 713 | ** that implements that method. |
| 714 | */ |
| 715 | if( name_search(g.zPath, aWebpage, count(aWebpage), &idx) && |
| 716 |
+219
-216
| --- src/main.mk | ||
| +++ src/main.mk | ||
| @@ -151,88 +151,91 @@ | ||
| 151 | 151 | winhttp_.c \ |
| 152 | 152 | xfer_.c \ |
| 153 | 153 | zip_.c |
| 154 | 154 | |
| 155 | 155 | OBJ = \ |
| 156 | - add.o \ | |
| 157 | - allrepo.o \ | |
| 158 | - bag.o \ | |
| 159 | - blob.o \ | |
| 160 | - branch.o \ | |
| 161 | - browse.o \ | |
| 162 | - captcha.o \ | |
| 163 | - cgi.o \ | |
| 164 | - checkin.o \ | |
| 165 | - checkout.o \ | |
| 166 | - clearsign.o \ | |
| 167 | - clone.o \ | |
| 168 | - comformat.o \ | |
| 169 | - configure.o \ | |
| 170 | - content.o \ | |
| 171 | - db.o \ | |
| 172 | - delta.o \ | |
| 173 | - deltacmd.o \ | |
| 174 | - descendants.o \ | |
| 175 | - diff.o \ | |
| 176 | - diffcmd.o \ | |
| 177 | - doc.o \ | |
| 178 | - encode.o \ | |
| 179 | - file.o \ | |
| 180 | - finfo.o \ | |
| 181 | - graph.o \ | |
| 182 | - http.o \ | |
| 183 | - http_socket.o \ | |
| 184 | - http_transport.o \ | |
| 185 | - info.o \ | |
| 186 | - login.o \ | |
| 187 | - main.o \ | |
| 188 | - manifest.o \ | |
| 189 | - md5.o \ | |
| 190 | - merge.o \ | |
| 191 | - merge3.o \ | |
| 192 | - name.o \ | |
| 193 | - pivot.o \ | |
| 194 | - pqueue.o \ | |
| 195 | - printf.o \ | |
| 196 | - rebuild.o \ | |
| 197 | - report.o \ | |
| 198 | - rss.o \ | |
| 199 | - schema.o \ | |
| 200 | - search.o \ | |
| 201 | - setup.o \ | |
| 202 | - sha1.o \ | |
| 203 | - shun.o \ | |
| 204 | - skins.o \ | |
| 205 | - stat.o \ | |
| 206 | - style.o \ | |
| 207 | - sync.o \ | |
| 208 | - tag.o \ | |
| 209 | - th_main.o \ | |
| 210 | - timeline.o \ | |
| 211 | - tkt.o \ | |
| 212 | - tktsetup.o \ | |
| 213 | - undo.o \ | |
| 214 | - update.o \ | |
| 215 | - url.o \ | |
| 216 | - user.o \ | |
| 217 | - verify.o \ | |
| 218 | - vfile.o \ | |
| 219 | - wiki.o \ | |
| 220 | - wikiformat.o \ | |
| 221 | - winhttp.o \ | |
| 222 | - xfer.o \ | |
| 223 | - zip.o | |
| 156 | + $(OBJDIR)/add.o \ | |
| 157 | + $(OBJDIR)/allrepo.o \ | |
| 158 | + $(OBJDIR)/bag.o \ | |
| 159 | + $(OBJDIR)/blob.o \ | |
| 160 | + $(OBJDIR)/branch.o \ | |
| 161 | + $(OBJDIR)/browse.o \ | |
| 162 | + $(OBJDIR)/captcha.o \ | |
| 163 | + $(OBJDIR)/cgi.o \ | |
| 164 | + $(OBJDIR)/checkin.o \ | |
| 165 | + $(OBJDIR)/checkout.o \ | |
| 166 | + $(OBJDIR)/clearsign.o \ | |
| 167 | + $(OBJDIR)/clone.o \ | |
| 168 | + $(OBJDIR)/comformat.o \ | |
| 169 | + $(OBJDIR)/configure.o \ | |
| 170 | + $(OBJDIR)/content.o \ | |
| 171 | + $(OBJDIR)/db.o \ | |
| 172 | + $(OBJDIR)/delta.o \ | |
| 173 | + $(OBJDIR)/deltacmd.o \ | |
| 174 | + $(OBJDIR)/descendants.o \ | |
| 175 | + $(OBJDIR)/diff.o \ | |
| 176 | + $(OBJDIR)/diffcmd.o \ | |
| 177 | + $(OBJDIR)/doc.o \ | |
| 178 | + $(OBJDIR)/encode.o \ | |
| 179 | + $(OBJDIR)/file.o \ | |
| 180 | + $(OBJDIR)/finfo.o \ | |
| 181 | + $(OBJDIR)/graph.o \ | |
| 182 | + $(OBJDIR)/http.o \ | |
| 183 | + $(OBJDIR)/http_socket.o \ | |
| 184 | + $(OBJDIR)/http_transport.o \ | |
| 185 | + $(OBJDIR)/info.o \ | |
| 186 | + $(OBJDIR)/login.o \ | |
| 187 | + $(OBJDIR)/main.o \ | |
| 188 | + $(OBJDIR)/manifest.o \ | |
| 189 | + $(OBJDIR)/md5.o \ | |
| 190 | + $(OBJDIR)/merge.o \ | |
| 191 | + $(OBJDIR)/merge3.o \ | |
| 192 | + $(OBJDIR)/name.o \ | |
| 193 | + $(OBJDIR)/pivot.o \ | |
| 194 | + $(OBJDIR)/pqueue.o \ | |
| 195 | + $(OBJDIR)/printf.o \ | |
| 196 | + $(OBJDIR)/rebuild.o \ | |
| 197 | + $(OBJDIR)/report.o \ | |
| 198 | + $(OBJDIR)/rss.o \ | |
| 199 | + $(OBJDIR)/schema.o \ | |
| 200 | + $(OBJDIR)/search.o \ | |
| 201 | + $(OBJDIR)/setup.o \ | |
| 202 | + $(OBJDIR)/sha1.o \ | |
| 203 | + $(OBJDIR)/shun.o \ | |
| 204 | + $(OBJDIR)/skins.o \ | |
| 205 | + $(OBJDIR)/stat.o \ | |
| 206 | + $(OBJDIR)/style.o \ | |
| 207 | + $(OBJDIR)/sync.o \ | |
| 208 | + $(OBJDIR)/tag.o \ | |
| 209 | + $(OBJDIR)/th_main.o \ | |
| 210 | + $(OBJDIR)/timeline.o \ | |
| 211 | + $(OBJDIR)/tkt.o \ | |
| 212 | + $(OBJDIR)/tktsetup.o \ | |
| 213 | + $(OBJDIR)/undo.o \ | |
| 214 | + $(OBJDIR)/update.o \ | |
| 215 | + $(OBJDIR)/url.o \ | |
| 216 | + $(OBJDIR)/user.o \ | |
| 217 | + $(OBJDIR)/verify.o \ | |
| 218 | + $(OBJDIR)/vfile.o \ | |
| 219 | + $(OBJDIR)/wiki.o \ | |
| 220 | + $(OBJDIR)/wikiformat.o \ | |
| 221 | + $(OBJDIR)/winhttp.o \ | |
| 222 | + $(OBJDIR)/xfer.o \ | |
| 223 | + $(OBJDIR)/zip.o | |
| 224 | 224 | |
| 225 | 225 | APPNAME = fossil$(E) |
| 226 | 226 | |
| 227 | 227 | |
| 228 | 228 | |
| 229 | -all: $(APPNAME) | |
| 229 | +all: $(OBJDIR) $(APPNAME) | |
| 230 | 230 | |
| 231 | 231 | install: $(APPNAME) |
| 232 | 232 | mv $(APPNAME) $(INSTALLDIR) |
| 233 | 233 | |
| 234 | +$(OBJDIR): | |
| 235 | + -mkdir $(OBJDIR) | |
| 236 | + | |
| 234 | 237 | translate: $(SRCDIR)/translate.c |
| 235 | 238 | $(BCC) -o translate $(SRCDIR)/translate.c |
| 236 | 239 | |
| 237 | 240 | makeheaders: $(SRCDIR)/makeheaders.c |
| 238 | 241 | $(BCC) -o makeheaders $(SRCDIR)/makeheaders.c |
| @@ -249,21 +252,21 @@ | ||
| 249 | 252 | VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest |
| 250 | 253 | awk '{ printf "#define MANIFEST_UUID \"%s\"\n", $$1}' $(SRCDIR)/../manifest.uuid >VERSION.h |
| 251 | 254 | awk '{ printf "#define MANIFEST_VERSION \"[%.10s]\"\n", $$1}' $(SRCDIR)/../manifest.uuid >>VERSION.h |
| 252 | 255 | awk '$$1=="D"{printf "#define MANIFEST_DATE \"%s %s\"\n", substr($$2,1,10),substr($$2,12)}' $(SRCDIR)/../manifest >>VERSION.h |
| 253 | 256 | |
| 254 | -$(APPNAME): headers $(OBJ) sqlite3.o th.o th_lang.o | |
| 255 | - $(TCC) -o $(APPNAME) $(OBJ) sqlite3.o th.o th_lang.o $(LIB) | |
| 257 | +$(APPNAME): headers $(OBJ) $(OBJDIR)/sqlite3.o $(OBJDIR)/th.o $(OBJDIR)/th_lang.o | |
| 258 | + $(TCC) -o $(APPNAME) $(OBJ) $(OBJDIR)/sqlite3.o $(OBJDIR)/th.o $(OBJDIR)/th_lang.o $(LIB) | |
| 256 | 259 | |
| 257 | 260 | # This rule prevents make from using its default rules to try build |
| 258 | 261 | # an executable named "manifest" out of the file named "manifest.c" |
| 259 | 262 | # |
| 260 | 263 | $(SRCDIR)/../manifest: |
| 261 | 264 | # noop |
| 262 | 265 | |
| 263 | 266 | clean: |
| 264 | - rm -f *.o *_.c $(APPNAME) VERSION.h | |
| 267 | + rm -f $(OBJDIR)/*.o *_.c $(APPNAME) VERSION.h | |
| 265 | 268 | rm -f translate makeheaders mkindex page_index.h headers |
| 266 | 269 | rm -f add.h allrepo.h bag.h blob.h branch.h browse.h captcha.h cgi.h checkin.h checkout.h clearsign.h clone.h comformat.h configure.h content.h db.h delta.h deltacmd.h descendants.h diff.h diffcmd.h doc.h encode.h file.h finfo.h graph.h http.h http_socket.h http_transport.h info.h login.h main.h manifest.h md5.h merge.h merge3.h name.h pivot.h pqueue.h printf.h rebuild.h report.h rss.h schema.h search.h setup.h sha1.h shun.h skins.h stat.h style.h sync.h tag.h th_main.h timeline.h tkt.h tktsetup.h undo.h update.h url.h user.h verify.h vfile.h wiki.h wikiformat.h winhttp.h xfer.h zip.h |
| 267 | 270 | |
| 268 | 271 | page_index.h: $(TRANS_SRC) mkindex |
| 269 | 272 | ./mkindex $(TRANS_SRC) >$@ |
| @@ -273,487 +276,487 @@ | ||
| 273 | 276 | headers: Makefile |
| 274 | 277 | Makefile: |
| 275 | 278 | add_.c: $(SRCDIR)/add.c translate |
| 276 | 279 | ./translate $(SRCDIR)/add.c >add_.c |
| 277 | 280 | |
| 278 | -add.o: add_.c add.h $(SRCDIR)/config.h | |
| 279 | - $(XTCC) -o add.o -c add_.c | |
| 281 | +$(OBJDIR)/add.o: add_.c add.h $(SRCDIR)/config.h | |
| 282 | + $(XTCC) -o $(OBJDIR)/add.o -c add_.c | |
| 280 | 283 | |
| 281 | 284 | add.h: headers |
| 282 | 285 | allrepo_.c: $(SRCDIR)/allrepo.c translate |
| 283 | 286 | ./translate $(SRCDIR)/allrepo.c >allrepo_.c |
| 284 | 287 | |
| 285 | -allrepo.o: allrepo_.c allrepo.h $(SRCDIR)/config.h | |
| 286 | - $(XTCC) -o allrepo.o -c allrepo_.c | |
| 288 | +$(OBJDIR)/allrepo.o: allrepo_.c allrepo.h $(SRCDIR)/config.h | |
| 289 | + $(XTCC) -o $(OBJDIR)/allrepo.o -c allrepo_.c | |
| 287 | 290 | |
| 288 | 291 | allrepo.h: headers |
| 289 | 292 | bag_.c: $(SRCDIR)/bag.c translate |
| 290 | 293 | ./translate $(SRCDIR)/bag.c >bag_.c |
| 291 | 294 | |
| 292 | -bag.o: bag_.c bag.h $(SRCDIR)/config.h | |
| 293 | - $(XTCC) -o bag.o -c bag_.c | |
| 295 | +$(OBJDIR)/bag.o: bag_.c bag.h $(SRCDIR)/config.h | |
| 296 | + $(XTCC) -o $(OBJDIR)/bag.o -c bag_.c | |
| 294 | 297 | |
| 295 | 298 | bag.h: headers |
| 296 | 299 | blob_.c: $(SRCDIR)/blob.c translate |
| 297 | 300 | ./translate $(SRCDIR)/blob.c >blob_.c |
| 298 | 301 | |
| 299 | -blob.o: blob_.c blob.h $(SRCDIR)/config.h | |
| 300 | - $(XTCC) -o blob.o -c blob_.c | |
| 302 | +$(OBJDIR)/blob.o: blob_.c blob.h $(SRCDIR)/config.h | |
| 303 | + $(XTCC) -o $(OBJDIR)/blob.o -c blob_.c | |
| 301 | 304 | |
| 302 | 305 | blob.h: headers |
| 303 | 306 | branch_.c: $(SRCDIR)/branch.c translate |
| 304 | 307 | ./translate $(SRCDIR)/branch.c >branch_.c |
| 305 | 308 | |
| 306 | -branch.o: branch_.c branch.h $(SRCDIR)/config.h | |
| 307 | - $(XTCC) -o branch.o -c branch_.c | |
| 309 | +$(OBJDIR)/branch.o: branch_.c branch.h $(SRCDIR)/config.h | |
| 310 | + $(XTCC) -o $(OBJDIR)/branch.o -c branch_.c | |
| 308 | 311 | |
| 309 | 312 | branch.h: headers |
| 310 | 313 | browse_.c: $(SRCDIR)/browse.c translate |
| 311 | 314 | ./translate $(SRCDIR)/browse.c >browse_.c |
| 312 | 315 | |
| 313 | -browse.o: browse_.c browse.h $(SRCDIR)/config.h | |
| 314 | - $(XTCC) -o browse.o -c browse_.c | |
| 316 | +$(OBJDIR)/browse.o: browse_.c browse.h $(SRCDIR)/config.h | |
| 317 | + $(XTCC) -o $(OBJDIR)/browse.o -c browse_.c | |
| 315 | 318 | |
| 316 | 319 | browse.h: headers |
| 317 | 320 | captcha_.c: $(SRCDIR)/captcha.c translate |
| 318 | 321 | ./translate $(SRCDIR)/captcha.c >captcha_.c |
| 319 | 322 | |
| 320 | -captcha.o: captcha_.c captcha.h $(SRCDIR)/config.h | |
| 321 | - $(XTCC) -o captcha.o -c captcha_.c | |
| 323 | +$(OBJDIR)/captcha.o: captcha_.c captcha.h $(SRCDIR)/config.h | |
| 324 | + $(XTCC) -o $(OBJDIR)/captcha.o -c captcha_.c | |
| 322 | 325 | |
| 323 | 326 | captcha.h: headers |
| 324 | 327 | cgi_.c: $(SRCDIR)/cgi.c translate |
| 325 | 328 | ./translate $(SRCDIR)/cgi.c >cgi_.c |
| 326 | 329 | |
| 327 | -cgi.o: cgi_.c cgi.h $(SRCDIR)/config.h | |
| 328 | - $(XTCC) -o cgi.o -c cgi_.c | |
| 330 | +$(OBJDIR)/cgi.o: cgi_.c cgi.h $(SRCDIR)/config.h | |
| 331 | + $(XTCC) -o $(OBJDIR)/cgi.o -c cgi_.c | |
| 329 | 332 | |
| 330 | 333 | cgi.h: headers |
| 331 | 334 | checkin_.c: $(SRCDIR)/checkin.c translate |
| 332 | 335 | ./translate $(SRCDIR)/checkin.c >checkin_.c |
| 333 | 336 | |
| 334 | -checkin.o: checkin_.c checkin.h $(SRCDIR)/config.h | |
| 335 | - $(XTCC) -o checkin.o -c checkin_.c | |
| 337 | +$(OBJDIR)/checkin.o: checkin_.c checkin.h $(SRCDIR)/config.h | |
| 338 | + $(XTCC) -o $(OBJDIR)/checkin.o -c checkin_.c | |
| 336 | 339 | |
| 337 | 340 | checkin.h: headers |
| 338 | 341 | checkout_.c: $(SRCDIR)/checkout.c translate |
| 339 | 342 | ./translate $(SRCDIR)/checkout.c >checkout_.c |
| 340 | 343 | |
| 341 | -checkout.o: checkout_.c checkout.h $(SRCDIR)/config.h | |
| 342 | - $(XTCC) -o checkout.o -c checkout_.c | |
| 344 | +$(OBJDIR)/checkout.o: checkout_.c checkout.h $(SRCDIR)/config.h | |
| 345 | + $(XTCC) -o $(OBJDIR)/checkout.o -c checkout_.c | |
| 343 | 346 | |
| 344 | 347 | checkout.h: headers |
| 345 | 348 | clearsign_.c: $(SRCDIR)/clearsign.c translate |
| 346 | 349 | ./translate $(SRCDIR)/clearsign.c >clearsign_.c |
| 347 | 350 | |
| 348 | -clearsign.o: clearsign_.c clearsign.h $(SRCDIR)/config.h | |
| 349 | - $(XTCC) -o clearsign.o -c clearsign_.c | |
| 351 | +$(OBJDIR)/clearsign.o: clearsign_.c clearsign.h $(SRCDIR)/config.h | |
| 352 | + $(XTCC) -o $(OBJDIR)/clearsign.o -c clearsign_.c | |
| 350 | 353 | |
| 351 | 354 | clearsign.h: headers |
| 352 | 355 | clone_.c: $(SRCDIR)/clone.c translate |
| 353 | 356 | ./translate $(SRCDIR)/clone.c >clone_.c |
| 354 | 357 | |
| 355 | -clone.o: clone_.c clone.h $(SRCDIR)/config.h | |
| 356 | - $(XTCC) -o clone.o -c clone_.c | |
| 358 | +$(OBJDIR)/clone.o: clone_.c clone.h $(SRCDIR)/config.h | |
| 359 | + $(XTCC) -o $(OBJDIR)/clone.o -c clone_.c | |
| 357 | 360 | |
| 358 | 361 | clone.h: headers |
| 359 | 362 | comformat_.c: $(SRCDIR)/comformat.c translate |
| 360 | 363 | ./translate $(SRCDIR)/comformat.c >comformat_.c |
| 361 | 364 | |
| 362 | -comformat.o: comformat_.c comformat.h $(SRCDIR)/config.h | |
| 363 | - $(XTCC) -o comformat.o -c comformat_.c | |
| 365 | +$(OBJDIR)/comformat.o: comformat_.c comformat.h $(SRCDIR)/config.h | |
| 366 | + $(XTCC) -o $(OBJDIR)/comformat.o -c comformat_.c | |
| 364 | 367 | |
| 365 | 368 | comformat.h: headers |
| 366 | 369 | configure_.c: $(SRCDIR)/configure.c translate |
| 367 | 370 | ./translate $(SRCDIR)/configure.c >configure_.c |
| 368 | 371 | |
| 369 | -configure.o: configure_.c configure.h $(SRCDIR)/config.h | |
| 370 | - $(XTCC) -o configure.o -c configure_.c | |
| 372 | +$(OBJDIR)/configure.o: configure_.c configure.h $(SRCDIR)/config.h | |
| 373 | + $(XTCC) -o $(OBJDIR)/configure.o -c configure_.c | |
| 371 | 374 | |
| 372 | 375 | configure.h: headers |
| 373 | 376 | content_.c: $(SRCDIR)/content.c translate |
| 374 | 377 | ./translate $(SRCDIR)/content.c >content_.c |
| 375 | 378 | |
| 376 | -content.o: content_.c content.h $(SRCDIR)/config.h | |
| 377 | - $(XTCC) -o content.o -c content_.c | |
| 379 | +$(OBJDIR)/content.o: content_.c content.h $(SRCDIR)/config.h | |
| 380 | + $(XTCC) -o $(OBJDIR)/content.o -c content_.c | |
| 378 | 381 | |
| 379 | 382 | content.h: headers |
| 380 | 383 | db_.c: $(SRCDIR)/db.c translate |
| 381 | 384 | ./translate $(SRCDIR)/db.c >db_.c |
| 382 | 385 | |
| 383 | -db.o: db_.c db.h $(SRCDIR)/config.h | |
| 384 | - $(XTCC) -o db.o -c db_.c | |
| 386 | +$(OBJDIR)/db.o: db_.c db.h $(SRCDIR)/config.h | |
| 387 | + $(XTCC) -o $(OBJDIR)/db.o -c db_.c | |
| 385 | 388 | |
| 386 | 389 | db.h: headers |
| 387 | 390 | delta_.c: $(SRCDIR)/delta.c translate |
| 388 | 391 | ./translate $(SRCDIR)/delta.c >delta_.c |
| 389 | 392 | |
| 390 | -delta.o: delta_.c delta.h $(SRCDIR)/config.h | |
| 391 | - $(XTCC) -o delta.o -c delta_.c | |
| 393 | +$(OBJDIR)/delta.o: delta_.c delta.h $(SRCDIR)/config.h | |
| 394 | + $(XTCC) -o $(OBJDIR)/delta.o -c delta_.c | |
| 392 | 395 | |
| 393 | 396 | delta.h: headers |
| 394 | 397 | deltacmd_.c: $(SRCDIR)/deltacmd.c translate |
| 395 | 398 | ./translate $(SRCDIR)/deltacmd.c >deltacmd_.c |
| 396 | 399 | |
| 397 | -deltacmd.o: deltacmd_.c deltacmd.h $(SRCDIR)/config.h | |
| 398 | - $(XTCC) -o deltacmd.o -c deltacmd_.c | |
| 400 | +$(OBJDIR)/deltacmd.o: deltacmd_.c deltacmd.h $(SRCDIR)/config.h | |
| 401 | + $(XTCC) -o $(OBJDIR)/deltacmd.o -c deltacmd_.c | |
| 399 | 402 | |
| 400 | 403 | deltacmd.h: headers |
| 401 | 404 | descendants_.c: $(SRCDIR)/descendants.c translate |
| 402 | 405 | ./translate $(SRCDIR)/descendants.c >descendants_.c |
| 403 | 406 | |
| 404 | -descendants.o: descendants_.c descendants.h $(SRCDIR)/config.h | |
| 405 | - $(XTCC) -o descendants.o -c descendants_.c | |
| 407 | +$(OBJDIR)/descendants.o: descendants_.c descendants.h $(SRCDIR)/config.h | |
| 408 | + $(XTCC) -o $(OBJDIR)/descendants.o -c descendants_.c | |
| 406 | 409 | |
| 407 | 410 | descendants.h: headers |
| 408 | 411 | diff_.c: $(SRCDIR)/diff.c translate |
| 409 | 412 | ./translate $(SRCDIR)/diff.c >diff_.c |
| 410 | 413 | |
| 411 | -diff.o: diff_.c diff.h $(SRCDIR)/config.h | |
| 412 | - $(XTCC) -o diff.o -c diff_.c | |
| 414 | +$(OBJDIR)/diff.o: diff_.c diff.h $(SRCDIR)/config.h | |
| 415 | + $(XTCC) -o $(OBJDIR)/diff.o -c diff_.c | |
| 413 | 416 | |
| 414 | 417 | diff.h: headers |
| 415 | 418 | diffcmd_.c: $(SRCDIR)/diffcmd.c translate |
| 416 | 419 | ./translate $(SRCDIR)/diffcmd.c >diffcmd_.c |
| 417 | 420 | |
| 418 | -diffcmd.o: diffcmd_.c diffcmd.h $(SRCDIR)/config.h | |
| 419 | - $(XTCC) -o diffcmd.o -c diffcmd_.c | |
| 421 | +$(OBJDIR)/diffcmd.o: diffcmd_.c diffcmd.h $(SRCDIR)/config.h | |
| 422 | + $(XTCC) -o $(OBJDIR)/diffcmd.o -c diffcmd_.c | |
| 420 | 423 | |
| 421 | 424 | diffcmd.h: headers |
| 422 | 425 | doc_.c: $(SRCDIR)/doc.c translate |
| 423 | 426 | ./translate $(SRCDIR)/doc.c >doc_.c |
| 424 | 427 | |
| 425 | -doc.o: doc_.c doc.h $(SRCDIR)/config.h | |
| 426 | - $(XTCC) -o doc.o -c doc_.c | |
| 428 | +$(OBJDIR)/doc.o: doc_.c doc.h $(SRCDIR)/config.h | |
| 429 | + $(XTCC) -o $(OBJDIR)/doc.o -c doc_.c | |
| 427 | 430 | |
| 428 | 431 | doc.h: headers |
| 429 | 432 | encode_.c: $(SRCDIR)/encode.c translate |
| 430 | 433 | ./translate $(SRCDIR)/encode.c >encode_.c |
| 431 | 434 | |
| 432 | -encode.o: encode_.c encode.h $(SRCDIR)/config.h | |
| 433 | - $(XTCC) -o encode.o -c encode_.c | |
| 435 | +$(OBJDIR)/encode.o: encode_.c encode.h $(SRCDIR)/config.h | |
| 436 | + $(XTCC) -o $(OBJDIR)/encode.o -c encode_.c | |
| 434 | 437 | |
| 435 | 438 | encode.h: headers |
| 436 | 439 | file_.c: $(SRCDIR)/file.c translate |
| 437 | 440 | ./translate $(SRCDIR)/file.c >file_.c |
| 438 | 441 | |
| 439 | -file.o: file_.c file.h $(SRCDIR)/config.h | |
| 440 | - $(XTCC) -o file.o -c file_.c | |
| 442 | +$(OBJDIR)/file.o: file_.c file.h $(SRCDIR)/config.h | |
| 443 | + $(XTCC) -o $(OBJDIR)/file.o -c file_.c | |
| 441 | 444 | |
| 442 | 445 | file.h: headers |
| 443 | 446 | finfo_.c: $(SRCDIR)/finfo.c translate |
| 444 | 447 | ./translate $(SRCDIR)/finfo.c >finfo_.c |
| 445 | 448 | |
| 446 | -finfo.o: finfo_.c finfo.h $(SRCDIR)/config.h | |
| 447 | - $(XTCC) -o finfo.o -c finfo_.c | |
| 449 | +$(OBJDIR)/finfo.o: finfo_.c finfo.h $(SRCDIR)/config.h | |
| 450 | + $(XTCC) -o $(OBJDIR)/finfo.o -c finfo_.c | |
| 448 | 451 | |
| 449 | 452 | finfo.h: headers |
| 450 | 453 | graph_.c: $(SRCDIR)/graph.c translate |
| 451 | 454 | ./translate $(SRCDIR)/graph.c >graph_.c |
| 452 | 455 | |
| 453 | -graph.o: graph_.c graph.h $(SRCDIR)/config.h | |
| 454 | - $(XTCC) -o graph.o -c graph_.c | |
| 456 | +$(OBJDIR)/graph.o: graph_.c graph.h $(SRCDIR)/config.h | |
| 457 | + $(XTCC) -o $(OBJDIR)/graph.o -c graph_.c | |
| 455 | 458 | |
| 456 | 459 | graph.h: headers |
| 457 | 460 | http_.c: $(SRCDIR)/http.c translate |
| 458 | 461 | ./translate $(SRCDIR)/http.c >http_.c |
| 459 | 462 | |
| 460 | -http.o: http_.c http.h $(SRCDIR)/config.h | |
| 461 | - $(XTCC) -o http.o -c http_.c | |
| 463 | +$(OBJDIR)/http.o: http_.c http.h $(SRCDIR)/config.h | |
| 464 | + $(XTCC) -o $(OBJDIR)/http.o -c http_.c | |
| 462 | 465 | |
| 463 | 466 | http.h: headers |
| 464 | 467 | http_socket_.c: $(SRCDIR)/http_socket.c translate |
| 465 | 468 | ./translate $(SRCDIR)/http_socket.c >http_socket_.c |
| 466 | 469 | |
| 467 | -http_socket.o: http_socket_.c http_socket.h $(SRCDIR)/config.h | |
| 468 | - $(XTCC) -o http_socket.o -c http_socket_.c | |
| 470 | +$(OBJDIR)/http_socket.o: http_socket_.c http_socket.h $(SRCDIR)/config.h | |
| 471 | + $(XTCC) -o $(OBJDIR)/http_socket.o -c http_socket_.c | |
| 469 | 472 | |
| 470 | 473 | http_socket.h: headers |
| 471 | 474 | http_transport_.c: $(SRCDIR)/http_transport.c translate |
| 472 | 475 | ./translate $(SRCDIR)/http_transport.c >http_transport_.c |
| 473 | 476 | |
| 474 | -http_transport.o: http_transport_.c http_transport.h $(SRCDIR)/config.h | |
| 475 | - $(XTCC) -o http_transport.o -c http_transport_.c | |
| 477 | +$(OBJDIR)/http_transport.o: http_transport_.c http_transport.h $(SRCDIR)/config.h | |
| 478 | + $(XTCC) -o $(OBJDIR)/http_transport.o -c http_transport_.c | |
| 476 | 479 | |
| 477 | 480 | http_transport.h: headers |
| 478 | 481 | info_.c: $(SRCDIR)/info.c translate |
| 479 | 482 | ./translate $(SRCDIR)/info.c >info_.c |
| 480 | 483 | |
| 481 | -info.o: info_.c info.h $(SRCDIR)/config.h | |
| 482 | - $(XTCC) -o info.o -c info_.c | |
| 484 | +$(OBJDIR)/info.o: info_.c info.h $(SRCDIR)/config.h | |
| 485 | + $(XTCC) -o $(OBJDIR)/info.o -c info_.c | |
| 483 | 486 | |
| 484 | 487 | info.h: headers |
| 485 | 488 | login_.c: $(SRCDIR)/login.c translate |
| 486 | 489 | ./translate $(SRCDIR)/login.c >login_.c |
| 487 | 490 | |
| 488 | -login.o: login_.c login.h $(SRCDIR)/config.h | |
| 489 | - $(XTCC) -o login.o -c login_.c | |
| 491 | +$(OBJDIR)/login.o: login_.c login.h $(SRCDIR)/config.h | |
| 492 | + $(XTCC) -o $(OBJDIR)/login.o -c login_.c | |
| 490 | 493 | |
| 491 | 494 | login.h: headers |
| 492 | 495 | main_.c: $(SRCDIR)/main.c translate |
| 493 | 496 | ./translate $(SRCDIR)/main.c >main_.c |
| 494 | 497 | |
| 495 | -main.o: main_.c main.h page_index.h $(SRCDIR)/config.h | |
| 496 | - $(XTCC) -o main.o -c main_.c | |
| 498 | +$(OBJDIR)/main.o: main_.c main.h page_index.h $(SRCDIR)/config.h | |
| 499 | + $(XTCC) -o $(OBJDIR)/main.o -c main_.c | |
| 497 | 500 | |
| 498 | 501 | main.h: headers |
| 499 | 502 | manifest_.c: $(SRCDIR)/manifest.c translate |
| 500 | 503 | ./translate $(SRCDIR)/manifest.c >manifest_.c |
| 501 | 504 | |
| 502 | -manifest.o: manifest_.c manifest.h $(SRCDIR)/config.h | |
| 503 | - $(XTCC) -o manifest.o -c manifest_.c | |
| 505 | +$(OBJDIR)/manifest.o: manifest_.c manifest.h $(SRCDIR)/config.h | |
| 506 | + $(XTCC) -o $(OBJDIR)/manifest.o -c manifest_.c | |
| 504 | 507 | |
| 505 | 508 | manifest.h: headers |
| 506 | 509 | md5_.c: $(SRCDIR)/md5.c translate |
| 507 | 510 | ./translate $(SRCDIR)/md5.c >md5_.c |
| 508 | 511 | |
| 509 | -md5.o: md5_.c md5.h $(SRCDIR)/config.h | |
| 510 | - $(XTCC) -o md5.o -c md5_.c | |
| 512 | +$(OBJDIR)/md5.o: md5_.c md5.h $(SRCDIR)/config.h | |
| 513 | + $(XTCC) -o $(OBJDIR)/md5.o -c md5_.c | |
| 511 | 514 | |
| 512 | 515 | md5.h: headers |
| 513 | 516 | merge_.c: $(SRCDIR)/merge.c translate |
| 514 | 517 | ./translate $(SRCDIR)/merge.c >merge_.c |
| 515 | 518 | |
| 516 | -merge.o: merge_.c merge.h $(SRCDIR)/config.h | |
| 517 | - $(XTCC) -o merge.o -c merge_.c | |
| 519 | +$(OBJDIR)/merge.o: merge_.c merge.h $(SRCDIR)/config.h | |
| 520 | + $(XTCC) -o $(OBJDIR)/merge.o -c merge_.c | |
| 518 | 521 | |
| 519 | 522 | merge.h: headers |
| 520 | 523 | merge3_.c: $(SRCDIR)/merge3.c translate |
| 521 | 524 | ./translate $(SRCDIR)/merge3.c >merge3_.c |
| 522 | 525 | |
| 523 | -merge3.o: merge3_.c merge3.h $(SRCDIR)/config.h | |
| 524 | - $(XTCC) -o merge3.o -c merge3_.c | |
| 526 | +$(OBJDIR)/merge3.o: merge3_.c merge3.h $(SRCDIR)/config.h | |
| 527 | + $(XTCC) -o $(OBJDIR)/merge3.o -c merge3_.c | |
| 525 | 528 | |
| 526 | 529 | merge3.h: headers |
| 527 | 530 | name_.c: $(SRCDIR)/name.c translate |
| 528 | 531 | ./translate $(SRCDIR)/name.c >name_.c |
| 529 | 532 | |
| 530 | -name.o: name_.c name.h $(SRCDIR)/config.h | |
| 531 | - $(XTCC) -o name.o -c name_.c | |
| 533 | +$(OBJDIR)/name.o: name_.c name.h $(SRCDIR)/config.h | |
| 534 | + $(XTCC) -o $(OBJDIR)/name.o -c name_.c | |
| 532 | 535 | |
| 533 | 536 | name.h: headers |
| 534 | 537 | pivot_.c: $(SRCDIR)/pivot.c translate |
| 535 | 538 | ./translate $(SRCDIR)/pivot.c >pivot_.c |
| 536 | 539 | |
| 537 | -pivot.o: pivot_.c pivot.h $(SRCDIR)/config.h | |
| 538 | - $(XTCC) -o pivot.o -c pivot_.c | |
| 540 | +$(OBJDIR)/pivot.o: pivot_.c pivot.h $(SRCDIR)/config.h | |
| 541 | + $(XTCC) -o $(OBJDIR)/pivot.o -c pivot_.c | |
| 539 | 542 | |
| 540 | 543 | pivot.h: headers |
| 541 | 544 | pqueue_.c: $(SRCDIR)/pqueue.c translate |
| 542 | 545 | ./translate $(SRCDIR)/pqueue.c >pqueue_.c |
| 543 | 546 | |
| 544 | -pqueue.o: pqueue_.c pqueue.h $(SRCDIR)/config.h | |
| 545 | - $(XTCC) -o pqueue.o -c pqueue_.c | |
| 547 | +$(OBJDIR)/pqueue.o: pqueue_.c pqueue.h $(SRCDIR)/config.h | |
| 548 | + $(XTCC) -o $(OBJDIR)/pqueue.o -c pqueue_.c | |
| 546 | 549 | |
| 547 | 550 | pqueue.h: headers |
| 548 | 551 | printf_.c: $(SRCDIR)/printf.c translate |
| 549 | 552 | ./translate $(SRCDIR)/printf.c >printf_.c |
| 550 | 553 | |
| 551 | -printf.o: printf_.c printf.h $(SRCDIR)/config.h | |
| 552 | - $(XTCC) -o printf.o -c printf_.c | |
| 554 | +$(OBJDIR)/printf.o: printf_.c printf.h $(SRCDIR)/config.h | |
| 555 | + $(XTCC) -o $(OBJDIR)/printf.o -c printf_.c | |
| 553 | 556 | |
| 554 | 557 | printf.h: headers |
| 555 | 558 | rebuild_.c: $(SRCDIR)/rebuild.c translate |
| 556 | 559 | ./translate $(SRCDIR)/rebuild.c >rebuild_.c |
| 557 | 560 | |
| 558 | -rebuild.o: rebuild_.c rebuild.h $(SRCDIR)/config.h | |
| 559 | - $(XTCC) -o rebuild.o -c rebuild_.c | |
| 561 | +$(OBJDIR)/rebuild.o: rebuild_.c rebuild.h $(SRCDIR)/config.h | |
| 562 | + $(XTCC) -o $(OBJDIR)/rebuild.o -c rebuild_.c | |
| 560 | 563 | |
| 561 | 564 | rebuild.h: headers |
| 562 | 565 | report_.c: $(SRCDIR)/report.c translate |
| 563 | 566 | ./translate $(SRCDIR)/report.c >report_.c |
| 564 | 567 | |
| 565 | -report.o: report_.c report.h $(SRCDIR)/config.h | |
| 566 | - $(XTCC) -o report.o -c report_.c | |
| 568 | +$(OBJDIR)/report.o: report_.c report.h $(SRCDIR)/config.h | |
| 569 | + $(XTCC) -o $(OBJDIR)/report.o -c report_.c | |
| 567 | 570 | |
| 568 | 571 | report.h: headers |
| 569 | 572 | rss_.c: $(SRCDIR)/rss.c translate |
| 570 | 573 | ./translate $(SRCDIR)/rss.c >rss_.c |
| 571 | 574 | |
| 572 | -rss.o: rss_.c rss.h $(SRCDIR)/config.h | |
| 573 | - $(XTCC) -o rss.o -c rss_.c | |
| 575 | +$(OBJDIR)/rss.o: rss_.c rss.h $(SRCDIR)/config.h | |
| 576 | + $(XTCC) -o $(OBJDIR)/rss.o -c rss_.c | |
| 574 | 577 | |
| 575 | 578 | rss.h: headers |
| 576 | 579 | schema_.c: $(SRCDIR)/schema.c translate |
| 577 | 580 | ./translate $(SRCDIR)/schema.c >schema_.c |
| 578 | 581 | |
| 579 | -schema.o: schema_.c schema.h $(SRCDIR)/config.h | |
| 580 | - $(XTCC) -o schema.o -c schema_.c | |
| 582 | +$(OBJDIR)/schema.o: schema_.c schema.h $(SRCDIR)/config.h | |
| 583 | + $(XTCC) -o $(OBJDIR)/schema.o -c schema_.c | |
| 581 | 584 | |
| 582 | 585 | schema.h: headers |
| 583 | 586 | search_.c: $(SRCDIR)/search.c translate |
| 584 | 587 | ./translate $(SRCDIR)/search.c >search_.c |
| 585 | 588 | |
| 586 | -search.o: search_.c search.h $(SRCDIR)/config.h | |
| 587 | - $(XTCC) -o search.o -c search_.c | |
| 589 | +$(OBJDIR)/search.o: search_.c search.h $(SRCDIR)/config.h | |
| 590 | + $(XTCC) -o $(OBJDIR)/search.o -c search_.c | |
| 588 | 591 | |
| 589 | 592 | search.h: headers |
| 590 | 593 | setup_.c: $(SRCDIR)/setup.c translate |
| 591 | 594 | ./translate $(SRCDIR)/setup.c >setup_.c |
| 592 | 595 | |
| 593 | -setup.o: setup_.c setup.h $(SRCDIR)/config.h | |
| 594 | - $(XTCC) -o setup.o -c setup_.c | |
| 596 | +$(OBJDIR)/setup.o: setup_.c setup.h $(SRCDIR)/config.h | |
| 597 | + $(XTCC) -o $(OBJDIR)/setup.o -c setup_.c | |
| 595 | 598 | |
| 596 | 599 | setup.h: headers |
| 597 | 600 | sha1_.c: $(SRCDIR)/sha1.c translate |
| 598 | 601 | ./translate $(SRCDIR)/sha1.c >sha1_.c |
| 599 | 602 | |
| 600 | -sha1.o: sha1_.c sha1.h $(SRCDIR)/config.h | |
| 601 | - $(XTCC) -o sha1.o -c sha1_.c | |
| 603 | +$(OBJDIR)/sha1.o: sha1_.c sha1.h $(SRCDIR)/config.h | |
| 604 | + $(XTCC) -o $(OBJDIR)/sha1.o -c sha1_.c | |
| 602 | 605 | |
| 603 | 606 | sha1.h: headers |
| 604 | 607 | shun_.c: $(SRCDIR)/shun.c translate |
| 605 | 608 | ./translate $(SRCDIR)/shun.c >shun_.c |
| 606 | 609 | |
| 607 | -shun.o: shun_.c shun.h $(SRCDIR)/config.h | |
| 608 | - $(XTCC) -o shun.o -c shun_.c | |
| 610 | +$(OBJDIR)/shun.o: shun_.c shun.h $(SRCDIR)/config.h | |
| 611 | + $(XTCC) -o $(OBJDIR)/shun.o -c shun_.c | |
| 609 | 612 | |
| 610 | 613 | shun.h: headers |
| 611 | 614 | skins_.c: $(SRCDIR)/skins.c translate |
| 612 | 615 | ./translate $(SRCDIR)/skins.c >skins_.c |
| 613 | 616 | |
| 614 | -skins.o: skins_.c skins.h $(SRCDIR)/config.h | |
| 615 | - $(XTCC) -o skins.o -c skins_.c | |
| 617 | +$(OBJDIR)/skins.o: skins_.c skins.h $(SRCDIR)/config.h | |
| 618 | + $(XTCC) -o $(OBJDIR)/skins.o -c skins_.c | |
| 616 | 619 | |
| 617 | 620 | skins.h: headers |
| 618 | 621 | stat_.c: $(SRCDIR)/stat.c translate |
| 619 | 622 | ./translate $(SRCDIR)/stat.c >stat_.c |
| 620 | 623 | |
| 621 | -stat.o: stat_.c stat.h $(SRCDIR)/config.h | |
| 622 | - $(XTCC) -o stat.o -c stat_.c | |
| 624 | +$(OBJDIR)/stat.o: stat_.c stat.h $(SRCDIR)/config.h | |
| 625 | + $(XTCC) -o $(OBJDIR)/stat.o -c stat_.c | |
| 623 | 626 | |
| 624 | 627 | stat.h: headers |
| 625 | 628 | style_.c: $(SRCDIR)/style.c translate |
| 626 | 629 | ./translate $(SRCDIR)/style.c >style_.c |
| 627 | 630 | |
| 628 | -style.o: style_.c style.h $(SRCDIR)/config.h | |
| 629 | - $(XTCC) -o style.o -c style_.c | |
| 631 | +$(OBJDIR)/style.o: style_.c style.h $(SRCDIR)/config.h | |
| 632 | + $(XTCC) -o $(OBJDIR)/style.o -c style_.c | |
| 630 | 633 | |
| 631 | 634 | style.h: headers |
| 632 | 635 | sync_.c: $(SRCDIR)/sync.c translate |
| 633 | 636 | ./translate $(SRCDIR)/sync.c >sync_.c |
| 634 | 637 | |
| 635 | -sync.o: sync_.c sync.h $(SRCDIR)/config.h | |
| 636 | - $(XTCC) -o sync.o -c sync_.c | |
| 638 | +$(OBJDIR)/sync.o: sync_.c sync.h $(SRCDIR)/config.h | |
| 639 | + $(XTCC) -o $(OBJDIR)/sync.o -c sync_.c | |
| 637 | 640 | |
| 638 | 641 | sync.h: headers |
| 639 | 642 | tag_.c: $(SRCDIR)/tag.c translate |
| 640 | 643 | ./translate $(SRCDIR)/tag.c >tag_.c |
| 641 | 644 | |
| 642 | -tag.o: tag_.c tag.h $(SRCDIR)/config.h | |
| 643 | - $(XTCC) -o tag.o -c tag_.c | |
| 645 | +$(OBJDIR)/tag.o: tag_.c tag.h $(SRCDIR)/config.h | |
| 646 | + $(XTCC) -o $(OBJDIR)/tag.o -c tag_.c | |
| 644 | 647 | |
| 645 | 648 | tag.h: headers |
| 646 | 649 | th_main_.c: $(SRCDIR)/th_main.c translate |
| 647 | 650 | ./translate $(SRCDIR)/th_main.c >th_main_.c |
| 648 | 651 | |
| 649 | -th_main.o: th_main_.c th_main.h $(SRCDIR)/config.h | |
| 650 | - $(XTCC) -o th_main.o -c th_main_.c | |
| 652 | +$(OBJDIR)/th_main.o: th_main_.c th_main.h $(SRCDIR)/config.h | |
| 653 | + $(XTCC) -o $(OBJDIR)/th_main.o -c th_main_.c | |
| 651 | 654 | |
| 652 | 655 | th_main.h: headers |
| 653 | 656 | timeline_.c: $(SRCDIR)/timeline.c translate |
| 654 | 657 | ./translate $(SRCDIR)/timeline.c >timeline_.c |
| 655 | 658 | |
| 656 | -timeline.o: timeline_.c timeline.h $(SRCDIR)/config.h | |
| 657 | - $(XTCC) -o timeline.o -c timeline_.c | |
| 659 | +$(OBJDIR)/timeline.o: timeline_.c timeline.h $(SRCDIR)/config.h | |
| 660 | + $(XTCC) -o $(OBJDIR)/timeline.o -c timeline_.c | |
| 658 | 661 | |
| 659 | 662 | timeline.h: headers |
| 660 | 663 | tkt_.c: $(SRCDIR)/tkt.c translate |
| 661 | 664 | ./translate $(SRCDIR)/tkt.c >tkt_.c |
| 662 | 665 | |
| 663 | -tkt.o: tkt_.c tkt.h $(SRCDIR)/config.h | |
| 664 | - $(XTCC) -o tkt.o -c tkt_.c | |
| 666 | +$(OBJDIR)/tkt.o: tkt_.c tkt.h $(SRCDIR)/config.h | |
| 667 | + $(XTCC) -o $(OBJDIR)/tkt.o -c tkt_.c | |
| 665 | 668 | |
| 666 | 669 | tkt.h: headers |
| 667 | 670 | tktsetup_.c: $(SRCDIR)/tktsetup.c translate |
| 668 | 671 | ./translate $(SRCDIR)/tktsetup.c >tktsetup_.c |
| 669 | 672 | |
| 670 | -tktsetup.o: tktsetup_.c tktsetup.h $(SRCDIR)/config.h | |
| 671 | - $(XTCC) -o tktsetup.o -c tktsetup_.c | |
| 673 | +$(OBJDIR)/tktsetup.o: tktsetup_.c tktsetup.h $(SRCDIR)/config.h | |
| 674 | + $(XTCC) -o $(OBJDIR)/tktsetup.o -c tktsetup_.c | |
| 672 | 675 | |
| 673 | 676 | tktsetup.h: headers |
| 674 | 677 | undo_.c: $(SRCDIR)/undo.c translate |
| 675 | 678 | ./translate $(SRCDIR)/undo.c >undo_.c |
| 676 | 679 | |
| 677 | -undo.o: undo_.c undo.h $(SRCDIR)/config.h | |
| 678 | - $(XTCC) -o undo.o -c undo_.c | |
| 680 | +$(OBJDIR)/undo.o: undo_.c undo.h $(SRCDIR)/config.h | |
| 681 | + $(XTCC) -o $(OBJDIR)/undo.o -c undo_.c | |
| 679 | 682 | |
| 680 | 683 | undo.h: headers |
| 681 | 684 | update_.c: $(SRCDIR)/update.c translate |
| 682 | 685 | ./translate $(SRCDIR)/update.c >update_.c |
| 683 | 686 | |
| 684 | -update.o: update_.c update.h $(SRCDIR)/config.h | |
| 685 | - $(XTCC) -o update.o -c update_.c | |
| 687 | +$(OBJDIR)/update.o: update_.c update.h $(SRCDIR)/config.h | |
| 688 | + $(XTCC) -o $(OBJDIR)/update.o -c update_.c | |
| 686 | 689 | |
| 687 | 690 | update.h: headers |
| 688 | 691 | url_.c: $(SRCDIR)/url.c translate |
| 689 | 692 | ./translate $(SRCDIR)/url.c >url_.c |
| 690 | 693 | |
| 691 | -url.o: url_.c url.h $(SRCDIR)/config.h | |
| 692 | - $(XTCC) -o url.o -c url_.c | |
| 694 | +$(OBJDIR)/url.o: url_.c url.h $(SRCDIR)/config.h | |
| 695 | + $(XTCC) -o $(OBJDIR)/url.o -c url_.c | |
| 693 | 696 | |
| 694 | 697 | url.h: headers |
| 695 | 698 | user_.c: $(SRCDIR)/user.c translate |
| 696 | 699 | ./translate $(SRCDIR)/user.c >user_.c |
| 697 | 700 | |
| 698 | -user.o: user_.c user.h $(SRCDIR)/config.h | |
| 699 | - $(XTCC) -o user.o -c user_.c | |
| 701 | +$(OBJDIR)/user.o: user_.c user.h $(SRCDIR)/config.h | |
| 702 | + $(XTCC) -o $(OBJDIR)/user.o -c user_.c | |
| 700 | 703 | |
| 701 | 704 | user.h: headers |
| 702 | 705 | verify_.c: $(SRCDIR)/verify.c translate |
| 703 | 706 | ./translate $(SRCDIR)/verify.c >verify_.c |
| 704 | 707 | |
| 705 | -verify.o: verify_.c verify.h $(SRCDIR)/config.h | |
| 706 | - $(XTCC) -o verify.o -c verify_.c | |
| 708 | +$(OBJDIR)/verify.o: verify_.c verify.h $(SRCDIR)/config.h | |
| 709 | + $(XTCC) -o $(OBJDIR)/verify.o -c verify_.c | |
| 707 | 710 | |
| 708 | 711 | verify.h: headers |
| 709 | 712 | vfile_.c: $(SRCDIR)/vfile.c translate |
| 710 | 713 | ./translate $(SRCDIR)/vfile.c >vfile_.c |
| 711 | 714 | |
| 712 | -vfile.o: vfile_.c vfile.h $(SRCDIR)/config.h | |
| 713 | - $(XTCC) -o vfile.o -c vfile_.c | |
| 715 | +$(OBJDIR)/vfile.o: vfile_.c vfile.h $(SRCDIR)/config.h | |
| 716 | + $(XTCC) -o $(OBJDIR)/vfile.o -c vfile_.c | |
| 714 | 717 | |
| 715 | 718 | vfile.h: headers |
| 716 | 719 | wiki_.c: $(SRCDIR)/wiki.c translate |
| 717 | 720 | ./translate $(SRCDIR)/wiki.c >wiki_.c |
| 718 | 721 | |
| 719 | -wiki.o: wiki_.c wiki.h $(SRCDIR)/config.h | |
| 720 | - $(XTCC) -o wiki.o -c wiki_.c | |
| 722 | +$(OBJDIR)/wiki.o: wiki_.c wiki.h $(SRCDIR)/config.h | |
| 723 | + $(XTCC) -o $(OBJDIR)/wiki.o -c wiki_.c | |
| 721 | 724 | |
| 722 | 725 | wiki.h: headers |
| 723 | 726 | wikiformat_.c: $(SRCDIR)/wikiformat.c translate |
| 724 | 727 | ./translate $(SRCDIR)/wikiformat.c >wikiformat_.c |
| 725 | 728 | |
| 726 | -wikiformat.o: wikiformat_.c wikiformat.h $(SRCDIR)/config.h | |
| 727 | - $(XTCC) -o wikiformat.o -c wikiformat_.c | |
| 729 | +$(OBJDIR)/wikiformat.o: wikiformat_.c wikiformat.h $(SRCDIR)/config.h | |
| 730 | + $(XTCC) -o $(OBJDIR)/wikiformat.o -c wikiformat_.c | |
| 728 | 731 | |
| 729 | 732 | wikiformat.h: headers |
| 730 | 733 | winhttp_.c: $(SRCDIR)/winhttp.c translate |
| 731 | 734 | ./translate $(SRCDIR)/winhttp.c >winhttp_.c |
| 732 | 735 | |
| 733 | -winhttp.o: winhttp_.c winhttp.h $(SRCDIR)/config.h | |
| 734 | - $(XTCC) -o winhttp.o -c winhttp_.c | |
| 736 | +$(OBJDIR)/winhttp.o: winhttp_.c winhttp.h $(SRCDIR)/config.h | |
| 737 | + $(XTCC) -o $(OBJDIR)/winhttp.o -c winhttp_.c | |
| 735 | 738 | |
| 736 | 739 | winhttp.h: headers |
| 737 | 740 | xfer_.c: $(SRCDIR)/xfer.c translate |
| 738 | 741 | ./translate $(SRCDIR)/xfer.c >xfer_.c |
| 739 | 742 | |
| 740 | -xfer.o: xfer_.c xfer.h $(SRCDIR)/config.h | |
| 741 | - $(XTCC) -o xfer.o -c xfer_.c | |
| 743 | +$(OBJDIR)/xfer.o: xfer_.c xfer.h $(SRCDIR)/config.h | |
| 744 | + $(XTCC) -o $(OBJDIR)/xfer.o -c xfer_.c | |
| 742 | 745 | |
| 743 | 746 | xfer.h: headers |
| 744 | 747 | zip_.c: $(SRCDIR)/zip.c translate |
| 745 | 748 | ./translate $(SRCDIR)/zip.c >zip_.c |
| 746 | 749 | |
| 747 | -zip.o: zip_.c zip.h $(SRCDIR)/config.h | |
| 748 | - $(XTCC) -o zip.o -c zip_.c | |
| 750 | +$(OBJDIR)/zip.o: zip_.c zip.h $(SRCDIR)/config.h | |
| 751 | + $(XTCC) -o $(OBJDIR)/zip.o -c zip_.c | |
| 749 | 752 | |
| 750 | 753 | zip.h: headers |
| 751 | -sqlite3.o: $(SRCDIR)/sqlite3.c | |
| 752 | - $(XTCC) -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -Dlocaltime=fossil_localtime -c $(SRCDIR)/sqlite3.c -o sqlite3.o | |
| 753 | - | |
| 754 | -th.o: $(SRCDIR)/th.c | |
| 755 | - $(XTCC) -I$(SRCDIR) -c $(SRCDIR)/th.c -o th.o | |
| 756 | - | |
| 757 | -th_lang.o: $(SRCDIR)/th_lang.c | |
| 758 | - $(XTCC) -I$(SRCDIR) -c $(SRCDIR)/th_lang.c -o th_lang.o | |
| 754 | +$(OBJDIR)/sqlite3.o: $(SRCDIR)/sqlite3.c | |
| 755 | + $(XTCC) -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -Dlocaltime=fossil_localtime -c $(SRCDIR)/sqlite3.c -o $(OBJDIR)/sqlite3.o | |
| 756 | + | |
| 757 | +$(OBJDIR)/th.o: $(SRCDIR)/th.c | |
| 758 | + $(XTCC) -I$(SRCDIR) -c $(SRCDIR)/th.c -o $(OBJDIR)/th.o | |
| 759 | + | |
| 760 | +$(OBJDIR)/th_lang.o: $(SRCDIR)/th_lang.c | |
| 761 | + $(XTCC) -I$(SRCDIR) -c $(SRCDIR)/th_lang.c -o $(OBJDIR)/th_lang.o | |
| 759 | 762 | |
| 760 | 763 |
| --- src/main.mk | |
| +++ src/main.mk | |
| @@ -151,88 +151,91 @@ | |
| 151 | winhttp_.c \ |
| 152 | xfer_.c \ |
| 153 | zip_.c |
| 154 | |
| 155 | OBJ = \ |
| 156 | add.o \ |
| 157 | allrepo.o \ |
| 158 | bag.o \ |
| 159 | blob.o \ |
| 160 | branch.o \ |
| 161 | browse.o \ |
| 162 | captcha.o \ |
| 163 | cgi.o \ |
| 164 | checkin.o \ |
| 165 | checkout.o \ |
| 166 | clearsign.o \ |
| 167 | clone.o \ |
| 168 | comformat.o \ |
| 169 | configure.o \ |
| 170 | content.o \ |
| 171 | db.o \ |
| 172 | delta.o \ |
| 173 | deltacmd.o \ |
| 174 | descendants.o \ |
| 175 | diff.o \ |
| 176 | diffcmd.o \ |
| 177 | doc.o \ |
| 178 | encode.o \ |
| 179 | file.o \ |
| 180 | finfo.o \ |
| 181 | graph.o \ |
| 182 | http.o \ |
| 183 | http_socket.o \ |
| 184 | http_transport.o \ |
| 185 | info.o \ |
| 186 | login.o \ |
| 187 | main.o \ |
| 188 | manifest.o \ |
| 189 | md5.o \ |
| 190 | merge.o \ |
| 191 | merge3.o \ |
| 192 | name.o \ |
| 193 | pivot.o \ |
| 194 | pqueue.o \ |
| 195 | printf.o \ |
| 196 | rebuild.o \ |
| 197 | report.o \ |
| 198 | rss.o \ |
| 199 | schema.o \ |
| 200 | search.o \ |
| 201 | setup.o \ |
| 202 | sha1.o \ |
| 203 | shun.o \ |
| 204 | skins.o \ |
| 205 | stat.o \ |
| 206 | style.o \ |
| 207 | sync.o \ |
| 208 | tag.o \ |
| 209 | th_main.o \ |
| 210 | timeline.o \ |
| 211 | tkt.o \ |
| 212 | tktsetup.o \ |
| 213 | undo.o \ |
| 214 | update.o \ |
| 215 | url.o \ |
| 216 | user.o \ |
| 217 | verify.o \ |
| 218 | vfile.o \ |
| 219 | wiki.o \ |
| 220 | wikiformat.o \ |
| 221 | winhttp.o \ |
| 222 | xfer.o \ |
| 223 | zip.o |
| 224 | |
| 225 | APPNAME = fossil$(E) |
| 226 | |
| 227 | |
| 228 | |
| 229 | all: $(APPNAME) |
| 230 | |
| 231 | install: $(APPNAME) |
| 232 | mv $(APPNAME) $(INSTALLDIR) |
| 233 | |
| 234 | translate: $(SRCDIR)/translate.c |
| 235 | $(BCC) -o translate $(SRCDIR)/translate.c |
| 236 | |
| 237 | makeheaders: $(SRCDIR)/makeheaders.c |
| 238 | $(BCC) -o makeheaders $(SRCDIR)/makeheaders.c |
| @@ -249,21 +252,21 @@ | |
| 249 | VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest |
| 250 | awk '{ printf "#define MANIFEST_UUID \"%s\"\n", $$1}' $(SRCDIR)/../manifest.uuid >VERSION.h |
| 251 | awk '{ printf "#define MANIFEST_VERSION \"[%.10s]\"\n", $$1}' $(SRCDIR)/../manifest.uuid >>VERSION.h |
| 252 | awk '$$1=="D"{printf "#define MANIFEST_DATE \"%s %s\"\n", substr($$2,1,10),substr($$2,12)}' $(SRCDIR)/../manifest >>VERSION.h |
| 253 | |
| 254 | $(APPNAME): headers $(OBJ) sqlite3.o th.o th_lang.o |
| 255 | $(TCC) -o $(APPNAME) $(OBJ) sqlite3.o th.o th_lang.o $(LIB) |
| 256 | |
| 257 | # This rule prevents make from using its default rules to try build |
| 258 | # an executable named "manifest" out of the file named "manifest.c" |
| 259 | # |
| 260 | $(SRCDIR)/../manifest: |
| 261 | # noop |
| 262 | |
| 263 | clean: |
| 264 | rm -f *.o *_.c $(APPNAME) VERSION.h |
| 265 | rm -f translate makeheaders mkindex page_index.h headers |
| 266 | rm -f add.h allrepo.h bag.h blob.h branch.h browse.h captcha.h cgi.h checkin.h checkout.h clearsign.h clone.h comformat.h configure.h content.h db.h delta.h deltacmd.h descendants.h diff.h diffcmd.h doc.h encode.h file.h finfo.h graph.h http.h http_socket.h http_transport.h info.h login.h main.h manifest.h md5.h merge.h merge3.h name.h pivot.h pqueue.h printf.h rebuild.h report.h rss.h schema.h search.h setup.h sha1.h shun.h skins.h stat.h style.h sync.h tag.h th_main.h timeline.h tkt.h tktsetup.h undo.h update.h url.h user.h verify.h vfile.h wiki.h wikiformat.h winhttp.h xfer.h zip.h |
| 267 | |
| 268 | page_index.h: $(TRANS_SRC) mkindex |
| 269 | ./mkindex $(TRANS_SRC) >$@ |
| @@ -273,487 +276,487 @@ | |
| 273 | headers: Makefile |
| 274 | Makefile: |
| 275 | add_.c: $(SRCDIR)/add.c translate |
| 276 | ./translate $(SRCDIR)/add.c >add_.c |
| 277 | |
| 278 | add.o: add_.c add.h $(SRCDIR)/config.h |
| 279 | $(XTCC) -o add.o -c add_.c |
| 280 | |
| 281 | add.h: headers |
| 282 | allrepo_.c: $(SRCDIR)/allrepo.c translate |
| 283 | ./translate $(SRCDIR)/allrepo.c >allrepo_.c |
| 284 | |
| 285 | allrepo.o: allrepo_.c allrepo.h $(SRCDIR)/config.h |
| 286 | $(XTCC) -o allrepo.o -c allrepo_.c |
| 287 | |
| 288 | allrepo.h: headers |
| 289 | bag_.c: $(SRCDIR)/bag.c translate |
| 290 | ./translate $(SRCDIR)/bag.c >bag_.c |
| 291 | |
| 292 | bag.o: bag_.c bag.h $(SRCDIR)/config.h |
| 293 | $(XTCC) -o bag.o -c bag_.c |
| 294 | |
| 295 | bag.h: headers |
| 296 | blob_.c: $(SRCDIR)/blob.c translate |
| 297 | ./translate $(SRCDIR)/blob.c >blob_.c |
| 298 | |
| 299 | blob.o: blob_.c blob.h $(SRCDIR)/config.h |
| 300 | $(XTCC) -o blob.o -c blob_.c |
| 301 | |
| 302 | blob.h: headers |
| 303 | branch_.c: $(SRCDIR)/branch.c translate |
| 304 | ./translate $(SRCDIR)/branch.c >branch_.c |
| 305 | |
| 306 | branch.o: branch_.c branch.h $(SRCDIR)/config.h |
| 307 | $(XTCC) -o branch.o -c branch_.c |
| 308 | |
| 309 | branch.h: headers |
| 310 | browse_.c: $(SRCDIR)/browse.c translate |
| 311 | ./translate $(SRCDIR)/browse.c >browse_.c |
| 312 | |
| 313 | browse.o: browse_.c browse.h $(SRCDIR)/config.h |
| 314 | $(XTCC) -o browse.o -c browse_.c |
| 315 | |
| 316 | browse.h: headers |
| 317 | captcha_.c: $(SRCDIR)/captcha.c translate |
| 318 | ./translate $(SRCDIR)/captcha.c >captcha_.c |
| 319 | |
| 320 | captcha.o: captcha_.c captcha.h $(SRCDIR)/config.h |
| 321 | $(XTCC) -o captcha.o -c captcha_.c |
| 322 | |
| 323 | captcha.h: headers |
| 324 | cgi_.c: $(SRCDIR)/cgi.c translate |
| 325 | ./translate $(SRCDIR)/cgi.c >cgi_.c |
| 326 | |
| 327 | cgi.o: cgi_.c cgi.h $(SRCDIR)/config.h |
| 328 | $(XTCC) -o cgi.o -c cgi_.c |
| 329 | |
| 330 | cgi.h: headers |
| 331 | checkin_.c: $(SRCDIR)/checkin.c translate |
| 332 | ./translate $(SRCDIR)/checkin.c >checkin_.c |
| 333 | |
| 334 | checkin.o: checkin_.c checkin.h $(SRCDIR)/config.h |
| 335 | $(XTCC) -o checkin.o -c checkin_.c |
| 336 | |
| 337 | checkin.h: headers |
| 338 | checkout_.c: $(SRCDIR)/checkout.c translate |
| 339 | ./translate $(SRCDIR)/checkout.c >checkout_.c |
| 340 | |
| 341 | checkout.o: checkout_.c checkout.h $(SRCDIR)/config.h |
| 342 | $(XTCC) -o checkout.o -c checkout_.c |
| 343 | |
| 344 | checkout.h: headers |
| 345 | clearsign_.c: $(SRCDIR)/clearsign.c translate |
| 346 | ./translate $(SRCDIR)/clearsign.c >clearsign_.c |
| 347 | |
| 348 | clearsign.o: clearsign_.c clearsign.h $(SRCDIR)/config.h |
| 349 | $(XTCC) -o clearsign.o -c clearsign_.c |
| 350 | |
| 351 | clearsign.h: headers |
| 352 | clone_.c: $(SRCDIR)/clone.c translate |
| 353 | ./translate $(SRCDIR)/clone.c >clone_.c |
| 354 | |
| 355 | clone.o: clone_.c clone.h $(SRCDIR)/config.h |
| 356 | $(XTCC) -o clone.o -c clone_.c |
| 357 | |
| 358 | clone.h: headers |
| 359 | comformat_.c: $(SRCDIR)/comformat.c translate |
| 360 | ./translate $(SRCDIR)/comformat.c >comformat_.c |
| 361 | |
| 362 | comformat.o: comformat_.c comformat.h $(SRCDIR)/config.h |
| 363 | $(XTCC) -o comformat.o -c comformat_.c |
| 364 | |
| 365 | comformat.h: headers |
| 366 | configure_.c: $(SRCDIR)/configure.c translate |
| 367 | ./translate $(SRCDIR)/configure.c >configure_.c |
| 368 | |
| 369 | configure.o: configure_.c configure.h $(SRCDIR)/config.h |
| 370 | $(XTCC) -o configure.o -c configure_.c |
| 371 | |
| 372 | configure.h: headers |
| 373 | content_.c: $(SRCDIR)/content.c translate |
| 374 | ./translate $(SRCDIR)/content.c >content_.c |
| 375 | |
| 376 | content.o: content_.c content.h $(SRCDIR)/config.h |
| 377 | $(XTCC) -o content.o -c content_.c |
| 378 | |
| 379 | content.h: headers |
| 380 | db_.c: $(SRCDIR)/db.c translate |
| 381 | ./translate $(SRCDIR)/db.c >db_.c |
| 382 | |
| 383 | db.o: db_.c db.h $(SRCDIR)/config.h |
| 384 | $(XTCC) -o db.o -c db_.c |
| 385 | |
| 386 | db.h: headers |
| 387 | delta_.c: $(SRCDIR)/delta.c translate |
| 388 | ./translate $(SRCDIR)/delta.c >delta_.c |
| 389 | |
| 390 | delta.o: delta_.c delta.h $(SRCDIR)/config.h |
| 391 | $(XTCC) -o delta.o -c delta_.c |
| 392 | |
| 393 | delta.h: headers |
| 394 | deltacmd_.c: $(SRCDIR)/deltacmd.c translate |
| 395 | ./translate $(SRCDIR)/deltacmd.c >deltacmd_.c |
| 396 | |
| 397 | deltacmd.o: deltacmd_.c deltacmd.h $(SRCDIR)/config.h |
| 398 | $(XTCC) -o deltacmd.o -c deltacmd_.c |
| 399 | |
| 400 | deltacmd.h: headers |
| 401 | descendants_.c: $(SRCDIR)/descendants.c translate |
| 402 | ./translate $(SRCDIR)/descendants.c >descendants_.c |
| 403 | |
| 404 | descendants.o: descendants_.c descendants.h $(SRCDIR)/config.h |
| 405 | $(XTCC) -o descendants.o -c descendants_.c |
| 406 | |
| 407 | descendants.h: headers |
| 408 | diff_.c: $(SRCDIR)/diff.c translate |
| 409 | ./translate $(SRCDIR)/diff.c >diff_.c |
| 410 | |
| 411 | diff.o: diff_.c diff.h $(SRCDIR)/config.h |
| 412 | $(XTCC) -o diff.o -c diff_.c |
| 413 | |
| 414 | diff.h: headers |
| 415 | diffcmd_.c: $(SRCDIR)/diffcmd.c translate |
| 416 | ./translate $(SRCDIR)/diffcmd.c >diffcmd_.c |
| 417 | |
| 418 | diffcmd.o: diffcmd_.c diffcmd.h $(SRCDIR)/config.h |
| 419 | $(XTCC) -o diffcmd.o -c diffcmd_.c |
| 420 | |
| 421 | diffcmd.h: headers |
| 422 | doc_.c: $(SRCDIR)/doc.c translate |
| 423 | ./translate $(SRCDIR)/doc.c >doc_.c |
| 424 | |
| 425 | doc.o: doc_.c doc.h $(SRCDIR)/config.h |
| 426 | $(XTCC) -o doc.o -c doc_.c |
| 427 | |
| 428 | doc.h: headers |
| 429 | encode_.c: $(SRCDIR)/encode.c translate |
| 430 | ./translate $(SRCDIR)/encode.c >encode_.c |
| 431 | |
| 432 | encode.o: encode_.c encode.h $(SRCDIR)/config.h |
| 433 | $(XTCC) -o encode.o -c encode_.c |
| 434 | |
| 435 | encode.h: headers |
| 436 | file_.c: $(SRCDIR)/file.c translate |
| 437 | ./translate $(SRCDIR)/file.c >file_.c |
| 438 | |
| 439 | file.o: file_.c file.h $(SRCDIR)/config.h |
| 440 | $(XTCC) -o file.o -c file_.c |
| 441 | |
| 442 | file.h: headers |
| 443 | finfo_.c: $(SRCDIR)/finfo.c translate |
| 444 | ./translate $(SRCDIR)/finfo.c >finfo_.c |
| 445 | |
| 446 | finfo.o: finfo_.c finfo.h $(SRCDIR)/config.h |
| 447 | $(XTCC) -o finfo.o -c finfo_.c |
| 448 | |
| 449 | finfo.h: headers |
| 450 | graph_.c: $(SRCDIR)/graph.c translate |
| 451 | ./translate $(SRCDIR)/graph.c >graph_.c |
| 452 | |
| 453 | graph.o: graph_.c graph.h $(SRCDIR)/config.h |
| 454 | $(XTCC) -o graph.o -c graph_.c |
| 455 | |
| 456 | graph.h: headers |
| 457 | http_.c: $(SRCDIR)/http.c translate |
| 458 | ./translate $(SRCDIR)/http.c >http_.c |
| 459 | |
| 460 | http.o: http_.c http.h $(SRCDIR)/config.h |
| 461 | $(XTCC) -o http.o -c http_.c |
| 462 | |
| 463 | http.h: headers |
| 464 | http_socket_.c: $(SRCDIR)/http_socket.c translate |
| 465 | ./translate $(SRCDIR)/http_socket.c >http_socket_.c |
| 466 | |
| 467 | http_socket.o: http_socket_.c http_socket.h $(SRCDIR)/config.h |
| 468 | $(XTCC) -o http_socket.o -c http_socket_.c |
| 469 | |
| 470 | http_socket.h: headers |
| 471 | http_transport_.c: $(SRCDIR)/http_transport.c translate |
| 472 | ./translate $(SRCDIR)/http_transport.c >http_transport_.c |
| 473 | |
| 474 | http_transport.o: http_transport_.c http_transport.h $(SRCDIR)/config.h |
| 475 | $(XTCC) -o http_transport.o -c http_transport_.c |
| 476 | |
| 477 | http_transport.h: headers |
| 478 | info_.c: $(SRCDIR)/info.c translate |
| 479 | ./translate $(SRCDIR)/info.c >info_.c |
| 480 | |
| 481 | info.o: info_.c info.h $(SRCDIR)/config.h |
| 482 | $(XTCC) -o info.o -c info_.c |
| 483 | |
| 484 | info.h: headers |
| 485 | login_.c: $(SRCDIR)/login.c translate |
| 486 | ./translate $(SRCDIR)/login.c >login_.c |
| 487 | |
| 488 | login.o: login_.c login.h $(SRCDIR)/config.h |
| 489 | $(XTCC) -o login.o -c login_.c |
| 490 | |
| 491 | login.h: headers |
| 492 | main_.c: $(SRCDIR)/main.c translate |
| 493 | ./translate $(SRCDIR)/main.c >main_.c |
| 494 | |
| 495 | main.o: main_.c main.h page_index.h $(SRCDIR)/config.h |
| 496 | $(XTCC) -o main.o -c main_.c |
| 497 | |
| 498 | main.h: headers |
| 499 | manifest_.c: $(SRCDIR)/manifest.c translate |
| 500 | ./translate $(SRCDIR)/manifest.c >manifest_.c |
| 501 | |
| 502 | manifest.o: manifest_.c manifest.h $(SRCDIR)/config.h |
| 503 | $(XTCC) -o manifest.o -c manifest_.c |
| 504 | |
| 505 | manifest.h: headers |
| 506 | md5_.c: $(SRCDIR)/md5.c translate |
| 507 | ./translate $(SRCDIR)/md5.c >md5_.c |
| 508 | |
| 509 | md5.o: md5_.c md5.h $(SRCDIR)/config.h |
| 510 | $(XTCC) -o md5.o -c md5_.c |
| 511 | |
| 512 | md5.h: headers |
| 513 | merge_.c: $(SRCDIR)/merge.c translate |
| 514 | ./translate $(SRCDIR)/merge.c >merge_.c |
| 515 | |
| 516 | merge.o: merge_.c merge.h $(SRCDIR)/config.h |
| 517 | $(XTCC) -o merge.o -c merge_.c |
| 518 | |
| 519 | merge.h: headers |
| 520 | merge3_.c: $(SRCDIR)/merge3.c translate |
| 521 | ./translate $(SRCDIR)/merge3.c >merge3_.c |
| 522 | |
| 523 | merge3.o: merge3_.c merge3.h $(SRCDIR)/config.h |
| 524 | $(XTCC) -o merge3.o -c merge3_.c |
| 525 | |
| 526 | merge3.h: headers |
| 527 | name_.c: $(SRCDIR)/name.c translate |
| 528 | ./translate $(SRCDIR)/name.c >name_.c |
| 529 | |
| 530 | name.o: name_.c name.h $(SRCDIR)/config.h |
| 531 | $(XTCC) -o name.o -c name_.c |
| 532 | |
| 533 | name.h: headers |
| 534 | pivot_.c: $(SRCDIR)/pivot.c translate |
| 535 | ./translate $(SRCDIR)/pivot.c >pivot_.c |
| 536 | |
| 537 | pivot.o: pivot_.c pivot.h $(SRCDIR)/config.h |
| 538 | $(XTCC) -o pivot.o -c pivot_.c |
| 539 | |
| 540 | pivot.h: headers |
| 541 | pqueue_.c: $(SRCDIR)/pqueue.c translate |
| 542 | ./translate $(SRCDIR)/pqueue.c >pqueue_.c |
| 543 | |
| 544 | pqueue.o: pqueue_.c pqueue.h $(SRCDIR)/config.h |
| 545 | $(XTCC) -o pqueue.o -c pqueue_.c |
| 546 | |
| 547 | pqueue.h: headers |
| 548 | printf_.c: $(SRCDIR)/printf.c translate |
| 549 | ./translate $(SRCDIR)/printf.c >printf_.c |
| 550 | |
| 551 | printf.o: printf_.c printf.h $(SRCDIR)/config.h |
| 552 | $(XTCC) -o printf.o -c printf_.c |
| 553 | |
| 554 | printf.h: headers |
| 555 | rebuild_.c: $(SRCDIR)/rebuild.c translate |
| 556 | ./translate $(SRCDIR)/rebuild.c >rebuild_.c |
| 557 | |
| 558 | rebuild.o: rebuild_.c rebuild.h $(SRCDIR)/config.h |
| 559 | $(XTCC) -o rebuild.o -c rebuild_.c |
| 560 | |
| 561 | rebuild.h: headers |
| 562 | report_.c: $(SRCDIR)/report.c translate |
| 563 | ./translate $(SRCDIR)/report.c >report_.c |
| 564 | |
| 565 | report.o: report_.c report.h $(SRCDIR)/config.h |
| 566 | $(XTCC) -o report.o -c report_.c |
| 567 | |
| 568 | report.h: headers |
| 569 | rss_.c: $(SRCDIR)/rss.c translate |
| 570 | ./translate $(SRCDIR)/rss.c >rss_.c |
| 571 | |
| 572 | rss.o: rss_.c rss.h $(SRCDIR)/config.h |
| 573 | $(XTCC) -o rss.o -c rss_.c |
| 574 | |
| 575 | rss.h: headers |
| 576 | schema_.c: $(SRCDIR)/schema.c translate |
| 577 | ./translate $(SRCDIR)/schema.c >schema_.c |
| 578 | |
| 579 | schema.o: schema_.c schema.h $(SRCDIR)/config.h |
| 580 | $(XTCC) -o schema.o -c schema_.c |
| 581 | |
| 582 | schema.h: headers |
| 583 | search_.c: $(SRCDIR)/search.c translate |
| 584 | ./translate $(SRCDIR)/search.c >search_.c |
| 585 | |
| 586 | search.o: search_.c search.h $(SRCDIR)/config.h |
| 587 | $(XTCC) -o search.o -c search_.c |
| 588 | |
| 589 | search.h: headers |
| 590 | setup_.c: $(SRCDIR)/setup.c translate |
| 591 | ./translate $(SRCDIR)/setup.c >setup_.c |
| 592 | |
| 593 | setup.o: setup_.c setup.h $(SRCDIR)/config.h |
| 594 | $(XTCC) -o setup.o -c setup_.c |
| 595 | |
| 596 | setup.h: headers |
| 597 | sha1_.c: $(SRCDIR)/sha1.c translate |
| 598 | ./translate $(SRCDIR)/sha1.c >sha1_.c |
| 599 | |
| 600 | sha1.o: sha1_.c sha1.h $(SRCDIR)/config.h |
| 601 | $(XTCC) -o sha1.o -c sha1_.c |
| 602 | |
| 603 | sha1.h: headers |
| 604 | shun_.c: $(SRCDIR)/shun.c translate |
| 605 | ./translate $(SRCDIR)/shun.c >shun_.c |
| 606 | |
| 607 | shun.o: shun_.c shun.h $(SRCDIR)/config.h |
| 608 | $(XTCC) -o shun.o -c shun_.c |
| 609 | |
| 610 | shun.h: headers |
| 611 | skins_.c: $(SRCDIR)/skins.c translate |
| 612 | ./translate $(SRCDIR)/skins.c >skins_.c |
| 613 | |
| 614 | skins.o: skins_.c skins.h $(SRCDIR)/config.h |
| 615 | $(XTCC) -o skins.o -c skins_.c |
| 616 | |
| 617 | skins.h: headers |
| 618 | stat_.c: $(SRCDIR)/stat.c translate |
| 619 | ./translate $(SRCDIR)/stat.c >stat_.c |
| 620 | |
| 621 | stat.o: stat_.c stat.h $(SRCDIR)/config.h |
| 622 | $(XTCC) -o stat.o -c stat_.c |
| 623 | |
| 624 | stat.h: headers |
| 625 | style_.c: $(SRCDIR)/style.c translate |
| 626 | ./translate $(SRCDIR)/style.c >style_.c |
| 627 | |
| 628 | style.o: style_.c style.h $(SRCDIR)/config.h |
| 629 | $(XTCC) -o style.o -c style_.c |
| 630 | |
| 631 | style.h: headers |
| 632 | sync_.c: $(SRCDIR)/sync.c translate |
| 633 | ./translate $(SRCDIR)/sync.c >sync_.c |
| 634 | |
| 635 | sync.o: sync_.c sync.h $(SRCDIR)/config.h |
| 636 | $(XTCC) -o sync.o -c sync_.c |
| 637 | |
| 638 | sync.h: headers |
| 639 | tag_.c: $(SRCDIR)/tag.c translate |
| 640 | ./translate $(SRCDIR)/tag.c >tag_.c |
| 641 | |
| 642 | tag.o: tag_.c tag.h $(SRCDIR)/config.h |
| 643 | $(XTCC) -o tag.o -c tag_.c |
| 644 | |
| 645 | tag.h: headers |
| 646 | th_main_.c: $(SRCDIR)/th_main.c translate |
| 647 | ./translate $(SRCDIR)/th_main.c >th_main_.c |
| 648 | |
| 649 | th_main.o: th_main_.c th_main.h $(SRCDIR)/config.h |
| 650 | $(XTCC) -o th_main.o -c th_main_.c |
| 651 | |
| 652 | th_main.h: headers |
| 653 | timeline_.c: $(SRCDIR)/timeline.c translate |
| 654 | ./translate $(SRCDIR)/timeline.c >timeline_.c |
| 655 | |
| 656 | timeline.o: timeline_.c timeline.h $(SRCDIR)/config.h |
| 657 | $(XTCC) -o timeline.o -c timeline_.c |
| 658 | |
| 659 | timeline.h: headers |
| 660 | tkt_.c: $(SRCDIR)/tkt.c translate |
| 661 | ./translate $(SRCDIR)/tkt.c >tkt_.c |
| 662 | |
| 663 | tkt.o: tkt_.c tkt.h $(SRCDIR)/config.h |
| 664 | $(XTCC) -o tkt.o -c tkt_.c |
| 665 | |
| 666 | tkt.h: headers |
| 667 | tktsetup_.c: $(SRCDIR)/tktsetup.c translate |
| 668 | ./translate $(SRCDIR)/tktsetup.c >tktsetup_.c |
| 669 | |
| 670 | tktsetup.o: tktsetup_.c tktsetup.h $(SRCDIR)/config.h |
| 671 | $(XTCC) -o tktsetup.o -c tktsetup_.c |
| 672 | |
| 673 | tktsetup.h: headers |
| 674 | undo_.c: $(SRCDIR)/undo.c translate |
| 675 | ./translate $(SRCDIR)/undo.c >undo_.c |
| 676 | |
| 677 | undo.o: undo_.c undo.h $(SRCDIR)/config.h |
| 678 | $(XTCC) -o undo.o -c undo_.c |
| 679 | |
| 680 | undo.h: headers |
| 681 | update_.c: $(SRCDIR)/update.c translate |
| 682 | ./translate $(SRCDIR)/update.c >update_.c |
| 683 | |
| 684 | update.o: update_.c update.h $(SRCDIR)/config.h |
| 685 | $(XTCC) -o update.o -c update_.c |
| 686 | |
| 687 | update.h: headers |
| 688 | url_.c: $(SRCDIR)/url.c translate |
| 689 | ./translate $(SRCDIR)/url.c >url_.c |
| 690 | |
| 691 | url.o: url_.c url.h $(SRCDIR)/config.h |
| 692 | $(XTCC) -o url.o -c url_.c |
| 693 | |
| 694 | url.h: headers |
| 695 | user_.c: $(SRCDIR)/user.c translate |
| 696 | ./translate $(SRCDIR)/user.c >user_.c |
| 697 | |
| 698 | user.o: user_.c user.h $(SRCDIR)/config.h |
| 699 | $(XTCC) -o user.o -c user_.c |
| 700 | |
| 701 | user.h: headers |
| 702 | verify_.c: $(SRCDIR)/verify.c translate |
| 703 | ./translate $(SRCDIR)/verify.c >verify_.c |
| 704 | |
| 705 | verify.o: verify_.c verify.h $(SRCDIR)/config.h |
| 706 | $(XTCC) -o verify.o -c verify_.c |
| 707 | |
| 708 | verify.h: headers |
| 709 | vfile_.c: $(SRCDIR)/vfile.c translate |
| 710 | ./translate $(SRCDIR)/vfile.c >vfile_.c |
| 711 | |
| 712 | vfile.o: vfile_.c vfile.h $(SRCDIR)/config.h |
| 713 | $(XTCC) -o vfile.o -c vfile_.c |
| 714 | |
| 715 | vfile.h: headers |
| 716 | wiki_.c: $(SRCDIR)/wiki.c translate |
| 717 | ./translate $(SRCDIR)/wiki.c >wiki_.c |
| 718 | |
| 719 | wiki.o: wiki_.c wiki.h $(SRCDIR)/config.h |
| 720 | $(XTCC) -o wiki.o -c wiki_.c |
| 721 | |
| 722 | wiki.h: headers |
| 723 | wikiformat_.c: $(SRCDIR)/wikiformat.c translate |
| 724 | ./translate $(SRCDIR)/wikiformat.c >wikiformat_.c |
| 725 | |
| 726 | wikiformat.o: wikiformat_.c wikiformat.h $(SRCDIR)/config.h |
| 727 | $(XTCC) -o wikiformat.o -c wikiformat_.c |
| 728 | |
| 729 | wikiformat.h: headers |
| 730 | winhttp_.c: $(SRCDIR)/winhttp.c translate |
| 731 | ./translate $(SRCDIR)/winhttp.c >winhttp_.c |
| 732 | |
| 733 | winhttp.o: winhttp_.c winhttp.h $(SRCDIR)/config.h |
| 734 | $(XTCC) -o winhttp.o -c winhttp_.c |
| 735 | |
| 736 | winhttp.h: headers |
| 737 | xfer_.c: $(SRCDIR)/xfer.c translate |
| 738 | ./translate $(SRCDIR)/xfer.c >xfer_.c |
| 739 | |
| 740 | xfer.o: xfer_.c xfer.h $(SRCDIR)/config.h |
| 741 | $(XTCC) -o xfer.o -c xfer_.c |
| 742 | |
| 743 | xfer.h: headers |
| 744 | zip_.c: $(SRCDIR)/zip.c translate |
| 745 | ./translate $(SRCDIR)/zip.c >zip_.c |
| 746 | |
| 747 | zip.o: zip_.c zip.h $(SRCDIR)/config.h |
| 748 | $(XTCC) -o zip.o -c zip_.c |
| 749 | |
| 750 | zip.h: headers |
| 751 | sqlite3.o: $(SRCDIR)/sqlite3.c |
| 752 | $(XTCC) -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -Dlocaltime=fossil_localtime -c $(SRCDIR)/sqlite3.c -o sqlite3.o |
| 753 | |
| 754 | th.o: $(SRCDIR)/th.c |
| 755 | $(XTCC) -I$(SRCDIR) -c $(SRCDIR)/th.c -o th.o |
| 756 | |
| 757 | th_lang.o: $(SRCDIR)/th_lang.c |
| 758 | $(XTCC) -I$(SRCDIR) -c $(SRCDIR)/th_lang.c -o th_lang.o |
| 759 | |
| 760 |
| --- src/main.mk | |
| +++ src/main.mk | |
| @@ -151,88 +151,91 @@ | |
| 151 | winhttp_.c \ |
| 152 | xfer_.c \ |
| 153 | zip_.c |
| 154 | |
| 155 | OBJ = \ |
| 156 | $(OBJDIR)/add.o \ |
| 157 | $(OBJDIR)/allrepo.o \ |
| 158 | $(OBJDIR)/bag.o \ |
| 159 | $(OBJDIR)/blob.o \ |
| 160 | $(OBJDIR)/branch.o \ |
| 161 | $(OBJDIR)/browse.o \ |
| 162 | $(OBJDIR)/captcha.o \ |
| 163 | $(OBJDIR)/cgi.o \ |
| 164 | $(OBJDIR)/checkin.o \ |
| 165 | $(OBJDIR)/checkout.o \ |
| 166 | $(OBJDIR)/clearsign.o \ |
| 167 | $(OBJDIR)/clone.o \ |
| 168 | $(OBJDIR)/comformat.o \ |
| 169 | $(OBJDIR)/configure.o \ |
| 170 | $(OBJDIR)/content.o \ |
| 171 | $(OBJDIR)/db.o \ |
| 172 | $(OBJDIR)/delta.o \ |
| 173 | $(OBJDIR)/deltacmd.o \ |
| 174 | $(OBJDIR)/descendants.o \ |
| 175 | $(OBJDIR)/diff.o \ |
| 176 | $(OBJDIR)/diffcmd.o \ |
| 177 | $(OBJDIR)/doc.o \ |
| 178 | $(OBJDIR)/encode.o \ |
| 179 | $(OBJDIR)/file.o \ |
| 180 | $(OBJDIR)/finfo.o \ |
| 181 | $(OBJDIR)/graph.o \ |
| 182 | $(OBJDIR)/http.o \ |
| 183 | $(OBJDIR)/http_socket.o \ |
| 184 | $(OBJDIR)/http_transport.o \ |
| 185 | $(OBJDIR)/info.o \ |
| 186 | $(OBJDIR)/login.o \ |
| 187 | $(OBJDIR)/main.o \ |
| 188 | $(OBJDIR)/manifest.o \ |
| 189 | $(OBJDIR)/md5.o \ |
| 190 | $(OBJDIR)/merge.o \ |
| 191 | $(OBJDIR)/merge3.o \ |
| 192 | $(OBJDIR)/name.o \ |
| 193 | $(OBJDIR)/pivot.o \ |
| 194 | $(OBJDIR)/pqueue.o \ |
| 195 | $(OBJDIR)/printf.o \ |
| 196 | $(OBJDIR)/rebuild.o \ |
| 197 | $(OBJDIR)/report.o \ |
| 198 | $(OBJDIR)/rss.o \ |
| 199 | $(OBJDIR)/schema.o \ |
| 200 | $(OBJDIR)/search.o \ |
| 201 | $(OBJDIR)/setup.o \ |
| 202 | $(OBJDIR)/sha1.o \ |
| 203 | $(OBJDIR)/shun.o \ |
| 204 | $(OBJDIR)/skins.o \ |
| 205 | $(OBJDIR)/stat.o \ |
| 206 | $(OBJDIR)/style.o \ |
| 207 | $(OBJDIR)/sync.o \ |
| 208 | $(OBJDIR)/tag.o \ |
| 209 | $(OBJDIR)/th_main.o \ |
| 210 | $(OBJDIR)/timeline.o \ |
| 211 | $(OBJDIR)/tkt.o \ |
| 212 | $(OBJDIR)/tktsetup.o \ |
| 213 | $(OBJDIR)/undo.o \ |
| 214 | $(OBJDIR)/update.o \ |
| 215 | $(OBJDIR)/url.o \ |
| 216 | $(OBJDIR)/user.o \ |
| 217 | $(OBJDIR)/verify.o \ |
| 218 | $(OBJDIR)/vfile.o \ |
| 219 | $(OBJDIR)/wiki.o \ |
| 220 | $(OBJDIR)/wikiformat.o \ |
| 221 | $(OBJDIR)/winhttp.o \ |
| 222 | $(OBJDIR)/xfer.o \ |
| 223 | $(OBJDIR)/zip.o |
| 224 | |
| 225 | APPNAME = fossil$(E) |
| 226 | |
| 227 | |
| 228 | |
| 229 | all: $(OBJDIR) $(APPNAME) |
| 230 | |
| 231 | install: $(APPNAME) |
| 232 | mv $(APPNAME) $(INSTALLDIR) |
| 233 | |
| 234 | $(OBJDIR): |
| 235 | -mkdir $(OBJDIR) |
| 236 | |
| 237 | translate: $(SRCDIR)/translate.c |
| 238 | $(BCC) -o translate $(SRCDIR)/translate.c |
| 239 | |
| 240 | makeheaders: $(SRCDIR)/makeheaders.c |
| 241 | $(BCC) -o makeheaders $(SRCDIR)/makeheaders.c |
| @@ -249,21 +252,21 @@ | |
| 252 | VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest |
| 253 | awk '{ printf "#define MANIFEST_UUID \"%s\"\n", $$1}' $(SRCDIR)/../manifest.uuid >VERSION.h |
| 254 | awk '{ printf "#define MANIFEST_VERSION \"[%.10s]\"\n", $$1}' $(SRCDIR)/../manifest.uuid >>VERSION.h |
| 255 | awk '$$1=="D"{printf "#define MANIFEST_DATE \"%s %s\"\n", substr($$2,1,10),substr($$2,12)}' $(SRCDIR)/../manifest >>VERSION.h |
| 256 | |
| 257 | $(APPNAME): headers $(OBJ) $(OBJDIR)/sqlite3.o $(OBJDIR)/th.o $(OBJDIR)/th_lang.o |
| 258 | $(TCC) -o $(APPNAME) $(OBJ) $(OBJDIR)/sqlite3.o $(OBJDIR)/th.o $(OBJDIR)/th_lang.o $(LIB) |
| 259 | |
| 260 | # This rule prevents make from using its default rules to try build |
| 261 | # an executable named "manifest" out of the file named "manifest.c" |
| 262 | # |
| 263 | $(SRCDIR)/../manifest: |
| 264 | # noop |
| 265 | |
| 266 | clean: |
| 267 | rm -f $(OBJDIR)/*.o *_.c $(APPNAME) VERSION.h |
| 268 | rm -f translate makeheaders mkindex page_index.h headers |
| 269 | rm -f add.h allrepo.h bag.h blob.h branch.h browse.h captcha.h cgi.h checkin.h checkout.h clearsign.h clone.h comformat.h configure.h content.h db.h delta.h deltacmd.h descendants.h diff.h diffcmd.h doc.h encode.h file.h finfo.h graph.h http.h http_socket.h http_transport.h info.h login.h main.h manifest.h md5.h merge.h merge3.h name.h pivot.h pqueue.h printf.h rebuild.h report.h rss.h schema.h search.h setup.h sha1.h shun.h skins.h stat.h style.h sync.h tag.h th_main.h timeline.h tkt.h tktsetup.h undo.h update.h url.h user.h verify.h vfile.h wiki.h wikiformat.h winhttp.h xfer.h zip.h |
| 270 | |
| 271 | page_index.h: $(TRANS_SRC) mkindex |
| 272 | ./mkindex $(TRANS_SRC) >$@ |
| @@ -273,487 +276,487 @@ | |
| 276 | headers: Makefile |
| 277 | Makefile: |
| 278 | add_.c: $(SRCDIR)/add.c translate |
| 279 | ./translate $(SRCDIR)/add.c >add_.c |
| 280 | |
| 281 | $(OBJDIR)/add.o: add_.c add.h $(SRCDIR)/config.h |
| 282 | $(XTCC) -o $(OBJDIR)/add.o -c add_.c |
| 283 | |
| 284 | add.h: headers |
| 285 | allrepo_.c: $(SRCDIR)/allrepo.c translate |
| 286 | ./translate $(SRCDIR)/allrepo.c >allrepo_.c |
| 287 | |
| 288 | $(OBJDIR)/allrepo.o: allrepo_.c allrepo.h $(SRCDIR)/config.h |
| 289 | $(XTCC) -o $(OBJDIR)/allrepo.o -c allrepo_.c |
| 290 | |
| 291 | allrepo.h: headers |
| 292 | bag_.c: $(SRCDIR)/bag.c translate |
| 293 | ./translate $(SRCDIR)/bag.c >bag_.c |
| 294 | |
| 295 | $(OBJDIR)/bag.o: bag_.c bag.h $(SRCDIR)/config.h |
| 296 | $(XTCC) -o $(OBJDIR)/bag.o -c bag_.c |
| 297 | |
| 298 | bag.h: headers |
| 299 | blob_.c: $(SRCDIR)/blob.c translate |
| 300 | ./translate $(SRCDIR)/blob.c >blob_.c |
| 301 | |
| 302 | $(OBJDIR)/blob.o: blob_.c blob.h $(SRCDIR)/config.h |
| 303 | $(XTCC) -o $(OBJDIR)/blob.o -c blob_.c |
| 304 | |
| 305 | blob.h: headers |
| 306 | branch_.c: $(SRCDIR)/branch.c translate |
| 307 | ./translate $(SRCDIR)/branch.c >branch_.c |
| 308 | |
| 309 | $(OBJDIR)/branch.o: branch_.c branch.h $(SRCDIR)/config.h |
| 310 | $(XTCC) -o $(OBJDIR)/branch.o -c branch_.c |
| 311 | |
| 312 | branch.h: headers |
| 313 | browse_.c: $(SRCDIR)/browse.c translate |
| 314 | ./translate $(SRCDIR)/browse.c >browse_.c |
| 315 | |
| 316 | $(OBJDIR)/browse.o: browse_.c browse.h $(SRCDIR)/config.h |
| 317 | $(XTCC) -o $(OBJDIR)/browse.o -c browse_.c |
| 318 | |
| 319 | browse.h: headers |
| 320 | captcha_.c: $(SRCDIR)/captcha.c translate |
| 321 | ./translate $(SRCDIR)/captcha.c >captcha_.c |
| 322 | |
| 323 | $(OBJDIR)/captcha.o: captcha_.c captcha.h $(SRCDIR)/config.h |
| 324 | $(XTCC) -o $(OBJDIR)/captcha.o -c captcha_.c |
| 325 | |
| 326 | captcha.h: headers |
| 327 | cgi_.c: $(SRCDIR)/cgi.c translate |
| 328 | ./translate $(SRCDIR)/cgi.c >cgi_.c |
| 329 | |
| 330 | $(OBJDIR)/cgi.o: cgi_.c cgi.h $(SRCDIR)/config.h |
| 331 | $(XTCC) -o $(OBJDIR)/cgi.o -c cgi_.c |
| 332 | |
| 333 | cgi.h: headers |
| 334 | checkin_.c: $(SRCDIR)/checkin.c translate |
| 335 | ./translate $(SRCDIR)/checkin.c >checkin_.c |
| 336 | |
| 337 | $(OBJDIR)/checkin.o: checkin_.c checkin.h $(SRCDIR)/config.h |
| 338 | $(XTCC) -o $(OBJDIR)/checkin.o -c checkin_.c |
| 339 | |
| 340 | checkin.h: headers |
| 341 | checkout_.c: $(SRCDIR)/checkout.c translate |
| 342 | ./translate $(SRCDIR)/checkout.c >checkout_.c |
| 343 | |
| 344 | $(OBJDIR)/checkout.o: checkout_.c checkout.h $(SRCDIR)/config.h |
| 345 | $(XTCC) -o $(OBJDIR)/checkout.o -c checkout_.c |
| 346 | |
| 347 | checkout.h: headers |
| 348 | clearsign_.c: $(SRCDIR)/clearsign.c translate |
| 349 | ./translate $(SRCDIR)/clearsign.c >clearsign_.c |
| 350 | |
| 351 | $(OBJDIR)/clearsign.o: clearsign_.c clearsign.h $(SRCDIR)/config.h |
| 352 | $(XTCC) -o $(OBJDIR)/clearsign.o -c clearsign_.c |
| 353 | |
| 354 | clearsign.h: headers |
| 355 | clone_.c: $(SRCDIR)/clone.c translate |
| 356 | ./translate $(SRCDIR)/clone.c >clone_.c |
| 357 | |
| 358 | $(OBJDIR)/clone.o: clone_.c clone.h $(SRCDIR)/config.h |
| 359 | $(XTCC) -o $(OBJDIR)/clone.o -c clone_.c |
| 360 | |
| 361 | clone.h: headers |
| 362 | comformat_.c: $(SRCDIR)/comformat.c translate |
| 363 | ./translate $(SRCDIR)/comformat.c >comformat_.c |
| 364 | |
| 365 | $(OBJDIR)/comformat.o: comformat_.c comformat.h $(SRCDIR)/config.h |
| 366 | $(XTCC) -o $(OBJDIR)/comformat.o -c comformat_.c |
| 367 | |
| 368 | comformat.h: headers |
| 369 | configure_.c: $(SRCDIR)/configure.c translate |
| 370 | ./translate $(SRCDIR)/configure.c >configure_.c |
| 371 | |
| 372 | $(OBJDIR)/configure.o: configure_.c configure.h $(SRCDIR)/config.h |
| 373 | $(XTCC) -o $(OBJDIR)/configure.o -c configure_.c |
| 374 | |
| 375 | configure.h: headers |
| 376 | content_.c: $(SRCDIR)/content.c translate |
| 377 | ./translate $(SRCDIR)/content.c >content_.c |
| 378 | |
| 379 | $(OBJDIR)/content.o: content_.c content.h $(SRCDIR)/config.h |
| 380 | $(XTCC) -o $(OBJDIR)/content.o -c content_.c |
| 381 | |
| 382 | content.h: headers |
| 383 | db_.c: $(SRCDIR)/db.c translate |
| 384 | ./translate $(SRCDIR)/db.c >db_.c |
| 385 | |
| 386 | $(OBJDIR)/db.o: db_.c db.h $(SRCDIR)/config.h |
| 387 | $(XTCC) -o $(OBJDIR)/db.o -c db_.c |
| 388 | |
| 389 | db.h: headers |
| 390 | delta_.c: $(SRCDIR)/delta.c translate |
| 391 | ./translate $(SRCDIR)/delta.c >delta_.c |
| 392 | |
| 393 | $(OBJDIR)/delta.o: delta_.c delta.h $(SRCDIR)/config.h |
| 394 | $(XTCC) -o $(OBJDIR)/delta.o -c delta_.c |
| 395 | |
| 396 | delta.h: headers |
| 397 | deltacmd_.c: $(SRCDIR)/deltacmd.c translate |
| 398 | ./translate $(SRCDIR)/deltacmd.c >deltacmd_.c |
| 399 | |
| 400 | $(OBJDIR)/deltacmd.o: deltacmd_.c deltacmd.h $(SRCDIR)/config.h |
| 401 | $(XTCC) -o $(OBJDIR)/deltacmd.o -c deltacmd_.c |
| 402 | |
| 403 | deltacmd.h: headers |
| 404 | descendants_.c: $(SRCDIR)/descendants.c translate |
| 405 | ./translate $(SRCDIR)/descendants.c >descendants_.c |
| 406 | |
| 407 | $(OBJDIR)/descendants.o: descendants_.c descendants.h $(SRCDIR)/config.h |
| 408 | $(XTCC) -o $(OBJDIR)/descendants.o -c descendants_.c |
| 409 | |
| 410 | descendants.h: headers |
| 411 | diff_.c: $(SRCDIR)/diff.c translate |
| 412 | ./translate $(SRCDIR)/diff.c >diff_.c |
| 413 | |
| 414 | $(OBJDIR)/diff.o: diff_.c diff.h $(SRCDIR)/config.h |
| 415 | $(XTCC) -o $(OBJDIR)/diff.o -c diff_.c |
| 416 | |
| 417 | diff.h: headers |
| 418 | diffcmd_.c: $(SRCDIR)/diffcmd.c translate |
| 419 | ./translate $(SRCDIR)/diffcmd.c >diffcmd_.c |
| 420 | |
| 421 | $(OBJDIR)/diffcmd.o: diffcmd_.c diffcmd.h $(SRCDIR)/config.h |
| 422 | $(XTCC) -o $(OBJDIR)/diffcmd.o -c diffcmd_.c |
| 423 | |
| 424 | diffcmd.h: headers |
| 425 | doc_.c: $(SRCDIR)/doc.c translate |
| 426 | ./translate $(SRCDIR)/doc.c >doc_.c |
| 427 | |
| 428 | $(OBJDIR)/doc.o: doc_.c doc.h $(SRCDIR)/config.h |
| 429 | $(XTCC) -o $(OBJDIR)/doc.o -c doc_.c |
| 430 | |
| 431 | doc.h: headers |
| 432 | encode_.c: $(SRCDIR)/encode.c translate |
| 433 | ./translate $(SRCDIR)/encode.c >encode_.c |
| 434 | |
| 435 | $(OBJDIR)/encode.o: encode_.c encode.h $(SRCDIR)/config.h |
| 436 | $(XTCC) -o $(OBJDIR)/encode.o -c encode_.c |
| 437 | |
| 438 | encode.h: headers |
| 439 | file_.c: $(SRCDIR)/file.c translate |
| 440 | ./translate $(SRCDIR)/file.c >file_.c |
| 441 | |
| 442 | $(OBJDIR)/file.o: file_.c file.h $(SRCDIR)/config.h |
| 443 | $(XTCC) -o $(OBJDIR)/file.o -c file_.c |
| 444 | |
| 445 | file.h: headers |
| 446 | finfo_.c: $(SRCDIR)/finfo.c translate |
| 447 | ./translate $(SRCDIR)/finfo.c >finfo_.c |
| 448 | |
| 449 | $(OBJDIR)/finfo.o: finfo_.c finfo.h $(SRCDIR)/config.h |
| 450 | $(XTCC) -o $(OBJDIR)/finfo.o -c finfo_.c |
| 451 | |
| 452 | finfo.h: headers |
| 453 | graph_.c: $(SRCDIR)/graph.c translate |
| 454 | ./translate $(SRCDIR)/graph.c >graph_.c |
| 455 | |
| 456 | $(OBJDIR)/graph.o: graph_.c graph.h $(SRCDIR)/config.h |
| 457 | $(XTCC) -o $(OBJDIR)/graph.o -c graph_.c |
| 458 | |
| 459 | graph.h: headers |
| 460 | http_.c: $(SRCDIR)/http.c translate |
| 461 | ./translate $(SRCDIR)/http.c >http_.c |
| 462 | |
| 463 | $(OBJDIR)/http.o: http_.c http.h $(SRCDIR)/config.h |
| 464 | $(XTCC) -o $(OBJDIR)/http.o -c http_.c |
| 465 | |
| 466 | http.h: headers |
| 467 | http_socket_.c: $(SRCDIR)/http_socket.c translate |
| 468 | ./translate $(SRCDIR)/http_socket.c >http_socket_.c |
| 469 | |
| 470 | $(OBJDIR)/http_socket.o: http_socket_.c http_socket.h $(SRCDIR)/config.h |
| 471 | $(XTCC) -o $(OBJDIR)/http_socket.o -c http_socket_.c |
| 472 | |
| 473 | http_socket.h: headers |
| 474 | http_transport_.c: $(SRCDIR)/http_transport.c translate |
| 475 | ./translate $(SRCDIR)/http_transport.c >http_transport_.c |
| 476 | |
| 477 | $(OBJDIR)/http_transport.o: http_transport_.c http_transport.h $(SRCDIR)/config.h |
| 478 | $(XTCC) -o $(OBJDIR)/http_transport.o -c http_transport_.c |
| 479 | |
| 480 | http_transport.h: headers |
| 481 | info_.c: $(SRCDIR)/info.c translate |
| 482 | ./translate $(SRCDIR)/info.c >info_.c |
| 483 | |
| 484 | $(OBJDIR)/info.o: info_.c info.h $(SRCDIR)/config.h |
| 485 | $(XTCC) -o $(OBJDIR)/info.o -c info_.c |
| 486 | |
| 487 | info.h: headers |
| 488 | login_.c: $(SRCDIR)/login.c translate |
| 489 | ./translate $(SRCDIR)/login.c >login_.c |
| 490 | |
| 491 | $(OBJDIR)/login.o: login_.c login.h $(SRCDIR)/config.h |
| 492 | $(XTCC) -o $(OBJDIR)/login.o -c login_.c |
| 493 | |
| 494 | login.h: headers |
| 495 | main_.c: $(SRCDIR)/main.c translate |
| 496 | ./translate $(SRCDIR)/main.c >main_.c |
| 497 | |
| 498 | $(OBJDIR)/main.o: main_.c main.h page_index.h $(SRCDIR)/config.h |
| 499 | $(XTCC) -o $(OBJDIR)/main.o -c main_.c |
| 500 | |
| 501 | main.h: headers |
| 502 | manifest_.c: $(SRCDIR)/manifest.c translate |
| 503 | ./translate $(SRCDIR)/manifest.c >manifest_.c |
| 504 | |
| 505 | $(OBJDIR)/manifest.o: manifest_.c manifest.h $(SRCDIR)/config.h |
| 506 | $(XTCC) -o $(OBJDIR)/manifest.o -c manifest_.c |
| 507 | |
| 508 | manifest.h: headers |
| 509 | md5_.c: $(SRCDIR)/md5.c translate |
| 510 | ./translate $(SRCDIR)/md5.c >md5_.c |
| 511 | |
| 512 | $(OBJDIR)/md5.o: md5_.c md5.h $(SRCDIR)/config.h |
| 513 | $(XTCC) -o $(OBJDIR)/md5.o -c md5_.c |
| 514 | |
| 515 | md5.h: headers |
| 516 | merge_.c: $(SRCDIR)/merge.c translate |
| 517 | ./translate $(SRCDIR)/merge.c >merge_.c |
| 518 | |
| 519 | $(OBJDIR)/merge.o: merge_.c merge.h $(SRCDIR)/config.h |
| 520 | $(XTCC) -o $(OBJDIR)/merge.o -c merge_.c |
| 521 | |
| 522 | merge.h: headers |
| 523 | merge3_.c: $(SRCDIR)/merge3.c translate |
| 524 | ./translate $(SRCDIR)/merge3.c >merge3_.c |
| 525 | |
| 526 | $(OBJDIR)/merge3.o: merge3_.c merge3.h $(SRCDIR)/config.h |
| 527 | $(XTCC) -o $(OBJDIR)/merge3.o -c merge3_.c |
| 528 | |
| 529 | merge3.h: headers |
| 530 | name_.c: $(SRCDIR)/name.c translate |
| 531 | ./translate $(SRCDIR)/name.c >name_.c |
| 532 | |
| 533 | $(OBJDIR)/name.o: name_.c name.h $(SRCDIR)/config.h |
| 534 | $(XTCC) -o $(OBJDIR)/name.o -c name_.c |
| 535 | |
| 536 | name.h: headers |
| 537 | pivot_.c: $(SRCDIR)/pivot.c translate |
| 538 | ./translate $(SRCDIR)/pivot.c >pivot_.c |
| 539 | |
| 540 | $(OBJDIR)/pivot.o: pivot_.c pivot.h $(SRCDIR)/config.h |
| 541 | $(XTCC) -o $(OBJDIR)/pivot.o -c pivot_.c |
| 542 | |
| 543 | pivot.h: headers |
| 544 | pqueue_.c: $(SRCDIR)/pqueue.c translate |
| 545 | ./translate $(SRCDIR)/pqueue.c >pqueue_.c |
| 546 | |
| 547 | $(OBJDIR)/pqueue.o: pqueue_.c pqueue.h $(SRCDIR)/config.h |
| 548 | $(XTCC) -o $(OBJDIR)/pqueue.o -c pqueue_.c |
| 549 | |
| 550 | pqueue.h: headers |
| 551 | printf_.c: $(SRCDIR)/printf.c translate |
| 552 | ./translate $(SRCDIR)/printf.c >printf_.c |
| 553 | |
| 554 | $(OBJDIR)/printf.o: printf_.c printf.h $(SRCDIR)/config.h |
| 555 | $(XTCC) -o $(OBJDIR)/printf.o -c printf_.c |
| 556 | |
| 557 | printf.h: headers |
| 558 | rebuild_.c: $(SRCDIR)/rebuild.c translate |
| 559 | ./translate $(SRCDIR)/rebuild.c >rebuild_.c |
| 560 | |
| 561 | $(OBJDIR)/rebuild.o: rebuild_.c rebuild.h $(SRCDIR)/config.h |
| 562 | $(XTCC) -o $(OBJDIR)/rebuild.o -c rebuild_.c |
| 563 | |
| 564 | rebuild.h: headers |
| 565 | report_.c: $(SRCDIR)/report.c translate |
| 566 | ./translate $(SRCDIR)/report.c >report_.c |
| 567 | |
| 568 | $(OBJDIR)/report.o: report_.c report.h $(SRCDIR)/config.h |
| 569 | $(XTCC) -o $(OBJDIR)/report.o -c report_.c |
| 570 | |
| 571 | report.h: headers |
| 572 | rss_.c: $(SRCDIR)/rss.c translate |
| 573 | ./translate $(SRCDIR)/rss.c >rss_.c |
| 574 | |
| 575 | $(OBJDIR)/rss.o: rss_.c rss.h $(SRCDIR)/config.h |
| 576 | $(XTCC) -o $(OBJDIR)/rss.o -c rss_.c |
| 577 | |
| 578 | rss.h: headers |
| 579 | schema_.c: $(SRCDIR)/schema.c translate |
| 580 | ./translate $(SRCDIR)/schema.c >schema_.c |
| 581 | |
| 582 | $(OBJDIR)/schema.o: schema_.c schema.h $(SRCDIR)/config.h |
| 583 | $(XTCC) -o $(OBJDIR)/schema.o -c schema_.c |
| 584 | |
| 585 | schema.h: headers |
| 586 | search_.c: $(SRCDIR)/search.c translate |
| 587 | ./translate $(SRCDIR)/search.c >search_.c |
| 588 | |
| 589 | $(OBJDIR)/search.o: search_.c search.h $(SRCDIR)/config.h |
| 590 | $(XTCC) -o $(OBJDIR)/search.o -c search_.c |
| 591 | |
| 592 | search.h: headers |
| 593 | setup_.c: $(SRCDIR)/setup.c translate |
| 594 | ./translate $(SRCDIR)/setup.c >setup_.c |
| 595 | |
| 596 | $(OBJDIR)/setup.o: setup_.c setup.h $(SRCDIR)/config.h |
| 597 | $(XTCC) -o $(OBJDIR)/setup.o -c setup_.c |
| 598 | |
| 599 | setup.h: headers |
| 600 | sha1_.c: $(SRCDIR)/sha1.c translate |
| 601 | ./translate $(SRCDIR)/sha1.c >sha1_.c |
| 602 | |
| 603 | $(OBJDIR)/sha1.o: sha1_.c sha1.h $(SRCDIR)/config.h |
| 604 | $(XTCC) -o $(OBJDIR)/sha1.o -c sha1_.c |
| 605 | |
| 606 | sha1.h: headers |
| 607 | shun_.c: $(SRCDIR)/shun.c translate |
| 608 | ./translate $(SRCDIR)/shun.c >shun_.c |
| 609 | |
| 610 | $(OBJDIR)/shun.o: shun_.c shun.h $(SRCDIR)/config.h |
| 611 | $(XTCC) -o $(OBJDIR)/shun.o -c shun_.c |
| 612 | |
| 613 | shun.h: headers |
| 614 | skins_.c: $(SRCDIR)/skins.c translate |
| 615 | ./translate $(SRCDIR)/skins.c >skins_.c |
| 616 | |
| 617 | $(OBJDIR)/skins.o: skins_.c skins.h $(SRCDIR)/config.h |
| 618 | $(XTCC) -o $(OBJDIR)/skins.o -c skins_.c |
| 619 | |
| 620 | skins.h: headers |
| 621 | stat_.c: $(SRCDIR)/stat.c translate |
| 622 | ./translate $(SRCDIR)/stat.c >stat_.c |
| 623 | |
| 624 | $(OBJDIR)/stat.o: stat_.c stat.h $(SRCDIR)/config.h |
| 625 | $(XTCC) -o $(OBJDIR)/stat.o -c stat_.c |
| 626 | |
| 627 | stat.h: headers |
| 628 | style_.c: $(SRCDIR)/style.c translate |
| 629 | ./translate $(SRCDIR)/style.c >style_.c |
| 630 | |
| 631 | $(OBJDIR)/style.o: style_.c style.h $(SRCDIR)/config.h |
| 632 | $(XTCC) -o $(OBJDIR)/style.o -c style_.c |
| 633 | |
| 634 | style.h: headers |
| 635 | sync_.c: $(SRCDIR)/sync.c translate |
| 636 | ./translate $(SRCDIR)/sync.c >sync_.c |
| 637 | |
| 638 | $(OBJDIR)/sync.o: sync_.c sync.h $(SRCDIR)/config.h |
| 639 | $(XTCC) -o $(OBJDIR)/sync.o -c sync_.c |
| 640 | |
| 641 | sync.h: headers |
| 642 | tag_.c: $(SRCDIR)/tag.c translate |
| 643 | ./translate $(SRCDIR)/tag.c >tag_.c |
| 644 | |
| 645 | $(OBJDIR)/tag.o: tag_.c tag.h $(SRCDIR)/config.h |
| 646 | $(XTCC) -o $(OBJDIR)/tag.o -c tag_.c |
| 647 | |
| 648 | tag.h: headers |
| 649 | th_main_.c: $(SRCDIR)/th_main.c translate |
| 650 | ./translate $(SRCDIR)/th_main.c >th_main_.c |
| 651 | |
| 652 | $(OBJDIR)/th_main.o: th_main_.c th_main.h $(SRCDIR)/config.h |
| 653 | $(XTCC) -o $(OBJDIR)/th_main.o -c th_main_.c |
| 654 | |
| 655 | th_main.h: headers |
| 656 | timeline_.c: $(SRCDIR)/timeline.c translate |
| 657 | ./translate $(SRCDIR)/timeline.c >timeline_.c |
| 658 | |
| 659 | $(OBJDIR)/timeline.o: timeline_.c timeline.h $(SRCDIR)/config.h |
| 660 | $(XTCC) -o $(OBJDIR)/timeline.o -c timeline_.c |
| 661 | |
| 662 | timeline.h: headers |
| 663 | tkt_.c: $(SRCDIR)/tkt.c translate |
| 664 | ./translate $(SRCDIR)/tkt.c >tkt_.c |
| 665 | |
| 666 | $(OBJDIR)/tkt.o: tkt_.c tkt.h $(SRCDIR)/config.h |
| 667 | $(XTCC) -o $(OBJDIR)/tkt.o -c tkt_.c |
| 668 | |
| 669 | tkt.h: headers |
| 670 | tktsetup_.c: $(SRCDIR)/tktsetup.c translate |
| 671 | ./translate $(SRCDIR)/tktsetup.c >tktsetup_.c |
| 672 | |
| 673 | $(OBJDIR)/tktsetup.o: tktsetup_.c tktsetup.h $(SRCDIR)/config.h |
| 674 | $(XTCC) -o $(OBJDIR)/tktsetup.o -c tktsetup_.c |
| 675 | |
| 676 | tktsetup.h: headers |
| 677 | undo_.c: $(SRCDIR)/undo.c translate |
| 678 | ./translate $(SRCDIR)/undo.c >undo_.c |
| 679 | |
| 680 | $(OBJDIR)/undo.o: undo_.c undo.h $(SRCDIR)/config.h |
| 681 | $(XTCC) -o $(OBJDIR)/undo.o -c undo_.c |
| 682 | |
| 683 | undo.h: headers |
| 684 | update_.c: $(SRCDIR)/update.c translate |
| 685 | ./translate $(SRCDIR)/update.c >update_.c |
| 686 | |
| 687 | $(OBJDIR)/update.o: update_.c update.h $(SRCDIR)/config.h |
| 688 | $(XTCC) -o $(OBJDIR)/update.o -c update_.c |
| 689 | |
| 690 | update.h: headers |
| 691 | url_.c: $(SRCDIR)/url.c translate |
| 692 | ./translate $(SRCDIR)/url.c >url_.c |
| 693 | |
| 694 | $(OBJDIR)/url.o: url_.c url.h $(SRCDIR)/config.h |
| 695 | $(XTCC) -o $(OBJDIR)/url.o -c url_.c |
| 696 | |
| 697 | url.h: headers |
| 698 | user_.c: $(SRCDIR)/user.c translate |
| 699 | ./translate $(SRCDIR)/user.c >user_.c |
| 700 | |
| 701 | $(OBJDIR)/user.o: user_.c user.h $(SRCDIR)/config.h |
| 702 | $(XTCC) -o $(OBJDIR)/user.o -c user_.c |
| 703 | |
| 704 | user.h: headers |
| 705 | verify_.c: $(SRCDIR)/verify.c translate |
| 706 | ./translate $(SRCDIR)/verify.c >verify_.c |
| 707 | |
| 708 | $(OBJDIR)/verify.o: verify_.c verify.h $(SRCDIR)/config.h |
| 709 | $(XTCC) -o $(OBJDIR)/verify.o -c verify_.c |
| 710 | |
| 711 | verify.h: headers |
| 712 | vfile_.c: $(SRCDIR)/vfile.c translate |
| 713 | ./translate $(SRCDIR)/vfile.c >vfile_.c |
| 714 | |
| 715 | $(OBJDIR)/vfile.o: vfile_.c vfile.h $(SRCDIR)/config.h |
| 716 | $(XTCC) -o $(OBJDIR)/vfile.o -c vfile_.c |
| 717 | |
| 718 | vfile.h: headers |
| 719 | wiki_.c: $(SRCDIR)/wiki.c translate |
| 720 | ./translate $(SRCDIR)/wiki.c >wiki_.c |
| 721 | |
| 722 | $(OBJDIR)/wiki.o: wiki_.c wiki.h $(SRCDIR)/config.h |
| 723 | $(XTCC) -o $(OBJDIR)/wiki.o -c wiki_.c |
| 724 | |
| 725 | wiki.h: headers |
| 726 | wikiformat_.c: $(SRCDIR)/wikiformat.c translate |
| 727 | ./translate $(SRCDIR)/wikiformat.c >wikiformat_.c |
| 728 | |
| 729 | $(OBJDIR)/wikiformat.o: wikiformat_.c wikiformat.h $(SRCDIR)/config.h |
| 730 | $(XTCC) -o $(OBJDIR)/wikiformat.o -c wikiformat_.c |
| 731 | |
| 732 | wikiformat.h: headers |
| 733 | winhttp_.c: $(SRCDIR)/winhttp.c translate |
| 734 | ./translate $(SRCDIR)/winhttp.c >winhttp_.c |
| 735 | |
| 736 | $(OBJDIR)/winhttp.o: winhttp_.c winhttp.h $(SRCDIR)/config.h |
| 737 | $(XTCC) -o $(OBJDIR)/winhttp.o -c winhttp_.c |
| 738 | |
| 739 | winhttp.h: headers |
| 740 | xfer_.c: $(SRCDIR)/xfer.c translate |
| 741 | ./translate $(SRCDIR)/xfer.c >xfer_.c |
| 742 | |
| 743 | $(OBJDIR)/xfer.o: xfer_.c xfer.h $(SRCDIR)/config.h |
| 744 | $(XTCC) -o $(OBJDIR)/xfer.o -c xfer_.c |
| 745 | |
| 746 | xfer.h: headers |
| 747 | zip_.c: $(SRCDIR)/zip.c translate |
| 748 | ./translate $(SRCDIR)/zip.c >zip_.c |
| 749 | |
| 750 | $(OBJDIR)/zip.o: zip_.c zip.h $(SRCDIR)/config.h |
| 751 | $(XTCC) -o $(OBJDIR)/zip.o -c zip_.c |
| 752 | |
| 753 | zip.h: headers |
| 754 | $(OBJDIR)/sqlite3.o: $(SRCDIR)/sqlite3.c |
| 755 | $(XTCC) -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -Dlocaltime=fossil_localtime -c $(SRCDIR)/sqlite3.c -o $(OBJDIR)/sqlite3.o |
| 756 | |
| 757 | $(OBJDIR)/th.o: $(SRCDIR)/th.c |
| 758 | $(XTCC) -I$(SRCDIR) -c $(SRCDIR)/th.c -o $(OBJDIR)/th.o |
| 759 | |
| 760 | $(OBJDIR)/th_lang.o: $(SRCDIR)/th_lang.c |
| 761 | $(XTCC) -I$(SRCDIR) -c $(SRCDIR)/th_lang.c -o $(OBJDIR)/th_lang.o |
| 762 | |
| 763 |
+219
-216
| --- src/main.mk | ||
| +++ src/main.mk | ||
| @@ -151,88 +151,91 @@ | ||
| 151 | 151 | winhttp_.c \ |
| 152 | 152 | xfer_.c \ |
| 153 | 153 | zip_.c |
| 154 | 154 | |
| 155 | 155 | OBJ = \ |
| 156 | - add.o \ | |
| 157 | - allrepo.o \ | |
| 158 | - bag.o \ | |
| 159 | - blob.o \ | |
| 160 | - branch.o \ | |
| 161 | - browse.o \ | |
| 162 | - captcha.o \ | |
| 163 | - cgi.o \ | |
| 164 | - checkin.o \ | |
| 165 | - checkout.o \ | |
| 166 | - clearsign.o \ | |
| 167 | - clone.o \ | |
| 168 | - comformat.o \ | |
| 169 | - configure.o \ | |
| 170 | - content.o \ | |
| 171 | - db.o \ | |
| 172 | - delta.o \ | |
| 173 | - deltacmd.o \ | |
| 174 | - descendants.o \ | |
| 175 | - diff.o \ | |
| 176 | - diffcmd.o \ | |
| 177 | - doc.o \ | |
| 178 | - encode.o \ | |
| 179 | - file.o \ | |
| 180 | - finfo.o \ | |
| 181 | - graph.o \ | |
| 182 | - http.o \ | |
| 183 | - http_socket.o \ | |
| 184 | - http_transport.o \ | |
| 185 | - info.o \ | |
| 186 | - login.o \ | |
| 187 | - main.o \ | |
| 188 | - manifest.o \ | |
| 189 | - md5.o \ | |
| 190 | - merge.o \ | |
| 191 | - merge3.o \ | |
| 192 | - name.o \ | |
| 193 | - pivot.o \ | |
| 194 | - pqueue.o \ | |
| 195 | - printf.o \ | |
| 196 | - rebuild.o \ | |
| 197 | - report.o \ | |
| 198 | - rss.o \ | |
| 199 | - schema.o \ | |
| 200 | - search.o \ | |
| 201 | - setup.o \ | |
| 202 | - sha1.o \ | |
| 203 | - shun.o \ | |
| 204 | - skins.o \ | |
| 205 | - stat.o \ | |
| 206 | - style.o \ | |
| 207 | - sync.o \ | |
| 208 | - tag.o \ | |
| 209 | - th_main.o \ | |
| 210 | - timeline.o \ | |
| 211 | - tkt.o \ | |
| 212 | - tktsetup.o \ | |
| 213 | - undo.o \ | |
| 214 | - update.o \ | |
| 215 | - url.o \ | |
| 216 | - user.o \ | |
| 217 | - verify.o \ | |
| 218 | - vfile.o \ | |
| 219 | - wiki.o \ | |
| 220 | - wikiformat.o \ | |
| 221 | - winhttp.o \ | |
| 222 | - xfer.o \ | |
| 223 | - zip.o | |
| 156 | + $(OBJDIR)/add.o \ | |
| 157 | + $(OBJDIR)/allrepo.o \ | |
| 158 | + $(OBJDIR)/bag.o \ | |
| 159 | + $(OBJDIR)/blob.o \ | |
| 160 | + $(OBJDIR)/branch.o \ | |
| 161 | + $(OBJDIR)/browse.o \ | |
| 162 | + $(OBJDIR)/captcha.o \ | |
| 163 | + $(OBJDIR)/cgi.o \ | |
| 164 | + $(OBJDIR)/checkin.o \ | |
| 165 | + $(OBJDIR)/checkout.o \ | |
| 166 | + $(OBJDIR)/clearsign.o \ | |
| 167 | + $(OBJDIR)/clone.o \ | |
| 168 | + $(OBJDIR)/comformat.o \ | |
| 169 | + $(OBJDIR)/configure.o \ | |
| 170 | + $(OBJDIR)/content.o \ | |
| 171 | + $(OBJDIR)/db.o \ | |
| 172 | + $(OBJDIR)/delta.o \ | |
| 173 | + $(OBJDIR)/deltacmd.o \ | |
| 174 | + $(OBJDIR)/descendants.o \ | |
| 175 | + $(OBJDIR)/diff.o \ | |
| 176 | + $(OBJDIR)/diffcmd.o \ | |
| 177 | + $(OBJDIR)/doc.o \ | |
| 178 | + $(OBJDIR)/encode.o \ | |
| 179 | + $(OBJDIR)/file.o \ | |
| 180 | + $(OBJDIR)/finfo.o \ | |
| 181 | + $(OBJDIR)/graph.o \ | |
| 182 | + $(OBJDIR)/http.o \ | |
| 183 | + $(OBJDIR)/http_socket.o \ | |
| 184 | + $(OBJDIR)/http_transport.o \ | |
| 185 | + $(OBJDIR)/info.o \ | |
| 186 | + $(OBJDIR)/login.o \ | |
| 187 | + $(OBJDIR)/main.o \ | |
| 188 | + $(OBJDIR)/manifest.o \ | |
| 189 | + $(OBJDIR)/md5.o \ | |
| 190 | + $(OBJDIR)/merge.o \ | |
| 191 | + $(OBJDIR)/merge3.o \ | |
| 192 | + $(OBJDIR)/name.o \ | |
| 193 | + $(OBJDIR)/pivot.o \ | |
| 194 | + $(OBJDIR)/pqueue.o \ | |
| 195 | + $(OBJDIR)/printf.o \ | |
| 196 | + $(OBJDIR)/rebuild.o \ | |
| 197 | + $(OBJDIR)/report.o \ | |
| 198 | + $(OBJDIR)/rss.o \ | |
| 199 | + $(OBJDIR)/schema.o \ | |
| 200 | + $(OBJDIR)/search.o \ | |
| 201 | + $(OBJDIR)/setup.o \ | |
| 202 | + $(OBJDIR)/sha1.o \ | |
| 203 | + $(OBJDIR)/shun.o \ | |
| 204 | + $(OBJDIR)/skins.o \ | |
| 205 | + $(OBJDIR)/stat.o \ | |
| 206 | + $(OBJDIR)/style.o \ | |
| 207 | + $(OBJDIR)/sync.o \ | |
| 208 | + $(OBJDIR)/tag.o \ | |
| 209 | + $(OBJDIR)/th_main.o \ | |
| 210 | + $(OBJDIR)/timeline.o \ | |
| 211 | + $(OBJDIR)/tkt.o \ | |
| 212 | + $(OBJDIR)/tktsetup.o \ | |
| 213 | + $(OBJDIR)/undo.o \ | |
| 214 | + $(OBJDIR)/update.o \ | |
| 215 | + $(OBJDIR)/url.o \ | |
| 216 | + $(OBJDIR)/user.o \ | |
| 217 | + $(OBJDIR)/verify.o \ | |
| 218 | + $(OBJDIR)/vfile.o \ | |
| 219 | + $(OBJDIR)/wiki.o \ | |
| 220 | + $(OBJDIR)/wikiformat.o \ | |
| 221 | + $(OBJDIR)/winhttp.o \ | |
| 222 | + $(OBJDIR)/xfer.o \ | |
| 223 | + $(OBJDIR)/zip.o | |
| 224 | 224 | |
| 225 | 225 | APPNAME = fossil$(E) |
| 226 | 226 | |
| 227 | 227 | |
| 228 | 228 | |
| 229 | -all: $(APPNAME) | |
| 229 | +all: $(OBJDIR) $(APPNAME) | |
| 230 | 230 | |
| 231 | 231 | install: $(APPNAME) |
| 232 | 232 | mv $(APPNAME) $(INSTALLDIR) |
| 233 | 233 | |
| 234 | +$(OBJDIR): | |
| 235 | + -mkdir $(OBJDIR) | |
| 236 | + | |
| 234 | 237 | translate: $(SRCDIR)/translate.c |
| 235 | 238 | $(BCC) -o translate $(SRCDIR)/translate.c |
| 236 | 239 | |
| 237 | 240 | makeheaders: $(SRCDIR)/makeheaders.c |
| 238 | 241 | $(BCC) -o makeheaders $(SRCDIR)/makeheaders.c |
| @@ -249,21 +252,21 @@ | ||
| 249 | 252 | VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest |
| 250 | 253 | awk '{ printf "#define MANIFEST_UUID \"%s\"\n", $$1}' $(SRCDIR)/../manifest.uuid >VERSION.h |
| 251 | 254 | awk '{ printf "#define MANIFEST_VERSION \"[%.10s]\"\n", $$1}' $(SRCDIR)/../manifest.uuid >>VERSION.h |
| 252 | 255 | awk '$$1=="D"{printf "#define MANIFEST_DATE \"%s %s\"\n", substr($$2,1,10),substr($$2,12)}' $(SRCDIR)/../manifest >>VERSION.h |
| 253 | 256 | |
| 254 | -$(APPNAME): headers $(OBJ) sqlite3.o th.o th_lang.o | |
| 255 | - $(TCC) -o $(APPNAME) $(OBJ) sqlite3.o th.o th_lang.o $(LIB) | |
| 257 | +$(APPNAME): headers $(OBJ) $(OBJDIR)/sqlite3.o $(OBJDIR)/th.o $(OBJDIR)/th_lang.o | |
| 258 | + $(TCC) -o $(APPNAME) $(OBJ) $(OBJDIR)/sqlite3.o $(OBJDIR)/th.o $(OBJDIR)/th_lang.o $(LIB) | |
| 256 | 259 | |
| 257 | 260 | # This rule prevents make from using its default rules to try build |
| 258 | 261 | # an executable named "manifest" out of the file named "manifest.c" |
| 259 | 262 | # |
| 260 | 263 | $(SRCDIR)/../manifest: |
| 261 | 264 | # noop |
| 262 | 265 | |
| 263 | 266 | clean: |
| 264 | - rm -f *.o *_.c $(APPNAME) VERSION.h | |
| 267 | + rm -f $(OBJDIR)/*.o *_.c $(APPNAME) VERSION.h | |
| 265 | 268 | rm -f translate makeheaders mkindex page_index.h headers |
| 266 | 269 | rm -f add.h allrepo.h bag.h blob.h branch.h browse.h captcha.h cgi.h checkin.h checkout.h clearsign.h clone.h comformat.h configure.h content.h db.h delta.h deltacmd.h descendants.h diff.h diffcmd.h doc.h encode.h file.h finfo.h graph.h http.h http_socket.h http_transport.h info.h login.h main.h manifest.h md5.h merge.h merge3.h name.h pivot.h pqueue.h printf.h rebuild.h report.h rss.h schema.h search.h setup.h sha1.h shun.h skins.h stat.h style.h sync.h tag.h th_main.h timeline.h tkt.h tktsetup.h undo.h update.h url.h user.h verify.h vfile.h wiki.h wikiformat.h winhttp.h xfer.h zip.h |
| 267 | 270 | |
| 268 | 271 | page_index.h: $(TRANS_SRC) mkindex |
| 269 | 272 | ./mkindex $(TRANS_SRC) >$@ |
| @@ -273,487 +276,487 @@ | ||
| 273 | 276 | headers: Makefile |
| 274 | 277 | Makefile: |
| 275 | 278 | add_.c: $(SRCDIR)/add.c translate |
| 276 | 279 | ./translate $(SRCDIR)/add.c >add_.c |
| 277 | 280 | |
| 278 | -add.o: add_.c add.h $(SRCDIR)/config.h | |
| 279 | - $(XTCC) -o add.o -c add_.c | |
| 281 | +$(OBJDIR)/add.o: add_.c add.h $(SRCDIR)/config.h | |
| 282 | + $(XTCC) -o $(OBJDIR)/add.o -c add_.c | |
| 280 | 283 | |
| 281 | 284 | add.h: headers |
| 282 | 285 | allrepo_.c: $(SRCDIR)/allrepo.c translate |
| 283 | 286 | ./translate $(SRCDIR)/allrepo.c >allrepo_.c |
| 284 | 287 | |
| 285 | -allrepo.o: allrepo_.c allrepo.h $(SRCDIR)/config.h | |
| 286 | - $(XTCC) -o allrepo.o -c allrepo_.c | |
| 288 | +$(OBJDIR)/allrepo.o: allrepo_.c allrepo.h $(SRCDIR)/config.h | |
| 289 | + $(XTCC) -o $(OBJDIR)/allrepo.o -c allrepo_.c | |
| 287 | 290 | |
| 288 | 291 | allrepo.h: headers |
| 289 | 292 | bag_.c: $(SRCDIR)/bag.c translate |
| 290 | 293 | ./translate $(SRCDIR)/bag.c >bag_.c |
| 291 | 294 | |
| 292 | -bag.o: bag_.c bag.h $(SRCDIR)/config.h | |
| 293 | - $(XTCC) -o bag.o -c bag_.c | |
| 295 | +$(OBJDIR)/bag.o: bag_.c bag.h $(SRCDIR)/config.h | |
| 296 | + $(XTCC) -o $(OBJDIR)/bag.o -c bag_.c | |
| 294 | 297 | |
| 295 | 298 | bag.h: headers |
| 296 | 299 | blob_.c: $(SRCDIR)/blob.c translate |
| 297 | 300 | ./translate $(SRCDIR)/blob.c >blob_.c |
| 298 | 301 | |
| 299 | -blob.o: blob_.c blob.h $(SRCDIR)/config.h | |
| 300 | - $(XTCC) -o blob.o -c blob_.c | |
| 302 | +$(OBJDIR)/blob.o: blob_.c blob.h $(SRCDIR)/config.h | |
| 303 | + $(XTCC) -o $(OBJDIR)/blob.o -c blob_.c | |
| 301 | 304 | |
| 302 | 305 | blob.h: headers |
| 303 | 306 | branch_.c: $(SRCDIR)/branch.c translate |
| 304 | 307 | ./translate $(SRCDIR)/branch.c >branch_.c |
| 305 | 308 | |
| 306 | -branch.o: branch_.c branch.h $(SRCDIR)/config.h | |
| 307 | - $(XTCC) -o branch.o -c branch_.c | |
| 309 | +$(OBJDIR)/branch.o: branch_.c branch.h $(SRCDIR)/config.h | |
| 310 | + $(XTCC) -o $(OBJDIR)/branch.o -c branch_.c | |
| 308 | 311 | |
| 309 | 312 | branch.h: headers |
| 310 | 313 | browse_.c: $(SRCDIR)/browse.c translate |
| 311 | 314 | ./translate $(SRCDIR)/browse.c >browse_.c |
| 312 | 315 | |
| 313 | -browse.o: browse_.c browse.h $(SRCDIR)/config.h | |
| 314 | - $(XTCC) -o browse.o -c browse_.c | |
| 316 | +$(OBJDIR)/browse.o: browse_.c browse.h $(SRCDIR)/config.h | |
| 317 | + $(XTCC) -o $(OBJDIR)/browse.o -c browse_.c | |
| 315 | 318 | |
| 316 | 319 | browse.h: headers |
| 317 | 320 | captcha_.c: $(SRCDIR)/captcha.c translate |
| 318 | 321 | ./translate $(SRCDIR)/captcha.c >captcha_.c |
| 319 | 322 | |
| 320 | -captcha.o: captcha_.c captcha.h $(SRCDIR)/config.h | |
| 321 | - $(XTCC) -o captcha.o -c captcha_.c | |
| 323 | +$(OBJDIR)/captcha.o: captcha_.c captcha.h $(SRCDIR)/config.h | |
| 324 | + $(XTCC) -o $(OBJDIR)/captcha.o -c captcha_.c | |
| 322 | 325 | |
| 323 | 326 | captcha.h: headers |
| 324 | 327 | cgi_.c: $(SRCDIR)/cgi.c translate |
| 325 | 328 | ./translate $(SRCDIR)/cgi.c >cgi_.c |
| 326 | 329 | |
| 327 | -cgi.o: cgi_.c cgi.h $(SRCDIR)/config.h | |
| 328 | - $(XTCC) -o cgi.o -c cgi_.c | |
| 330 | +$(OBJDIR)/cgi.o: cgi_.c cgi.h $(SRCDIR)/config.h | |
| 331 | + $(XTCC) -o $(OBJDIR)/cgi.o -c cgi_.c | |
| 329 | 332 | |
| 330 | 333 | cgi.h: headers |
| 331 | 334 | checkin_.c: $(SRCDIR)/checkin.c translate |
| 332 | 335 | ./translate $(SRCDIR)/checkin.c >checkin_.c |
| 333 | 336 | |
| 334 | -checkin.o: checkin_.c checkin.h $(SRCDIR)/config.h | |
| 335 | - $(XTCC) -o checkin.o -c checkin_.c | |
| 337 | +$(OBJDIR)/checkin.o: checkin_.c checkin.h $(SRCDIR)/config.h | |
| 338 | + $(XTCC) -o $(OBJDIR)/checkin.o -c checkin_.c | |
| 336 | 339 | |
| 337 | 340 | checkin.h: headers |
| 338 | 341 | checkout_.c: $(SRCDIR)/checkout.c translate |
| 339 | 342 | ./translate $(SRCDIR)/checkout.c >checkout_.c |
| 340 | 343 | |
| 341 | -checkout.o: checkout_.c checkout.h $(SRCDIR)/config.h | |
| 342 | - $(XTCC) -o checkout.o -c checkout_.c | |
| 344 | +$(OBJDIR)/checkout.o: checkout_.c checkout.h $(SRCDIR)/config.h | |
| 345 | + $(XTCC) -o $(OBJDIR)/checkout.o -c checkout_.c | |
| 343 | 346 | |
| 344 | 347 | checkout.h: headers |
| 345 | 348 | clearsign_.c: $(SRCDIR)/clearsign.c translate |
| 346 | 349 | ./translate $(SRCDIR)/clearsign.c >clearsign_.c |
| 347 | 350 | |
| 348 | -clearsign.o: clearsign_.c clearsign.h $(SRCDIR)/config.h | |
| 349 | - $(XTCC) -o clearsign.o -c clearsign_.c | |
| 351 | +$(OBJDIR)/clearsign.o: clearsign_.c clearsign.h $(SRCDIR)/config.h | |
| 352 | + $(XTCC) -o $(OBJDIR)/clearsign.o -c clearsign_.c | |
| 350 | 353 | |
| 351 | 354 | clearsign.h: headers |
| 352 | 355 | clone_.c: $(SRCDIR)/clone.c translate |
| 353 | 356 | ./translate $(SRCDIR)/clone.c >clone_.c |
| 354 | 357 | |
| 355 | -clone.o: clone_.c clone.h $(SRCDIR)/config.h | |
| 356 | - $(XTCC) -o clone.o -c clone_.c | |
| 358 | +$(OBJDIR)/clone.o: clone_.c clone.h $(SRCDIR)/config.h | |
| 359 | + $(XTCC) -o $(OBJDIR)/clone.o -c clone_.c | |
| 357 | 360 | |
| 358 | 361 | clone.h: headers |
| 359 | 362 | comformat_.c: $(SRCDIR)/comformat.c translate |
| 360 | 363 | ./translate $(SRCDIR)/comformat.c >comformat_.c |
| 361 | 364 | |
| 362 | -comformat.o: comformat_.c comformat.h $(SRCDIR)/config.h | |
| 363 | - $(XTCC) -o comformat.o -c comformat_.c | |
| 365 | +$(OBJDIR)/comformat.o: comformat_.c comformat.h $(SRCDIR)/config.h | |
| 366 | + $(XTCC) -o $(OBJDIR)/comformat.o -c comformat_.c | |
| 364 | 367 | |
| 365 | 368 | comformat.h: headers |
| 366 | 369 | configure_.c: $(SRCDIR)/configure.c translate |
| 367 | 370 | ./translate $(SRCDIR)/configure.c >configure_.c |
| 368 | 371 | |
| 369 | -configure.o: configure_.c configure.h $(SRCDIR)/config.h | |
| 370 | - $(XTCC) -o configure.o -c configure_.c | |
| 372 | +$(OBJDIR)/configure.o: configure_.c configure.h $(SRCDIR)/config.h | |
| 373 | + $(XTCC) -o $(OBJDIR)/configure.o -c configure_.c | |
| 371 | 374 | |
| 372 | 375 | configure.h: headers |
| 373 | 376 | content_.c: $(SRCDIR)/content.c translate |
| 374 | 377 | ./translate $(SRCDIR)/content.c >content_.c |
| 375 | 378 | |
| 376 | -content.o: content_.c content.h $(SRCDIR)/config.h | |
| 377 | - $(XTCC) -o content.o -c content_.c | |
| 379 | +$(OBJDIR)/content.o: content_.c content.h $(SRCDIR)/config.h | |
| 380 | + $(XTCC) -o $(OBJDIR)/content.o -c content_.c | |
| 378 | 381 | |
| 379 | 382 | content.h: headers |
| 380 | 383 | db_.c: $(SRCDIR)/db.c translate |
| 381 | 384 | ./translate $(SRCDIR)/db.c >db_.c |
| 382 | 385 | |
| 383 | -db.o: db_.c db.h $(SRCDIR)/config.h | |
| 384 | - $(XTCC) -o db.o -c db_.c | |
| 386 | +$(OBJDIR)/db.o: db_.c db.h $(SRCDIR)/config.h | |
| 387 | + $(XTCC) -o $(OBJDIR)/db.o -c db_.c | |
| 385 | 388 | |
| 386 | 389 | db.h: headers |
| 387 | 390 | delta_.c: $(SRCDIR)/delta.c translate |
| 388 | 391 | ./translate $(SRCDIR)/delta.c >delta_.c |
| 389 | 392 | |
| 390 | -delta.o: delta_.c delta.h $(SRCDIR)/config.h | |
| 391 | - $(XTCC) -o delta.o -c delta_.c | |
| 393 | +$(OBJDIR)/delta.o: delta_.c delta.h $(SRCDIR)/config.h | |
| 394 | + $(XTCC) -o $(OBJDIR)/delta.o -c delta_.c | |
| 392 | 395 | |
| 393 | 396 | delta.h: headers |
| 394 | 397 | deltacmd_.c: $(SRCDIR)/deltacmd.c translate |
| 395 | 398 | ./translate $(SRCDIR)/deltacmd.c >deltacmd_.c |
| 396 | 399 | |
| 397 | -deltacmd.o: deltacmd_.c deltacmd.h $(SRCDIR)/config.h | |
| 398 | - $(XTCC) -o deltacmd.o -c deltacmd_.c | |
| 400 | +$(OBJDIR)/deltacmd.o: deltacmd_.c deltacmd.h $(SRCDIR)/config.h | |
| 401 | + $(XTCC) -o $(OBJDIR)/deltacmd.o -c deltacmd_.c | |
| 399 | 402 | |
| 400 | 403 | deltacmd.h: headers |
| 401 | 404 | descendants_.c: $(SRCDIR)/descendants.c translate |
| 402 | 405 | ./translate $(SRCDIR)/descendants.c >descendants_.c |
| 403 | 406 | |
| 404 | -descendants.o: descendants_.c descendants.h $(SRCDIR)/config.h | |
| 405 | - $(XTCC) -o descendants.o -c descendants_.c | |
| 407 | +$(OBJDIR)/descendants.o: descendants_.c descendants.h $(SRCDIR)/config.h | |
| 408 | + $(XTCC) -o $(OBJDIR)/descendants.o -c descendants_.c | |
| 406 | 409 | |
| 407 | 410 | descendants.h: headers |
| 408 | 411 | diff_.c: $(SRCDIR)/diff.c translate |
| 409 | 412 | ./translate $(SRCDIR)/diff.c >diff_.c |
| 410 | 413 | |
| 411 | -diff.o: diff_.c diff.h $(SRCDIR)/config.h | |
| 412 | - $(XTCC) -o diff.o -c diff_.c | |
| 414 | +$(OBJDIR)/diff.o: diff_.c diff.h $(SRCDIR)/config.h | |
| 415 | + $(XTCC) -o $(OBJDIR)/diff.o -c diff_.c | |
| 413 | 416 | |
| 414 | 417 | diff.h: headers |
| 415 | 418 | diffcmd_.c: $(SRCDIR)/diffcmd.c translate |
| 416 | 419 | ./translate $(SRCDIR)/diffcmd.c >diffcmd_.c |
| 417 | 420 | |
| 418 | -diffcmd.o: diffcmd_.c diffcmd.h $(SRCDIR)/config.h | |
| 419 | - $(XTCC) -o diffcmd.o -c diffcmd_.c | |
| 421 | +$(OBJDIR)/diffcmd.o: diffcmd_.c diffcmd.h $(SRCDIR)/config.h | |
| 422 | + $(XTCC) -o $(OBJDIR)/diffcmd.o -c diffcmd_.c | |
| 420 | 423 | |
| 421 | 424 | diffcmd.h: headers |
| 422 | 425 | doc_.c: $(SRCDIR)/doc.c translate |
| 423 | 426 | ./translate $(SRCDIR)/doc.c >doc_.c |
| 424 | 427 | |
| 425 | -doc.o: doc_.c doc.h $(SRCDIR)/config.h | |
| 426 | - $(XTCC) -o doc.o -c doc_.c | |
| 428 | +$(OBJDIR)/doc.o: doc_.c doc.h $(SRCDIR)/config.h | |
| 429 | + $(XTCC) -o $(OBJDIR)/doc.o -c doc_.c | |
| 427 | 430 | |
| 428 | 431 | doc.h: headers |
| 429 | 432 | encode_.c: $(SRCDIR)/encode.c translate |
| 430 | 433 | ./translate $(SRCDIR)/encode.c >encode_.c |
| 431 | 434 | |
| 432 | -encode.o: encode_.c encode.h $(SRCDIR)/config.h | |
| 433 | - $(XTCC) -o encode.o -c encode_.c | |
| 435 | +$(OBJDIR)/encode.o: encode_.c encode.h $(SRCDIR)/config.h | |
| 436 | + $(XTCC) -o $(OBJDIR)/encode.o -c encode_.c | |
| 434 | 437 | |
| 435 | 438 | encode.h: headers |
| 436 | 439 | file_.c: $(SRCDIR)/file.c translate |
| 437 | 440 | ./translate $(SRCDIR)/file.c >file_.c |
| 438 | 441 | |
| 439 | -file.o: file_.c file.h $(SRCDIR)/config.h | |
| 440 | - $(XTCC) -o file.o -c file_.c | |
| 442 | +$(OBJDIR)/file.o: file_.c file.h $(SRCDIR)/config.h | |
| 443 | + $(XTCC) -o $(OBJDIR)/file.o -c file_.c | |
| 441 | 444 | |
| 442 | 445 | file.h: headers |
| 443 | 446 | finfo_.c: $(SRCDIR)/finfo.c translate |
| 444 | 447 | ./translate $(SRCDIR)/finfo.c >finfo_.c |
| 445 | 448 | |
| 446 | -finfo.o: finfo_.c finfo.h $(SRCDIR)/config.h | |
| 447 | - $(XTCC) -o finfo.o -c finfo_.c | |
| 449 | +$(OBJDIR)/finfo.o: finfo_.c finfo.h $(SRCDIR)/config.h | |
| 450 | + $(XTCC) -o $(OBJDIR)/finfo.o -c finfo_.c | |
| 448 | 451 | |
| 449 | 452 | finfo.h: headers |
| 450 | 453 | graph_.c: $(SRCDIR)/graph.c translate |
| 451 | 454 | ./translate $(SRCDIR)/graph.c >graph_.c |
| 452 | 455 | |
| 453 | -graph.o: graph_.c graph.h $(SRCDIR)/config.h | |
| 454 | - $(XTCC) -o graph.o -c graph_.c | |
| 456 | +$(OBJDIR)/graph.o: graph_.c graph.h $(SRCDIR)/config.h | |
| 457 | + $(XTCC) -o $(OBJDIR)/graph.o -c graph_.c | |
| 455 | 458 | |
| 456 | 459 | graph.h: headers |
| 457 | 460 | http_.c: $(SRCDIR)/http.c translate |
| 458 | 461 | ./translate $(SRCDIR)/http.c >http_.c |
| 459 | 462 | |
| 460 | -http.o: http_.c http.h $(SRCDIR)/config.h | |
| 461 | - $(XTCC) -o http.o -c http_.c | |
| 463 | +$(OBJDIR)/http.o: http_.c http.h $(SRCDIR)/config.h | |
| 464 | + $(XTCC) -o $(OBJDIR)/http.o -c http_.c | |
| 462 | 465 | |
| 463 | 466 | http.h: headers |
| 464 | 467 | http_socket_.c: $(SRCDIR)/http_socket.c translate |
| 465 | 468 | ./translate $(SRCDIR)/http_socket.c >http_socket_.c |
| 466 | 469 | |
| 467 | -http_socket.o: http_socket_.c http_socket.h $(SRCDIR)/config.h | |
| 468 | - $(XTCC) -o http_socket.o -c http_socket_.c | |
| 470 | +$(OBJDIR)/http_socket.o: http_socket_.c http_socket.h $(SRCDIR)/config.h | |
| 471 | + $(XTCC) -o $(OBJDIR)/http_socket.o -c http_socket_.c | |
| 469 | 472 | |
| 470 | 473 | http_socket.h: headers |
| 471 | 474 | http_transport_.c: $(SRCDIR)/http_transport.c translate |
| 472 | 475 | ./translate $(SRCDIR)/http_transport.c >http_transport_.c |
| 473 | 476 | |
| 474 | -http_transport.o: http_transport_.c http_transport.h $(SRCDIR)/config.h | |
| 475 | - $(XTCC) -o http_transport.o -c http_transport_.c | |
| 477 | +$(OBJDIR)/http_transport.o: http_transport_.c http_transport.h $(SRCDIR)/config.h | |
| 478 | + $(XTCC) -o $(OBJDIR)/http_transport.o -c http_transport_.c | |
| 476 | 479 | |
| 477 | 480 | http_transport.h: headers |
| 478 | 481 | info_.c: $(SRCDIR)/info.c translate |
| 479 | 482 | ./translate $(SRCDIR)/info.c >info_.c |
| 480 | 483 | |
| 481 | -info.o: info_.c info.h $(SRCDIR)/config.h | |
| 482 | - $(XTCC) -o info.o -c info_.c | |
| 484 | +$(OBJDIR)/info.o: info_.c info.h $(SRCDIR)/config.h | |
| 485 | + $(XTCC) -o $(OBJDIR)/info.o -c info_.c | |
| 483 | 486 | |
| 484 | 487 | info.h: headers |
| 485 | 488 | login_.c: $(SRCDIR)/login.c translate |
| 486 | 489 | ./translate $(SRCDIR)/login.c >login_.c |
| 487 | 490 | |
| 488 | -login.o: login_.c login.h $(SRCDIR)/config.h | |
| 489 | - $(XTCC) -o login.o -c login_.c | |
| 491 | +$(OBJDIR)/login.o: login_.c login.h $(SRCDIR)/config.h | |
| 492 | + $(XTCC) -o $(OBJDIR)/login.o -c login_.c | |
| 490 | 493 | |
| 491 | 494 | login.h: headers |
| 492 | 495 | main_.c: $(SRCDIR)/main.c translate |
| 493 | 496 | ./translate $(SRCDIR)/main.c >main_.c |
| 494 | 497 | |
| 495 | -main.o: main_.c main.h page_index.h $(SRCDIR)/config.h | |
| 496 | - $(XTCC) -o main.o -c main_.c | |
| 498 | +$(OBJDIR)/main.o: main_.c main.h page_index.h $(SRCDIR)/config.h | |
| 499 | + $(XTCC) -o $(OBJDIR)/main.o -c main_.c | |
| 497 | 500 | |
| 498 | 501 | main.h: headers |
| 499 | 502 | manifest_.c: $(SRCDIR)/manifest.c translate |
| 500 | 503 | ./translate $(SRCDIR)/manifest.c >manifest_.c |
| 501 | 504 | |
| 502 | -manifest.o: manifest_.c manifest.h $(SRCDIR)/config.h | |
| 503 | - $(XTCC) -o manifest.o -c manifest_.c | |
| 505 | +$(OBJDIR)/manifest.o: manifest_.c manifest.h $(SRCDIR)/config.h | |
| 506 | + $(XTCC) -o $(OBJDIR)/manifest.o -c manifest_.c | |
| 504 | 507 | |
| 505 | 508 | manifest.h: headers |
| 506 | 509 | md5_.c: $(SRCDIR)/md5.c translate |
| 507 | 510 | ./translate $(SRCDIR)/md5.c >md5_.c |
| 508 | 511 | |
| 509 | -md5.o: md5_.c md5.h $(SRCDIR)/config.h | |
| 510 | - $(XTCC) -o md5.o -c md5_.c | |
| 512 | +$(OBJDIR)/md5.o: md5_.c md5.h $(SRCDIR)/config.h | |
| 513 | + $(XTCC) -o $(OBJDIR)/md5.o -c md5_.c | |
| 511 | 514 | |
| 512 | 515 | md5.h: headers |
| 513 | 516 | merge_.c: $(SRCDIR)/merge.c translate |
| 514 | 517 | ./translate $(SRCDIR)/merge.c >merge_.c |
| 515 | 518 | |
| 516 | -merge.o: merge_.c merge.h $(SRCDIR)/config.h | |
| 517 | - $(XTCC) -o merge.o -c merge_.c | |
| 519 | +$(OBJDIR)/merge.o: merge_.c merge.h $(SRCDIR)/config.h | |
| 520 | + $(XTCC) -o $(OBJDIR)/merge.o -c merge_.c | |
| 518 | 521 | |
| 519 | 522 | merge.h: headers |
| 520 | 523 | merge3_.c: $(SRCDIR)/merge3.c translate |
| 521 | 524 | ./translate $(SRCDIR)/merge3.c >merge3_.c |
| 522 | 525 | |
| 523 | -merge3.o: merge3_.c merge3.h $(SRCDIR)/config.h | |
| 524 | - $(XTCC) -o merge3.o -c merge3_.c | |
| 526 | +$(OBJDIR)/merge3.o: merge3_.c merge3.h $(SRCDIR)/config.h | |
| 527 | + $(XTCC) -o $(OBJDIR)/merge3.o -c merge3_.c | |
| 525 | 528 | |
| 526 | 529 | merge3.h: headers |
| 527 | 530 | name_.c: $(SRCDIR)/name.c translate |
| 528 | 531 | ./translate $(SRCDIR)/name.c >name_.c |
| 529 | 532 | |
| 530 | -name.o: name_.c name.h $(SRCDIR)/config.h | |
| 531 | - $(XTCC) -o name.o -c name_.c | |
| 533 | +$(OBJDIR)/name.o: name_.c name.h $(SRCDIR)/config.h | |
| 534 | + $(XTCC) -o $(OBJDIR)/name.o -c name_.c | |
| 532 | 535 | |
| 533 | 536 | name.h: headers |
| 534 | 537 | pivot_.c: $(SRCDIR)/pivot.c translate |
| 535 | 538 | ./translate $(SRCDIR)/pivot.c >pivot_.c |
| 536 | 539 | |
| 537 | -pivot.o: pivot_.c pivot.h $(SRCDIR)/config.h | |
| 538 | - $(XTCC) -o pivot.o -c pivot_.c | |
| 540 | +$(OBJDIR)/pivot.o: pivot_.c pivot.h $(SRCDIR)/config.h | |
| 541 | + $(XTCC) -o $(OBJDIR)/pivot.o -c pivot_.c | |
| 539 | 542 | |
| 540 | 543 | pivot.h: headers |
| 541 | 544 | pqueue_.c: $(SRCDIR)/pqueue.c translate |
| 542 | 545 | ./translate $(SRCDIR)/pqueue.c >pqueue_.c |
| 543 | 546 | |
| 544 | -pqueue.o: pqueue_.c pqueue.h $(SRCDIR)/config.h | |
| 545 | - $(XTCC) -o pqueue.o -c pqueue_.c | |
| 547 | +$(OBJDIR)/pqueue.o: pqueue_.c pqueue.h $(SRCDIR)/config.h | |
| 548 | + $(XTCC) -o $(OBJDIR)/pqueue.o -c pqueue_.c | |
| 546 | 549 | |
| 547 | 550 | pqueue.h: headers |
| 548 | 551 | printf_.c: $(SRCDIR)/printf.c translate |
| 549 | 552 | ./translate $(SRCDIR)/printf.c >printf_.c |
| 550 | 553 | |
| 551 | -printf.o: printf_.c printf.h $(SRCDIR)/config.h | |
| 552 | - $(XTCC) -o printf.o -c printf_.c | |
| 554 | +$(OBJDIR)/printf.o: printf_.c printf.h $(SRCDIR)/config.h | |
| 555 | + $(XTCC) -o $(OBJDIR)/printf.o -c printf_.c | |
| 553 | 556 | |
| 554 | 557 | printf.h: headers |
| 555 | 558 | rebuild_.c: $(SRCDIR)/rebuild.c translate |
| 556 | 559 | ./translate $(SRCDIR)/rebuild.c >rebuild_.c |
| 557 | 560 | |
| 558 | -rebuild.o: rebuild_.c rebuild.h $(SRCDIR)/config.h | |
| 559 | - $(XTCC) -o rebuild.o -c rebuild_.c | |
| 561 | +$(OBJDIR)/rebuild.o: rebuild_.c rebuild.h $(SRCDIR)/config.h | |
| 562 | + $(XTCC) -o $(OBJDIR)/rebuild.o -c rebuild_.c | |
| 560 | 563 | |
| 561 | 564 | rebuild.h: headers |
| 562 | 565 | report_.c: $(SRCDIR)/report.c translate |
| 563 | 566 | ./translate $(SRCDIR)/report.c >report_.c |
| 564 | 567 | |
| 565 | -report.o: report_.c report.h $(SRCDIR)/config.h | |
| 566 | - $(XTCC) -o report.o -c report_.c | |
| 568 | +$(OBJDIR)/report.o: report_.c report.h $(SRCDIR)/config.h | |
| 569 | + $(XTCC) -o $(OBJDIR)/report.o -c report_.c | |
| 567 | 570 | |
| 568 | 571 | report.h: headers |
| 569 | 572 | rss_.c: $(SRCDIR)/rss.c translate |
| 570 | 573 | ./translate $(SRCDIR)/rss.c >rss_.c |
| 571 | 574 | |
| 572 | -rss.o: rss_.c rss.h $(SRCDIR)/config.h | |
| 573 | - $(XTCC) -o rss.o -c rss_.c | |
| 575 | +$(OBJDIR)/rss.o: rss_.c rss.h $(SRCDIR)/config.h | |
| 576 | + $(XTCC) -o $(OBJDIR)/rss.o -c rss_.c | |
| 574 | 577 | |
| 575 | 578 | rss.h: headers |
| 576 | 579 | schema_.c: $(SRCDIR)/schema.c translate |
| 577 | 580 | ./translate $(SRCDIR)/schema.c >schema_.c |
| 578 | 581 | |
| 579 | -schema.o: schema_.c schema.h $(SRCDIR)/config.h | |
| 580 | - $(XTCC) -o schema.o -c schema_.c | |
| 582 | +$(OBJDIR)/schema.o: schema_.c schema.h $(SRCDIR)/config.h | |
| 583 | + $(XTCC) -o $(OBJDIR)/schema.o -c schema_.c | |
| 581 | 584 | |
| 582 | 585 | schema.h: headers |
| 583 | 586 | search_.c: $(SRCDIR)/search.c translate |
| 584 | 587 | ./translate $(SRCDIR)/search.c >search_.c |
| 585 | 588 | |
| 586 | -search.o: search_.c search.h $(SRCDIR)/config.h | |
| 587 | - $(XTCC) -o search.o -c search_.c | |
| 589 | +$(OBJDIR)/search.o: search_.c search.h $(SRCDIR)/config.h | |
| 590 | + $(XTCC) -o $(OBJDIR)/search.o -c search_.c | |
| 588 | 591 | |
| 589 | 592 | search.h: headers |
| 590 | 593 | setup_.c: $(SRCDIR)/setup.c translate |
| 591 | 594 | ./translate $(SRCDIR)/setup.c >setup_.c |
| 592 | 595 | |
| 593 | -setup.o: setup_.c setup.h $(SRCDIR)/config.h | |
| 594 | - $(XTCC) -o setup.o -c setup_.c | |
| 596 | +$(OBJDIR)/setup.o: setup_.c setup.h $(SRCDIR)/config.h | |
| 597 | + $(XTCC) -o $(OBJDIR)/setup.o -c setup_.c | |
| 595 | 598 | |
| 596 | 599 | setup.h: headers |
| 597 | 600 | sha1_.c: $(SRCDIR)/sha1.c translate |
| 598 | 601 | ./translate $(SRCDIR)/sha1.c >sha1_.c |
| 599 | 602 | |
| 600 | -sha1.o: sha1_.c sha1.h $(SRCDIR)/config.h | |
| 601 | - $(XTCC) -o sha1.o -c sha1_.c | |
| 603 | +$(OBJDIR)/sha1.o: sha1_.c sha1.h $(SRCDIR)/config.h | |
| 604 | + $(XTCC) -o $(OBJDIR)/sha1.o -c sha1_.c | |
| 602 | 605 | |
| 603 | 606 | sha1.h: headers |
| 604 | 607 | shun_.c: $(SRCDIR)/shun.c translate |
| 605 | 608 | ./translate $(SRCDIR)/shun.c >shun_.c |
| 606 | 609 | |
| 607 | -shun.o: shun_.c shun.h $(SRCDIR)/config.h | |
| 608 | - $(XTCC) -o shun.o -c shun_.c | |
| 610 | +$(OBJDIR)/shun.o: shun_.c shun.h $(SRCDIR)/config.h | |
| 611 | + $(XTCC) -o $(OBJDIR)/shun.o -c shun_.c | |
| 609 | 612 | |
| 610 | 613 | shun.h: headers |
| 611 | 614 | skins_.c: $(SRCDIR)/skins.c translate |
| 612 | 615 | ./translate $(SRCDIR)/skins.c >skins_.c |
| 613 | 616 | |
| 614 | -skins.o: skins_.c skins.h $(SRCDIR)/config.h | |
| 615 | - $(XTCC) -o skins.o -c skins_.c | |
| 617 | +$(OBJDIR)/skins.o: skins_.c skins.h $(SRCDIR)/config.h | |
| 618 | + $(XTCC) -o $(OBJDIR)/skins.o -c skins_.c | |
| 616 | 619 | |
| 617 | 620 | skins.h: headers |
| 618 | 621 | stat_.c: $(SRCDIR)/stat.c translate |
| 619 | 622 | ./translate $(SRCDIR)/stat.c >stat_.c |
| 620 | 623 | |
| 621 | -stat.o: stat_.c stat.h $(SRCDIR)/config.h | |
| 622 | - $(XTCC) -o stat.o -c stat_.c | |
| 624 | +$(OBJDIR)/stat.o: stat_.c stat.h $(SRCDIR)/config.h | |
| 625 | + $(XTCC) -o $(OBJDIR)/stat.o -c stat_.c | |
| 623 | 626 | |
| 624 | 627 | stat.h: headers |
| 625 | 628 | style_.c: $(SRCDIR)/style.c translate |
| 626 | 629 | ./translate $(SRCDIR)/style.c >style_.c |
| 627 | 630 | |
| 628 | -style.o: style_.c style.h $(SRCDIR)/config.h | |
| 629 | - $(XTCC) -o style.o -c style_.c | |
| 631 | +$(OBJDIR)/style.o: style_.c style.h $(SRCDIR)/config.h | |
| 632 | + $(XTCC) -o $(OBJDIR)/style.o -c style_.c | |
| 630 | 633 | |
| 631 | 634 | style.h: headers |
| 632 | 635 | sync_.c: $(SRCDIR)/sync.c translate |
| 633 | 636 | ./translate $(SRCDIR)/sync.c >sync_.c |
| 634 | 637 | |
| 635 | -sync.o: sync_.c sync.h $(SRCDIR)/config.h | |
| 636 | - $(XTCC) -o sync.o -c sync_.c | |
| 638 | +$(OBJDIR)/sync.o: sync_.c sync.h $(SRCDIR)/config.h | |
| 639 | + $(XTCC) -o $(OBJDIR)/sync.o -c sync_.c | |
| 637 | 640 | |
| 638 | 641 | sync.h: headers |
| 639 | 642 | tag_.c: $(SRCDIR)/tag.c translate |
| 640 | 643 | ./translate $(SRCDIR)/tag.c >tag_.c |
| 641 | 644 | |
| 642 | -tag.o: tag_.c tag.h $(SRCDIR)/config.h | |
| 643 | - $(XTCC) -o tag.o -c tag_.c | |
| 645 | +$(OBJDIR)/tag.o: tag_.c tag.h $(SRCDIR)/config.h | |
| 646 | + $(XTCC) -o $(OBJDIR)/tag.o -c tag_.c | |
| 644 | 647 | |
| 645 | 648 | tag.h: headers |
| 646 | 649 | th_main_.c: $(SRCDIR)/th_main.c translate |
| 647 | 650 | ./translate $(SRCDIR)/th_main.c >th_main_.c |
| 648 | 651 | |
| 649 | -th_main.o: th_main_.c th_main.h $(SRCDIR)/config.h | |
| 650 | - $(XTCC) -o th_main.o -c th_main_.c | |
| 652 | +$(OBJDIR)/th_main.o: th_main_.c th_main.h $(SRCDIR)/config.h | |
| 653 | + $(XTCC) -o $(OBJDIR)/th_main.o -c th_main_.c | |
| 651 | 654 | |
| 652 | 655 | th_main.h: headers |
| 653 | 656 | timeline_.c: $(SRCDIR)/timeline.c translate |
| 654 | 657 | ./translate $(SRCDIR)/timeline.c >timeline_.c |
| 655 | 658 | |
| 656 | -timeline.o: timeline_.c timeline.h $(SRCDIR)/config.h | |
| 657 | - $(XTCC) -o timeline.o -c timeline_.c | |
| 659 | +$(OBJDIR)/timeline.o: timeline_.c timeline.h $(SRCDIR)/config.h | |
| 660 | + $(XTCC) -o $(OBJDIR)/timeline.o -c timeline_.c | |
| 658 | 661 | |
| 659 | 662 | timeline.h: headers |
| 660 | 663 | tkt_.c: $(SRCDIR)/tkt.c translate |
| 661 | 664 | ./translate $(SRCDIR)/tkt.c >tkt_.c |
| 662 | 665 | |
| 663 | -tkt.o: tkt_.c tkt.h $(SRCDIR)/config.h | |
| 664 | - $(XTCC) -o tkt.o -c tkt_.c | |
| 666 | +$(OBJDIR)/tkt.o: tkt_.c tkt.h $(SRCDIR)/config.h | |
| 667 | + $(XTCC) -o $(OBJDIR)/tkt.o -c tkt_.c | |
| 665 | 668 | |
| 666 | 669 | tkt.h: headers |
| 667 | 670 | tktsetup_.c: $(SRCDIR)/tktsetup.c translate |
| 668 | 671 | ./translate $(SRCDIR)/tktsetup.c >tktsetup_.c |
| 669 | 672 | |
| 670 | -tktsetup.o: tktsetup_.c tktsetup.h $(SRCDIR)/config.h | |
| 671 | - $(XTCC) -o tktsetup.o -c tktsetup_.c | |
| 673 | +$(OBJDIR)/tktsetup.o: tktsetup_.c tktsetup.h $(SRCDIR)/config.h | |
| 674 | + $(XTCC) -o $(OBJDIR)/tktsetup.o -c tktsetup_.c | |
| 672 | 675 | |
| 673 | 676 | tktsetup.h: headers |
| 674 | 677 | undo_.c: $(SRCDIR)/undo.c translate |
| 675 | 678 | ./translate $(SRCDIR)/undo.c >undo_.c |
| 676 | 679 | |
| 677 | -undo.o: undo_.c undo.h $(SRCDIR)/config.h | |
| 678 | - $(XTCC) -o undo.o -c undo_.c | |
| 680 | +$(OBJDIR)/undo.o: undo_.c undo.h $(SRCDIR)/config.h | |
| 681 | + $(XTCC) -o $(OBJDIR)/undo.o -c undo_.c | |
| 679 | 682 | |
| 680 | 683 | undo.h: headers |
| 681 | 684 | update_.c: $(SRCDIR)/update.c translate |
| 682 | 685 | ./translate $(SRCDIR)/update.c >update_.c |
| 683 | 686 | |
| 684 | -update.o: update_.c update.h $(SRCDIR)/config.h | |
| 685 | - $(XTCC) -o update.o -c update_.c | |
| 687 | +$(OBJDIR)/update.o: update_.c update.h $(SRCDIR)/config.h | |
| 688 | + $(XTCC) -o $(OBJDIR)/update.o -c update_.c | |
| 686 | 689 | |
| 687 | 690 | update.h: headers |
| 688 | 691 | url_.c: $(SRCDIR)/url.c translate |
| 689 | 692 | ./translate $(SRCDIR)/url.c >url_.c |
| 690 | 693 | |
| 691 | -url.o: url_.c url.h $(SRCDIR)/config.h | |
| 692 | - $(XTCC) -o url.o -c url_.c | |
| 694 | +$(OBJDIR)/url.o: url_.c url.h $(SRCDIR)/config.h | |
| 695 | + $(XTCC) -o $(OBJDIR)/url.o -c url_.c | |
| 693 | 696 | |
| 694 | 697 | url.h: headers |
| 695 | 698 | user_.c: $(SRCDIR)/user.c translate |
| 696 | 699 | ./translate $(SRCDIR)/user.c >user_.c |
| 697 | 700 | |
| 698 | -user.o: user_.c user.h $(SRCDIR)/config.h | |
| 699 | - $(XTCC) -o user.o -c user_.c | |
| 701 | +$(OBJDIR)/user.o: user_.c user.h $(SRCDIR)/config.h | |
| 702 | + $(XTCC) -o $(OBJDIR)/user.o -c user_.c | |
| 700 | 703 | |
| 701 | 704 | user.h: headers |
| 702 | 705 | verify_.c: $(SRCDIR)/verify.c translate |
| 703 | 706 | ./translate $(SRCDIR)/verify.c >verify_.c |
| 704 | 707 | |
| 705 | -verify.o: verify_.c verify.h $(SRCDIR)/config.h | |
| 706 | - $(XTCC) -o verify.o -c verify_.c | |
| 708 | +$(OBJDIR)/verify.o: verify_.c verify.h $(SRCDIR)/config.h | |
| 709 | + $(XTCC) -o $(OBJDIR)/verify.o -c verify_.c | |
| 707 | 710 | |
| 708 | 711 | verify.h: headers |
| 709 | 712 | vfile_.c: $(SRCDIR)/vfile.c translate |
| 710 | 713 | ./translate $(SRCDIR)/vfile.c >vfile_.c |
| 711 | 714 | |
| 712 | -vfile.o: vfile_.c vfile.h $(SRCDIR)/config.h | |
| 713 | - $(XTCC) -o vfile.o -c vfile_.c | |
| 715 | +$(OBJDIR)/vfile.o: vfile_.c vfile.h $(SRCDIR)/config.h | |
| 716 | + $(XTCC) -o $(OBJDIR)/vfile.o -c vfile_.c | |
| 714 | 717 | |
| 715 | 718 | vfile.h: headers |
| 716 | 719 | wiki_.c: $(SRCDIR)/wiki.c translate |
| 717 | 720 | ./translate $(SRCDIR)/wiki.c >wiki_.c |
| 718 | 721 | |
| 719 | -wiki.o: wiki_.c wiki.h $(SRCDIR)/config.h | |
| 720 | - $(XTCC) -o wiki.o -c wiki_.c | |
| 722 | +$(OBJDIR)/wiki.o: wiki_.c wiki.h $(SRCDIR)/config.h | |
| 723 | + $(XTCC) -o $(OBJDIR)/wiki.o -c wiki_.c | |
| 721 | 724 | |
| 722 | 725 | wiki.h: headers |
| 723 | 726 | wikiformat_.c: $(SRCDIR)/wikiformat.c translate |
| 724 | 727 | ./translate $(SRCDIR)/wikiformat.c >wikiformat_.c |
| 725 | 728 | |
| 726 | -wikiformat.o: wikiformat_.c wikiformat.h $(SRCDIR)/config.h | |
| 727 | - $(XTCC) -o wikiformat.o -c wikiformat_.c | |
| 729 | +$(OBJDIR)/wikiformat.o: wikiformat_.c wikiformat.h $(SRCDIR)/config.h | |
| 730 | + $(XTCC) -o $(OBJDIR)/wikiformat.o -c wikiformat_.c | |
| 728 | 731 | |
| 729 | 732 | wikiformat.h: headers |
| 730 | 733 | winhttp_.c: $(SRCDIR)/winhttp.c translate |
| 731 | 734 | ./translate $(SRCDIR)/winhttp.c >winhttp_.c |
| 732 | 735 | |
| 733 | -winhttp.o: winhttp_.c winhttp.h $(SRCDIR)/config.h | |
| 734 | - $(XTCC) -o winhttp.o -c winhttp_.c | |
| 736 | +$(OBJDIR)/winhttp.o: winhttp_.c winhttp.h $(SRCDIR)/config.h | |
| 737 | + $(XTCC) -o $(OBJDIR)/winhttp.o -c winhttp_.c | |
| 735 | 738 | |
| 736 | 739 | winhttp.h: headers |
| 737 | 740 | xfer_.c: $(SRCDIR)/xfer.c translate |
| 738 | 741 | ./translate $(SRCDIR)/xfer.c >xfer_.c |
| 739 | 742 | |
| 740 | -xfer.o: xfer_.c xfer.h $(SRCDIR)/config.h | |
| 741 | - $(XTCC) -o xfer.o -c xfer_.c | |
| 743 | +$(OBJDIR)/xfer.o: xfer_.c xfer.h $(SRCDIR)/config.h | |
| 744 | + $(XTCC) -o $(OBJDIR)/xfer.o -c xfer_.c | |
| 742 | 745 | |
| 743 | 746 | xfer.h: headers |
| 744 | 747 | zip_.c: $(SRCDIR)/zip.c translate |
| 745 | 748 | ./translate $(SRCDIR)/zip.c >zip_.c |
| 746 | 749 | |
| 747 | -zip.o: zip_.c zip.h $(SRCDIR)/config.h | |
| 748 | - $(XTCC) -o zip.o -c zip_.c | |
| 750 | +$(OBJDIR)/zip.o: zip_.c zip.h $(SRCDIR)/config.h | |
| 751 | + $(XTCC) -o $(OBJDIR)/zip.o -c zip_.c | |
| 749 | 752 | |
| 750 | 753 | zip.h: headers |
| 751 | -sqlite3.o: $(SRCDIR)/sqlite3.c | |
| 752 | - $(XTCC) -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -Dlocaltime=fossil_localtime -c $(SRCDIR)/sqlite3.c -o sqlite3.o | |
| 753 | - | |
| 754 | -th.o: $(SRCDIR)/th.c | |
| 755 | - $(XTCC) -I$(SRCDIR) -c $(SRCDIR)/th.c -o th.o | |
| 756 | - | |
| 757 | -th_lang.o: $(SRCDIR)/th_lang.c | |
| 758 | - $(XTCC) -I$(SRCDIR) -c $(SRCDIR)/th_lang.c -o th_lang.o | |
| 754 | +$(OBJDIR)/sqlite3.o: $(SRCDIR)/sqlite3.c | |
| 755 | + $(XTCC) -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -Dlocaltime=fossil_localtime -c $(SRCDIR)/sqlite3.c -o $(OBJDIR)/sqlite3.o | |
| 756 | + | |
| 757 | +$(OBJDIR)/th.o: $(SRCDIR)/th.c | |
| 758 | + $(XTCC) -I$(SRCDIR) -c $(SRCDIR)/th.c -o $(OBJDIR)/th.o | |
| 759 | + | |
| 760 | +$(OBJDIR)/th_lang.o: $(SRCDIR)/th_lang.c | |
| 761 | + $(XTCC) -I$(SRCDIR) -c $(SRCDIR)/th_lang.c -o $(OBJDIR)/th_lang.o | |
| 759 | 762 | |
| 760 | 763 |
| --- src/main.mk | |
| +++ src/main.mk | |
| @@ -151,88 +151,91 @@ | |
| 151 | winhttp_.c \ |
| 152 | xfer_.c \ |
| 153 | zip_.c |
| 154 | |
| 155 | OBJ = \ |
| 156 | add.o \ |
| 157 | allrepo.o \ |
| 158 | bag.o \ |
| 159 | blob.o \ |
| 160 | branch.o \ |
| 161 | browse.o \ |
| 162 | captcha.o \ |
| 163 | cgi.o \ |
| 164 | checkin.o \ |
| 165 | checkout.o \ |
| 166 | clearsign.o \ |
| 167 | clone.o \ |
| 168 | comformat.o \ |
| 169 | configure.o \ |
| 170 | content.o \ |
| 171 | db.o \ |
| 172 | delta.o \ |
| 173 | deltacmd.o \ |
| 174 | descendants.o \ |
| 175 | diff.o \ |
| 176 | diffcmd.o \ |
| 177 | doc.o \ |
| 178 | encode.o \ |
| 179 | file.o \ |
| 180 | finfo.o \ |
| 181 | graph.o \ |
| 182 | http.o \ |
| 183 | http_socket.o \ |
| 184 | http_transport.o \ |
| 185 | info.o \ |
| 186 | login.o \ |
| 187 | main.o \ |
| 188 | manifest.o \ |
| 189 | md5.o \ |
| 190 | merge.o \ |
| 191 | merge3.o \ |
| 192 | name.o \ |
| 193 | pivot.o \ |
| 194 | pqueue.o \ |
| 195 | printf.o \ |
| 196 | rebuild.o \ |
| 197 | report.o \ |
| 198 | rss.o \ |
| 199 | schema.o \ |
| 200 | search.o \ |
| 201 | setup.o \ |
| 202 | sha1.o \ |
| 203 | shun.o \ |
| 204 | skins.o \ |
| 205 | stat.o \ |
| 206 | style.o \ |
| 207 | sync.o \ |
| 208 | tag.o \ |
| 209 | th_main.o \ |
| 210 | timeline.o \ |
| 211 | tkt.o \ |
| 212 | tktsetup.o \ |
| 213 | undo.o \ |
| 214 | update.o \ |
| 215 | url.o \ |
| 216 | user.o \ |
| 217 | verify.o \ |
| 218 | vfile.o \ |
| 219 | wiki.o \ |
| 220 | wikiformat.o \ |
| 221 | winhttp.o \ |
| 222 | xfer.o \ |
| 223 | zip.o |
| 224 | |
| 225 | APPNAME = fossil$(E) |
| 226 | |
| 227 | |
| 228 | |
| 229 | all: $(APPNAME) |
| 230 | |
| 231 | install: $(APPNAME) |
| 232 | mv $(APPNAME) $(INSTALLDIR) |
| 233 | |
| 234 | translate: $(SRCDIR)/translate.c |
| 235 | $(BCC) -o translate $(SRCDIR)/translate.c |
| 236 | |
| 237 | makeheaders: $(SRCDIR)/makeheaders.c |
| 238 | $(BCC) -o makeheaders $(SRCDIR)/makeheaders.c |
| @@ -249,21 +252,21 @@ | |
| 249 | VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest |
| 250 | awk '{ printf "#define MANIFEST_UUID \"%s\"\n", $$1}' $(SRCDIR)/../manifest.uuid >VERSION.h |
| 251 | awk '{ printf "#define MANIFEST_VERSION \"[%.10s]\"\n", $$1}' $(SRCDIR)/../manifest.uuid >>VERSION.h |
| 252 | awk '$$1=="D"{printf "#define MANIFEST_DATE \"%s %s\"\n", substr($$2,1,10),substr($$2,12)}' $(SRCDIR)/../manifest >>VERSION.h |
| 253 | |
| 254 | $(APPNAME): headers $(OBJ) sqlite3.o th.o th_lang.o |
| 255 | $(TCC) -o $(APPNAME) $(OBJ) sqlite3.o th.o th_lang.o $(LIB) |
| 256 | |
| 257 | # This rule prevents make from using its default rules to try build |
| 258 | # an executable named "manifest" out of the file named "manifest.c" |
| 259 | # |
| 260 | $(SRCDIR)/../manifest: |
| 261 | # noop |
| 262 | |
| 263 | clean: |
| 264 | rm -f *.o *_.c $(APPNAME) VERSION.h |
| 265 | rm -f translate makeheaders mkindex page_index.h headers |
| 266 | rm -f add.h allrepo.h bag.h blob.h branch.h browse.h captcha.h cgi.h checkin.h checkout.h clearsign.h clone.h comformat.h configure.h content.h db.h delta.h deltacmd.h descendants.h diff.h diffcmd.h doc.h encode.h file.h finfo.h graph.h http.h http_socket.h http_transport.h info.h login.h main.h manifest.h md5.h merge.h merge3.h name.h pivot.h pqueue.h printf.h rebuild.h report.h rss.h schema.h search.h setup.h sha1.h shun.h skins.h stat.h style.h sync.h tag.h th_main.h timeline.h tkt.h tktsetup.h undo.h update.h url.h user.h verify.h vfile.h wiki.h wikiformat.h winhttp.h xfer.h zip.h |
| 267 | |
| 268 | page_index.h: $(TRANS_SRC) mkindex |
| 269 | ./mkindex $(TRANS_SRC) >$@ |
| @@ -273,487 +276,487 @@ | |
| 273 | headers: Makefile |
| 274 | Makefile: |
| 275 | add_.c: $(SRCDIR)/add.c translate |
| 276 | ./translate $(SRCDIR)/add.c >add_.c |
| 277 | |
| 278 | add.o: add_.c add.h $(SRCDIR)/config.h |
| 279 | $(XTCC) -o add.o -c add_.c |
| 280 | |
| 281 | add.h: headers |
| 282 | allrepo_.c: $(SRCDIR)/allrepo.c translate |
| 283 | ./translate $(SRCDIR)/allrepo.c >allrepo_.c |
| 284 | |
| 285 | allrepo.o: allrepo_.c allrepo.h $(SRCDIR)/config.h |
| 286 | $(XTCC) -o allrepo.o -c allrepo_.c |
| 287 | |
| 288 | allrepo.h: headers |
| 289 | bag_.c: $(SRCDIR)/bag.c translate |
| 290 | ./translate $(SRCDIR)/bag.c >bag_.c |
| 291 | |
| 292 | bag.o: bag_.c bag.h $(SRCDIR)/config.h |
| 293 | $(XTCC) -o bag.o -c bag_.c |
| 294 | |
| 295 | bag.h: headers |
| 296 | blob_.c: $(SRCDIR)/blob.c translate |
| 297 | ./translate $(SRCDIR)/blob.c >blob_.c |
| 298 | |
| 299 | blob.o: blob_.c blob.h $(SRCDIR)/config.h |
| 300 | $(XTCC) -o blob.o -c blob_.c |
| 301 | |
| 302 | blob.h: headers |
| 303 | branch_.c: $(SRCDIR)/branch.c translate |
| 304 | ./translate $(SRCDIR)/branch.c >branch_.c |
| 305 | |
| 306 | branch.o: branch_.c branch.h $(SRCDIR)/config.h |
| 307 | $(XTCC) -o branch.o -c branch_.c |
| 308 | |
| 309 | branch.h: headers |
| 310 | browse_.c: $(SRCDIR)/browse.c translate |
| 311 | ./translate $(SRCDIR)/browse.c >browse_.c |
| 312 | |
| 313 | browse.o: browse_.c browse.h $(SRCDIR)/config.h |
| 314 | $(XTCC) -o browse.o -c browse_.c |
| 315 | |
| 316 | browse.h: headers |
| 317 | captcha_.c: $(SRCDIR)/captcha.c translate |
| 318 | ./translate $(SRCDIR)/captcha.c >captcha_.c |
| 319 | |
| 320 | captcha.o: captcha_.c captcha.h $(SRCDIR)/config.h |
| 321 | $(XTCC) -o captcha.o -c captcha_.c |
| 322 | |
| 323 | captcha.h: headers |
| 324 | cgi_.c: $(SRCDIR)/cgi.c translate |
| 325 | ./translate $(SRCDIR)/cgi.c >cgi_.c |
| 326 | |
| 327 | cgi.o: cgi_.c cgi.h $(SRCDIR)/config.h |
| 328 | $(XTCC) -o cgi.o -c cgi_.c |
| 329 | |
| 330 | cgi.h: headers |
| 331 | checkin_.c: $(SRCDIR)/checkin.c translate |
| 332 | ./translate $(SRCDIR)/checkin.c >checkin_.c |
| 333 | |
| 334 | checkin.o: checkin_.c checkin.h $(SRCDIR)/config.h |
| 335 | $(XTCC) -o checkin.o -c checkin_.c |
| 336 | |
| 337 | checkin.h: headers |
| 338 | checkout_.c: $(SRCDIR)/checkout.c translate |
| 339 | ./translate $(SRCDIR)/checkout.c >checkout_.c |
| 340 | |
| 341 | checkout.o: checkout_.c checkout.h $(SRCDIR)/config.h |
| 342 | $(XTCC) -o checkout.o -c checkout_.c |
| 343 | |
| 344 | checkout.h: headers |
| 345 | clearsign_.c: $(SRCDIR)/clearsign.c translate |
| 346 | ./translate $(SRCDIR)/clearsign.c >clearsign_.c |
| 347 | |
| 348 | clearsign.o: clearsign_.c clearsign.h $(SRCDIR)/config.h |
| 349 | $(XTCC) -o clearsign.o -c clearsign_.c |
| 350 | |
| 351 | clearsign.h: headers |
| 352 | clone_.c: $(SRCDIR)/clone.c translate |
| 353 | ./translate $(SRCDIR)/clone.c >clone_.c |
| 354 | |
| 355 | clone.o: clone_.c clone.h $(SRCDIR)/config.h |
| 356 | $(XTCC) -o clone.o -c clone_.c |
| 357 | |
| 358 | clone.h: headers |
| 359 | comformat_.c: $(SRCDIR)/comformat.c translate |
| 360 | ./translate $(SRCDIR)/comformat.c >comformat_.c |
| 361 | |
| 362 | comformat.o: comformat_.c comformat.h $(SRCDIR)/config.h |
| 363 | $(XTCC) -o comformat.o -c comformat_.c |
| 364 | |
| 365 | comformat.h: headers |
| 366 | configure_.c: $(SRCDIR)/configure.c translate |
| 367 | ./translate $(SRCDIR)/configure.c >configure_.c |
| 368 | |
| 369 | configure.o: configure_.c configure.h $(SRCDIR)/config.h |
| 370 | $(XTCC) -o configure.o -c configure_.c |
| 371 | |
| 372 | configure.h: headers |
| 373 | content_.c: $(SRCDIR)/content.c translate |
| 374 | ./translate $(SRCDIR)/content.c >content_.c |
| 375 | |
| 376 | content.o: content_.c content.h $(SRCDIR)/config.h |
| 377 | $(XTCC) -o content.o -c content_.c |
| 378 | |
| 379 | content.h: headers |
| 380 | db_.c: $(SRCDIR)/db.c translate |
| 381 | ./translate $(SRCDIR)/db.c >db_.c |
| 382 | |
| 383 | db.o: db_.c db.h $(SRCDIR)/config.h |
| 384 | $(XTCC) -o db.o -c db_.c |
| 385 | |
| 386 | db.h: headers |
| 387 | delta_.c: $(SRCDIR)/delta.c translate |
| 388 | ./translate $(SRCDIR)/delta.c >delta_.c |
| 389 | |
| 390 | delta.o: delta_.c delta.h $(SRCDIR)/config.h |
| 391 | $(XTCC) -o delta.o -c delta_.c |
| 392 | |
| 393 | delta.h: headers |
| 394 | deltacmd_.c: $(SRCDIR)/deltacmd.c translate |
| 395 | ./translate $(SRCDIR)/deltacmd.c >deltacmd_.c |
| 396 | |
| 397 | deltacmd.o: deltacmd_.c deltacmd.h $(SRCDIR)/config.h |
| 398 | $(XTCC) -o deltacmd.o -c deltacmd_.c |
| 399 | |
| 400 | deltacmd.h: headers |
| 401 | descendants_.c: $(SRCDIR)/descendants.c translate |
| 402 | ./translate $(SRCDIR)/descendants.c >descendants_.c |
| 403 | |
| 404 | descendants.o: descendants_.c descendants.h $(SRCDIR)/config.h |
| 405 | $(XTCC) -o descendants.o -c descendants_.c |
| 406 | |
| 407 | descendants.h: headers |
| 408 | diff_.c: $(SRCDIR)/diff.c translate |
| 409 | ./translate $(SRCDIR)/diff.c >diff_.c |
| 410 | |
| 411 | diff.o: diff_.c diff.h $(SRCDIR)/config.h |
| 412 | $(XTCC) -o diff.o -c diff_.c |
| 413 | |
| 414 | diff.h: headers |
| 415 | diffcmd_.c: $(SRCDIR)/diffcmd.c translate |
| 416 | ./translate $(SRCDIR)/diffcmd.c >diffcmd_.c |
| 417 | |
| 418 | diffcmd.o: diffcmd_.c diffcmd.h $(SRCDIR)/config.h |
| 419 | $(XTCC) -o diffcmd.o -c diffcmd_.c |
| 420 | |
| 421 | diffcmd.h: headers |
| 422 | doc_.c: $(SRCDIR)/doc.c translate |
| 423 | ./translate $(SRCDIR)/doc.c >doc_.c |
| 424 | |
| 425 | doc.o: doc_.c doc.h $(SRCDIR)/config.h |
| 426 | $(XTCC) -o doc.o -c doc_.c |
| 427 | |
| 428 | doc.h: headers |
| 429 | encode_.c: $(SRCDIR)/encode.c translate |
| 430 | ./translate $(SRCDIR)/encode.c >encode_.c |
| 431 | |
| 432 | encode.o: encode_.c encode.h $(SRCDIR)/config.h |
| 433 | $(XTCC) -o encode.o -c encode_.c |
| 434 | |
| 435 | encode.h: headers |
| 436 | file_.c: $(SRCDIR)/file.c translate |
| 437 | ./translate $(SRCDIR)/file.c >file_.c |
| 438 | |
| 439 | file.o: file_.c file.h $(SRCDIR)/config.h |
| 440 | $(XTCC) -o file.o -c file_.c |
| 441 | |
| 442 | file.h: headers |
| 443 | finfo_.c: $(SRCDIR)/finfo.c translate |
| 444 | ./translate $(SRCDIR)/finfo.c >finfo_.c |
| 445 | |
| 446 | finfo.o: finfo_.c finfo.h $(SRCDIR)/config.h |
| 447 | $(XTCC) -o finfo.o -c finfo_.c |
| 448 | |
| 449 | finfo.h: headers |
| 450 | graph_.c: $(SRCDIR)/graph.c translate |
| 451 | ./translate $(SRCDIR)/graph.c >graph_.c |
| 452 | |
| 453 | graph.o: graph_.c graph.h $(SRCDIR)/config.h |
| 454 | $(XTCC) -o graph.o -c graph_.c |
| 455 | |
| 456 | graph.h: headers |
| 457 | http_.c: $(SRCDIR)/http.c translate |
| 458 | ./translate $(SRCDIR)/http.c >http_.c |
| 459 | |
| 460 | http.o: http_.c http.h $(SRCDIR)/config.h |
| 461 | $(XTCC) -o http.o -c http_.c |
| 462 | |
| 463 | http.h: headers |
| 464 | http_socket_.c: $(SRCDIR)/http_socket.c translate |
| 465 | ./translate $(SRCDIR)/http_socket.c >http_socket_.c |
| 466 | |
| 467 | http_socket.o: http_socket_.c http_socket.h $(SRCDIR)/config.h |
| 468 | $(XTCC) -o http_socket.o -c http_socket_.c |
| 469 | |
| 470 | http_socket.h: headers |
| 471 | http_transport_.c: $(SRCDIR)/http_transport.c translate |
| 472 | ./translate $(SRCDIR)/http_transport.c >http_transport_.c |
| 473 | |
| 474 | http_transport.o: http_transport_.c http_transport.h $(SRCDIR)/config.h |
| 475 | $(XTCC) -o http_transport.o -c http_transport_.c |
| 476 | |
| 477 | http_transport.h: headers |
| 478 | info_.c: $(SRCDIR)/info.c translate |
| 479 | ./translate $(SRCDIR)/info.c >info_.c |
| 480 | |
| 481 | info.o: info_.c info.h $(SRCDIR)/config.h |
| 482 | $(XTCC) -o info.o -c info_.c |
| 483 | |
| 484 | info.h: headers |
| 485 | login_.c: $(SRCDIR)/login.c translate |
| 486 | ./translate $(SRCDIR)/login.c >login_.c |
| 487 | |
| 488 | login.o: login_.c login.h $(SRCDIR)/config.h |
| 489 | $(XTCC) -o login.o -c login_.c |
| 490 | |
| 491 | login.h: headers |
| 492 | main_.c: $(SRCDIR)/main.c translate |
| 493 | ./translate $(SRCDIR)/main.c >main_.c |
| 494 | |
| 495 | main.o: main_.c main.h page_index.h $(SRCDIR)/config.h |
| 496 | $(XTCC) -o main.o -c main_.c |
| 497 | |
| 498 | main.h: headers |
| 499 | manifest_.c: $(SRCDIR)/manifest.c translate |
| 500 | ./translate $(SRCDIR)/manifest.c >manifest_.c |
| 501 | |
| 502 | manifest.o: manifest_.c manifest.h $(SRCDIR)/config.h |
| 503 | $(XTCC) -o manifest.o -c manifest_.c |
| 504 | |
| 505 | manifest.h: headers |
| 506 | md5_.c: $(SRCDIR)/md5.c translate |
| 507 | ./translate $(SRCDIR)/md5.c >md5_.c |
| 508 | |
| 509 | md5.o: md5_.c md5.h $(SRCDIR)/config.h |
| 510 | $(XTCC) -o md5.o -c md5_.c |
| 511 | |
| 512 | md5.h: headers |
| 513 | merge_.c: $(SRCDIR)/merge.c translate |
| 514 | ./translate $(SRCDIR)/merge.c >merge_.c |
| 515 | |
| 516 | merge.o: merge_.c merge.h $(SRCDIR)/config.h |
| 517 | $(XTCC) -o merge.o -c merge_.c |
| 518 | |
| 519 | merge.h: headers |
| 520 | merge3_.c: $(SRCDIR)/merge3.c translate |
| 521 | ./translate $(SRCDIR)/merge3.c >merge3_.c |
| 522 | |
| 523 | merge3.o: merge3_.c merge3.h $(SRCDIR)/config.h |
| 524 | $(XTCC) -o merge3.o -c merge3_.c |
| 525 | |
| 526 | merge3.h: headers |
| 527 | name_.c: $(SRCDIR)/name.c translate |
| 528 | ./translate $(SRCDIR)/name.c >name_.c |
| 529 | |
| 530 | name.o: name_.c name.h $(SRCDIR)/config.h |
| 531 | $(XTCC) -o name.o -c name_.c |
| 532 | |
| 533 | name.h: headers |
| 534 | pivot_.c: $(SRCDIR)/pivot.c translate |
| 535 | ./translate $(SRCDIR)/pivot.c >pivot_.c |
| 536 | |
| 537 | pivot.o: pivot_.c pivot.h $(SRCDIR)/config.h |
| 538 | $(XTCC) -o pivot.o -c pivot_.c |
| 539 | |
| 540 | pivot.h: headers |
| 541 | pqueue_.c: $(SRCDIR)/pqueue.c translate |
| 542 | ./translate $(SRCDIR)/pqueue.c >pqueue_.c |
| 543 | |
| 544 | pqueue.o: pqueue_.c pqueue.h $(SRCDIR)/config.h |
| 545 | $(XTCC) -o pqueue.o -c pqueue_.c |
| 546 | |
| 547 | pqueue.h: headers |
| 548 | printf_.c: $(SRCDIR)/printf.c translate |
| 549 | ./translate $(SRCDIR)/printf.c >printf_.c |
| 550 | |
| 551 | printf.o: printf_.c printf.h $(SRCDIR)/config.h |
| 552 | $(XTCC) -o printf.o -c printf_.c |
| 553 | |
| 554 | printf.h: headers |
| 555 | rebuild_.c: $(SRCDIR)/rebuild.c translate |
| 556 | ./translate $(SRCDIR)/rebuild.c >rebuild_.c |
| 557 | |
| 558 | rebuild.o: rebuild_.c rebuild.h $(SRCDIR)/config.h |
| 559 | $(XTCC) -o rebuild.o -c rebuild_.c |
| 560 | |
| 561 | rebuild.h: headers |
| 562 | report_.c: $(SRCDIR)/report.c translate |
| 563 | ./translate $(SRCDIR)/report.c >report_.c |
| 564 | |
| 565 | report.o: report_.c report.h $(SRCDIR)/config.h |
| 566 | $(XTCC) -o report.o -c report_.c |
| 567 | |
| 568 | report.h: headers |
| 569 | rss_.c: $(SRCDIR)/rss.c translate |
| 570 | ./translate $(SRCDIR)/rss.c >rss_.c |
| 571 | |
| 572 | rss.o: rss_.c rss.h $(SRCDIR)/config.h |
| 573 | $(XTCC) -o rss.o -c rss_.c |
| 574 | |
| 575 | rss.h: headers |
| 576 | schema_.c: $(SRCDIR)/schema.c translate |
| 577 | ./translate $(SRCDIR)/schema.c >schema_.c |
| 578 | |
| 579 | schema.o: schema_.c schema.h $(SRCDIR)/config.h |
| 580 | $(XTCC) -o schema.o -c schema_.c |
| 581 | |
| 582 | schema.h: headers |
| 583 | search_.c: $(SRCDIR)/search.c translate |
| 584 | ./translate $(SRCDIR)/search.c >search_.c |
| 585 | |
| 586 | search.o: search_.c search.h $(SRCDIR)/config.h |
| 587 | $(XTCC) -o search.o -c search_.c |
| 588 | |
| 589 | search.h: headers |
| 590 | setup_.c: $(SRCDIR)/setup.c translate |
| 591 | ./translate $(SRCDIR)/setup.c >setup_.c |
| 592 | |
| 593 | setup.o: setup_.c setup.h $(SRCDIR)/config.h |
| 594 | $(XTCC) -o setup.o -c setup_.c |
| 595 | |
| 596 | setup.h: headers |
| 597 | sha1_.c: $(SRCDIR)/sha1.c translate |
| 598 | ./translate $(SRCDIR)/sha1.c >sha1_.c |
| 599 | |
| 600 | sha1.o: sha1_.c sha1.h $(SRCDIR)/config.h |
| 601 | $(XTCC) -o sha1.o -c sha1_.c |
| 602 | |
| 603 | sha1.h: headers |
| 604 | shun_.c: $(SRCDIR)/shun.c translate |
| 605 | ./translate $(SRCDIR)/shun.c >shun_.c |
| 606 | |
| 607 | shun.o: shun_.c shun.h $(SRCDIR)/config.h |
| 608 | $(XTCC) -o shun.o -c shun_.c |
| 609 | |
| 610 | shun.h: headers |
| 611 | skins_.c: $(SRCDIR)/skins.c translate |
| 612 | ./translate $(SRCDIR)/skins.c >skins_.c |
| 613 | |
| 614 | skins.o: skins_.c skins.h $(SRCDIR)/config.h |
| 615 | $(XTCC) -o skins.o -c skins_.c |
| 616 | |
| 617 | skins.h: headers |
| 618 | stat_.c: $(SRCDIR)/stat.c translate |
| 619 | ./translate $(SRCDIR)/stat.c >stat_.c |
| 620 | |
| 621 | stat.o: stat_.c stat.h $(SRCDIR)/config.h |
| 622 | $(XTCC) -o stat.o -c stat_.c |
| 623 | |
| 624 | stat.h: headers |
| 625 | style_.c: $(SRCDIR)/style.c translate |
| 626 | ./translate $(SRCDIR)/style.c >style_.c |
| 627 | |
| 628 | style.o: style_.c style.h $(SRCDIR)/config.h |
| 629 | $(XTCC) -o style.o -c style_.c |
| 630 | |
| 631 | style.h: headers |
| 632 | sync_.c: $(SRCDIR)/sync.c translate |
| 633 | ./translate $(SRCDIR)/sync.c >sync_.c |
| 634 | |
| 635 | sync.o: sync_.c sync.h $(SRCDIR)/config.h |
| 636 | $(XTCC) -o sync.o -c sync_.c |
| 637 | |
| 638 | sync.h: headers |
| 639 | tag_.c: $(SRCDIR)/tag.c translate |
| 640 | ./translate $(SRCDIR)/tag.c >tag_.c |
| 641 | |
| 642 | tag.o: tag_.c tag.h $(SRCDIR)/config.h |
| 643 | $(XTCC) -o tag.o -c tag_.c |
| 644 | |
| 645 | tag.h: headers |
| 646 | th_main_.c: $(SRCDIR)/th_main.c translate |
| 647 | ./translate $(SRCDIR)/th_main.c >th_main_.c |
| 648 | |
| 649 | th_main.o: th_main_.c th_main.h $(SRCDIR)/config.h |
| 650 | $(XTCC) -o th_main.o -c th_main_.c |
| 651 | |
| 652 | th_main.h: headers |
| 653 | timeline_.c: $(SRCDIR)/timeline.c translate |
| 654 | ./translate $(SRCDIR)/timeline.c >timeline_.c |
| 655 | |
| 656 | timeline.o: timeline_.c timeline.h $(SRCDIR)/config.h |
| 657 | $(XTCC) -o timeline.o -c timeline_.c |
| 658 | |
| 659 | timeline.h: headers |
| 660 | tkt_.c: $(SRCDIR)/tkt.c translate |
| 661 | ./translate $(SRCDIR)/tkt.c >tkt_.c |
| 662 | |
| 663 | tkt.o: tkt_.c tkt.h $(SRCDIR)/config.h |
| 664 | $(XTCC) -o tkt.o -c tkt_.c |
| 665 | |
| 666 | tkt.h: headers |
| 667 | tktsetup_.c: $(SRCDIR)/tktsetup.c translate |
| 668 | ./translate $(SRCDIR)/tktsetup.c >tktsetup_.c |
| 669 | |
| 670 | tktsetup.o: tktsetup_.c tktsetup.h $(SRCDIR)/config.h |
| 671 | $(XTCC) -o tktsetup.o -c tktsetup_.c |
| 672 | |
| 673 | tktsetup.h: headers |
| 674 | undo_.c: $(SRCDIR)/undo.c translate |
| 675 | ./translate $(SRCDIR)/undo.c >undo_.c |
| 676 | |
| 677 | undo.o: undo_.c undo.h $(SRCDIR)/config.h |
| 678 | $(XTCC) -o undo.o -c undo_.c |
| 679 | |
| 680 | undo.h: headers |
| 681 | update_.c: $(SRCDIR)/update.c translate |
| 682 | ./translate $(SRCDIR)/update.c >update_.c |
| 683 | |
| 684 | update.o: update_.c update.h $(SRCDIR)/config.h |
| 685 | $(XTCC) -o update.o -c update_.c |
| 686 | |
| 687 | update.h: headers |
| 688 | url_.c: $(SRCDIR)/url.c translate |
| 689 | ./translate $(SRCDIR)/url.c >url_.c |
| 690 | |
| 691 | url.o: url_.c url.h $(SRCDIR)/config.h |
| 692 | $(XTCC) -o url.o -c url_.c |
| 693 | |
| 694 | url.h: headers |
| 695 | user_.c: $(SRCDIR)/user.c translate |
| 696 | ./translate $(SRCDIR)/user.c >user_.c |
| 697 | |
| 698 | user.o: user_.c user.h $(SRCDIR)/config.h |
| 699 | $(XTCC) -o user.o -c user_.c |
| 700 | |
| 701 | user.h: headers |
| 702 | verify_.c: $(SRCDIR)/verify.c translate |
| 703 | ./translate $(SRCDIR)/verify.c >verify_.c |
| 704 | |
| 705 | verify.o: verify_.c verify.h $(SRCDIR)/config.h |
| 706 | $(XTCC) -o verify.o -c verify_.c |
| 707 | |
| 708 | verify.h: headers |
| 709 | vfile_.c: $(SRCDIR)/vfile.c translate |
| 710 | ./translate $(SRCDIR)/vfile.c >vfile_.c |
| 711 | |
| 712 | vfile.o: vfile_.c vfile.h $(SRCDIR)/config.h |
| 713 | $(XTCC) -o vfile.o -c vfile_.c |
| 714 | |
| 715 | vfile.h: headers |
| 716 | wiki_.c: $(SRCDIR)/wiki.c translate |
| 717 | ./translate $(SRCDIR)/wiki.c >wiki_.c |
| 718 | |
| 719 | wiki.o: wiki_.c wiki.h $(SRCDIR)/config.h |
| 720 | $(XTCC) -o wiki.o -c wiki_.c |
| 721 | |
| 722 | wiki.h: headers |
| 723 | wikiformat_.c: $(SRCDIR)/wikiformat.c translate |
| 724 | ./translate $(SRCDIR)/wikiformat.c >wikiformat_.c |
| 725 | |
| 726 | wikiformat.o: wikiformat_.c wikiformat.h $(SRCDIR)/config.h |
| 727 | $(XTCC) -o wikiformat.o -c wikiformat_.c |
| 728 | |
| 729 | wikiformat.h: headers |
| 730 | winhttp_.c: $(SRCDIR)/winhttp.c translate |
| 731 | ./translate $(SRCDIR)/winhttp.c >winhttp_.c |
| 732 | |
| 733 | winhttp.o: winhttp_.c winhttp.h $(SRCDIR)/config.h |
| 734 | $(XTCC) -o winhttp.o -c winhttp_.c |
| 735 | |
| 736 | winhttp.h: headers |
| 737 | xfer_.c: $(SRCDIR)/xfer.c translate |
| 738 | ./translate $(SRCDIR)/xfer.c >xfer_.c |
| 739 | |
| 740 | xfer.o: xfer_.c xfer.h $(SRCDIR)/config.h |
| 741 | $(XTCC) -o xfer.o -c xfer_.c |
| 742 | |
| 743 | xfer.h: headers |
| 744 | zip_.c: $(SRCDIR)/zip.c translate |
| 745 | ./translate $(SRCDIR)/zip.c >zip_.c |
| 746 | |
| 747 | zip.o: zip_.c zip.h $(SRCDIR)/config.h |
| 748 | $(XTCC) -o zip.o -c zip_.c |
| 749 | |
| 750 | zip.h: headers |
| 751 | sqlite3.o: $(SRCDIR)/sqlite3.c |
| 752 | $(XTCC) -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -Dlocaltime=fossil_localtime -c $(SRCDIR)/sqlite3.c -o sqlite3.o |
| 753 | |
| 754 | th.o: $(SRCDIR)/th.c |
| 755 | $(XTCC) -I$(SRCDIR) -c $(SRCDIR)/th.c -o th.o |
| 756 | |
| 757 | th_lang.o: $(SRCDIR)/th_lang.c |
| 758 | $(XTCC) -I$(SRCDIR) -c $(SRCDIR)/th_lang.c -o th_lang.o |
| 759 | |
| 760 |
| --- src/main.mk | |
| +++ src/main.mk | |
| @@ -151,88 +151,91 @@ | |
| 151 | winhttp_.c \ |
| 152 | xfer_.c \ |
| 153 | zip_.c |
| 154 | |
| 155 | OBJ = \ |
| 156 | $(OBJDIR)/add.o \ |
| 157 | $(OBJDIR)/allrepo.o \ |
| 158 | $(OBJDIR)/bag.o \ |
| 159 | $(OBJDIR)/blob.o \ |
| 160 | $(OBJDIR)/branch.o \ |
| 161 | $(OBJDIR)/browse.o \ |
| 162 | $(OBJDIR)/captcha.o \ |
| 163 | $(OBJDIR)/cgi.o \ |
| 164 | $(OBJDIR)/checkin.o \ |
| 165 | $(OBJDIR)/checkout.o \ |
| 166 | $(OBJDIR)/clearsign.o \ |
| 167 | $(OBJDIR)/clone.o \ |
| 168 | $(OBJDIR)/comformat.o \ |
| 169 | $(OBJDIR)/configure.o \ |
| 170 | $(OBJDIR)/content.o \ |
| 171 | $(OBJDIR)/db.o \ |
| 172 | $(OBJDIR)/delta.o \ |
| 173 | $(OBJDIR)/deltacmd.o \ |
| 174 | $(OBJDIR)/descendants.o \ |
| 175 | $(OBJDIR)/diff.o \ |
| 176 | $(OBJDIR)/diffcmd.o \ |
| 177 | $(OBJDIR)/doc.o \ |
| 178 | $(OBJDIR)/encode.o \ |
| 179 | $(OBJDIR)/file.o \ |
| 180 | $(OBJDIR)/finfo.o \ |
| 181 | $(OBJDIR)/graph.o \ |
| 182 | $(OBJDIR)/http.o \ |
| 183 | $(OBJDIR)/http_socket.o \ |
| 184 | $(OBJDIR)/http_transport.o \ |
| 185 | $(OBJDIR)/info.o \ |
| 186 | $(OBJDIR)/login.o \ |
| 187 | $(OBJDIR)/main.o \ |
| 188 | $(OBJDIR)/manifest.o \ |
| 189 | $(OBJDIR)/md5.o \ |
| 190 | $(OBJDIR)/merge.o \ |
| 191 | $(OBJDIR)/merge3.o \ |
| 192 | $(OBJDIR)/name.o \ |
| 193 | $(OBJDIR)/pivot.o \ |
| 194 | $(OBJDIR)/pqueue.o \ |
| 195 | $(OBJDIR)/printf.o \ |
| 196 | $(OBJDIR)/rebuild.o \ |
| 197 | $(OBJDIR)/report.o \ |
| 198 | $(OBJDIR)/rss.o \ |
| 199 | $(OBJDIR)/schema.o \ |
| 200 | $(OBJDIR)/search.o \ |
| 201 | $(OBJDIR)/setup.o \ |
| 202 | $(OBJDIR)/sha1.o \ |
| 203 | $(OBJDIR)/shun.o \ |
| 204 | $(OBJDIR)/skins.o \ |
| 205 | $(OBJDIR)/stat.o \ |
| 206 | $(OBJDIR)/style.o \ |
| 207 | $(OBJDIR)/sync.o \ |
| 208 | $(OBJDIR)/tag.o \ |
| 209 | $(OBJDIR)/th_main.o \ |
| 210 | $(OBJDIR)/timeline.o \ |
| 211 | $(OBJDIR)/tkt.o \ |
| 212 | $(OBJDIR)/tktsetup.o \ |
| 213 | $(OBJDIR)/undo.o \ |
| 214 | $(OBJDIR)/update.o \ |
| 215 | $(OBJDIR)/url.o \ |
| 216 | $(OBJDIR)/user.o \ |
| 217 | $(OBJDIR)/verify.o \ |
| 218 | $(OBJDIR)/vfile.o \ |
| 219 | $(OBJDIR)/wiki.o \ |
| 220 | $(OBJDIR)/wikiformat.o \ |
| 221 | $(OBJDIR)/winhttp.o \ |
| 222 | $(OBJDIR)/xfer.o \ |
| 223 | $(OBJDIR)/zip.o |
| 224 | |
| 225 | APPNAME = fossil$(E) |
| 226 | |
| 227 | |
| 228 | |
| 229 | all: $(OBJDIR) $(APPNAME) |
| 230 | |
| 231 | install: $(APPNAME) |
| 232 | mv $(APPNAME) $(INSTALLDIR) |
| 233 | |
| 234 | $(OBJDIR): |
| 235 | -mkdir $(OBJDIR) |
| 236 | |
| 237 | translate: $(SRCDIR)/translate.c |
| 238 | $(BCC) -o translate $(SRCDIR)/translate.c |
| 239 | |
| 240 | makeheaders: $(SRCDIR)/makeheaders.c |
| 241 | $(BCC) -o makeheaders $(SRCDIR)/makeheaders.c |
| @@ -249,21 +252,21 @@ | |
| 252 | VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest |
| 253 | awk '{ printf "#define MANIFEST_UUID \"%s\"\n", $$1}' $(SRCDIR)/../manifest.uuid >VERSION.h |
| 254 | awk '{ printf "#define MANIFEST_VERSION \"[%.10s]\"\n", $$1}' $(SRCDIR)/../manifest.uuid >>VERSION.h |
| 255 | awk '$$1=="D"{printf "#define MANIFEST_DATE \"%s %s\"\n", substr($$2,1,10),substr($$2,12)}' $(SRCDIR)/../manifest >>VERSION.h |
| 256 | |
| 257 | $(APPNAME): headers $(OBJ) $(OBJDIR)/sqlite3.o $(OBJDIR)/th.o $(OBJDIR)/th_lang.o |
| 258 | $(TCC) -o $(APPNAME) $(OBJ) $(OBJDIR)/sqlite3.o $(OBJDIR)/th.o $(OBJDIR)/th_lang.o $(LIB) |
| 259 | |
| 260 | # This rule prevents make from using its default rules to try build |
| 261 | # an executable named "manifest" out of the file named "manifest.c" |
| 262 | # |
| 263 | $(SRCDIR)/../manifest: |
| 264 | # noop |
| 265 | |
| 266 | clean: |
| 267 | rm -f $(OBJDIR)/*.o *_.c $(APPNAME) VERSION.h |
| 268 | rm -f translate makeheaders mkindex page_index.h headers |
| 269 | rm -f add.h allrepo.h bag.h blob.h branch.h browse.h captcha.h cgi.h checkin.h checkout.h clearsign.h clone.h comformat.h configure.h content.h db.h delta.h deltacmd.h descendants.h diff.h diffcmd.h doc.h encode.h file.h finfo.h graph.h http.h http_socket.h http_transport.h info.h login.h main.h manifest.h md5.h merge.h merge3.h name.h pivot.h pqueue.h printf.h rebuild.h report.h rss.h schema.h search.h setup.h sha1.h shun.h skins.h stat.h style.h sync.h tag.h th_main.h timeline.h tkt.h tktsetup.h undo.h update.h url.h user.h verify.h vfile.h wiki.h wikiformat.h winhttp.h xfer.h zip.h |
| 270 | |
| 271 | page_index.h: $(TRANS_SRC) mkindex |
| 272 | ./mkindex $(TRANS_SRC) >$@ |
| @@ -273,487 +276,487 @@ | |
| 276 | headers: Makefile |
| 277 | Makefile: |
| 278 | add_.c: $(SRCDIR)/add.c translate |
| 279 | ./translate $(SRCDIR)/add.c >add_.c |
| 280 | |
| 281 | $(OBJDIR)/add.o: add_.c add.h $(SRCDIR)/config.h |
| 282 | $(XTCC) -o $(OBJDIR)/add.o -c add_.c |
| 283 | |
| 284 | add.h: headers |
| 285 | allrepo_.c: $(SRCDIR)/allrepo.c translate |
| 286 | ./translate $(SRCDIR)/allrepo.c >allrepo_.c |
| 287 | |
| 288 | $(OBJDIR)/allrepo.o: allrepo_.c allrepo.h $(SRCDIR)/config.h |
| 289 | $(XTCC) -o $(OBJDIR)/allrepo.o -c allrepo_.c |
| 290 | |
| 291 | allrepo.h: headers |
| 292 | bag_.c: $(SRCDIR)/bag.c translate |
| 293 | ./translate $(SRCDIR)/bag.c >bag_.c |
| 294 | |
| 295 | $(OBJDIR)/bag.o: bag_.c bag.h $(SRCDIR)/config.h |
| 296 | $(XTCC) -o $(OBJDIR)/bag.o -c bag_.c |
| 297 | |
| 298 | bag.h: headers |
| 299 | blob_.c: $(SRCDIR)/blob.c translate |
| 300 | ./translate $(SRCDIR)/blob.c >blob_.c |
| 301 | |
| 302 | $(OBJDIR)/blob.o: blob_.c blob.h $(SRCDIR)/config.h |
| 303 | $(XTCC) -o $(OBJDIR)/blob.o -c blob_.c |
| 304 | |
| 305 | blob.h: headers |
| 306 | branch_.c: $(SRCDIR)/branch.c translate |
| 307 | ./translate $(SRCDIR)/branch.c >branch_.c |
| 308 | |
| 309 | $(OBJDIR)/branch.o: branch_.c branch.h $(SRCDIR)/config.h |
| 310 | $(XTCC) -o $(OBJDIR)/branch.o -c branch_.c |
| 311 | |
| 312 | branch.h: headers |
| 313 | browse_.c: $(SRCDIR)/browse.c translate |
| 314 | ./translate $(SRCDIR)/browse.c >browse_.c |
| 315 | |
| 316 | $(OBJDIR)/browse.o: browse_.c browse.h $(SRCDIR)/config.h |
| 317 | $(XTCC) -o $(OBJDIR)/browse.o -c browse_.c |
| 318 | |
| 319 | browse.h: headers |
| 320 | captcha_.c: $(SRCDIR)/captcha.c translate |
| 321 | ./translate $(SRCDIR)/captcha.c >captcha_.c |
| 322 | |
| 323 | $(OBJDIR)/captcha.o: captcha_.c captcha.h $(SRCDIR)/config.h |
| 324 | $(XTCC) -o $(OBJDIR)/captcha.o -c captcha_.c |
| 325 | |
| 326 | captcha.h: headers |
| 327 | cgi_.c: $(SRCDIR)/cgi.c translate |
| 328 | ./translate $(SRCDIR)/cgi.c >cgi_.c |
| 329 | |
| 330 | $(OBJDIR)/cgi.o: cgi_.c cgi.h $(SRCDIR)/config.h |
| 331 | $(XTCC) -o $(OBJDIR)/cgi.o -c cgi_.c |
| 332 | |
| 333 | cgi.h: headers |
| 334 | checkin_.c: $(SRCDIR)/checkin.c translate |
| 335 | ./translate $(SRCDIR)/checkin.c >checkin_.c |
| 336 | |
| 337 | $(OBJDIR)/checkin.o: checkin_.c checkin.h $(SRCDIR)/config.h |
| 338 | $(XTCC) -o $(OBJDIR)/checkin.o -c checkin_.c |
| 339 | |
| 340 | checkin.h: headers |
| 341 | checkout_.c: $(SRCDIR)/checkout.c translate |
| 342 | ./translate $(SRCDIR)/checkout.c >checkout_.c |
| 343 | |
| 344 | $(OBJDIR)/checkout.o: checkout_.c checkout.h $(SRCDIR)/config.h |
| 345 | $(XTCC) -o $(OBJDIR)/checkout.o -c checkout_.c |
| 346 | |
| 347 | checkout.h: headers |
| 348 | clearsign_.c: $(SRCDIR)/clearsign.c translate |
| 349 | ./translate $(SRCDIR)/clearsign.c >clearsign_.c |
| 350 | |
| 351 | $(OBJDIR)/clearsign.o: clearsign_.c clearsign.h $(SRCDIR)/config.h |
| 352 | $(XTCC) -o $(OBJDIR)/clearsign.o -c clearsign_.c |
| 353 | |
| 354 | clearsign.h: headers |
| 355 | clone_.c: $(SRCDIR)/clone.c translate |
| 356 | ./translate $(SRCDIR)/clone.c >clone_.c |
| 357 | |
| 358 | $(OBJDIR)/clone.o: clone_.c clone.h $(SRCDIR)/config.h |
| 359 | $(XTCC) -o $(OBJDIR)/clone.o -c clone_.c |
| 360 | |
| 361 | clone.h: headers |
| 362 | comformat_.c: $(SRCDIR)/comformat.c translate |
| 363 | ./translate $(SRCDIR)/comformat.c >comformat_.c |
| 364 | |
| 365 | $(OBJDIR)/comformat.o: comformat_.c comformat.h $(SRCDIR)/config.h |
| 366 | $(XTCC) -o $(OBJDIR)/comformat.o -c comformat_.c |
| 367 | |
| 368 | comformat.h: headers |
| 369 | configure_.c: $(SRCDIR)/configure.c translate |
| 370 | ./translate $(SRCDIR)/configure.c >configure_.c |
| 371 | |
| 372 | $(OBJDIR)/configure.o: configure_.c configure.h $(SRCDIR)/config.h |
| 373 | $(XTCC) -o $(OBJDIR)/configure.o -c configure_.c |
| 374 | |
| 375 | configure.h: headers |
| 376 | content_.c: $(SRCDIR)/content.c translate |
| 377 | ./translate $(SRCDIR)/content.c >content_.c |
| 378 | |
| 379 | $(OBJDIR)/content.o: content_.c content.h $(SRCDIR)/config.h |
| 380 | $(XTCC) -o $(OBJDIR)/content.o -c content_.c |
| 381 | |
| 382 | content.h: headers |
| 383 | db_.c: $(SRCDIR)/db.c translate |
| 384 | ./translate $(SRCDIR)/db.c >db_.c |
| 385 | |
| 386 | $(OBJDIR)/db.o: db_.c db.h $(SRCDIR)/config.h |
| 387 | $(XTCC) -o $(OBJDIR)/db.o -c db_.c |
| 388 | |
| 389 | db.h: headers |
| 390 | delta_.c: $(SRCDIR)/delta.c translate |
| 391 | ./translate $(SRCDIR)/delta.c >delta_.c |
| 392 | |
| 393 | $(OBJDIR)/delta.o: delta_.c delta.h $(SRCDIR)/config.h |
| 394 | $(XTCC) -o $(OBJDIR)/delta.o -c delta_.c |
| 395 | |
| 396 | delta.h: headers |
| 397 | deltacmd_.c: $(SRCDIR)/deltacmd.c translate |
| 398 | ./translate $(SRCDIR)/deltacmd.c >deltacmd_.c |
| 399 | |
| 400 | $(OBJDIR)/deltacmd.o: deltacmd_.c deltacmd.h $(SRCDIR)/config.h |
| 401 | $(XTCC) -o $(OBJDIR)/deltacmd.o -c deltacmd_.c |
| 402 | |
| 403 | deltacmd.h: headers |
| 404 | descendants_.c: $(SRCDIR)/descendants.c translate |
| 405 | ./translate $(SRCDIR)/descendants.c >descendants_.c |
| 406 | |
| 407 | $(OBJDIR)/descendants.o: descendants_.c descendants.h $(SRCDIR)/config.h |
| 408 | $(XTCC) -o $(OBJDIR)/descendants.o -c descendants_.c |
| 409 | |
| 410 | descendants.h: headers |
| 411 | diff_.c: $(SRCDIR)/diff.c translate |
| 412 | ./translate $(SRCDIR)/diff.c >diff_.c |
| 413 | |
| 414 | $(OBJDIR)/diff.o: diff_.c diff.h $(SRCDIR)/config.h |
| 415 | $(XTCC) -o $(OBJDIR)/diff.o -c diff_.c |
| 416 | |
| 417 | diff.h: headers |
| 418 | diffcmd_.c: $(SRCDIR)/diffcmd.c translate |
| 419 | ./translate $(SRCDIR)/diffcmd.c >diffcmd_.c |
| 420 | |
| 421 | $(OBJDIR)/diffcmd.o: diffcmd_.c diffcmd.h $(SRCDIR)/config.h |
| 422 | $(XTCC) -o $(OBJDIR)/diffcmd.o -c diffcmd_.c |
| 423 | |
| 424 | diffcmd.h: headers |
| 425 | doc_.c: $(SRCDIR)/doc.c translate |
| 426 | ./translate $(SRCDIR)/doc.c >doc_.c |
| 427 | |
| 428 | $(OBJDIR)/doc.o: doc_.c doc.h $(SRCDIR)/config.h |
| 429 | $(XTCC) -o $(OBJDIR)/doc.o -c doc_.c |
| 430 | |
| 431 | doc.h: headers |
| 432 | encode_.c: $(SRCDIR)/encode.c translate |
| 433 | ./translate $(SRCDIR)/encode.c >encode_.c |
| 434 | |
| 435 | $(OBJDIR)/encode.o: encode_.c encode.h $(SRCDIR)/config.h |
| 436 | $(XTCC) -o $(OBJDIR)/encode.o -c encode_.c |
| 437 | |
| 438 | encode.h: headers |
| 439 | file_.c: $(SRCDIR)/file.c translate |
| 440 | ./translate $(SRCDIR)/file.c >file_.c |
| 441 | |
| 442 | $(OBJDIR)/file.o: file_.c file.h $(SRCDIR)/config.h |
| 443 | $(XTCC) -o $(OBJDIR)/file.o -c file_.c |
| 444 | |
| 445 | file.h: headers |
| 446 | finfo_.c: $(SRCDIR)/finfo.c translate |
| 447 | ./translate $(SRCDIR)/finfo.c >finfo_.c |
| 448 | |
| 449 | $(OBJDIR)/finfo.o: finfo_.c finfo.h $(SRCDIR)/config.h |
| 450 | $(XTCC) -o $(OBJDIR)/finfo.o -c finfo_.c |
| 451 | |
| 452 | finfo.h: headers |
| 453 | graph_.c: $(SRCDIR)/graph.c translate |
| 454 | ./translate $(SRCDIR)/graph.c >graph_.c |
| 455 | |
| 456 | $(OBJDIR)/graph.o: graph_.c graph.h $(SRCDIR)/config.h |
| 457 | $(XTCC) -o $(OBJDIR)/graph.o -c graph_.c |
| 458 | |
| 459 | graph.h: headers |
| 460 | http_.c: $(SRCDIR)/http.c translate |
| 461 | ./translate $(SRCDIR)/http.c >http_.c |
| 462 | |
| 463 | $(OBJDIR)/http.o: http_.c http.h $(SRCDIR)/config.h |
| 464 | $(XTCC) -o $(OBJDIR)/http.o -c http_.c |
| 465 | |
| 466 | http.h: headers |
| 467 | http_socket_.c: $(SRCDIR)/http_socket.c translate |
| 468 | ./translate $(SRCDIR)/http_socket.c >http_socket_.c |
| 469 | |
| 470 | $(OBJDIR)/http_socket.o: http_socket_.c http_socket.h $(SRCDIR)/config.h |
| 471 | $(XTCC) -o $(OBJDIR)/http_socket.o -c http_socket_.c |
| 472 | |
| 473 | http_socket.h: headers |
| 474 | http_transport_.c: $(SRCDIR)/http_transport.c translate |
| 475 | ./translate $(SRCDIR)/http_transport.c >http_transport_.c |
| 476 | |
| 477 | $(OBJDIR)/http_transport.o: http_transport_.c http_transport.h $(SRCDIR)/config.h |
| 478 | $(XTCC) -o $(OBJDIR)/http_transport.o -c http_transport_.c |
| 479 | |
| 480 | http_transport.h: headers |
| 481 | info_.c: $(SRCDIR)/info.c translate |
| 482 | ./translate $(SRCDIR)/info.c >info_.c |
| 483 | |
| 484 | $(OBJDIR)/info.o: info_.c info.h $(SRCDIR)/config.h |
| 485 | $(XTCC) -o $(OBJDIR)/info.o -c info_.c |
| 486 | |
| 487 | info.h: headers |
| 488 | login_.c: $(SRCDIR)/login.c translate |
| 489 | ./translate $(SRCDIR)/login.c >login_.c |
| 490 | |
| 491 | $(OBJDIR)/login.o: login_.c login.h $(SRCDIR)/config.h |
| 492 | $(XTCC) -o $(OBJDIR)/login.o -c login_.c |
| 493 | |
| 494 | login.h: headers |
| 495 | main_.c: $(SRCDIR)/main.c translate |
| 496 | ./translate $(SRCDIR)/main.c >main_.c |
| 497 | |
| 498 | $(OBJDIR)/main.o: main_.c main.h page_index.h $(SRCDIR)/config.h |
| 499 | $(XTCC) -o $(OBJDIR)/main.o -c main_.c |
| 500 | |
| 501 | main.h: headers |
| 502 | manifest_.c: $(SRCDIR)/manifest.c translate |
| 503 | ./translate $(SRCDIR)/manifest.c >manifest_.c |
| 504 | |
| 505 | $(OBJDIR)/manifest.o: manifest_.c manifest.h $(SRCDIR)/config.h |
| 506 | $(XTCC) -o $(OBJDIR)/manifest.o -c manifest_.c |
| 507 | |
| 508 | manifest.h: headers |
| 509 | md5_.c: $(SRCDIR)/md5.c translate |
| 510 | ./translate $(SRCDIR)/md5.c >md5_.c |
| 511 | |
| 512 | $(OBJDIR)/md5.o: md5_.c md5.h $(SRCDIR)/config.h |
| 513 | $(XTCC) -o $(OBJDIR)/md5.o -c md5_.c |
| 514 | |
| 515 | md5.h: headers |
| 516 | merge_.c: $(SRCDIR)/merge.c translate |
| 517 | ./translate $(SRCDIR)/merge.c >merge_.c |
| 518 | |
| 519 | $(OBJDIR)/merge.o: merge_.c merge.h $(SRCDIR)/config.h |
| 520 | $(XTCC) -o $(OBJDIR)/merge.o -c merge_.c |
| 521 | |
| 522 | merge.h: headers |
| 523 | merge3_.c: $(SRCDIR)/merge3.c translate |
| 524 | ./translate $(SRCDIR)/merge3.c >merge3_.c |
| 525 | |
| 526 | $(OBJDIR)/merge3.o: merge3_.c merge3.h $(SRCDIR)/config.h |
| 527 | $(XTCC) -o $(OBJDIR)/merge3.o -c merge3_.c |
| 528 | |
| 529 | merge3.h: headers |
| 530 | name_.c: $(SRCDIR)/name.c translate |
| 531 | ./translate $(SRCDIR)/name.c >name_.c |
| 532 | |
| 533 | $(OBJDIR)/name.o: name_.c name.h $(SRCDIR)/config.h |
| 534 | $(XTCC) -o $(OBJDIR)/name.o -c name_.c |
| 535 | |
| 536 | name.h: headers |
| 537 | pivot_.c: $(SRCDIR)/pivot.c translate |
| 538 | ./translate $(SRCDIR)/pivot.c >pivot_.c |
| 539 | |
| 540 | $(OBJDIR)/pivot.o: pivot_.c pivot.h $(SRCDIR)/config.h |
| 541 | $(XTCC) -o $(OBJDIR)/pivot.o -c pivot_.c |
| 542 | |
| 543 | pivot.h: headers |
| 544 | pqueue_.c: $(SRCDIR)/pqueue.c translate |
| 545 | ./translate $(SRCDIR)/pqueue.c >pqueue_.c |
| 546 | |
| 547 | $(OBJDIR)/pqueue.o: pqueue_.c pqueue.h $(SRCDIR)/config.h |
| 548 | $(XTCC) -o $(OBJDIR)/pqueue.o -c pqueue_.c |
| 549 | |
| 550 | pqueue.h: headers |
| 551 | printf_.c: $(SRCDIR)/printf.c translate |
| 552 | ./translate $(SRCDIR)/printf.c >printf_.c |
| 553 | |
| 554 | $(OBJDIR)/printf.o: printf_.c printf.h $(SRCDIR)/config.h |
| 555 | $(XTCC) -o $(OBJDIR)/printf.o -c printf_.c |
| 556 | |
| 557 | printf.h: headers |
| 558 | rebuild_.c: $(SRCDIR)/rebuild.c translate |
| 559 | ./translate $(SRCDIR)/rebuild.c >rebuild_.c |
| 560 | |
| 561 | $(OBJDIR)/rebuild.o: rebuild_.c rebuild.h $(SRCDIR)/config.h |
| 562 | $(XTCC) -o $(OBJDIR)/rebuild.o -c rebuild_.c |
| 563 | |
| 564 | rebuild.h: headers |
| 565 | report_.c: $(SRCDIR)/report.c translate |
| 566 | ./translate $(SRCDIR)/report.c >report_.c |
| 567 | |
| 568 | $(OBJDIR)/report.o: report_.c report.h $(SRCDIR)/config.h |
| 569 | $(XTCC) -o $(OBJDIR)/report.o -c report_.c |
| 570 | |
| 571 | report.h: headers |
| 572 | rss_.c: $(SRCDIR)/rss.c translate |
| 573 | ./translate $(SRCDIR)/rss.c >rss_.c |
| 574 | |
| 575 | $(OBJDIR)/rss.o: rss_.c rss.h $(SRCDIR)/config.h |
| 576 | $(XTCC) -o $(OBJDIR)/rss.o -c rss_.c |
| 577 | |
| 578 | rss.h: headers |
| 579 | schema_.c: $(SRCDIR)/schema.c translate |
| 580 | ./translate $(SRCDIR)/schema.c >schema_.c |
| 581 | |
| 582 | $(OBJDIR)/schema.o: schema_.c schema.h $(SRCDIR)/config.h |
| 583 | $(XTCC) -o $(OBJDIR)/schema.o -c schema_.c |
| 584 | |
| 585 | schema.h: headers |
| 586 | search_.c: $(SRCDIR)/search.c translate |
| 587 | ./translate $(SRCDIR)/search.c >search_.c |
| 588 | |
| 589 | $(OBJDIR)/search.o: search_.c search.h $(SRCDIR)/config.h |
| 590 | $(XTCC) -o $(OBJDIR)/search.o -c search_.c |
| 591 | |
| 592 | search.h: headers |
| 593 | setup_.c: $(SRCDIR)/setup.c translate |
| 594 | ./translate $(SRCDIR)/setup.c >setup_.c |
| 595 | |
| 596 | $(OBJDIR)/setup.o: setup_.c setup.h $(SRCDIR)/config.h |
| 597 | $(XTCC) -o $(OBJDIR)/setup.o -c setup_.c |
| 598 | |
| 599 | setup.h: headers |
| 600 | sha1_.c: $(SRCDIR)/sha1.c translate |
| 601 | ./translate $(SRCDIR)/sha1.c >sha1_.c |
| 602 | |
| 603 | $(OBJDIR)/sha1.o: sha1_.c sha1.h $(SRCDIR)/config.h |
| 604 | $(XTCC) -o $(OBJDIR)/sha1.o -c sha1_.c |
| 605 | |
| 606 | sha1.h: headers |
| 607 | shun_.c: $(SRCDIR)/shun.c translate |
| 608 | ./translate $(SRCDIR)/shun.c >shun_.c |
| 609 | |
| 610 | $(OBJDIR)/shun.o: shun_.c shun.h $(SRCDIR)/config.h |
| 611 | $(XTCC) -o $(OBJDIR)/shun.o -c shun_.c |
| 612 | |
| 613 | shun.h: headers |
| 614 | skins_.c: $(SRCDIR)/skins.c translate |
| 615 | ./translate $(SRCDIR)/skins.c >skins_.c |
| 616 | |
| 617 | $(OBJDIR)/skins.o: skins_.c skins.h $(SRCDIR)/config.h |
| 618 | $(XTCC) -o $(OBJDIR)/skins.o -c skins_.c |
| 619 | |
| 620 | skins.h: headers |
| 621 | stat_.c: $(SRCDIR)/stat.c translate |
| 622 | ./translate $(SRCDIR)/stat.c >stat_.c |
| 623 | |
| 624 | $(OBJDIR)/stat.o: stat_.c stat.h $(SRCDIR)/config.h |
| 625 | $(XTCC) -o $(OBJDIR)/stat.o -c stat_.c |
| 626 | |
| 627 | stat.h: headers |
| 628 | style_.c: $(SRCDIR)/style.c translate |
| 629 | ./translate $(SRCDIR)/style.c >style_.c |
| 630 | |
| 631 | $(OBJDIR)/style.o: style_.c style.h $(SRCDIR)/config.h |
| 632 | $(XTCC) -o $(OBJDIR)/style.o -c style_.c |
| 633 | |
| 634 | style.h: headers |
| 635 | sync_.c: $(SRCDIR)/sync.c translate |
| 636 | ./translate $(SRCDIR)/sync.c >sync_.c |
| 637 | |
| 638 | $(OBJDIR)/sync.o: sync_.c sync.h $(SRCDIR)/config.h |
| 639 | $(XTCC) -o $(OBJDIR)/sync.o -c sync_.c |
| 640 | |
| 641 | sync.h: headers |
| 642 | tag_.c: $(SRCDIR)/tag.c translate |
| 643 | ./translate $(SRCDIR)/tag.c >tag_.c |
| 644 | |
| 645 | $(OBJDIR)/tag.o: tag_.c tag.h $(SRCDIR)/config.h |
| 646 | $(XTCC) -o $(OBJDIR)/tag.o -c tag_.c |
| 647 | |
| 648 | tag.h: headers |
| 649 | th_main_.c: $(SRCDIR)/th_main.c translate |
| 650 | ./translate $(SRCDIR)/th_main.c >th_main_.c |
| 651 | |
| 652 | $(OBJDIR)/th_main.o: th_main_.c th_main.h $(SRCDIR)/config.h |
| 653 | $(XTCC) -o $(OBJDIR)/th_main.o -c th_main_.c |
| 654 | |
| 655 | th_main.h: headers |
| 656 | timeline_.c: $(SRCDIR)/timeline.c translate |
| 657 | ./translate $(SRCDIR)/timeline.c >timeline_.c |
| 658 | |
| 659 | $(OBJDIR)/timeline.o: timeline_.c timeline.h $(SRCDIR)/config.h |
| 660 | $(XTCC) -o $(OBJDIR)/timeline.o -c timeline_.c |
| 661 | |
| 662 | timeline.h: headers |
| 663 | tkt_.c: $(SRCDIR)/tkt.c translate |
| 664 | ./translate $(SRCDIR)/tkt.c >tkt_.c |
| 665 | |
| 666 | $(OBJDIR)/tkt.o: tkt_.c tkt.h $(SRCDIR)/config.h |
| 667 | $(XTCC) -o $(OBJDIR)/tkt.o -c tkt_.c |
| 668 | |
| 669 | tkt.h: headers |
| 670 | tktsetup_.c: $(SRCDIR)/tktsetup.c translate |
| 671 | ./translate $(SRCDIR)/tktsetup.c >tktsetup_.c |
| 672 | |
| 673 | $(OBJDIR)/tktsetup.o: tktsetup_.c tktsetup.h $(SRCDIR)/config.h |
| 674 | $(XTCC) -o $(OBJDIR)/tktsetup.o -c tktsetup_.c |
| 675 | |
| 676 | tktsetup.h: headers |
| 677 | undo_.c: $(SRCDIR)/undo.c translate |
| 678 | ./translate $(SRCDIR)/undo.c >undo_.c |
| 679 | |
| 680 | $(OBJDIR)/undo.o: undo_.c undo.h $(SRCDIR)/config.h |
| 681 | $(XTCC) -o $(OBJDIR)/undo.o -c undo_.c |
| 682 | |
| 683 | undo.h: headers |
| 684 | update_.c: $(SRCDIR)/update.c translate |
| 685 | ./translate $(SRCDIR)/update.c >update_.c |
| 686 | |
| 687 | $(OBJDIR)/update.o: update_.c update.h $(SRCDIR)/config.h |
| 688 | $(XTCC) -o $(OBJDIR)/update.o -c update_.c |
| 689 | |
| 690 | update.h: headers |
| 691 | url_.c: $(SRCDIR)/url.c translate |
| 692 | ./translate $(SRCDIR)/url.c >url_.c |
| 693 | |
| 694 | $(OBJDIR)/url.o: url_.c url.h $(SRCDIR)/config.h |
| 695 | $(XTCC) -o $(OBJDIR)/url.o -c url_.c |
| 696 | |
| 697 | url.h: headers |
| 698 | user_.c: $(SRCDIR)/user.c translate |
| 699 | ./translate $(SRCDIR)/user.c >user_.c |
| 700 | |
| 701 | $(OBJDIR)/user.o: user_.c user.h $(SRCDIR)/config.h |
| 702 | $(XTCC) -o $(OBJDIR)/user.o -c user_.c |
| 703 | |
| 704 | user.h: headers |
| 705 | verify_.c: $(SRCDIR)/verify.c translate |
| 706 | ./translate $(SRCDIR)/verify.c >verify_.c |
| 707 | |
| 708 | $(OBJDIR)/verify.o: verify_.c verify.h $(SRCDIR)/config.h |
| 709 | $(XTCC) -o $(OBJDIR)/verify.o -c verify_.c |
| 710 | |
| 711 | verify.h: headers |
| 712 | vfile_.c: $(SRCDIR)/vfile.c translate |
| 713 | ./translate $(SRCDIR)/vfile.c >vfile_.c |
| 714 | |
| 715 | $(OBJDIR)/vfile.o: vfile_.c vfile.h $(SRCDIR)/config.h |
| 716 | $(XTCC) -o $(OBJDIR)/vfile.o -c vfile_.c |
| 717 | |
| 718 | vfile.h: headers |
| 719 | wiki_.c: $(SRCDIR)/wiki.c translate |
| 720 | ./translate $(SRCDIR)/wiki.c >wiki_.c |
| 721 | |
| 722 | $(OBJDIR)/wiki.o: wiki_.c wiki.h $(SRCDIR)/config.h |
| 723 | $(XTCC) -o $(OBJDIR)/wiki.o -c wiki_.c |
| 724 | |
| 725 | wiki.h: headers |
| 726 | wikiformat_.c: $(SRCDIR)/wikiformat.c translate |
| 727 | ./translate $(SRCDIR)/wikiformat.c >wikiformat_.c |
| 728 | |
| 729 | $(OBJDIR)/wikiformat.o: wikiformat_.c wikiformat.h $(SRCDIR)/config.h |
| 730 | $(XTCC) -o $(OBJDIR)/wikiformat.o -c wikiformat_.c |
| 731 | |
| 732 | wikiformat.h: headers |
| 733 | winhttp_.c: $(SRCDIR)/winhttp.c translate |
| 734 | ./translate $(SRCDIR)/winhttp.c >winhttp_.c |
| 735 | |
| 736 | $(OBJDIR)/winhttp.o: winhttp_.c winhttp.h $(SRCDIR)/config.h |
| 737 | $(XTCC) -o $(OBJDIR)/winhttp.o -c winhttp_.c |
| 738 | |
| 739 | winhttp.h: headers |
| 740 | xfer_.c: $(SRCDIR)/xfer.c translate |
| 741 | ./translate $(SRCDIR)/xfer.c >xfer_.c |
| 742 | |
| 743 | $(OBJDIR)/xfer.o: xfer_.c xfer.h $(SRCDIR)/config.h |
| 744 | $(XTCC) -o $(OBJDIR)/xfer.o -c xfer_.c |
| 745 | |
| 746 | xfer.h: headers |
| 747 | zip_.c: $(SRCDIR)/zip.c translate |
| 748 | ./translate $(SRCDIR)/zip.c >zip_.c |
| 749 | |
| 750 | $(OBJDIR)/zip.o: zip_.c zip.h $(SRCDIR)/config.h |
| 751 | $(XTCC) -o $(OBJDIR)/zip.o -c zip_.c |
| 752 | |
| 753 | zip.h: headers |
| 754 | $(OBJDIR)/sqlite3.o: $(SRCDIR)/sqlite3.c |
| 755 | $(XTCC) -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -Dlocaltime=fossil_localtime -c $(SRCDIR)/sqlite3.c -o $(OBJDIR)/sqlite3.o |
| 756 | |
| 757 | $(OBJDIR)/th.o: $(SRCDIR)/th.c |
| 758 | $(XTCC) -I$(SRCDIR) -c $(SRCDIR)/th.c -o $(OBJDIR)/th.o |
| 759 | |
| 760 | $(OBJDIR)/th_lang.o: $(SRCDIR)/th_lang.c |
| 761 | $(XTCC) -I$(SRCDIR) -c $(SRCDIR)/th_lang.c -o $(OBJDIR)/th_lang.o |
| 762 | |
| 763 |
+16
-13
| --- src/makemake.tcl | ||
| +++ src/makemake.tcl | ||
| @@ -105,22 +105,25 @@ | ||
| 105 | 105 | puts -nonewline " \\\n ${s}_.c" |
| 106 | 106 | } |
| 107 | 107 | puts "\n" |
| 108 | 108 | puts -nonewline "OBJ =" |
| 109 | 109 | foreach s [lsort $src] { |
| 110 | - puts -nonewline " \\\n $s.o" | |
| 110 | + puts -nonewline " \\\n \$(OBJDIR)/$s.o" | |
| 111 | 111 | } |
| 112 | 112 | puts "\n" |
| 113 | 113 | puts "APPNAME = $name\$(E)" |
| 114 | 114 | puts "\n" |
| 115 | 115 | |
| 116 | 116 | puts { |
| 117 | -all: $(APPNAME) | |
| 117 | +all: $(OBJDIR) $(APPNAME) | |
| 118 | 118 | |
| 119 | 119 | install: $(APPNAME) |
| 120 | 120 | mv $(APPNAME) $(INSTALLDIR) |
| 121 | 121 | |
| 122 | +$(OBJDIR): | |
| 123 | + -mkdir $(OBJDIR) | |
| 124 | + | |
| 122 | 125 | translate: $(SRCDIR)/translate.c |
| 123 | 126 | $(BCC) -o translate $(SRCDIR)/translate.c |
| 124 | 127 | |
| 125 | 128 | makeheaders: $(SRCDIR)/makeheaders.c |
| 126 | 129 | $(BCC) -o makeheaders $(SRCDIR)/makeheaders.c |
| @@ -141,21 +144,21 @@ | ||
| 141 | 144 | $(SRCDIR)/../manifest.uuid >>VERSION.h |
| 142 | 145 | awk '$$1=="D"{printf "#define MANIFEST_DATE \"%s %s\"\n",\ |
| 143 | 146 | substr($$2,1,10),substr($$2,12)}' \ |
| 144 | 147 | $(SRCDIR)/../manifest >>VERSION.h |
| 145 | 148 | |
| 146 | -$(APPNAME): headers $(OBJ) sqlite3.o th.o th_lang.o | |
| 147 | - $(TCC) -o $(APPNAME) $(OBJ) sqlite3.o th.o th_lang.o $(LIB) | |
| 149 | +$(APPNAME): headers $(OBJ) $(OBJDIR)/sqlite3.o $(OBJDIR)/th.o $(OBJDIR)/th_lang.o | |
| 150 | + $(TCC) -o $(APPNAME) $(OBJ) $(OBJDIR)/sqlite3.o $(OBJDIR)/th.o $(OBJDIR)/th_lang.o $(LIB) | |
| 148 | 151 | |
| 149 | 152 | # This rule prevents make from using its default rules to try build |
| 150 | 153 | # an executable named "manifest" out of the file named "manifest.c" |
| 151 | 154 | # |
| 152 | 155 | $(SRCDIR)/../manifest: |
| 153 | 156 | # noop |
| 154 | 157 | |
| 155 | 158 | clean: |
| 156 | - rm -f *.o *_.c $(APPNAME) VERSION.h | |
| 159 | + rm -f $(OBJDIR)/*.o *_.c $(APPNAME) VERSION.h | |
| 157 | 160 | rm -f translate makeheaders mkindex page_index.h headers} |
| 158 | 161 | |
| 159 | 162 | set hfiles {} |
| 160 | 163 | foreach s [lsort $src] {lappend hfiles $s.h} |
| 161 | 164 | puts "\trm -f $hfiles\n" |
| @@ -178,25 +181,25 @@ | ||
| 178 | 181 | set extra_h(main) page_index.h |
| 179 | 182 | |
| 180 | 183 | foreach s [lsort $src] { |
| 181 | 184 | puts "${s}_.c:\t\$(SRCDIR)/$s.c translate" |
| 182 | 185 | puts "\t./translate \$(SRCDIR)/$s.c >${s}_.c\n" |
| 183 | - puts "$s.o:\t${s}_.c $s.h $extra_h($s) \$(SRCDIR)/config.h" | |
| 184 | - puts "\t\$(XTCC) -o $s.o -c ${s}_.c\n" | |
| 186 | + puts "\$(OBJDIR)/$s.o:\t${s}_.c $s.h $extra_h($s) \$(SRCDIR)/config.h" | |
| 187 | + puts "\t\$(XTCC) -o \$(OBJDIR)/$s.o -c ${s}_.c\n" | |
| 185 | 188 | puts "$s.h:\theaders" |
| 186 | 189 | # puts "\t./makeheaders $mhargs\n\ttouch headers\n" |
| 187 | 190 | # puts "\t./makeheaders ${s}_.c:${s}.h\n" |
| 188 | 191 | } |
| 189 | 192 | |
| 190 | 193 | |
| 191 | -puts "sqlite3.o:\t\$(SRCDIR)/sqlite3.c" | |
| 194 | +puts "\$(OBJDIR)/sqlite3.o:\t\$(SRCDIR)/sqlite3.c" | |
| 192 | 195 | set opt {-DSQLITE_OMIT_LOAD_EXTENSION=1} |
| 193 | 196 | append opt " -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4" |
| 194 | 197 | #append opt " -DSQLITE_ENABLE_FTS3=1" |
| 195 | 198 | append opt " -Dlocaltime=fossil_localtime" |
| 196 | -puts "\t\$(XTCC) $opt -c \$(SRCDIR)/sqlite3.c -o sqlite3.o\n" | |
| 199 | +puts "\t\$(XTCC) $opt -c \$(SRCDIR)/sqlite3.c -o \$(OBJDIR)/sqlite3.o\n" | |
| 197 | 200 | |
| 198 | -puts "th.o:\t\$(SRCDIR)/th.c" | |
| 199 | -puts "\t\$(XTCC) -I\$(SRCDIR) -c \$(SRCDIR)/th.c -o th.o\n" | |
| 201 | +puts "\$(OBJDIR)/th.o:\t\$(SRCDIR)/th.c" | |
| 202 | +puts "\t\$(XTCC) -I\$(SRCDIR) -c \$(SRCDIR)/th.c -o \$(OBJDIR)/th.o\n" | |
| 200 | 203 | |
| 201 | -puts "th_lang.o:\t\$(SRCDIR)/th_lang.c" | |
| 202 | -puts "\t\$(XTCC) -I\$(SRCDIR) -c \$(SRCDIR)/th_lang.c -o th_lang.o\n" | |
| 204 | +puts "\$(OBJDIR)/th_lang.o:\t\$(SRCDIR)/th_lang.c" | |
| 205 | +puts "\t\$(XTCC) -I\$(SRCDIR) -c \$(SRCDIR)/th_lang.c -o \$(OBJDIR)/th_lang.o\n" | |
| 203 | 206 |
| --- src/makemake.tcl | |
| +++ src/makemake.tcl | |
| @@ -105,22 +105,25 @@ | |
| 105 | puts -nonewline " \\\n ${s}_.c" |
| 106 | } |
| 107 | puts "\n" |
| 108 | puts -nonewline "OBJ =" |
| 109 | foreach s [lsort $src] { |
| 110 | puts -nonewline " \\\n $s.o" |
| 111 | } |
| 112 | puts "\n" |
| 113 | puts "APPNAME = $name\$(E)" |
| 114 | puts "\n" |
| 115 | |
| 116 | puts { |
| 117 | all: $(APPNAME) |
| 118 | |
| 119 | install: $(APPNAME) |
| 120 | mv $(APPNAME) $(INSTALLDIR) |
| 121 | |
| 122 | translate: $(SRCDIR)/translate.c |
| 123 | $(BCC) -o translate $(SRCDIR)/translate.c |
| 124 | |
| 125 | makeheaders: $(SRCDIR)/makeheaders.c |
| 126 | $(BCC) -o makeheaders $(SRCDIR)/makeheaders.c |
| @@ -141,21 +144,21 @@ | |
| 141 | $(SRCDIR)/../manifest.uuid >>VERSION.h |
| 142 | awk '$$1=="D"{printf "#define MANIFEST_DATE \"%s %s\"\n",\ |
| 143 | substr($$2,1,10),substr($$2,12)}' \ |
| 144 | $(SRCDIR)/../manifest >>VERSION.h |
| 145 | |
| 146 | $(APPNAME): headers $(OBJ) sqlite3.o th.o th_lang.o |
| 147 | $(TCC) -o $(APPNAME) $(OBJ) sqlite3.o th.o th_lang.o $(LIB) |
| 148 | |
| 149 | # This rule prevents make from using its default rules to try build |
| 150 | # an executable named "manifest" out of the file named "manifest.c" |
| 151 | # |
| 152 | $(SRCDIR)/../manifest: |
| 153 | # noop |
| 154 | |
| 155 | clean: |
| 156 | rm -f *.o *_.c $(APPNAME) VERSION.h |
| 157 | rm -f translate makeheaders mkindex page_index.h headers} |
| 158 | |
| 159 | set hfiles {} |
| 160 | foreach s [lsort $src] {lappend hfiles $s.h} |
| 161 | puts "\trm -f $hfiles\n" |
| @@ -178,25 +181,25 @@ | |
| 178 | set extra_h(main) page_index.h |
| 179 | |
| 180 | foreach s [lsort $src] { |
| 181 | puts "${s}_.c:\t\$(SRCDIR)/$s.c translate" |
| 182 | puts "\t./translate \$(SRCDIR)/$s.c >${s}_.c\n" |
| 183 | puts "$s.o:\t${s}_.c $s.h $extra_h($s) \$(SRCDIR)/config.h" |
| 184 | puts "\t\$(XTCC) -o $s.o -c ${s}_.c\n" |
| 185 | puts "$s.h:\theaders" |
| 186 | # puts "\t./makeheaders $mhargs\n\ttouch headers\n" |
| 187 | # puts "\t./makeheaders ${s}_.c:${s}.h\n" |
| 188 | } |
| 189 | |
| 190 | |
| 191 | puts "sqlite3.o:\t\$(SRCDIR)/sqlite3.c" |
| 192 | set opt {-DSQLITE_OMIT_LOAD_EXTENSION=1} |
| 193 | append opt " -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4" |
| 194 | #append opt " -DSQLITE_ENABLE_FTS3=1" |
| 195 | append opt " -Dlocaltime=fossil_localtime" |
| 196 | puts "\t\$(XTCC) $opt -c \$(SRCDIR)/sqlite3.c -o sqlite3.o\n" |
| 197 | |
| 198 | puts "th.o:\t\$(SRCDIR)/th.c" |
| 199 | puts "\t\$(XTCC) -I\$(SRCDIR) -c \$(SRCDIR)/th.c -o th.o\n" |
| 200 | |
| 201 | puts "th_lang.o:\t\$(SRCDIR)/th_lang.c" |
| 202 | puts "\t\$(XTCC) -I\$(SRCDIR) -c \$(SRCDIR)/th_lang.c -o th_lang.o\n" |
| 203 |
| --- src/makemake.tcl | |
| +++ src/makemake.tcl | |
| @@ -105,22 +105,25 @@ | |
| 105 | puts -nonewline " \\\n ${s}_.c" |
| 106 | } |
| 107 | puts "\n" |
| 108 | puts -nonewline "OBJ =" |
| 109 | foreach s [lsort $src] { |
| 110 | puts -nonewline " \\\n \$(OBJDIR)/$s.o" |
| 111 | } |
| 112 | puts "\n" |
| 113 | puts "APPNAME = $name\$(E)" |
| 114 | puts "\n" |
| 115 | |
| 116 | puts { |
| 117 | all: $(OBJDIR) $(APPNAME) |
| 118 | |
| 119 | install: $(APPNAME) |
| 120 | mv $(APPNAME) $(INSTALLDIR) |
| 121 | |
| 122 | $(OBJDIR): |
| 123 | -mkdir $(OBJDIR) |
| 124 | |
| 125 | translate: $(SRCDIR)/translate.c |
| 126 | $(BCC) -o translate $(SRCDIR)/translate.c |
| 127 | |
| 128 | makeheaders: $(SRCDIR)/makeheaders.c |
| 129 | $(BCC) -o makeheaders $(SRCDIR)/makeheaders.c |
| @@ -141,21 +144,21 @@ | |
| 144 | $(SRCDIR)/../manifest.uuid >>VERSION.h |
| 145 | awk '$$1=="D"{printf "#define MANIFEST_DATE \"%s %s\"\n",\ |
| 146 | substr($$2,1,10),substr($$2,12)}' \ |
| 147 | $(SRCDIR)/../manifest >>VERSION.h |
| 148 | |
| 149 | $(APPNAME): headers $(OBJ) $(OBJDIR)/sqlite3.o $(OBJDIR)/th.o $(OBJDIR)/th_lang.o |
| 150 | $(TCC) -o $(APPNAME) $(OBJ) $(OBJDIR)/sqlite3.o $(OBJDIR)/th.o $(OBJDIR)/th_lang.o $(LIB) |
| 151 | |
| 152 | # This rule prevents make from using its default rules to try build |
| 153 | # an executable named "manifest" out of the file named "manifest.c" |
| 154 | # |
| 155 | $(SRCDIR)/../manifest: |
| 156 | # noop |
| 157 | |
| 158 | clean: |
| 159 | rm -f $(OBJDIR)/*.o *_.c $(APPNAME) VERSION.h |
| 160 | rm -f translate makeheaders mkindex page_index.h headers} |
| 161 | |
| 162 | set hfiles {} |
| 163 | foreach s [lsort $src] {lappend hfiles $s.h} |
| 164 | puts "\trm -f $hfiles\n" |
| @@ -178,25 +181,25 @@ | |
| 181 | set extra_h(main) page_index.h |
| 182 | |
| 183 | foreach s [lsort $src] { |
| 184 | puts "${s}_.c:\t\$(SRCDIR)/$s.c translate" |
| 185 | puts "\t./translate \$(SRCDIR)/$s.c >${s}_.c\n" |
| 186 | puts "\$(OBJDIR)/$s.o:\t${s}_.c $s.h $extra_h($s) \$(SRCDIR)/config.h" |
| 187 | puts "\t\$(XTCC) -o \$(OBJDIR)/$s.o -c ${s}_.c\n" |
| 188 | puts "$s.h:\theaders" |
| 189 | # puts "\t./makeheaders $mhargs\n\ttouch headers\n" |
| 190 | # puts "\t./makeheaders ${s}_.c:${s}.h\n" |
| 191 | } |
| 192 | |
| 193 | |
| 194 | puts "\$(OBJDIR)/sqlite3.o:\t\$(SRCDIR)/sqlite3.c" |
| 195 | set opt {-DSQLITE_OMIT_LOAD_EXTENSION=1} |
| 196 | append opt " -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4" |
| 197 | #append opt " -DSQLITE_ENABLE_FTS3=1" |
| 198 | append opt " -Dlocaltime=fossil_localtime" |
| 199 | puts "\t\$(XTCC) $opt -c \$(SRCDIR)/sqlite3.c -o \$(OBJDIR)/sqlite3.o\n" |
| 200 | |
| 201 | puts "\$(OBJDIR)/th.o:\t\$(SRCDIR)/th.c" |
| 202 | puts "\t\$(XTCC) -I\$(SRCDIR) -c \$(SRCDIR)/th.c -o \$(OBJDIR)/th.o\n" |
| 203 | |
| 204 | puts "\$(OBJDIR)/th_lang.o:\t\$(SRCDIR)/th_lang.c" |
| 205 | puts "\t\$(XTCC) -I\$(SRCDIR) -c \$(SRCDIR)/th_lang.c -o \$(OBJDIR)/th_lang.o\n" |
| 206 |
+16
-13
| --- src/makemake.tcl | ||
| +++ src/makemake.tcl | ||
| @@ -105,22 +105,25 @@ | ||
| 105 | 105 | puts -nonewline " \\\n ${s}_.c" |
| 106 | 106 | } |
| 107 | 107 | puts "\n" |
| 108 | 108 | puts -nonewline "OBJ =" |
| 109 | 109 | foreach s [lsort $src] { |
| 110 | - puts -nonewline " \\\n $s.o" | |
| 110 | + puts -nonewline " \\\n \$(OBJDIR)/$s.o" | |
| 111 | 111 | } |
| 112 | 112 | puts "\n" |
| 113 | 113 | puts "APPNAME = $name\$(E)" |
| 114 | 114 | puts "\n" |
| 115 | 115 | |
| 116 | 116 | puts { |
| 117 | -all: $(APPNAME) | |
| 117 | +all: $(OBJDIR) $(APPNAME) | |
| 118 | 118 | |
| 119 | 119 | install: $(APPNAME) |
| 120 | 120 | mv $(APPNAME) $(INSTALLDIR) |
| 121 | 121 | |
| 122 | +$(OBJDIR): | |
| 123 | + -mkdir $(OBJDIR) | |
| 124 | + | |
| 122 | 125 | translate: $(SRCDIR)/translate.c |
| 123 | 126 | $(BCC) -o translate $(SRCDIR)/translate.c |
| 124 | 127 | |
| 125 | 128 | makeheaders: $(SRCDIR)/makeheaders.c |
| 126 | 129 | $(BCC) -o makeheaders $(SRCDIR)/makeheaders.c |
| @@ -141,21 +144,21 @@ | ||
| 141 | 144 | $(SRCDIR)/../manifest.uuid >>VERSION.h |
| 142 | 145 | awk '$$1=="D"{printf "#define MANIFEST_DATE \"%s %s\"\n",\ |
| 143 | 146 | substr($$2,1,10),substr($$2,12)}' \ |
| 144 | 147 | $(SRCDIR)/../manifest >>VERSION.h |
| 145 | 148 | |
| 146 | -$(APPNAME): headers $(OBJ) sqlite3.o th.o th_lang.o | |
| 147 | - $(TCC) -o $(APPNAME) $(OBJ) sqlite3.o th.o th_lang.o $(LIB) | |
| 149 | +$(APPNAME): headers $(OBJ) $(OBJDIR)/sqlite3.o $(OBJDIR)/th.o $(OBJDIR)/th_lang.o | |
| 150 | + $(TCC) -o $(APPNAME) $(OBJ) $(OBJDIR)/sqlite3.o $(OBJDIR)/th.o $(OBJDIR)/th_lang.o $(LIB) | |
| 148 | 151 | |
| 149 | 152 | # This rule prevents make from using its default rules to try build |
| 150 | 153 | # an executable named "manifest" out of the file named "manifest.c" |
| 151 | 154 | # |
| 152 | 155 | $(SRCDIR)/../manifest: |
| 153 | 156 | # noop |
| 154 | 157 | |
| 155 | 158 | clean: |
| 156 | - rm -f *.o *_.c $(APPNAME) VERSION.h | |
| 159 | + rm -f $(OBJDIR)/*.o *_.c $(APPNAME) VERSION.h | |
| 157 | 160 | rm -f translate makeheaders mkindex page_index.h headers} |
| 158 | 161 | |
| 159 | 162 | set hfiles {} |
| 160 | 163 | foreach s [lsort $src] {lappend hfiles $s.h} |
| 161 | 164 | puts "\trm -f $hfiles\n" |
| @@ -178,25 +181,25 @@ | ||
| 178 | 181 | set extra_h(main) page_index.h |
| 179 | 182 | |
| 180 | 183 | foreach s [lsort $src] { |
| 181 | 184 | puts "${s}_.c:\t\$(SRCDIR)/$s.c translate" |
| 182 | 185 | puts "\t./translate \$(SRCDIR)/$s.c >${s}_.c\n" |
| 183 | - puts "$s.o:\t${s}_.c $s.h $extra_h($s) \$(SRCDIR)/config.h" | |
| 184 | - puts "\t\$(XTCC) -o $s.o -c ${s}_.c\n" | |
| 186 | + puts "\$(OBJDIR)/$s.o:\t${s}_.c $s.h $extra_h($s) \$(SRCDIR)/config.h" | |
| 187 | + puts "\t\$(XTCC) -o \$(OBJDIR)/$s.o -c ${s}_.c\n" | |
| 185 | 188 | puts "$s.h:\theaders" |
| 186 | 189 | # puts "\t./makeheaders $mhargs\n\ttouch headers\n" |
| 187 | 190 | # puts "\t./makeheaders ${s}_.c:${s}.h\n" |
| 188 | 191 | } |
| 189 | 192 | |
| 190 | 193 | |
| 191 | -puts "sqlite3.o:\t\$(SRCDIR)/sqlite3.c" | |
| 194 | +puts "\$(OBJDIR)/sqlite3.o:\t\$(SRCDIR)/sqlite3.c" | |
| 192 | 195 | set opt {-DSQLITE_OMIT_LOAD_EXTENSION=1} |
| 193 | 196 | append opt " -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4" |
| 194 | 197 | #append opt " -DSQLITE_ENABLE_FTS3=1" |
| 195 | 198 | append opt " -Dlocaltime=fossil_localtime" |
| 196 | -puts "\t\$(XTCC) $opt -c \$(SRCDIR)/sqlite3.c -o sqlite3.o\n" | |
| 199 | +puts "\t\$(XTCC) $opt -c \$(SRCDIR)/sqlite3.c -o \$(OBJDIR)/sqlite3.o\n" | |
| 197 | 200 | |
| 198 | -puts "th.o:\t\$(SRCDIR)/th.c" | |
| 199 | -puts "\t\$(XTCC) -I\$(SRCDIR) -c \$(SRCDIR)/th.c -o th.o\n" | |
| 201 | +puts "\$(OBJDIR)/th.o:\t\$(SRCDIR)/th.c" | |
| 202 | +puts "\t\$(XTCC) -I\$(SRCDIR) -c \$(SRCDIR)/th.c -o \$(OBJDIR)/th.o\n" | |
| 200 | 203 | |
| 201 | -puts "th_lang.o:\t\$(SRCDIR)/th_lang.c" | |
| 202 | -puts "\t\$(XTCC) -I\$(SRCDIR) -c \$(SRCDIR)/th_lang.c -o th_lang.o\n" | |
| 204 | +puts "\$(OBJDIR)/th_lang.o:\t\$(SRCDIR)/th_lang.c" | |
| 205 | +puts "\t\$(XTCC) -I\$(SRCDIR) -c \$(SRCDIR)/th_lang.c -o \$(OBJDIR)/th_lang.o\n" | |
| 203 | 206 |
| --- src/makemake.tcl | |
| +++ src/makemake.tcl | |
| @@ -105,22 +105,25 @@ | |
| 105 | puts -nonewline " \\\n ${s}_.c" |
| 106 | } |
| 107 | puts "\n" |
| 108 | puts -nonewline "OBJ =" |
| 109 | foreach s [lsort $src] { |
| 110 | puts -nonewline " \\\n $s.o" |
| 111 | } |
| 112 | puts "\n" |
| 113 | puts "APPNAME = $name\$(E)" |
| 114 | puts "\n" |
| 115 | |
| 116 | puts { |
| 117 | all: $(APPNAME) |
| 118 | |
| 119 | install: $(APPNAME) |
| 120 | mv $(APPNAME) $(INSTALLDIR) |
| 121 | |
| 122 | translate: $(SRCDIR)/translate.c |
| 123 | $(BCC) -o translate $(SRCDIR)/translate.c |
| 124 | |
| 125 | makeheaders: $(SRCDIR)/makeheaders.c |
| 126 | $(BCC) -o makeheaders $(SRCDIR)/makeheaders.c |
| @@ -141,21 +144,21 @@ | |
| 141 | $(SRCDIR)/../manifest.uuid >>VERSION.h |
| 142 | awk '$$1=="D"{printf "#define MANIFEST_DATE \"%s %s\"\n",\ |
| 143 | substr($$2,1,10),substr($$2,12)}' \ |
| 144 | $(SRCDIR)/../manifest >>VERSION.h |
| 145 | |
| 146 | $(APPNAME): headers $(OBJ) sqlite3.o th.o th_lang.o |
| 147 | $(TCC) -o $(APPNAME) $(OBJ) sqlite3.o th.o th_lang.o $(LIB) |
| 148 | |
| 149 | # This rule prevents make from using its default rules to try build |
| 150 | # an executable named "manifest" out of the file named "manifest.c" |
| 151 | # |
| 152 | $(SRCDIR)/../manifest: |
| 153 | # noop |
| 154 | |
| 155 | clean: |
| 156 | rm -f *.o *_.c $(APPNAME) VERSION.h |
| 157 | rm -f translate makeheaders mkindex page_index.h headers} |
| 158 | |
| 159 | set hfiles {} |
| 160 | foreach s [lsort $src] {lappend hfiles $s.h} |
| 161 | puts "\trm -f $hfiles\n" |
| @@ -178,25 +181,25 @@ | |
| 178 | set extra_h(main) page_index.h |
| 179 | |
| 180 | foreach s [lsort $src] { |
| 181 | puts "${s}_.c:\t\$(SRCDIR)/$s.c translate" |
| 182 | puts "\t./translate \$(SRCDIR)/$s.c >${s}_.c\n" |
| 183 | puts "$s.o:\t${s}_.c $s.h $extra_h($s) \$(SRCDIR)/config.h" |
| 184 | puts "\t\$(XTCC) -o $s.o -c ${s}_.c\n" |
| 185 | puts "$s.h:\theaders" |
| 186 | # puts "\t./makeheaders $mhargs\n\ttouch headers\n" |
| 187 | # puts "\t./makeheaders ${s}_.c:${s}.h\n" |
| 188 | } |
| 189 | |
| 190 | |
| 191 | puts "sqlite3.o:\t\$(SRCDIR)/sqlite3.c" |
| 192 | set opt {-DSQLITE_OMIT_LOAD_EXTENSION=1} |
| 193 | append opt " -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4" |
| 194 | #append opt " -DSQLITE_ENABLE_FTS3=1" |
| 195 | append opt " -Dlocaltime=fossil_localtime" |
| 196 | puts "\t\$(XTCC) $opt -c \$(SRCDIR)/sqlite3.c -o sqlite3.o\n" |
| 197 | |
| 198 | puts "th.o:\t\$(SRCDIR)/th.c" |
| 199 | puts "\t\$(XTCC) -I\$(SRCDIR) -c \$(SRCDIR)/th.c -o th.o\n" |
| 200 | |
| 201 | puts "th_lang.o:\t\$(SRCDIR)/th_lang.c" |
| 202 | puts "\t\$(XTCC) -I\$(SRCDIR) -c \$(SRCDIR)/th_lang.c -o th_lang.o\n" |
| 203 |
| --- src/makemake.tcl | |
| +++ src/makemake.tcl | |
| @@ -105,22 +105,25 @@ | |
| 105 | puts -nonewline " \\\n ${s}_.c" |
| 106 | } |
| 107 | puts "\n" |
| 108 | puts -nonewline "OBJ =" |
| 109 | foreach s [lsort $src] { |
| 110 | puts -nonewline " \\\n \$(OBJDIR)/$s.o" |
| 111 | } |
| 112 | puts "\n" |
| 113 | puts "APPNAME = $name\$(E)" |
| 114 | puts "\n" |
| 115 | |
| 116 | puts { |
| 117 | all: $(OBJDIR) $(APPNAME) |
| 118 | |
| 119 | install: $(APPNAME) |
| 120 | mv $(APPNAME) $(INSTALLDIR) |
| 121 | |
| 122 | $(OBJDIR): |
| 123 | -mkdir $(OBJDIR) |
| 124 | |
| 125 | translate: $(SRCDIR)/translate.c |
| 126 | $(BCC) -o translate $(SRCDIR)/translate.c |
| 127 | |
| 128 | makeheaders: $(SRCDIR)/makeheaders.c |
| 129 | $(BCC) -o makeheaders $(SRCDIR)/makeheaders.c |
| @@ -141,21 +144,21 @@ | |
| 144 | $(SRCDIR)/../manifest.uuid >>VERSION.h |
| 145 | awk '$$1=="D"{printf "#define MANIFEST_DATE \"%s %s\"\n",\ |
| 146 | substr($$2,1,10),substr($$2,12)}' \ |
| 147 | $(SRCDIR)/../manifest >>VERSION.h |
| 148 | |
| 149 | $(APPNAME): headers $(OBJ) $(OBJDIR)/sqlite3.o $(OBJDIR)/th.o $(OBJDIR)/th_lang.o |
| 150 | $(TCC) -o $(APPNAME) $(OBJ) $(OBJDIR)/sqlite3.o $(OBJDIR)/th.o $(OBJDIR)/th_lang.o $(LIB) |
| 151 | |
| 152 | # This rule prevents make from using its default rules to try build |
| 153 | # an executable named "manifest" out of the file named "manifest.c" |
| 154 | # |
| 155 | $(SRCDIR)/../manifest: |
| 156 | # noop |
| 157 | |
| 158 | clean: |
| 159 | rm -f $(OBJDIR)/*.o *_.c $(APPNAME) VERSION.h |
| 160 | rm -f translate makeheaders mkindex page_index.h headers} |
| 161 | |
| 162 | set hfiles {} |
| 163 | foreach s [lsort $src] {lappend hfiles $s.h} |
| 164 | puts "\trm -f $hfiles\n" |
| @@ -178,25 +181,25 @@ | |
| 181 | set extra_h(main) page_index.h |
| 182 | |
| 183 | foreach s [lsort $src] { |
| 184 | puts "${s}_.c:\t\$(SRCDIR)/$s.c translate" |
| 185 | puts "\t./translate \$(SRCDIR)/$s.c >${s}_.c\n" |
| 186 | puts "\$(OBJDIR)/$s.o:\t${s}_.c $s.h $extra_h($s) \$(SRCDIR)/config.h" |
| 187 | puts "\t\$(XTCC) -o \$(OBJDIR)/$s.o -c ${s}_.c\n" |
| 188 | puts "$s.h:\theaders" |
| 189 | # puts "\t./makeheaders $mhargs\n\ttouch headers\n" |
| 190 | # puts "\t./makeheaders ${s}_.c:${s}.h\n" |
| 191 | } |
| 192 | |
| 193 | |
| 194 | puts "\$(OBJDIR)/sqlite3.o:\t\$(SRCDIR)/sqlite3.c" |
| 195 | set opt {-DSQLITE_OMIT_LOAD_EXTENSION=1} |
| 196 | append opt " -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4" |
| 197 | #append opt " -DSQLITE_ENABLE_FTS3=1" |
| 198 | append opt " -Dlocaltime=fossil_localtime" |
| 199 | puts "\t\$(XTCC) $opt -c \$(SRCDIR)/sqlite3.c -o \$(OBJDIR)/sqlite3.o\n" |
| 200 | |
| 201 | puts "\$(OBJDIR)/th.o:\t\$(SRCDIR)/th.c" |
| 202 | puts "\t\$(XTCC) -I\$(SRCDIR) -c \$(SRCDIR)/th.c -o \$(OBJDIR)/th.o\n" |
| 203 | |
| 204 | puts "\$(OBJDIR)/th_lang.o:\t\$(SRCDIR)/th_lang.c" |
| 205 | puts "\t\$(XTCC) -I\$(SRCDIR) -c \$(SRCDIR)/th_lang.c -o \$(OBJDIR)/th_lang.o\n" |
| 206 |
+3
-2
| --- src/rss.c | ||
| +++ src/rss.c | ||
| @@ -35,10 +35,11 @@ | ||
| 35 | 35 | Stmt q; |
| 36 | 36 | int nLine=0; |
| 37 | 37 | char *zPubDate, *zProjectName, *zProjectDescr, *zFreeProjectName=0; |
| 38 | 38 | Blob bSQL; |
| 39 | 39 | const char *zType = PD("y","all"); /* Type of events. All if NULL */ |
| 40 | + int nLimit = atoi(PD("n","20")); | |
| 40 | 41 | const char zSQL1[] = |
| 41 | 42 | @ SELECT |
| 42 | 43 | @ blob.rid, |
| 43 | 44 | @ uuid, |
| 44 | 45 | @ event.mtime, |
| @@ -55,11 +56,11 @@ | ||
| 55 | 56 | return; |
| 56 | 57 | } |
| 57 | 58 | |
| 58 | 59 | blob_zero(&bSQL); |
| 59 | 60 | blob_append( &bSQL, zSQL1, -1 ); |
| 60 | - | |
| 61 | + | |
| 61 | 62 | if( zType[0]!='a' ){ |
| 62 | 63 | if( zType[0]=='c' && !g.okRead ) zType = "x"; |
| 63 | 64 | if( zType[0]=='w' && !g.okRdWiki ) zType = "x"; |
| 64 | 65 | if( zType[0]=='t' && !g.okRdTkt ) zType = "x"; |
| 65 | 66 | blob_appendf(&bSQL, " AND event.type=%Q", zType); |
| @@ -108,11 +109,11 @@ | ||
| 108 | 109 | @ <description>%h(zProjectDescr)</description> |
| 109 | 110 | @ <pubDate>%s(zPubDate)</pubDate> |
| 110 | 111 | @ <generator>Fossil version %s(MANIFEST_VERSION) %s(MANIFEST_DATE)</generator> |
| 111 | 112 | db_prepare(&q, blob_str(&bSQL)); |
| 112 | 113 | blob_reset( &bSQL ); |
| 113 | - while( db_step(&q)==SQLITE_ROW && nLine<=20 ){ | |
| 114 | + while( db_step(&q)==SQLITE_ROW && nLine<=nLimit ){ | |
| 114 | 115 | const char *zId = db_column_text(&q, 1); |
| 115 | 116 | const char *zCom = db_column_text(&q, 3); |
| 116 | 117 | const char *zAuthor = db_column_text(&q, 4); |
| 117 | 118 | char *zPrefix = ""; |
| 118 | 119 | char *zDate; |
| 119 | 120 |
| --- src/rss.c | |
| +++ src/rss.c | |
| @@ -35,10 +35,11 @@ | |
| 35 | Stmt q; |
| 36 | int nLine=0; |
| 37 | char *zPubDate, *zProjectName, *zProjectDescr, *zFreeProjectName=0; |
| 38 | Blob bSQL; |
| 39 | const char *zType = PD("y","all"); /* Type of events. All if NULL */ |
| 40 | const char zSQL1[] = |
| 41 | @ SELECT |
| 42 | @ blob.rid, |
| 43 | @ uuid, |
| 44 | @ event.mtime, |
| @@ -55,11 +56,11 @@ | |
| 55 | return; |
| 56 | } |
| 57 | |
| 58 | blob_zero(&bSQL); |
| 59 | blob_append( &bSQL, zSQL1, -1 ); |
| 60 | |
| 61 | if( zType[0]!='a' ){ |
| 62 | if( zType[0]=='c' && !g.okRead ) zType = "x"; |
| 63 | if( zType[0]=='w' && !g.okRdWiki ) zType = "x"; |
| 64 | if( zType[0]=='t' && !g.okRdTkt ) zType = "x"; |
| 65 | blob_appendf(&bSQL, " AND event.type=%Q", zType); |
| @@ -108,11 +109,11 @@ | |
| 108 | @ <description>%h(zProjectDescr)</description> |
| 109 | @ <pubDate>%s(zPubDate)</pubDate> |
| 110 | @ <generator>Fossil version %s(MANIFEST_VERSION) %s(MANIFEST_DATE)</generator> |
| 111 | db_prepare(&q, blob_str(&bSQL)); |
| 112 | blob_reset( &bSQL ); |
| 113 | while( db_step(&q)==SQLITE_ROW && nLine<=20 ){ |
| 114 | const char *zId = db_column_text(&q, 1); |
| 115 | const char *zCom = db_column_text(&q, 3); |
| 116 | const char *zAuthor = db_column_text(&q, 4); |
| 117 | char *zPrefix = ""; |
| 118 | char *zDate; |
| 119 |
| --- src/rss.c | |
| +++ src/rss.c | |
| @@ -35,10 +35,11 @@ | |
| 35 | Stmt q; |
| 36 | int nLine=0; |
| 37 | char *zPubDate, *zProjectName, *zProjectDescr, *zFreeProjectName=0; |
| 38 | Blob bSQL; |
| 39 | const char *zType = PD("y","all"); /* Type of events. All if NULL */ |
| 40 | int nLimit = atoi(PD("n","20")); |
| 41 | const char zSQL1[] = |
| 42 | @ SELECT |
| 43 | @ blob.rid, |
| 44 | @ uuid, |
| 45 | @ event.mtime, |
| @@ -55,11 +56,11 @@ | |
| 56 | return; |
| 57 | } |
| 58 | |
| 59 | blob_zero(&bSQL); |
| 60 | blob_append( &bSQL, zSQL1, -1 ); |
| 61 | |
| 62 | if( zType[0]!='a' ){ |
| 63 | if( zType[0]=='c' && !g.okRead ) zType = "x"; |
| 64 | if( zType[0]=='w' && !g.okRdWiki ) zType = "x"; |
| 65 | if( zType[0]=='t' && !g.okRdTkt ) zType = "x"; |
| 66 | blob_appendf(&bSQL, " AND event.type=%Q", zType); |
| @@ -108,11 +109,11 @@ | |
| 109 | @ <description>%h(zProjectDescr)</description> |
| 110 | @ <pubDate>%s(zPubDate)</pubDate> |
| 111 | @ <generator>Fossil version %s(MANIFEST_VERSION) %s(MANIFEST_DATE)</generator> |
| 112 | db_prepare(&q, blob_str(&bSQL)); |
| 113 | blob_reset( &bSQL ); |
| 114 | while( db_step(&q)==SQLITE_ROW && nLine<=nLimit ){ |
| 115 | const char *zId = db_column_text(&q, 1); |
| 116 | const char *zCom = db_column_text(&q, 3); |
| 117 | const char *zAuthor = db_column_text(&q, 4); |
| 118 | char *zPrefix = ""; |
| 119 | char *zDate; |
| 120 |
+3
| --- src/style.c | ||
| +++ src/style.c | ||
| @@ -88,10 +88,13 @@ | ||
| 88 | 88 | va_start(ap, zTitleFormat); |
| 89 | 89 | zTitle = vmprintf(zTitleFormat, ap); |
| 90 | 90 | va_end(ap); |
| 91 | 91 | |
| 92 | 92 | cgi_destination(CGI_HEADER); |
| 93 | + cgi_printf("%s", | |
| 94 | + "<!DOCTYPE html PUBLIC \"-//W3C/DTD XHTML 1.0 Strict//EN\"" | |
| 95 | + " \"http://www.x3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">"); | |
| 93 | 96 | |
| 94 | 97 | if( g.thTrace ) Th_Trace("BEGIN_HEADER<br />\n", -1); |
| 95 | 98 | |
| 96 | 99 | /* Generate the header up through the main menu */ |
| 97 | 100 | Th_Store("project_name", db_get("project-name","Unnamed Fossil Project")); |
| 98 | 101 |
| --- src/style.c | |
| +++ src/style.c | |
| @@ -88,10 +88,13 @@ | |
| 88 | va_start(ap, zTitleFormat); |
| 89 | zTitle = vmprintf(zTitleFormat, ap); |
| 90 | va_end(ap); |
| 91 | |
| 92 | cgi_destination(CGI_HEADER); |
| 93 | |
| 94 | if( g.thTrace ) Th_Trace("BEGIN_HEADER<br />\n", -1); |
| 95 | |
| 96 | /* Generate the header up through the main menu */ |
| 97 | Th_Store("project_name", db_get("project-name","Unnamed Fossil Project")); |
| 98 |
| --- src/style.c | |
| +++ src/style.c | |
| @@ -88,10 +88,13 @@ | |
| 88 | va_start(ap, zTitleFormat); |
| 89 | zTitle = vmprintf(zTitleFormat, ap); |
| 90 | va_end(ap); |
| 91 | |
| 92 | cgi_destination(CGI_HEADER); |
| 93 | cgi_printf("%s", |
| 94 | "<!DOCTYPE html PUBLIC \"-//W3C/DTD XHTML 1.0 Strict//EN\"" |
| 95 | " \"http://www.x3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">"); |
| 96 | |
| 97 | if( g.thTrace ) Th_Trace("BEGIN_HEADER<br />\n", -1); |
| 98 | |
| 99 | /* Generate the header up through the main menu */ |
| 100 | Th_Store("project_name", db_get("project-name","Unnamed Fossil Project")); |
| 101 |
+38
-14
| --- src/timeline.c | ||
| +++ src/timeline.c | ||
| @@ -154,10 +154,11 @@ | ||
| 154 | 154 | #if INTERFACE |
| 155 | 155 | #define TIMELINE_ARTID 0x0001 /* Show artifact IDs on non-check-in lines */ |
| 156 | 156 | #define TIMELINE_LEAFONLY 0x0002 /* Show "Leaf", but not "Merge", "Fork" etc */ |
| 157 | 157 | #define TIMELINE_BRIEF 0x0004 /* Combine adjacent elements of same object */ |
| 158 | 158 | #define TIMELINE_GRAPH 0x0008 /* Compute a graph */ |
| 159 | +#define TIMELINE_DISJOINT 0x0010 /* Elements are not contiguous */ | |
| 159 | 160 | #endif |
| 160 | 161 | |
| 161 | 162 | /* |
| 162 | 163 | ** Output a timeline in the web format given a query. The query |
| 163 | 164 | ** should return these columns: |
| @@ -251,11 +252,11 @@ | ||
| 251 | 252 | } |
| 252 | 253 | memcpy(zTime, &zDate[11], 5); |
| 253 | 254 | zTime[5] = 0; |
| 254 | 255 | @ <tr> |
| 255 | 256 | @ <td valign="top" align="right">%s(zTime)</td> |
| 256 | - @ <td width="20" align="center" valign="top"> | |
| 257 | + @ <td width="20" align="left" valign="top"> | |
| 257 | 258 | @ <div id="m%d(rid)"></div> |
| 258 | 259 | if( zBgClr && zBgClr[0] ){ |
| 259 | 260 | @ <td valign="top" align="left" bgcolor="%h(zBgClr)"> |
| 260 | 261 | }else{ |
| 261 | 262 | @ <td valign="top" align="left"> |
| @@ -348,11 +349,11 @@ | ||
| 348 | 349 | @ <small><i>... %d(suppressCnt) similar |
| 349 | 350 | @ event%s(suppressCnt>1?"s":"") omitted.</i></small></tr> |
| 350 | 351 | suppressCnt = 0; |
| 351 | 352 | } |
| 352 | 353 | if( pGraph ){ |
| 353 | - graph_finish(pGraph); | |
| 354 | + graph_finish(pGraph, (tmFlags & TIMELINE_DISJOINT)!=0); | |
| 354 | 355 | if( pGraph->nErr ){ |
| 355 | 356 | graph_free(pGraph); |
| 356 | 357 | pGraph = 0; |
| 357 | 358 | }else{ |
| 358 | 359 | @ <tr><td><td><div style="width:%d(pGraph->mxRail*20+30)px;"></div> |
| @@ -395,25 +396,25 @@ | ||
| 395 | 396 | cgi_printf("]}%s", pRow->pNext ? ",\n" : "];\n"); |
| 396 | 397 | } |
| 397 | 398 | cgi_printf("var nrail = %d\n", pGraph->mxRail+1); |
| 398 | 399 | graph_free(pGraph); |
| 399 | 400 | @ var canvasDiv = document.getElementById("canvas"); |
| 401 | + @ var realCanvas = null; | |
| 400 | 402 | @ function drawBox(color,x0,y0,x1,y1){ |
| 401 | 403 | @ var n = document.createElement("div"); |
| 402 | 404 | @ if( x0>x1 ){ var t=x0; x0=x1; x1=t; } |
| 403 | 405 | @ if( y0>y1 ){ var t=y0; y0=y1; y1=t; } |
| 404 | 406 | @ var w = x1-x0+1; |
| 405 | 407 | @ var h = y1-y0+1; |
| 406 | - @ n.setAttribute("style", | |
| 407 | - @ "position:absolute;"+ | |
| 408 | - @ "left:"+x0+"px;"+ | |
| 409 | - @ "top:"+y0+"px;"+ | |
| 410 | - @ "width:"+w+"px;"+ | |
| 411 | - @ "height:"+h+"px;"+ | |
| 412 | - @ "background-color:"+color+";" | |
| 413 | - @ ); | |
| 414 | 408 | @ canvasDiv.appendChild(n); |
| 409 | + @ n.style.position = "absolute"; | |
| 410 | + @ n.style.overflow = "hidden"; | |
| 411 | + @ n.style.left = x0+"px"; | |
| 412 | + @ n.style.top = y0+"px"; | |
| 413 | + @ n.style.width = w+"px"; | |
| 414 | + @ n.style.height = h+"px"; | |
| 415 | + @ n.style.backgroundColor = color; | |
| 415 | 416 | @ } |
| 416 | 417 | @ function absoluteY(id){ |
| 417 | 418 | @ var obj = document.getElementById(id); |
| 418 | 419 | @ if( !obj ) return; |
| 419 | 420 | @ var top = 0; |
| @@ -496,21 +497,40 @@ | ||
| 496 | 497 | @ } |
| 497 | 498 | @ } |
| 498 | 499 | @ } |
| 499 | 500 | @ function renderGraph(){ |
| 500 | 501 | @ var canvasDiv = document.getElementById("canvas"); |
| 501 | - @ for(var i=canvasDiv.childNodes.length-1; i>=0; i--){ | |
| 502 | - @ var c = canvasDiv.childNodes[i]; | |
| 503 | - @ delete canvasDiv.removeChild(c); | |
| 502 | + @ while( canvasDiv.hasChildNodes() ){ | |
| 503 | + @ canvasDiv.removeChild(canvasDiv.firstChild); | |
| 504 | 504 | @ } |
| 505 | 505 | @ var canvasY = absoluteY("canvas"); |
| 506 | 506 | @ var left = absoluteX(rowinfo[0].id) - absoluteX("canvas") + 15; |
| 507 | + @ var width = nrail*20; | |
| 507 | 508 | @ for(var i in rowinfo){ |
| 508 | 509 | @ rowinfo[i].y = absoluteY(rowinfo[i].id) + 10 - canvasY; |
| 509 | 510 | @ rowinfo[i].x = left + rowinfo[i].r*20; |
| 510 | 511 | @ } |
| 511 | 512 | @ var btm = rowinfo[rowinfo.length-1].y + 20; |
| 513 | + @ canvasDiv.innerHTML = '<canvas id="timeline-canvas" '+ | |
| 514 | + @ 'style="position:absolute;left:'+(left-5)+'px;"' + | |
| 515 | + @ ' width="'+width+'" height="'+btm+'"></canvas>'; | |
| 516 | + @ realCanvas = document.getElementById('timeline-canvas'); | |
| 517 | + @ var context; | |
| 518 | + @ if( realCanvas && realCanvas.getContext | |
| 519 | + @ && (context = realCanvas.getContext('2d'))) { | |
| 520 | + @ drawBox = function(color,x0,y0,x1,y1) { | |
| 521 | + @ var colors = { | |
| 522 | + @ 'white':'rgba(255,255,255,1)', | |
| 523 | + @ 'black':'rgba(0,0,0,1)' | |
| 524 | + @ }; | |
| 525 | + @ if( x0>x1 ){ var t=x0; x0=x1; x1=t; } | |
| 526 | + @ if( y0>y1 ){ var t=y0; y0=y1; y1=t; } | |
| 527 | + @ if(isNaN(x0) || isNaN(y0) || isNaN(x1) || isNaN(y1)) return; | |
| 528 | + @ context.fillStyle = colors[color]; | |
| 529 | + @ context.fillRect(x0-left+5,y0,x1-x0+1,y1-y0+1); | |
| 530 | + @ }; | |
| 531 | + @ } | |
| 512 | 532 | @ for(var i in rowinfo){ |
| 513 | 533 | @ drawNode(rowinfo[i], left, btm); |
| 514 | 534 | @ } |
| 515 | 535 | @ } |
| 516 | 536 | @ var lastId = rowinfo[rowinfo.length-1].id; |
| @@ -636,10 +656,11 @@ | ||
| 636 | 656 | ** d=RID artifact RID and up to COUNT descendants |
| 637 | 657 | ** t=TAGID show only check-ins with the given tagid |
| 638 | 658 | ** u=USER only if belonging to this user |
| 639 | 659 | ** y=TYPE 'ci', 'w', 't' |
| 640 | 660 | ** s=TEXT string search (comment and brief) |
| 661 | +** ng Suppress the graph if present | |
| 641 | 662 | ** |
| 642 | 663 | ** p= and d= can appear individually or together. If either p= or d= |
| 643 | 664 | ** appear, then u=, y=, a=, and b= are ignored. |
| 644 | 665 | ** |
| 645 | 666 | ** If a= and b= appear, only a= is used. If neither appear, the most |
| @@ -677,10 +698,13 @@ | ||
| 677 | 698 | if( zType[0]=='a' ){ |
| 678 | 699 | tmFlags = TIMELINE_BRIEF | TIMELINE_GRAPH; |
| 679 | 700 | }else{ |
| 680 | 701 | tmFlags = TIMELINE_GRAPH; |
| 681 | 702 | } |
| 703 | + if( P("ng")!=0 ){ | |
| 704 | + tmFlags &= ~TIMELINE_GRAPH; | |
| 705 | + } | |
| 682 | 706 | |
| 683 | 707 | style_header("Timeline"); |
| 684 | 708 | login_anonymous_available(); |
| 685 | 709 | timeline_temp_table(); |
| 686 | 710 | blob_zero(&sql); |
| @@ -857,11 +881,11 @@ | ||
| 857 | 881 | if( zUser ){ |
| 858 | 882 | blob_appendf(&desc, " by user %h", zUser); |
| 859 | 883 | } |
| 860 | 884 | if( tagid>0 ){ |
| 861 | 885 | blob_appendf(&desc, " tagged with \"%h\"", zTagName); |
| 862 | - tmFlags &= ~TIMELINE_GRAPH; | |
| 886 | + tmFlags |= TIMELINE_DISJOINT; | |
| 863 | 887 | } |
| 864 | 888 | if( zAfter ){ |
| 865 | 889 | blob_appendf(&desc, " occurring on or after %h.<br>", zAfter); |
| 866 | 890 | }else if( zBefore ){ |
| 867 | 891 | blob_appendf(&desc, " occurring on or before %h.<br>", zBefore); |
| 868 | 892 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -154,10 +154,11 @@ | |
| 154 | #if INTERFACE |
| 155 | #define TIMELINE_ARTID 0x0001 /* Show artifact IDs on non-check-in lines */ |
| 156 | #define TIMELINE_LEAFONLY 0x0002 /* Show "Leaf", but not "Merge", "Fork" etc */ |
| 157 | #define TIMELINE_BRIEF 0x0004 /* Combine adjacent elements of same object */ |
| 158 | #define TIMELINE_GRAPH 0x0008 /* Compute a graph */ |
| 159 | #endif |
| 160 | |
| 161 | /* |
| 162 | ** Output a timeline in the web format given a query. The query |
| 163 | ** should return these columns: |
| @@ -251,11 +252,11 @@ | |
| 251 | } |
| 252 | memcpy(zTime, &zDate[11], 5); |
| 253 | zTime[5] = 0; |
| 254 | @ <tr> |
| 255 | @ <td valign="top" align="right">%s(zTime)</td> |
| 256 | @ <td width="20" align="center" valign="top"> |
| 257 | @ <div id="m%d(rid)"></div> |
| 258 | if( zBgClr && zBgClr[0] ){ |
| 259 | @ <td valign="top" align="left" bgcolor="%h(zBgClr)"> |
| 260 | }else{ |
| 261 | @ <td valign="top" align="left"> |
| @@ -348,11 +349,11 @@ | |
| 348 | @ <small><i>... %d(suppressCnt) similar |
| 349 | @ event%s(suppressCnt>1?"s":"") omitted.</i></small></tr> |
| 350 | suppressCnt = 0; |
| 351 | } |
| 352 | if( pGraph ){ |
| 353 | graph_finish(pGraph); |
| 354 | if( pGraph->nErr ){ |
| 355 | graph_free(pGraph); |
| 356 | pGraph = 0; |
| 357 | }else{ |
| 358 | @ <tr><td><td><div style="width:%d(pGraph->mxRail*20+30)px;"></div> |
| @@ -395,25 +396,25 @@ | |
| 395 | cgi_printf("]}%s", pRow->pNext ? ",\n" : "];\n"); |
| 396 | } |
| 397 | cgi_printf("var nrail = %d\n", pGraph->mxRail+1); |
| 398 | graph_free(pGraph); |
| 399 | @ var canvasDiv = document.getElementById("canvas"); |
| 400 | @ function drawBox(color,x0,y0,x1,y1){ |
| 401 | @ var n = document.createElement("div"); |
| 402 | @ if( x0>x1 ){ var t=x0; x0=x1; x1=t; } |
| 403 | @ if( y0>y1 ){ var t=y0; y0=y1; y1=t; } |
| 404 | @ var w = x1-x0+1; |
| 405 | @ var h = y1-y0+1; |
| 406 | @ n.setAttribute("style", |
| 407 | @ "position:absolute;"+ |
| 408 | @ "left:"+x0+"px;"+ |
| 409 | @ "top:"+y0+"px;"+ |
| 410 | @ "width:"+w+"px;"+ |
| 411 | @ "height:"+h+"px;"+ |
| 412 | @ "background-color:"+color+";" |
| 413 | @ ); |
| 414 | @ canvasDiv.appendChild(n); |
| 415 | @ } |
| 416 | @ function absoluteY(id){ |
| 417 | @ var obj = document.getElementById(id); |
| 418 | @ if( !obj ) return; |
| 419 | @ var top = 0; |
| @@ -496,21 +497,40 @@ | |
| 496 | @ } |
| 497 | @ } |
| 498 | @ } |
| 499 | @ function renderGraph(){ |
| 500 | @ var canvasDiv = document.getElementById("canvas"); |
| 501 | @ for(var i=canvasDiv.childNodes.length-1; i>=0; i--){ |
| 502 | @ var c = canvasDiv.childNodes[i]; |
| 503 | @ delete canvasDiv.removeChild(c); |
| 504 | @ } |
| 505 | @ var canvasY = absoluteY("canvas"); |
| 506 | @ var left = absoluteX(rowinfo[0].id) - absoluteX("canvas") + 15; |
| 507 | @ for(var i in rowinfo){ |
| 508 | @ rowinfo[i].y = absoluteY(rowinfo[i].id) + 10 - canvasY; |
| 509 | @ rowinfo[i].x = left + rowinfo[i].r*20; |
| 510 | @ } |
| 511 | @ var btm = rowinfo[rowinfo.length-1].y + 20; |
| 512 | @ for(var i in rowinfo){ |
| 513 | @ drawNode(rowinfo[i], left, btm); |
| 514 | @ } |
| 515 | @ } |
| 516 | @ var lastId = rowinfo[rowinfo.length-1].id; |
| @@ -636,10 +656,11 @@ | |
| 636 | ** d=RID artifact RID and up to COUNT descendants |
| 637 | ** t=TAGID show only check-ins with the given tagid |
| 638 | ** u=USER only if belonging to this user |
| 639 | ** y=TYPE 'ci', 'w', 't' |
| 640 | ** s=TEXT string search (comment and brief) |
| 641 | ** |
| 642 | ** p= and d= can appear individually or together. If either p= or d= |
| 643 | ** appear, then u=, y=, a=, and b= are ignored. |
| 644 | ** |
| 645 | ** If a= and b= appear, only a= is used. If neither appear, the most |
| @@ -677,10 +698,13 @@ | |
| 677 | if( zType[0]=='a' ){ |
| 678 | tmFlags = TIMELINE_BRIEF | TIMELINE_GRAPH; |
| 679 | }else{ |
| 680 | tmFlags = TIMELINE_GRAPH; |
| 681 | } |
| 682 | |
| 683 | style_header("Timeline"); |
| 684 | login_anonymous_available(); |
| 685 | timeline_temp_table(); |
| 686 | blob_zero(&sql); |
| @@ -857,11 +881,11 @@ | |
| 857 | if( zUser ){ |
| 858 | blob_appendf(&desc, " by user %h", zUser); |
| 859 | } |
| 860 | if( tagid>0 ){ |
| 861 | blob_appendf(&desc, " tagged with \"%h\"", zTagName); |
| 862 | tmFlags &= ~TIMELINE_GRAPH; |
| 863 | } |
| 864 | if( zAfter ){ |
| 865 | blob_appendf(&desc, " occurring on or after %h.<br>", zAfter); |
| 866 | }else if( zBefore ){ |
| 867 | blob_appendf(&desc, " occurring on or before %h.<br>", zBefore); |
| 868 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -154,10 +154,11 @@ | |
| 154 | #if INTERFACE |
| 155 | #define TIMELINE_ARTID 0x0001 /* Show artifact IDs on non-check-in lines */ |
| 156 | #define TIMELINE_LEAFONLY 0x0002 /* Show "Leaf", but not "Merge", "Fork" etc */ |
| 157 | #define TIMELINE_BRIEF 0x0004 /* Combine adjacent elements of same object */ |
| 158 | #define TIMELINE_GRAPH 0x0008 /* Compute a graph */ |
| 159 | #define TIMELINE_DISJOINT 0x0010 /* Elements are not contiguous */ |
| 160 | #endif |
| 161 | |
| 162 | /* |
| 163 | ** Output a timeline in the web format given a query. The query |
| 164 | ** should return these columns: |
| @@ -251,11 +252,11 @@ | |
| 252 | } |
| 253 | memcpy(zTime, &zDate[11], 5); |
| 254 | zTime[5] = 0; |
| 255 | @ <tr> |
| 256 | @ <td valign="top" align="right">%s(zTime)</td> |
| 257 | @ <td width="20" align="left" valign="top"> |
| 258 | @ <div id="m%d(rid)"></div> |
| 259 | if( zBgClr && zBgClr[0] ){ |
| 260 | @ <td valign="top" align="left" bgcolor="%h(zBgClr)"> |
| 261 | }else{ |
| 262 | @ <td valign="top" align="left"> |
| @@ -348,11 +349,11 @@ | |
| 349 | @ <small><i>... %d(suppressCnt) similar |
| 350 | @ event%s(suppressCnt>1?"s":"") omitted.</i></small></tr> |
| 351 | suppressCnt = 0; |
| 352 | } |
| 353 | if( pGraph ){ |
| 354 | graph_finish(pGraph, (tmFlags & TIMELINE_DISJOINT)!=0); |
| 355 | if( pGraph->nErr ){ |
| 356 | graph_free(pGraph); |
| 357 | pGraph = 0; |
| 358 | }else{ |
| 359 | @ <tr><td><td><div style="width:%d(pGraph->mxRail*20+30)px;"></div> |
| @@ -395,25 +396,25 @@ | |
| 396 | cgi_printf("]}%s", pRow->pNext ? ",\n" : "];\n"); |
| 397 | } |
| 398 | cgi_printf("var nrail = %d\n", pGraph->mxRail+1); |
| 399 | graph_free(pGraph); |
| 400 | @ var canvasDiv = document.getElementById("canvas"); |
| 401 | @ var realCanvas = null; |
| 402 | @ function drawBox(color,x0,y0,x1,y1){ |
| 403 | @ var n = document.createElement("div"); |
| 404 | @ if( x0>x1 ){ var t=x0; x0=x1; x1=t; } |
| 405 | @ if( y0>y1 ){ var t=y0; y0=y1; y1=t; } |
| 406 | @ var w = x1-x0+1; |
| 407 | @ var h = y1-y0+1; |
| 408 | @ canvasDiv.appendChild(n); |
| 409 | @ n.style.position = "absolute"; |
| 410 | @ n.style.overflow = "hidden"; |
| 411 | @ n.style.left = x0+"px"; |
| 412 | @ n.style.top = y0+"px"; |
| 413 | @ n.style.width = w+"px"; |
| 414 | @ n.style.height = h+"px"; |
| 415 | @ n.style.backgroundColor = color; |
| 416 | @ } |
| 417 | @ function absoluteY(id){ |
| 418 | @ var obj = document.getElementById(id); |
| 419 | @ if( !obj ) return; |
| 420 | @ var top = 0; |
| @@ -496,21 +497,40 @@ | |
| 497 | @ } |
| 498 | @ } |
| 499 | @ } |
| 500 | @ function renderGraph(){ |
| 501 | @ var canvasDiv = document.getElementById("canvas"); |
| 502 | @ while( canvasDiv.hasChildNodes() ){ |
| 503 | @ canvasDiv.removeChild(canvasDiv.firstChild); |
| 504 | @ } |
| 505 | @ var canvasY = absoluteY("canvas"); |
| 506 | @ var left = absoluteX(rowinfo[0].id) - absoluteX("canvas") + 15; |
| 507 | @ var width = nrail*20; |
| 508 | @ for(var i in rowinfo){ |
| 509 | @ rowinfo[i].y = absoluteY(rowinfo[i].id) + 10 - canvasY; |
| 510 | @ rowinfo[i].x = left + rowinfo[i].r*20; |
| 511 | @ } |
| 512 | @ var btm = rowinfo[rowinfo.length-1].y + 20; |
| 513 | @ canvasDiv.innerHTML = '<canvas id="timeline-canvas" '+ |
| 514 | @ 'style="position:absolute;left:'+(left-5)+'px;"' + |
| 515 | @ ' width="'+width+'" height="'+btm+'"></canvas>'; |
| 516 | @ realCanvas = document.getElementById('timeline-canvas'); |
| 517 | @ var context; |
| 518 | @ if( realCanvas && realCanvas.getContext |
| 519 | @ && (context = realCanvas.getContext('2d'))) { |
| 520 | @ drawBox = function(color,x0,y0,x1,y1) { |
| 521 | @ var colors = { |
| 522 | @ 'white':'rgba(255,255,255,1)', |
| 523 | @ 'black':'rgba(0,0,0,1)' |
| 524 | @ }; |
| 525 | @ if( x0>x1 ){ var t=x0; x0=x1; x1=t; } |
| 526 | @ if( y0>y1 ){ var t=y0; y0=y1; y1=t; } |
| 527 | @ if(isNaN(x0) || isNaN(y0) || isNaN(x1) || isNaN(y1)) return; |
| 528 | @ context.fillStyle = colors[color]; |
| 529 | @ context.fillRect(x0-left+5,y0,x1-x0+1,y1-y0+1); |
| 530 | @ }; |
| 531 | @ } |
| 532 | @ for(var i in rowinfo){ |
| 533 | @ drawNode(rowinfo[i], left, btm); |
| 534 | @ } |
| 535 | @ } |
| 536 | @ var lastId = rowinfo[rowinfo.length-1].id; |
| @@ -636,10 +656,11 @@ | |
| 656 | ** d=RID artifact RID and up to COUNT descendants |
| 657 | ** t=TAGID show only check-ins with the given tagid |
| 658 | ** u=USER only if belonging to this user |
| 659 | ** y=TYPE 'ci', 'w', 't' |
| 660 | ** s=TEXT string search (comment and brief) |
| 661 | ** ng Suppress the graph if present |
| 662 | ** |
| 663 | ** p= and d= can appear individually or together. If either p= or d= |
| 664 | ** appear, then u=, y=, a=, and b= are ignored. |
| 665 | ** |
| 666 | ** If a= and b= appear, only a= is used. If neither appear, the most |
| @@ -677,10 +698,13 @@ | |
| 698 | if( zType[0]=='a' ){ |
| 699 | tmFlags = TIMELINE_BRIEF | TIMELINE_GRAPH; |
| 700 | }else{ |
| 701 | tmFlags = TIMELINE_GRAPH; |
| 702 | } |
| 703 | if( P("ng")!=0 ){ |
| 704 | tmFlags &= ~TIMELINE_GRAPH; |
| 705 | } |
| 706 | |
| 707 | style_header("Timeline"); |
| 708 | login_anonymous_available(); |
| 709 | timeline_temp_table(); |
| 710 | blob_zero(&sql); |
| @@ -857,11 +881,11 @@ | |
| 881 | if( zUser ){ |
| 882 | blob_appendf(&desc, " by user %h", zUser); |
| 883 | } |
| 884 | if( tagid>0 ){ |
| 885 | blob_appendf(&desc, " tagged with \"%h\"", zTagName); |
| 886 | tmFlags |= TIMELINE_DISJOINT; |
| 887 | } |
| 888 | if( zAfter ){ |
| 889 | blob_appendf(&desc, " occurring on or after %h.<br>", zAfter); |
| 890 | }else if( zBefore ){ |
| 891 | blob_appendf(&desc, " occurring on or before %h.<br>", zBefore); |
| 892 |
+1
-1
| --- src/tktsetup.c | ||
| +++ src/tktsetup.c | ||
| @@ -260,11 +260,11 @@ | ||
| 260 | 260 | @ </th1> |
| 261 | 261 | @ <h1 align="center">Enter A New Ticket</h1> |
| 262 | 262 | @ <table cellpadding="5"> |
| 263 | 263 | @ <tr> |
| 264 | 264 | @ <td colspan="2"> |
| 265 | -@ Enter a one-line summary of the problem:<br> | |
| 265 | +@ Enter a one-line summary of the ticket:<br> | |
| 266 | 266 | @ <input type="text" name="title" size="60" value="$<title>"> |
| 267 | 267 | @ </td> |
| 268 | 268 | @ </tr> |
| 269 | 269 | @ |
| 270 | 270 | @ <tr> |
| 271 | 271 |
| --- src/tktsetup.c | |
| +++ src/tktsetup.c | |
| @@ -260,11 +260,11 @@ | |
| 260 | @ </th1> |
| 261 | @ <h1 align="center">Enter A New Ticket</h1> |
| 262 | @ <table cellpadding="5"> |
| 263 | @ <tr> |
| 264 | @ <td colspan="2"> |
| 265 | @ Enter a one-line summary of the problem:<br> |
| 266 | @ <input type="text" name="title" size="60" value="$<title>"> |
| 267 | @ </td> |
| 268 | @ </tr> |
| 269 | @ |
| 270 | @ <tr> |
| 271 |
| --- src/tktsetup.c | |
| +++ src/tktsetup.c | |
| @@ -260,11 +260,11 @@ | |
| 260 | @ </th1> |
| 261 | @ <h1 align="center">Enter A New Ticket</h1> |
| 262 | @ <table cellpadding="5"> |
| 263 | @ <tr> |
| 264 | @ <td colspan="2"> |
| 265 | @ Enter a one-line summary of the ticket:<br> |
| 266 | @ <input type="text" name="title" size="60" value="$<title>"> |
| 267 | @ </td> |
| 268 | @ </tr> |
| 269 | @ |
| 270 | @ <tr> |
| 271 |
-1
| --- src/vfile.c | ||
| +++ src/vfile.c | ||
| @@ -182,11 +182,10 @@ | ||
| 182 | 182 | }else if( rid==0 ){ |
| 183 | 183 | chnged = 1; |
| 184 | 184 | } |
| 185 | 185 | if( chnged!=1 ){ |
| 186 | 186 | currentMtime = file_mtime(0); |
| 187 | - assert( currentMtime>0 ); | |
| 188 | 187 | } |
| 189 | 188 | if( chnged!=1 && (checkMtime==0 || currentMtime!=oldMtime) ){ |
| 190 | 189 | db_ephemeral_blob(&q, 5, &origCksum); |
| 191 | 190 | if( sha1sum_file(zName, &fileCksum) ){ |
| 192 | 191 | blob_zero(&fileCksum); |
| 193 | 192 |
| --- src/vfile.c | |
| +++ src/vfile.c | |
| @@ -182,11 +182,10 @@ | |
| 182 | }else if( rid==0 ){ |
| 183 | chnged = 1; |
| 184 | } |
| 185 | if( chnged!=1 ){ |
| 186 | currentMtime = file_mtime(0); |
| 187 | assert( currentMtime>0 ); |
| 188 | } |
| 189 | if( chnged!=1 && (checkMtime==0 || currentMtime!=oldMtime) ){ |
| 190 | db_ephemeral_blob(&q, 5, &origCksum); |
| 191 | if( sha1sum_file(zName, &fileCksum) ){ |
| 192 | blob_zero(&fileCksum); |
| 193 |
| --- src/vfile.c | |
| +++ src/vfile.c | |
| @@ -182,11 +182,10 @@ | |
| 182 | }else if( rid==0 ){ |
| 183 | chnged = 1; |
| 184 | } |
| 185 | if( chnged!=1 ){ |
| 186 | currentMtime = file_mtime(0); |
| 187 | } |
| 188 | if( chnged!=1 && (checkMtime==0 || currentMtime!=oldMtime) ){ |
| 189 | db_ephemeral_blob(&q, 5, &origCksum); |
| 190 | if( sha1sum_file(zName, &fileCksum) ){ |
| 191 | blob_zero(&fileCksum); |
| 192 |
+1
-1
| --- src/xfer.c | ||
| +++ src/xfer.c | ||
| @@ -1315,10 +1315,10 @@ | ||
| 1315 | 1315 | }; |
| 1316 | 1316 | transport_stats(&nSent, &nRcvd, 1); |
| 1317 | 1317 | printf("Total network traffic: %d bytes sent, %d bytes received\n", |
| 1318 | 1318 | nSent, nRcvd); |
| 1319 | 1319 | transport_close(); |
| 1320 | - socket_global_shutdown(); | |
| 1320 | + transport_global_shutdown(); | |
| 1321 | 1321 | db_multi_exec("DROP TABLE onremote"); |
| 1322 | 1322 | manifest_crosslink_end(); |
| 1323 | 1323 | db_end_transaction(0); |
| 1324 | 1324 | } |
| 1325 | 1325 | |
| 1326 | 1326 | ADDED www/custom_ticket.wiki |
| --- src/xfer.c | |
| +++ src/xfer.c | |
| @@ -1315,10 +1315,10 @@ | |
| 1315 | }; |
| 1316 | transport_stats(&nSent, &nRcvd, 1); |
| 1317 | printf("Total network traffic: %d bytes sent, %d bytes received\n", |
| 1318 | nSent, nRcvd); |
| 1319 | transport_close(); |
| 1320 | socket_global_shutdown(); |
| 1321 | db_multi_exec("DROP TABLE onremote"); |
| 1322 | manifest_crosslink_end(); |
| 1323 | db_end_transaction(0); |
| 1324 | } |
| 1325 | |
| 1326 | DDED www/custom_ticket.wiki |
| --- src/xfer.c | |
| +++ src/xfer.c | |
| @@ -1315,10 +1315,10 @@ | |
| 1315 | }; |
| 1316 | transport_stats(&nSent, &nRcvd, 1); |
| 1317 | printf("Total network traffic: %d bytes sent, %d bytes received\n", |
| 1318 | nSent, nRcvd); |
| 1319 | transport_close(); |
| 1320 | transport_global_shutdown(); |
| 1321 | db_multi_exec("DROP TABLE onremote"); |
| 1322 | manifest_crosslink_end(); |
| 1323 | db_end_transaction(0); |
| 1324 | } |
| 1325 | |
| 1326 | DDED www/custom_ticket.wiki |
+63
| --- a/www/custom_ticket.wiki | ||
| +++ b/www/custom_ticket.wiki | ||
| @@ -0,0 +1,63 @@ | ||
| 1 | +<nowiki> | |
| 2 | +<h1 align="center">Customizing<nowiki> The Ticket h1> | |
| 3 | +<p> | |
| 4 | +This guide will explain how to add the "assigned_to" and "submitted_by" fields | |
| 5 | +to the ticket system in Fossil, as well as making the system more useful. You | |
| 6 | +must have "admin" access to the repository to imp</p>plement these<blockquote> | |
| 7 | +<p, then "Tickets", then "Table". After the other fields | |
| 8 | +and before the final ")", insert: | |
| 9 | +<pre> | |
| 10 | + , | |
| 11 | + assigned_to TEXAnd "Apply Changes". You have just added two more fields to the ticket | |
| 12 | +database! NOTE: I won't tell you to "Apply Changes" after each step from here | |
| 13 | +on out. Now, how do you use these fields? | |
| 14 | +</blockquote> | |
| 15 | + | |
| 16 | +<h2>Next add apand cliCommon". Add somethi<blockquote> | |
| 17 | +<p { | |
| 18 | + unassigned | |
| 19 | + tom dick | |
| 20 | + harriet | |
| 21 | +} | |
| 22 | +</pre> | |
| 23 | + | |
| 24 | +Obviously, choose names correspondingned" | |
| 25 | + submit_ticket | |
| 26 | +} | |
| 27 | +</verbatiich causes problems later$<assigned_to> | |
| 28 | +</td" eq "anonymous"}</t that | |
| 29 | +field ($<opened_by> | |
| 30 | +</t</blockquote>to the "Tickets" a<blockquote>admin page, and click "New Ticket Page". This is a li to the login name of the bug reporter. Now, skip to the part with "EMail" | |
| 31 | +and modify it like <pre> | |
| 32 | +<th1>enable_output [gn="right"> | |
| 33 | + EMail: | |
| 34 | + <input t]</th1> | |
| 35 | +<tr> | |
| 36 | +<ngned" | |
| 37 | + submit_tEMail: | |
| 38 | +<private_contact>" size<ublicly visile</u>. Used by d</td> | |
| 39 | +<tdto contact you w | |
| 40 | +questions.</td> | |
| 41 | +</tr> | |
| 42 | +<th1>enable_output 1</th1> | |
| 43 | +</pre>m> | |
| 44 | + | |
| 45 | +This bit of code will get rid of the "email" field entry for logged-in users. | |
| 46 | +Since we know the user's information, we don't have to ask for it. NOTE: it | |
| 47 | +might be good to automatically scoop up the user's email and put it here. | |
| 48 | + | |
| 49 | +You might also want to enable people to actually assign the ticket to a specific | |
| 50 | +person during creation. For this to work, you need to add the code | |
| 51 | +for "assigned_to" as shown below under the heading "Modify the 'edit ticket' page". | |
| 52 | +This will give you an additional c</p> | |
| 53 | +<p>ombobox where you can choose a p</blockquote>/h2> | |
| 54 | + | |
| 55 | +Back to t<blockquote>nd click "Common". Add something like this: | |
| 56 | +<pre> | |
| 57 | +set assigned_choices { | |
| 58 | + unassigned | |
| 59 | + tom | |
| 60 | + dick | |
| 61 | + harriet | |
| 62 | +} | |
| 63 | +</pr |
| --- a/www/custom_ticket.wiki | |
| +++ b/www/custom_ticket.wiki | |
| @@ -0,0 +1,63 @@ | |
| --- a/www/custom_ticket.wiki | |
| +++ b/www/custom_ticket.wiki | |
| @@ -0,0 +1,63 @@ | |
| 1 | <nowiki> |
| 2 | <h1 align="center">Customizing<nowiki> The Ticket h1> |
| 3 | <p> |
| 4 | This guide will explain how to add the "assigned_to" and "submitted_by" fields |
| 5 | to the ticket system in Fossil, as well as making the system more useful. You |
| 6 | must have "admin" access to the repository to imp</p>plement these<blockquote> |
| 7 | <p, then "Tickets", then "Table". After the other fields |
| 8 | and before the final ")", insert: |
| 9 | <pre> |
| 10 | , |
| 11 | assigned_to TEXAnd "Apply Changes". You have just added two more fields to the ticket |
| 12 | database! NOTE: I won't tell you to "Apply Changes" after each step from here |
| 13 | on out. Now, how do you use these fields? |
| 14 | </blockquote> |
| 15 | |
| 16 | <h2>Next add apand cliCommon". Add somethi<blockquote> |
| 17 | <p { |
| 18 | unassigned |
| 19 | tom dick |
| 20 | harriet |
| 21 | } |
| 22 | </pre> |
| 23 | |
| 24 | Obviously, choose names correspondingned" |
| 25 | submit_ticket |
| 26 | } |
| 27 | </verbatiich causes problems later$<assigned_to> |
| 28 | </td" eq "anonymous"}</t that |
| 29 | field ($<opened_by> |
| 30 | </t</blockquote>to the "Tickets" a<blockquote>admin page, and click "New Ticket Page". This is a li to the login name of the bug reporter. Now, skip to the part with "EMail" |
| 31 | and modify it like <pre> |
| 32 | <th1>enable_output [gn="right"> |
| 33 | EMail: |
| 34 | <input t]</th1> |
| 35 | <tr> |
| 36 | <ngned" |
| 37 | submit_tEMail: |
| 38 | <private_contact>" size<ublicly visile</u>. Used by d</td> |
| 39 | <tdto contact you w |
| 40 | questions.</td> |
| 41 | </tr> |
| 42 | <th1>enable_output 1</th1> |
| 43 | </pre>m> |
| 44 | |
| 45 | This bit of code will get rid of the "email" field entry for logged-in users. |
| 46 | Since we know the user's information, we don't have to ask for it. NOTE: it |
| 47 | might be good to automatically scoop up the user's email and put it here. |
| 48 | |
| 49 | You might also want to enable people to actually assign the ticket to a specific |
| 50 | person during creation. For this to work, you need to add the code |
| 51 | for "assigned_to" as shown below under the heading "Modify the 'edit ticket' page". |
| 52 | This will give you an additional c</p> |
| 53 | <p>ombobox where you can choose a p</blockquote>/h2> |
| 54 | |
| 55 | Back to t<blockquote>nd click "Common". Add something like this: |
| 56 | <pre> |
| 57 | set assigned_choices { |
| 58 | unassigned |
| 59 | tom |
| 60 | dick |
| 61 | harriet |
| 62 | } |
| 63 | </pr |
+7
| --- www/fileformat.wiki | ||
| +++ www/fileformat.wiki | ||
| @@ -1,5 +1,6 @@ | ||
| 1 | +<title>Fossil File Formats</title> | |
| 1 | 2 | <h1 align="center"> |
| 2 | 3 | Fossil File Formats |
| 3 | 4 | </h1> |
| 4 | 5 | |
| 5 | 6 | <p>The global state of a fossil repository is kept simple so that it can |
| @@ -216,10 +217,13 @@ | ||
| 216 | 217 | character that immediately precedes the "Z". The Z-card is just |
| 217 | 218 | a sanity check to prove that the manifest is well-formed and |
| 218 | 219 | consistent. |
| 219 | 220 | </p> |
| 220 | 221 | |
| 222 | +<p>A sample manifest from Fossil itself can be seen | |
| 223 | +[/artifact/28987096ac | here]. | |
| 224 | + | |
| 221 | 225 | <h2>2.0 Clusters</h2> |
| 222 | 226 | |
| 223 | 227 | <p> |
| 224 | 228 | A cluster is a artifact that declares the existence of other artifacts. |
| 225 | 229 | Clusters are used during repository synchronization to help |
| @@ -261,10 +265,13 @@ | ||
| 261 | 265 | the Z card of a manifest. The argument to the Z card is the |
| 262 | 266 | lower-case hexadecimal representation of the MD5 checksum of all |
| 263 | 267 | prior cards in the cluster. Note that the Z card is required |
| 264 | 268 | on a cluster. |
| 265 | 269 | </p> |
| 270 | + | |
| 271 | +<p>An example cluster from Fossil can be seen | |
| 272 | +[/artifact/d03dbdd73a2a8 | here].</p> | |
| 266 | 273 | |
| 267 | 274 | |
| 268 | 275 | <h2>3.0 Control Artifacts</h2> |
| 269 | 276 | |
| 270 | 277 | <p> |
| 271 | 278 |
| --- www/fileformat.wiki | |
| +++ www/fileformat.wiki | |
| @@ -1,5 +1,6 @@ | |
| 1 | <h1 align="center"> |
| 2 | Fossil File Formats |
| 3 | </h1> |
| 4 | |
| 5 | <p>The global state of a fossil repository is kept simple so that it can |
| @@ -216,10 +217,13 @@ | |
| 216 | character that immediately precedes the "Z". The Z-card is just |
| 217 | a sanity check to prove that the manifest is well-formed and |
| 218 | consistent. |
| 219 | </p> |
| 220 | |
| 221 | <h2>2.0 Clusters</h2> |
| 222 | |
| 223 | <p> |
| 224 | A cluster is a artifact that declares the existence of other artifacts. |
| 225 | Clusters are used during repository synchronization to help |
| @@ -261,10 +265,13 @@ | |
| 261 | the Z card of a manifest. The argument to the Z card is the |
| 262 | lower-case hexadecimal representation of the MD5 checksum of all |
| 263 | prior cards in the cluster. Note that the Z card is required |
| 264 | on a cluster. |
| 265 | </p> |
| 266 | |
| 267 | |
| 268 | <h2>3.0 Control Artifacts</h2> |
| 269 | |
| 270 | <p> |
| 271 |
| --- www/fileformat.wiki | |
| +++ www/fileformat.wiki | |
| @@ -1,5 +1,6 @@ | |
| 1 | <title>Fossil File Formats</title> |
| 2 | <h1 align="center"> |
| 3 | Fossil File Formats |
| 4 | </h1> |
| 5 | |
| 6 | <p>The global state of a fossil repository is kept simple so that it can |
| @@ -216,10 +217,13 @@ | |
| 217 | character that immediately precedes the "Z". The Z-card is just |
| 218 | a sanity check to prove that the manifest is well-formed and |
| 219 | consistent. |
| 220 | </p> |
| 221 | |
| 222 | <p>A sample manifest from Fossil itself can be seen |
| 223 | [/artifact/28987096ac | here]. |
| 224 | |
| 225 | <h2>2.0 Clusters</h2> |
| 226 | |
| 227 | <p> |
| 228 | A cluster is a artifact that declares the existence of other artifacts. |
| 229 | Clusters are used during repository synchronization to help |
| @@ -261,10 +265,13 @@ | |
| 265 | the Z card of a manifest. The argument to the Z card is the |
| 266 | lower-case hexadecimal representation of the MD5 checksum of all |
| 267 | prior cards in the cluster. Note that the Z card is required |
| 268 | on a cluster. |
| 269 | </p> |
| 270 | |
| 271 | <p>An example cluster from Fossil can be seen |
| 272 | [/artifact/d03dbdd73a2a8 | here].</p> |
| 273 | |
| 274 | |
| 275 | <h2>3.0 Control Artifacts</h2> |
| 276 | |
| 277 | <p> |
| 278 |
+2
| --- www/index.wiki | ||
| +++ www/index.wiki | ||
| @@ -123,10 +123,12 @@ | ||
| 123 | 123 | * Some (unfinished but expanding) extended |
| 124 | 124 | [./reference.wiki | reference documentation] for the fossil command line. |
| 125 | 125 | * Documentation on the |
| 126 | 126 | [http://www.sqliteconcepts.org/THManual.pdf | TH1 Script Language] used |
| 127 | 127 | to configure the ticketing subsystem. |
| 128 | + * How to [./server.wiki | set up a server] for your repository. | |
| 129 | + * Customizing the [./custom_ticket.wiki | ticket system]. | |
| 128 | 130 | |
| 129 | 131 | <h3>Links For Fossil Developer:</h3> |
| 130 | 132 | |
| 131 | 133 | * [./theory1.wiki | Thoughts On The Design Of Fossil]. |
| 132 | 134 | * [./pop.wiki | Principles Of Operation] |
| 133 | 135 | |
| 134 | 136 | ADDED www/server.wiki |
| --- www/index.wiki | |
| +++ www/index.wiki | |
| @@ -123,10 +123,12 @@ | |
| 123 | * Some (unfinished but expanding) extended |
| 124 | [./reference.wiki | reference documentation] for the fossil command line. |
| 125 | * Documentation on the |
| 126 | [http://www.sqliteconcepts.org/THManual.pdf | TH1 Script Language] used |
| 127 | to configure the ticketing subsystem. |
| 128 | |
| 129 | <h3>Links For Fossil Developer:</h3> |
| 130 | |
| 131 | * [./theory1.wiki | Thoughts On The Design Of Fossil]. |
| 132 | * [./pop.wiki | Principles Of Operation] |
| 133 | |
| 134 | DDED www/server.wiki |
| --- www/index.wiki | |
| +++ www/index.wiki | |
| @@ -123,10 +123,12 @@ | |
| 123 | * Some (unfinished but expanding) extended |
| 124 | [./reference.wiki | reference documentation] for the fossil command line. |
| 125 | * Documentation on the |
| 126 | [http://www.sqliteconcepts.org/THManual.pdf | TH1 Script Language] used |
| 127 | to configure the ticketing subsystem. |
| 128 | * How to [./server.wiki | set up a server] for your repository. |
| 129 | * Customizing the [./custom_ticket.wiki | ticket system]. |
| 130 | |
| 131 | <h3>Links For Fossil Developer:</h3> |
| 132 | |
| 133 | * [./theory1.wiki | Thoughts On The Design Of Fossil]. |
| 134 | * [./pop.wiki | Principles Of Operation] |
| 135 | |
| 136 | DDED www/server.wiki |
+52
| --- a/www/server.wiki | ||
| +++ b/www/server.wiki | ||
| @@ -0,0 +1,52 @@ | ||
| 1 | +<nowiki> | |
| 2 | +<h1 align="cen> | |
| 3 | +<p>This guide is in>http</b>download page12345port "12345For , e.g.-alt | |
| 4 | +{ | |
| 5 | + port = 591<tith>4axud~ ^To help avoid | |
| 6 | +<li>[https://en.wikipedia.org/wiki/Common_Gateway_Interface|CGI] | |
| 7 | +<li>[http://en.wikipedia.org/wiki/Simple_Common_Gateway_Interface|SCGI]ntensive | |
| 8 | +web page requests with a | |
| 9 | +average is too high. /blockquote> | |
| 10 | +the --https | |
| 11 | + on generated | |
| 12 | +detailrX | |
| 13 | +</p>tioparts as appropriatethintts like thatrh2>Various securtt> | |
| 14 | +<li><tte12345port "12345For , ettage12345port "12345For , e.g.-alt | |
| 15 | +{ | |
| 16 | + port = 591menttechnology.</p>mtab" or 0 0Pathnames should be adju<b>http</b>download page12345port "12345For , e.g.-alt | |
| 17 | +{ | |
| 18 | + port = 591<tithe documenttechnology.</p>mtab" or 0 0Pathnames should be adju<b>http</b>download page12345port "12345For , e.g.-alt | |
| 19 | +{ | |
| 20 | + port = 5914<tithe documenttechnology.</p>mtab" or 0 0Pa. On the other hand,>download page12345port "12345For , e.g.-alt | |
| 21 | +{ | |
| 22 | + port = 591menttechnology.</p>mtab" or 0 0Pathnames should be adju<b>http</b>download page12345port "12345<p> | |
| 23 | +NOTESnowiki> | |
| 24 | +<p>This guide is in>http</b>download page12345port "1234<adequate to secure the server using SSL, and | |
| 25 | +disallowing any non-SSL access. The datream will be encrypted by | |
| 26 | +the HTTPS protocol, rendering the data rStarting either command from within an "open" Fossil checkout will start a | |
| 27 | +server using the repository corresponding to the checkout. | |
| 28 | +<li>This isly secure. The trul <i>ssh</i> encrypted tunnels, bA huge advantage to tdifficult and cumbersomeis that no special "root" or er number of users). | |
| 29 | +</ps required/p> | |
| 30 | +<p> | |
| 31 | +As far as direct help avoid problems, Fossil has the ability to fail CPU-intensive | |
| 32 | +web page requests with a | |
| 33 | +average is too high. /blockquote> | |
| 34 | +the --https | |
| 35 | + ioparts as appropriatethings like tttdju<b>http</b>download page12345port "12345For , e.g.-alt | |
| 36 | +{ | |
| 37 | + port = 591mettathnames should be adju<b>http</b>download page12345port "12345For , e.g.-alt | |
| 38 | +{ | |
| 39 | + port = <tithe documenttechnonowiki> | |
| 40 | +<p>This guide is in>http</b>download pagehis guide is in>http<gy.</p>mtab" or 0 0Pathnames should be adju<b>http</b>download page12345port "sing S secure the serve ata streaure the serve ata stream will be encrypted by | |
| 41 | +the HTTPS protocol, rendering the dat reasonably secure. The truly | |
| 42 | +paranoid may wish to deploy <i>ssh</i> ncrypted tunnels, but tha> encrypted tunnels, but fficult and cumbersome to set up (particularly for | |
| 43 | +a larger number of users) | |
| 44 | +</p> | |
| 45 | +<p> | |
| 46 | +As far as direa ''CGI script'' has the ability to fail CPU-intensive | |
| 47 | +web page requests with a | |
| 48 | +average is too high. /block ated | |
| 49 | +detailrX | |
| 50 | +</p>tioparts as appropriatethings like thatrh2>Vari us security concerdju<b>http</b>download page12345port "12345For , e.g.-alt | |
| 51 | +{ | |
| 52 | + port = 591menttechnology.</p>mtab" or 0 0Pathnames should be adju<b>http</b>download page12345port " |
| --- a/www/server.wiki | |
| +++ b/www/server.wiki | |
| @@ -0,0 +1,52 @@ | |
| --- a/www/server.wiki | |
| +++ b/www/server.wiki | |
| @@ -0,0 +1,52 @@ | |
| 1 | <nowiki> |
| 2 | <h1 align="cen> |
| 3 | <p>This guide is in>http</b>download page12345port "12345For , e.g.-alt |
| 4 | { |
| 5 | port = 591<tith>4axud~ ^To help avoid |
| 6 | <li>[https://en.wikipedia.org/wiki/Common_Gateway_Interface|CGI] |
| 7 | <li>[http://en.wikipedia.org/wiki/Simple_Common_Gateway_Interface|SCGI]ntensive |
| 8 | web page requests with a |
| 9 | average is too high. /blockquote> |
| 10 | the --https |
| 11 | on generated |
| 12 | detailrX |
| 13 | </p>tioparts as appropriatethintts like thatrh2>Various securtt> |
| 14 | <li><tte12345port "12345For , ettage12345port "12345For , e.g.-alt |
| 15 | { |
| 16 | port = 591menttechnology.</p>mtab" or 0 0Pathnames should be adju<b>http</b>download page12345port "12345For , e.g.-alt |
| 17 | { |
| 18 | port = 591<tithe documenttechnology.</p>mtab" or 0 0Pathnames should be adju<b>http</b>download page12345port "12345For , e.g.-alt |
| 19 | { |
| 20 | port = 5914<tithe documenttechnology.</p>mtab" or 0 0Pa. On the other hand,>download page12345port "12345For , e.g.-alt |
| 21 | { |
| 22 | port = 591menttechnology.</p>mtab" or 0 0Pathnames should be adju<b>http</b>download page12345port "12345<p> |
| 23 | NOTESnowiki> |
| 24 | <p>This guide is in>http</b>download page12345port "1234<adequate to secure the server using SSL, and |
| 25 | disallowing any non-SSL access. The datream will be encrypted by |
| 26 | the HTTPS protocol, rendering the data rStarting either command from within an "open" Fossil checkout will start a |
| 27 | server using the repository corresponding to the checkout. |
| 28 | <li>This isly secure. The trul <i>ssh</i> encrypted tunnels, bA huge advantage to tdifficult and cumbersomeis that no special "root" or er number of users). |
| 29 | </ps required/p> |
| 30 | <p> |
| 31 | As far as direct help avoid problems, Fossil has the ability to fail CPU-intensive |
| 32 | web page requests with a |
| 33 | average is too high. /blockquote> |
| 34 | the --https |
| 35 | ioparts as appropriatethings like tttdju<b>http</b>download page12345port "12345For , e.g.-alt |
| 36 | { |
| 37 | port = 591mettathnames should be adju<b>http</b>download page12345port "12345For , e.g.-alt |
| 38 | { |
| 39 | port = <tithe documenttechnonowiki> |
| 40 | <p>This guide is in>http</b>download pagehis guide is in>http<gy.</p>mtab" or 0 0Pathnames should be adju<b>http</b>download page12345port "sing S secure the serve ata streaure the serve ata stream will be encrypted by |
| 41 | the HTTPS protocol, rendering the dat reasonably secure. The truly |
| 42 | paranoid may wish to deploy <i>ssh</i> ncrypted tunnels, but tha> encrypted tunnels, but fficult and cumbersome to set up (particularly for |
| 43 | a larger number of users) |
| 44 | </p> |
| 45 | <p> |
| 46 | As far as direa ''CGI script'' has the ability to fail CPU-intensive |
| 47 | web page requests with a |
| 48 | average is too high. /block ated |
| 49 | detailrX |
| 50 | </p>tioparts as appropriatethings like thatrh2>Vari us security concerdju<b>http</b>download page12345port "12345For , e.g.-alt |
| 51 | { |
| 52 | port = 591menttechnology.</p>mtab" or 0 0Pathnames should be adju<b>http</b>download page12345port " |
+1
-1
| --- www/theory1.wiki | ||
| +++ www/theory1.wiki | ||
| @@ -111,11 +111,11 @@ | ||
| 111 | 111 | For certain types of problems, SQL has a huge advantage over other |
| 112 | 112 | programming languages because it is so high level and because it allows |
| 113 | 113 | programmers to focus more on the <i>what</i> and less of the <i>how</i> |
| 114 | 114 | of a computation. In other words, |
| 115 | 115 | programmers tend to think about problems at a much higher level when |
| 116 | -using SQL, can this can result in better applications. | |
| 116 | +using SQL; this can result in better applications. | |
| 117 | 117 | SQL is also very dense. |
| 118 | 118 | In practice, this often means that a few |
| 119 | 119 | lines of SQL can often replace hundreds or thousands of lines of |
| 120 | 120 | procedural code, with a corresponding decrease in programming effort |
| 121 | 121 | and opportunities to introduce bugs. |
| 122 | 122 |
| --- www/theory1.wiki | |
| +++ www/theory1.wiki | |
| @@ -111,11 +111,11 @@ | |
| 111 | For certain types of problems, SQL has a huge advantage over other |
| 112 | programming languages because it is so high level and because it allows |
| 113 | programmers to focus more on the <i>what</i> and less of the <i>how</i> |
| 114 | of a computation. In other words, |
| 115 | programmers tend to think about problems at a much higher level when |
| 116 | using SQL, can this can result in better applications. |
| 117 | SQL is also very dense. |
| 118 | In practice, this often means that a few |
| 119 | lines of SQL can often replace hundreds or thousands of lines of |
| 120 | procedural code, with a corresponding decrease in programming effort |
| 121 | and opportunities to introduce bugs. |
| 122 |
| --- www/theory1.wiki | |
| +++ www/theory1.wiki | |
| @@ -111,11 +111,11 @@ | |
| 111 | For certain types of problems, SQL has a huge advantage over other |
| 112 | programming languages because it is so high level and because it allows |
| 113 | programmers to focus more on the <i>what</i> and less of the <i>how</i> |
| 114 | of a computation. In other words, |
| 115 | programmers tend to think about problems at a much higher level when |
| 116 | using SQL; this can result in better applications. |
| 117 | SQL is also very dense. |
| 118 | In practice, this often means that a few |
| 119 | lines of SQL can often replace hundreds or thousands of lines of |
| 120 | procedural code, with a corresponding decrease in programming effort |
| 121 | and opportunities to introduce bugs. |
| 122 |