use long int format
[rrdtool.git] / WIN32-BUILD-TIPS.txt
index 68b5373..c80acc8 100644 (file)
@@ -1,5 +1,55 @@
-Compiling RRDtool 1.1.x on Win32 with Microsoft Visual C++:
+Compiling RRDtool on Win32 with Microsoft Visual C++:
 ---------------------------------------------------------------
 ---------------------------------------------------------------
+2010-06-04 Chris Larsen clarsen@euphoriaaudio.com
+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) Create a folder named "contrib" in the directory where this text file is located.
+
+(2) Download the following libraries that rrdtool depends on into this folder:
+
+    - cairo:    http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/cairo_1.8.10-3_win32.zip 
+      and       http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/cairo-dev_1.8.10-3_win32.zip
+
+    - glib:     http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.24/glib_2.24.1-1_win32.zip
+      and       http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.24/glib-dev_2.24.1-1_win32.zip
+
+    - libpng:   http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libpng_1.4.0-1_win32.zip
+      and       http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libpng-dev_1.4.0-1_win32.zip
+
+    - libxml2:  http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libxml2_2.7.7-1_win32.zip
+      and       http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/libxml2-dev_2.7.7-1_win32.zip
+
+    - pango:    http://ftp.gnome.org/pub/gnome/binaries/win32/pango/1.28/pango_1.28.0-1_win32.zip
+      and       http://ftp.gnome.org/pub/gnome/binaries/win32/pango/1.28/pango-dev_1.28.0-1_win32.zip
+
+    - zlib:     http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/zlib_1.2.4-2_win32.zip
+      and       http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/zlib-dev_1.2.4-2_win32.zip
+      
+    - fontconfig:  http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/fontconfig_2.8.0-2_win32.zip
+    
+    - freetype: http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/freetype_2.3.12-1_win32.zip
+    
+    - expat:    http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/expat_2.0.1-1_win32.zip
+
+(3) Extract all of the .zip files into the contrib folder. Do not extract each library into it's own
+    directory. We want all of the files merged into a structure consisting of "bin, include, lib..."
+    etc folders.
+
+(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.
+
+6/10/10 Chris
+Updated project to include latest files and libraries. 
+Builds static or dynamic rrdlib
+
 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 +145,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 +271,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.
+
+