put all the architecture specific stuff in separate subdirectories ... one for netwar...
[rrdtool.git] / netware / Makefile
1 # Gnu Makefile for NetWare target * 25-Aug-2006
2 # for use with gcc/nlmconv or Metrowerks CodeWarrior compiler
3 # use with: make -f Makefile [all|clean|dist|distclean|help]
4
5 DESCR   = Round Robin Database Tool $(RRD_VERSION_STR)
6 COPYR   = Copyright (c) 1997-2006 by Tobias Oetiker
7 WWWURL  = http://www.rrdtool.org/
8 MTSAFE  = YES
9 #SCREEN = $(DESCR)
10 STACK   = 65535
11 # Comment the line below if you dont want to load protected automatically.
12 #LDRING = 3
13
14 # You can set the default font used in graphs.
15 # If not set here RRD defaults to DejaVuSansMono-Roman.ttf
16 #RRD_DEFAULT_FONT = "sys:/java/nwgfx/lib/x11/fonts/ttf/tt0003m_.ttf"
17 #RRD_DEFAULT_FONT = "VeraMono.ttf"
18
19 # Vertical label angle: 90.0 (default) or 270.0
20 RRDGRAPH_YLEGEND_ANGLE = 90.0
21
22 # Set to one if you want to have piecharts.
23 WITH_PIECHART = 0
24
25 # Set the extension used for rrdcgi.
26 ifndef CGIEXT
27 CGIEXT  = nlm
28 endif
29
30 # Edit the path below to point to your Novell NDK.
31 ifndef NDKBASE
32 NDKBASE = c:/novell
33 endif
34
35 # Base for the lib sources
36 ifndef LIBBASE
37 LIBBASE = ../..
38 endif
39 # All library code is statically linked to avoid problems with other lib NLMs.
40 # Edit the path below to point to your libpng sources or set environment var.
41 ifndef LIBPNG
42 LIBPNG  = $(LIBBASE)/libpng-1.2.12
43 endif
44 # Edit the path below to point to your freetype sources or set environment var.
45 ifndef LIBFT2
46 LIBFT2  = $(LIBBASE)/freetype-2.2.1
47 endif
48 # Edit the path below to point to your libart sources or set environment var.
49 ifndef LIBART
50 LIBART  = $(LIBBASE)/libart_lgpl-2.3.17
51 endif
52 # Edit the path below to point to your zlib sources or set environment var.
53 ifndef ZLIBSDK
54 ZLIBSDK = $(LIBBASE)/zlib-1.2.3
55 endif
56
57 # Edit the path below to point to your distribution folder.
58 ifndef DISTDIR
59 DISTDIR = rrdtool-$(RRD_VERSION_STR)-nw
60 endif
61 ARCHIVE = $(DISTDIR).zip
62
63 # whatever...
64 # NO_NULL_REALLOC = 1
65
66 # Edit the var below to point to your lib architecture.
67 ifndef LIBARCH
68 # LIBARCH = CLIB
69 LIBARCH = LIBC
70 endif
71
72 # The following line defines your compiler.
73 ifdef METROWERKS
74         CC = mwccnlm
75 else
76         CC = gcc
77 endif
78 # RM    = rm -f
79 CP      = cp -afv
80 # if you want to mark the target as MTSAFE you will need a tool for
81 # generating the xdc data for the linker; here's a minimal tool:
82 # http://www.gknw.net/development/prgtools/mkxdc.zip
83 MPKXDC  = mkxdc
84 # CodeWarrior is too stupid to set the internal name properly when
85 # the extension is not a NLM and not a registered type. So we need
86 # to fix that after linking (since CGI isnt a known type - argh!):
87 # http://www.gknw.net/development/prgtools/fixnlmname.zip
88 FIXNLMN = fixnlmname #-q
89 # Here you can find a native Win32 binary of the original awk:
90 # http://www.gknw.net/development/prgtools/awk.zip
91 AWK     = awk
92 ZIP     = zip -qzR9
93
94 # must be equal to DEBUG or NDEBUG
95 DB      = NDEBUG
96 # DB    = DEBUG
97 # Optimization: -O<n> or debugging: -g
98 ifeq ($(DB),NDEBUG)
99         OPT     = -O2
100         OBJDIR  = release
101 else
102         OPT     = -g
103         OBJDIR  = debug
104 endif
105
106 # Project root
107 PROOT   = ..
108
109 # Include the version info retrieved from source.
110 -include $(OBJDIR)/version.inc
111
112 # Global flags for all compilers
113 CFLAGS  = $(OPT) -D$(DB) -nostdinc -DNETWARE -DN_PLAT_NLM -D_POSIX_SOURCE
114 CFLAGS  += -DHAVE_CONFIG_H
115
116 ifeq ($(CC),mwccnlm)
117 LD      = mwldnlm
118 LDFLAGS = -nostdlib $^ $(PRELUDE) $(LDLIBS) -o $@ -commandfile
119 AR      = $(LD)
120 ARFLAGS = -type library -w nocmdline $(OBJS) -o
121 LIBEXT  = lib
122 CFLAGS  += -gccinc -inline off -opt nointrinsics -proc 586
123 CFLAGS  += -relax_pointers
124 #CFLAGS += -w on,nounused,nounusedexpr # -ansi strict
125 ifeq ($(LIBARCH),LIBC)
126         PRELUDE = $(SDK_LIBC)/imports/libcpre.o
127         CFLAGS += -align 4
128 else
129         PRELUDE = "$(METROWERKS)/Novell Support/libraries/runtime/prelude.obj"
130         CFLAGS += -include "$(METROWERKS)/Novell Support/headers/nlm_prefix.h"
131         CFLAGS += -align 1
132 endif
133 else
134 LD      = nlmconv
135 LDFLAGS = -T
136 AR      = ar
137 ARFLAGS = -cq
138 LIBEXT  = a
139 CFLAGS  += -fno-builtin -fpack-struct -fpcc-struct-return -fno-strict-aliasing
140 CFLAGS  += -Wall -Wno-unused # -pedantic
141 ifeq ($(LIBARCH),LIBC)
142         PRELUDE = $(SDK_LIBC)/imports/libcpre.gcc.o
143 else
144         PRELUDE = $(NDK_ROOT)/pre/prelude.o
145         CFLAGS += -include $(NDKBASE)/nlmconv/genlm.h
146 endif
147 endif
148
149 ifeq ($(findstring linux,$(OSTYPE)),linux)
150 #include $(NDKBASE)/nlmconv/ncpfs.inc
151 DL      = '
152 endif
153
154 ifeq ($(MTSAFE),YES)
155         XDCOPT = -n
156 endif
157 ifeq ($(MTSAFE),NO)
158         XDCOPT = -u
159 endif
160 ifndef COPYR
161         COPYR = Copyright (c) 2006 The Open Source Community.
162 endif
163 ifndef DESCR
164         DESCR = $(notdir $(@:.def=)) Command Extension
165 endif
166 DESCR += ($(LIBARCH)) - $(CC) build
167
168 NDK_ROOT = $(NDKBASE)/ndk
169 SDK_CLIB = $(NDK_ROOT)/nwsdk
170 SDK_LIBC = $(NDK_ROOT)/libc
171
172 INCLUDES += -I$(PROOT) -I$(PROOT)/src -I$(LIBPNG) -I$(LIBFT2)/include -I$(LIBART) -I$(ZLIBSDK)
173
174 ifeq ($(LIBARCH),LIBC)
175         INCLUDES += -I$(SDK_LIBC)/include -I$(SDK_LIBC)/include/nks
176 else
177         INCLUDES += -I$(SDK_CLIB)/include/nlm -I$(SDK_CLIB)/include
178 endif
179
180 CFLAGS += $(INCLUDES)
181
182 vpath %.c $(PROOT)/src $(LIBPNG) $(LIBART)/libart_lgpl $(ZLIBSDK)
183
184 RRDLIBOBJS      = \
185         $(OBJDIR)/rrd_afm.o \
186         $(OBJDIR)/rrd_afm_data.o \
187         $(OBJDIR)/rrd_create.o \
188         $(OBJDIR)/rrd_diff.o \
189         $(OBJDIR)/rrd_dump.o \
190         $(OBJDIR)/rrd_error.o \
191         $(OBJDIR)/rrd_fetch.o \
192         $(OBJDIR)/rrd_first.o \
193         $(OBJDIR)/rrd_format.o \
194         $(OBJDIR)/rrd_gfx.o \
195         $(OBJDIR)/rrd_graph.o \
196         $(OBJDIR)/rrd_graph_helper.o \
197         $(OBJDIR)/rrd_hw.o \
198         $(OBJDIR)/rrd_info.o \
199         $(OBJDIR)/rrd_last.o \
200         $(OBJDIR)/rrd_nan_inf.o \
201         $(OBJDIR)/rrd_open.o \
202         $(OBJDIR)/rrd_resize.o \
203         $(OBJDIR)/rrd_restore.o \
204         $(OBJDIR)/rrd_rpncalc.o \
205         $(OBJDIR)/rrd_tune.o \
206         $(OBJDIR)/rrd_update.o \
207         $(OBJDIR)/rrd_version.o \
208         $(OBJDIR)/rrd_xport.o \
209         $(OBJDIR)/rrd_thread_safe.o \
210         $(EOLIST)
211
212 XLIBOBJS        = \
213         $(OBJDIR)/art_rgba_svp.o \
214         $(OBJDIR)/getopt.o \
215         $(OBJDIR)/getopt1.o \
216         $(OBJDIR)/hash_32.o \
217         $(OBJDIR)/parsetime.o \
218         $(OBJDIR)/pngsize.o \
219         $(EOLIST)
220
221 PNGLIBOBJS      = \
222         $(OBJDIR)/png.o \
223         $(OBJDIR)/pngerror.o \
224         $(OBJDIR)/pngget.o \
225         $(OBJDIR)/pngmem.o \
226         $(OBJDIR)/pngpread.o \
227         $(OBJDIR)/pngread.o \
228         $(OBJDIR)/pngrio.o \
229         $(OBJDIR)/pngrtran.o \
230         $(OBJDIR)/pngrutil.o \
231         $(OBJDIR)/pngset.o \
232         $(OBJDIR)/pngtrans.o \
233         $(OBJDIR)/pngwio.o \
234         $(OBJDIR)/pngwrite.o \
235         $(OBJDIR)/pngwtran.o \
236         $(OBJDIR)/pngwutil.o \
237         $(EOLIST)
238 ifeq "$(wildcard $(LIBPNG)/pnggccrd.c)" "$(LIBPNG)/pnggccrd.c"
239 PNGLIBOBJS      += \
240         $(OBJDIR)/pnggccrd.o \
241         $(OBJDIR)/pngvcrd.o \
242         $(EOLIST)
243 endif
244
245 ZLIBOBJS        = \
246         $(OBJDIR)/adler32.o \
247         $(OBJDIR)/compress.o \
248         $(OBJDIR)/crc32.o \
249         $(OBJDIR)/deflate.o \
250         $(OBJDIR)/inflate.o \
251         $(OBJDIR)/inffast.o \
252         $(OBJDIR)/inftrees.o \
253         $(OBJDIR)/trees.o \
254         $(OBJDIR)/zutil.o \
255         $(EOLIST)
256 ifeq "$(wildcard $(ZLIBSDK)/infblock.c)" "$(ZLIBSDK)/infblock.c"
257 ZLIBOBJS        += \
258         $(OBJDIR)/infblock.o \
259         $(OBJDIR)/infcodes.o \
260         $(OBJDIR)/infutil.o \
261         $(EOLIST)
262 endif
263
264 ARTLIBOBJS      = \
265         $(patsubst $(LIBART)/libart_lgpl/%.c,$(OBJDIR)/%.o,$(wildcard $(LIBART)/libart_lgpl/art_*.c))
266
267 OBJS    := $(RRDLIBOBJS) $(XLIBOBJS) $(PNGLIBOBJS) $(ARTLIBOBJS) $(ZLIBOBJS)
268 OBJCGI  := $(OBJS) $(OBJDIR)/rrd_cgi.o
269 OBJTOOL := $(OBJS) $(OBJDIR)/rrd_tool.o
270
271 LDLIBS  += $(LIBFT2)/builds/netware/libc/libft2.$(LIBEXT)
272
273
274 all: rrdtool rrdcgi
275
276 rrdtool: $(OBJDIR) $(PROOT)/config.h $(OBJDIR)/rrdtool.nlm
277 rrdcgi: $(OBJDIR) $(PROOT)/config.h $(OBJDIR)/rrdcgi.$(CGIEXT)
278 librrd: $(OBJDIR) $(PROOT)/config.h $(OBJDIR)/librrd.$(LIBEXT)
279
280 dist: all $(DISTDIR) $(DISTDIR)/readme.txt
281 #       @-$(CP) $(OBJDIR)/librrd.$(LIBEXT) $(DISTDIR)
282         @-$(CP) $(OBJDIR)/rrdcgi.$(CGIEXT) $(DISTDIR)
283         @-$(CP) $(OBJDIR)/rrdtool.nlm $(DISTDIR)
284         @-$(CP) $(PROOT)/src/*.ttf $(DISTDIR)
285         @-$(CP) $(PROOT)/CHANGES $(DISTDIR)
286         @-$(CP) $(PROOT)/COPYING $(DISTDIR)
287         @-$(CP) $(PROOT)/COPYRIGHT $(DISTDIR)
288         @-$(CP) $(PROOT)/NEWS $(DISTDIR)
289         @-$(CP) $(PROOT)/README $(DISTDIR)
290         @echo Creating $(ARCHIVE)
291         @$(ZIP) $(ARCHIVE) $(DISTDIR)/* < $(DISTDIR)/readme.txt
292
293 clean:
294         -$(RM) -r $(OBJDIR)
295         -$(RM) $(PROOT)/config.h
296
297 distclean: clean
298         -$(RM) -r $(DISTDIR)
299         -$(RM) $(ARCHIVE)
300
301 $(OBJDIR):
302         @mkdir $@
303
304 $(DISTDIR):
305         @mkdir $@
306
307 $(OBJDIR)/%.o: %.c
308         @echo Compiling $<
309         @$(CC) $(CFLAGS) -c $< -o $@
310
311 $(OBJDIR)/version.inc: $(PROOT)/configure.ac $(OBJDIR) $(PROOT)/src/get_ver.awk
312         @echo Creating $@
313         @$(AWK) -f $(PROOT)/src/get_ver.awk $< > $@
314
315 $(OBJDIR)/rrdcgi.$(CGIEXT): $(OBJCGI) $(OBJDIR)/rrdcgi.def $(OBJDIR)/rrdcgi.xdc
316         @echo Linking $@
317         @-$(RM) $@
318         @$(LD) $(LDFLAGS) $(@:.$(CGIEXT)=.def)
319 ifneq ($(CGIEXT),nlm)
320 ifeq ($(LD),mwldnlm)
321         @$(FIXNLMN) $@
322 endif
323 endif
324
325 $(OBJDIR)/rrdtool.nlm: $(OBJTOOL) $(OBJDIR)/rrdtool.def $(OBJDIR)/rrdtool.xdc
326         @echo Linking $@
327         @-$(RM) $@
328         @$(LD) $(LDFLAGS) $(@:.nlm=.def)
329
330 $(OBJDIR)/librrd.$(LIBEXT): $(OBJS)
331         @echo Creating $@
332         @-$(RM) $@
333         @$(AR) $(ARFLAGS) $@ $^
334
335 $(OBJDIR)/%.xdc: Makefile
336         @echo Creating $@
337         @$(MPKXDC) $(XDCOPT) $@
338
339 $(OBJDIR)/%.def: Makefile $(OBJDIR)/version.inc
340         @echo $(DL)# DEF Linker File for use with gcc and nlmconv$(DL) > $@
341         @echo $(DL)# or with Codewarrior command line compiler.$(DL) >> $@
342         @echo $(DL)# Do not edit this file - it is created by make!$(DL) >> $@
343         @echo $(DL)# All your changes will be lost!!$(DL) >> $@
344         @echo $(DL)#$(DL) >> $@
345         @echo $(DL)copyright "$(COPYR)"$(DL) >> $@
346         @echo $(DL)description "$(DESCR)"$(DL) >> $@
347         @echo $(DL)version $(RRD_VERSION)$(DL) >> $@
348 ifdef NLMTYPE
349         @echo $(DL)type $(NLMTYPE)$(DL) >> $@
350 else
351         @echo $(DL)type 0$(DL) >> $@
352 endif
353 ifdef STACK
354         @echo $(DL)stack $(STACK)$(DL) >> $@
355 endif
356         @echo $(DL)threadname "$(notdir $(@:.def=))"$(DL) >> $@
357 ifdef SCREEN
358         @echo $(DL)screenname "$(SCREEN)"$(DL) >> $@
359 else
360         @echo $(DL)screenname "DEFAULT"$(DL) >> $@
361 endif
362 ifeq ($(DB),DEBUG)
363         @echo $(DL)debug$(DL) >> $@
364 endif
365 ifeq ($(LIBARCH),CLIB)
366         @echo $(DL)start _Prelude$(DL) >> $@
367         @echo $(DL)exit _Stop$(DL) >> $@
368         @echo $(DL)import @$(NDK_ROOT)/nwsdk/imports/clib.imp$(DL) >> $@
369         @echo $(DL)import @$(NDK_ROOT)/nwsdk/imports/threads.imp$(DL) >> $@
370         @echo $(DL)import @$(NDK_ROOT)/nwsdk/imports/nlmlib.imp$(DL) >> $@
371         @echo $(DL)module clib$(DL) >> $@
372 else
373         @echo $(DL)start _LibCPrelude$(DL) >> $@
374         @echo $(DL)exit _LibCPostlude$(DL) >> $@
375         @echo $(DL)check _LibCCheckUnload$(DL) >> $@
376         @echo $(DL)import @$(NDK_ROOT)/libc/imports/libc.imp$(DL) >> $@
377         @echo $(DL)import @$(NDK_ROOT)/libc/imports/netware.imp$(DL) >> $@
378         @echo $(DL)module libc$(DL) >> $@
379         @echo $(DL)pseudopreemption$(DL) >> $@
380         @echo $(DL)flag_on 64$(DL) >> $@
381 endif
382 ifeq ($(LDRING),0)
383         @echo $(DL)flag_on 16$(DL) >> $@
384 endif
385 ifeq ($(LDRING),3)
386         @echo $(DL)flag_on 512$(DL) >> $@
387 endif
388 ifdef XDCOPT
389         @echo $(DL)xdcdata $(@:.def=.xdc)$(DL) >> $@
390 endif
391 ifeq ($(LD),nlmconv)
392         @echo $(DL)input $(OBJS) $(LDLIBS)$(DL) >> $@
393         @echo $(DL)input $(PRELUDE)$(DL) >> $@
394         @echo $(DL)output $(notdir $(@:.def=.nlm))$(DL) >> $@
395 endif
396
397 $(PROOT)/config.h: Makefile
398         @echo Creating $@
399         @echo $(DL)/* $@ for NetWare target.$(DL) > $@
400         @echo $(DL)** Do not edit this file - it is created by make!$(DL) >> $@
401         @echo $(DL)** All your changes will be lost!!$(DL) >> $@
402         @echo $(DL)*/$(DL) >> $@
403         @echo $(DL)#define OS "i586-pc-NetWare"$(DL) >> $@
404         @echo $(DL)#define PACKAGE_VERSION "$(RRD_VERSION_STR)"$(DL) >> $@
405         @echo $(DL)#define PACKAGE_BUGREPORT "tobi@oetiker.ch"$(DL) >> $@
406         @echo $(DL)#define NUMVERS $(RRD_NUMVERS)$(DL) >> $@
407         @echo $(DL)#define HAVE_ASSERT_H 1$(DL) >> $@
408         @echo $(DL)#define HAVE_DLFCN_H 1$(DL) >> $@
409         @echo $(DL)#define HAVE_DLOPEN 1$(DL) >> $@
410         @echo $(DL)#define HAVE_ERR_H 1$(DL) >> $@
411         @echo $(DL)#define HAVE_ERRNO_H 1$(DL) >> $@
412         @echo $(DL)#define HAVE_FCNTL_H 1$(DL) >> $@
413         @echo $(DL)#define HAVE_FIONBIO 1$(DL) >> $@
414         @echo $(DL)#define HAVE_FLOAT_H 1$(DL) >> $@
415         @echo $(DL)#define HAVE_GETTIMEOFDAY 1$(DL) >> $@
416         @echo $(DL)#define HAVE_INTTYPES_H 1$(DL) >> $@
417         @echo $(DL)#define HAVE_LIMITS_H 1$(DL) >> $@
418         @echo $(DL)#define HAVE_LONGLONG 1$(DL) >> $@
419         @echo $(DL)#define HAVE_LOCALE_H 1$(DL) >> $@
420         @echo $(DL)#define HAVE_MALLOC_H 1$(DL) >> $@
421         @echo $(DL)#define HAVE_MATH_H 1$(DL) >> $@
422         @echo $(DL)#define HAVE_MBSTOWCS 1$(DL) >> $@
423         @echo $(DL)#define HAVE_MEMMOVE 1$(DL) >> $@
424         @echo $(DL)#define HAVE_MKTIME 1$(DL) >> $@
425         @echo $(DL)#define HAVE_SELECT 1$(DL) >> $@
426         @echo $(DL)#define HAVE_SETLOCALE 1$(DL) >> $@
427         @echo $(DL)#define HAVE_SETJMP_H 1$(DL) >> $@
428 #       @echo $(DL)#define HAVE_SIGNAL 1$(DL) >> $@
429         @echo $(DL)#define HAVE_SNPRINTF 1$(DL) >> $@
430         @echo $(DL)#define HAVE_STDARG_H 1$(DL) >> $@
431         @echo $(DL)#define HAVE_STDDEF_H 1$(DL) >> $@
432         @echo $(DL)#define HAVE_STDINT_H 1$(DL) >> $@
433         @echo $(DL)#define HAVE_STDLIB_H 1$(DL) >> $@
434         @echo $(DL)#define HAVE_STRCASECMP 1$(DL) >> $@
435         @echo $(DL)#define HAVE_STRDUP 1$(DL) >> $@
436         @echo $(DL)#define HAVE_STRFTIME 1$(DL) >> $@
437         @echo $(DL)#define HAVE_STRING_H 1$(DL) >> $@
438         @echo $(DL)#define HAVE_STRLCAT 1$(DL) >> $@
439         @echo $(DL)#define HAVE_STRLCPY 1$(DL) >> $@
440         @echo $(DL)#define HAVE_STRSTR 1$(DL) >> $@
441         @echo $(DL)#define HAVE_SYS_PARAM_H 1$(DL) >> $@
442         @echo $(DL)#define HAVE_SYS_SELECT_H 1$(DL) >> $@
443         @echo $(DL)#define HAVE_SYS_STAT_H 1$(DL) >> $@
444         @echo $(DL)#define HAVE_SYS_TIME_H 1$(DL) >> $@
445         @echo $(DL)#define HAVE_SYS_TYPES_H 1$(DL) >> $@
446         @echo $(DL)#define HAVE_TIME_H 1$(DL) >> $@
447         @echo $(DL)#define HAVE_TZSET 1$(DL) >> $@
448         @echo $(DL)#define HAVE_UNAME 1$(DL) >> $@
449         @echo $(DL)#define HAVE_UNISTD_H 1$(DL) >> $@
450         @echo $(DL)#define HAVE_VSNPRINTF 1$(DL) >> $@
451         @echo $(DL)#define STDC_HEADERS 1$(DL) >> $@
452         @echo $(DL)#define TIME_WITH_SYS_TIME 1$(DL) >> $@
453         @echo $(DL)#define HAVE_ZLIB_H 1$(DL) >> $@
454         @echo $(DL)#define HAVE_LIBZ 1$(DL) >> $@
455 ifdef NO_NULL_REALLOC
456         @echo $(DL)#define NO_NULL_REALLOC 1$(DL) >> $@
457         @echo $(DL)#define rrd_realloc(a,b) ( (a) == NULL ? malloc( (b) ) : realloc( (a) , (b) ))$(DL) >> $@
458 else
459         @echo $(DL)#define rrd_realloc(a,b) realloc((a), (b))$(DL) >> $@
460 endif
461 ifdef RRD_DEFAULT_FONT
462         @echo $(DL)#define RRD_DEFAULT_FONT $(RRD_DEFAULT_FONT)$(DL) >> $@
463 endif
464         @echo $(DL)#define RRDGRAPH_YLEGEND_ANGLE $(RRDGRAPH_YLEGEND_ANGLE)$(DL) >> $@
465 ifdef WITH_PIECHART
466         @echo $(DL)#define WITH_PIECHART 1$(DL) >> $@
467 endif
468
469 $(DISTDIR)/readme.txt: Makefile
470         @echo Creating $@
471         @echo $(DL)This is a binary distribution for NetWare platform.$(DL) > $@
472         @echo $(DL)RRDTool version $(RRD_VERSION_STR)$(DL) >> $@
473         @echo $(DL)Please download the complete RRDTool package for$(DL) >> $@
474         @echo $(DL)any further documentation:$(DL) >> $@
475         @echo $(DL)$(WWWURL)$(DL) >> $@
476
477 help:
478         @echo $(DL)===========================================================$(DL)
479         @echo $(DL)Novell NDK Base = $(NDKBASE)$(DL)
480         @echo $(DL)libpng Source   = $(LIBPNG)$(DL)
481         @echo $(DL)libart Source   = $(LIBART)$(DL)
482         @echo $(DL)Freetype 2 SDK  = $(LIBFT2)$(DL)
483         @echo $(DL)Zlib SDK        = $(ZLIBSDK)$(DL)
484         @echo $(DL)===========================================================$(DL)
485         @echo $(DL)RRDTool $(RRD_VERSION_STR) - available targets are:$(DL)
486         @echo $(DL)$(MAKE) all$(DL)
487         @echo $(DL)$(MAKE) rrdtool$(DL)
488         @echo $(DL)$(MAKE) rrdcgi$(DL)
489         @echo $(DL)$(MAKE) librrd$(DL)
490         @echo $(DL)$(MAKE) clean$(DL)
491         @echo $(DL)$(MAKE) dist$(DL)
492         @echo $(DL)$(MAKE) distclean$(DL)
493         @echo $(DL)===========================================================$(DL)
494
495