Compiling RRDtool 1.1.x on Win32 (WinXP/Win2K with Visual C++): --------------------------------------------------------------- 5/14/02 Jake Brutlag (jakeb@corp.webtv.net) 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