+# Makefile for rrdtool using Microsoft (Visual) C\r
+#\r
+# Usage:\r
+# nmake -f win32/Makefile.msc (for 32 bit Windows target)\r
+# nmake -f win32/Makefile.msc USE_64BIT=1 (for 64 bit Windows target)\r
+# nmake -f win32/Makefile.msc clean (to remove all generated files)\r
+\r
+# The toplevel directory of the source tree\r
+#\r
TOP = .\r
RRD_LIB_NAME=librrd-4\r
ARCH_PATH_X86=contrib\r
ARCH_PATH=$(ARCH_PATH_X64)\r
!endif\r
\r
-CPPFLAGS = $(CCPFLAGS) /TP /EHsc /O2 /Zi /Fd$(TOP)/win32/vc.pdb \\r
+CPPFLAGS = $(CPPFLAGS) /TC /EHsc /O2 /Zi /Fd$(TOP)/win32/vc.pdb \\r
/I $(TOP)/win32 /I $(TOP)/src \\r
/I $(ARCH_PATH)\include \\r
/I $(ARCH_PATH)\include\cairo \\r
libpng.lib libxml2.lib \\r
glib-2.0.lib gobject-2.0.lib \\r
pango-1.0.lib pangocairo-1.0.lib cairo.lib \\r
- Ws2_32.lib\r
+ Ws2_32.lib zdll.lib gthread-2.0.lib pcre.lib\r
\r
RRD_LIB_OBJ_LIST = \\r
$(TOP)/src/hash_32.obj \\r
+ $(TOP)/src/mkstemp.obj \\r
$(TOP)/src/mutex.obj \\r
+ $(TOP)/src/optparse.obj \\r
$(TOP)/src/plbasename.obj \\r
$(TOP)/src/pngsize.obj \\r
+ $(TOP)/src/quicksort.obj \\r
$(TOP)/src/rrd_client.obj \\r
$(TOP)/src/rrd_create.obj \\r
$(TOP)/src/rrd_diff.obj \\r
$(TOP)/src/rrd_dump.obj \\r
$(TOP)/src/rrd_error.obj \\r
$(TOP)/src/rrd_fetch.obj \\r
+ $(TOP)/src/rrd_fetch_cb.obj \\r
$(TOP)/src/rrd_first.obj \\r
$(TOP)/src/rrd_flushcached.obj \\r
$(TOP)/src/rrd_format.obj \\r
- $(TOP)/src/rrd_getopt.obj \\r
- $(TOP)/src/rrd_getopt1.obj \\r
$(TOP)/src/rrd_gfx.obj \\r
$(TOP)/src/rrd_graph.obj \\r
$(TOP)/src/rrd_graph_helper.obj \\r
$(TOP)/src/rrd_info.obj \\r
$(TOP)/src/rrd_last.obj \\r
$(TOP)/src/rrd_lastupdate.obj \\r
+ $(TOP)/src/rrd_list.obj \\r
+ $(TOP)/src/rrd_modify.obj \\r
$(TOP)/src/rrd_nan_inf.obj \\r
$(TOP)/src/rrd_open.obj \\r
$(TOP)/src/rrd_parsetime.obj \\r
$(TOP)/src/rrd_resize.obj \\r
$(TOP)/src/rrd_restore.obj \\r
$(TOP)/src/rrd_rpncalc.obj \\r
+ $(TOP)/src/rrd_snprintf.obj \\r
+ $(TOP)/src/rrd_strtod.obj \\r
$(TOP)/src/rrd_thread_safe_nt.obj \\r
$(TOP)/src/rrd_tune.obj \\r
$(TOP)/src/rrd_update.obj \\r
$(TOP)/src/rrd_utils.obj \\r
$(TOP)/src/rrd_version.obj \\r
$(TOP)/src/rrd_xport.obj \\r
- $(TOP)/src/strftime.obj\r
+ $(TOP)/src/strftime.obj \\r
+ $(TOP)/win32/asprintf.obj \\r
+ $(TOP)/win32/vasprintf-msvc.obj \\r
+ $(TOP)/win32/win32-glob.obj\r
+# win32comp.obj is not added to RRD_LIB_OBJ_LIST, because definitions are already in rrd_thread_safe_nt.obj\r
\r
all: $(TOP)/win32/$(RRD_LIB_NAME).dll $(TOP)/win32/rrdtool.exe \\r
- $(TOP)/win32/rrdupdate.exe $(TOP)/win32/rrdcgi.exe\r
+ $(TOP)/win32/rrdupdate.exe $(TOP)/win32/rrdcgi.exe\r
\r
clean:\r
- -@del /F /Q $(TOP)\src\*.obj 2>NUL\r
- -@del /F /Q $(TOP)\win32\*.res 2>NUL\r
- -@del /F /Q $(TOP)\win32\*.exe 2>NUL\r
- -@del /F /Q $(TOP)\win32\*.pdb 2>NUL\r
- -@del /F /Q $(TOP)\win32\$(RRD_LIB_NAME).dll 2>NUL\r
- -@del /F /Q $(TOP)\win32\$(RRD_LIB_NAME).exp 2>NUL\r
- -@del /F /Q $(TOP)\win32\$(RRD_LIB_NAME).lib 2>NUL\r
- \r
+ -@del /F /Q $(TOP)\src\*.obj 2>NUL\r
+ -@del /F /Q $(TOP)\win32\*.obj 2>NUL\r
+ -@del /F /Q $(TOP)\win32\*.res 2>NUL\r
+ -@del /F /Q $(TOP)\win32\*.exe 2>NUL\r
+ -@del /F /Q $(TOP)\win32\*.pdb 2>NUL\r
+ -@del /F /Q $(TOP)\win32\$(RRD_LIB_NAME).dll 2>NUL\r
+ -@del /F /Q $(TOP)\win32\$(RRD_LIB_NAME).exp 2>NUL\r
+ -@del /F /Q $(TOP)\win32\$(RRD_LIB_NAME).lib 2>NUL\r
+\r
$(TOP)/win32/$(RRD_LIB_NAME).dll $(TOP)/win32/$(RRD_LIB_NAME).lib: \\r
- $(TOP)/win32/$(RRD_LIB_NAME).def $(TOP)/win32/$(RRD_LIB_NAME).res \\r
- $(RRD_LIB_OBJ_LIST)\r
- cl /nologo /MT /LD /Zi /Fe$(TOP)/win32/$(RRD_LIB_NAME).dll \\r
- /Fd$(TOP)/win32/$(RRD_LIB_NAME).pdb \\r
- $(TOP)/win32/$(RRD_LIB_NAME).def $(TOP)/win32/$(RRD_LIB_NAME).res \\r
- $(RRD_LIB_OBJ_LIST) /link $(THIRD_PARTY_LIB) $(LD_FLAGS)\r
+ $(TOP)/win32/$(RRD_LIB_NAME).def $(TOP)/win32/$(RRD_LIB_NAME).res \\r
+ $(RRD_LIB_OBJ_LIST)\r
+ cl /nologo /MT /LD /Zi /Fe$(TOP)/win32/$(RRD_LIB_NAME).dll \\r
+ /Fd$(TOP)/win32/$(RRD_LIB_NAME).pdb \\r
+ $(TOP)/win32/$(RRD_LIB_NAME).def $(TOP)/win32/$(RRD_LIB_NAME).res \\r
+ $(RRD_LIB_OBJ_LIST) /link $(THIRD_PARTY_LIB) $(LD_FLAGS)\r
\r
$(TOP)/win32/rrdtool.exe: $(TOP)/win32/rrdtool.res $(TOP)/src/rrd_tool.obj \\r
- $(TOP)/win32/$(RRD_LIB_NAME).lib\r
- cl /nologo /MT /Zi /Fe$@ $(TOP)/win32/rrdtool.res $(TOP)/src/rrd_tool.obj \\r
- $(TOP)/win32/$(RRD_LIB_NAME).lib /link $(LD_FLAGS)\r
+ $(TOP)/win32/$(RRD_LIB_NAME).lib\r
+ cl /nologo /MT /Zi /Fe$@ $(TOP)/win32/rrdtool.res $(TOP)/src/rrd_tool.obj \\r
+ $(TOP)/win32/$(RRD_LIB_NAME).lib /link $(LD_FLAGS)\r
#Just waiting for antivirus program to finished check tasks\r
- -@ping 1.1.1.1 -n 1 -w 1000 > NUL\r
- -mt -manifest $(TOP)/win32/uac.manifest -outputresource:$(TOP)/win32/rrdtool.exe;#1\r
+ -@ping 1.1.1.1 -n 1 -w 1000 > NUL\r
+ -mt -manifest $(TOP)/win32/uac.manifest -outputresource:$(TOP)/win32/rrdtool.exe;#1\r
\r
$(TOP)/win32/rrdupdate.exe: $(TOP)/win32/rrdupdate.res $(TOP)/src/rrdupdate.obj \\r
- $(TOP)/src/plbasename.obj $(TOP)/win32/$(RRD_LIB_NAME).lib\r
- cl /nologo /MT /Zi /Fe$@ $(TOP)/win32/rrdupdate.res $(TOP)/src/rrdupdate.obj \\r
- $(TOP)/src/plbasename.obj $(TOP)/win32/$(RRD_LIB_NAME).lib /link $(LD_FLAGS)\r
+ $(TOP)/src/plbasename.obj $(TOP)/win32/$(RRD_LIB_NAME).lib\r
+ cl /nologo /MT /Zi /Fe$@ $(TOP)/win32/rrdupdate.res $(TOP)/src/rrdupdate.obj \\r
+ $(TOP)/src/plbasename.obj $(TOP)/win32/$(RRD_LIB_NAME).lib /link $(LD_FLAGS)\r
#Just waiting for antivirus program to finished check tasks\r
- -@ping 1.1.1.1 -n 1 -w 1000 > NUL\r
- -mt -manifest $(TOP)/win32/uac.manifest -outputresource:$(TOP)/win32/rrdupdate.exe;#1\r
+ -@ping 1.1.1.1 -n 1 -w 1000 > NUL\r
+ -mt -manifest $(TOP)/win32/uac.manifest -outputresource:$(TOP)/win32/rrdupdate.exe;#1\r
\r
$(TOP)/win32/rrdcgi.exe: $(TOP)/win32/rrdcgi.res $(TOP)/src/rrd_cgi.obj \\r
- $(TOP)/src/rrd_getopt.obj $(TOP)/src/rrd_getopt1.obj \\r
- $(TOP)/win32/$(RRD_LIB_NAME).lib\r
- cl /nologo /MT /Zi /Fe$@ $(TOP)/win32/rrdcgi.res $(TOP)/src/rrd_cgi.obj \\r
- $(TOP)/src/rrd_getopt.obj $(TOP)/src/rrd_getopt1.obj \\r
- $(TOP)/win32/$(RRD_LIB_NAME).lib /link $(LD_FLAGS)\r
+ $(TOP)/src/optparse.obj \\r
+ $(TOP)/win32/$(RRD_LIB_NAME).lib\r
+ cl /nologo /MT /Zi /Fe$@ $(TOP)/win32/rrdcgi.res $(TOP)/src/rrd_cgi.obj \\r
+ $(TOP)/src/optparse.obj \\r
+ $(TOP)/win32/$(RRD_LIB_NAME).lib /link $(LD_FLAGS)\r
#Just waiting for antivirus program to finished check tasks\r
- -@ping 1.1.1.1 -n 1 -w 1000 > NUL\r
- -mt -manifest $(TOP)/win32/uac.manifest -outputresource:$(TOP)/win32/rrdcgi.exe;#1\r
+ -@ping 1.1.1.1 -n 1 -w 1000 > NUL\r
+ -mt -manifest $(TOP)/win32/uac.manifest -outputresource:$(TOP)/win32/rrdcgi.exe;#1\r
\r
{$(TOP)/src}.c{$(TOP)/src}.obj:\r
- cl /nologo /MT /DWIN32 /c $(CPPFLAGS) /Fo$@ $<\r
+ cl /nologo /MT /DWIN32 /c $(CPPFLAGS) /Fo$@ $<\r
\r
{$(TOP)/win32}.rc{$(TOP)/win32}.res:\r
- rc /nologo /fo$@ $<\r
+ rc /nologo /I./src /fo$@ $<\r
+\r
+{$(TOP)/win32}.c{$(TOP)/win32}.obj:\r
+ cl /nologo /MT /DWIN32 /c $(CPPFLAGS) /Fo$@ $<\r
<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>
+ <AdditionalIncludeDirectories>.;../contrib/include/cairo;../contrib/include/pango-1.0;../contrib/include/glib-2.0;../contrib/lib/glib-2.0/include;../contrib/include;../contrib/include/libxml2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USE_32BIT_TIME_T;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<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>
+ <AdditionalIncludeDirectories>.;../contrib/include/cairo;../contrib/include/pango-1.0;../contrib/include/glib-2.0;../contrib/lib/glib-2.0/include;../contrib/include;../contrib/include/libxml2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINDOWS;_USE_32BIT_TIME_T;WIN32_LEAN_AND_MEAN;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<FunctionLevelLinking>true</FunctionLevelLinking>
<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>
+ <AdditionalIncludeDirectories>.;../contrib/include/cairo;../contrib/include/pango-1.0;../contrib/include/glib-2.0;../contrib/lib/glib-2.0/include;../contrib/include;../contrib/include/libxml2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USE_32BIT_TIME_T;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<AdditionalLibraryDirectories>../contrib/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ModuleDefinitionFile>librrd-4.def</ModuleDefinitionFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalOptions>/FORCE:MULTIPLE %(AdditionalOptions)</AdditionalOptions>
</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>
+ <AdditionalIncludeDirectories>.;../contrib/include/cairo;../contrib/include/pango-1.0;../contrib/include/glib-2.0;../contrib/lib/glib-2.0/include;../contrib/include;../contrib/include/libxml2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<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;gthread-2.0.lib;pcre.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>
+ <AdditionalIncludeDirectories>.;../contrib/include/cairo;../contrib/include/pango-1.0;../contrib/include/glib-2.0;../contrib/lib/glib-2.0/include;../contrib/include;../contrib/include/libxml2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_WINDOWS;_USE_32BIT_TIME_T;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>true</MinimalRebuild>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<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;gthread-2.0.lib;pcre.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>../contrib/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<ModuleDefinitionFile>librrd-4.def</ModuleDefinitionFile>
- <AdditionalOptions>/FORCE:MULTIPLE %(AdditionalOptions)</AdditionalOptions>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\src\rrd_version.c" />
<ClCompile Include="..\src\rrd_xport.c" />
<ClCompile Include="..\src\strftime.c" />
- <ClCompile Include="..\src\win32comp.c" />
<ClCompile Include="asprintf.c" />
<ClCompile Include="vasprintf-msvc.c" />
<ClCompile Include="win32-glob.c" />