OLD | NEW |
(Empty) | |
| 1 #!/bin/sh |
| 2 # |
| 3 # This script is used to compile SQLite and package everything up |
| 4 # so that it is ready to move to the SQLite website. |
| 5 # |
| 6 |
| 7 # Set srcdir to the name of the directory that contains the publish.sh |
| 8 # script. |
| 9 # |
| 10 srcdir=`echo "$0" | sed 's%\(^.*\)/[^/][^/]*$%\1%'` |
| 11 |
| 12 # Get the makefile. |
| 13 # |
| 14 cp $srcdir/Makefile.linux-gcc ./Makefile |
| 15 chmod +x $srcdir/install-sh |
| 16 |
| 17 # Get the current version number - needed to help build filenames |
| 18 # |
| 19 VERS=`cat $srcdir/VERSION` |
| 20 VERSW=`sed 's/\./_/g' $srcdir/VERSION` |
| 21 echo "VERSIONS: $VERS $VERSW" |
| 22 |
| 23 # Start by building an sqlite shell for linux. |
| 24 # |
| 25 make clean |
| 26 make sqlite3.c |
| 27 CFLAGS="-Os -DSQLITE_ENABLE_FTS3=0 -DSQLITE_ENABLE_RTREE=0" |
| 28 CFLAGS="$CFLAGS -DSQLITE_THREADSAFE=0" |
| 29 echo '***** '"COMPILING sqlite3-$VERS.bin..." |
| 30 gcc $CFLAGS -Itsrc sqlite3.c tsrc/shell.c -o sqlite3 -ldl |
| 31 strip sqlite3 |
| 32 mv sqlite3 sqlite3-$VERS.bin |
| 33 gzip sqlite3-$VERS.bin |
| 34 chmod 644 sqlite3-$VERS.bin.gz |
| 35 mv sqlite3-$VERS.bin.gz doc |
| 36 |
| 37 # Build the sqlite.so and tclsqlite.so shared libraries |
| 38 # under Linux |
| 39 # |
| 40 TCLDIR=/home/drh/tcltk/846/linux/846linux |
| 41 TCLSTUBLIB=$TCLDIR/libtclstub8.4g.a |
| 42 CFLAGS="-Os -DSQLITE_ENABLE_FTS3=3 -DSQLITE_ENABLE_RTREE=1" |
| 43 CFLAGS="$CFLAGS -DHAVE_LOCALTIME_R=1 -DHAVE_GMTIME_R=1" |
| 44 CFLAGS="$CFLAGS -DSQLITE_ENABLE_COLUMN_METADATA=1" |
| 45 echo '***** BUILDING shared libraries for linux' |
| 46 gcc $CFLAGS -shared tclsqlite3.c $TCLSTUBLIB -o tclsqlite3.so -lpthread |
| 47 strip tclsqlite3.so |
| 48 chmod 644 tclsqlite3.so |
| 49 mv tclsqlite3.so tclsqlite-$VERS.so |
| 50 gzip tclsqlite-$VERS.so |
| 51 mv tclsqlite-$VERS.so.gz doc |
| 52 gcc $CFLAGS -shared sqlite3.c -o sqlite3.so -lpthread |
| 53 strip sqlite3.so |
| 54 chmod 644 sqlite3.so |
| 55 mv sqlite3.so sqlite-$VERS.so |
| 56 gzip sqlite-$VERS.so |
| 57 mv sqlite-$VERS.so.gz doc |
| 58 |
| 59 |
| 60 # Build the tclsqlite3.dll and sqlite3.dll shared libraries. |
| 61 # |
| 62 . $srcdir/mkdll.sh |
| 63 echo '***** PACKAGING shared libraries for windows' |
| 64 echo zip doc/tclsqlite-$VERSW.zip tclsqlite3.dll |
| 65 zip doc/tclsqlite-$VERSW.zip tclsqlite3.dll |
| 66 echo zip doc/sqlitedll-$VERSW.zip sqlite3.dll sqlite3.def |
| 67 zip doc/sqlitedll-$VERSW.zip sqlite3.dll sqlite3.def |
| 68 |
| 69 # Build the sqlite.exe executable for windows. |
| 70 # |
| 71 OPTS='-DSTATIC_BUILD=1 -DNDEBUG=1 -DSQLITE_THREADSAFE=0' |
| 72 OPTS="$OPTS -DSQLITE_ENABLE_FTS3=1 -DSQLITE_ENABLE_RTREE=1" |
| 73 i386-mingw32msvc-gcc -Os $OPTS -Itsrc -I$TCLDIR sqlite3.c tsrc/shell.c \ |
| 74 -o sqlite3.exe |
| 75 zip doc/sqlite-$VERSW.zip sqlite3.exe |
| 76 |
| 77 # Build a source archive useful for windows. |
| 78 # |
| 79 make target_source |
| 80 cd tsrc |
| 81 echo '***** BUILDING preprocessed source archives' |
| 82 rm fts[12]* icu* |
| 83 rm -f ../doc/sqlite-source-$VERSW.zip |
| 84 zip ../doc/sqlite-source-$VERSW.zip * |
| 85 cd .. |
| 86 cp tsrc/sqlite3.h tsrc/sqlite3ext.h . |
| 87 cp tsrc/shell.c . |
| 88 pwd |
| 89 zip doc/sqlite-amalgamation-$VERSW.zip sqlite3.c sqlite3.h sqlite3ext.h shell.c
sqlite3.def |
| 90 |
| 91 # Construct a tarball of the source tree |
| 92 # |
| 93 echo '***** BUILDING source archive' |
| 94 ORIGIN=`pwd` |
| 95 cd $srcdir |
| 96 chmod +x configure |
| 97 cd .. |
| 98 mv sqlite sqlite-$VERS |
| 99 EXCLUDE=`find sqlite-$VERS -print | egrep '(www/|art/|doc/|contrib/|_FOSSIL_)' |
sed 's,^, --exclude ,'` |
| 100 echo "tar czf $ORIGIN/doc/sqlite-$VERS.tar.gz $EXCLUDE sqlite-$VERS" |
| 101 tar czf $ORIGIN/doc/sqlite-$VERS.tar.gz $EXCLUDE sqlite-$VERS |
| 102 mv sqlite-$VERS sqlite |
| 103 cd $ORIGIN |
| 104 |
| 105 # |
| 106 # Build RPMS (binary) and Source RPM |
| 107 # |
| 108 |
| 109 # Make sure we are properly setup to build RPMs |
| 110 # |
| 111 echo "%HOME %{expand:%%(cd; pwd)}" > $HOME/.rpmmacros |
| 112 echo "%_topdir %{HOME}/rpm" >> $HOME/.rpmmacros |
| 113 mkdir $HOME/rpm |
| 114 mkdir $HOME/rpm/BUILD |
| 115 mkdir $HOME/rpm/SOURCES |
| 116 mkdir $HOME/rpm/RPMS |
| 117 mkdir $HOME/rpm/SRPMS |
| 118 mkdir $HOME/rpm/SPECS |
| 119 |
| 120 # create the spec file from the template |
| 121 sed s/SQLITE_VERSION/$VERS/g $srcdir/spec.template > $HOME/rpm/SPECS/sqlite.spec |
| 122 |
| 123 # copy the source tarball to the rpm directory |
| 124 cp doc/sqlite-$VERS.tar.gz $HOME/rpm/SOURCES/. |
| 125 |
| 126 # build all the rpms |
| 127 rpm -ba $HOME/rpm/SPECS/sqlite.spec >& rpm-$vers.log |
| 128 |
| 129 # copy the RPMs into the build directory. |
| 130 mv $HOME/rpm/RPMS/i386/sqlite*-$vers*.rpm doc |
| 131 mv $HOME/rpm/SRPMS/sqlite-$vers*.rpm doc |
| 132 |
| 133 # Build the website |
| 134 # |
| 135 #cp $srcdir/../historical/* doc |
| 136 #make doc |
| 137 #cd doc |
| 138 #chmod 644 *.gz |
OLD | NEW |