blob: 60d2b4210023ba65444e6ad17fe17323b2af3a56 [file] [log] [blame]
drh3043ac72011-06-03 13:06:50 +00001#/bin/sh
2#
3# Run this script in a directory with a working makefile to check for
4# compiler warnings in SQLite.
5#
dane2889922016-10-08 09:21:34 +00006
dan9ea258d2017-05-16 09:49:42 +00007if uname | grep -i openbsd ; then
8 # Use these for testing on OpenBSD:
9 WARNING_OPTS=-Wall
10 WARNING_ANDROID_OPTS=-Wall
11else
12 # Use these for testing on Linux and Mac OSX:
13 WARNING_OPTS="-Wshadow -Wall -Wextra -pedantic-errors -Wno-long-long"
drhe0237c02023-01-04 18:32:14 +000014 gccvers=`gcc -v 2>&1 | grep '^gcc version'`
15 if test "$gccvers" '<' 'gcc version 6'
16 then
17 WARNING_ANDROID_OPTS="-Wshadow -Wall -Wextra"
18 else
19 WARNING_ANDROID_OPTS="-Wshadow -Wall -Wextra -Wimplicit-fallthrough=0"
20 fi
dan9ea258d2017-05-16 09:49:42 +000021fi
dane2889922016-10-08 09:21:34 +000022
drh88caeac2011-08-24 15:12:08 +000023rm -f sqlite3.c
drh3c559a82014-05-27 19:18:36 +000024make sqlite3.c
mistachkin23bfa802018-11-15 19:12:22 +000025echo '********** No optimizations. Includes FTS4/5, GEOPOLY, JSON1 ***'
dane2889922016-10-08 09:21:34 +000026echo '********** ' Options: $WARNING_OPTS
27gcc -c $WARNING_OPTS -std=c89 \
drh36d24882018-11-15 16:56:33 +000028 -ansi -DHAVE_STDINT_H -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_GEOPOLY \
drhdedd51a2022-02-17 14:33:13 +000029 -DSQLITE_ENABLE_FTS5 \
drh3043ac72011-06-03 13:06:50 +000030 sqlite3.c
drh3719d102016-02-15 18:58:37 +000031if test x`uname` = 'xLinux'; then
drhf5ed7ad2015-06-15 14:43:25 +000032echo '********** Android configuration ******************************'
dane2889922016-10-08 09:21:34 +000033echo '********** ' Options: $WARNING_ANDROID_OPTS
drhf5ed7ad2015-06-15 14:43:25 +000034gcc -c \
35 -DHAVE_USLEEP=1 \
36 -DSQLITE_HAVE_ISNAN \
37 -DSQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576 \
38 -DSQLITE_THREADSAFE=2 \
39 -DSQLITE_TEMP_STORE=3 \
40 -DSQLITE_POWERSAFE_OVERWRITE=1 \
41 -DSQLITE_DEFAULT_FILE_FORMAT=4 \
42 -DSQLITE_DEFAULT_AUTOVACUUM=1 \
43 -DSQLITE_ENABLE_MEMORY_MANAGEMENT=1 \
44 -DSQLITE_ENABLE_FTS3 \
45 -DSQLITE_ENABLE_FTS3_BACKWARDS \
46 -DSQLITE_ENABLE_FTS4 \
47 -DSQLITE_OMIT_BUILTIN_TEST \
48 -DSQLITE_OMIT_COMPILEOPTION_DIAGS \
49 -DSQLITE_OMIT_LOAD_EXTENSION \
50 -DSQLITE_DEFAULT_FILE_PERMISSIONS=0600 \
51 -DSQLITE_ENABLE_ICU \
52 -DUSE_PREAD64 \
dane2889922016-10-08 09:21:34 +000053 $WARNING_ANDROID_OPTS \
drhf5ed7ad2015-06-15 14:43:25 +000054 -Os sqlite3.c shell.c
drh3719d102016-02-15 18:58:37 +000055fi
drh4f991892013-10-11 15:05:05 +000056echo '********** No optimizations. ENABLE_STAT4. THREADSAFE=0 *******'
dane2889922016-10-08 09:21:34 +000057echo '********** ' Options: $WARNING_OPTS
58gcc -c $WARNING_OPTS -std=c89 \
drh4f991892013-10-11 15:05:05 +000059 -ansi -DSQLITE_ENABLE_STAT4 -DSQLITE_THREADSAFE=0 \
drhdf3aa162011-06-24 11:29:51 +000060 sqlite3.c
mistachkin23bfa802018-11-15 19:12:22 +000061echo '********** Optimized -O3. Includes FTS4/5, GEOPOLY, JSON1 ******'
dane2889922016-10-08 09:21:34 +000062echo '********** ' Options: $WARNING_OPTS
63gcc -O3 -c $WARNING_OPTS -std=c89 \
mistachkin23bfa802018-11-15 19:12:22 +000064 -ansi -DHAVE_STDINT_H -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_GEOPOLY \
drhdedd51a2022-02-17 14:33:13 +000065 -DSQLITE_ENABLE_FTS5 \
drh3043ac72011-06-03 13:06:50 +000066 sqlite3.c