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 7if 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" 14 WARNING_ANDROID_OPTS="-Wshadow -Wall -Wextra" 15fi 16 17rm -f sqlite3.c 18make sqlite3.c 19echo '********** No optimizations. Includes FTS4/5, GEOPOLY, JSON1 ***' 20echo '********** ' Options: $WARNING_OPTS 21gcc -c $WARNING_OPTS -std=c89 \ 22 -ansi -DHAVE_STDINT_H -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_GEOPOLY \ 23 -DSQLITE_ENABLE_FTS5 \ 24 sqlite3.c 25if test x`uname` = 'xLinux'; then 26echo '********** Android configuration ******************************' 27echo '********** ' Options: $WARNING_ANDROID_OPTS 28gcc -c \ 29 -DHAVE_USLEEP=1 \ 30 -DSQLITE_HAVE_ISNAN \ 31 -DSQLITE_DEFAULT_JOURNAL_SIZE_LIMIT=1048576 \ 32 -DSQLITE_THREADSAFE=2 \ 33 -DSQLITE_TEMP_STORE=3 \ 34 -DSQLITE_POWERSAFE_OVERWRITE=1 \ 35 -DSQLITE_DEFAULT_FILE_FORMAT=4 \ 36 -DSQLITE_DEFAULT_AUTOVACUUM=1 \ 37 -DSQLITE_ENABLE_MEMORY_MANAGEMENT=1 \ 38 -DSQLITE_ENABLE_FTS3 \ 39 -DSQLITE_ENABLE_FTS3_BACKWARDS \ 40 -DSQLITE_ENABLE_FTS4 \ 41 -DSQLITE_OMIT_BUILTIN_TEST \ 42 -DSQLITE_OMIT_COMPILEOPTION_DIAGS \ 43 -DSQLITE_OMIT_LOAD_EXTENSION \ 44 -DSQLITE_DEFAULT_FILE_PERMISSIONS=0600 \ 45 -DSQLITE_ENABLE_ICU \ 46 -DUSE_PREAD64 \ 47 $WARNING_ANDROID_OPTS \ 48 -Os sqlite3.c shell.c 49fi 50echo '********** No optimizations. ENABLE_STAT4. THREADSAFE=0 *******' 51echo '********** ' Options: $WARNING_OPTS 52gcc -c $WARNING_OPTS -std=c89 \ 53 -ansi -DSQLITE_ENABLE_STAT4 -DSQLITE_THREADSAFE=0 \ 54 sqlite3.c 55echo '********** Optimized -O3. Includes FTS4/5, GEOPOLY, JSON1 ******' 56echo '********** ' Options: $WARNING_OPTS 57gcc -O3 -c $WARNING_OPTS -std=c89 \ 58 -ansi -DHAVE_STDINT_H -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_GEOPOLY \ 59 -DSQLITE_ENABLE_FTS5 \ 60 sqlite3.c 61