make ruby bindings compile with newer ruby versions ... fix for #217
[rrdtool.git] / WIN32-BUILD-TIPS.txt
index 68b5373..b3fae96 100644 (file)
@@ -1,5 +1,61 @@
-Compiling RRDtool 1.1.x on Win32 with Microsoft Visual C++:
+Compiling RRDtool on Win32 with Microsoft Visual C++:
 ---------------------------------------------------------------
 ---------------------------------------------------------------
+2008-03-12 Stefan Ludewig stefan.ludewig@exitgames.com
+
+Here are step by step instructions for building rrdlib.lib and rrdtool.exe
+version 1.3.5 and newer with Microsoft Visual Studio 2008 (9.0.x).
+
+(1) Download and extract libraries rrdtool depends on:
+
+    - cairo:    http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/cairo_1.8.0-1_win32.zip
+      and       http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/cairo-dev_1.8.0-1_win32.zip
+
+    - glib:     http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.18/glib_2.18.3-1_win32.zip
+      and       http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.18/glib-dev_2.18.3-1_win32.zip
+
+    - libpng:   http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libpng_1.2.32-1_win32.zip
+      and       http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libpng-dev_1.2.32-1_win32.zip
+
+    - libxml2:  http://downloads.sourceforge.net/gnuwin32/libxml2-2.4.12-bin.zip?modtime=1009062000&big_mirror=1
+      and       http://downloads.sourceforge.net/gnuwin32/libxml2-2.4.12-1-lib.zip?modtime=1024783200&big_mirror=1
+
+    - pango:    http://ftp.gnome.org/pub/gnome/binaries/win32/pango/1.22/pango_1.22.2-1_win32.zip
+      and       http://ftp.gnome.org/pub/gnome/binaries/win32/pango/1.22/pango-dev_1.22.2-1_win32.zip
+
+    - zlib: http://www.zlib.net/zlib123-dll.zip
+
+(2) Create a folder named "contrib" next to your rrdtool-folder.
+
+(3) Copy the following folders and files from the downloaded archieves into
+    the contrib-folder, you just created:
+
+    a) The folder "bin" from cairo_1.8.0-1_win32 and the folders "lib" and
+       "include" from cairo-dev_1.8.0-1_win32 into contrib/cairo.
+
+    b) The folder "bin" from glib_2.18.3-1_win32 and the folders "lib" and
+       "include" from glib-dev_2.18.3-1_win32 into contrib/glib
+
+    c) The folder "bin" from libpng_1.2.32-1_win32 and the folders "lib" and
+       "include" from libpng-dev_1.2.32-1_win32 into contrib/libpng
+
+    d) The file "libxml2.dll" from libxml2-2.4.12-bin/bin and the file
+       "libxml2.lib" from libxml2-2.4.12-1-lib\lib into contrib/libxml2/lib and
+       the folder "include" from from libxml2-2.4.12-1-lib into contrib/libxml2
+
+    e) The folder "bin" from pango_1.22.2-1_win32 and the folders "lib" and
+       "include" from pango-dev_1.22.2-1_win32 into contrib/pango
+
+    f) The folders "lib" and "include" and the file "zlib1.dll" into
+       contrib/zlib
+
+(4) Open the Visual Studio 2008 Solution "rrd.sln" in the win32 folder of
+    your rrdtool-folder and build either the project rrdlib (for the
+    rrdtool-library), rrdtool (for the rrdtool-executable depending on the
+    libraray) or the complete solution. A post-build event automatically copies
+    all the dlls, needed by rrdtool, next to the .exe, when you build the
+    executable. These DLLs must be available on all hosts where rrdtool will
+    run.
+
 5/1/05 Tobi
 to help windows deal with the reentrant versions of many unix
 calls link with win32comp.c
 5/1/05 Tobi
 to help windows deal with the reentrant versions of many unix
 calls link with win32comp.c
@@ -95,7 +151,7 @@ and cd to the bindings\perl-shared subdirectory.
 (8) Run vcvars32.bat; this batch file, in your vc98\bin directory will
 set necessary environment options for command line compiling.
 (9) In bindings\perl-shared, run
 (8) Run vcvars32.bat; this batch file, in your vc98\bin directory will
 set necessary environment options for command line compiling.
 (9) In bindings\perl-shared, run
-perl ntmake.pl
+perl ntmake-build
 nmake
 nmake test
 If nmake test succeeds, you are good to go. RRDs.dll is in 
 nmake
 nmake test
 If nmake test succeeds, you are good to go. RRDs.dll is in 
@@ -221,3 +277,115 @@ Tamas Kovacshazy  E-mail: khazy@mit.bme.hu
 WWW: http://www.mit.bme.hu/~khazy
 Technical University of Budapest 
 Department of Measurement and Information Systems
 WWW: http://www.mit.bme.hu/~khazy
 Technical University of Budapest 
 Department of Measurement and Information Systems
+
+
+Compiling RRDtool 1.2.x on Win32 with MingW32 gcc:
+---------------------------------------------------------------
+
+1. Obtain and install the current version of the MingW package.
+
+     http://www.mingw.org/download.shtml
+
+   In the MinGW set you will need the gcc and binutils as a minimum.
+
+2. Obtain either of the following awk versions and install in a directory
+   on your System Path:
+
+   - awk.exe
+
+     http://cm.bell-labs.com/cm/cs/awkbook/index.html
+
+     Note: This version has no dependencies to other libs.
+
+   - gawk.exe  (GnuWin32 version)
+
+     http://gnuwin32.sourceforge.net/packages/gawk.htm
+
+     Note: Also fetch the dependant libraries for it from the same page.
+
+3. If you plan to create a 'distribution' release of the RRD Tools, the
+   Makefile.Win32 will copy all the needed files to an output directory and
+   then zip the entire directory. A suitable zip utility can be obtained here:
+
+     http://www.info-zip.org/
+
+   Install in a directory on your System Path.
+
+4. Obtain the following libraries, ideally install them all under a common
+   directory:
+
+   = zlib
+
+     http://oss.oetiker.ch/rrdtool/pub/libs/zlib-1.2.3.tar.gz
+     http://www.zlib.net/
+
+   = libpng
+
+     http://oss.oetiker.ch/rrdtool/pub/libs/libpng-1.2.12.tar.gz
+     http://libpng.sourceforge.net/
+
+   = freetype
+
+     http://oss.oetiker.ch/rrdtool/pub/libs/freetype-2.2.1.tar.gz
+     http://freetype.sourceforge.net/index2.html
+   = libart_lgpl
+
+     http://oss.oetiker.ch/rrdtool/pub/libs/libart_lgpl-2.3.17.tar.gz
+     http://www.levien.com/libart/
+
+     Note: libart_lgpl needs a special tweak because the archive contains
+     only the base directory, but the libart headers are usually included with
+     a directory prefix; therefore create a subfolder 'libart_lgpl' and move
+     all files into this subfolder.
+
+5. Set up for DOS environment.
+
+   Add MingW\bin and MSYS\bin directories to your System path.
+
+   If the libraries share a common directory set the following environment var:
+
+     set LIBBASE=<shared director>
+     e.g set LIBBASE=C:\Libraries
+
+   If the libraries are scattered, set the following environment vers:
+
+     set ZLIBSDK=<path to zlib>
+     e.g set ZLIBSDK=C:\mytest\zlib-1.2.3
+     set LIBPNG=<path to libpng>
+     set LIBFT2=<path to freetype>
+     set LIBART=<path to libart>
+
+   If using the Gnu Awk (gawk.exe), edit the Makefile.Win32 and change the line:
+
+      AWK      = awk
+
+   to
+
+      AWK      = gawk
+
+6. Compile the project.
+
+   All dependent libs are statically linked in. This has the benefit that the
+   binaries do not depend on any other DLLs.
+   In order to build the static freetype lib enter the freetype base directory
+   and type 'make'. If everything is fine a message appears that gcc is detected,
+   and that you should again type 'make'. Follow that in order to build freetype.
+   All other libs are build from the sources with the RRDTool Makefile.Win32.
+
+   Switch to the RRDTOOL .\src directory. Then:
+
+      make -f Makefile.Win32 help
+
+   to see the build options, or
+
+      make -f Makefile.Win32 all
+
+   should build the entire package.
+
+6. Happy Graphing!
+
+
+written by normw & gk.
+
+