Fossil SCM

Pull over the latest clear-title changes from trunk.

drh 2010-02-25 14:06 clear-title merge
Commit 16e703be111fc2cff7e3af067a3d969578769dc4
+6 -5
--- Makefile
+++ Makefile
@@ -3,10 +3,15 @@
33
#### The toplevel directory of the source tree. Fossil can be built
44
# in a directory that is separate from the source tree. Just change
55
# the following to point from the build directory to the src/ folder.
66
#
77
SRCDIR = ./src
8
+
9
+#### The directory into which object code files should be written.
10
+#
11
+#
12
+OBJDIR = ./obj
813
914
#### C Compiler and options for use in building executables that
1015
# will run on the platform that is doing the build. This is used
1116
# to compile code-generator programs as part of the build process.
1217
# See TCC below for the C compiler for building the finished binary.
@@ -38,18 +43,14 @@
3843
# If you're on OpenSolaris:
3944
# LIB += lsocket
4045
# Solaris 10 needs:
4146
# LIB += -lsocket -lnsl
4247
# My assumption is that the Sol10 flags will work for Sol8/9 and possibly 11.
43
-
48
+#
4449
4550
#### Tcl shell for use in running the fossil testsuite.
4651
#
4752
TCLSH = tclsh
4853
49
-#### Include a configuration file that can override any one of these settings.
50
-#
51
--include config.mak
52
-
5354
# You should not need to change anything below this line
5455
###############################################################################
5556
include $(SRCDIR)/main.mk
5657
--- 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
+6 -5
--- Makefile
+++ Makefile
@@ -3,10 +3,15 @@
33
#### The toplevel directory of the source tree. Fossil can be built
44
# in a directory that is separate from the source tree. Just change
55
# the following to point from the build directory to the src/ folder.
66
#
77
SRCDIR = ./src
8
+
9
+#### The directory into which object code files should be written.
10
+#
11
+#
12
+OBJDIR = ./obj
813
914
#### C Compiler and options for use in building executables that
1015
# will run on the platform that is doing the build. This is used
1116
# to compile code-generator programs as part of the build process.
1217
# See TCC below for the C compiler for building the finished binary.
@@ -38,18 +43,14 @@
3843
# If you're on OpenSolaris:
3944
# LIB += lsocket
4045
# Solaris 10 needs:
4146
# LIB += -lsocket -lnsl
4247
# My assumption is that the Sol10 flags will work for Sol8/9 and possibly 11.
43
-
48
+#
4449
4550
#### Tcl shell for use in running the fossil testsuite.
4651
#
4752
TCLSH = tclsh
4853
49
-#### Include a configuration file that can override any one of these settings.
50
-#
51
--include config.mak
52
-
5354
# You should not need to change anything below this line
5455
###############################################################################
5556
include $(SRCDIR)/main.mk
5657
--- 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 @@
33
#### The toplevel directory of the source tree. Fossil can be built
44
# in a directory that is separate from the source tree. Just change
55
# the following to point from the build directory to the src/ folder.
66
#
77
SRCDIR = ./src
8
+OBJDIR = ./wobj
89
910
#### C Compiler and options for use in building executables that
1011
# will run on the platform that is doing the build. This is used
1112
# to compile code-generator programs as part of the build process.
1213
# See TCC below for the C compiler for building the finished binary.
@@ -15,10 +16,14 @@
1516
1617
#### The suffix to add to executable files. ".exe" for windows.
1718
# Nothing for unix.
1819
#
1920
E = .exe
21
+
22
+#### Enable HTTPS support via OpenSSL (links to libssl and libcrypto)
23
+#
24
+# FOSSIL_ENABLE_SSL=1
2025
2126
#### C Compile and options for use in building executables that
2227
# will run on the target platform. This is usually the same
2328
# as BCC, unless you are cross-compiling. This C compiler builds
2429
# the finished binary for fossil. The BCC compiler above is used
@@ -27,10 +32,15 @@
2732
#TCC = gcc -O6
2833
#TCC = gcc -g -O0 -Wall -fprofile-arcs -ftest-coverage
2934
#TCC = gcc -g -Os -Wall
3035
#TCC = gcc -g -Os -Wall -DFOSSIL_I18N=0 -L/usr/local/lib -I/usr/local/include
3136
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
3242
3343
#### Extra arguments for linking the finished binary. Fossil needs
3444
# to link against the Z-Lib compression library. There are no
3545
# other dependencies. We sometimes add the -static option here
3646
# so that we can build a static executable that will run in a
@@ -37,10 +47,14 @@
3747
# chroot jail.
3848
#
3949
#LIB = -lz
4050
#LIB = -lz -lws2_32
4151
LIB = -lmingwex -lz -lws2_32
52
+# OpenSSL:
53
+ifdef FOSSIL_ENABLE_SSL
54
+LIB += -lcrypto -lssl
55
+endif
4256
4357
#### Tcl shell for use in running the fossil testsuite.
4458
#
4559
TCLSH = tclsh
4660
4761
--- 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 @@
174174
}
175175
free(zName);
176176
}
177177
db_end_transaction(0);
178178
}
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
+}
179226
180227
/*
181228
** COMMAND: rm
182229
** COMMAND: del
183230
**
@@ -200,28 +247,28 @@
200247
fossil_panic("no checkout to remove from");
201248
}
202249
db_begin_transaction();
203250
for(i=2; i<g.argc; i++){
204251
char *zName;
205
- char *zPath;
206
- Blob pathname;
207252
208253
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
+ }
223270
free(zName);
224271
}
225272
db_multi_exec("DELETE FROM vfile WHERE deleted AND rid=0");
226273
db_end_transaction(0);
227274
}
228275
--- 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 @@
174174
}
175175
free(zName);
176176
}
177177
db_end_transaction(0);
178178
}
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
+}
179226
180227
/*
181228
** COMMAND: rm
182229
** COMMAND: del
183230
**
@@ -200,28 +247,28 @@
200247
fossil_panic("no checkout to remove from");
201248
}
202249
db_begin_transaction();
203250
for(i=2; i<g.argc; i++){
204251
char *zName;
205
- char *zPath;
206
- Blob pathname;
207252
208253
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
+ }
223270
free(zName);
224271
}
225272
db_multi_exec("DELETE FROM vfile WHERE deleted AND rid=0");
226273
db_end_transaction(0);
227274
}
228275
--- 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 @@
432432
@ WHERE tagid=%d AND rid=plink.cid), 'trunk')
433433
;
434434
rc = db_int(0, zSql, rid, TAG_BRANCH, TAG_BRANCH);
435435
return rc==0;
436436
}
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
+}
437459
438460
/*
439461
** COMMAND: ci
440462
** COMMAND: commit
441463
**
@@ -513,11 +535,11 @@
513535
}
514536
zDateOvrd = find_option("date-override",0,1);
515537
zUserOvrd = find_option("user-override",0,1);
516538
db_must_be_within_tree();
517539
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; }
519541
verify_all_options();
520542
521543
/* Get the ID of the parent manifest artifact */
522544
vid = db_lget_int("checkout", 0);
523545
if( content_is_private(vid) ){
@@ -657,10 +679,11 @@
657679
}
658680
blob_appendf(&manifest, "C %F\n", blob_str(&comment));
659681
zDate = db_text(0, "SELECT datetime('%q')", zDateOvrd ? zDateOvrd : "now");
660682
zDate[10] = 'T';
661683
blob_appendf(&manifest, "D %s\n", zDate);
684
+ zDate[10] = ' ';
662685
db_prepare(&q,
663686
"SELECT pathname, uuid, origname, blob.rid"
664687
" FROM vfile JOIN blob ON vfile.mrid=blob.rid"
665688
" WHERE NOT deleted AND vfile.vid=%d"
666689
" ORDER BY 1", vid);
@@ -690,19 +713,21 @@
690713
}
691714
blob_reset(&filename);
692715
db_finalize(&q);
693716
zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", vid);
694717
blob_appendf(&manifest, "P %s", zUuid);
718
+ checkin_verify_younger(vid, zUuid, zDate);
695719
696720
db_prepare(&q2, "SELECT merge FROM vmerge WHERE id=:id");
697721
db_bind_int(&q2, ":id", 0);
698722
while( db_step(&q2)==SQLITE_ROW ){
699723
int mid = db_column_int(&q2, 0);
700724
if( !g.markPrivate && content_is_private(mid) ) continue;
701725
zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", mid);
702726
if( zUuid ){
703727
blob_appendf(&manifest, " %s", zUuid);
728
+ checkin_verify_younger(mid, zUuid, zDate);
704729
free(zUuid);
705730
}
706731
}
707732
db_reset(&q2);
708733
709734
--- 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 @@
432432
@ WHERE tagid=%d AND rid=plink.cid), 'trunk')
433433
;
434434
rc = db_int(0, zSql, rid, TAG_BRANCH, TAG_BRANCH);
435435
return rc==0;
436436
}
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
+}
437459
438460
/*
439461
** COMMAND: ci
440462
** COMMAND: commit
441463
**
@@ -513,11 +535,11 @@
513535
}
514536
zDateOvrd = find_option("date-override",0,1);
515537
zUserOvrd = find_option("user-override",0,1);
516538
db_must_be_within_tree();
517539
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; }
519541
verify_all_options();
520542
521543
/* Get the ID of the parent manifest artifact */
522544
vid = db_lget_int("checkout", 0);
523545
if( content_is_private(vid) ){
@@ -657,10 +679,11 @@
657679
}
658680
blob_appendf(&manifest, "C %F\n", blob_str(&comment));
659681
zDate = db_text(0, "SELECT datetime('%q')", zDateOvrd ? zDateOvrd : "now");
660682
zDate[10] = 'T';
661683
blob_appendf(&manifest, "D %s\n", zDate);
684
+ zDate[10] = ' ';
662685
db_prepare(&q,
663686
"SELECT pathname, uuid, origname, blob.rid"
664687
" FROM vfile JOIN blob ON vfile.mrid=blob.rid"
665688
" WHERE NOT deleted AND vfile.vid=%d"
666689
" ORDER BY 1", vid);
@@ -690,19 +713,21 @@
690713
}
691714
blob_reset(&filename);
692715
db_finalize(&q);
693716
zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", vid);
694717
blob_appendf(&manifest, "P %s", zUuid);
718
+ checkin_verify_younger(vid, zUuid, zDate);
695719
696720
db_prepare(&q2, "SELECT merge FROM vmerge WHERE id=:id");
697721
db_bind_int(&q2, ":id", 0);
698722
while( db_step(&q2)==SQLITE_ROW ){
699723
int mid = db_column_int(&q2, 0);
700724
if( !g.markPrivate && content_is_private(mid) ) continue;
701725
zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", mid);
702726
if( zUuid ){
703727
blob_appendf(&manifest, " %s", zUuid);
728
+ checkin_verify_younger(mid, zUuid, zDate);
704729
free(zUuid);
705730
}
706731
}
707732
db_reset(&q2);
708733
709734
--- 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
--- src/checkout.c
+++ src/checkout.c
@@ -180,10 +180,15 @@
180180
if( latestFlag ){
181181
compute_leaves(db_lget_int("checkout",0), 1);
182182
zVers = db_text(0, "SELECT uuid FROM leaves, event, blob"
183183
" WHERE event.objid=leaves.rid AND blob.rid=leaves.rid"
184184
" 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
+ }
185190
if( zVers==0 ){
186191
fossil_fatal("cannot locate \"latest\" checkout");
187192
}
188193
}else{
189194
zVers = g.argv[2];
190195
--- 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
--- src/checkout.c
+++ src/checkout.c
@@ -180,10 +180,15 @@
180180
if( latestFlag ){
181181
compute_leaves(db_lget_int("checkout",0), 1);
182182
zVers = db_text(0, "SELECT uuid FROM leaves, event, blob"
183183
" WHERE event.objid=leaves.rid AND blob.rid=leaves.rid"
184184
" 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
+ }
185190
if( zVers==0 ){
186191
fossil_fatal("cannot locate \"latest\" checkout");
187192
}
188193
}else{
189194
zVers = g.argv[2];
190195
--- 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
+2 -2
--- src/db.c
+++ src/db.c
@@ -1406,12 +1406,12 @@
14061406
** autosync If enabled, automatically pull prior to commit
14071407
** or update and automatically push after commit or
14081408
** tag or branch creation. If the the value is "pullonly"
14091409
** then only pull operations occur automatically.
14101410
**
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
14131413
** be unsigned.
14141414
**
14151415
** diff-command External command to run when performing a diff.
14161416
** If undefined, the internal text diff will be used.
14171417
**
14181418
--- 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 -2
--- src/db.c
+++ src/db.c
@@ -1406,12 +1406,12 @@
14061406
** autosync If enabled, automatically pull prior to commit
14071407
** or update and automatically push after commit or
14081408
** tag or branch creation. If the the value is "pullonly"
14091409
** then only pull operations occur automatically.
14101410
**
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
14131413
** be unsigned.
14141414
**
14151415
** diff-command External command to run when performing a diff.
14161416
** If undefined, the internal text diff will be used.
14171417
**
14181418
--- 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 @@
235235
int n, i, j, c;
236236
char *zOut;
237237
if( nIn<0 ) nIn = strlen(zIn);
238238
for(i=n=0; i<nIn; i++){
239239
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++;
241242
}
242243
n += nIn;
243244
zOut = malloc( n+1 );
244245
if( zOut ){
245246
for(i=j=0; i<nIn; i++){
246247
--- 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 @@
4141
** there is a previous value.
4242
**
4343
** Return the number of errors. No error messages are generated.
4444
*/
4545
static int getStat(const char *zFilename){
46
+ int rc = 0;
4647
if( zFilename==0 ){
47
- if( fileStatValid==0 ) return 1;
48
+ if( fileStatValid==0 ) rc = 1;
4849
}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
+ }
5157
}
52
- return 0;
58
+ return rc;
5359
}
5460
5561
5662
/*
5763
** Return the size of a file in bytes. Return -1 if the file does not
5864
--- 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 @@
152152
153153
/*
154154
** Return the index of a rail currently not in use for any row between
155155
** top and bottom, inclusive.
156156
*/
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
+){
158163
GraphRow *pRow;
159164
int i;
165
+ int iBest = 0;
166
+ int iBestDist = 9999;
160167
for(pRow=p->pFirst; pRow && pRow->idx<top; pRow=pRow->pNext){}
161168
while( pRow && pRow->idx<=btm ){
162169
inUseMask |= pRow->railInUse;
163170
pRow = pRow->pNext;
164171
}
165172
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
+ }
167183
}
168
- p->nErr++;
169
- return 0;
184
+ if( iBestDist>1000 ) p->nErr++;
185
+ return iBest;
170186
}
171187
172188
/*
173189
** Compute the complete graph
174190
*/
175
-void graph_finish(GraphContext *p){
191
+void graph_finish(GraphContext *p, int omitDescenders){
176192
GraphRow *pRow, *pDesc;
177193
Bag allRids;
178194
int i;
179195
int nRow;
180196
u32 mask;
@@ -208,36 +224,50 @@
208224
/* Identify rows where the primary parent is off screen. Assign
209225
** each to a rail and draw descenders to the bottom of the screen.
210226
*/
211227
for(pRow=p->pFirst; pRow; pRow=pRow->pNext){
212228
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
+ }
215234
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
+ }
218243
}
219244
}
220245
}
221246
222247
/* Assign rails to all rows that are still unassigned.
223248
** The first primary child of a row goes on the same rail as
224249
** that row.
225250
*/
226
- inUse = 0;
251
+ inUse = (1<<(p->mxRail+1))-1;
227252
for(pRow=p->pLast; pRow; pRow=pRow->pPrev){
228253
int parentRid;
229254
if( pRow->iRail>=0 ) continue;
230255
assert( pRow->nParent>0 );
231256
parentRid = pRow->aParent[0];
232257
assert( bag_find(&allRids, parentRid) );
233258
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
+ }
235265
if( pDesc->aiRaiser[pDesc->iRail]==0 && pDesc->zBranch==pRow->zBranch ){
236266
pRow->iRail = pDesc->iRail;
237267
}else{
238
- pRow->iRail = findFreeRail(p, 0, pDesc->idx, inUse);
268
+ pRow->iRail = findFreeRail(p, 0, pDesc->idx, inUse, 0);
239269
}
240270
pDesc->aiRaiser[pRow->iRail] = pRow->idx;
241271
mask = 1<<pRow->iRail;
242272
if( pRow->isLeaf ){
243273
inUse &= ~mask;
@@ -259,12 +289,19 @@
259289
int parentRid = pRow->aParent[i];
260290
for(pDesc=pRow->pNext; pDesc && pDesc->rid!=parentRid;
261291
pDesc=pDesc->pNext){}
262292
if( pDesc==0 ) continue;
263293
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);
265296
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
+ }
266303
}
267304
pRow->mergeIn |= 1<<pDesc->mergeOut;
268305
}
269306
}
270307
271308
--- 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
--- src/http_transport.c
+++ src/http_transport.c
@@ -49,10 +49,15 @@
4949
5050
/*
5151
** Return the current transport error message.
5252
*/
5353
const char *transport_errmsg(void){
54
+ #ifdef FOSSIL_ENABLE_SSL
55
+ if( g.urlIsHttps ){
56
+ return ssl_errmsg();
57
+ }
58
+ #endif
5459
return socket_errmsg();
5560
}
5661
5762
/*
5863
** Retrieve send/receive counts from the transport layer. If "resetFlag"
@@ -79,12 +84,17 @@
7984
*/
8085
int transport_open(void){
8186
int rc = 0;
8287
if( transport.isOpen==0 ){
8388
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");
8594
rc = 1;
95
+ #endif
8696
}else if( g.urlIsFile ){
8797
sqlite3_uint64 iRandId;
8898
sqlite3_randomness(sizeof(iRandId), &iRandId);
8999
transport.zOutFile = mprintf("%s-%llu-out.http",
90100
g.zRepositoryName, iRandId);
@@ -112,11 +122,13 @@
112122
transport.pBuf = 0;
113123
transport.nAlloc = 0;
114124
transport.nUsed = 0;
115125
transport.iCursor = 0;
116126
if( g.urlIsHttps ){
117
- /* TBD */
127
+ #ifdef FOSSIL_ENABLE_SSL
128
+ ssl_close();
129
+ #endif
118130
}else if( g.urlIsFile ){
119131
if( transport.pFile ){
120132
fclose(transport.pFile);
121133
transport.pFile = 0;
122134
}
@@ -137,11 +149,19 @@
137149
void transport_send(Blob *toSend){
138150
char *z = blob_buffer(toSend);
139151
int n = blob_size(toSend);
140152
transport.nSent += n;
141153
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
143163
}else if( g.urlIsFile ){
144164
fwrite(z, 1, n, transport.pFile);
145165
}else{
146166
int sent;
147167
while( n>0 ){
@@ -204,12 +224,16 @@
204224
nByte += toMove;
205225
}
206226
if( N>0 ){
207227
int got;
208228
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
210233
got = 0;
234
+ #endif
211235
}else if( g.urlIsFile ){
212236
got = fread(zBuf, 1, N, transport.pFile);
213237
}else{
214238
got = socket_receive(0, zBuf, N);
215239
/* printf("received %d of %d bytes\n", got, N); fflush(stdout); */
@@ -293,5 +317,15 @@
293317
i++;
294318
}
295319
/* printf("Got line: [%s]\n", &transport.pBuf[iStart]); */
296320
return &transport.pBuf[iStart];
297321
}
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
+}
298332
--- 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 @@
143143
printf("project-name: %s\n", db_get("project-name", "<unnamed>"));
144144
printf("repository: %s\n", db_lget("repository", ""));
145145
printf("local-root: %s\n", g.zLocalRoot);
146146
#ifdef __MINGW32__
147147
if( g.zHome ){
148
- printf("user-home: : %s\n", g.zHome);
148
+ printf("user-home: %s\n", g.zHome);
149149
}
150150
#endif
151151
printf("project-code: %s\n", db_get("project-code", ""));
152152
printf("server-code: %s\n", db_get("server-code", ""));
153153
vid = db_lget_int("checkout", 0);
154154
--- 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 @@
706706
** will use g.zExtra directly.
707707
*/
708708
dehttpize(g.zExtra);
709709
cgi_set_parameter_nocopy("name", g.zExtra);
710710
}
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
- }
721711
722712
/* Locate the method specified by the path and execute the function
723713
** that implements that method.
724714
*/
725715
if( name_search(g.zPath, aWebpage, count(aWebpage), &idx) &&
726716
--- 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 @@
151151
winhttp_.c \
152152
xfer_.c \
153153
zip_.c
154154
155155
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
224224
225225
APPNAME = fossil$(E)
226226
227227
228228
229
-all: $(APPNAME)
229
+all: $(OBJDIR) $(APPNAME)
230230
231231
install: $(APPNAME)
232232
mv $(APPNAME) $(INSTALLDIR)
233233
234
+$(OBJDIR):
235
+ -mkdir $(OBJDIR)
236
+
234237
translate: $(SRCDIR)/translate.c
235238
$(BCC) -o translate $(SRCDIR)/translate.c
236239
237240
makeheaders: $(SRCDIR)/makeheaders.c
238241
$(BCC) -o makeheaders $(SRCDIR)/makeheaders.c
@@ -249,21 +252,21 @@
249252
VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest
250253
awk '{ printf "#define MANIFEST_UUID \"%s\"\n", $$1}' $(SRCDIR)/../manifest.uuid >VERSION.h
251254
awk '{ printf "#define MANIFEST_VERSION \"[%.10s]\"\n", $$1}' $(SRCDIR)/../manifest.uuid >>VERSION.h
252255
awk '$$1=="D"{printf "#define MANIFEST_DATE \"%s %s\"\n", substr($$2,1,10),substr($$2,12)}' $(SRCDIR)/../manifest >>VERSION.h
253256
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)
256259
257260
# This rule prevents make from using its default rules to try build
258261
# an executable named "manifest" out of the file named "manifest.c"
259262
#
260263
$(SRCDIR)/../manifest:
261264
# noop
262265
263266
clean:
264
- rm -f *.o *_.c $(APPNAME) VERSION.h
267
+ rm -f $(OBJDIR)/*.o *_.c $(APPNAME) VERSION.h
265268
rm -f translate makeheaders mkindex page_index.h headers
266269
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
267270
268271
page_index.h: $(TRANS_SRC) mkindex
269272
./mkindex $(TRANS_SRC) >$@
@@ -273,487 +276,487 @@
273276
headers: Makefile
274277
Makefile:
275278
add_.c: $(SRCDIR)/add.c translate
276279
./translate $(SRCDIR)/add.c >add_.c
277280
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
280283
281284
add.h: headers
282285
allrepo_.c: $(SRCDIR)/allrepo.c translate
283286
./translate $(SRCDIR)/allrepo.c >allrepo_.c
284287
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
287290
288291
allrepo.h: headers
289292
bag_.c: $(SRCDIR)/bag.c translate
290293
./translate $(SRCDIR)/bag.c >bag_.c
291294
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
294297
295298
bag.h: headers
296299
blob_.c: $(SRCDIR)/blob.c translate
297300
./translate $(SRCDIR)/blob.c >blob_.c
298301
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
301304
302305
blob.h: headers
303306
branch_.c: $(SRCDIR)/branch.c translate
304307
./translate $(SRCDIR)/branch.c >branch_.c
305308
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
308311
309312
branch.h: headers
310313
browse_.c: $(SRCDIR)/browse.c translate
311314
./translate $(SRCDIR)/browse.c >browse_.c
312315
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
315318
316319
browse.h: headers
317320
captcha_.c: $(SRCDIR)/captcha.c translate
318321
./translate $(SRCDIR)/captcha.c >captcha_.c
319322
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
322325
323326
captcha.h: headers
324327
cgi_.c: $(SRCDIR)/cgi.c translate
325328
./translate $(SRCDIR)/cgi.c >cgi_.c
326329
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
329332
330333
cgi.h: headers
331334
checkin_.c: $(SRCDIR)/checkin.c translate
332335
./translate $(SRCDIR)/checkin.c >checkin_.c
333336
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
336339
337340
checkin.h: headers
338341
checkout_.c: $(SRCDIR)/checkout.c translate
339342
./translate $(SRCDIR)/checkout.c >checkout_.c
340343
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
343346
344347
checkout.h: headers
345348
clearsign_.c: $(SRCDIR)/clearsign.c translate
346349
./translate $(SRCDIR)/clearsign.c >clearsign_.c
347350
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
350353
351354
clearsign.h: headers
352355
clone_.c: $(SRCDIR)/clone.c translate
353356
./translate $(SRCDIR)/clone.c >clone_.c
354357
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
357360
358361
clone.h: headers
359362
comformat_.c: $(SRCDIR)/comformat.c translate
360363
./translate $(SRCDIR)/comformat.c >comformat_.c
361364
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
364367
365368
comformat.h: headers
366369
configure_.c: $(SRCDIR)/configure.c translate
367370
./translate $(SRCDIR)/configure.c >configure_.c
368371
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
371374
372375
configure.h: headers
373376
content_.c: $(SRCDIR)/content.c translate
374377
./translate $(SRCDIR)/content.c >content_.c
375378
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
378381
379382
content.h: headers
380383
db_.c: $(SRCDIR)/db.c translate
381384
./translate $(SRCDIR)/db.c >db_.c
382385
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
385388
386389
db.h: headers
387390
delta_.c: $(SRCDIR)/delta.c translate
388391
./translate $(SRCDIR)/delta.c >delta_.c
389392
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
392395
393396
delta.h: headers
394397
deltacmd_.c: $(SRCDIR)/deltacmd.c translate
395398
./translate $(SRCDIR)/deltacmd.c >deltacmd_.c
396399
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
399402
400403
deltacmd.h: headers
401404
descendants_.c: $(SRCDIR)/descendants.c translate
402405
./translate $(SRCDIR)/descendants.c >descendants_.c
403406
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
406409
407410
descendants.h: headers
408411
diff_.c: $(SRCDIR)/diff.c translate
409412
./translate $(SRCDIR)/diff.c >diff_.c
410413
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
413416
414417
diff.h: headers
415418
diffcmd_.c: $(SRCDIR)/diffcmd.c translate
416419
./translate $(SRCDIR)/diffcmd.c >diffcmd_.c
417420
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
420423
421424
diffcmd.h: headers
422425
doc_.c: $(SRCDIR)/doc.c translate
423426
./translate $(SRCDIR)/doc.c >doc_.c
424427
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
427430
428431
doc.h: headers
429432
encode_.c: $(SRCDIR)/encode.c translate
430433
./translate $(SRCDIR)/encode.c >encode_.c
431434
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
434437
435438
encode.h: headers
436439
file_.c: $(SRCDIR)/file.c translate
437440
./translate $(SRCDIR)/file.c >file_.c
438441
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
441444
442445
file.h: headers
443446
finfo_.c: $(SRCDIR)/finfo.c translate
444447
./translate $(SRCDIR)/finfo.c >finfo_.c
445448
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
448451
449452
finfo.h: headers
450453
graph_.c: $(SRCDIR)/graph.c translate
451454
./translate $(SRCDIR)/graph.c >graph_.c
452455
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
455458
456459
graph.h: headers
457460
http_.c: $(SRCDIR)/http.c translate
458461
./translate $(SRCDIR)/http.c >http_.c
459462
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
462465
463466
http.h: headers
464467
http_socket_.c: $(SRCDIR)/http_socket.c translate
465468
./translate $(SRCDIR)/http_socket.c >http_socket_.c
466469
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
469472
470473
http_socket.h: headers
471474
http_transport_.c: $(SRCDIR)/http_transport.c translate
472475
./translate $(SRCDIR)/http_transport.c >http_transport_.c
473476
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
476479
477480
http_transport.h: headers
478481
info_.c: $(SRCDIR)/info.c translate
479482
./translate $(SRCDIR)/info.c >info_.c
480483
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
483486
484487
info.h: headers
485488
login_.c: $(SRCDIR)/login.c translate
486489
./translate $(SRCDIR)/login.c >login_.c
487490
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
490493
491494
login.h: headers
492495
main_.c: $(SRCDIR)/main.c translate
493496
./translate $(SRCDIR)/main.c >main_.c
494497
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
497500
498501
main.h: headers
499502
manifest_.c: $(SRCDIR)/manifest.c translate
500503
./translate $(SRCDIR)/manifest.c >manifest_.c
501504
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
504507
505508
manifest.h: headers
506509
md5_.c: $(SRCDIR)/md5.c translate
507510
./translate $(SRCDIR)/md5.c >md5_.c
508511
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
511514
512515
md5.h: headers
513516
merge_.c: $(SRCDIR)/merge.c translate
514517
./translate $(SRCDIR)/merge.c >merge_.c
515518
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
518521
519522
merge.h: headers
520523
merge3_.c: $(SRCDIR)/merge3.c translate
521524
./translate $(SRCDIR)/merge3.c >merge3_.c
522525
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
525528
526529
merge3.h: headers
527530
name_.c: $(SRCDIR)/name.c translate
528531
./translate $(SRCDIR)/name.c >name_.c
529532
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
532535
533536
name.h: headers
534537
pivot_.c: $(SRCDIR)/pivot.c translate
535538
./translate $(SRCDIR)/pivot.c >pivot_.c
536539
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
539542
540543
pivot.h: headers
541544
pqueue_.c: $(SRCDIR)/pqueue.c translate
542545
./translate $(SRCDIR)/pqueue.c >pqueue_.c
543546
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
546549
547550
pqueue.h: headers
548551
printf_.c: $(SRCDIR)/printf.c translate
549552
./translate $(SRCDIR)/printf.c >printf_.c
550553
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
553556
554557
printf.h: headers
555558
rebuild_.c: $(SRCDIR)/rebuild.c translate
556559
./translate $(SRCDIR)/rebuild.c >rebuild_.c
557560
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
560563
561564
rebuild.h: headers
562565
report_.c: $(SRCDIR)/report.c translate
563566
./translate $(SRCDIR)/report.c >report_.c
564567
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
567570
568571
report.h: headers
569572
rss_.c: $(SRCDIR)/rss.c translate
570573
./translate $(SRCDIR)/rss.c >rss_.c
571574
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
574577
575578
rss.h: headers
576579
schema_.c: $(SRCDIR)/schema.c translate
577580
./translate $(SRCDIR)/schema.c >schema_.c
578581
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
581584
582585
schema.h: headers
583586
search_.c: $(SRCDIR)/search.c translate
584587
./translate $(SRCDIR)/search.c >search_.c
585588
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
588591
589592
search.h: headers
590593
setup_.c: $(SRCDIR)/setup.c translate
591594
./translate $(SRCDIR)/setup.c >setup_.c
592595
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
595598
596599
setup.h: headers
597600
sha1_.c: $(SRCDIR)/sha1.c translate
598601
./translate $(SRCDIR)/sha1.c >sha1_.c
599602
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
602605
603606
sha1.h: headers
604607
shun_.c: $(SRCDIR)/shun.c translate
605608
./translate $(SRCDIR)/shun.c >shun_.c
606609
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
609612
610613
shun.h: headers
611614
skins_.c: $(SRCDIR)/skins.c translate
612615
./translate $(SRCDIR)/skins.c >skins_.c
613616
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
616619
617620
skins.h: headers
618621
stat_.c: $(SRCDIR)/stat.c translate
619622
./translate $(SRCDIR)/stat.c >stat_.c
620623
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
623626
624627
stat.h: headers
625628
style_.c: $(SRCDIR)/style.c translate
626629
./translate $(SRCDIR)/style.c >style_.c
627630
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
630633
631634
style.h: headers
632635
sync_.c: $(SRCDIR)/sync.c translate
633636
./translate $(SRCDIR)/sync.c >sync_.c
634637
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
637640
638641
sync.h: headers
639642
tag_.c: $(SRCDIR)/tag.c translate
640643
./translate $(SRCDIR)/tag.c >tag_.c
641644
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
644647
645648
tag.h: headers
646649
th_main_.c: $(SRCDIR)/th_main.c translate
647650
./translate $(SRCDIR)/th_main.c >th_main_.c
648651
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
651654
652655
th_main.h: headers
653656
timeline_.c: $(SRCDIR)/timeline.c translate
654657
./translate $(SRCDIR)/timeline.c >timeline_.c
655658
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
658661
659662
timeline.h: headers
660663
tkt_.c: $(SRCDIR)/tkt.c translate
661664
./translate $(SRCDIR)/tkt.c >tkt_.c
662665
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
665668
666669
tkt.h: headers
667670
tktsetup_.c: $(SRCDIR)/tktsetup.c translate
668671
./translate $(SRCDIR)/tktsetup.c >tktsetup_.c
669672
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
672675
673676
tktsetup.h: headers
674677
undo_.c: $(SRCDIR)/undo.c translate
675678
./translate $(SRCDIR)/undo.c >undo_.c
676679
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
679682
680683
undo.h: headers
681684
update_.c: $(SRCDIR)/update.c translate
682685
./translate $(SRCDIR)/update.c >update_.c
683686
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
686689
687690
update.h: headers
688691
url_.c: $(SRCDIR)/url.c translate
689692
./translate $(SRCDIR)/url.c >url_.c
690693
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
693696
694697
url.h: headers
695698
user_.c: $(SRCDIR)/user.c translate
696699
./translate $(SRCDIR)/user.c >user_.c
697700
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
700703
701704
user.h: headers
702705
verify_.c: $(SRCDIR)/verify.c translate
703706
./translate $(SRCDIR)/verify.c >verify_.c
704707
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
707710
708711
verify.h: headers
709712
vfile_.c: $(SRCDIR)/vfile.c translate
710713
./translate $(SRCDIR)/vfile.c >vfile_.c
711714
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
714717
715718
vfile.h: headers
716719
wiki_.c: $(SRCDIR)/wiki.c translate
717720
./translate $(SRCDIR)/wiki.c >wiki_.c
718721
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
721724
722725
wiki.h: headers
723726
wikiformat_.c: $(SRCDIR)/wikiformat.c translate
724727
./translate $(SRCDIR)/wikiformat.c >wikiformat_.c
725728
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
728731
729732
wikiformat.h: headers
730733
winhttp_.c: $(SRCDIR)/winhttp.c translate
731734
./translate $(SRCDIR)/winhttp.c >winhttp_.c
732735
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
735738
736739
winhttp.h: headers
737740
xfer_.c: $(SRCDIR)/xfer.c translate
738741
./translate $(SRCDIR)/xfer.c >xfer_.c
739742
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
742745
743746
xfer.h: headers
744747
zip_.c: $(SRCDIR)/zip.c translate
745748
./translate $(SRCDIR)/zip.c >zip_.c
746749
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
749752
750753
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
759762
760763
--- 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 @@
151151
winhttp_.c \
152152
xfer_.c \
153153
zip_.c
154154
155155
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
224224
225225
APPNAME = fossil$(E)
226226
227227
228228
229
-all: $(APPNAME)
229
+all: $(OBJDIR) $(APPNAME)
230230
231231
install: $(APPNAME)
232232
mv $(APPNAME) $(INSTALLDIR)
233233
234
+$(OBJDIR):
235
+ -mkdir $(OBJDIR)
236
+
234237
translate: $(SRCDIR)/translate.c
235238
$(BCC) -o translate $(SRCDIR)/translate.c
236239
237240
makeheaders: $(SRCDIR)/makeheaders.c
238241
$(BCC) -o makeheaders $(SRCDIR)/makeheaders.c
@@ -249,21 +252,21 @@
249252
VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest
250253
awk '{ printf "#define MANIFEST_UUID \"%s\"\n", $$1}' $(SRCDIR)/../manifest.uuid >VERSION.h
251254
awk '{ printf "#define MANIFEST_VERSION \"[%.10s]\"\n", $$1}' $(SRCDIR)/../manifest.uuid >>VERSION.h
252255
awk '$$1=="D"{printf "#define MANIFEST_DATE \"%s %s\"\n", substr($$2,1,10),substr($$2,12)}' $(SRCDIR)/../manifest >>VERSION.h
253256
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)
256259
257260
# This rule prevents make from using its default rules to try build
258261
# an executable named "manifest" out of the file named "manifest.c"
259262
#
260263
$(SRCDIR)/../manifest:
261264
# noop
262265
263266
clean:
264
- rm -f *.o *_.c $(APPNAME) VERSION.h
267
+ rm -f $(OBJDIR)/*.o *_.c $(APPNAME) VERSION.h
265268
rm -f translate makeheaders mkindex page_index.h headers
266269
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
267270
268271
page_index.h: $(TRANS_SRC) mkindex
269272
./mkindex $(TRANS_SRC) >$@
@@ -273,487 +276,487 @@
273276
headers: Makefile
274277
Makefile:
275278
add_.c: $(SRCDIR)/add.c translate
276279
./translate $(SRCDIR)/add.c >add_.c
277280
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
280283
281284
add.h: headers
282285
allrepo_.c: $(SRCDIR)/allrepo.c translate
283286
./translate $(SRCDIR)/allrepo.c >allrepo_.c
284287
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
287290
288291
allrepo.h: headers
289292
bag_.c: $(SRCDIR)/bag.c translate
290293
./translate $(SRCDIR)/bag.c >bag_.c
291294
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
294297
295298
bag.h: headers
296299
blob_.c: $(SRCDIR)/blob.c translate
297300
./translate $(SRCDIR)/blob.c >blob_.c
298301
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
301304
302305
blob.h: headers
303306
branch_.c: $(SRCDIR)/branch.c translate
304307
./translate $(SRCDIR)/branch.c >branch_.c
305308
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
308311
309312
branch.h: headers
310313
browse_.c: $(SRCDIR)/browse.c translate
311314
./translate $(SRCDIR)/browse.c >browse_.c
312315
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
315318
316319
browse.h: headers
317320
captcha_.c: $(SRCDIR)/captcha.c translate
318321
./translate $(SRCDIR)/captcha.c >captcha_.c
319322
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
322325
323326
captcha.h: headers
324327
cgi_.c: $(SRCDIR)/cgi.c translate
325328
./translate $(SRCDIR)/cgi.c >cgi_.c
326329
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
329332
330333
cgi.h: headers
331334
checkin_.c: $(SRCDIR)/checkin.c translate
332335
./translate $(SRCDIR)/checkin.c >checkin_.c
333336
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
336339
337340
checkin.h: headers
338341
checkout_.c: $(SRCDIR)/checkout.c translate
339342
./translate $(SRCDIR)/checkout.c >checkout_.c
340343
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
343346
344347
checkout.h: headers
345348
clearsign_.c: $(SRCDIR)/clearsign.c translate
346349
./translate $(SRCDIR)/clearsign.c >clearsign_.c
347350
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
350353
351354
clearsign.h: headers
352355
clone_.c: $(SRCDIR)/clone.c translate
353356
./translate $(SRCDIR)/clone.c >clone_.c
354357
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
357360
358361
clone.h: headers
359362
comformat_.c: $(SRCDIR)/comformat.c translate
360363
./translate $(SRCDIR)/comformat.c >comformat_.c
361364
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
364367
365368
comformat.h: headers
366369
configure_.c: $(SRCDIR)/configure.c translate
367370
./translate $(SRCDIR)/configure.c >configure_.c
368371
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
371374
372375
configure.h: headers
373376
content_.c: $(SRCDIR)/content.c translate
374377
./translate $(SRCDIR)/content.c >content_.c
375378
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
378381
379382
content.h: headers
380383
db_.c: $(SRCDIR)/db.c translate
381384
./translate $(SRCDIR)/db.c >db_.c
382385
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
385388
386389
db.h: headers
387390
delta_.c: $(SRCDIR)/delta.c translate
388391
./translate $(SRCDIR)/delta.c >delta_.c
389392
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
392395
393396
delta.h: headers
394397
deltacmd_.c: $(SRCDIR)/deltacmd.c translate
395398
./translate $(SRCDIR)/deltacmd.c >deltacmd_.c
396399
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
399402
400403
deltacmd.h: headers
401404
descendants_.c: $(SRCDIR)/descendants.c translate
402405
./translate $(SRCDIR)/descendants.c >descendants_.c
403406
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
406409
407410
descendants.h: headers
408411
diff_.c: $(SRCDIR)/diff.c translate
409412
./translate $(SRCDIR)/diff.c >diff_.c
410413
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
413416
414417
diff.h: headers
415418
diffcmd_.c: $(SRCDIR)/diffcmd.c translate
416419
./translate $(SRCDIR)/diffcmd.c >diffcmd_.c
417420
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
420423
421424
diffcmd.h: headers
422425
doc_.c: $(SRCDIR)/doc.c translate
423426
./translate $(SRCDIR)/doc.c >doc_.c
424427
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
427430
428431
doc.h: headers
429432
encode_.c: $(SRCDIR)/encode.c translate
430433
./translate $(SRCDIR)/encode.c >encode_.c
431434
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
434437
435438
encode.h: headers
436439
file_.c: $(SRCDIR)/file.c translate
437440
./translate $(SRCDIR)/file.c >file_.c
438441
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
441444
442445
file.h: headers
443446
finfo_.c: $(SRCDIR)/finfo.c translate
444447
./translate $(SRCDIR)/finfo.c >finfo_.c
445448
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
448451
449452
finfo.h: headers
450453
graph_.c: $(SRCDIR)/graph.c translate
451454
./translate $(SRCDIR)/graph.c >graph_.c
452455
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
455458
456459
graph.h: headers
457460
http_.c: $(SRCDIR)/http.c translate
458461
./translate $(SRCDIR)/http.c >http_.c
459462
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
462465
463466
http.h: headers
464467
http_socket_.c: $(SRCDIR)/http_socket.c translate
465468
./translate $(SRCDIR)/http_socket.c >http_socket_.c
466469
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
469472
470473
http_socket.h: headers
471474
http_transport_.c: $(SRCDIR)/http_transport.c translate
472475
./translate $(SRCDIR)/http_transport.c >http_transport_.c
473476
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
476479
477480
http_transport.h: headers
478481
info_.c: $(SRCDIR)/info.c translate
479482
./translate $(SRCDIR)/info.c >info_.c
480483
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
483486
484487
info.h: headers
485488
login_.c: $(SRCDIR)/login.c translate
486489
./translate $(SRCDIR)/login.c >login_.c
487490
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
490493
491494
login.h: headers
492495
main_.c: $(SRCDIR)/main.c translate
493496
./translate $(SRCDIR)/main.c >main_.c
494497
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
497500
498501
main.h: headers
499502
manifest_.c: $(SRCDIR)/manifest.c translate
500503
./translate $(SRCDIR)/manifest.c >manifest_.c
501504
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
504507
505508
manifest.h: headers
506509
md5_.c: $(SRCDIR)/md5.c translate
507510
./translate $(SRCDIR)/md5.c >md5_.c
508511
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
511514
512515
md5.h: headers
513516
merge_.c: $(SRCDIR)/merge.c translate
514517
./translate $(SRCDIR)/merge.c >merge_.c
515518
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
518521
519522
merge.h: headers
520523
merge3_.c: $(SRCDIR)/merge3.c translate
521524
./translate $(SRCDIR)/merge3.c >merge3_.c
522525
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
525528
526529
merge3.h: headers
527530
name_.c: $(SRCDIR)/name.c translate
528531
./translate $(SRCDIR)/name.c >name_.c
529532
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
532535
533536
name.h: headers
534537
pivot_.c: $(SRCDIR)/pivot.c translate
535538
./translate $(SRCDIR)/pivot.c >pivot_.c
536539
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
539542
540543
pivot.h: headers
541544
pqueue_.c: $(SRCDIR)/pqueue.c translate
542545
./translate $(SRCDIR)/pqueue.c >pqueue_.c
543546
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
546549
547550
pqueue.h: headers
548551
printf_.c: $(SRCDIR)/printf.c translate
549552
./translate $(SRCDIR)/printf.c >printf_.c
550553
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
553556
554557
printf.h: headers
555558
rebuild_.c: $(SRCDIR)/rebuild.c translate
556559
./translate $(SRCDIR)/rebuild.c >rebuild_.c
557560
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
560563
561564
rebuild.h: headers
562565
report_.c: $(SRCDIR)/report.c translate
563566
./translate $(SRCDIR)/report.c >report_.c
564567
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
567570
568571
report.h: headers
569572
rss_.c: $(SRCDIR)/rss.c translate
570573
./translate $(SRCDIR)/rss.c >rss_.c
571574
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
574577
575578
rss.h: headers
576579
schema_.c: $(SRCDIR)/schema.c translate
577580
./translate $(SRCDIR)/schema.c >schema_.c
578581
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
581584
582585
schema.h: headers
583586
search_.c: $(SRCDIR)/search.c translate
584587
./translate $(SRCDIR)/search.c >search_.c
585588
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
588591
589592
search.h: headers
590593
setup_.c: $(SRCDIR)/setup.c translate
591594
./translate $(SRCDIR)/setup.c >setup_.c
592595
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
595598
596599
setup.h: headers
597600
sha1_.c: $(SRCDIR)/sha1.c translate
598601
./translate $(SRCDIR)/sha1.c >sha1_.c
599602
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
602605
603606
sha1.h: headers
604607
shun_.c: $(SRCDIR)/shun.c translate
605608
./translate $(SRCDIR)/shun.c >shun_.c
606609
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
609612
610613
shun.h: headers
611614
skins_.c: $(SRCDIR)/skins.c translate
612615
./translate $(SRCDIR)/skins.c >skins_.c
613616
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
616619
617620
skins.h: headers
618621
stat_.c: $(SRCDIR)/stat.c translate
619622
./translate $(SRCDIR)/stat.c >stat_.c
620623
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
623626
624627
stat.h: headers
625628
style_.c: $(SRCDIR)/style.c translate
626629
./translate $(SRCDIR)/style.c >style_.c
627630
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
630633
631634
style.h: headers
632635
sync_.c: $(SRCDIR)/sync.c translate
633636
./translate $(SRCDIR)/sync.c >sync_.c
634637
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
637640
638641
sync.h: headers
639642
tag_.c: $(SRCDIR)/tag.c translate
640643
./translate $(SRCDIR)/tag.c >tag_.c
641644
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
644647
645648
tag.h: headers
646649
th_main_.c: $(SRCDIR)/th_main.c translate
647650
./translate $(SRCDIR)/th_main.c >th_main_.c
648651
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
651654
652655
th_main.h: headers
653656
timeline_.c: $(SRCDIR)/timeline.c translate
654657
./translate $(SRCDIR)/timeline.c >timeline_.c
655658
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
658661
659662
timeline.h: headers
660663
tkt_.c: $(SRCDIR)/tkt.c translate
661664
./translate $(SRCDIR)/tkt.c >tkt_.c
662665
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
665668
666669
tkt.h: headers
667670
tktsetup_.c: $(SRCDIR)/tktsetup.c translate
668671
./translate $(SRCDIR)/tktsetup.c >tktsetup_.c
669672
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
672675
673676
tktsetup.h: headers
674677
undo_.c: $(SRCDIR)/undo.c translate
675678
./translate $(SRCDIR)/undo.c >undo_.c
676679
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
679682
680683
undo.h: headers
681684
update_.c: $(SRCDIR)/update.c translate
682685
./translate $(SRCDIR)/update.c >update_.c
683686
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
686689
687690
update.h: headers
688691
url_.c: $(SRCDIR)/url.c translate
689692
./translate $(SRCDIR)/url.c >url_.c
690693
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
693696
694697
url.h: headers
695698
user_.c: $(SRCDIR)/user.c translate
696699
./translate $(SRCDIR)/user.c >user_.c
697700
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
700703
701704
user.h: headers
702705
verify_.c: $(SRCDIR)/verify.c translate
703706
./translate $(SRCDIR)/verify.c >verify_.c
704707
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
707710
708711
verify.h: headers
709712
vfile_.c: $(SRCDIR)/vfile.c translate
710713
./translate $(SRCDIR)/vfile.c >vfile_.c
711714
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
714717
715718
vfile.h: headers
716719
wiki_.c: $(SRCDIR)/wiki.c translate
717720
./translate $(SRCDIR)/wiki.c >wiki_.c
718721
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
721724
722725
wiki.h: headers
723726
wikiformat_.c: $(SRCDIR)/wikiformat.c translate
724727
./translate $(SRCDIR)/wikiformat.c >wikiformat_.c
725728
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
728731
729732
wikiformat.h: headers
730733
winhttp_.c: $(SRCDIR)/winhttp.c translate
731734
./translate $(SRCDIR)/winhttp.c >winhttp_.c
732735
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
735738
736739
winhttp.h: headers
737740
xfer_.c: $(SRCDIR)/xfer.c translate
738741
./translate $(SRCDIR)/xfer.c >xfer_.c
739742
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
742745
743746
xfer.h: headers
744747
zip_.c: $(SRCDIR)/zip.c translate
745748
./translate $(SRCDIR)/zip.c >zip_.c
746749
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
749752
750753
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
759762
760763
--- 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 @@
105105
puts -nonewline " \\\n ${s}_.c"
106106
}
107107
puts "\n"
108108
puts -nonewline "OBJ ="
109109
foreach s [lsort $src] {
110
- puts -nonewline " \\\n $s.o"
110
+ puts -nonewline " \\\n \$(OBJDIR)/$s.o"
111111
}
112112
puts "\n"
113113
puts "APPNAME = $name\$(E)"
114114
puts "\n"
115115
116116
puts {
117
-all: $(APPNAME)
117
+all: $(OBJDIR) $(APPNAME)
118118
119119
install: $(APPNAME)
120120
mv $(APPNAME) $(INSTALLDIR)
121121
122
+$(OBJDIR):
123
+ -mkdir $(OBJDIR)
124
+
122125
translate: $(SRCDIR)/translate.c
123126
$(BCC) -o translate $(SRCDIR)/translate.c
124127
125128
makeheaders: $(SRCDIR)/makeheaders.c
126129
$(BCC) -o makeheaders $(SRCDIR)/makeheaders.c
@@ -141,21 +144,21 @@
141144
$(SRCDIR)/../manifest.uuid >>VERSION.h
142145
awk '$$1=="D"{printf "#define MANIFEST_DATE \"%s %s\"\n",\
143146
substr($$2,1,10),substr($$2,12)}' \
144147
$(SRCDIR)/../manifest >>VERSION.h
145148
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)
148151
149152
# This rule prevents make from using its default rules to try build
150153
# an executable named "manifest" out of the file named "manifest.c"
151154
#
152155
$(SRCDIR)/../manifest:
153156
# noop
154157
155158
clean:
156
- rm -f *.o *_.c $(APPNAME) VERSION.h
159
+ rm -f $(OBJDIR)/*.o *_.c $(APPNAME) VERSION.h
157160
rm -f translate makeheaders mkindex page_index.h headers}
158161
159162
set hfiles {}
160163
foreach s [lsort $src] {lappend hfiles $s.h}
161164
puts "\trm -f $hfiles\n"
@@ -178,25 +181,25 @@
178181
set extra_h(main) page_index.h
179182
180183
foreach s [lsort $src] {
181184
puts "${s}_.c:\t\$(SRCDIR)/$s.c translate"
182185
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"
185188
puts "$s.h:\theaders"
186189
# puts "\t./makeheaders $mhargs\n\ttouch headers\n"
187190
# puts "\t./makeheaders ${s}_.c:${s}.h\n"
188191
}
189192
190193
191
-puts "sqlite3.o:\t\$(SRCDIR)/sqlite3.c"
194
+puts "\$(OBJDIR)/sqlite3.o:\t\$(SRCDIR)/sqlite3.c"
192195
set opt {-DSQLITE_OMIT_LOAD_EXTENSION=1}
193196
append opt " -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4"
194197
#append opt " -DSQLITE_ENABLE_FTS3=1"
195198
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"
197200
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"
200203
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"
203206
--- 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 @@
105105
puts -nonewline " \\\n ${s}_.c"
106106
}
107107
puts "\n"
108108
puts -nonewline "OBJ ="
109109
foreach s [lsort $src] {
110
- puts -nonewline " \\\n $s.o"
110
+ puts -nonewline " \\\n \$(OBJDIR)/$s.o"
111111
}
112112
puts "\n"
113113
puts "APPNAME = $name\$(E)"
114114
puts "\n"
115115
116116
puts {
117
-all: $(APPNAME)
117
+all: $(OBJDIR) $(APPNAME)
118118
119119
install: $(APPNAME)
120120
mv $(APPNAME) $(INSTALLDIR)
121121
122
+$(OBJDIR):
123
+ -mkdir $(OBJDIR)
124
+
122125
translate: $(SRCDIR)/translate.c
123126
$(BCC) -o translate $(SRCDIR)/translate.c
124127
125128
makeheaders: $(SRCDIR)/makeheaders.c
126129
$(BCC) -o makeheaders $(SRCDIR)/makeheaders.c
@@ -141,21 +144,21 @@
141144
$(SRCDIR)/../manifest.uuid >>VERSION.h
142145
awk '$$1=="D"{printf "#define MANIFEST_DATE \"%s %s\"\n",\
143146
substr($$2,1,10),substr($$2,12)}' \
144147
$(SRCDIR)/../manifest >>VERSION.h
145148
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)
148151
149152
# This rule prevents make from using its default rules to try build
150153
# an executable named "manifest" out of the file named "manifest.c"
151154
#
152155
$(SRCDIR)/../manifest:
153156
# noop
154157
155158
clean:
156
- rm -f *.o *_.c $(APPNAME) VERSION.h
159
+ rm -f $(OBJDIR)/*.o *_.c $(APPNAME) VERSION.h
157160
rm -f translate makeheaders mkindex page_index.h headers}
158161
159162
set hfiles {}
160163
foreach s [lsort $src] {lappend hfiles $s.h}
161164
puts "\trm -f $hfiles\n"
@@ -178,25 +181,25 @@
178181
set extra_h(main) page_index.h
179182
180183
foreach s [lsort $src] {
181184
puts "${s}_.c:\t\$(SRCDIR)/$s.c translate"
182185
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"
185188
puts "$s.h:\theaders"
186189
# puts "\t./makeheaders $mhargs\n\ttouch headers\n"
187190
# puts "\t./makeheaders ${s}_.c:${s}.h\n"
188191
}
189192
190193
191
-puts "sqlite3.o:\t\$(SRCDIR)/sqlite3.c"
194
+puts "\$(OBJDIR)/sqlite3.o:\t\$(SRCDIR)/sqlite3.c"
192195
set opt {-DSQLITE_OMIT_LOAD_EXTENSION=1}
193196
append opt " -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4"
194197
#append opt " -DSQLITE_ENABLE_FTS3=1"
195198
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"
197200
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"
200203
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"
203206
--- 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 @@
3535
Stmt q;
3636
int nLine=0;
3737
char *zPubDate, *zProjectName, *zProjectDescr, *zFreeProjectName=0;
3838
Blob bSQL;
3939
const char *zType = PD("y","all"); /* Type of events. All if NULL */
40
+ int nLimit = atoi(PD("n","20"));
4041
const char zSQL1[] =
4142
@ SELECT
4243
@ blob.rid,
4344
@ uuid,
4445
@ event.mtime,
@@ -55,11 +56,11 @@
5556
return;
5657
}
5758
5859
blob_zero(&bSQL);
5960
blob_append( &bSQL, zSQL1, -1 );
60
-
61
+
6162
if( zType[0]!='a' ){
6263
if( zType[0]=='c' && !g.okRead ) zType = "x";
6364
if( zType[0]=='w' && !g.okRdWiki ) zType = "x";
6465
if( zType[0]=='t' && !g.okRdTkt ) zType = "x";
6566
blob_appendf(&bSQL, " AND event.type=%Q", zType);
@@ -108,11 +109,11 @@
108109
@ <description>%h(zProjectDescr)</description>
109110
@ <pubDate>%s(zPubDate)</pubDate>
110111
@ <generator>Fossil version %s(MANIFEST_VERSION) %s(MANIFEST_DATE)</generator>
111112
db_prepare(&q, blob_str(&bSQL));
112113
blob_reset( &bSQL );
113
- while( db_step(&q)==SQLITE_ROW && nLine<=20 ){
114
+ while( db_step(&q)==SQLITE_ROW && nLine<=nLimit ){
114115
const char *zId = db_column_text(&q, 1);
115116
const char *zCom = db_column_text(&q, 3);
116117
const char *zAuthor = db_column_text(&q, 4);
117118
char *zPrefix = "";
118119
char *zDate;
119120
--- 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
--- src/style.c
+++ src/style.c
@@ -88,10 +88,13 @@
8888
va_start(ap, zTitleFormat);
8989
zTitle = vmprintf(zTitleFormat, ap);
9090
va_end(ap);
9191
9292
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\">");
9396
9497
if( g.thTrace ) Th_Trace("BEGIN_HEADER<br />\n", -1);
9598
9699
/* Generate the header up through the main menu */
97100
Th_Store("project_name", db_get("project-name","Unnamed Fossil Project"));
98101
--- 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 @@
154154
#if INTERFACE
155155
#define TIMELINE_ARTID 0x0001 /* Show artifact IDs on non-check-in lines */
156156
#define TIMELINE_LEAFONLY 0x0002 /* Show "Leaf", but not "Merge", "Fork" etc */
157157
#define TIMELINE_BRIEF 0x0004 /* Combine adjacent elements of same object */
158158
#define TIMELINE_GRAPH 0x0008 /* Compute a graph */
159
+#define TIMELINE_DISJOINT 0x0010 /* Elements are not contiguous */
159160
#endif
160161
161162
/*
162163
** Output a timeline in the web format given a query. The query
163164
** should return these columns:
@@ -251,11 +252,11 @@
251252
}
252253
memcpy(zTime, &zDate[11], 5);
253254
zTime[5] = 0;
254255
@ <tr>
255256
@ <td valign="top" align="right">%s(zTime)</td>
256
- @ <td width="20" align="center" valign="top">
257
+ @ <td width="20" align="left" valign="top">
257258
@ <div id="m%d(rid)"></div>
258259
if( zBgClr && zBgClr[0] ){
259260
@ <td valign="top" align="left" bgcolor="%h(zBgClr)">
260261
}else{
261262
@ <td valign="top" align="left">
@@ -348,11 +349,11 @@
348349
@ <small><i>... %d(suppressCnt) similar
349350
@ event%s(suppressCnt>1?"s":"") omitted.</i></small></tr>
350351
suppressCnt = 0;
351352
}
352353
if( pGraph ){
353
- graph_finish(pGraph);
354
+ graph_finish(pGraph, (tmFlags & TIMELINE_DISJOINT)!=0);
354355
if( pGraph->nErr ){
355356
graph_free(pGraph);
356357
pGraph = 0;
357358
}else{
358359
@ <tr><td><td><div style="width:%d(pGraph->mxRail*20+30)px;"></div>
@@ -395,25 +396,25 @@
395396
cgi_printf("]}%s", pRow->pNext ? ",\n" : "];\n");
396397
}
397398
cgi_printf("var nrail = %d\n", pGraph->mxRail+1);
398399
graph_free(pGraph);
399400
@ var canvasDiv = document.getElementById("canvas");
401
+ @ var realCanvas = null;
400402
@ function drawBox(color,x0,y0,x1,y1){
401403
@ var n = document.createElement("div");
402404
@ if( x0>x1 ){ var t=x0; x0=x1; x1=t; }
403405
@ if( y0>y1 ){ var t=y0; y0=y1; y1=t; }
404406
@ var w = x1-x0+1;
405407
@ 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
- @ );
414408
@ 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;
415416
@ }
416417
@ function absoluteY(id){
417418
@ var obj = document.getElementById(id);
418419
@ if( !obj ) return;
419420
@ var top = 0;
@@ -496,21 +497,40 @@
496497
@ }
497498
@ }
498499
@ }
499500
@ function renderGraph(){
500501
@ 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);
504504
@ }
505505
@ var canvasY = absoluteY("canvas");
506506
@ var left = absoluteX(rowinfo[0].id) - absoluteX("canvas") + 15;
507
+ @ var width = nrail*20;
507508
@ for(var i in rowinfo){
508509
@ rowinfo[i].y = absoluteY(rowinfo[i].id) + 10 - canvasY;
509510
@ rowinfo[i].x = left + rowinfo[i].r*20;
510511
@ }
511512
@ 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
+ @ }
512532
@ for(var i in rowinfo){
513533
@ drawNode(rowinfo[i], left, btm);
514534
@ }
515535
@ }
516536
@ var lastId = rowinfo[rowinfo.length-1].id;
@@ -636,10 +656,11 @@
636656
** d=RID artifact RID and up to COUNT descendants
637657
** t=TAGID show only check-ins with the given tagid
638658
** u=USER only if belonging to this user
639659
** y=TYPE 'ci', 'w', 't'
640660
** s=TEXT string search (comment and brief)
661
+** ng Suppress the graph if present
641662
**
642663
** p= and d= can appear individually or together. If either p= or d=
643664
** appear, then u=, y=, a=, and b= are ignored.
644665
**
645666
** If a= and b= appear, only a= is used. If neither appear, the most
@@ -677,10 +698,13 @@
677698
if( zType[0]=='a' ){
678699
tmFlags = TIMELINE_BRIEF | TIMELINE_GRAPH;
679700
}else{
680701
tmFlags = TIMELINE_GRAPH;
681702
}
703
+ if( P("ng")!=0 ){
704
+ tmFlags &= ~TIMELINE_GRAPH;
705
+ }
682706
683707
style_header("Timeline");
684708
login_anonymous_available();
685709
timeline_temp_table();
686710
blob_zero(&sql);
@@ -857,11 +881,11 @@
857881
if( zUser ){
858882
blob_appendf(&desc, " by user %h", zUser);
859883
}
860884
if( tagid>0 ){
861885
blob_appendf(&desc, " tagged with \"%h\"", zTagName);
862
- tmFlags &= ~TIMELINE_GRAPH;
886
+ tmFlags |= TIMELINE_DISJOINT;
863887
}
864888
if( zAfter ){
865889
blob_appendf(&desc, " occurring on or after %h.<br>", zAfter);
866890
}else if( zBefore ){
867891
blob_appendf(&desc, " occurring on or before %h.<br>", zBefore);
868892
--- 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 @@
260260
@ </th1>
261261
@ <h1 align="center">Enter A New Ticket</h1>
262262
@ <table cellpadding="5">
263263
@ <tr>
264264
@ <td colspan="2">
265
-@ Enter a one-line summary of the problem:<br>
265
+@ Enter a one-line summary of the ticket:<br>
266266
@ <input type="text" name="title" size="60" value="$<title>">
267267
@ </td>
268268
@ </tr>
269269
@
270270
@ <tr>
271271
--- 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
--- src/vfile.c
+++ src/vfile.c
@@ -182,11 +182,10 @@
182182
}else if( rid==0 ){
183183
chnged = 1;
184184
}
185185
if( chnged!=1 ){
186186
currentMtime = file_mtime(0);
187
- assert( currentMtime>0 );
188187
}
189188
if( chnged!=1 && (checkMtime==0 || currentMtime!=oldMtime) ){
190189
db_ephemeral_blob(&q, 5, &origCksum);
191190
if( sha1sum_file(zName, &fileCksum) ){
192191
blob_zero(&fileCksum);
193192
--- 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 @@
13151315
};
13161316
transport_stats(&nSent, &nRcvd, 1);
13171317
printf("Total network traffic: %d bytes sent, %d bytes received\n",
13181318
nSent, nRcvd);
13191319
transport_close();
1320
- socket_global_shutdown();
1320
+ transport_global_shutdown();
13211321
db_multi_exec("DROP TABLE onremote");
13221322
manifest_crosslink_end();
13231323
db_end_transaction(0);
13241324
}
13251325
13261326
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
--- 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
+&lt;th1>enable_output [gn="right">
33
+ EMail:
34
+ <input t]&lt;/th1>
35
+&lt;tr>
36
+&lt;ngned"
37
+ submit_tEMail:
38
+&lt;private_contact>" size&lt;ublicly visile</u>. Used by d&lt;/td>
39
+&lt;tdto contact you w
40
+questions.&lt;/td>
41
+&lt;/tr>
42
+&lt;th1>enable_output 1&lt;/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 &lt;th1>enable_output [gn="right">
33 EMail:
34 <input t]&lt;/th1>
35 &lt;tr>
36 &lt;ngned"
37 submit_tEMail:
38 &lt;private_contact>" size&lt;ublicly visile</u>. Used by d&lt;/td>
39 &lt;tdto contact you w
40 questions.&lt;/td>
41 &lt;/tr>
42 &lt;th1>enable_output 1&lt;/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
--- www/fileformat.wiki
+++ www/fileformat.wiki
@@ -1,5 +1,6 @@
1
+<title>Fossil File Formats</title>
12
<h1 align="center">
23
Fossil File Formats
34
</h1>
45
56
<p>The global state of a fossil repository is kept simple so that it can
@@ -216,10 +217,13 @@
216217
character that immediately precedes the "Z". The Z-card is just
217218
a sanity check to prove that the manifest is well-formed and
218219
consistent.
219220
</p>
220221
222
+<p>A sample manifest from Fossil itself can be seen
223
+[/artifact/28987096ac | here].
224
+
221225
<h2>2.0 Clusters</h2>
222226
223227
<p>
224228
A cluster is a artifact that declares the existence of other artifacts.
225229
Clusters are used during repository synchronization to help
@@ -261,10 +265,13 @@
261265
the Z card of a manifest. The argument to the Z card is the
262266
lower-case hexadecimal representation of the MD5 checksum of all
263267
prior cards in the cluster. Note that the Z card is required
264268
on a cluster.
265269
</p>
270
+
271
+<p>An example cluster from Fossil can be seen
272
+[/artifact/d03dbdd73a2a8 | here].</p>
266273
267274
268275
<h2>3.0 Control Artifacts</h2>
269276
270277
<p>
271278
--- 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
--- www/index.wiki
+++ www/index.wiki
@@ -123,10 +123,12 @@
123123
* Some (unfinished but expanding) extended
124124
[./reference.wiki | reference documentation] for the fossil command line.
125125
* Documentation on the
126126
[http://www.sqliteconcepts.org/THManual.pdf | TH1 Script Language] used
127127
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].
128130
129131
<h3>Links For Fossil Developer:</h3>
130132
131133
* [./theory1.wiki | Thoughts On The Design Of Fossil].
132134
* [./pop.wiki | Principles Of Operation]
133135
134136
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
--- 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 "
--- www/theory1.wiki
+++ www/theory1.wiki
@@ -111,11 +111,11 @@
111111
For certain types of problems, SQL has a huge advantage over other
112112
programming languages because it is so high level and because it allows
113113
programmers to focus more on the <i>what</i> and less of the <i>how</i>
114114
of a computation. In other words,
115115
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.
117117
SQL is also very dense.
118118
In practice, this often means that a few
119119
lines of SQL can often replace hundreds or thousands of lines of
120120
procedural code, with a corresponding decrease in programming effort
121121
and opportunities to introduce bugs.
122122
--- 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

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button