xref: /sqlite-3.40.0/tool/warnings.sh (revision dfe4e6bb)
1#/bin/sh
2#
3# Run this script in a directory with a working makefile to check for
4# compiler warnings in SQLite.
5#
6
7# Use these for testing on Linux and Mac OSX:
8WARNING_OPTS="-Wshadow -Wall -Wextra -pedantic-errors -Wno-long-long"
9WARNING_ANDROID_OPTS="-Wshadow -Wall -Wextra"
10
11# Use these for testing on OpenBSD:
12# WARNING_OPTS=-Wall
13# WARNING_ANDROID_OPTS=-Wall
14
15rm -f sqlite3.c
16make sqlite3.c
17echo '********** No optimizations.  Includes FTS4/5, RTREE, JSON1 ***'
18echo '**********    ' Options: $WARNING_OPTS
19gcc -c $WARNING_OPTS -std=c89 \
20      -ansi -DHAVE_STDINT_H -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_RTREE \
21      -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_JSON1 \
22      sqlite3.c
23if test x`uname` = 'xLinux'; then
24echo '********** Android configuration ******************************'
25echo '**********    ' Options: $WARNING_ANDROID_OPTS
26gcc -c \
27  -DHAVE_USLEEP=1 \
28  -DSQLITE_HAVE_ISNAN \
29  -DSQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576 \
30  -DSQLITE_THREADSAFE=2 \
31  -DSQLITE_TEMP_STORE=3 \
32  -DSQLITE_POWERSAFE_OVERWRITE=1 \
33  -DSQLITE_DEFAULT_FILE_FORMAT=4 \
34  -DSQLITE_DEFAULT_AUTOVACUUM=1 \
35  -DSQLITE_ENABLE_MEMORY_MANAGEMENT=1 \
36  -DSQLITE_ENABLE_FTS3 \
37  -DSQLITE_ENABLE_FTS3_BACKWARDS \
38  -DSQLITE_ENABLE_FTS4 \
39  -DSQLITE_OMIT_BUILTIN_TEST \
40  -DSQLITE_OMIT_COMPILEOPTION_DIAGS \
41  -DSQLITE_OMIT_LOAD_EXTENSION \
42  -DSQLITE_DEFAULT_FILE_PERMISSIONS=0600 \
43  -DSQLITE_ENABLE_ICU \
44  -DUSE_PREAD64 \
45  $WARNING_ANDROID_OPTS \
46  -Os sqlite3.c shell.c
47fi
48echo '********** No optimizations. ENABLE_STAT4. THREADSAFE=0 *******'
49echo '**********    ' Options: $WARNING_OPTS
50gcc -c $WARNING_OPTS -std=c89 \
51      -ansi -DSQLITE_ENABLE_STAT4 -DSQLITE_THREADSAFE=0 \
52      sqlite3.c
53echo '********** Optimized -O3.  Includes FTS4/5, RTREE, JSON1 ******'
54echo '**********    ' Options: $WARNING_OPTS
55gcc -O3 -c $WARNING_OPTS -std=c89 \
56      -ansi -DHAVE_STDINT_H -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_RTREE \
57      -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_JSON1 \
58      sqlite3.c
59