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