]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
added winNT cross-compile documentation (CVS 117)
authordrh <drh@noemail.net>
Mon, 31 Jul 2000 18:56:15 +0000 (18:56 +0000)
committerdrh <drh@noemail.net>
Mon, 31 Jul 2000 18:56:15 +0000 (18:56 +0000)
FossilOrigin-Name: 8fc48dd4831dbd58a0c10b043686ea52ca1db6dd

Makefile.in
manifest
manifest.uuid
www/changes.tcl
www/crosscompile.tcl [new file with mode: 0644]
www/index.tcl
www/mingw.tcl [new file with mode: 0644]

index 883f50cf431560bf37db2882350fd379798d1142..65187cea4400c2b4ee9518e11bd12478132f147c 100644 (file)
@@ -200,6 +200,12 @@ arch.png:  $(TOP)/www/arch.png
 opcode.html:   $(TOP)/www/opcode.tcl $(TOP)/src/vdbe.c
        tclsh $(TOP)/www/opcode.tcl $(TOP)/src/vdbe.c >opcode.html
 
+crosscompile.html:     $(TOP)/www/crosscompile.tcl
+       tclsh $(TOP)/www/crosscompile.tcl >crosscompile.html
+
+mingw.html:    $(TOP)/www/mingw.tcl
+       tclsh $(TOP)/www/mingw.tcl >mingw.html
+
 
 # Files to be published on the website.
 #
@@ -214,7 +220,9 @@ PUBLISH = \
   arch.html \
   arch.png \
   vdbe.html \
-  c_interface.html
+  c_interface.html \
+  crosscompile.html \
+  mingw.html
 
 website:       $(PUBLISH)
 
index 046773ad5f4aff08890ed4640d0d2d0f740ad4e5..9711b689254c16570887d18ce0bdac690311f73a 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,7 +1,7 @@
-C :-)\s(CVS\s116)
-D 2000-07-31T14:10:47
+C added\swinNT\scross-compile\sdocumentation\s(CVS\s117)
+D 2000-07-31T18:56:15
 F COPYRIGHT 74a8a6531a42e124df07ab5599aad63870fa0bd4
-F Makefile.in 9e6dcd232e594fb599a5e9ba8bcf45e6c6e2fe72
+F Makefile.in 670aa9413cb2cdcded23b328a9e255c845c41a1e
 F README 51f6a4e7408b34afa5bc1c0485f61b6a4efb6958
 F configure 51063d594190fa085f909cefc9427241088bec4f x
 F configure.in a04f02ba61ed09a00e862b4f78b91b06a559e0b5
@@ -59,14 +59,16 @@ F www/arch.fig 4e26e9dca3c49724fc8f554c695ddea9f2413156
 F www/arch.png c4d908b79065a72e7dcf19317f36d1324c550e87
 F www/arch.tcl 4f6a9afecc099a27bba17b4f8cc9561abc15dc40
 F www/c_interface.tcl 29593cf77025bab137b7ba64b9459eb5eb6b4873
-F www/changes.tcl 46fa8c4b4939fedd802ae5cc5a9b3b49e3528052
+F www/changes.tcl 874d7b801a9370326e74cc34f119c62f361cb697
+F www/crosscompile.tcl aa75529712e29c92acc6949404716492317c0d22
 F www/fileformat.tcl f3a70650e942262f8285d53097d48f0b3aa59862
-F www/index.tcl 58c9a33ceba12f5efee446c6b10b4f6523a214e1
+F www/index.tcl 1630a46fbe1e2651b7067fd463a3d4ffcd13ba6b
 F www/lang.tcl 1645e9107d75709be4c6099b643db235bbe0a151
+F www/mingw.tcl c55116a9a950d68e0279054c5aab7687162fd02f
 F www/opcode.tcl cb3a1abf8b7b9be9f3a228d097d6bf8b742c2b6f
 F www/sqlite.tcl 69781eaffb02e17aa4af28b76a2bedb19baa8e9f
 F www/vdbe.tcl bcbfc33bcdd0ebad95eab31286adb9e1bc289520
-P 52c2c50d09f568284d60f5b0715af0759e5f9b22
-R d31874668edbdc4d0a363449cf06ee1d
+P a0246ddfb451801a78c34fde3ad72412323039dc
+R 4435bdfae4e23004f854df39f18c9991
 U drh
-Z 07a8ba4a11f33dc69735485c685e6b81
+Z 6bd32adc8b5b796c01f0b69c7a971591
index 2a6033ab8a95f7fdbf49a4334c4515bf2ad30817..4f202ca6fd7a2aca696972e6182f3638b53fe651 100644 (file)
@@ -1 +1 @@
-a0246ddfb451801a78c34fde3ad72412323039dc
\ No newline at end of file
+8fc48dd4831dbd58a0c10b043686ea52ca1db6dd
\ No newline at end of file
index 481c81fef2e612459d97450a1dcea1b3f0516dc4..d2dd080272a6fca1787e72f2cc021ffe081fa6f0 100644 (file)
@@ -19,6 +19,7 @@ proc chng {date desc} {
 
 chng {2000 July 31} {
 <li>Finish the <a href="vdbe.html">VDBE tutorial</a>.</li>
+<li>Added documentation on compiling to WindowsNT.</li>
 <li>Fix a configuration program for WindowsNT.</li>
 <li>Fix a configuration problem for HPUX.</li>
 }
diff --git a/www/crosscompile.tcl b/www/crosscompile.tcl
new file mode 100644 (file)
index 0000000..49b7e96
--- /dev/null
@@ -0,0 +1,133 @@
+#
+# Run this Tcl script to generate the crosscompile.html file.
+#
+set rcsid {$Id: crosscompile.tcl,v 1.1 2000/07/31 18:56:15 drh Exp $}
+
+puts {<html>
+<head>
+  <title>Notes On How To Compile SQLite Using The MinGW Cross-Compiler</title>
+</head>
+<body bgcolor=white>
+<h1 align=center>
+Notes On How To Compile SQLite Using The MinGW Cross-Compiler
+</h1>}
+puts "<p align=center>
+(This page was last modified on [lrange $rcsid 3 4] GMT)
+</p>"
+
+puts {
+<p><a href="http://www.mingw.org/">MinGW</a> or
+<a href="http://www.mingw.org/">Minimalist GNU For Windows</a>
+is a version of the popular GCC compiler that build Win95/Win98/WinNT
+binaries.  See the website for details.</p>
+
+<p>This page describes how you can use MinGW configured as a
+cross-compiler running under RedHat 6.0 Linux to generate a
+binary for SQLite that runs under WinNT.</p>
+}
+
+proc Code {body} {
+  puts {<blockquote><pre>}
+  regsub -all {&} [string trim $body] {\&amp;} body
+  regsub -all {>} $body {\&gt;} body
+  regsub -all {<} $body {\&lt;} body
+  regsub -all {\(\(\(} $body {<font color="#00671f"><u>} body
+  regsub -all {\)\)\)} $body {</u></font>} body
+  puts $body
+  puts {</pre></blockquote>}
+}
+
+puts {
+<p>Here are the steps:</p>
+
+<ol>
+<li>
+<p>Get a copy of the MinGW compiler and all
+its associated tools that run under Linux.  No binary versions of
+MinGW in this configuration are available for net downloads, as far
+as I know.  You will probably have to download the source code and
+compile it all yourself.
+A <a href="mingw.html">separate bulletin</a> describes how this
+can be done.
+When you are done, make sure the compiler and all its associated tools
+are located somewhere on your PATH environment variable.
+</p>
+</li>
+
+<li>
+<p>
+Download the Win32 port of GDBM from <a href="http://www.roth.net/libs/gdbm/">
+Roth Consulting</a>.  You can FTP a ZIP archive of the sources directly
+from <a href="ftp://ftp.roth.net/pub/ntperl/gdbm/source/Win32_GDBM_Source.zip">
+ftp://ftp.roth.net/pub/ntperl/gdbm/source/Win32_GDBM_Source.zip</a>.
+</p>
+</li>
+
+<li>
+<p>Make a directory and unpack the Win32 port of GDBM.</p>
+<blockquote><pre>
+mkdir roth
+cd roth
+unzip ../Win32_GDBM_Source.zip
+</pre></blockquote>
+</li>
+
+<li>
+<p>Manually build the GDBM library as follows:</p>
+<blockquote><pre>
+i386-mingw32-gcc -DWIN32=1 -O2 -c *.c
+i386-mingw32-ar cr libgdbm.a *.o
+i386-mingw32-ranlib libgdbm.a
+cd ..
+</pre></blockquote>
+</li>
+
+<li>
+<p>
+Download the SQLite tarball from 
+<a href="http://www.hwaci.com/sw/sqlite/sqlite.tar.gz">
+http://www.hwaci.com/sw/sqlite/sqlite.tar.gz</a>.
+Unpack the tarball and create a separate directory in which
+to build the executable and library.
+</p>
+<blockquote><pre>
+tar xzf sqlite.tar.gz
+mkdir sqlite-bld
+cd sqlite-bld
+</pre></blockquote>
+</li>
+
+<li>
+<p>
+Create a "hints" file that will tell the SQLite configuration script
+to use the MinGW cross-compiler rather than the native linux compiler.
+The hints file should looks something like this:</p>
+<blockquote><pre>
+cat >mingw.hints <<\END
+  config_TARGET_CC=i386-mingw32-gcc
+  config_TARGET_CFLAGS='-O2'
+  config_TARGET_GDBM_LIBS=../roth/libgdbm.a
+  config_TARGET_GDBM_INC=-I../roth
+  config_TARGET_AR='i386-mingw32-ar cr'
+  config_TARGET_RANLIB=i386-mingw32-ranlib
+  config_TARGET_EXEEXT='.exe'
+END
+</pre></blockquote>
+</li>
+
+<li>
+<p>Configure and build SQLite:</p>
+<blockquote><pre>
+../sqlite/configure --with-hints=./mingw.hints
+make
+</pre></blockquote>
+</li>
+</ol>
+}
+puts {
+<p><hr /></p>
+<p><a href="index.html"><img src="/goback.jpg" border=0 />
+Back to the SQLite Home Page</a>
+</p>
+
+</body></html>}
index b958bc98ffa28ae632443cd7eca23e0128b7a9e7..7ed6b681141e29a6d5df8daa8f7a4fc219298a90 100644 (file)
@@ -1,7 +1,7 @@
 #
 # Run this TCL script to generate HTML for the index.html file.
 #
-set rcsid {$Id: index.tcl,v 1.19 2000/07/28 14:32:51 drh Exp $}
+set rcsid {$Id: index.tcl,v 1.20 2000/07/31 18:56:16 drh Exp $}
 
 puts {<html>
 <head><title>SQLite: An SQL Database Engine Built Atop GDBM</title></head>
@@ -99,6 +99,11 @@ Among the SQL features that SQLite does not currently implement are:</p>
     how the library is put together.</li>
 <li>A description of the <a href="opcode.html">virtual machine</a> that
     SQLite uses to access the database.</li>
+<li>Instructions for building 
+    <a href="crosscompile.html">SQLite for Win98/NT</a> using the
+    MinGW cross-compiler.  There are also instructions on
+    <a href="mingw.html">building MinGW</a> in case you don't already have
+    a copy.</li>
 </ul>
 </p>
 
diff --git a/www/mingw.tcl b/www/mingw.tcl
new file mode 100644 (file)
index 0000000..f5175f3
--- /dev/null
@@ -0,0 +1,160 @@
+#
+# Run this Tcl script to generate the crosscompile.html file.
+#
+set rcsid {$Id: mingw.tcl,v 1.1 2000/07/31 18:56:16 drh Exp $}
+
+puts {<html>
+<head>
+  <title>Notes On How To Build MinGW As A Cross-Compiler</title>
+</head>
+<body bgcolor=white>
+<h1 align=center>
+Notes On How To Build MinGW As A Cross-Compiler
+</h1>}
+puts "<p align=center>
+(This page was last modified on [lrange $rcsid 3 4] GMT)
+</p>"
+
+puts {
+<p><a href="http://www.mingw.org/">MinGW</a> or
+<a href="http://www.mingw.org/">Minimalist GNU For Windows</a>
+is a version of the popular GCC compiler that build Win95/Win98/WinNT
+binaries.  See the website for details.</p>
+
+<p>This page describes how you can build MinGW 
+from sources as a cross-compiler
+running under Linux.  Doing so will allow you to construct
+WinNT binaries from the comfort and convenience of your
+Unix desktop.</p>
+}
+
+proc Link {path {file {}}} {
+  if {$file!=""} {
+    set path $path/$file
+  } else {
+    set file $path
+  }
+  puts "<a href=\"$path\">$file</a>"
+}
+
+puts {
+<p>Here are the steps:</p>
+
+<ol>
+<li>
+<p>Get a copy of source code.  You will need the binutils, the
+compiler, and the MinGW runtime.  Each are available separately.
+As of this writing, Mumit Khan has collected everything you need
+together in one FTP site:
+}
+set ftpsite \
+  ftp://ftp.nanotech.wisc.edu/pub/khan/gnu-win32/mingw32/snapshots/gcc-2.95.2-1
+Link $ftpsite
+puts {
+The three files you will need are:</p>
+<ul>
+<li>}
+Link $ftpsite binutils-19990818-1-src.tar.gz
+puts </li><li>
+Link $ftpsite gcc-2.95.2-1-src.tar.gz
+puts </li><li>
+Link $ftpsite mingw-20000203.zip
+puts {</li>
+</ul>
+
+<p>Put all the downloads in a directory out of the way.  The sequel
+will assume all downloads are in a directory named
+<b>~/mingw/download</b>.</p>
+</li>
+
+<li>
+<p>
+Create a directory in which to install the new compiler suite and make
+the new directory writable.
+Depending on what directory you choose, you might need to become
+root.  The example shell commands that follow
+will assume the installation directory is
+<b>/opt/mingw</b> and that your user ID is <b>drh</b>.</p>
+<blockquote><pre>
+su
+mkdir /opt/mingw
+chown drh /opt/mingw
+exit
+</pre></blockquote>
+</li>
+
+<li>
+<p>Unpack the source tarballs into a separate directory.</p>
+<blockquote><pre>
+mkdir ~/mingw/src
+cd ~/mingw/src
+tar xzf ../download/binutils-*.tar.gz
+tar xzf ../download/gcc-*.tar.gz
+unzip ../download/mingw-*.zip
+</pre></blockquote>
+</li>
+
+<li>
+<p>Create a directory in which to put all the build products.</p>
+<blockquote><pre>
+mkdir ~/mingw/bld
+</pre></blockquote>
+</li>
+
+<li>
+<p>Configure and build binutils and add the results to your PATH.</p>
+<blockquote><pre>
+mkdir ~/mingw/bld/binutils
+cd ~/mingw/bld/binutils
+../../src/binutils/configure --prefix=/opt/mingw --target=i386-mingw32 -v
+make 2&gt;&amp;1 | tee make.out
+make install 2&gt;&amp;1 | tee make-install.out
+export PATH=$PATH:/opt/mingw/bin
+</pre></blockquote>
+</li>
+
+<li>
+<p>Manually copy the runtime include files into the installation directory
+before trying to build the compiler.</p>
+<blockquote><pre>
+mkdir /opt/mingw/i386-mingw32/include
+cd ~/mingw/src/mingw-runtime*/mingw/include
+cp -r * /opt/mingw/i386-mingw32/include
+</pre></blockquote>
+</li>
+
+<li>
+<p>Configure and build the compiler</p>
+<blockquote><pre>
+mkdir ~/mingw/bld/gcc
+cd ~/mingw/bld/gcc
+../../src/gcc-*/configure --prefix=/opt/mingw --target=i386-mingw32 -v
+cd gcc
+make installdirs
+cd ..
+make 2&gt;&amp;1 | tee make.out
+make install
+</pre></blockquote>
+</li>
+
+<li>
+<p>Configure and build the MinGW runtime</p>
+<blockquote><pre>
+mkdir ~/mingw/bld/runtime
+cd ~/mingw/bld/runtime
+../../src/mingw-runtime*/configure --prefix=/opt/mingw --target=i386-mingw32 -v
+make install-target-w32api
+make install
+</pre></blockquote>
+</li>
+</ol>
+
+<p>And you are done...</p>
+}
+puts {
+<p><hr /></p>
+<p><a href="index.html"><img src="/goback.jpg" border=0 />
+Back to the SQLite Home Page</a>
+</p>
+
+</body></html>}