Changeset: 0c30c1d99c78 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=0c30c1d99c78
Modified Files:
buildtools/doc/windowsbuild.rst
Branch: Oct2014
Log Message:
Updated Windows build comments.
diffs (244 lines):
diff --git a/buildtools/doc/windowsbuild.rst b/buildtools/doc/windowsbuild.rst
--- a/buildtools/doc/windowsbuild.rst
+++ b/buildtools/doc/windowsbuild.rst
@@ -300,21 +300,21 @@ stable version (1.0.1j). Follow the ins
``enable-static-engine`` as described in the instructions.
.. The actual commands used were::
- perl Configure VC-WIN32 no-asm enable-static-engine
--prefix=C:\Libraries\openssl-1.0.1b.win32
+ perl Configure VC-WIN32 no-asm enable-static-engine
--prefix=C:\Libraries\openssl-1.0.1j.win32
ms\do_ms.bat
nmake /f ms\ntdll.mak
nmake /f ms\ntdll.mak install
and::
- perl Configure VC-WIN64A enable-static-engine
--prefix=C:\Libraries\openssl-1.0.1b.win64
+ perl Configure VC-WIN64A enable-static-engine
--prefix=C:\Libraries\openssl-1.0.1j.win64
ms\do_win64a
nmake /f ms\ntdll.mak
nmake /f ms\ntdll.mak install
- For the debug versions, use debug-VC-WIN32 and debug-VC-WIN64A and
- edit the file ``ms/ntdll.mak`` to add a ``d`` to the definitions of
- ``O_SSL``, ``O_CRYPTO``, ``L_SSL``, and ``L_CRYPTO`` before
- building.
+ For the debug versions, use ``debug-VC-WIN32`` and
+ ``debug-VC-WIN64A`` and edit the file ``ms/ntdll.mak`` to add a
+ ``d`` to the definitions of ``O_SSL``, ``O_CRYPTO``, ``L_SSL``, and
+ ``L_CRYPTO`` before building.
-Fix the ``LIBOPENSSL`` definition in ``NT\winrules.msc`` so that it
+Fix the ``LIBOPENSSL`` definition in ``NT\rules.msc`` so that it
refers to the location where you installed the library and call
``nmake`` with the extra parameter ``HAVE_OPENSSL=1``.
@@ -328,7 +328,7 @@ Libxml2__ is the XML C parser and toolki
The home of the library is http://xmlsoft.org/. But Windows binaries
can be gotten from http://www.zlatkovic.com/libxml.en.html. Click on
Win32 Binaries on the right, and download libxml2, iconv, and zlib.
-Install these in e.g. ``C:\``.
+Install these in e.g. ``C:\Libraries``.
Note that we hit a bug in version 2.6.31 of libxml2. See the
bugreport__. Use version 2.6.30 or 2.6.32 or later.
@@ -339,10 +339,10 @@ optional prerequisites iconv_ and zlib_,
Run the following commands in the ``win32`` subfolder, substituting
the correct locations for the iconv and zlib libraries::
- cscript configure.js compiler=msvc prefix=C:\libxml2-2.7.8.win64 ^
- include=C:\iconv-1.11.win64\include;C:\zlib-1.2.5.win64\include ^
- lib=C:\iconv-1.11.win64\lib;C:\zlib-1.2.5.win64\lib iconv=yes zlib=yes ^
- vcmanifest=yes
+ cscript configure.js compiler=msvc prefix=C:\Libraries\libxml2-2.9.2.win64 ^
+
include=C:\Libraries\iconv-1.11.1.win64\include;C:\Libraries\zlib-1.2.8.win64\include
^
+ lib=C:\Libraries\iconv-1.11.1.win64\lib;C:\Libraries\zlib-1.2.8.win64\lib ^
+ iconv=yes zlib=yes vcmanifest=yes
nmake /f Makefile.msvc
nmake /f Makefile.msvc install
@@ -353,6 +353,9 @@ older compiler, remove the line that con
Visual Studio 2010 will give an error with this option, and Visual
Studio 2008 a warning.
+In the 2.9.2 there is another problem. In the ``win32\configure.js``
+file near the top, change ``configure.in`` to ``configure.ac``.
+
.. For a debug version, add ``debug=yes cruntime=/MDd`` to the
``cscript`` command and edit the file ``Makefile.msvc`` to add a
``d`` to the definitions of ``XML_SO``, ``XML_IMP``, ``XML_A``, and
@@ -407,7 +410,7 @@ in the instructions.
autogen.bat
nmake /f makefile.vc MSVC_VER=1600
-.. On Windows64, add WIN64=YES to the nmake command line.
+.. On Windows64, add ``WIN64=YES`` to the nmake command line.
.. For a debug build, add ``BUILD_DEBUG=YES`` to the ``nmake`` command
line.
@@ -436,18 +439,18 @@ of the ``OBJ`` macro and to the list of
command for ``$(CDLLNAME)`` in ``src\Makefile.vc``.
After this, install the library somewhere, e.g. in
-``C:\geos-3.4.2.win32``::
+``C:\Libraries\geos-3.4.2.win32``::
- mkdir C:\geos-3.4.2.win32
- mkdir C:\geos-3.4.2.win32\lib
- mkdir C:\geos-3.4.2.win32\bin
- mkdir C:\geos-3.4.2.win32\include
- mkdir C:\geos-3.4.2.win32\include\geos
- copy src\geos_c_i.lib C:\geos-3.4.2.win32\lib
- copy src\geos_c.dll C:\geos-3.4.2.win32\bin
- copy include C:\geos-3.4.2.win32\include
- copy include\geos C:\geos-3.4.2.win32\include\geos
- copy capi\geos_c.h C:\geos-3.4.2.win32\include
+ mkdir C:\Libraries\geos-3.4.2.win32
+ mkdir C:\Libraries\geos-3.4.2.win32\lib
+ mkdir C:\Libraries\geos-3.4.2.win32\bin
+ mkdir C:\Libraries\geos-3.4.2.win32\include
+ mkdir C:\Libraries\geos-3.4.2.win32\include\geos
+ copy src\geos_c_i.lib C:\Libraries\geos-3.4.2.win32\lib
+ copy src\geos_c.dll C:\Libraries\geos-3.4.2.win32\bin
+ copy include C:\Libraries\geos-3.4.2.win32\include
+ copy include\geos C:\Libraries\geos-3.4.2.win32\include\geos
+ copy capi\geos_c.h C:\Libraries\geos-3.4.2.win32\include
__ http://geos.refractions.net/
__ http://trac.osgeo.org/geos/wiki/BuildingOnWindowsWithNMake
@@ -467,7 +470,7 @@ The home of the program and library is
http://www.gnu.org/software/libiconv/, but Windows binaries can be
gotten from the same site as the libxml2 library:
http://www.zlatkovic.com/libxml.en.html. Click on Win32 Binaries on
-the right, and download iconv. Install in e.g. ``C:\``. Note that
+the right, and download iconv. Install in e.g. ``C:\Libraries\``. Note that
these binaries are quite old (libiconv-1.9.2, last I looked).
On Windows64 you will have to compile iconv yourself. Get the source
@@ -477,10 +480,14 @@ with Visual Studio but require MinGW ins
is no support for Windows64. In other words, get the latest 1.11
release.
+When compiling with Visual Studio 12.0, delete the file
+``windows\stdbool.h`` since this version of VS includes its own copy
+(older versions didn't).
+
Build using the commands::
- nmake /f Makefile.msvc NO_NLS=1 DLL=1 MFLAGS=-MD PREFIX=C:\iconv-1.11.win64
- nmake /f Makefile.msvc NO_NLS=1 DLL=1 MFLAGS=-MD PREFIX=C:\iconv-1.11.win64
install
+ nmake /f Makefile.msvc NO_NLS=1 DLL=1 MFLAGS=-MD
PREFIX=C:\Libraries\iconv-1.11.1.win64
IIPREFIX=C:\\Libraries\\iconv-1.11.1.win64
+ nmake /f Makefile.msvc NO_NLS=1 DLL=1 MFLAGS=-MD
PREFIX=C:\Libraries\iconv-1.11.1.win64
IIPREFIX=C:\\Libraries\\iconv-1.11.1.win64 install
.. Before the install, run the commands::
cd lib
@@ -489,9 +496,12 @@ Build using the commands::
mt /nologo /manifest charset.dll.manifest /outputresource:charset.dll;2
cd ..\..
-Fix the ``ICONV`` definitions in ``buildtools\conf\winrules.msc`` so
-that they refer to the location where you installed the library and
-call ``nmake`` with the extra parameter ``HAVE_ICONV=1``.
+.. For the debug version, use options ``MFLAGS=-MDd DEBUG=1`` and
+ change the ``Makefile.msvc`` files to include a ``d`` for the DLLs.
+
+Fix the ``ICONV`` definitions in ``NT\rules.msc`` so that they refer
+to the location where you installed the library and call ``nmake``
+with the extra parameter ``HAVE_ICONV=1``.
__ http://www.gnu.org/software/libiconv/
__ http://www.gnu.org/software/libiconv/#downloading
@@ -506,29 +516,24 @@ MonetDB and the iconv library. The home
http://www.zlib.net/, but Windows binaries can be gotten from the same
site as the libxml2 library: http://www.zlatkovic.com/libxml.en.html.
Click on Win32 Binaries on the right, and download zlib. Install in
-e.g. ``C:\``. Note that the at the time of writing, the precompiled
-version lags behind: it is version 1.2.3, whereas 1.2.5 is current.
+e.g. ``C:\Libraries\``. Note that the at the time of writing, the precompiled
+version lags behind: it is version 1.2.3, whereas 1.2.8 is current.
On Windows64 you will have to compile zlib yourself. Get the source
-from the `zlib website`__ and extract somewhere. Then compile using
-(skip the first line if you have already set up your 64 bit build
-environment for Visual Studio)
+from the `zlib website`__ and extract somewhere. Then compile using::
-::
-
- call "C:\Program Files (x86)\Microsoft Visual Studio
9.0\VC\bin\amd64\vcvarsamd64.bat"
nmake /f win32\Makefile.msc OBJA=inffast.obj
Create the folder where you want to install the binaries,
-e.g. ``C:\zlib-1.2.5.win64``, and the subfolders ``bin``, ``include``,
-and ``lib``. Copy the files ``zconf.h`` and ``zlib.h`` to the newly
-created ``include`` folder. Copy the file ``zdll.lib`` to the new
-``lib`` folder, and copy the file ``zlib1.dll`` to the new ``bin``
-folder.
+e.g. ``C:\Libraries\zlib-1.2.8.win64``, and the subfolders ``bin``,
+``include``, and ``lib``. Copy the files ``zconf.h`` and ``zlib.h``
+to the newly created ``include`` folder. Copy the file ``zdll.lib``
+to the new ``lib`` folder, and copy the file ``zlib1.dll`` to the new
+``bin`` folder.
-Fix the ``LIBZ`` definitions in ``buildtools\conf\winrules.msc`` so
-that they refer to the location where you installed the library and
-call ``nmake`` with the extra parameter ``HAVE_LIBZ=1``.
+Fix the ``LIBZ`` definitions in ``NT\rules.msc`` so that they refer to
+the location where you installed the library and call ``nmake`` with
+the extra parameter ``HAVE_LIBZ=1``.
__ http://www.zlib.net/
__ http://www.zlib.net/
@@ -618,7 +623,7 @@ command for ``lib`` in ``makefile.msc``.
After this, compile using ``nmake /f makefile.msc`` and copy the files
``bzlib.h``, ``libbz2.dll``, and ``libbz2.lib`` to a location where
the MonetDB build process can find them,
-e.g. ``C:\bzip2-1.0.5.win32``.
+e.g. ``C:\Libraries\bzip2-1.0.5.win32``.
.. Before copying the files, run the command::
mt /nologo /manifest libbz2.dll.manifest /Outputresource:libbz2.dll;2
@@ -628,12 +633,30 @@ e.g. ``C:\bzip2-1.0.5.win32``.
occurences of ``libbz2.dll`` and ``libbz2.lib`` to ``libbz2d.dll``
and ``libbz2d.lib``.
-Fix the ``LIBBZ2`` definitions in ``buildtools\conf\winrules.msc`` so
-that they refer to the location where you installed the library and
-call ``nmake`` with the extra parameter ``HAVE_LIBBZ2=1``.
+Fix the ``LIBBZ2`` definitions in ``NT\rules.msc`` so that they refer
+to the location where you installed the library and call ``nmake``
+with the extra parameter ``HAVE_LIBBZ2=1``.
__ http://www.bzip.org/
+Libatomic_ops
+-------------
+
+`Atomic Ops`__ is a library that provides semi-portable access to
+hardware-provided atomic memory update operations on a number of
+architectures. We optionally uses this to implement thread-safe
+access to a number of variables and for the implementation of locks.
+
+To install, it suffices to copy the file ``src\atomic_ops.h`` and the
+folder ``src\atomic_ops`` to the installation location in
+e.g. ``C:\Libraries``.
+
+Fix the ``LIBATOMIC_OPS`` definition in ``NT\rules.msc`` so that it
+refers to the location where you installed the header files and call
+``nmake`` with the extra parameter ``HAVE_ATOMIC_OPS=1``.
+
+__ https://github.com/ivmai/libatomic_ops
+
Perl
----
@@ -856,9 +879,9 @@ parameter may contain something like::
bits=32
LIBPERL=C:\Perl
LIBPCRE=C:\Program Files\PCRE
- LIBICONV=C:\iconv-1.11.win32
- LIBZLIB=C:\zlib-1.2.5.win32
- LIBXML2=C:\libxml2-2.7.8.win32
+ LIBICONV=C:\Libraries\iconv-1.11.win32
+ LIBZLIB=C:\Libraries\zlib-1.2.8.win32
+ LIBXML2=C:\Libraries\libxml2-2.9.2.win32
Building Installers
~~~~~~~~~~~~~~~~~~~
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list