/doc/*.3
/doc/pod2*.tmp
/doc/RRD?.pod
+/contrib
+/win32/Debug
+/win32/Release
+/win32/ReleaseDLL
+/win32/*.suo
+/win32/*.sdf
+/bindings/dotnet/*.suo
+/win32/*.opensdf
--- /dev/null
+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 librrd-4.dll and rrdtool.exe
+version 1.4.5 and newer with Microsoft Visual Studio 2013 (12.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 2013 Solution "rrd.sln" in the win32 folder of
+ your rrdtool-folder and build either the project librrd-4 (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.
+
+24/7/14 Peter
+Update VS2008 project from branch 1.4 to VS2013 for the actual master.
+Change sources for C++ / Windows compatibility.
+
+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
+
+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-build
+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
+
+
+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.
+
+
--- /dev/null
+/* mkstemp extracted from libc/sysdeps/posix/tempname.c. Copyright
+ (C) 1991-1999, 2000, 2001, 2006 Free Software Foundation, Inc.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version. */
+//http://stackoverflow.com/questions/6036227/mkstemp-implementation-for-win32
+
+#include <errno.h>
+#include "rrd_tool.h"
+#include <fcntl.h>
+
+
+static const char letters[] =
+"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
+
+/* Generate a temporary file name based on TMPL. TMPL must match the
+ rules for mk[s]temp (i.e. end in "XXXXXX"). The name constructed
+ does not exist at the time of the call to mkstemp. TMPL is
+ overwritten with the result. */
+int
+mkstemp (char *tmpl)
+{
+ int len;
+ char *XXXXXX;
+ static unsigned long long value;
+ unsigned long long random_time_bits;
+ unsigned int count;
+ int fd = -1;
+ int save_errno = errno;
+
+ /* A lower bound on the number of temporary files to attempt to
+ generate. The maximum total number of temporary file names that
+ can exist for a given template is 62**6. It should never be
+ necessary to try all these combinations. Instead if a reasonable
+ number of names is tried (we define reasonable as 62**3) fail to
+ give the system administrator the chance to remove the problems. */
+#define ATTEMPTS_MIN (62 * 62 * 62)
+
+ /* The number of times to attempt to generate a temporary file. To
+ conform to POSIX, this must be no smaller than TMP_MAX. */
+#if ATTEMPTS_MIN < TMP_MAX
+ unsigned int attempts = TMP_MAX;
+#else
+ unsigned int attempts = ATTEMPTS_MIN;
+#endif
+
+ len = strlen (tmpl);
+ if (len < 6 || strcmp (&tmpl[len - 6], "XXXXXX"))
+ {
+ errno = EINVAL;
+ return -1;
+ }
+
+/* This is where the Xs start. */
+ XXXXXX = &tmpl[len - 6];
+
+ /* Get some more or less random data. */
+ {
+ SYSTEMTIME stNow;
+ FILETIME ftNow;
+
+ // get system time
+ GetSystemTime(&stNow);
+ stNow.wMilliseconds = 500;
+ if (!SystemTimeToFileTime(&stNow, &ftNow))
+ {
+ errno = -1;
+ return -1;
+ }
+
+ random_time_bits = (((unsigned long long)ftNow.dwHighDateTime << 32)
+ | (unsigned long long)ftNow.dwLowDateTime);
+ }
+ value += random_time_bits ^ (unsigned long long)GetCurrentThreadId ();
+
+ for (count = 0; count < attempts; value += 7777, ++count)
+ {
+ unsigned long long v = value;
+
+ /* Fill in the random bits. */
+ XXXXXX[0] = letters[v % 62];
+ v /= 62;
+ XXXXXX[1] = letters[v % 62];
+ v /= 62;
+ XXXXXX[2] = letters[v % 62];
+ v /= 62;
+ XXXXXX[3] = letters[v % 62];
+ v /= 62;
+ XXXXXX[4] = letters[v % 62];
+ v /= 62;
+ XXXXXX[5] = letters[v % 62];
+
+#define _O_EXCL 0x0400
+#define O_EXCL _O_EXCL
+#define _S_IREAD 0000400 /* read permission, owner */
+#define _S_IWRITE 0000200 /* write permission, owner */
+
+ fd = open (tmpl, O_RDWR | O_CREAT | O_EXCL, _S_IREAD | _S_IWRITE);
+ if (fd >= 0)
+ {
+ errno = save_errno;
+ return fd;
+ }
+ else if (errno != EEXIST)
+ return -1;
+ }
+
+ /* We got out of the loop because we ran out of combinations to try. */
+ errno = EEXIST;
+ return -1;
+}
\ No newline at end of file
--- /dev/null
+int mkstemp(char *tmpl);
**/
#ifdef WIN32
+
+#include <ws2tcpip.h> // contain #include <winsock2.h>
+// Need to link with Ws2_32.lib
+#pragma comment(lib, "ws2_32.lib")
#include <time.h>
-#include <ws2tcpip.h>
-#include <winsock2.h>
#include <io.h>
#include <fcntl.h>
#include <tchar.h>
#include <locale.h>
+
#endif
#include "rrd_strtod.h"
char *colonp;
/* convert heartbeat as count or duration */
- colonp = strchr(def, ':');
+ colonp = (char *) strchr(def, ':');
if (! colonp) {
parsetime_error = "missing separator";
break;
#include "fnv.h"
#include <locale.h>
+#include "rrd_config.h"
+#ifdef WIN32
+#include <stdlib.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+#endif
+
+
// calculate a % b, guaranteeing a positive result...
static int positive_mod(int a, int b) {
enum cf_en other_cf = cf_conv(other_rra->cf_nam);
if (other_cf == cf ||
(other_cf == CF_AVERAGE && other_rra->pdp_cnt == 1)) {
+#ifdef _WINDOWS
+ candidate_t c;
+ c.rrd = rrd;
+ c.rra_index = i;
+ c.values = rrd->rrd_value + rrd->stat_head->ds_cnt * total_rows;
+ c.rra = rrd->rra_def + i;
+ c.ptr = rrd->rra_ptr + i;
+ c.cdp = rrd->cdp_prep + rrd->stat_head->ds_cnt * i;
+#else
candidate_t c = {
.rrd = rrd,
.rra_index = i,
.values = rrd->rrd_value + rrd->stat_head->ds_cnt * total_rows,
.rra = rrd->rra_def + i,
.ptr = rrd->rra_ptr + i,
- .cdp = rrd->cdp_prep + rrd->stat_head->ds_cnt * i
-
+ .cdp = rrd->cdp_prep + rrd->stat_head->ds_cnt * i
};
- candidates = copy_over_realloc(candidates, *cnt,
+#endif
+ candidates = (candidate_t *) copy_over_realloc(candidates, *cnt,
&c, 0, sizeof(c));
if (candidates == NULL) {
rrd_set_error("out of memory");
for (unsigned int in_ds = 0 ; in_ds < in->stat_head->ds_cnt ; in_ds++) {
switch (ops[in_ds]) {
case 'c': {
- out->ds_def = copy_over_realloc(out->ds_def, out->stat_head->ds_cnt,
+ out->ds_def = (ds_def_t *) copy_over_realloc(out->ds_def, out->stat_head->ds_cnt,
in->ds_def, in_ds,
sizeof(ds_def_t));
if (out->ds_def == NULL) goto done;
- out->pdp_prep = copy_over_realloc(out->pdp_prep, out->stat_head->ds_cnt,
+ out->pdp_prep = (pdp_prep_t *) copy_over_realloc(out->pdp_prep, out->stat_head->ds_cnt,
in->pdp_prep, in_ds,
sizeof(pdp_prep_t));
if (out->pdp_prep == NULL) goto done;
{
int rc = -1;
unsigned int j, r;
- rra_ptr_t rra_0_ptr = { .cur_row = 0 };
+ rra_ptr_t rra_0_ptr; rra_0_ptr.cur_row = 0;
cdp_prep_t empty_cdp_prep;
memset(&empty_cdp_prep, 0, sizeof(empty_cdp_prep));
continue;
}
- out->cdp_prep = realloc(out->cdp_prep,
+ out->cdp_prep = (cdp_prep_t *) realloc(out->cdp_prep,
sizeof(cdp_prep_t) * out->stat_head->ds_cnt
* (out->stat_head->rra_cnt + 1));
int start_index_in = in->stat_head->ds_cnt * j;
int start_index_out = out->stat_head->ds_cnt * out->stat_head->rra_cnt;
- out->rra_def = copy_over_realloc(out->rra_def, out->stat_head->rra_cnt,
+ out->rra_def = (rra_def_t *) copy_over_realloc(out->rra_def, out->stat_head->rra_cnt,
in->rra_def, j,
sizeof(rra_def_t));
if (out->rra_def == NULL) goto done;
// adapt row count:
out->rra_def[out->stat_head->rra_cnt].row_cnt = final_row_count;
- out->rra_ptr = copy_over_realloc(out->rra_ptr, out->stat_head->rra_cnt,
+ out->rra_ptr = (rra_ptr_t *) copy_over_realloc(out->rra_ptr, out->stat_head->rra_cnt,
&rra_0_ptr, 0,
sizeof(rra_ptr_t));
if (out->rra_ptr == NULL) goto done;
}
// copy parse result to output RRD
- out->ds_def = copy_over_realloc(out->ds_def, out->stat_head->ds_cnt,
+ out->ds_def = (ds_def_t *) copy_over_realloc(out->ds_def, out->stat_head->ds_cnt,
&added, 0,
sizeof(ds_def_t));
- if (out->ds_def == NULL) {
+ if (out->ds_def == NULL) {
goto done;
}
added_pdp_prep.scratch[PDP_unkn_sec_cnt].u_cnt =
out->live_head->last_up % out->stat_head->pdp_step;
- out->pdp_prep = copy_over_realloc(out->pdp_prep,
+ out->pdp_prep = (pdp_prep_t *) copy_over_realloc(out->pdp_prep,
out->stat_head->ds_cnt,
&added_pdp_prep, 0,
sizeof(pdp_prep_t));
unsigned int ds_ops_cnt = 0;
int *ds_map = NULL;
- out = malloc(sizeof(rrd_t));
+ out = (rrd_t *) malloc(sizeof(rrd_t));
if (out == NULL) {
rrd_set_error("Out of memory");
goto done;
out->stat_head->ds_cnt = 0;
out->stat_head->rra_cnt = 0;
- out->live_head = copy_over_realloc(out->live_head, 0, in->live_head, 0,
+ out->live_head = (live_head_t *) copy_over_realloc(out->live_head, 0, in->live_head, 0,
sizeof(live_head_t));
if (out->live_head == NULL) goto done;
- 'a' will be added.
*/
ds_ops_cnt = in->stat_head->ds_cnt;
- ds_ops = malloc(ds_ops_cnt);
+ ds_ops = (char *) malloc(ds_ops_cnt);
if (ds_ops == NULL) {
rrd_set_error("parse_tag_rrd: malloc failed.");
}
if (added_cnt > 0) {
// and extend the ds_ops array as well
- ds_ops = realloc(ds_ops, ds_ops_cnt + added_cnt);
+ ds_ops = (char *) realloc(ds_ops, ds_ops_cnt + added_cnt);
for(; added_cnt > 0 ; added_cnt--) {
ds_ops[ds_ops_cnt++] = 'a';
}
/* prepare explicit data source index to map from output index to
input index */
- ds_map = malloc(sizeof(int) * out->stat_head->ds_cnt);
+ ds_map = (int *) malloc(sizeof(int) * out->stat_head->ds_cnt);
j = 0;
for (i = 0 ; i < ds_ops_cnt ; i++) {
*/
/* prepare space for output data */
- out->rrd_value = realloc(out->rrd_value,
+ out->rrd_value = (rrd_value_t *) realloc(out->rrd_value,
total_out_rra_rows * out->stat_head->ds_cnt
* sizeof(rrd_value_t));
goto done;
}
- out->rra_def = copy_over_realloc(out->rra_def, out->stat_head->rra_cnt,
+ out->rra_def = (rra_def_t *) copy_over_realloc(out->rra_def, out->stat_head->rra_cnt,
&rra_def, 0,
sizeof(rra_def_t));
if (out->rra_def == NULL) goto done;
if (last_rra_cnt < out->stat_head->rra_cnt) {
// extend cdp_prep and rra_ptr arrays
- out->cdp_prep = realloc(out->cdp_prep,
+ out->cdp_prep = (cdp_prep_t *) realloc(out->cdp_prep,
sizeof(cdp_prep_t) * out->stat_head->ds_cnt
* (out->stat_head->rra_cnt));
goto done;
}
- out->rra_ptr = realloc(out->rra_ptr,
+ out->rra_ptr = (rra_ptr_t *) realloc(out->rra_ptr,
sizeof(rra_ptr_t) * out->stat_head->rra_cnt);
if (out->rra_ptr == NULL) {
total_out_rra_rows += rra_def->row_cnt;
/* prepare space for output data */
- out->rrd_value = realloc(out->rrd_value,
+ out->rrd_value = (rrd_value_t *) realloc(out->rrd_value,
(total_out_rra_rows) * out->stat_head->ds_cnt
* sizeof(rrd_value_t));
// to stdout
} else {
/* create RRD with a temporary name, rename atomically afterwards. */
- tmpfilename = malloc(strlen(outfilename) + 7);
+ tmpfilename = (char *) malloc(strlen(outfilename) + 7);
if (tmpfilename == NULL) {
rrd_set_error("out of memory");
goto done;
strcpy(tmpfilename, outfilename);
strcat(tmpfilename, "XXXXXX");
-
+
+
+
int tmpfd = mkstemp(tmpfilename);
+
if (tmpfd < 0) {
rrd_set_error("Cannot create temporary file");
goto done;
WILL NOT take care of any ACLs that may be set. Go
figure. */
if (stat(outfilename, &stat_buf) != 0) {
+#ifdef WIN32
+ stat_buf.st_mode = _S_IREAD | _S_IWRITE; // have to test it is
+#else
/* an error occurred (file not found, maybe?). Anyway:
set the mode to 0666 using current umask */
stat_buf.st_mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
umask(mask);
stat_buf.st_mode &= ~mask;
+#endif
}
if (chmod(tmpfilename, stat_buf.st_mode) != 0) {
rrd_set_error("Cannot chmod temporary file!");
for (i = optidx ; i < argc ; i++) {
if (strncmp("DEL:", argv[i], 4) == 0 && strlen(argv[i]) > 4) {
- del = realloc(del, (rcnt + 2) * sizeof(char*));
+ del = (const char **) realloc(del, (rcnt + 2) * sizeof(char*));
if (del == NULL) {
rrd_set_error("out of memory");
rc = -1;
rcnt++;
del[rcnt] = NULL;
} else if (strncmp("DS:", argv[i], 3) == 0 && strlen(argv[i]) > 3) {
- add = realloc(add, (acnt + 2) * sizeof(char*));
+ add = (const char **) realloc(add, (acnt + 2) * sizeof(char*));
if (add == NULL) {
rrd_set_error("out of memory");
rc = -1;
acnt++;
add[acnt] = NULL;
} else if (strncmp("RRA#", argv[i], 4) == 0 && strlen(argv[i]) > 4) {
- rra_mod_op_t rra_mod = { .def = NULL };
+ rra_mod_op_t rra_mod; // = { .def = NULL }; // not in VS2013
+ rra_mod.def = NULL;
char sign;
unsigned int number;
unsigned int idx;
goto done;
}
- rra_ops = copy_over_realloc(rra_ops, rraopcnt,
+ rra_ops = (rra_mod_op_t *) copy_over_realloc(rra_ops, rraopcnt,
&rra_mod, 0, sizeof(rra_mod));
if (rra_ops == NULL) {
rrd_set_error("out of memory");
goto done;
}
- rra_ops = copy_over_realloc(rra_ops, rraopcnt,
+ rra_ops = (rra_mod_op_t *) copy_over_realloc(rra_ops, rraopcnt,
&rra_mod, 0, sizeof(rra_mod));
if (rra_ops == NULL) {
rrd_set_error("out of memory");
}
rraopcnt++;
} else if (strncmp("DELRRA:", argv[i], 7) == 0 && strlen(argv[i]) > 7) {
- rra_mod_op_t rra_mod = { .def = NULL,
+ rra_mod_op_t rra_mod;
+ /* NOT in VS2013 C++ allowed
+ = { .def = NULL,
.op = '=',
.row_count = 0 // eg. deletion
- };
-
+ };*/
+ rra_mod.def = NULL;
+ rra_mod.op = '=';
+ rra_mod.row_count = 0; // eg. deletion
+
rra_mod.index = atoi(argv[i] + 7);
if (rra_mod.index < 0 ) {
rrd_set_error("DELRRA requires a non-negative, integer argument");
goto done;
}
- rra_ops = copy_over_realloc(rra_ops, rraopcnt,
+ rra_ops = (rra_mod_op_t *) copy_over_realloc(rra_ops, rraopcnt,
&rra_mod, 0, sizeof(rra_mod));
if (rra_ops == NULL) {
rrd_set_error("out of memory");
/* special handling for XML on stdin (like it is the case when using
the pipe interface) */
if (strcmp(filename, "-") == 0) {
- sctx = malloc(sizeof(*sctx));
+ sctx = (stdioXmlReaderContext *) malloc(sizeof(*sctx));
if (sctx == NULL) {
rrd_set_error("parse_file: malloc failed.");
return (NULL);
int doshifts=shifts;
if (shifts<0) { doshifts=-shifts; }
/* alloc memory */
- double *extra = rpnp[rpi].extra;
+ double *extra = (double *) rpnp[rpi].extra;
if (rpnp[rpi].op == OP_PREDICTPERC) {
if (! extra) {
int size = (doshifts + 1) * (locstep + 2);
rpnp[rpi].extra =
- extra = malloc(sizeof(double) * size);
+ extra = (double *) malloc(sizeof(double) * size);
}
}
/* loop the shifts */
* characters, in an implementation-defined
* manner." (C99: 7.19.6.1, 8)
*/
- if ((strvalue = va_arg(args, void *)) == NULL)
+ // if ((strvalue = va_arg(args, void *)) == NULL)
+ //error C2440: '=' : cannot convert from 'void *' to 'const char *'
+ if ((strvalue = va_arg(args, char *)) == NULL)
/*
* We use the glibc format. BSD prints
* "0x0", SysV "0".
void *
mymemcpy(void *dst, void *src, size_t len)
{
- const char *from = src;
- char *to = dst;
+ const char *from = (const char *) src;
+ char *to = (char *) dst;
/* No need for optimization, we use this only to replace va_copy(3). */
while (len-- > 0)
VA_COPY(aq, ap);
len = vsnprintf(NULL, 0, format, aq);
VA_END_COPY(aq);
- if (len < 0 || (*ret = malloc(size = len + 1)) == NULL)
+ if (len < 0 || (*ret = (char *) malloc(size = len + 1)) == NULL)
return -1;
return vsnprintf(*ret, size, format, ap);
}
rrd_file_t *rrd_file;
unsigned int i;
size_t len=0;
- char *template = NULL;
+ char *filetemplate = NULL; //template is a key word in C++ , see http://msdn.microsoft.com/de-de/library/2e6a4at9.aspx
/* open file */
rrd_init(&rrd);
len += strlen(rrd.ds_def[i].ds_nam)+1;
}
/* now that we got it allocate memory */
- template = malloc(len);
- if (!template)
+ filetemplate = (char *) malloc(len);
+ if (!filetemplate)
goto err_close;
- template[0] = 0;
+ filetemplate[0] = 0;
/* fill in for real */
for (i = 0; i < rrd.stat_head->ds_cnt; i++) {
if (i)
- strcat(template,":");
- strcat(template,rrd.ds_def[i].ds_nam);
+ strcat(filetemplate,":");
+ strcat(filetemplate,rrd.ds_def[i].ds_nam);
}
err_close:
rrd_close(rrd_file);
err_free:
rrd_free(&rrd);
- return (template);
+ return (filetemplate);
} /* }}} const char *rrd_get_file_template */
gpointer data)
{
(void)(data); /* to avoid unused message */
- return (strcmp (name1, name2));
+ return (strcmp((const char *)name1, (const char *)name2));
}
static void cache_destroy(gpointer data)
size_t len = 0;
/* get length */
- char *colon = strchr(field, ':');
+ char *colon = strchr((char *)field, ':');
if (colon) {
len=colon-field;
} else
*/
* 2 /* = strlen(":U") */;
- mapped = malloc(len);
+ mapped = (char *) malloc(len);
if (!mapped)
return NULL;
mapped[0] = 0;
/* now start to map those fields */
- mapped_values = calloc(values_num,sizeof(char*));
+ mapped_values = (char **)calloc(values_num,sizeof(char*));
if (!mapped_values) {
rrd_set_error("rrd_template_update: "
" could not allocate memory");
rrd_version
rrd_write
rrd_xport
-;rrdc_connect
-;rrdc_is_connected
-;rrdc_disconnect
-;rrdc_flush
-;rrdc_stats_free
-;rrdc_stats_get
-;rrdc_update
+rrdc_connect
+rrdc_is_connected
+rrdc_disconnect
+rrdc_flush
+rrdc_stats_free
+rrdc_stats_get
+rrdc_update
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="DebugDLL|Win32">
+ <Configuration>DebugDLL</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="ReleaseDLL|Win32">
+ <Configuration>ReleaseDLL</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Static Debug|Win32">
+ <Configuration>Static Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{CC158E1D-1364-43CA-9B2D-4AF54225C7CA}</ProjectGuid>
+ <RootNamespace>librrd-4</RootNamespace>
+ <Keyword>Win32Proj</Keyword>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ <CLRSupport>false</CLRSupport>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Static Debug|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Static Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(Configuration)\</OutDir>
+ <IntDir>$(Configuration)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
+ <IntDir>$(Configuration)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|Win32'">
+ <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
+ <IntDir>$(Configuration)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Static Debug|Win32'">
+ <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
+ <IntDir>$(Configuration)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'">
+ <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
+ <IntDir>$(Configuration)\</IntDir>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>.;../contrib/include/cairo;../contrib/include/pango-1.0;../contrib/include/glib-2.0;../contrib/lib/glib-2.0/include;../contrib/include;../contrib/include/libpng12;../contrib/include/libxml2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USE_32BIT_TIME_T;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;strftime=strftime_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+ <PrecompiledHeader />
+ <PrecompiledHeaderFile />
+ <ProgramDataBaseFileName>$(IntDir)librrd-4.pdb</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsCpp</CompileAs>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <Lib>
+ <AdditionalDependencies>cairo.lib;pango-1.0.lib;pangocairo-1.0.lib;libpng.lib;zdll.lib;glib-2.0.lib;gobject-2.0.lib;libxml2.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalLibraryDirectories>../contrib/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <ModuleDefinitionFile />
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>.;../contrib/include/cairo;../contrib/include/pango-1.0;../contrib/include/glib-2.0;../contrib/lib/glib-2.0/include;../contrib/include;../contrib/include/libpng12;../contrib/include/libxml2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_WINDOWS;WIN32_LEAN_AND_MEAN;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;strftime=strftime_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <PrecompiledHeader />
+ <PrecompiledHeaderFile>precompiled.h</PrecompiledHeaderFile>
+ <ProgramDataBaseFileName>$(IntDir)librrd-4.pdb</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsCpp</CompileAs>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <Lib>
+ <AdditionalDependencies>cairo.lib;pango-1.0.lib;pangocairo-1.0.lib;libpng.lib;zdll.lib;glib-2.0.lib;gobject-2.0.lib;libxml2.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalLibraryDirectories>../contrib/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='DebugDLL|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>.;../contrib/include/cairo;../contrib/include/pango-1.0;../contrib/include/glib-2.0;../contrib/lib/glib-2.0/include;../contrib/include;../contrib/include/libpng12;../contrib/include/libxml2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USE_32BIT_TIME_T;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;strftime=strftime_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeader />
+ <PrecompiledHeaderFile />
+ <ProgramDataBaseFileName>$(IntDir)librrd-4.pdb</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsCpp</CompileAs>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>cairo.lib;glib-2.0.lib;gobject-2.0.lib;libpng.lib;libxml2.lib;pango-1.0.lib;pangocairo-1.0.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalLibraryDirectories>../contrib/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <ModuleDefinitionFile>librrd-4.def</ModuleDefinitionFile>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Static Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>.;../contrib/include/cairo;../contrib/include/pango-1.0;../contrib/include/glib-2.0;../contrib/lib/glib-2.0/include;../contrib/include;../contrib/include/libpng12;../contrib/include/libxml2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <PrecompiledHeader />
+ <PrecompiledHeaderFile />
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsCpp</CompileAs>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <Lib>
+ <AdditionalDependencies>cairo.lib;pango-1.0.lib;pangocairo-1.0.lib;libpng.lib;zdll.lib;glib-2.0.lib;gobject-2.0.lib;libxml2.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalLibraryDirectories>../contrib/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <ModuleDefinitionFile />
+ <IgnoreSpecificDefaultLibraries>LIBCMTD.lib;LIBCMT.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
+ </Lib>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='ReleaseDLL|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <AdditionalIncludeDirectories>.;../contrib/include/cairo;../contrib/include/pango-1.0;../contrib/include/glib-2.0;../contrib/lib/glib-2.0/include;../contrib/include;../contrib/include/libpng12;../contrib/include/libxml2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_WINDOWS;_USE_32BIT_TIME_T;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;strftime=strftime_;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <PrecompiledHeader />
+ <PrecompiledHeaderFile />
+ <ProgramDataBaseFileName>$(IntDir)librrd-4.pdb</ProgramDataBaseFileName>
+ <WarningLevel>TurnOffAllWarnings</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <CompileAs>CompileAsCpp</CompileAs>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ <DisableLanguageExtensions>false</DisableLanguageExtensions>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>cairo.lib;glib-2.0.lib;gobject-2.0.lib;libpng.lib;libxml2.lib;pango-1.0.lib;ws2_32.lib;pangocairo-1.0.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalLibraryDirectories>../contrib/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <ModuleDefinitionFile>librrd-4.def</ModuleDefinitionFile>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\src\hash_32.c" />
+ <ClCompile Include="..\src\mkstemp.c" />
+ <ClCompile Include="..\src\mutex.c" />
+ <ClCompile Include="..\src\plbasename.c" />
+ <ClCompile Include="..\src\pngsize.c" />
+ <ClCompile Include="..\src\rrd_client.c" />
+ <ClCompile Include="..\src\rrd_create.c" />
+ <ClCompile Include="..\src\rrd_diff.c" />
+ <ClCompile Include="..\src\rrd_dump.c" />
+ <ClCompile Include="..\src\rrd_error.c" />
+ <ClCompile Include="..\src\rrd_fetch.c" />
+ <ClCompile Include="..\src\rrd_fetch_cb.c" />
+ <ClCompile Include="..\src\rrd_first.c" />
+ <ClCompile Include="..\src\rrd_flushcached.c" />
+ <ClCompile Include="..\src\rrd_format.c" />
+ <ClCompile Include="..\src\rrd_getopt.c" />
+ <ClCompile Include="..\src\rrd_getopt1.c" />
+ <ClCompile Include="..\src\rrd_gfx.c" />
+ <ClCompile Include="..\src\rrd_graph.c" />
+ <ClCompile Include="..\src\rrd_graph_helper.c" />
+ <ClCompile Include="..\src\rrd_hw.c" />
+ <ClCompile Include="..\src\rrd_hw_math.c" />
+ <ClCompile Include="..\src\rrd_hw_update.c" />
+ <ClCompile Include="..\src\rrd_info.c" />
+ <ClCompile Include="..\src\rrd_last.c" />
+ <ClCompile Include="..\src\rrd_lastupdate.c" />
+ <ClCompile Include="..\src\rrd_modify.c" />
+ <ClCompile Include="..\src\rrd_nan_inf.c" />
+ <ClCompile Include="..\src\rrd_open.c" />
+ <ClCompile Include="..\src\rrd_parsetime.c" />
+ <ClCompile Include="..\src\rrd_resize.c" />
+ <ClCompile Include="..\src\rrd_restore.c" />
+ <ClCompile Include="..\src\rrd_rpncalc.c" />
+ <ClCompile Include="..\src\rrd_snprintf.c" />
+ <ClCompile Include="..\src\rrd_strtod.c" />
+ <ClCompile Include="..\src\rrd_thread_safe_nt.c" />
+ <ClCompile Include="..\src\rrd_tune.c" />
+ <ClCompile Include="..\src\rrd_update.c" />
+ <ClCompile Include="..\src\rrd_utils.c" />
+ <ClCompile Include="..\src\rrd_version.c" />
+ <ClCompile Include="..\src\rrd_xport.c" />
+ <ClCompile Include="..\src\strftime.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\src\mkstemp.h" />
+ <ClInclude Include="..\src\mutex.h" />
+ <ClInclude Include="..\src\rrd_modify.h" />
+ <ClInclude Include="rrd_config.h" />
+ <ClInclude Include="..\src\fnv.h" />
+ <ClInclude Include="..\src\plbasename.h" />
+ <ClInclude Include="..\src\rrd.h" />
+ <ClInclude Include="..\src\rrd_format.h" />
+ <ClInclude Include="..\src\rrd_getopt.h" />
+ <ClInclude Include="..\src\rrd_graph.h" />
+ <ClInclude Include="..\src\rrd_hw.h" />
+ <ClInclude Include="..\src\rrd_hw_math.h" />
+ <ClInclude Include="..\src\rrd_hw_update.h" />
+ <ClInclude Include="..\src\rrd_i18n.h" />
+ <ClInclude Include="..\src\rrd_is_thread_safe.h" />
+ <ClInclude Include="..\src\rrd_parsetime.h" />
+ <ClInclude Include="..\src\rrd_rpncalc.h" />
+ <ClInclude Include="..\src\rrd_tool.h" />
+ <ClInclude Include="..\src\rrd_xport.h" />
+ <ClInclude Include="..\src\strftime.h" />
+ <ClInclude Include="..\src\unused.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="librrd-4.def" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup />
+</Project>
\ No newline at end of file
--- /dev/null
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2013
+VisualStudioVersion = 12.0.30110.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "librrd-4", "librrd-4.vcxproj", "{CC158E1D-1364-43CA-9B2D-4AF54225C7CA}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rrdtool", "rrdtool.vcxproj", "{11CD05F8-E5E1-476E-A75F-A112655D4E94}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rrdupdate", "rrdupdate.vcxproj", "{3AAE1E07-78D7-420D-968B-D2087D732D3B}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ DebugDLL|Win32 = DebugDLL|Win32
+ Release|Win32 = Release|Win32
+ ReleaseDLL|Win32 = ReleaseDLL|Win32
+ Static Debug|Win32 = Static Debug|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {CC158E1D-1364-43CA-9B2D-4AF54225C7CA}.Debug|Win32.ActiveCfg = Debug|Win32
+ {CC158E1D-1364-43CA-9B2D-4AF54225C7CA}.Debug|Win32.Build.0 = Debug|Win32
+ {CC158E1D-1364-43CA-9B2D-4AF54225C7CA}.DebugDLL|Win32.ActiveCfg = DebugDLL|Win32
+ {CC158E1D-1364-43CA-9B2D-4AF54225C7CA}.DebugDLL|Win32.Build.0 = DebugDLL|Win32
+ {CC158E1D-1364-43CA-9B2D-4AF54225C7CA}.Release|Win32.ActiveCfg = Release|Win32
+ {CC158E1D-1364-43CA-9B2D-4AF54225C7CA}.Release|Win32.Build.0 = Release|Win32
+ {CC158E1D-1364-43CA-9B2D-4AF54225C7CA}.ReleaseDLL|Win32.ActiveCfg = ReleaseDLL|Win32
+ {CC158E1D-1364-43CA-9B2D-4AF54225C7CA}.ReleaseDLL|Win32.Build.0 = ReleaseDLL|Win32
+ {CC158E1D-1364-43CA-9B2D-4AF54225C7CA}.Static Debug|Win32.ActiveCfg = Static Debug|Win32
+ {CC158E1D-1364-43CA-9B2D-4AF54225C7CA}.Static Debug|Win32.Build.0 = Static Debug|Win32
+ {11CD05F8-E5E1-476E-A75F-A112655D4E94}.Debug|Win32.ActiveCfg = Debug|Win32
+ {11CD05F8-E5E1-476E-A75F-A112655D4E94}.Debug|Win32.Build.0 = Debug|Win32
+ {11CD05F8-E5E1-476E-A75F-A112655D4E94}.DebugDLL|Win32.ActiveCfg = Debug|Win32
+ {11CD05F8-E5E1-476E-A75F-A112655D4E94}.Release|Win32.ActiveCfg = Release|Win32
+ {11CD05F8-E5E1-476E-A75F-A112655D4E94}.Release|Win32.Build.0 = Release|Win32
+ {11CD05F8-E5E1-476E-A75F-A112655D4E94}.ReleaseDLL|Win32.ActiveCfg = Release|Win32
+ {11CD05F8-E5E1-476E-A75F-A112655D4E94}.Static Debug|Win32.ActiveCfg = Static Debug|Win32
+ {11CD05F8-E5E1-476E-A75F-A112655D4E94}.Static Debug|Win32.Build.0 = Static Debug|Win32
+ {3AAE1E07-78D7-420D-968B-D2087D732D3B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {3AAE1E07-78D7-420D-968B-D2087D732D3B}.Debug|Win32.Build.0 = Debug|Win32
+ {3AAE1E07-78D7-420D-968B-D2087D732D3B}.DebugDLL|Win32.ActiveCfg = Debug|Win32
+ {3AAE1E07-78D7-420D-968B-D2087D732D3B}.Release|Win32.ActiveCfg = Release|Win32
+ {3AAE1E07-78D7-420D-968B-D2087D732D3B}.Release|Win32.Build.0 = Release|Win32
+ {3AAE1E07-78D7-420D-968B-D2087D732D3B}.ReleaseDLL|Win32.ActiveCfg = Release|Win32
+ {3AAE1E07-78D7-420D-968B-D2087D732D3B}.Static Debug|Win32.ActiveCfg = Static Debug|Win32
+ {3AAE1E07-78D7-420D-968B-D2087D732D3B}.Static Debug|Win32.Build.0 = Static Debug|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
+/* Define to 1 if you have the <stdarg.h> header file. */
+#define HAVE_STDARG_H 1
+
/* is there an external timezone variable instead ? */
#define HAVE_TIMEZONE 1
#define ENOBUFS WSAENOBUFS
#define ENOTCONN WSAENOTCONN
+
#include <ctype.h>
#include <direct.h>
#include <float.h>
#include <math.h>
+#include <io.h>
+#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <WinSock.h>
+
+#include <errno.h>
+#include "mkstemp.h"
+
+
#define isinf(a) (_fpclass(a) == _FPCLASS_NINF || _fpclass(a) == _FPCLASS_PINF)
#define isnan _isnan
#define finite _finite
#define strcasecmp _stricmp
#define strcasencmp _strnicmp
-#pragma warning(disable: 4244)
-__inline int round(double a){ return (int) (a + 0.5); }
+// in MSVC++ 12.0 / Visual Studio 2013 is a definition of round in math.h
+// some values of _MSC_VER
+//MSVC++ 12.0 _MSC_VER == 1800 (Visual Studio 2013)
+//MSVC++ 11.0 _MSC_VER == 1700 (Visual Studio 2012)
+//MSVC++ 10.0 _MSC_VER == 1600 (Visual Studio 2010)
+//MSVC++ 9.0 _MSC_VER == 1500 (Visual Studio 2008)
+//MSVC++ 8.0 _MSC_VER == 1400 (Visual Studio 2005)
+//MSVC++ 7.1 _MSC_VER == 1310 (Visual Studio 2003)
+//MSVC++ 7.0 _MSC_VER == 1300
+//MSVC++ 6.0 _MSC_VER == 1200
+//MSVC++ 5.0 _MSC_VER == 1100
+#if _MSC_VER < 1800
+__inline int round(double a){ int x = (a + 0.5); return x; }
+#endif
#endif
--- /dev/null
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2013
+VisualStudioVersion = 12.0.30110.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rrdtool", "rrdtool.vcxproj", "{11CD05F8-E5E1-476E-A75F-A112655D4E94}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {11CD05F8-E5E1-476E-A75F-A112655D4E94}.Debug|Win32.ActiveCfg = Debug|Win32
+ {11CD05F8-E5E1-476E-A75F-A112655D4E94}.Debug|Win32.Build.0 = Debug|Win32
+ {11CD05F8-E5E1-476E-A75F-A112655D4E94}.Release|Win32.ActiveCfg = Release|Win32
+ {11CD05F8-E5E1-476E-A75F-A112655D4E94}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Static Debug|Win32">
+ <Configuration>Static Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{11CD05F8-E5E1-476E-A75F-A112655D4E94}</ProjectGuid>
+ <RootNamespace>rrdtool</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Static Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Static Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(Configuration)\</OutDir>
+ <IntDir>$(Configuration)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
+ <IntDir>$(Configuration)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Static Debug|Win32'">
+ <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
+ <IntDir>$(Configuration)\</IntDir>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <InlineFunctionExpansion>Default</InlineFunctionExpansion>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USE_32BIT_TIME_T;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <ProgramDataBaseFileName>$(IntDir)rrdtool.pdb</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>librrd-4.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <ShowProgress>LinkVerboseLib</ShowProgress>
+ <AdditionalLibraryDirectories>$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <IgnoreSpecificDefaultLibraries>LIBCMTD.lib;LIBCMT.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>NotSet</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ <PostBuildEvent>
+ <Message>get all the dlls, needed for running</Message>
+ <Command>copy $(ProjectDir)\..\contrib\bin\freetype6.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libcairo-2.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libfontconfig-1.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libglib-2.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libgmodule-2.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libgobject-2.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libgthread-2.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libpango-1.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libpangocairo-1.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libpangoft2-1.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libpangowin32-1.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libpng14-14.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libxml2-2.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\zlib1.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libexpat-1.dll $(TargetDir)\
+</Command>
+ </PostBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>.;../../contrib/cairo/include/cairo;../../contrib/pango/include/pango-1.0;../../contrib/glib/include/glib-2.0;../../contrib/glib/lib/glib-2.0/include;../../contrib/libpng/include;../../contrib/zlib/include;../../contrib/libxml2/include/libxml2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;_WINDOWS;_USE_32BIT_TIME_T;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <ProgramDataBaseFileName>$(IntDir)rrdtool.pdb</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>librrd-4.lib;cairo.lib;pango-1.0.lib;pangocairo-1.0.lib;libpng.lib;zdll.lib;glib-2.0.lib;gobject-2.0.lib;libxml2.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalLibraryDirectories>$(Configuration); ../contrib/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>false</GenerateDebugInformation>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ <PostBuildEvent>
+ <Message>get all the dlls, needed for running</Message>
+ <Command>copy $(ProjectDir)\..\contrib\bin\freetype6.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libcairo-2.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libfontconfig-1.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libglib-2.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libgmodule-2.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libgobject-2.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libgthread-2.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libpango-1.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libpangocairo-1.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libpangoft2-1.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libpangowin32-1.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libpng14-14.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libxml2-2.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\zlib1.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libexpat-1.dll $(TargetDir)\
+</Command>
+ </PostBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Static Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <InlineFunctionExpansion>Default</InlineFunctionExpansion>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>librrd-4.lib;cairo.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <ShowProgress>LinkVerboseLib</ShowProgress>
+ <AdditionalLibraryDirectories>$(Configuration);../contrib/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>NotSet</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ <PostBuildEvent>
+ <Message>get all the dlls, needed for running</Message>
+ <Command>copy $(ProjectDir)\..\contrib\bin\freetype6.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libcairo-2.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libfontconfig-1.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libglib-2.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libgmodule-2.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libgobject-2.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libgthread-2.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libpango-1.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libpangocairo-1.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libpangoft2-1.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libpangowin32-1.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libpng14-14.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libxml2-2.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\zlib1.dll $(TargetDir)\
+
+
+</Command>
+ </PostBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\src\rrd_tool.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="rrd_config.h" />
+ <ClInclude Include="..\src\rrd_tool.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="librrd-4.vcxproj">
+ <Project>{cc158e1d-1364-43ca-9b2d-4af54225c7ca}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
\ No newline at end of file
--- /dev/null
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2013
+VisualStudioVersion = 12.0.30110.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rrdupdate", "rrdupdate.vcxproj", "{3AAE1E07-78D7-420D-968B-D2087D732D3B}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {3AAE1E07-78D7-420D-968B-D2087D732D3B}.Debug|Win32.ActiveCfg = Debug|Win32
+ {3AAE1E07-78D7-420D-968B-D2087D732D3B}.Debug|Win32.Build.0 = Debug|Win32
+ {3AAE1E07-78D7-420D-968B-D2087D732D3B}.Release|Win32.ActiveCfg = Release|Win32
+ {3AAE1E07-78D7-420D-968B-D2087D732D3B}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Static Debug|Win32">
+ <Configuration>Static Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{3AAE1E07-78D7-420D-968B-D2087D732D3B}</ProjectGuid>
+ <RootNamespace>rrdtool</RootNamespace>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Static Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <PlatformToolset>v120</PlatformToolset>
+ <CharacterSet>MultiByte</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Static Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup>
+ <_ProjectFileVersion>12.0.21005.1</_ProjectFileVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <OutDir>$(Configuration)\</OutDir>
+ <IntDir>$(Configuration)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
+ <IntDir>$(Configuration)\</IntDir>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Static Debug|Win32'">
+ <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
+ <IntDir>$(Configuration)\</IntDir>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <InlineFunctionExpansion>Default</InlineFunctionExpansion>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USE_32BIT_TIME_T;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <ProgramDataBaseFileName>$(IntDir)rrdupdate.pdb</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>librrd-4.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <ShowProgress>LinkVerboseLib</ShowProgress>
+ <AdditionalLibraryDirectories>$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <IgnoreSpecificDefaultLibraries>LIBCMTD.lib;LIBCMT.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>NotSet</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ <PostBuildEvent>
+ <Message>get all the dlls, needed for running</Message>
+ <Command>copy $(ProjectDir)\..\contrib\bin\freetype6.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libcairo-2.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libfontconfig-1.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libglib-2.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libgmodule-2.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libgobject-2.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libgthread-2.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libpango-1.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libpangocairo-1.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libpangoft2-1.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libpangowin32-1.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libpng14-14.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libxml2-2.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\zlib1.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libexpat-1.dll $(TargetDir)\
+</Command>
+ </PostBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <Optimization>MaxSpeed</Optimization>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <AdditionalIncludeDirectories>.;../../contrib/cairo/include/cairo;../../contrib/pango/include/pango-1.0;../../contrib/glib/include/glib-2.0;../../contrib/glib/lib/glib-2.0/include;../../contrib/libpng/include;../../contrib/zlib/include;../../contrib/libxml2/include/libxml2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USE_32BIT_TIME_T;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <ProgramDataBaseFileName>$(IntDir)rrdupdate.pdb</ProgramDataBaseFileName>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>librrd-4.lib;cairo.lib;pango-1.0.lib;pangocairo-1.0.lib;libpng.lib;zdll.lib;glib-2.0.lib;gobject-2.0.lib;libxml2.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalLibraryDirectories>$(Configuration); ../contrib/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <OptimizeReferences>true</OptimizeReferences>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ <PostBuildEvent>
+ <Message>get all the dlls, needed for running</Message>
+ <Command>copy $(ProjectDir)\..\contrib\bin\freetype6.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libcairo-2.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libfontconfig-1.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libglib-2.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libgmodule-2.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libgobject-2.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libgthread-2.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libpango-1.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libpangocairo-1.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libpangoft2-1.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libpangowin32-1.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libpng14-14.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libxml2-2.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\zlib1.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libexpat-1.dll $(TargetDir)\
+</Command>
+ </PostBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Static Debug|Win32'">
+ <ClCompile>
+ <Optimization>Disabled</Optimization>
+ <InlineFunctionExpansion>Default</InlineFunctionExpansion>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>true</MinimalRebuild>
+ <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <WarningLevel>Level3</WarningLevel>
+ <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
+ <DisableSpecificWarnings>4996;%(DisableSpecificWarnings)</DisableSpecificWarnings>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>librrd-4.lib;cairo.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <ShowProgress>LinkVerboseLib</ShowProgress>
+ <AdditionalLibraryDirectories>$(Configuration);../contrib/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <GenerateDebugInformation>true</GenerateDebugInformation>
+ <SubSystem>NotSet</SubSystem>
+ <TargetMachine>MachineX86</TargetMachine>
+ </Link>
+ <PostBuildEvent>
+ <Message>get all the dlls, needed for running</Message>
+ <Command>copy $(ProjectDir)\..\contrib\bin\freetype6.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libcairo-2.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libfontconfig-1.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libglib-2.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libgmodule-2.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libgobject-2.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libgthread-2.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libpango-1.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libpangocairo-1.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libpangoft2-1.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libpangowin32-1.0-0.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libpng14-14.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\libxml2-2.dll $(TargetDir)\
+copy $(ProjectDir)\..\contrib\bin\zlib1.dll $(TargetDir)\
+
+
+</Command>
+ </PostBuildEvent>
+ </ItemDefinitionGroup>
+ <ItemGroup>
+ <ClCompile Include="..\src\rrdupdate.c" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="rrd_config.h" />
+ <ClInclude Include="..\src\rrd_tool.h" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="librrd-4.vcxproj">
+ <Project>{cc158e1d-1364-43ca-9b2d-4af54225c7ca}</Project>
+ </ProjectReference>
+ <ProjectReference Include="rrdtool.vcxproj">
+ <Project>{11cd05f8-e5e1-476e-a75f-a112655d4e94}</Project>
+ <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project>
\ No newline at end of file