/ Hex Artifact Content
Login

Artifact 8a4acea31e0f9c562949a2d767329533c0930d699ea19c6704c0ca0aa9154068:


0000: 23 2f 62 69 6e 2f 73 68 0a 23 0a 23 20 52 75 6e  #/bin/sh.#.# Run
0010: 20 74 68 69 73 20 73 63 72 69 70 74 20 69 6e 20   this script in 
0020: 61 20 64 69 72 65 63 74 6f 72 79 20 77 69 74 68  a directory with
0030: 20 61 20 77 6f 72 6b 69 6e 67 20 6d 61 6b 65 66   a working makef
0040: 69 6c 65 20 74 6f 20 63 68 65 63 6b 20 66 6f 72  ile to check for
0050: 20 0a 23 20 63 6f 6d 70 69 6c 65 72 20 77 61 72   .# compiler war
0060: 6e 69 6e 67 73 20 69 6e 20 53 51 4c 69 74 65 2e  nings in SQLite.
0070: 0a 23 0a 0a 69 66 20 75 6e 61 6d 65 20 7c 20 67  .#..if uname | g
0080: 72 65 70 20 2d 69 20 6f 70 65 6e 62 73 64 20 3b  rep -i openbsd ;
0090: 20 74 68 65 6e 0a 20 20 23 20 55 73 65 20 74 68   then.  # Use th
00a0: 65 73 65 20 66 6f 72 20 74 65 73 74 69 6e 67 20  ese for testing 
00b0: 6f 6e 20 4f 70 65 6e 42 53 44 3a 0a 20 20 57 41  on OpenBSD:.  WA
00c0: 52 4e 49 4e 47 5f 4f 50 54 53 3d 2d 57 61 6c 6c  RNING_OPTS=-Wall
00d0: 0a 20 20 57 41 52 4e 49 4e 47 5f 41 4e 44 52 4f  .  WARNING_ANDRO
00e0: 49 44 5f 4f 50 54 53 3d 2d 57 61 6c 6c 0a 65 6c  ID_OPTS=-Wall.el
00f0: 73 65 0a 20 20 23 20 55 73 65 20 74 68 65 73 65  se.  # Use these
0100: 20 66 6f 72 20 74 65 73 74 69 6e 67 20 6f 6e 20   for testing on 
0110: 4c 69 6e 75 78 20 61 6e 64 20 4d 61 63 20 4f 53  Linux and Mac OS
0120: 58 3a 0a 20 20 57 41 52 4e 49 4e 47 5f 4f 50 54  X:.  WARNING_OPT
0130: 53 3d 22 2d 57 73 68 61 64 6f 77 20 2d 57 61 6c  S="-Wshadow -Wal
0140: 6c 20 2d 57 65 78 74 72 61 20 2d 70 65 64 61 6e  l -Wextra -pedan
0150: 74 69 63 2d 65 72 72 6f 72 73 20 2d 57 6e 6f 2d  tic-errors -Wno-
0160: 6c 6f 6e 67 2d 6c 6f 6e 67 22 0a 20 20 57 41 52  long-long".  WAR
0170: 4e 49 4e 47 5f 41 4e 44 52 4f 49 44 5f 4f 50 54  NING_ANDROID_OPT
0180: 53 3d 22 2d 57 73 68 61 64 6f 77 20 2d 57 61 6c  S="-Wshadow -Wal
0190: 6c 20 2d 57 65 78 74 72 61 22 0a 66 69 0a 0a 72  l -Wextra".fi..r
01a0: 6d 20 2d 66 20 73 71 6c 69 74 65 33 2e 63 0a 6d  m -f sqlite3.c.m
01b0: 61 6b 65 20 73 71 6c 69 74 65 33 2e 63 0a 65 63  ake sqlite3.c.ec
01c0: 68 6f 20 27 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 4e  ho '********** N
01d0: 6f 20 6f 70 74 69 6d 69 7a 61 74 69 6f 6e 73 2e  o optimizations.
01e0: 20 20 49 6e 63 6c 75 64 65 73 20 46 54 53 34 2f    Includes FTS4/
01f0: 35 2c 20 52 54 52 45 45 2c 20 4a 53 4f 4e 31 20  5, RTREE, JSON1 
0200: 2a 2a 2a 27 0a 65 63 68 6f 20 27 2a 2a 2a 2a 2a  ***'.echo '*****
0210: 2a 2a 2a 2a 2a 20 20 20 20 27 20 4f 70 74 69 6f  *****    ' Optio
0220: 6e 73 3a 20 24 57 41 52 4e 49 4e 47 5f 4f 50 54  ns: $WARNING_OPT
0230: 53 0a 67 63 63 20 2d 63 20 24 57 41 52 4e 49 4e  S.gcc -c $WARNIN
0240: 47 5f 4f 50 54 53 20 2d 73 74 64 3d 63 38 39 20  G_OPTS -std=c89 
0250: 5c 0a 20 20 20 20 20 20 2d 61 6e 73 69 20 2d 44  \.      -ansi -D
0260: 48 41 56 45 5f 53 54 44 49 4e 54 5f 48 20 2d 44  HAVE_STDINT_H -D
0270: 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 46 54  SQLITE_ENABLE_FT
0280: 53 34 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41 42  S4 -DSQLITE_ENAB
0290: 4c 45 5f 52 54 52 45 45 20 5c 0a 20 20 20 20 20  LE_RTREE \.     
02a0: 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45   -DSQLITE_ENABLE
02b0: 5f 46 54 53 35 20 2d 44 53 51 4c 49 54 45 5f 45  _FTS5 -DSQLITE_E
02c0: 4e 41 42 4c 45 5f 4a 53 4f 4e 31 20 5c 0a 20 20  NABLE_JSON1 \.  
02d0: 20 20 20 20 73 71 6c 69 74 65 33 2e 63 0a 69 66      sqlite3.c.if
02e0: 20 74 65 73 74 20 78 60 75 6e 61 6d 65 60 20 3d   test x`uname` =
02f0: 20 27 78 4c 69 6e 75 78 27 3b 20 74 68 65 6e 0a   'xLinux'; then.
0300: 65 63 68 6f 20 27 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  echo '**********
0310: 20 41 6e 64 72 6f 69 64 20 63 6f 6e 66 69 67 75   Android configu
0320: 72 61 74 69 6f 6e 20 2a 2a 2a 2a 2a 2a 2a 2a 2a  ration *********
0330: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0340: 2a 2a 2a 2a 2a 27 0a 65 63 68 6f 20 27 2a 2a 2a  *****'.echo '***
0350: 2a 2a 2a 2a 2a 2a 2a 20 20 20 20 27 20 4f 70 74  *******    ' Opt
0360: 69 6f 6e 73 3a 20 24 57 41 52 4e 49 4e 47 5f 41  ions: $WARNING_A
0370: 4e 44 52 4f 49 44 5f 4f 50 54 53 0a 67 63 63 20  NDROID_OPTS.gcc 
0380: 2d 63 20 5c 0a 20 20 2d 44 48 41 56 45 5f 55 53  -c \.  -DHAVE_US
0390: 4c 45 45 50 3d 31 20 5c 0a 20 20 2d 44 53 51 4c  LEEP=1 \.  -DSQL
03a0: 49 54 45 5f 48 41 56 45 5f 49 53 4e 41 4e 20 5c  ITE_HAVE_ISNAN \
03b0: 0a 20 20 2d 44 53 51 4c 49 54 45 5f 44 45 46 41  .  -DSQLITE_DEFA
03c0: 55 4c 54 5f 4a 4f 55 52 4e 41 4c 5f 53 49 5a 45  ULT_JOURNAL_SIZE
03d0: 5f 4c 49 4d 49 54 3d 31 30 34 38 35 37 36 20 5c  _LIMIT=1048576 \
03e0: 0a 20 20 2d 44 53 51 4c 49 54 45 5f 54 48 52 45  .  -DSQLITE_THRE
03f0: 41 44 53 41 46 45 3d 32 20 5c 0a 20 20 2d 44 53  ADSAFE=2 \.  -DS
0400: 51 4c 49 54 45 5f 54 45 4d 50 5f 53 54 4f 52 45  QLITE_TEMP_STORE
0410: 3d 33 20 5c 0a 20 20 2d 44 53 51 4c 49 54 45 5f  =3 \.  -DSQLITE_
0420: 50 4f 57 45 52 53 41 46 45 5f 4f 56 45 52 57 52  POWERSAFE_OVERWR
0430: 49 54 45 3d 31 20 5c 0a 20 20 2d 44 53 51 4c 49  ITE=1 \.  -DSQLI
0440: 54 45 5f 44 45 46 41 55 4c 54 5f 46 49 4c 45 5f  TE_DEFAULT_FILE_
0450: 46 4f 52 4d 41 54 3d 34 20 5c 0a 20 20 2d 44 53  FORMAT=4 \.  -DS
0460: 51 4c 49 54 45 5f 44 45 46 41 55 4c 54 5f 41 55  QLITE_DEFAULT_AU
0470: 54 4f 56 41 43 55 55 4d 3d 31 20 5c 0a 20 20 2d  TOVACUUM=1 \.  -
0480: 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 4d  DSQLITE_ENABLE_M
0490: 45 4d 4f 52 59 5f 4d 41 4e 41 47 45 4d 45 4e 54  EMORY_MANAGEMENT
04a0: 3d 31 20 5c 0a 20 20 2d 44 53 51 4c 49 54 45 5f  =1 \.  -DSQLITE_
04b0: 45 4e 41 42 4c 45 5f 46 54 53 33 20 5c 0a 20 20  ENABLE_FTS3 \.  
04c0: 2d 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f  -DSQLITE_ENABLE_
04d0: 46 54 53 33 5f 42 41 43 4b 57 41 52 44 53 20 5c  FTS3_BACKWARDS \
04e0: 0a 20 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41 42  .  -DSQLITE_ENAB
04f0: 4c 45 5f 46 54 53 34 20 5c 0a 20 20 2d 44 53 51  LE_FTS4 \.  -DSQ
0500: 4c 49 54 45 5f 4f 4d 49 54 5f 42 55 49 4c 54 49  LITE_OMIT_BUILTI
0510: 4e 5f 54 45 53 54 20 5c 0a 20 20 2d 44 53 51 4c  N_TEST \.  -DSQL
0520: 49 54 45 5f 4f 4d 49 54 5f 43 4f 4d 50 49 4c 45  ITE_OMIT_COMPILE
0530: 4f 50 54 49 4f 4e 5f 44 49 41 47 53 20 5c 0a 20  OPTION_DIAGS \. 
0540: 20 2d 44 53 51 4c 49 54 45 5f 4f 4d 49 54 5f 4c   -DSQLITE_OMIT_L
0550: 4f 41 44 5f 45 58 54 45 4e 53 49 4f 4e 20 5c 0a  OAD_EXTENSION \.
0560: 20 20 2d 44 53 51 4c 49 54 45 5f 44 45 46 41 55    -DSQLITE_DEFAU
0570: 4c 54 5f 46 49 4c 45 5f 50 45 52 4d 49 53 53 49  LT_FILE_PERMISSI
0580: 4f 4e 53 3d 30 36 30 30 20 5c 0a 20 20 2d 44 53  ONS=0600 \.  -DS
0590: 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 49 43 55  QLITE_ENABLE_ICU
05a0: 20 5c 0a 20 20 2d 44 55 53 45 5f 50 52 45 41 44   \.  -DUSE_PREAD
05b0: 36 34 20 5c 0a 20 20 24 57 41 52 4e 49 4e 47 5f  64 \.  $WARNING_
05c0: 41 4e 44 52 4f 49 44 5f 4f 50 54 53 20 5c 0a 20  ANDROID_OPTS \. 
05d0: 20 2d 4f 73 20 73 71 6c 69 74 65 33 2e 63 20 73   -Os sqlite3.c s
05e0: 68 65 6c 6c 2e 63 0a 66 69 0a 65 63 68 6f 20 27  hell.c.fi.echo '
05f0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20 4e 6f 20 6f 70  ********** No op
0600: 74 69 6d 69 7a 61 74 69 6f 6e 73 2e 20 45 4e 41  timizations. ENA
0610: 42 4c 45 5f 53 54 41 54 34 2e 20 54 48 52 45 41  BLE_STAT4. THREA
0620: 44 53 41 46 45 3d 30 20 2a 2a 2a 2a 2a 2a 2a 27  DSAFE=0 *******'
0630: 0a 65 63 68 6f 20 27 2a 2a 2a 2a 2a 2a 2a 2a 2a  .echo '*********
0640: 2a 20 20 20 20 27 20 4f 70 74 69 6f 6e 73 3a 20  *    ' Options: 
0650: 24 57 41 52 4e 49 4e 47 5f 4f 50 54 53 0a 67 63  $WARNING_OPTS.gc
0660: 63 20 2d 63 20 24 57 41 52 4e 49 4e 47 5f 4f 50  c -c $WARNING_OP
0670: 54 53 20 2d 73 74 64 3d 63 38 39 20 5c 0a 20 20  TS -std=c89 \.  
0680: 20 20 20 20 2d 61 6e 73 69 20 2d 44 53 51 4c 49      -ansi -DSQLI
0690: 54 45 5f 45 4e 41 42 4c 45 5f 53 54 41 54 34 20  TE_ENABLE_STAT4 
06a0: 2d 44 53 51 4c 49 54 45 5f 54 48 52 45 41 44 53  -DSQLITE_THREADS
06b0: 41 46 45 3d 30 20 5c 0a 20 20 20 20 20 20 73 71  AFE=0 \.      sq
06c0: 6c 69 74 65 33 2e 63 0a 65 63 68 6f 20 27 2a 2a  lite3.c.echo '**
06d0: 2a 2a 2a 2a 2a 2a 2a 2a 20 4f 70 74 69 6d 69 7a  ******** Optimiz
06e0: 65 64 20 2d 4f 33 2e 20 20 49 6e 63 6c 75 64 65  ed -O3.  Include
06f0: 73 20 46 54 53 34 2f 35 2c 20 52 54 52 45 45 2c  s FTS4/5, RTREE,
0700: 20 4a 53 4f 4e 31 20 2a 2a 2a 2a 2a 2a 27 0a 65   JSON1 ******'.e
0710: 63 68 6f 20 27 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 20  cho '********** 
0720: 20 20 20 27 20 4f 70 74 69 6f 6e 73 3a 20 24 57     ' Options: $W
0730: 41 52 4e 49 4e 47 5f 4f 50 54 53 0a 67 63 63 20  ARNING_OPTS.gcc 
0740: 2d 4f 33 20 2d 63 20 24 57 41 52 4e 49 4e 47 5f  -O3 -c $WARNING_
0750: 4f 50 54 53 20 2d 73 74 64 3d 63 38 39 20 5c 0a  OPTS -std=c89 \.
0760: 20 20 20 20 20 20 2d 61 6e 73 69 20 2d 44 48 41        -ansi -DHA
0770: 56 45 5f 53 54 44 49 4e 54 5f 48 20 2d 44 53 51  VE_STDINT_H -DSQ
0780: 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 46 54 53 34  LITE_ENABLE_FTS4
0790: 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45   -DSQLITE_ENABLE
07a0: 5f 52 54 52 45 45 20 5c 0a 20 20 20 20 20 20 2d  _RTREE \.      -
07b0: 44 53 51 4c 49 54 45 5f 45 4e 41 42 4c 45 5f 46  DSQLITE_ENABLE_F
07c0: 54 53 35 20 2d 44 53 51 4c 49 54 45 5f 45 4e 41  TS5 -DSQLITE_ENA
07d0: 42 4c 45 5f 4a 53 4f 4e 31 20 5c 0a 20 20 20 20  BLE_JSON1 \.    
07e0: 20 20 73 71 6c 69 74 65 33 2e 63 0a                sqlite3.c.