Small. Fast. Reliable.
Choose any three.
*** 124,130 ****
  (http://www.sqlite.org/sqlitedll.zip) for MS Visual C++
  is achieved by the following command:
  
! 	LIB /DEF:sqlite.def
  
  This makes the files sqlite.lib and sqlite.exp files.
  The sqlite.lib can then be used to link your programs
--- 124,130 ----
  (http://www.sqlite.org/sqlitedll.zip) for MS Visual C++
  is achieved by the following command:
  
! LIB /DEF:sqlite.def
  
  This makes the files sqlite.lib and sqlite.exp files.
  The sqlite.lib can then be used to link your programs
***************
*** 194,196 ****
--- 194,274 ----
  Now you should find a “.libs” directory in your build directory containing sqlite shared object files, like libsqlite.so.
  
  Source (somwhat altered): http://www.kecher.de/howtos/SQLite-JDBC-Howto.html
+ 
+ =====
+ *Win32 recompile with mingw32/msys*
+ 
+ 
+ 1. Download mingw from http://prdownloads.sourceforge.net/mingw/MinGW-2.0.0-3.exe
+ 
+ 2. Download msys from http://prdownloads.sourceforge.net/mingw/MSYS-1.0.8.exe
+ 
+ 3. Install mingw to c:\mingw and msys to c:\mingw
+ 
+ 4. Download the FULL sqlite source (http://www.sqlite.org/sqlite-2.8.0.tar.gz)
+    and extract it into c:\mingw\sqlite
+ 
+ 5. start the msys.bat and cd to /home/drh/sqlite and ./configure with mingw/msys
+ 
+ 6. edit src/os.h, go to ~ line 90 (behind the #ifndef OS_UNIX block) and add
+ 
+    #define OS_WIN 1
+    #define OS_MAC 0
+    #define OS_UNIX 0
+ 
+ 
+ 
+ to the source to force the os type. I don't know why but the os type isn't guessed right and redefined in the os.h... Whatever, force it ;) The defines from the makefile don't work.
+ 
+ 7. call mingw32-make to compile! make isn't used anymore (see http://www.mingw.org/mingwfaq.shtml#faq-mingw32-make.exe)
+ 
+ 
+ 8. create a file called sqlite.def which contains
+ 
+    EXPORTS
+    sqlite_open
+    sqlite_close
+    sqlite_exec
+    sqlite_last_insert_rowid
+    sqlite_error_string
+    sqlite_interrupt
+    sqlite_complete
+    sqlite_busy_handler
+    sqlite_busy_timeout
+    sqlite_get_table
+    sqlite_free_table
+    sqlite_mprintf
+    sqlite_vmprintf
+    sqlite_exec_printf
+    sqlite_exec_vprintf
+    sqlite_get_table_printf
+    sqlite_get_table_vprintf
+    sqlite_freemem
+    sqlite_libversion
+    sqlite_libencoding
+    sqlite_changes
+    sqlite_create_function
+    sqlite_create_aggregate
+    sqlite_function_type
+    sqlite_user_data
+    sqlite_aggregate_context
+    sqlite_aggregate_count
+    sqlite_set_result_string
+    sqlite_set_result_int
+    sqlite_set_result_double
+    sqlite_set_result_error
+    sqliteMalloc
+    sqliteFree
+    sqliteRealloc
+    sqlite_set_authorizer
+    sqlite_trace
+    sqlite_compile
+    sqlite_step
+    sqlite_finalize
+ 
+ 9. dllwrap --dllname sqlite.dll --def sqlite.def *.o
+ (or if this doesn't work, dllwrap --def sqlite.def -v --export-all --driver-name gcc --dlltool-name dlltool --as as --target i386-mingw32 -dllname sqlite.dll -lmsvcrt *.o)
+ 
+ 10. strip sqlite.dll
+ 
+ 11. Ready.