mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-30 19:03:16 +03:00
added winNT cross-compile documentation (CVS 117)
FossilOrigin-Name: 8fc48dd4831dbd58a0c10b043686ea52ca1db6dd
This commit is contained in:
10
Makefile.in
10
Makefile.in
@ -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)
|
||||
|
||||
|
18
manifest
18
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
|
||||
|
@ -1 +1 @@
|
||||
a0246ddfb451801a78c34fde3ad72412323039dc
|
||||
8fc48dd4831dbd58a0c10b043686ea52ca1db6dd
|
@ -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>
|
||||
}
|
||||
|
133
www/crosscompile.tcl
Normal file
133
www/crosscompile.tcl
Normal file
@ -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] {\&} body
|
||||
regsub -all {>} $body {\>} body
|
||||
regsub -all {<} $body {\<} 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>}
|
@ -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>
|
||||
|
||||
|
160
www/mingw.tcl
Normal file
160
www/mingw.tcl
Normal file
@ -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>&1 | tee make.out
|
||||
make install 2>&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>&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>}
|
Reference in New Issue
Block a user