+# Gnu Makefile for Win32 target * 20-Aug-2005\r
+# for use with MingW32 gcc or Metrowerks CodeWarrior compiler\r
+# use with: make -f Makefile.Win32 [all|clean|dist]\r
+\r
+SOURCE = rrd_tool\r
+#SOURCE = rrd_cgi\r
+TARGET = $(subst _,,$(SOURCE))\r
+#DESCR = Round Robin Database Tool $(RRD_VERSION_STR)\r
+DESCR = Round Robin Database Tool\r
+COPYR = Copyright (c) 1997-2005 by Tobias Oetiker\r
+#WWWURL = http://ee-staff.ethz.ch/~oetiker/webtools/rrdtool/\r
+WWWURL = http://www.rrdtool.org/\r
+\r
+# Edit the path below to point to your install destination.\r
+# INSTDIR = /mnt/sys/mrtg/rrd\r
+INSTDIR = c:/mrtg/rrd\r
+\r
+# Base for the lib sources\r
+ifndef LIBBASE\r
+LIBBASE = d:/projects/cw\r
+endif\r
+# All library code is statically linked to avoid problems with other lib NLMs. \r
+# Edit the path below to point to your libgd sources or set environment var.\r
+ifndef LIBGD\r
+LIBGD = $(LIBBASE)/gd-2.0.15\r
+endif\r
+# Edit the path below to point to your libpng sources or set environment var.\r
+ifndef LIBPNG\r
+LIBPNG = $(LIBBASE)/libpng-1.2.8\r
+endif\r
+# Edit the path below to point to your freetype sources or set environment var.\r
+ifndef LIBFT2\r
+#LIBFT2 = $(LIBBASE)/freetype-2.1.9\r
+LIBFT2 = $(LIBBASE)/../mingw32/freetype-2.1.9\r
+endif\r
+# Edit the path below to point to your freetype sources or set environment var.\r
+ifndef LIBART\r
+LIBART = $(LIBBASE)/libart_lgpl-2.3.3\r
+endif\r
+# Edit the path below to point to your zlib sources or set environment var.\r
+ifndef ZLIBSDK\r
+ZLIBSDK = $(LIBBASE)/zlib-1.2.3\r
+endif\r
+# Edit the path below to point to your zlib sources or set environment var.\r
+ifndef LIBCGI\r
+#LIBCGI = $(LIBBASE)/cgilib-0.4\r
+LIBCGI = d:/rrdtool-1.0.50/cgilib-0.4\r
+endif\r
+\r
+# The following line defines your compiler.\r
+ifdef METROWERKS\r
+ CC = mwcc\r
+else\r
+ CC = gcc\r
+endif\r
+# RM = rm -f\r
+CP = cp -fv\r
+\r
+# must be equal to DEBUG or NDEBUG\r
+DB = NDEBUG\r
+# DB = DEBUG\r
+# Optimization: -O<n> or debugging: -g\r
+ifeq ($(DB),NDEBUG)\r
+ OPT = -O2\r
+ OBJDIR = release\r
+else\r
+ OPT = -g\r
+ OBJDIR = debug\r
+endif\r
+\r
+# Include the version info retrieved from source.\r
+-include $(OBJDIR)/version.inc\r
+\r
+# Global flags for all compilers\r
+CFLAGS = $(OPT) -D$(DB) -DHAVE_CONFIG_H\r
+\r
+ifeq ($(CC),mwcc)\r
+LD = mwld\r
+CFLAGS += -gccinc -msgstyle gcc -inline off -opt nointrinsics -inst mmx -proc 586\r
+#CFLAGS += -w on,nounused,nounusedexpr\r
+#CFLAGS += -ansi strict\r
+CFLAGS += -ir "$(METROWERKS)/MSL" -ir "$(METROWERKS)/Win32-x86 Support"\r
+LD = mwld\r
+RC = mwwinrc\r
+LDFLAGS = -nostdlib\r
+LIBPATH += -lr "$(METROWERKS)/MSL" -lr "$(METROWERKS)/Win32-x86 Support"\r
+LDLIBS += -lkernel32.lib -luser32.lib\r
+LDLIBS += -lMSL_Runtime_x86.lib -lMSL_C_x86.lib -lMSL_Extras_x86.lib\r
+LIBEXT = lib\r
+RCFLAGS =\r
+else\r
+LD = gcc\r
+RC = windres\r
+LDFLAGS = -s\r
+LIBEXT = a\r
+RCFLAGS = -I rc -O coff -i\r
+CFLAGS += -Wall -Wno-format -Wno-unused # -pedantic\r
+endif\r
+\r
+ifndef COPYR\r
+ COPYR = Copyright (c) 2005 The Open Source Community.\r
+endif\r
+ifndef DESCR\r
+ DESCR = $(TARGET) Command Extension\r
+endif\r
+DESCR += - $(CC) build\r
+\r
+INCLUDES += -I. -I$(LIBGD) -I$(LIBPNG) -I$(LIBFT2)/include -I$(LIBART) -I$(ZLIBSDK)\r
+ifeq ($(SOURCE),rrd_cgi)\r
+INCLUDES += -I$(LIBCGI)\r
+endif\r
+\r
+CFLAGS += $(INCLUDES)\r
+\r
+vpath %.c . $(LIBGD) $(LIBPNG) $(LIBART)/libart_lgpl $(ZLIBSDK) $(LIBCGI)\r
+\r
+RRDLIBOBJS = \\r
+ $(OBJDIR)/rrd_afm.o \\r
+ $(OBJDIR)/rrd_afm_data.o \\r
+ $(OBJDIR)/rrd_create.o \\r
+ $(OBJDIR)/rrd_diff.o \\r
+ $(OBJDIR)/rrd_dump.o \\r
+ $(OBJDIR)/rrd_error.o \\r
+ $(OBJDIR)/rrd_fetch.o \\r
+ $(OBJDIR)/rrd_first.o \\r
+ $(OBJDIR)/rrd_format.o \\r
+ $(OBJDIR)/rrd_gfx.o \\r
+ $(OBJDIR)/rrd_graph.o \\r
+ $(OBJDIR)/rrd_graph_helper.o \\r
+ $(OBJDIR)/rrd_hw.o \\r
+ $(OBJDIR)/rrd_info.o \\r
+ $(OBJDIR)/rrd_last.o \\r
+ $(OBJDIR)/rrd_nan_inf.o \\r
+ $(OBJDIR)/rrd_open.o \\r
+ $(OBJDIR)/rrd_resize.o \\r
+ $(OBJDIR)/rrd_restore.o \\r
+ $(OBJDIR)/rrd_rpncalc.o \\r
+ $(OBJDIR)/rrd_tune.o \\r
+ $(OBJDIR)/rrd_update.o \\r
+ $(OBJDIR)/rrd_version.o \\r
+ $(OBJDIR)/rrd_xport.o \\r
+ $(OBJDIR)/rrd_not_thread_safe.o \\r
+ $(EOLIST)\r
+\r
+XLIBOBJS = \\r
+ $(OBJDIR)/art_rgba_svp.o \\r
+ $(OBJDIR)/getopt.o \\r
+ $(OBJDIR)/getopt1.o \\r
+ $(OBJDIR)/hash_32.o \\r
+ $(OBJDIR)/parsetime.o \\r
+ $(OBJDIR)/pngsize.o \\r
+ $(OBJDIR)/strftime.o \\r
+ $(EOLIST)\r
+\r
+GD2LIBOBJS = \\r
+ $(OBJDIR)/gd.o \\r
+ $(OBJDIR)/gd_io.o \\r
+ $(OBJDIR)/gd_io_dp.o \\r
+ $(OBJDIR)/gd_io_file.o \\r
+ $(OBJDIR)/gd_io_ss.o \\r
+ $(OBJDIR)/gd_png.o \\r
+ $(OBJDIR)/gd_ss.o \\r
+ $(OBJDIR)/gdcache.o \\r
+ $(OBJDIR)/gdfonts.o \\r
+ $(OBJDIR)/gdhelpers.o \\r
+ $(OBJDIR)/gdtables.o \\r
+ $(EOLIST)\r
+\r
+PNGLIBOBJS = \\r
+ $(OBJDIR)/png.o \\r
+ $(OBJDIR)/pngerror.o \\r
+ $(OBJDIR)/pngget.o \\r
+ $(OBJDIR)/pngmem.o \\r
+ $(OBJDIR)/pngpread.o \\r
+ $(OBJDIR)/pngread.o \\r
+ $(OBJDIR)/pngrio.o \\r
+ $(OBJDIR)/pngrtran.o \\r
+ $(OBJDIR)/pngrutil.o \\r
+ $(OBJDIR)/pngset.o \\r
+ $(OBJDIR)/pngtrans.o \\r
+ $(OBJDIR)/pngwio.o \\r
+ $(OBJDIR)/pngwrite.o \\r
+ $(OBJDIR)/pngwtran.o \\r
+ $(OBJDIR)/pngwutil.o \\r
+ $(EOLIST)\r
+ifeq "$(wildcard $(LIBPNG)/pnggccrd.c)" "$(LIBPNG)/pnggccrd.c"\r
+PNGLIBOBJS += \\r
+ $(OBJDIR)/pnggccrd.o \\r
+ $(OBJDIR)/pngvcrd.o \\r
+ $(EOLIST)\r
+endif\r
+\r
+ZLIBOBJS = \\r
+ $(OBJDIR)/adler32.o \\r
+ $(OBJDIR)/compress.o \\r
+ $(OBJDIR)/crc32.o \\r
+ $(OBJDIR)/deflate.o \\r
+ $(OBJDIR)/inflate.o \\r
+ $(OBJDIR)/inffast.o \\r
+ $(OBJDIR)/inftrees.o \\r
+ $(OBJDIR)/trees.o \\r
+ $(OBJDIR)/zutil.o \\r
+ $(EOLIST)\r
+ifeq "$(wildcard $(ZLIBSDK)/infblock.c)" "$(ZLIBSDK)/infblock.c"\r
+ZLIBOBJS += \\r
+ $(OBJDIR)/infblock.o \\r
+ $(OBJDIR)/infcodes.o \\r
+ $(OBJDIR)/infutil.o \\r
+ $(EOLIST)\r
+endif\r
+\r
+ARTLIBOBJS = \\r
+ $(patsubst $(LIBART)/libart_lgpl/%.c,$(OBJDIR)/%.o,$(wildcard $(LIBART)/libart_lgpl/art_*.c))\r
+\r
+OBJS = $(RRDLIBOBJS) $(XLIBOBJS) $(GD2LIBOBJS) $(PNGLIBOBJS) $(ARTLIBOBJS) $(ZLIBOBJS)\r
+ifeq ($(SOURCE),rrd_cgi)\r
+OBJS += $(OBJDIR)/cgi.o\r
+endif\r
+OBJS += $(OBJDIR)/$(SOURCE).o\r
+\r
+LDLIBS = $(LIBFT2)/objs/freetype.$(LIBEXT)\r
+\r
+\r
+all: $(OBJDIR) config.h $(OBJDIR)/$(TARGET).exe\r
+\r
+dist: all\r
+ -$(RM) $(OBJDIR)/*.o $(OBJDIR)/$(TARGET).map $(OBJDIR)/$(TARGET).ncv\r
+ -$(RM) $(OBJDIR)/$(TARGET).def $(OBJDIR)/$(TARGET).res\r
+\r
+install: all\r
+ @[ -d $(INSTDIR) ] || mkdir $(INSTDIR)\r
+ @$(CP) $(TARGET).exe $(INSTDIR)\r
+\r
+clean:\r
+ -$(RM) -r $(OBJDIR)\r
+ -$(RM) config.h\r
+\r
+$(OBJDIR):\r
+ @mkdir $(OBJDIR)\r
+\r
+$(OBJDIR)/version.inc: ../configure $(OBJDIR) get_ver.awk\r
+ @echo Creating $@\r
+ @awk -f get_ver.awk $< > $@\r
+\r
+$(OBJDIR)/%.o: %.c\r
+ @echo Compiling $<\r
+ @$(CC) $(CFLAGS) -c $< -o $@\r
+\r
+$(OBJDIR)/$(TARGET).exe: $(OBJS) $(OBJDIR)/$(TARGET).res\r
+ @echo Linking $@\r
+ @-$(RM) $@\r
+ @$(LD) $(LDFLAGS) $^ -o $@ $(LIBPATH) $(LDLIBS)\r
+\r
+$(OBJDIR)/%.res: $(OBJDIR)/%.rc\r
+ @echo Creating $@\r
+ @$(RC) $(RCFLAGS) $< -o $@\r
+\r
+$(OBJDIR)/%.rc: Makefile.Win32 $(OBJDIR)/version.inc \r
+ @echo 1 VERSIONINFO > $@\r
+ @echo FILEVERSION $(RRD_VERSION),0 >> $@\r
+ @echo PRODUCTVERSION $(RRD_VERSION),0 >> $@\r
+ @echo FILEFLAGSMASK 0x3fL >> $@\r
+ @echo FILEOS 0x40004L >> $@\r
+ @echo FILEFLAGS 0x0L >> $@\r
+ @echo FILETYPE 0x1L >> $@\r
+ @echo FILESUBTYPE 0x0L >> $@\r
+ @echo BEGIN >> $@\r
+ @echo BLOCK "StringFileInfo" >> $@\r
+ @echo BEGIN >> $@\r
+ @echo BLOCK "040904E4" >> $@\r
+ @echo BEGIN >> $@\r
+ @echo VALUE "LegalCopyright","$(COPYR)\0" >> $@\r
+# @echo VALUE "CompanyName","$(COMPANY)\0" >> $@\r
+ @echo VALUE "ProductName","$(TARGET).exe\0" >> $@\r
+ @echo VALUE "ProductVersion","$(RRD_VERSION_STR)\0" >> $@\r
+ @echo VALUE "License","Released under GPL.\0" >> $@\r
+ @echo VALUE "FileDescription","$(DESCR)\0" >> $@\r
+ @echo VALUE "FileVersion","$(RRD_VERSION_STR)\0" >> $@\r
+ @echo VALUE "InternalName","$(TARGET)\0" >> $@\r
+ @echo VALUE "OriginalFilename","$(TARGET).exe\0" >> $@\r
+ifdef WWWURL\r
+ @echo VALUE "WWW","$(WWWURL)\0" >> $@\r
+endif\r
+ @echo END >> $@\r
+ @echo END >> $@\r
+ @echo BLOCK "VarFileInfo" >> $@\r
+ @echo BEGIN >> $@\r
+ @echo VALUE "Translation", 0x409, 1252 >> $@\r
+ @echo END >> $@\r
+ @echo END >> $@\r
+ifdef ICON\r
+ @echo 1 ICON DISCARDABLE "$(ICON)" >> $@\r
+endif\r
+\r
+config.h: Makefile.Win32 $(OBJDIR)/version.inc\r
+ @echo Creating $@\r
+ @echo $(DL)/* $@ for NetWare target.$(DL) > $@\r
+ @echo $(DL)** Do not edit this file - it is created by make!$(DL) >> $@\r
+ @echo $(DL)** All your changes will be lost!!$(DL) >> $@\r
+ @echo $(DL)*/$(DL) >> $@\r
+ @echo $(DL)#define OS "i586-pc-Win32"$(DL) >> $@\r
+ @echo $(DL)#define PACKAGE_VERSION "$(RRD_VERSION_STR)"$(DL) >> $@\r
+ @echo $(DL)#define PACKAGE_BUGREPORT "tobi@oetiker.ch"$(DL) >> $@\r
+ @echo $(DL)#define NUMVERS $(RRD_NUMVERS)$(DL) >> $@\r
+ @echo $(DL)#define HAVE_ASSERT_H 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_DLFCN_H 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_DLOPEN 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_ERR_H 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_ERRNO_H 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_FCNTL_H 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_FIONBIO 1$(DL) >> $@\r
+# @echo $(DL)#define HAVE_GETTIMEOFDAY 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_INTTYPES_H 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_LIMITS_H 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_LONGLONG 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_LOCALE_H 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_MALLOC_H 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_MATH_H 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_MBSTOWCS 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_SELECT 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_SETJMP_H 1$(DL) >> $@\r
+# @echo $(DL)#define HAVE_SIGNAL 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_SNPRINTF 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_STDARG_H 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_STDDEF_H 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_STDINT_H 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_STDLIB_H 1$(DL) >> $@\r
+# @echo $(DL)#define HAVE_STRCASECMP 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_STRDUP 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_STRFTIME 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_STRING_H 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_STRLCAT 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_STRLCPY 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_STRSTR 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_SYS_PARAM_H 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_SYS_SELECT_H 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_SYS_STAT_H 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_SYS_TIME_H 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_TERMIOS_H 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_TIME_H 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_UNAME 1$(DL) >> $@\r
+# @echo $(DL)#define HAVE_UNISTD_H 1$(DL) >> $@\r
+ @echo $(DL)#define STDC_HEADERS 1$(DL) >> $@\r
+ @echo $(DL)#define TIME_WITH_SYS_TIME 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_ZLIB_H 1$(DL) >> $@\r
+ @echo $(DL)#define HAVE_LIBZ 1$(DL) >> $@\r
+ @echo $(DL)#define rrd_realloc(a,b) realloc((a), (b))$(DL) >> $@\r
+ @echo $(DL)#define RRDGRAPH_YLEGEND_ANGLE 90.0$(DL) >> $@\r
+\r
+\r