diff --git a/Makefile.in b/Makefile.in index 883f50cf43..65187cea44 100644 --- a/Makefile.in +++ b/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) diff --git a/manifest b/manifest index 046773ad5f..9711b68925 100644 --- 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 diff --git a/manifest.uuid b/manifest.uuid index 2a6033ab8a..4f202ca6fd 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -a0246ddfb451801a78c34fde3ad72412323039dc \ No newline at end of file +8fc48dd4831dbd58a0c10b043686ea52ca1db6dd \ No newline at end of file diff --git a/www/changes.tcl b/www/changes.tcl index 481c81fef2..d2dd080272 100644 --- a/www/changes.tcl +++ b/www/changes.tcl @@ -19,6 +19,7 @@ proc chng {date desc} { chng {2000 July 31} {
+(This page was last modified on [lrange $rcsid 3 4] GMT) +
" + +puts { +MinGW or +Minimalist GNU For Windows +is a version of the popular GCC compiler that build Win95/Win98/WinNT +binaries. See the website for details.
+ +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.
+} + +proc Code {body} { + puts {} +} + +puts { +} + regsub -all {&} [string trim $body] {\&} body + regsub -all {>} $body {\>} body + regsub -all {<} $body {\<} body + regsub -all {\(\(\(} $body {} body + regsub -all {\)\)\)} $body {} body + puts $body + puts {
Here are the steps:
+ +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 separate bulletin 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. +
++Download the Win32 port of GDBM from +Roth Consulting. You can FTP a ZIP archive of the sources directly +from +ftp://ftp.roth.net/pub/ntperl/gdbm/source/Win32_GDBM_Source.zip. +
+Make a directory and unpack the Win32 port of GDBM.
+++mkdir roth +cd roth +unzip ../Win32_GDBM_Source.zip +
Manually build the GDBM library as follows:
+++i386-mingw32-gcc -DWIN32=1 -O2 -c *.c +i386-mingw32-ar cr libgdbm.a *.o +i386-mingw32-ranlib libgdbm.a +cd .. +
+Download the SQLite tarball from + +http://www.hwaci.com/sw/sqlite/sqlite.tar.gz. +Unpack the tarball and create a separate directory in which +to build the executable and library. +
+++tar xzf sqlite.tar.gz +mkdir sqlite-bld +cd sqlite-bld +
+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:
+++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 +
Configure and build SQLite:
+++../sqlite/configure --with-hints=./mingw.hints +make +
+Back to the SQLite Home Page
+
+(This page was last modified on [lrange $rcsid 3 4] GMT) +
" + +puts { +MinGW or +Minimalist GNU For Windows +is a version of the popular GCC compiler that build Win95/Win98/WinNT +binaries. See the website for details.
+ +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.
+} + +proc Link {path {file {}}} { + if {$file!=""} { + set path $path/$file + } else { + set file $path + } + puts "$file" +} + +puts { +Here are the steps:
+ +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:
+Put all the downloads in a directory out of the way. The sequel +will assume all downloads are in a directory named +~/mingw/download.
++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 +/opt/mingw and that your user ID is drh.
+++su +mkdir /opt/mingw +chown drh /opt/mingw +exit +
Unpack the source tarballs into a separate directory.
+++mkdir ~/mingw/src +cd ~/mingw/src +tar xzf ../download/binutils-*.tar.gz +tar xzf ../download/gcc-*.tar.gz +unzip ../download/mingw-*.zip +
Create a directory in which to put all the build products.
+++mkdir ~/mingw/bld +
Configure and build binutils and add the results to your PATH.
+++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 +
Manually copy the runtime include files into the installation directory +before trying to build the compiler.
+++mkdir /opt/mingw/i386-mingw32/include +cd ~/mingw/src/mingw-runtime*/mingw/include +cp -r * /opt/mingw/i386-mingw32/include +
Configure and build the compiler
+++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 +
Configure and build the MinGW runtime
+++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 +
And you are done...
+} +puts { +