12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- #!/bin/sh
- #
- # This script is used to compile SQLite into a DLL.
- #
- # Two separate DLLs are generated. "sqlite3.dll" is the core
- # library. "tclsqlite3.dll" contains the TCL bindings and is the
- # library that is loaded into TCL in order to run SQLite.
- #
- make sqlite3.c
- PATH=$PATH:/opt/mingw/bin
- TCLDIR=/home/drh/tcltk/846/win/846win
- TCLSTUBLIB=$TCLDIR/libtcl84stub.a
- OPTS='-DUSE_TCL_STUBS=1 -DBUILD_sqlite=1 -DSQLITE_OS_WIN=1'
- OPTS="$OPTS -DSQLITE_THREADSAFE=1"
- OPTS="$OPTS -DSQLITE_ENABLE_FTS3=1"
- OPTS="$OPTS -DSQLITE_ENABLE_RTREE=1"
- OPTS="$OPTS -DSQLITE_ENABLE_COLUMN_METADATA=1"
- CC="i386-mingw32msvc-gcc -Os $OPTS -Itsrc -I$TCLDIR"
- NM="i386-mingw32msvc-nm"
- CMD="$CC -c sqlite3.c"
- echo $CMD
- $CMD
- CMD="$CC -c tclsqlite3.c"
- echo $CMD
- $CMD
- echo 'EXPORTS' >tclsqlite3.def
- $NM tclsqlite3.o | grep ' T ' >temp1
- grep '_Init$' temp1 >temp2
- grep '_SafeInit$' temp1 >>temp2
- grep ' T _sqlite3_' temp1 >>temp2
- echo 'EXPORTS' >tclsqlite3.def
- sed 's/^.* T _//' temp2 | sort | uniq >>tclsqlite3.def
- i386-mingw32msvc-dllwrap \
- --def tclsqlite3.def -v --export-all \
- --driver-name i386-mingw32msvc-gcc \
- --dlltool-name i386-mingw32msvc-dlltool \
- --as i386-mingw32msvc-as \
- --target i386-mingw32 \
- -dllname tclsqlite3.dll -lmsvcrt tclsqlite3.o $TCLSTUBLIB
- $NM sqlite3.o | grep ' T ' >temp1
- echo 'EXPORTS' >sqlite3.def
- grep ' _sqlite3_' temp1 | sed 's/^.* _//' >>sqlite3.def
- i386-mingw32msvc-dllwrap \
- --def sqlite3.def -v --export-all \
- --driver-name i386-mingw32msvc-gcc \
- --dlltool-name i386-mingw32msvc-dlltool \
- --as i386-mingw32msvc-as \
- --target i386-mingw32 \
- -dllname sqlite3.dll -lmsvcrt sqlite3.o
|