mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-24 22:22:08 +03:00
Delete output files if this is a failed run.
Otherwise, the fail will stop a Makefile from progressing, but if you immediately run the build again, Make will think the output files are up to date, since they are newer (albeit incomplete/incorrect). FossilOrigin-Name: e38c08d9cdeb0476ac1a77cd3f29f547a8205835
This commit is contained in:
38
manifest
38
manifest
@ -1,8 +1,8 @@
|
|||||||
-----BEGIN PGP SIGNED MESSAGE-----
|
-----BEGIN PGP SIGNED MESSAGE-----
|
||||||
Hash: SHA1
|
Hash: SHA1
|
||||||
|
|
||||||
C Added\s%expect\sdirective,\sto\sconsider\sa\scertain\snumber\sof\sconflicts\s"correct."\n\nThis\shas\sthe\sside\seffect\sof\schanging\sthe\sprocess\sexit\scode\sto\snever\soverflow.
|
C Delete\soutput\sfiles\sif\sthis\sis\sa\sfailed\srun.\n\nOtherwise,\sthe\sfail\swill\sstop\sa\sMakefile\sfrom\sprogressing,\sbut\sif\syou\nimmediately\srun\sthe\sbuild\sagain,\sMake\swill\sthink\sthe\soutput\sfiles\sare\sup\sto\ndate,\ssince\sthey\sare\snewer\s(albeit\sincomplete/incorrect).
|
||||||
D 2010-02-14T05:19:56
|
D 2010-02-14T05:34:43
|
||||||
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
|
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
|
||||||
F Makefile.in c5827ead754ab32b9585487177c93bb00b9497b3
|
F Makefile.in c5827ead754ab32b9585487177c93bb00b9497b3
|
||||||
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
|
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
|
||||||
@ -765,7 +765,7 @@ F tool/diffdb.c 7524b1b5df217c20cd0431f6789851a4e0cb191b
|
|||||||
F tool/fragck.tcl 5265a95126abcf6ab357f7efa544787e5963f439
|
F tool/fragck.tcl 5265a95126abcf6ab357f7efa544787e5963f439
|
||||||
F tool/genfkey.README cf68fddd4643bbe3ff8e31b8b6d8b0a1b85e20f4
|
F tool/genfkey.README cf68fddd4643bbe3ff8e31b8b6d8b0a1b85e20f4
|
||||||
F tool/genfkey.test 4196a8928b78f51d54ef58e99e99401ab2f0a7e5
|
F tool/genfkey.test 4196a8928b78f51d54ef58e99e99401ab2f0a7e5
|
||||||
F tool/lemon.c 415104859db0e4badd3571dee4a60582297ebaaa
|
F tool/lemon.c 83edd1726151a939d0e5f4d30d1775b53196a42e
|
||||||
F tool/lempar.c 01ca97f87610d1dac6d8cd96ab109ab1130e76dc
|
F tool/lempar.c 01ca97f87610d1dac6d8cd96ab109ab1130e76dc
|
||||||
F tool/mkkeywordhash.c d2e6b4a5965e23afb80fbe74bb54648cd371f309
|
F tool/mkkeywordhash.c d2e6b4a5965e23afb80fbe74bb54648cd371f309
|
||||||
F tool/mkopts.tcl 66ac10d240cc6e86abd37dc908d50382f84ff46e
|
F tool/mkopts.tcl 66ac10d240cc6e86abd37dc908d50382f84ff46e
|
||||||
@ -790,24 +790,24 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
|
|||||||
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
|
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
|
||||||
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
|
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
|
||||||
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
|
F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
|
||||||
P e6cbe1e5ee80db282a41951b805b7bd8b13adf28
|
P d8bab8cf0bc3fbd4c489c31a65d724dda2944d83
|
||||||
R a52aa69eba0e0915125e4230ac657715
|
R f18701bb0bf4342a5fa49e46ec7b784c
|
||||||
U icculus
|
U icculus
|
||||||
Z f5a330aab159045deb825a581ad23995
|
Z 9daac77a325dba22777be0affa01d6ac
|
||||||
-----BEGIN PGP SIGNATURE-----
|
-----BEGIN PGP SIGNATURE-----
|
||||||
Version: GnuPG/MacGPG2 v2.0.14 (Darwin)
|
Version: GnuPG/MacGPG2 v2.0.14 (Darwin)
|
||||||
|
|
||||||
iQIcBAEBAgAGBQJLd4gDAAoJEDDcKcGyC63VQkkQAJmHE1TfQc5uu5XhBLZ+kexv
|
iQIcBAEBAgAGBQJLd4t3AAoJEDDcKcGyC63VLIsP/15NDKg2Ow3n6Mzn9T43RYF3
|
||||||
dZ1QOkvx9yV2mX+2GG1QZgQpUaYaBIaP7rRtFuIZN+I8sqkcFxjG9SARWEYArtJj
|
+qMDlBmmS80bYCLjVwuJNTU2EDTEw5/qCrcpnS3pqPtBwObVrA934v9Q9wZFMY/a
|
||||||
udPUnNn6CVmsp7isbBZYBDw2UhsH0B00uOQvxCdEDT36MUjtkxjiM2T1M8lp+aAH
|
zhrNgnduUl/KIvYQkdJWgi8GFUn7zOJzkeZeZnW2Qx0QIlN+cNRucpnrG292CnWK
|
||||||
jmxilkTSVojq6WJE1/oTVNcMSJnNaEI7fi0GvmBzaxOGalxis8miiBwpVv/3CY39
|
9Xa/jHD6eiv1Zdi4mhkcP/bISERHQk7Wf5KoCZOw7K/yHECnc2dV8jnzk19gGzBV
|
||||||
chkrTITynbJtwGMoUikNLlVYfuXAfTDBAQYAZT5b50QAYfA/S5l9g+C3KMY9ffNa
|
Z9MHC6WwSwuPGulizlvG/huIn53aWLAXnWr3IMnKOHdMii0eTvRfUu7KQN80zi54
|
||||||
XZwBZu9DCBtdv57D8koUoCYcA0bUr9dyT6GrTgJORq5ePqtoXU2rLB3F1ckkuN2a
|
CBolUPlV3aJt14DvZm+FRqxnoZ0NW67MjwlU1dL/zxnciVXZhJyE4DDfYkAia341
|
||||||
hkScfFj8TjYsik1Oou8GvN5CtUihq1ekCUFyh/M+vLHFbLVge+zgUNO57s3mK7e7
|
2QVRuKu8KurxWfR7hFDtCKX9MvGpmeyAGUN//njr7mZl/dgIS/h1tJmIW2qQ5aAv
|
||||||
D+2y9HcY2txBptzjMkNuZgV4DzIqAhjHIK9JmbR/oO2w+NAiYw3wfBiMOEq5kDKT
|
S71Q0Pos6wTFuhDptpC/vJWQjb+2fuxU4WjTXpUXYq0UuObUjBu0CIZPG/q3tQOT
|
||||||
X1u2kOEKFaJhOaGIYnCIjHH3yc9bqzHPIyrwpBoyjtqZnsQbnZZP7hZ2hmjKVXoT
|
JB0iSqWCBY3twHh7K1koUK4tQDE75ILLSTxxXDdWls3bAdSadGUF4lgnXNaCtElc
|
||||||
O0EQmNsxQw4z6/EFx2/OPr1IhIKON7rwIl2mb1hWczA1GDroNVi+zRDkabMCAWik
|
3N8vuzr8YfssaLWqENp6pNIKLJNJUiRk4DxFuQfOxoCi1iHT0JLZqe1FSdjaZJWK
|
||||||
Fwxwnf4IJsAgd4v8JQi22h+EudRP9s/O24MModCsahBX1xkQKoL3poXEQyYAE0Ki
|
YXzv0N/fhbqQ/EZyqcLro3lMU6iWCZTvemp/fjFCp5rcm9czvsFcHLODoKL5YqkN
|
||||||
Fg8EO6hKudpsXjb09VvE
|
wxWpwAcL7ybFSMVfhJRE
|
||||||
=XLI+
|
=otDK
|
||||||
-----END PGP SIGNATURE-----
|
-----END PGP SIGNATURE-----
|
||||||
|
@ -1 +1 @@
|
|||||||
d8bab8cf0bc3fbd4c489c31a65d724dda2944d83
|
e38c08d9cdeb0476ac1a77cd3f29f547a8205835
|
39
tool/lemon.c
39
tool/lemon.c
@ -34,6 +34,24 @@ extern int access();
|
|||||||
#define MAXRHS 1000
|
#define MAXRHS 1000
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static const char **made_files = NULL;
|
||||||
|
static int made_files_count = 0;
|
||||||
|
static int successful_exit = 0;
|
||||||
|
static void LemonAtExit(void)
|
||||||
|
{
|
||||||
|
/* if we failed, delete (most) files we made, to unconfuse build tools. */
|
||||||
|
int i;
|
||||||
|
for (i = 0; i < made_files_count; i++) {
|
||||||
|
if (!successful_exit) {
|
||||||
|
remove(made_files[i]);
|
||||||
|
}
|
||||||
|
free((void *) made_files[i]);
|
||||||
|
}
|
||||||
|
free(made_files);
|
||||||
|
made_files_count = 0;
|
||||||
|
made_files = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
static char *msort(char*,char**,int(*)(const char*,const char*));
|
static char *msort(char*,char**,int(*)(const char*,const char*));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1470,6 +1488,8 @@ char **argv;
|
|||||||
int exitcode;
|
int exitcode;
|
||||||
struct lemon lem;
|
struct lemon lem;
|
||||||
|
|
||||||
|
atexit(LemonAtExit);
|
||||||
|
|
||||||
OptInit(argv,options,stderr);
|
OptInit(argv,options,stderr);
|
||||||
if( version ){
|
if( version ){
|
||||||
printf("Lemon version 1.0\n");
|
printf("Lemon version 1.0\n");
|
||||||
@ -1576,6 +1596,7 @@ char **argv;
|
|||||||
|
|
||||||
/* return 0 on success, 1 on failure. */
|
/* return 0 on success, 1 on failure. */
|
||||||
exitcode = ((lem.errorcnt > 0) || (lem.nconflict != lem.nexpected)) ? 1 : 0;
|
exitcode = ((lem.errorcnt > 0) || (lem.nconflict != lem.nexpected)) ? 1 : 0;
|
||||||
|
successful_exit = (exitcode == 0);
|
||||||
exit(exitcode);
|
exit(exitcode);
|
||||||
return (exitcode);
|
return (exitcode);
|
||||||
}
|
}
|
||||||
@ -2831,6 +2852,24 @@ char *mode;
|
|||||||
lemp->errorcnt++;
|
lemp->errorcnt++;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Add files we create to a list, so we can delete them if we fail. This
|
||||||
|
** is to keep makefiles from getting confused. We don't include .out files,
|
||||||
|
** though: this is debug information, and you don't want it deleted if there
|
||||||
|
** was an error you need to track down.
|
||||||
|
*/
|
||||||
|
if(( *mode=='w' ) && (strcmp(suffix, ".out") != 0)){
|
||||||
|
const char **ptr = (const char **)
|
||||||
|
realloc(made_files, sizeof (const char **) * (made_files_count + 1));
|
||||||
|
char *fname = strdup(lemp->outname);
|
||||||
|
if ((ptr == NULL) || (fname == NULL)) {
|
||||||
|
free(ptr);
|
||||||
|
free(fname);
|
||||||
|
memory_error();
|
||||||
|
}
|
||||||
|
made_files = ptr;
|
||||||
|
made_files[made_files_count++] = fname;
|
||||||
|
}
|
||||||
return fp;
|
return fp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user