updated windows build instructions from guenter
[rrdtool.git] / NT-BUILD-TIPS.txt
diff --git a/NT-BUILD-TIPS.txt b/NT-BUILD-TIPS.txt
deleted file mode 100644 (file)
index 68b5373..0000000
+++ /dev/null
@@ -1,223 +0,0 @@
-Compiling RRDtool 1.1.x on Win32 with Microsoft Visual C++:
----------------------------------------------------------------
-5/1/05 Tobi
-to help windows deal with the reentrant versions of many unix
-calls link with win32comp.c
-
-4/10/05 Tobi
-The windows implementation of strftime does not seem to support
-the ISO 8601 week number (%V) I have therfore included the file
-strftime.[ch] which provides strftime_ ... if you compile rrdtool
-with -Dstrftime=_strftime and link strftime.o then you will
-get propper support for %V.
-
-7/29/04 Jake Brutlag
-
-As of Jan 2004, code for libraries utilized by rrdtool 
-(png, libart, freetype, and zlib) is no longer distributed with
-rrdtool. This requires some changes to the compile process on
-Win32. The solution described here is to compile rrdtool to
-link against these libraries dynamically. There is an advantage
-to this approach: namely the rrdtool distribution doesn't have to
-worry about how to compile these libraries on Win32. In theory,
-since others already provide and maintain Win32 binaries for these
-libraries the users don't have to worry about how to compile them
-either. The disadvantage of this approach is that the DLLs for
-these libraries must be available on the hosts where rrdtool will run.
-
-Here are step by step instructions for compiling rrdtool.exe and
-the perl shared library (RRDS.dll) with Microsoft Visual C++ 6.0.
-(1) Download libraries rrdtool depends on from GnuWin32:
-http://gnuwin32.sourceforge.net/
-For freetype, libpng, and zlib download the "Complete Package"; each of
-these will be a self-extracting self-installing executable.
-For libart, download both the "Binaries" and "Developer Files" packages.
-Unfortunately at this time GnuWin32 doesn't provide the "Complete Package"
-installer for libart. Perhaps by the time you are following these
-instructions GnuWin32 will have a "Complete Package" for libart.
-(2) Install the GnuWin32 libraries by running the executables for freetype,
-libpng, and zlib. These instructions and the Visual C++ project files
-distributed with rrdtool assume that you will use the default install
-location: C:\Program Files\GnuWin32. Extract the two zip files for libart,
-libart-2.3.3-bin.zip and libart-2.3.3-1-lib.zip into the GnuWin32 directory;
-the appropriate libart files will be added to the include, lib, and bin
-subdirectories.
-(3) Add C:\Program Files\GnuWin32\bin to the PATH (Control Panel ->
-System -> Advanced -> Environment Variables).
-(4) Start Microsoft Visual C++ 6.0. Load the workspace file, rrdtool.dsw,
-from the src subdirectory of your rrdtool code directory.
-(5) Compile the Release build of the rrdtool project (since rrdtool depends
-on the rrd project, the rrd library will also be compiled). At this
-time, the compile will fail in zconf.h, a zlib header file. The problem
-is a preprocessor directive that loads unistd.h. Open zconf.h in VC++
-(this file is in C:\Program Files\GnuWin32\include) and find the following
-code block:
-
-#if 1           /* HAVE_UNISTD_H -- this line is updated by ./configure */
-#  include <sys/types.h> /* for off_t */
-#  include <unistd.h>    /* for SEEK_* and off_t */
-#  ifdef VMS
-#    include <unixio.h>   /* for off_t */
-#  endif
-#  define z_off_t  off_t
-#endif 
-
-Change it to reads as follows (this is code from zlib-1.1.4):
-
-#if HAVE_UNISTD_H
-#  include <sys/types.h> /* for off_t */
-#  include <unistd.h>    /* for SEEK_* and off_t */
-#  ifdef VMS
-#    include <unixio.h>   /* for off_t */
-#  endif
-#  define z_off_t  off_t
-#endif 
-
-Note that it is actually just a one line change. Save the file and
-recompile rrdtool. By the time you are following these instructions
-this issue with zconf.h may be resolved.
-(6) At this point, you can run the executable rrdtool.exe in the
-src\toolrelease subdirectory. Note that if you wish to run rrdtool
-on other machines, you will need the following DLLs installed (on the
-path) on those machines:
-zlib1.dll
-libpng12.dll
-libart_lgpl.dll
-freetype6.dll
-msvcrt.dll
-The names of the first four DLLs might vary from what is listed here
-depending on the versions of the packages you downloaded from GnuWin32.
-The fifth DLL, msvcrt.dll, is a system DLL for most versions of Windows.
-If you are running on old version of Windows, you can install/upgrade to
-IE4.0 to get this DLL.
-(7) To compile the perl-shared library, open a Command Prompt (DOS box)
-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
-perl ntmake.pl
-nmake
-nmake test
-If nmake test succeeds, you are good to go. RRDs.dll is in 
-blib\arch\auto\RRDs. If you plan to install via the Active State ppm
-tool, tar and gzip the blib directory. You can use the RRDs.ppd file
-in bindings\perl-shared directory. Remember that as in the case of
-rrdtool.exe you will need the DLLs listed in (6) on the machine where
-you are going to use RRDs.dll.
-
-Microsoft Visual C++ 7.1 (.NET 2003):
-
-Unfortunately, this is more difficult than with VC++ 6.0. The problem
-is that by default the C runtime dll for VC++ 7.1 is msvcr71.dll rather
-than msvcrt.dll. The GnuWin32 library binaries are all compiled
-to use msvcrt.dll and you can't mix msvcr71.dll and msvcrt.dll in the
-same process. One option is to download the source code for the libraries
-(available from http://gnuwin32.sourceforge.net) recompile them with
-VC++ 7.l. Then all the components will use msvcr71.dll. Once you are
-going to go this route, you can also use static multi-threaded libraries
-and use static linking between rrdtool (or RRDs.dll) and its dependencies.
-
-To use the GnuWin32 library binaries, you need to trick VC++ 7.1 into
-compiling rrdtool to use the older msvcrt.dll. Follow steps (1) - (3)
-as above, then:
-(4) Obtain a different version of the msvcrt.lib import library that
-is compatible with vc7 and points to msvcrt.dll:
-msvcrtlib_for_vc7.zip from http://xchat.org/win32/testing
-Backup msvcrt.lib in your vc7\lib directory 
-(\Program Files\Microsoft Visual Studio .NET 2003\vc7\lib)
-Then extract the msvcrt.lib from the zip file into the vc7\lib directory.
-WARNING: Use this msvcrt.lib at your own risk! This is not a Microsoft
-supplied file nor a file supported by anyone associated with rrdtool.
-(5) Start Microsoft Visual C++ 7.1. Load the solution file, rrdtool.sln,
-from the src subdirectory of your rrdtool code directory. Edit zconf.h,
-as needed, as described under (5) above. Compile the release build of
-the rrdtool project.
-Proceed with steps (6) - (9) as above, if you are using/picking up
-the wrong msvcrt.lib import library then nmake test for perl-shared
-will fail.
-
-Note: it is possible in the future that GnuWin32 will provide Win32
-binaries that utilize msvcr71.dll rather than msvcrt.dll.
-
-5/14/02 Jake Brutlag
-
-These notes share some insight I gained compiling 1.1.x with
-MS Visual C++ 6.0 (using project files). This information may or
-may not be accurate at the time you are reading this.
-
-(1) freetype and rrdtool cannot use precompiled headers (which are
-enabled by default for MSVC++ projects).  MSVC++ 6.0 does not
-support precompiled headers if #include directives contain MACROS.
-(2) Compile Release build with Default optimization, not the
-Maximize Speed optimization. I encountered some strange errors
-(related to argument processing for complex commands like graph--
-perhaps the getopt stuff is too blame) with Maximize Speed.
-(3) libart relies upon config.h (ostensibly generated by the
-configure script-- but of course not on Win32 platforms). ..\..\confignt
-(which contains a static Win32 version of config.h) should be on
-the include path.
-(4) Fonts are located in the %windir%\fonts, so the default font
-is c:\winnt\fonts\cour.ttf. (6/19/02) At Kerry Calvert's suggestion
-this setting was moved to confignt\config.h.
-(5) libart requires a custom build step to generate art_config.h; this
-is done manually via the commands:
-cl -I..\..\confignt gen_art_config.c
-gen_art_config.exe > art_config.h
-
-Currently, to compile rrd.lib and rrdtool.exe using
-the MSVC++ project files, first start MSVC++ 6.0. Open the rrdtool
-workspace (rrdtool.dsw in the src directory). The active project/
-configuration should be rrdtool-Win32 Release. Select Rebuild All
-from the Build menu. The static link library (rrd.lib) will
-be generated in src\release directory and executable will be generated
-in the src\toolrelease directory.
-
-Compiling RRDtool on NT ... work in progress
----------------------------------------------------------------
-                         by Tamas Kovacshazy (khazy@mit.bme.hu)
-
-Persisting Problems with the current NT port:
-
-Unfortunately, the RRD perl modules does not work with Perl
-(ActivePerl) using the current distribution.
-
-The RRD shared perl module can be compiled after some
-modification...
-
-Follow these steps:
-
-0. Install perl if you do not have it!
-   Visit http://www.ActiveState.com/pw32/ for a complete distribution.
-
-1. Copy ..\gd1.2\release\gd.lib  to ..\gd1.2\
-2. Copy ..\src\release\rrd.lib to ..\src
-3. perl Makefile.pl
-
-In this step the system complains about something I do not
-understand. The error message is the following:
-
-Note (probably harmless): No library found for '-lm'
-
-Is a library missing? But it does not stop with an error...
-
-4. nmake test (You must have Visual C++ on the machine!)
-
-After these steps it generates the test files (svgs and rrds),
-and they seem to be good.
-
-The real problem in the shared perl modul is the following:
-
-I do not know how this installation stuff works. The problem is
-that the installation stuff looks for the gd.lib and the
-rrd.lib in the ..\gd1.2 and ..\src directory. The UNIX compile
-puts the files into these directories, but the NT compile does
-not.
-
-It is all for today,
-
-khazy
-
-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