Code

Imported upstream SVN snapshot 1.4~rc2+20090928.
authorSebastian Harl <sh@tokkee.org>
Wed, 30 Sep 2009 19:34:29 +0000 (21:34 +0200)
committerSebastian Harl <sh@tokkee.org>
Wed, 30 Sep 2009 19:34:29 +0000 (21:34 +0200)
This is based on SVN trunk at revision 1918.

162 files changed:
CHANGES
CONTRIBUTORS
COPYRIGHT
Makefile.am
Makefile.in
NEWS
README
TODO
aclocal.m4
autogen.sh
bindings/Makefile.in
bindings/lua/Makefile.in
bindings/lua/compat-5.1r5/compat-5.1.c
bindings/lua/compat-5.1r5/compat-5.1.h
bindings/lua/compat-5.1r5/compat-5.1.lua
bindings/python/rrdtoolmodule.c
bindings/ruby/main.c
bindings/tcl/Makefile.in
bindings/tcl/tclrrd.c
config.guess
config.sub
configure
configure.ac
doc/Makefile.am
doc/Makefile.in
doc/RRDp.html
doc/RRDs.html
doc/bin_dec_hex.1
doc/bin_dec_hex.html
doc/bin_dec_hex.pod
doc/bin_dec_hex.txt
doc/cdeftutorial.1
doc/cdeftutorial.html
doc/cdeftutorial.txt
doc/librrd.1 [deleted file]
doc/librrd.3 [new file with mode: 0644]
doc/librrd.html
doc/librrd.pod
doc/librrd.txt
doc/rpntutorial.1
doc/rpntutorial.html
doc/rpntutorial.txt
doc/rrd-beginners.1
doc/rrd-beginners.html
doc/rrd-beginners.pod
doc/rrd-beginners.txt
doc/rrdbuild.1
doc/rrdbuild.html
doc/rrdbuild.txt
doc/rrdcached.1
doc/rrdcached.html
doc/rrdcached.pod
doc/rrdcached.txt
doc/rrdcgi.1
doc/rrdcgi.html
doc/rrdcgi.txt
doc/rrdcreate.1
doc/rrdcreate.html
doc/rrdcreate.txt
doc/rrddump.1
doc/rrddump.html
doc/rrddump.txt
doc/rrdfetch.1
doc/rrdfetch.html
doc/rrdfetch.txt
doc/rrdfirst.1
doc/rrdfirst.html
doc/rrdfirst.txt
doc/rrdflushcached.1
doc/rrdflushcached.html
doc/rrdflushcached.txt
doc/rrdgraph.1
doc/rrdgraph.html
doc/rrdgraph.pod
doc/rrdgraph.txt
doc/rrdgraph_data.1
doc/rrdgraph_data.html
doc/rrdgraph_data.txt
doc/rrdgraph_examples.1
doc/rrdgraph_examples.html
doc/rrdgraph_examples.txt
doc/rrdgraph_graph.1
doc/rrdgraph_graph.html
doc/rrdgraph_graph.txt
doc/rrdgraph_libdbi.1 [new file with mode: 0644]
doc/rrdgraph_libdbi.html [new file with mode: 0644]
doc/rrdgraph_libdbi.txt [new file with mode: 0644]
doc/rrdgraph_rpn.1
doc/rrdgraph_rpn.html
doc/rrdgraph_rpn.txt
doc/rrdinfo.1
doc/rrdinfo.html
doc/rrdinfo.txt
doc/rrdlast.1
doc/rrdlast.html
doc/rrdlast.txt
doc/rrdlastupdate.1
doc/rrdlastupdate.html
doc/rrdlastupdate.txt
doc/rrdlua.1 [new file with mode: 0644]
doc/rrdlua.html [new file with mode: 0644]
doc/rrdlua.txt [new file with mode: 0644]
doc/rrdresize.1
doc/rrdresize.html
doc/rrdresize.txt
doc/rrdrestore.1
doc/rrdrestore.html
doc/rrdrestore.txt
doc/rrdthreads.1
doc/rrdthreads.html
doc/rrdthreads.txt
doc/rrdtool.1
doc/rrdtool.html
doc/rrdtool.txt
doc/rrdtune.1
doc/rrdtune.html
doc/rrdtune.txt
doc/rrdtutorial.1
doc/rrdtutorial.html
doc/rrdtutorial.txt
doc/rrdupdate.1
doc/rrdupdate.html
doc/rrdupdate.txt
doc/rrdxport.1
doc/rrdxport.html
doc/rrdxport.txt
examples/Makefile.in
examples/rrdcached/Makefile.in
libtool
ltmain.sh
m4/acinclude.m4
m4/libtool.m4
po/rrdtool.pot
rrd_config.h.in
rrdtool.spec
src/Makefile.in
src/fnv.h
src/librrd.sym.in.in
src/rrd.h
src/rrd_client.h
src/rrd_config_bottom.h
src/rrd_daemon.c
src/rrd_diff.c
src/rrd_dump.c
src/rrd_error.c
src/rrd_fetch.c
src/rrd_format.c
src/rrd_graph.c
src/rrd_graph.h
src/rrd_info.c
src/rrd_is_thread_safe.h
src/rrd_not_thread_safe.c
src/rrd_open.c
src/rrd_restore.c
src/rrd_thread_safe.c
src/rrd_thread_safe_nt.c
src/rrd_tool.c
src/rrd_tune.c
src/rrd_update.c
src/rrd_utils.c
src/rrdupdate.c
win32/rrd_config.h.msvc

diff --git a/CHANGES b/CHANGES
index 108b086003b624f36922de278bc6d6da7d12b94e..892fd36148e6338aed1be0a1c983133faea24edd 100644 (file)
--- a/CHANGES
+++ b/CHANGES
-------------------------------------------------------------------------
-r1857 | oetiker | 2009-06-08 07:12:26 +0200 | 2 lines
+2009-09-28 16:21  oetiker
 
-make config.h a symlink to rrd_config.h so that intl/Makefile is happy
+       * doc/librrd.pod: Moved rrd_dump_cb_r() to section "CORE FUNCTIONS"
+         since this is not a utility function but rather part of RRDtool's
+         core. -- Sebastian Harl
 
-------------------------------------------------------------------------
-r1856 | oetiker | 2009-06-08 06:56:56 +0200 | 4 lines
+2009-09-28 16:16  oetiker
 
-Relax automake requirements and make 1.11 features optional -- kevin brintnall
+       * doc/Makefile.am: Moved the 'librrd' manpage to section 3 --
+         Sebastian Harl
 
+2009-09-28 16:16  oetiker
 
+       * doc/librrd.pod: documentation for rrd_mkdir_p added -- Sebastian
+         Harl
 
-------------------------------------------------------------------------
-r1855 | oetiker | 2009-06-07 22:48:39 +0200 | 2 lines
+2009-09-28 16:16  oetiker
 
-fix some missing rrd_flushcached instances -- kevin
+       * src/rrd_daemon.c: free config_pid_file after using it for the last
+         time ... Else, the daemon might either segfault or leave the PID
+         file around. -- Sebastian Harl
 
-------------------------------------------------------------------------
-r1854 | oetiker | 2009-06-07 16:46:21 +0200 | 2 lines
+2009-09-28 16:15  oetiker
 
-switch to the rrd_flushcached interface
+       * src/rrd_daemon.c: try to create missing journal directories rather
+         than abort with an error. -- Sebastian Harl
 
-------------------------------------------------------------------------
-r1853 | oetiker | 2009-06-07 16:45:55 +0200 | 2 lines
+2009-09-28 16:13  oetiker
 
-consider fgets return value
+       * src/librrd.sym.in.in, src/rrd.h, src/rrd_utils.c: added
+         rrd_mkdir_p - This function may be used to recursively create some
+         directory, similar to "mkdir -p" on the command-line. -- Sebastian
+         Harl
 
-------------------------------------------------------------------------
-r1852 | oetiker | 2009-06-07 16:33:06 +0200 | 2 lines
+2009-09-24 19:21  oetiker
 
-do not try to mess with autopoints files
+       * src/rrd_restore.c: adjusted copyright wording according to
+         sebastians suggestions
 
-------------------------------------------------------------------------
-r1851 | oetiker | 2009-06-07 16:27:52 +0200 | 2 lines
+2009-09-01 08:49  oetiker
 
-check return value from write
+       * NEWS, src/rrd_graph.c: show element type in legend
 
-------------------------------------------------------------------------
-r1850 | oetiker | 2009-06-07 16:19:04 +0200 | 2 lines
+2009-08-25 09:01  oetiker
 
-check return values of dup and ftruncate
+       * configure.ac, src/rrd_client.h, src/rrd_daemon.c: detect if
+         stdint.h is available. if not, use inttypes. this should fix #239
+         and make compilation on solaris 9 work.
 
-------------------------------------------------------------------------
-r1849 | oetiker | 2009-06-07 16:12:28 +0200 | 2 lines
+2009-08-24 12:04  oetiker
 
-fix some warnings
+       * debian/README, debian/README.Debian, debian/build_freetype.sh,
+         debian/changelog, debian/control, debian/copyright,
+         debian/librrd0-dev.files, debian/librrd0.files,
+         debian/librrd0.postinst, debian/librrd0.postrm,
+         debian/librrd0.shlibs, debian/librrdp-perl.files,
+         debian/librrds-perl.files, debian/rrdtool-tcl.files,
+         debian/rrdtool.files, debian/rules, debian/watch: replae with
+         pointer
 
-------------------------------------------------------------------------
-r1848 | oetiker | 2009-06-07 15:57:17 +0200 | 2 lines
+2009-08-24 12:02  oetiker
 
-added a copy to svn since it is changed from the original
+       * src/rrd_config_bottom.h: call fpclass only once when replacing
+         isnan for solaris
 
-------------------------------------------------------------------------
-r1847 | oetiker | 2009-06-07 15:53:10 +0200 | 2 lines
+2009-08-22 22:03  oetiker
 
-changed from original version, so include it ... 
+       * MakeMakefile: remove misspellt keyword ...
 
-------------------------------------------------------------------------
-r1846 | oetiker | 2009-06-07 15:42:39 +0200 | 2 lines
+2009-08-21 05:03  oetiker
 
-include libtool with the distro
+       * m4/acinclude.m4, src/rrd_config_bottom.h: make sure all elements
+         required in the definition of isinf are defined in their turn
 
-------------------------------------------------------------------------
-r1845 | oetiker | 2009-06-07 13:36:20 +0200 | 2 lines
+2009-08-20 22:02  oetiker
 
-another ID tag
+       * src/rrd_graph.c, src/rrd_tool.c: Trim trailing whitespace, reoder
+         getopt_long per shortopt char; Fix -D while at it -- Bernhard
+         Reutner-Fischer
 
-------------------------------------------------------------------------
-r1844 | oetiker | 2009-06-07 13:35:52 +0200 | 2 lines
+2009-08-19 15:24  oetiker
 
-more id tags added
+       * NEWS, doc/rrdgraph.pod, src, src/rrd_graph.c, src/rrd_graph.h,
+         src/rrd_tool.c: The attached patch allows to $ rrdtool graph
+         --border=0 to disable the 3d border around the image. -- Bernhard
+         Reutner-Fischer rep.dot.nop gmail.com
 
-------------------------------------------------------------------------
-r1843 | oetiker | 2009-06-07 13:34:39 +0200 | 2 lines
+2009-08-19 07:44  oetiker
 
-updated for release
+       * src/rrd_graph.c: yes this should not matter, but I think it is the
+         right thing todo ...
 
-------------------------------------------------------------------------
-r1842 | oetiker | 2009-06-07 13:34:22 +0200 | 2 lines
+2009-08-17 21:34  oetiker
 
-updated for release
+       * src/rrd_dump.c, src/rrd_tune.c: added missing prototypes
 
-------------------------------------------------------------------------
-r1841 | oetiker | 2009-06-07 13:20:15 +0200 | 2 lines
+2009-08-17 21:31  oetiker
 
-added $Id:$
+       * CONTRIBUTORS, doc/librrd.pod, src/librrd.sym.in.in, src/rrd.h,
+         src/rrd_dump.c: Added a call back interface to rrd_dump to be able
+         to call the function from c. See librrd.pod for documentation. --
+         Benny Baumann BenBE geshi.org
 
-------------------------------------------------------------------------
-r1840 | oetiker | 2009-06-07 13:16:07 +0200 | 2 lines
+2009-08-16 22:22  oetiker
 
-initial news
+       * doc/rrdcached.pod, src/rrd_daemon.c: From: Florian Forster
+         <octo@leeloo.lan.home.verplant.org> This patch introduces
+         per-socket, per-command permissions to the RRD caching daemon,
+         RRDCacheD. This allows administrators to limit access to the
+         daemon in a fine-grained manner. The patch removes the command
+         line option `-L' and introduces `-P' instead. The option must
+         appear *before* the `-l' option and the given permissions are set
+         for all following sockets or another `-P' option. For example:
+         rrdcached -P FLUSH,PENDING -l 10.2.3.4 -P UPDATE -l
+         unix:/some/path Allow `FLUSH' and `PENDING' commands to clients
+         connected via IPv4 networking and `UPDATE' to clients connected
+         via a UNIX domain socket only. There are a couple of exceptions: -
+         The commands `HELP' and `QUIT' are always allowed. - If the
+         command `BATCH' is allowed, the command `.' is automatically
+         allowed, too. By default, i. e. if no `-P' option is specified,
+         all commands will be allowed. As a shortcut to reset the behavior
+         to the default behavior, you can use the slightly hackish `-P ""'
+         syntax. Signed-off-by: Florian Forster
+         <octo@leeloo.lan.home.verplant.org>
 
-------------------------------------------------------------------------
-r1839 | oetiker | 2009-06-02 15:55:40 +0200 | 2 lines
+2009-08-16 22:05  oetiker
 
-Mention that negative time values should be separated by '--' in rrdupdate.pod -- Sebastian Harl
+       * configure.ac: with my Debian Testing box I had to apply the
+         following small changes to the `configure.ac' file in order to
+         make `autoconf' happy. Don't know what the problem precisely is ?
+         m4 and its square parenthesis is too high for me ;) -- Florian
 
-------------------------------------------------------------------------
-r1837 | oetiker | 2009-06-01 16:01:51 +0200 | 2 lines
+2009-08-16 22:00  oetiker
 
-Make rrdtool compile on GNU/kFreeBSD. Fix for Debian bug 494874. Patch by Petr Salinger.
+       * autogen.sh: there is no config directory ... so lets not search
+         for it in autogen.sh
 
-------------------------------------------------------------------------
-r1836 | oetiker | 2009-06-01 15:58:58 +0200 | 4 lines
+2009-08-11 14:00  oetiker
 
-make negative update times work as diescribed in the documentation (-5 is NOW-5seconds)
-this takes care of debian bug 332766
+       * branches/1.3/program/src/rrd_restore.c, src/rrd_restore.c: fix
+         freeing order when generating error messages. found by Dmitry V.
+         Krivenok
 
+2009-08-10 11:47  oetiker
 
-------------------------------------------------------------------------
-r1834 | oetiker | 2009-05-28 07:25:32 +0200 | 2 lines
+       * m4/acinclude.m4: include math.h when testing IEEE
 
-madvise hints may not be ORed since they are enumerated ... #224
+2009-08-08 14:06  oetiker
 
-------------------------------------------------------------------------
-r1833 | oetiker | 2009-05-27 18:23:40 +0200 | 1 line
+       * branches/1.3/program/doc/rrd-beginners.pod, doc/rrd-beginners.pod:
+         remove extra \ in perl example
 
-back to 0.14.4
-------------------------------------------------------------------------
-r1830 | oetiker | 2009-05-27 18:21:15 +0200 | 2 lines
+2009-08-08 09:38  oetiker
 
-get the latest gettext
+       * src/rrd_daemon.c: The journal files are time-stamped and replayed
+         in order. This allows systems with 32-bit signed off_t to write
+         more than 2GB of journal entries per flush interval. --kevin
 
-------------------------------------------------------------------------
-r1826 | oetiker | 2009-05-27 18:03:01 +0200 | 2 lines
+2009-08-08 09:36  oetiker
 
-added gettext.h to dist
+       * doc/rrdgraph.pod: add some shell proggramming advice ... Bernhard
+         Reutner-Fischer
 
-------------------------------------------------------------------------
-r1825 | oetiker | 2009-05-27 17:00:04 +0200 | 2 lines
+2009-08-08 09:34  oetiker
 
-added missing gettext.h
+       * src/rrd_daemon.c: Remove PID file later in the cleanup process
+         --kevin
 
-------------------------------------------------------------------------
-r1824 | oetiker | 2009-05-27 16:59:47 +0200 | 2 lines
+2009-08-08 09:29  oetiker
 
-we don't have any translations ... so  do not pretend
+       * src/rrd_daemon.c: Increment the DataSetsWritten counter before
+         freeing the RRD values. --kevin
 
-------------------------------------------------------------------------
-r1823 | oetiker | 2009-05-27 16:31:31 +0200 | 2 lines
+2009-08-08 09:28  oetiker
 
-reduce gettext version requirements
+       * src/rrd_daemon.c: The current method may have caused flushes (and
+         journal rotations) more often than necessary. The problem was
+         introduced in r1600. --kevin
 
-------------------------------------------------------------------------
-r1820 | oetiker | 2009-05-27 16:14:10 +0200 | 2 lines
+2009-08-08 09:27  oetiker
 
-fix path
+       * src/rrd_daemon.c: Two-phase shutdown for rrdcached ensures that
+         values are flushed. Previously, it was possible for the queue
+         threads to exit before the flush thread completed queueing values.
+         If running with -F, rrdcached may have crashed due to assertion
+         failure before writing all values. -- kevin
 
-------------------------------------------------------------------------
-r1819 | oetiker | 2009-05-27 15:39:44 +0200 | 9 lines
+2009-08-07 06:04  oetiker
 
-the get ready for 1.4rc patch
+       * branches/1.3/program/bindings/python/rrdtoolmodule.c,
+         bindings/python/rrdtoolmodule.c: include PACKAGE_VERSION as
+         version number for python module to fix #236
 
-* updated to automake 1.11 with silet build, with this warnings stand out much better in the build process.
-  use make V=1 to see all as before
-* switched from intltoolize to autopoint for gettext support
-* moved m4 bits into their own subdirectory
+2009-08-03 18:51  oetiker
 
---tobi
+       * branches/1.3/program/src/rrd_info.c, src/rrd_info.c: in rrd > 1.3
+         it's called rrd_info_push ... and not just info_push ...
 
-------------------------------------------------------------------------
-r1818 | oetiker | 2009-05-27 15:11:22 +0200 | 2 lines
+2009-08-03 18:45  oetiker
 
-Only include libgen.h when we have it. use pbbasename if we do not. Also fixes #223.
+       * branches/1.2/program/src/rrd_info.c,
+         branches/1.3/program/src/rrd_info.c, src/rrd_info.c: Show the
+         index of each data source in the rrd_info output. Patch for #231
+         provided by Glenn Herteg, GroundWork Open Source, Inc.
 
-------------------------------------------------------------------------
-r1817 | oetiker | 2009-05-26 17:25:41 +0200 | 2 lines
+2009-07-30 07:57  oetiker
 
-update flush to flushcached
+       * NEWS: new news
 
-------------------------------------------------------------------------
-r1816 | oetiker | 2009-05-26 17:24:26 +0200 | 2 lines
+2009-07-30 07:56  oetiker
 
-bindings should invoke new rrd_flushcached (instead of rrd_cmd_flush) -- kevin
+       * src/rrd_tune.c: rrd_tune HW Update Allow to set the smoothing
+         window (alpha, beta, gamma) to zero. I'm using rrdtool 1.3.8 with
+         abberant behavior detection from the Brutlag method. I need to use
+         a week seasonality and no smoothing for the SEASONAL and
+         DEVSEASONAL. So I use rrdtune in order to set the smoothing window
+         to 0.0. This calls the set_hwarg(). But this method is also used
+         to tune the alpha, beta and gamma that can't be set to 0.0 So when
+         I tune my smoothing window size to 0.0, it returns -1 due to the
+         if(window<=0.0) then do nothing. I join here a small correction
+         with a differnent method used to set only the smoothing window
+         size and allowing it to be zero. -- sylvain.luiset gmail.com
 
-------------------------------------------------------------------------
-r1815 | oetiker | 2009-05-26 17:20:05 +0200 | 2 lines
+2009-07-28 16:49  oetiker
 
-"ulong" is not portable. must be unsigned long -- kevin
+       * configure.ac: update conditional silent-rules
 
-------------------------------------------------------------------------
-r1814 | oetiker | 2009-05-26 10:55:50 +0200 | 2 lines
+2009-07-14 12:00  oetiker
 
-update flush document name
+       * src/rrd_daemon.c: Handle race condition for "UPDATE" with new
+         files. Problem found by Sebastian Harl. Patch by Kevin.
 
-------------------------------------------------------------------------
-r1813 | oetiker | 2009-05-26 09:14:58 +0200 | 2 lines
+2009-07-12 06:28  oetiker
 
-rename rrd_flush.c to rrd_flushcached.c in Makefile.am
+       * src/rrd_daemon.c: Do not trust cache tree pointers after releasing
+         the cache lock. It's possible that a "FORGET" was issued in the
+         mean time. -- kevin
 
-------------------------------------------------------------------------
-r1812 | oetiker | 2009-05-26 09:13:52 +0200 | 11 lines
+2009-07-10 05:52  oetiker
 
-resolve the "flush inconsistency":
+       * src/rrd_daemon.c: destroy flush condition variable
 
-* rrd_flush (a leftover from when rrdtool was using stream based io) is turned into a no-op
-  but still exported to preserve library compatibility.
+2009-07-10 05:51  oetiker
 
-* rrd_cmd_flush (the implementation of "rrdtool flush") is renamed to rrd_flushcached
-  along with its command line invocation which is now rrdtool flushcached
+       * src/rrd_graph.c: Move <libgen.h> include so we know whether we
+         HAVE_LIBGEN_H -- kevin
 
---tobi
-  
+2009-07-09 20:14  oetiker
 
-------------------------------------------------------------------------
-r1811 | oetiker | 2009-05-26 00:23:06 +0200 | 16 lines
+       * doc/Makefile.am, src/rrd_thread_safe.c: Silence automake
+         portability warnings caused by multiple inference rules. -- kevin
+         brintnall
 
-While restoring, rrd_restore uses between 30 and 40 times as much memory as
-the size of the rrd file to be restored. This is due to the use of libxml2
-for parsing the the whole file prior to turning it into rrd structs.
+2009-07-05 08:41  oetiker
 
-This patch switches rrd_restore to using the xmlTextReader interface for
-incremental consumtion of xml files. This reduces the memory requirements to
-about twice the size of the rrd file which should be quite manageable for
-most cases.
+       * configure.ac, src/rrd_restore.c, win32/rrd_config.h.msvc: check
+         for the size of time_t and behave accordingly
 
-The parsing is about 25% less efficient than with the original libxml2
-version of rrd_restore. This could be in part due to the more liberal use of
-malloced memory. Optimizing this is for another day though.
+2009-07-04 14:51  oetiker
 
---tobi
+       * src/rrd_restore.c: be more careful when converting to string to
+         time_t ... test if time_t is long long
 
+2009-06-10 19:05  oetiker
 
-------------------------------------------------------------------------
-r1809 | oetiker | 2009-05-25 08:05:55 +0200 | 2 lines
+       * bindings/lua/compat-5.1r5/compat-5.1.c,
+         bindings/lua/compat-5.1r5/compat-5.1.h,
+         bindings/lua/compat-5.1r5/compat-5.1.lua: add the real license ...
 
-only include utime.h when necessary
+2009-06-10 12:17  oetiker
 
-------------------------------------------------------------------------
-r1808 | oetiker | 2009-05-24 12:31:44 +0200 | 11 lines
+       * branches/1.3/program/doc/bin_dec_hex.pod,
+         branches/1.3/program/doc/rrdtutorial.es.pod, doc/bin_dec_hex.pod,
+         doc/rrdtutorial.es.pod: fix bad pdf links
 
-* in 1.3: Changed types used in rrd_file_t from off_t to size_t to prevent: warning: comparison between signed and unsigned
-* Misc other off_t -> size_t changes to prevent signed warning
-* in 1.3: Added rrd_dump_opt_r declaration to prevent undef warning
-* Explicit cast to time_t of check in rrd_fetch to prevent signed warning
-* Added vasprintf path to sprintf_alloc to prevent excessive mallocing
-* in 1.3: fixed STRERROR_R_CHAR_P undef warning
+2009-06-09 19:22  oetiker
 
-patch by Steven Hartland killing multiplay.co.uk
+       * bindings/lua/compat-5.1r5/compat-5.1.c,
+         bindings/lua/compat-5.1r5/compat-5.1.h,
+         bindings/lua/compat-5.1r5/compat-5.1.lua: added compat 5.1 license
+         copied from website
 
+2009-06-08 05:12  oetiker
 
+       * branches/1.3/program/configure.ac, configure.ac: make config.h a
+         symlink to rrd_config.h so that intl/Makefile is happy
 
-------------------------------------------------------------------------
-r1806 | oetiker | 2009-05-22 16:54:21 +0200 | 2 lines
+2009-06-08 04:56  oetiker
 
-reset errno right befor the call I want to test
+       * branches/1.3/program/MakeMakefile,
+         branches/1.3/program/configure.ac, MakeMakefile, configure.ac:
+         Relax automake requirements and make 1.11 features optional --
+         kevin brintnall
 
-------------------------------------------------------------------------
-r1805 | oetiker | 2009-05-22 15:55:46 +0200 | 2 lines
+2009-06-07 20:48  oetiker
 
-inline is something for the compiler to figure ... 
+       * bindings/perl-shared/RRDs.xs, bindings/python/rrdtoolmodule.c,
+         bindings/ruby/main.c: fix some missing rrd_flushcached instances
+         -- kevin
 
-------------------------------------------------------------------------
-r1804 | oetiker | 2009-05-22 13:32:21 +0200 | 2 lines
+2009-06-07 14:46  oetiker
 
-fix error messages on the road to fix #222
+       * bindings/tcl/tclrrd.c: switch to the rrd_flushcached interface
 
-------------------------------------------------------------------------
-r1803 | oetiker | 2009-05-21 07:20:50 +0200 | 2 lines
+2009-06-07 14:45  oetiker
 
-fix text organisation
+       * src/rrd_cgi.c: consider fgets return value
 
-------------------------------------------------------------------------
-r1800 | oetiker | 2009-05-18 16:23:23 +0200 | 2 lines
+2009-06-07 14:33  oetiker
 
-integrated fix for debian bug #529291 as supplied by Anders Hammarquist
+       * intl, po/Makefile.in.in: do not try to mess with autopoints files
 
-------------------------------------------------------------------------
-r1799 | oetiker | 2009-05-11 23:25:57 +0200 | 6 lines
+2009-06-07 14:27  oetiker
 
-fix rrd_getops use of external variables (optarg and friends) ... most
-prominently is kills a segfault when using rrdtool perl bindings on
-solaris ... thanks to Ihsan Dogan for helping with tracking this down and providing
-access to sparc solaris boxes.
+       * src/rrd_open.c: check return value from write
 
+2009-06-07 14:19  oetiker
 
-------------------------------------------------------------------------
-r1797 | oetiker | 2009-04-29 08:52:25 +0200 | 2 lines
+       * src/rrd_daemon.c: check return values of dup and ftruncate
 
-added some remarks on CDEF versus VDEF to the docs -- Pablo Sanchez
+2009-06-07 14:12  oetiker
 
-------------------------------------------------------------------------
-r1796 | oetiker | 2009-04-20 08:48:01 +0200 | 9 lines
+       * src/rrd_fetch.c, src/rrd_flushcached.c, src/rrd_info.c: fix some
+         warnings
 
-This patch includes utility functions to support dynamically sized arrays.
-This simplifies the code that manages some of the dynamic structures
-inside rrdcached. 
+2009-06-07 13:57  oetiker
 
-A few data types have been changed to size_t.
+       * intl, intl/Makefile.in: added a copy to svn since it is changed
+         from the original
 
--- kevin
+2009-06-07 13:53  oetiker
 
+       * po/Makefile.in.in: changed from original version, so include it
+         ...
 
-------------------------------------------------------------------------
-r1795 | oetiker | 2009-04-20 08:46:47 +0200 | 3 lines
+2009-06-07 13:42  oetiker
 
-introduced header_property in info output -- Daniel.Pocock barclayscapital.com
+       * Makefile.am, autogen.sh: include libtool with the distro
 
+2009-06-07 11:36  oetiker
 
-------------------------------------------------------------------------
-r1794 | oetiker | 2009-04-17 11:53:57 +0200 | 2 lines
+       * configure.ac: another ID tag
 
-add documentation for graph-render-mode
+2009-06-07 11:35  oetiker
 
-------------------------------------------------------------------------
-r1793 | oetiker | 2009-04-15 09:05:58 +0200 | 2 lines
+       * Makefile.am, README: more id tags added
 
-fix comments and error messages in rrd_restore patch
+2009-06-07 11:34  oetiker
 
-------------------------------------------------------------------------
-r1792 | oetiker | 2009-04-15 09:02:04 +0200 | 4 lines
+       * COPYRIGHT: updated for release
 
-Fix casting issues in rrd_restore. The bug manifested when compiled on sparc v9 as explained in #218.
-Patch based in input provided by poster of #218.
+2009-06-07 11:34  oetiker
 
+       * COPYRIGHT, TODO: updated for release
 
-------------------------------------------------------------------------
-r1791 | oetiker | 2009-04-14 15:55:29 +0200 | 3 lines
+2009-06-07 11:20  oetiker
 
-make ruby bindings compile with newer ruby versions ... fix for #217
-patch provided by rrd trac user.
+       * CONTRIBUTORS: added $Id:$
 
-------------------------------------------------------------------------
-r1790 | oetiker | 2009-04-14 09:51:20 +0200 | 3 lines
+2009-06-07 11:16  oetiker
 
-Generate an error message when using RRDp with graph - this can not work reliably. (Debian Bug#251701) -- Sebastian Harl
+       * NEWS: initial news
 
+2009-06-02 13:55  oetiker
 
-------------------------------------------------------------------------
-r1789 | oetiker | 2009-04-14 08:10:21 +0200 | 7 lines
+       * branches/1.3/program/doc/rrdupdate.pod, doc/rrdupdate.pod: Mention
+         that negative time values should be separated by '--' in
+         rrdupdate.pod -- Sebastian Harl
 
-rrd_random() is a wrapper around random() that ensures the PRNG is seeded
-exactly ONCE per process.
+2009-06-01 14:01  oetiker
 
-rrd_utils.c is introduced for functions that do not have a better home. --kevin
+       * branches/1.3/program/m4/acinclude.m4, m4/acinclude.m4: Make
+         rrdtool compile on GNU/kFreeBSD. Fix for Debian bug 494874. Patch
+         by Petr Salinger.
 
+2009-06-01 13:58  oetiker
 
+       * branches/1.3/program/src/rrd_update.c, src/rrd_update.c: make
+         negative update times work as diescribed in the documentation (-5
+         is NOW-5seconds) this takes care of debian bug 332766
 
-------------------------------------------------------------------------
-r1788 | oetiker | 2009-04-10 10:52:34 +0200 | 13 lines
+2009-05-28 05:25  oetiker
 
-This patch consolidates several aspects of the command handling in
-rrdcached:
+       * src/rrd_open.c: madvise hints may not be ORed since they are
+         enumerated ... #224
 
- * all commands, help, and context information is reduced to a single data
-   structure.
+2009-05-27 16:23  oetiker
 
- * all checks for command validity (context and permission) are handled in
-   the main dispatch routine
+       * configure.ac: back to 0.14.4
 
-This removes duplicate help/syntax text, and long if..elseif..else chains.
-It facilitates the addition of new commands. -- kevin
+2009-05-27 16:21  oetiker
 
+       * Makefile.am, configure.ac: get the latest gettext
 
-------------------------------------------------------------------------
-r1787 | oetiker | 2009-04-09 17:07:05 +0200 | 3 lines
+2009-05-27 16:03  oetiker
 
-The bookkeeping of all threads is not necessary, since we cannot pthread_join() them anyway. We only need to know when the last one has exited. -- kevin
+       * src/Makefile.am: added gettext.h to dist
 
+2009-05-27 15:00  oetiker
 
-------------------------------------------------------------------------
-r1786 | oetiker | 2009-04-09 17:05:41 +0200 | 2 lines
+       * src/gettext.h: added missing gettext.h
 
-added missing docs -- kevin
+2009-05-27 14:59  oetiker
 
-------------------------------------------------------------------------
-r1785 | oetiker | 2009-04-09 17:04:27 +0200 | 2 lines
+       * po/LINGUAS, po/de.po: we don't have any translations ... so do not
+         pretend
 
-added missing newline -- by sebastian harl
+2009-05-27 14:31  oetiker
 
-------------------------------------------------------------------------
-r1778 | oetiker | 2009-04-07 09:23:20 +0200 | 2 lines
+       * autogen.sh, configure.ac: reduce gettext version requirements
 
-make sure an empty m4 is in the checkout
+2009-05-27 14:14  oetiker
 
-------------------------------------------------------------------------
-r1773 | oetiker | 2009-04-07 08:37:17 +0200 | 6 lines
+       * MakeMakefile: fix path
 
-fix for #213 restore old behaviour of --lazy. Even in lazy mode all the data
-calculation elements are run. The main time saving comes from the fact that
-the graph is not being drawn and the image does not have to be compressed.
+2009-05-27 13:39  oetiker
 
+       * MakeMakefile, Makefile.am, acinclude.m4, autogen.sh,
+         bindings/Makefile.am, configure.ac, doc/Makefile.am,
+         m4/acinclude.m4, po/ChangeLog, po/Makevars, src/Makefile.am,
+         src/rrd_i18n.h: the get ready for 1.4rc patch * updated to
+         automake 1.11 with silet build, with this warnings stand out much
+         better in the build process. use make V=1 to see all as before *
+         switched from intltoolize to autopoint for gettext support * moved
+         m4 bits into their own subdirectory --tobi
 
+2009-05-27 13:11  oetiker
 
-------------------------------------------------------------------------
-r1772 | oetiker | 2009-04-07 08:03:49 +0200 | 2 lines
+       * src/rrd_graph.c, src/rrd_graph.h: Only include libgen.h when we
+         have it. use pbbasename if we do not. Also fixes #223.
 
-make sure rrd_dump outputs numbers with C locale so that . does not suddenly become , this fixes #212
+2009-05-26 15:25  oetiker
 
-------------------------------------------------------------------------
-r1771 | oetiker | 2009-04-06 16:49:03 +0200 | 3 lines
+       * doc/rrdtool.pod: update flush to flushcached
 
-I thought that it would be nice to be able to pass
-parameters to python bindings as a list (array) of strings. -- Vytautas Zdanavicius vytaszd at yahoo.com
+2009-05-26 15:24  oetiker
 
-------------------------------------------------------------------------
-r1770 | oetiker | 2009-04-06 16:14:31 +0200 | 2 lines
+       * bindings/lua/rrdlua.c, bindings/perl-shared/RRDs.pm,
+         bindings/perl-shared/RRDs.xs, bindings/python/rrdtoolmodule.c,
+         bindings/ruby/main.c, bindings/tcl/tclrrd.c: bindings should
+         invoke new rrd_flushcached (instead of rrd_cmd_flush) -- kevin
 
-use %lld with (long long) conversion when printing time.
+2009-05-26 15:20  oetiker
 
-------------------------------------------------------------------------
-r1769 | oetiker | 2009-04-06 16:12:21 +0200 | 4 lines
+       * src/rrd_restore.c: "ulong" is not portable. must be unsigned long
+         -- kevin
 
-printf for time_t with %lli can easily cause a segfault since on many platforms
-time_t is only 32bit ... by adding (long long) to the time value this gets fixed.
+2009-05-26 08:55  oetiker
 
+       * doc/Makefile.am: update flush document name
 
-------------------------------------------------------------------------
-r1768 | oetiker | 2009-04-06 16:08:16 +0200 | 2 lines
+2009-05-26 07:14  oetiker
 
-lets have an error message when creating the graph fails
+       * src/Makefile.am: rename rrd_flush.c to rrd_flushcached.c in
+         Makefile.am
 
-------------------------------------------------------------------------
-r1764 | oetiker | 2009-03-21 11:45:40 +0100 | 2 lines
+2009-05-26 07:13  oetiker
 
-remove excess flush calls ... 
+       * doc/rrdflush.pod, doc/rrdflushcached.pod, src/librrd.sym.in.in,
+         src/rrd.h, src/rrd_flush.c, src/rrd_flushcached.c, src/rrd_open.c,
+         src/rrd_tool.c: resolve the "flush inconsistency": * rrd_flush (a
+         leftover from when rrdtool was using stream based io) is turned
+         into a no-op but still exported to preserve library compatibility.
+         * rrd_cmd_flush (the implementation of "rrdtool flush") is renamed
+         to rrd_flushcached along with its command line invocation which is
+         now rrdtool flushcached --tobi
 
-------------------------------------------------------------------------
-r1762 | oetiker | 2009-03-21 10:56:43 +0100 | 2 lines
+2009-05-25 22:23  oetiker
 
-remove flush symbol
+       * src/rrd_restore.c: While restoring, rrd_restore uses between 30
+         and 40 times as much memory as the size of the rrd file to be
+         restored. This is due to the use of libxml2 for parsing the the
+         whole file prior to turning it into rrd structs. This patch
+         switches rrd_restore to using the xmlTextReader interface for
+         incremental consumtion of xml files. This reduces the memory
+         requirements to about twice the size of the rrd file which should
+         be quite manageable for most cases. The parsing is about 25% less
+         efficient than with the original libxml2 version of rrd_restore.
+         This could be in part due to the more liberal use of malloced
+         memory. Optimizing this is for another day though. --tobi
 
-------------------------------------------------------------------------
-r1760 | oetiker | 2009-03-21 10:53:30 +0100 | 5 lines
+2009-05-25 06:05  oetiker
 
-the call to rrd_flush has appeared when rrd_open was fleshed out. It used to be an fflush call
-which is something entirely different than the current rrd_flush implementation with fdatasync was ... 
+       * branches/1.3/program/src/rrd_open.c, src/rrd_open.c: only include
+         utime.h when necessary
 
-we can safely drop this and gain performance for holt winters in the process ... -- tobi
+2009-05-24 10:31  oetiker
 
-------------------------------------------------------------------------
-r1759 | oetiker | 2009-03-18 18:12:09 +0100 | 2 lines
+       * branches/1.3/program/configure.ac,
+         branches/1.3/program/src/rrd_info.c,
+         branches/1.3/program/src/rrd_open.c,
+         branches/1.3/program/src/rrd_update.c, configure.ac,
+         src/rrd_info.c, src/rrd_open.c, src/rrd_update.c: * in 1.3:
+         Changed types used in rrd_file_t from off_t to size_t to prevent:
+         warning: comparison between signed and unsigned * Misc other off_t
+         -> size_t changes to prevent signed warning * in 1.3: Added
+         rrd_dump_opt_r declaration to prevent undef warning * Explicit
+         cast to time_t of check in rrd_fetch to prevent signed warning *
+         Added vasprintf path to sprintf_alloc to prevent excessive
+         mallocing * in 1.3: fixed STRERROR_R_CHAR_P undef warning patch by
+         Steven Hartland killing multiplay.co.uk
 
-New rrd_graph functions for legend  placement control added -- Patch by Melchior Rabe rrdtool mrab.de
+2009-05-22 14:54  oetiker
 
-------------------------------------------------------------------------
-r1758 | oetiker | 2009-03-08 12:12:41 +0100 | 3 lines
+       * src/rrd_update.c: reset errno right befor the call I want to test
 
-rrd_flush.c: Provide a more useful error message.
-by Sebastian Harl
+2009-05-22 13:55  oetiker
 
-------------------------------------------------------------------------
-r1757 | oetiker | 2009-03-08 09:02:38 +0100 | 6 lines
+       * src/rrd_update.c: inline is something for the compiler to figure
+         ...
 
-Renaming ntmake.pl to ntmake.PL (r1742) had unforseen side effects. At least
-on freebsd ntmake.PL gets called automatically during build. This is not
-desired. I renamed the file to ntmake-build sinc it gets called
-explicilty on windows anyway. Reported by Kevin modified by Tobi
+2009-05-22 11:32  oetiker
 
+       * branches/1.3/program/src/rrd_update.c, src/rrd_update.c: fix error
+         messages on the road to fix #222
 
-------------------------------------------------------------------------
-r1756 | oetiker | 2009-03-07 11:31:51 +0100 | 4 lines
+2009-05-21 05:20  oetiker
 
-This 2-patch series exposes 'flush' methods to the various language
-bindings.
+       * doc/rrdgraph.pod: fix text organisation
 
+2009-05-18 14:23  oetiker
 
-------------------------------------------------------------------------
-r1754 | oetiker | 2009-03-06 06:51:34 +0100 | 2 lines
+       * branches/1.3/program/bindings/python/rrdtoolmodule.c,
+         bindings/python/rrdtoolmodule.c: integrated fix for debian bug
+         #529291 as supplied by Anders Hammarquist
 
-there were two lines of debug info printed by rrd_xport, messing up the xml code. Fix by Alejandro Galue.
+2009-05-11 21:25  oetiker
 
-------------------------------------------------------------------------
-r1752 | oetiker | 2009-03-06 06:39:37 +0100 | 18 lines
+       * branches/1.3/program/configure.ac,
+         branches/1.3/program/src/rrd_getopt.c, configure.ac,
+         src/rrd_getopt.c: fix rrd_getops use of external variables (optarg
+         and friends) ... most prominently is kills a segfault when using
+         rrdtool perl bindings on solaris ... thanks to Ihsan Dogan for
+         helping with tracking this down and providing access to sparc
+         solaris boxes.
 
-Even though POSIX/XSI requires "strerror_r" to return an "int", some systems
-(e.g. the GNU libc) return a "char *" _and_ ignore the second argument (user
-provided buffer). The configure script now checks for that behavior using
-AC_FUNC_STRERROR_R. rrd_strerror() in rrd_thread_safe.c has been updated to
-(hopefully) handle all possible cases.
+2009-04-29 06:52  oetiker
 
-Previously, rrd_strerror() would have returned "strerror_r failed. sorry!" in
-mostly any cases when using glibc, since "if (strerror_r())" had been used to
-check for errors which evaluates to true if a (non-NULL) pointer was returned.
+       * branches/1.3/program/CONTRIBUTORS,
+         branches/1.3/program/doc/rrdgraph_data.pod, CONTRIBUTORS,
+         doc/rrdgraph_data.pod: added some remarks on CDEF versus VDEF to
+         the docs -- Pablo Sanchez
 
-Now, we, at least, return the error number in case anything else fails.
+2009-04-20 06:48  oetiker
 
-Thanks to Alessandro Iurlano for reporting this issue after spotting it in
-collectd <http://collectd.org>.
+       * doc/Makefile.am, doc/librrd.pod, src/librrd.sym.in.in, src/rrd.h,
+         src/rrd_daemon.c, src/rrd_utils.c: This patch includes utility
+         functions to support dynamically sized arrays. This simplifies the
+         code that manages some of the dynamic structures inside rrdcached.
+         A few data types have been changed to size_t. -- kevin
 
-patch by Sebastian Harl
+2009-04-20 06:46  oetiker
 
+       * doc/rrdinfo.pod, src/rrd_format.c, src/rrd_info.c, src/rrd_open.c,
+         src/rrd_tool.h: introduced header_property in info output --
+         Daniel.Pocock barclayscapital.com
 
-------------------------------------------------------------------------
-r1751 | oetiker | 2009-03-06 06:30:08 +0100 | 2 lines
+2009-04-17 09:53  oetiker
 
-Make sure we use correct sizes for vsnprintf (sizeof) and strncpy (sizeof-1). -- kevin
+       * branches/1.3/program/src/rrd_tool.c, src/rrd_tool.c: add
+         documentation for graph-render-mode
 
-------------------------------------------------------------------------
-r1749 | oetiker | 2009-02-21 10:43:58 +0100 | 2 lines
+2009-04-15 07:05  oetiker
 
-Misc documentation fixes by Alex van den Bogaerdt
+       * branches/1.3/program/src/rrd_restore.c, src/rrd_restore.c: fix
+         comments and error messages in rrd_restore patch
 
-------------------------------------------------------------------------
-r1748 | oetiker | 2009-02-21 10:23:04 +0100 | 2 lines
+2009-04-15 07:02  oetiker
 
-Documentation fixes by  Bernhard Reutner-Fischer 
+       * branches/1.3/program/src/rrd_restore.c, src/rrd_restore.c: Fix
+         casting issues in rrd_restore. The bug manifested when compiled on
+         sparc v9 as explained in #218. Patch based in input provided by
+         poster of #218.
 
-------------------------------------------------------------------------
-r1745 | oetiker | 2009-01-25 23:39:34 +0100 | 2 lines
+2009-04-14 13:55  oetiker
 
-added doc on new graphv graph_start und graph_end info variables
+       * branches/1.2/program/bindings/ruby/main.c,
+         branches/1.3/program/bindings/ruby/main.c, bindings/ruby/main.c:
+         make ruby bindings compile with newer ruby versions ... fix for
+         #217 patch provided by rrd trac user.
 
-------------------------------------------------------------------------
-r1744 | oetiker | 2009-01-25 23:02:57 +0100 | 2 lines
+2009-04-14 07:51  oetiker
 
-fix type conversion error (on windows) unsigned/signed affecting timestamps on rrd_dump.
+       * branches/1.3/program/bindings/perl-piped/RRDp.pm,
+         bindings/perl-piped/RRDp.pm: Generate an error message when using
+         RRDp with graph - this can not work reliably. (Debian Bug#251701)
+         -- Sebastian Harl
 
-------------------------------------------------------------------------
-r1742 | oetiker | 2009-01-25 22:52:25 +0100 | 2 lines
+2009-04-14 06:10  oetiker
 
-rename ntmake.pl to ntmake.PL so that it does not get installed
+       * src/Makefile.am, src/librrd.sym.in.in, src/rrd.h,
+         src/rrd_daemon.c, src/rrd_open.c, src/rrd_restore.c,
+         src/rrd_utils.c: rrd_random() is a wrapper around random() that
+         ensures the PRNG is seeded exactly ONCE per process. rrd_utils.c
+         is introduced for functions that do not have a better home.
+         --kevin
 
-------------------------------------------------------------------------
-r1741 | oetiker | 2009-01-25 19:38:34 +0100 | 2 lines
+2009-04-10 08:52  oetiker
 
-define cwd where we need it and not outside
+       * src/rrd_daemon.c: This patch consolidates several aspects of the
+         command handling in rrdcached: * all commands, help, and context
+         information is reduced to a single data structure. * all checks
+         for command validity (context and permission) are handled in the
+         main dispatch routine This removes duplicate help/syntax text, and
+         long if..elseif..else chains. It facilitates the addition of new
+         commands. -- kevin
 
-------------------------------------------------------------------------
-r1733 | oetiker | 2009-01-14 09:14:31 +0100 | 5 lines
+2009-04-09 15:07  oetiker
 
-In rrd_graph: the width/height values are written into rrd_infoval_t's u_cnt
-but read out of u_int (u_long vs. int). This breaks on LP64BE. Patch by
-Rafal Boni rafal pobox.com
+       * src/rrd_daemon.c: The bookkeeping of all threads is not necessary,
+         since we cannot pthread_join() them anyway. We only need to know
+         when the last one has exited. -- kevin
 
+2009-04-09 15:05  oetiker
 
-------------------------------------------------------------------------
-r1732 | oetiker | 2009-01-14 08:22:09 +0100 | 2 lines
+       * doc/rrdcached.pod: added missing docs -- kevin
 
-added percentnan (VDEF PERCENT variant that ignores NAN) -- patch by Martin Sperl
+2009-04-09 15:04  oetiker
 
-------------------------------------------------------------------------
-r1726 | oetiker | 2009-01-06 17:32:16 +0100 | 2 lines
+       * branches/1.3/program/doc/rrdtutorial.pod, doc/rrdtutorial.pod:
+         added missing newline -- by sebastian harl
 
-with MMAP enabled rrd resize GROW was broken ... this fixes it ...
+2009-04-07 07:23  oetiker
 
-------------------------------------------------------------------------
-r1725 | oetiker | 2009-01-06 16:45:53 +0100 | 2 lines
+       * m4: make sure an empty m4 is in the checkout
 
-TICK with negative numbers should 'start from the top of the graph' looking down ... now it does.
+2009-04-07 06:37  oetiker
 
-------------------------------------------------------------------------
-r1724 | oetiker | 2009-01-06 15:54:41 +0100 | 2 lines
+       * branches/1.3/program/doc/rrdgraph.pod,
+         branches/1.3/program/src/rrd_graph.c, NEWS, doc/rrdgraph.pod,
+         src/rrd_graph.c: fix for #213 restore old behaviour of --lazy.
+         Even in lazy mode all the data calculation elements are run. The
+         main time saving comes from the fact that the graph is not being
+         drawn and the image does not have to be compressed.
 
-fix for segfault in rrd_cgi: caused by freeing a invalid address when printing an error message.
+2009-04-07 06:03  oetiker
 
-------------------------------------------------------------------------
-r1723 | oetiker | 2008-12-26 09:05:03 +0100 | 2 lines
+       * branches/1.3/program/src/rrd_dump.c, src/rrd_dump.c: make sure
+         rrd_dump outputs numbers with C locale so that . does not suddenly
+         become , this fixes #212
 
-Include libgen.h to get prototype for basename in a POSIX conformant way. Fix for #202.
+2009-04-06 14:49  oetiker
 
-------------------------------------------------------------------------
-r1722 | oetiker | 2008-12-26 09:03:06 +0100 | 2 lines
+       * CONTRIBUTORS, bindings/python/rrdtoolmodule.c, doc/rrdpython.pod:
+         I thought that it would be nice to be able to pass parameters to
+         python bindings as a list (array) of strings. -- Vytautas
+         Zdanavicius vytaszd at yahoo.com
 
-improvements for build docs by Zorzoli, Pablo
+2009-04-06 14:14  oetiker
 
-------------------------------------------------------------------------
-r1721 | oetiker | 2008-12-22 22:23:49 +0100 | 2 lines
+       * src/rrd_dump.c: use %lld with (long long) conversion when printing
+         time.
 
-should free memory after a successful fetch too ...
+2009-04-06 14:12  oetiker
 
-------------------------------------------------------------------------
-r1720 | oetiker | 2008-12-22 22:23:04 +0100 | 2 lines
+       * branches/1.3/program/src/rrd_update.c, src/rrd_update.c: printf
+         for time_t with %lli can easily cause a segfault since on many
+         platforms time_t is only 32bit ... by adding (long long) to the
+         time value this gets fixed.
 
-documentation fixes
+2009-04-06 14:08  oetiker
 
-------------------------------------------------------------------------
-r1718 | oetiker | 2008-12-22 08:21:46 +0100 | 2 lines
+       * src/rrd_graph.c: lets have an error message when creating the
+         graph fails
 
-Fix for POD error by Sebasian Harl
+2009-03-21 10:45  oetiker
 
-------------------------------------------------------------------------
-r1717 | oetiker | 2008-12-22 08:20:17 +0100 | 2 lines
+       * src/rrd_hw.c: remove excess flush calls ...
 
-Fixes some typos by Sebastian Harl.
+2009-03-21 09:56  oetiker
 
-------------------------------------------------------------------------
-r1716 | oetiker | 2008-12-19 15:26:47 +0100 | 8 lines
+       * src/librrd.sym.in.in, src/rrd.h: remove flush symbol
 
-win32 fixes by Stefan . Ludewig . exitgames . com
+2009-03-21 09:53  oetiker
+
+       * src/rrd_hw.c, src/rrd_open.c: the call to rrd_flush has appeared
+         when rrd_open was fleshed out. It used to be an fflush call which
+         is something entirely different than the current rrd_flush
+         implementation with fdatasync was ... we can safely drop this and
+         gain performance for holt winters in the process ... -- tobi
 
-* added portable plbasename since basename is not available on stock win32
-* rrd_update was using %d to show a timestamp ... %lli is better
-  since it also will show 64bit time_t correctly.
+2009-03-18 17:12  oetiker
 
+       * CONTRIBUTORS, NEWS, doc/rrdgraph.pod, src/rrd_graph.c,
+         src/rrd_graph.h: New rrd_graph functions for legend placement
+         control added -- Patch by Melchior Rabe rrdtool mrab.de
 
+2009-03-08 11:12  oetiker
 
-------------------------------------------------------------------------
-r1715 | oetiker | 2008-12-19 00:56:52 +0100 | 2 lines
+       * src/rrd_flush.c: rrd_flush.c: Provide a more useful error message.
+         by Sebastian Harl
 
-fix extra dist to include missing win32 files
+2009-03-08 08:02  oetiker
 
-------------------------------------------------------------------------
-r1708 | oetiker | 2008-12-11 15:31:16 +0100 | 2 lines
+       * branches/1.2/program/WIN32-BUILD-TIPS.txt,
+         branches/1.2/program/bindings/Makefile.am,
+         branches/1.2/program/bindings/perl-shared/MANIFEST,
+         branches/1.2/program/bindings/perl-shared/ntmake-build,
+         branches/1.2/program/bindings/perl-shared/ntmake.PL,
+         branches/1.3/program/WIN32-BUILD-TIPS.txt,
+         branches/1.3/program/bindings/Makefile.am,
+         branches/1.3/program/bindings/perl-shared/MANIFEST,
+         branches/1.3/program/bindings/perl-shared/ntmake-build,
+         branches/1.3/program/bindings/perl-shared/ntmake.PL,
+         WIN32-BUILD-TIPS.txt, bindings/Makefile.am,
+         bindings/perl-shared/MANIFEST, bindings/perl-shared/ntmake-build,
+         bindings/perl-shared/ntmake.PL: Renaming ntmake.pl to ntmake.PL
+         (r1742) had unforseen side effects. At least on freebsd ntmake.PL
+         gets called automatically during build. This is not desired. I
+         renamed the file to ntmake-build sinc it gets called explicilty on
+         windows anyway. Reported by Kevin modified by Tobi
 
-fixed another seek issue ... 
+2009-03-07 10:31  oetiker
 
-------------------------------------------------------------------------
-r1707 | oetiker | 2008-12-11 11:01:33 +0100 | 5 lines
+       * NEWS, bindings/lua/rrdlua.c, bindings/perl-shared/RRDs.pm,
+         bindings/perl-shared/RRDs.xs, bindings/python/rrdtoolmodule.c,
+         bindings/ruby/main.c, bindings/tcl/tclrrd.c, doc/rrdflush.pod,
+         src/rrd_flush.c: This 2-patch series exposes 'flush' methods to
+         the various language bindings.
+
+2009-03-06 05:51  oetiker
 
-The spec file for building the rrdtool as an RPM that comes with the 
-release is not "friendly" to older versions of RHEL and derivatives.
--- Martin Sperl <rrdtool@martin.sperl.org>
+       * branches/1.3/program/src/rrd_xport.c, src/rrd_xport.c: there were
+         two lines of debug info printed by rrd_xport, messing up the xml
+         code. Fix by Alejandro Galue.
+
+2009-03-06 05:39  oetiker
+
+       * configure.ac, src/rrd_thread_safe.c: Even though POSIX/XSI
+         requires "strerror_r" to return an "int", some systems (e.g. the
+         GNU libc) return a "char *" _and_ ignore the second argument (user
+         provided buffer). The configure script now checks for that
+         behavior using AC_FUNC_STRERROR_R. rrd_strerror() in
+         rrd_thread_safe.c has been updated to (hopefully) handle all
+         possible cases. Previously, rrd_strerror() would have returned
+         "strerror_r failed. sorry!" in mostly any cases when using glibc,
+         since "if (strerror_r())" had been used to check for errors which
+         evaluates to true if a (non-NULL) pointer was returned. Now, we,
+         at least, return the error number in case anything else fails.
+         Thanks to Alessandro Iurlano for reporting this issue after
+         spotting it in collectd <http://collectd.org>. patch by Sebastian
+         Harl
+
+2009-03-06 05:30  oetiker
+
+       * src/rrd_daemon.c: Make sure we use correct sizes for vsnprintf
+         (sizeof) and strncpy (sizeof-1). -- kevin
 
+2009-02-21 09:43  oetiker
+
+       * branches/1.2/program/doc/bin_dec_hex.pod,
+         branches/1.2/program/doc/cdeftutorial.pod,
+         branches/1.2/program/doc/rrdgraph.pod,
+         branches/1.2/program/doc/rrdgraph_data.pod,
+         branches/1.2/program/doc/rrdgraph_examples.pod,
+         branches/1.2/program/doc/rrdgraph_graph.pod,
+         branches/1.2/program/doc/rrdgraph_rpn.pod,
+         branches/1.2/program/doc/rrdresize.pod,
+         branches/1.2/program/doc/rrdtutorial.es.pod,
+         branches/1.2/program/doc/rrdtutorial.pod,
+         branches/1.3/program/doc/bin_dec_hex.pod,
+         branches/1.3/program/doc/cdeftutorial.pod,
+         branches/1.3/program/doc/rrdgraph.pod,
+         branches/1.3/program/doc/rrdgraph_data.pod,
+         branches/1.3/program/doc/rrdgraph_examples.pod,
+         branches/1.3/program/doc/rrdgraph_graph.pod,
+         branches/1.3/program/doc/rrdgraph_rpn.pod,
+         branches/1.3/program/doc/rrdresize.pod,
+         branches/1.3/program/doc/rrdtutorial.es.pod,
+         branches/1.3/program/doc/rrdtutorial.pod, doc/bin_dec_hex.pod,
+         doc/cdeftutorial.pod, doc/rrdgraph.pod, doc/rrdgraph_data.pod,
+         doc/rrdgraph_examples.pod, doc/rrdgraph_graph.pod,
+         doc/rrdgraph_rpn.pod, doc/rrdresize.pod, doc/rrdtutorial.es.pod,
+         doc/rrdtutorial.pod: Misc documentation fixes by Alex van den
+         Bogaerdt
+
+2009-02-21 09:23  oetiker
+
+       * doc/rrdgraph.pod, doc/rrdgraph_rpn.pod: Documentation fixes by
+         Bernhard Reutner-Fischer
+
+2009-01-25 22:39  oetiker
+
+       * branches/1.3/program/doc/rrdgraph.pod, doc/rrdgraph.pod: added doc
+         on new graphv graph_start und graph_end info variables
+
+2009-01-25 22:02  oetiker
+
+       * branches/1.2/program/src/rrd_dump.c,
+         branches/1.2/program/src/rrd_first.c,
+         branches/1.3/program/src/rrd_dump.c,
+         branches/1.3/program/src/rrd_first.c,
+         branches/1.3/program/src/rrd_graph.c, src/rrd_dump.c,
+         src/rrd_first.c, src/rrd_graph.c: fix type conversion error (on
+         windows) unsigned/signed affecting timestamps on rrd_dump.
+
+2009-01-25 21:52  oetiker
+
+       * branches/1.2/program/bindings/Makefile.am,
+         branches/1.2/program/bindings/perl-shared/ntmake.PL,
+         branches/1.2/program/bindings/perl-shared/ntmake.pl,
+         branches/1.3/program/bindings/Makefile.am,
+         branches/1.3/program/bindings/perl-shared/ntmake.PL,
+         branches/1.3/program/bindings/perl-shared/ntmake.pl,
+         bindings/Makefile.am, bindings/perl-shared/ntmake.PL,
+         bindings/perl-shared/ntmake.pl: rename ntmake.pl to ntmake.PL so
+         that it does not get installed
+
+2009-01-25 18:38  oetiker
+
+       * src/rrd_tool.c: define cwd where we need it and not outside
+
+2009-01-14 08:14  oetiker
+
+       * branches/1.3/program/src/rrd_graph.c, src/rrd_graph.c: In
+         rrd_graph: the width/height values are written into
+         rrd_infoval_t's u_cnt but read out of u_int (u_long vs. int). This
+         breaks on LP64BE. Patch by Rafal Boni rafal pobox.com
+
+2009-01-14 07:22  oetiker
+
+       * NEWS, doc/rrdgraph_rpn.pod, src/rrd_graph.c, src/rrd_graph.h:
+         added percentnan (VDEF PERCENT variant that ignores NAN) -- patch
+         by Martin Sperl
+
+2009-01-06 16:32  oetiker
+
+       * branches/1.3/program/src/rrd_resize.c, src/rrd_resize.c: with MMAP
+         enabled rrd resize GROW was broken ... this fixes it ...
+
+2009-01-06 15:45  oetiker
+
+       * branches/1.2/program/src/rrd_graph.c,
+         branches/1.3/program/src/rrd_graph.c, src/rrd_graph.c: TICK with
+         negative numbers should 'start from the top of the graph' looking
+         down ... now it does.
 
-------------------------------------------------------------------------
-r1706 | oetiker | 2008-12-11 10:59:10 +0100 | 2 lines
+2009-01-06 14:54  oetiker
 
-include luapod into distro
+       * branches/1.2/program/src/rrd_cgi.c,
+         branches/1.3/program/src/rrd_cgi.c, src/rrd_cgi.c: fix for
+         segfault in rrd_cgi: caused by freeing a invalid address when
+         printing an error message.
 
-------------------------------------------------------------------------
-r1705 | oetiker | 2008-12-10 14:18:10 +0100 | 4 lines
+2008-12-26 08:05  oetiker
 
-On some architectures, strtod does not turn "NaN" into 'Not A Number (NAN)'
-se we better provide our own code here.
+       * branches/1.3/program/configure.ac,
+         branches/1.3/program/src/rrd_graph.h, configure.ac,
+         src/rrd_graph.h: Include libgen.h to get prototype for basename in
+         a POSIX conformant way. Fix for #202.
 
+2008-12-26 08:03  oetiker
 
-------------------------------------------------------------------------
-r1703 | oetiker | 2008-12-10 13:42:46 +0100 | 4 lines
+       * branches/1.3/program/doc/rrdbuild.pod, doc/rrdbuild.pod:
+         improvements for build docs by Zorzoli, Pablo
 
-rrdtool dump is now backward compatible with rrdtool 1.3 dump again. Default is --header=dtd and
---no-header is an alias for --header=none
+2008-12-22 21:23  oetiker
 
+       * branches/1.3/program/src/rrd_fetch.c, src/rrd_fetch.c: should free
+         memory after a successful fetch too ...
 
-------------------------------------------------------------------------
-r1702 | oetiker | 2008-12-10 09:29:38 +0100 | 2 lines
+2008-12-22 21:23  oetiker
 
-minichange
+       * branches/1.3/program/bindings/perl-shared/RRDs.pm,
+         bindings/perl-shared/RRDs.pm: documentation fixes
 
-------------------------------------------------------------------------
-r1701 | oetiker | 2008-12-09 19:30:43 +0100 | 4 lines
+2008-12-22 07:21  oetiker
 
-* forward ported right axis patch from 1.2 branche
-* fixed --full-size-mode sizing issue when used in combination with --title
-the work in the axis patch has been sponsored by VoltWerk.
+       * branches/1.3/program/doc/rrdgraph.pod, doc/rrdgraph.pod: Fix for
+         POD error by Sebasian Harl
 
-------------------------------------------------------------------------
-r1700 | oetiker | 2008-12-08 17:07:27 +0100 | 2 lines
+2008-12-22 07:20  oetiker
 
-Fix for last method in ruby bindings -- Hiroyuki Ikezoe
+       * branches/1.3/program/doc/bin_dec_hex.pod,
+         branches/1.3/program/doc/rpntutorial.pod,
+         branches/1.3/program/doc/rrdbuild.pod,
+         branches/1.3/program/doc/rrdcgi.pod,
+         branches/1.3/program/doc/rrdgraph-old.pod,
+         branches/1.3/program/doc/rrdgraph.pod,
+         branches/1.3/program/doc/rrdgraph_data.pod,
+         branches/1.3/program/doc/rrdgraph_examples.pod,
+         branches/1.3/program/doc/rrdgraph_graph.pod,
+         branches/1.3/program/doc/rrdtool.pod,
+         branches/1.3/program/doc/rrdtutorial.pod, doc/bin_dec_hex.pod,
+         doc/rpntutorial.pod, doc/rrdbuild.pod, doc/rrdcgi.pod,
+         doc/rrdgraph-old.pod, doc/rrdgraph.pod, doc/rrdgraph_data.pod,
+         doc/rrdgraph_examples.pod, doc/rrdgraph_graph.pod,
+         doc/rrdgraph_libdbi.pod, doc/rrdtool.pod, doc/rrdtutorial.pod:
+         Fixes some typos by Sebastian Harl.
 
-------------------------------------------------------------------------
-r1699 | oetiker | 2008-12-05 16:39:55 +0100 | 2 lines
+2008-12-19 14:26  oetiker
 
-integrate osx build hints as indicated in #192
+       * branches/1.3/program/src/Makefile.am,
+         branches/1.3/program/src/plbasename.c,
+         branches/1.3/program/src/plbasename.h,
+         branches/1.3/program/src/rrd_graph.c,
+         branches/1.3/program/src/rrd_update.c,
+         branches/1.3/program/win32/rrdlib.vcproj, src/Makefile.am,
+         src/plbasename.c, src/plbasename.h, src/rrd_graph.c,
+         src/rrd_update.c, win32/rrdlib.vcproj: win32 fixes by Stefan .
+         Ludewig . exitgames . com * added portable plbasename since
+         basename is not available on stock win32 * rrd_update was using %d
+         to show a timestamp ... %lli is better since it also will show
+         64bit time_t correctly.
 
-------------------------------------------------------------------------
-r1697 | oetiker | 2008-12-05 16:23:45 +0100 | 2 lines
+2008-12-18 23:56  oetiker
 
-deleted a bit much from rrd_open ... merged back in
+       * branches/1.3/program/Makefile.am, Makefile.am: fix extra dist to
+         include missing win32 files
 
-------------------------------------------------------------------------
-r1696 | oetiker | 2008-12-05 16:18:11 +0100 | 4 lines
+2008-12-11 14:31  oetiker
 
-check for broken implementations of msync / MS_ASYNC where
-the mtime does not get updated. warn and explicitly call utime
-in rrd_open when a file is opened rw.
+       * branches/1.2/program/src/rrd_fetch.c,
+         branches/1.3/program/src/rrd_fetch.c, src/rrd_fetch.c: fixed
+         another seek issue ...
 
-------------------------------------------------------------------------
-r1695 | oetiker | 2008-12-05 11:23:46 +0100 | 2 lines
+2008-12-11 10:01  oetiker
 
-added rrdcached examples to extra_dist to make sure they get distributed
+       * branches/1.2/program/rrdtool.spec,
+         branches/1.3/program/rrdtool.spec, rrdtool.spec: The spec file for
+         building the rrdtool as an RPM that comes with the release is not
+         "friendly" to older versions of RHEL and derivatives. -- Martin
+         Sperl <rrdtool@martin.sperl.org>
 
-------------------------------------------------------------------------
-r1694 | oetiker | 2008-12-04 17:01:37 +0100 | 2 lines
+2008-12-11 09:59  oetiker
 
-Legends should NOT be placed in reverse order when using --full-size-mode ... this fixed #198.
+       * doc/Makefile.am: include luapod into distro
 
-------------------------------------------------------------------------
-r1693 | oetiker | 2008-12-04 16:49:11 +0100 | 2 lines
+2008-12-10 13:18  oetiker
 
-add de-referencing to step in fetch check
+       * branches/1.3/program/src/rrd_restore.c, src/rrd_restore.c: On some
+         architectures, strtod does not turn "NaN" into 'Not A Number
+         (NAN)' se we better provide our own code here.
 
-------------------------------------------------------------------------
-r1692 | oetiker | 2008-12-04 16:48:39 +0100 | 2 lines
+2008-12-10 12:42  oetiker
 
-fix merg error with win32 port
+       * NEWS, doc/rrddump.pod, src/rrd_dump.c: rrdtool dump is now
+         backward compatible with rrdtool 1.3 dump again. Default is
+         --header=dtd and --no-header is an alias for --header=none
 
-------------------------------------------------------------------------
-r1691 | oetiker | 2008-12-04 10:03:48 +0100 | 2 lines
+2008-12-10 08:29  oetiker
 
-Catch CDEF:tot= and raise and error to fix #199. Thanks to Jeron Massar for reporting this.
+       * NEWS: minichange
 
-------------------------------------------------------------------------
-r1690 | oetiker | 2008-12-04 08:02:56 +0100 | 4 lines
+2008-12-09 18:30  oetiker
 
-Update to WIN32-BUILD-TIPS.txt and VC project files so that the rrdtool.exe can be built too.
--- Stefan Ludewig Stefan.Ludewig exitgames.com
+       * branches/1.3/program/doc/rrdgraph.pod,
+         branches/1.3/program/src/rrd_graph.c,
+         branches/1.3/program/src/rrd_graph.h,
+         branches/1.3/program/src/rrd_tool.c, doc/rrdgraph.pod,
+         src/rrd_graph.c, src/rrd_graph.h, src/rrd_tool.c: * forward ported
+         right axis patch from 1.2 branche * fixed --full-size-mode sizing
+         issue when used in combination with --title the work in the axis
+         patch has been sponsored by VoltWerk.
 
+2008-12-08 16:07  oetiker
 
-------------------------------------------------------------------------
-r1689 | oetiker | 2008-12-03 12:08:48 +0100 | 4 lines
+       * branches/1.3/program/bindings/ruby/main.c,
+         branches/1.3/program/bindings/ruby/test.rb, bindings/ruby/main.c,
+         bindings/ruby/test.rb: Fix for last method in ruby bindings --
+         Hiroyuki Ikezoe
 
-When fetching data from 'past' an rra, rrd_fetch was seeking past the rrd
-file. This did cause seek errors in some setups. Fixed. Thanks to Daniel Pocock for finding the problem.
+2008-12-05 15:39  oetiker
 
+       * branches/1.3/program/bindings/perl-shared/Makefile.PL,
+         bindings/perl-shared/Makefile.PL: integrate osx build hints as
+         indicated in #192
 
-------------------------------------------------------------------------
-r1686 | oetiker | 2008-12-03 10:54:09 +0100 | 2 lines
+2008-12-05 15:23  oetiker
 
-integrated rrdcached examples into build process
+       * src/rrd_open.c: deleted a bit much from rrd_open ... merged back
+         in
 
-------------------------------------------------------------------------
-r1685 | oetiker | 2008-12-03 09:47:56 +0100 | 2 lines
+2008-12-05 15:18  oetiker
 
-add rrdcached examples -- kevin
+       * branches/1.3/program/acinclude.m4,
+         branches/1.3/program/configure.ac,
+         branches/1.3/program/src/rrd_open.c, acinclude.m4, configure.ac,
+         src/rrd_open.c: check for broken implementations of msync /
+         MS_ASYNC where the mtime does not get updated. warn and explicitly
+         call utime in rrd_open when a file is opened rw.
 
-------------------------------------------------------------------------
-r1683 | oetiker | 2008-12-02 13:35:02 +0100 | 2 lines
+2008-12-05 10:23  oetiker
 
-fixed solaris build instructions
+       * examples/rrdcached/Makefile.am: added rrdcached examples to
+         extra_dist to make sure they get distributed
 
-------------------------------------------------------------------------
-r1682 | oetiker | 2008-12-01 12:05:52 +0100 | 2 lines
+2008-12-04 16:01  oetiker
 
-added libdbi doc to extradist
+       * branches/1.3/program/src/rrd_graph.c, src/rrd_graph.c: Legends
+         should NOT be placed in reverse order when using --full-size-mode
+         ... this fixed #198.
 
-------------------------------------------------------------------------
-r1678 | oetiker | 2008-11-20 14:04:38 +0100 | 27 lines
+2008-12-04 15:49  oetiker
 
-Attached a patch for the rrd-tool LIBDBI integration with the following improvements:
+       * src/rrd_fetch.c: add de-referencing to step in fetch check
 
-a) correct error handling in case of libdbi being unable to load the driver
-   was producing segmentation faults.
+2008-12-04 15:48  oetiker
 
-b) better parsing of datasources
+       * src/rrd.h: fix merg error with win32 port
 
-   * until now timestamp fields had to be integer and had to contain a unix
-     timestamp - now you can now also use DateTime fields (you still need to
-     specify it, as the time-range needs to be defined correctly)
+2008-12-04 09:03  oetiker
 
-   * data fields are now no longer limited to (var)char or DOUBLE fields -
-     FLOAT, INTEGER,... are now also supported.
+       * branches/1.2/program/src/rrd_graph_helper.c,
+         branches/1.3/program/src/rrd_graph_helper.c,
+         src/rrd_graph_helper.c: Catch CDEF:tot= and raise and error to fix
+         #199. Thanks to Jeron Massar for reporting this.
 
-c) there is a bug with at least LIBDBI 0.8.1 in conjunction with mysql that
-   can result in segmentation faults when BINARY/BLOB fields are accessed -
-   rrdtool will now tell you about this fact before dying ;)
+2008-12-04 07:02  oetiker
 
-d) also the value of rrdderivemaxstep only gets applied if derive has been
-   selected correctly.
+       * branches/1.3/program/CONTRIBUTORS,
+         branches/1.3/program/WIN32-BUILD-TIPS.txt,
+         branches/1.3/program/src/rrd_tool.c,
+         branches/1.3/program/win32/rrd.sln,
+         branches/1.3/program/win32/rrdtool.vcproj, CONTRIBUTORS,
+         WIN32-BUILD-TIPS.txt, src/rrd_tool.c, win32/rrd.sln,
+         win32/rrdtool.vcproj: Update to WIN32-BUILD-TIPS.txt and VC
+         project files so that the rrdtool.exe can be built too. -- Stefan
+         Ludewig Stefan.Ludewig exitgames.com
 
-e) "GROUP BY timestamp" has been removed from SQL statement.
+2008-12-03 11:08  oetiker
 
-f) "ORDER BY timestamp" will be added only in the case of fetching "derived" data.
+       * branches/1.2/program/src/rrd_fetch.c,
+         branches/1.3/program/src/rrd_fetch.c, src/rrd_fetch.c: When
+         fetching data from 'past' an rra, rrd_fetch was seeking past the
+         rrd file. This did cause seek errors in some setups. Fixed. Thanks
+         to Daniel Pocock for finding the problem.
 
--- Martin Sperl
+2008-12-03 09:54  oetiker
 
-------------------------------------------------------------------------
-r1677 | oetiker | 2008-11-18 18:19:17 +0100 | 5 lines
+       * configure.ac, examples/Makefile.am,
+         examples/rrdcached/Makefile.am: integrated rrdcached examples into
+         build process
 
-win32 portability patch and win32/rrdlib.vcproj file for the source
--- christof wegmann Christof.Wegmann with exitgames.com
-some fixes to make the result work on unix again ...
+2008-12-03 08:47  oetiker
 
+       * examples/rrdcached, examples/rrdcached/RRDCached.pm,
+         examples/rrdcached/rrdcached-size.pl: add rrdcached examples --
+         kevin
 
-------------------------------------------------------------------------
-r1674 | oetiker | 2008-11-18 08:14:10 +0100 | 2 lines
+2008-12-02 12:35  oetiker
 
-missing , added to  help string
+       * branches/1.2/program/doc/rrdbuild.pod,
+         branches/1.3/program/doc/rrdbuild.pod, doc/rrdbuild.pod: fixed
+         solaris build instructions
 
-------------------------------------------------------------------------
-r1672 | oetiker | 2008-11-17 17:21:41 +0100 | 2 lines
+2008-12-01 11:05  oetiker
 
-added build instruction for libdbi docu
+       * doc/Makefile.am: added libdbi doc to extradist
 
-------------------------------------------------------------------------
-r1670 | oetiker | 2008-11-16 23:24:44 +0100 | 2 lines
+2008-11-20 13:04  oetiker
 
-missing pod files
+       * doc/rrdgraph_libdbi.pod, src/rrd_fetch_libdbi.c: Attached a patch
+         for the rrd-tool LIBDBI integration with the following
+         improvements: a) correct error handling in case of libdbi being
+         unable to load the driver was producing segmentation faults. b)
+         better parsing of datasources * until now timestamp fields had to
+         be integer and had to contain a unix timestamp - now you can now
+         also use DateTime fields (you still need to specify it, as the
+         time-range needs to be defined correctly) * data fields are now no
+         longer limited to (var)char or DOUBLE fields - FLOAT, INTEGER,...
+         are now also supported. c) there is a bug with at least LIBDBI
+         0.8.1 in conjunction with mysql that can result in segmentation
+         faults when BINARY/BLOB fields are accessed - rrdtool will now
+         tell you about this fact before dying ;) d) also the value of
+         rrdderivemaxstep only gets applied if derive has been selected
+         correctly. e) "GROUP BY timestamp" has been removed from SQL
+         statement. f) "ORDER BY timestamp" will be added only in the case
+         of fetching "derived" data. -- Martin Sperl
 
-------------------------------------------------------------------------
-r1669 | oetiker | 2008-11-15 15:35:51 +0100 | 2 lines
+2008-11-18 17:19  oetiker
 
-switch tu using AS_HELP_STRING for formatting ...
+       * CONTRIBUTORS, src/rrd.h, src/rrd_client.h, src/rrd_create.c,
+         src/rrd_daemon.c, src/rrd_diff.c, src/rrd_error.c,
+         src/rrd_fetch.c, src/rrd_first.c, src/rrd_format.c,
+         src/rrd_getopt.c, src/rrd_getopt.h, src/rrd_getopt1.c,
+         src/rrd_graph.c, src/rrd_graph.h, src/rrd_hw.c, src/rrd_hw_math.c,
+         src/rrd_hw_update.c, src/rrd_info.c, src/rrd_open.c,
+         src/rrd_parsetime.c, src/rrd_resize.c, src/rrd_restore.c,
+         src/rrd_rpncalc.c, src/rrd_thread_safe_nt.c, src/rrd_tool.c,
+         src/rrd_tune.c, src/rrd_update.c, src/rrd_xport.c, win32/config.h,
+         win32/rrdlib.vcproj: win32 portability patch and
+         win32/rrdlib.vcproj file for the source -- christof wegmann
+         Christof.Wegmann with exitgames.com some fixes to make the result
+         work on unix again ...
 
-------------------------------------------------------------------------
-r1668 | oetiker | 2008-11-15 15:15:38 +0100 | 3 lines
+2008-11-18 07:14  oetiker
 
-fix typo in handle_request_help
---kevin
+       * configure.ac: missing , added to help string
 
-------------------------------------------------------------------------
-r1667 | oetiker | 2008-11-15 15:14:19 +0100 | 8 lines
+2008-11-17 16:21  oetiker
 
-doc fixups for rrdcacehd
+       * doc/Makefile.am: added build instruction for libdbi docu
 
- * documented the -p option
- * added nbsp between option and argument
- * layout one option per line
+2008-11-16 22:24  oetiker
 
---kevin
+       * doc/RRDp.pod, doc/RRDs.pod, doc/rrdgraph_libdbi.pod: missing pod
+         files
 
-------------------------------------------------------------------------
-r1666 | oetiker | 2008-11-11 17:36:45 +0100 | 2 lines
+2008-11-15 14:35  oetiker
 
-make basename work
+       * configure.ac: switch tu using AS_HELP_STRING for formatting ...
 
-------------------------------------------------------------------------
-r1665 | oetiker | 2008-11-11 17:36:13 +0100 | 14 lines
+2008-11-15 14:15  oetiker
 
-This patch allows for multiple RRD writer threads to service the queue.
+       * src/rrd_daemon.c: fix typo in handle_request_help --kevin
 
-Now, rrdcached can have more simultaneous I/O requests into the kernel.
-This may allow the kernel to re-order disk writes, resulting in better
-disk throughput.  In practice, throughput is increased by 2-3x.
+2008-11-15 14:14  oetiker
 
-The flush (-f) timer maintenance has been moved from queue_thread_main
-into its own thread.
+       * doc/rrdcached.pod: doc fixups for rrdcacehd * documented the -p
+         option * added nbsp between option and argument * layout one
+         option per line --kevin
 
-Be more careful about when to use pthread_cond_signal vs _broadcast, since
-multiple threads may be waiting on &queue_cond.
+2008-11-11 16:36  oetiker
 
---kevin
+       * src/rrd_graph.c: make basename work
 
-------------------------------------------------------------------------
-r1663 | oetiker | 2008-11-09 20:19:48 +0100 | 2 lines
+2008-11-11 16:36  oetiker
 
-be even more liberal with NOT using isfinite on solaris2.8
+       * doc/rrdcached.pod, src/rrd_daemon.c: This patch allows for
+         multiple RRD writer threads to service the queue. Now, rrdcached
+         can have more simultaneous I/O requests into the kernel. This may
+         allow the kernel to re-order disk writes, resulting in better disk
+         throughput. In practice, throughput is increased by 2-3x. The
+         flush (-f) timer maintenance has been moved from queue_thread_main
+         into its own thread. Be more careful about when to use
+         pthread_cond_signal vs _broadcast, since multiple threads may be
+         waiting on &queue_cond. --kevin
 
-------------------------------------------------------------------------
-r1662 | oetiker | 2008-11-09 01:00:33 +0100 | 2 lines
+2008-11-09 19:19  oetiker
 
-use basename to determine filename for imginfo as suggested by sebastian
+       * branches/1.3/program/configure.ac, configure.ac: be even more
+         liberal with NOT using isfinite on solaris2.8
 
-------------------------------------------------------------------------
-r1661 | oetiker | 2008-11-08 23:57:38 +0100 | 3 lines
+2008-11-09 00:00  oetiker
 
- rrdcached: move queue length decrement into remove_from_queue
--- kevin
+       * branches/1.2/program/src/rrd_graph.c,
+         branches/1.2/program/src/rrd_graph.h,
+         branches/1.3/program/src/rrd_graph.c, src/rrd_graph.c: use
+         basename to determine filename for imginfo as suggested by
+         sebastian
 
-------------------------------------------------------------------------
-r1660 | oetiker | 2008-11-08 23:57:18 +0100 | 3 lines
+2008-11-08 22:57  oetiker
 
-rrdcached: examine the current queue with the "QUEUE" command
--- kevin
+       * src/rrd_daemon.c: rrdcached: move queue length decrement into
+         remove_from_queue -- kevin
 
-------------------------------------------------------------------------
-r1659 | oetiker | 2008-11-08 23:50:51 +0100 | 4 lines
+2008-11-08 22:57  oetiker
 
-This helps with portability on platforms where realloc doesn't handle NULL.
--- kevin
+       * doc/rrdcached.pod, src/rrd_daemon.c: rrdcached: examine the
+         current queue with the "QUEUE" command -- kevin
 
+2008-11-08 22:50  oetiker
 
-------------------------------------------------------------------------
-r1658 | oetiker | 2008-11-08 19:01:33 +0100 | 3 lines
+       * src/rrd_daemon.c: This helps with portability on platforms where
+         realloc doesn't handle NULL. -- kevin
 
-document the "QUIT" command -- kevin
+2008-11-08 18:01  oetiker
 
+       * doc/rrdcached.pod, src/rrd_daemon.c: document the "QUIT" command
+         -- kevin
 
-------------------------------------------------------------------------
-r1657 | oetiker | 2008-11-08 19:01:01 +0100 | 4 lines
+2008-11-08 18:01  oetiker
 
-rrdcached: journal_replay default failure reason, just in case
-avoids a "may be used uninitialized" warning -- kevin
+       * src/rrd_daemon.c: rrdcached: journal_replay default failure
+         reason, just in case avoids a "may be used uninitialized" warning
+         -- kevin
 
+2008-11-08 18:00  oetiker
 
-------------------------------------------------------------------------
-r1656 | oetiker | 2008-11-08 19:00:21 +0100 | 3 lines
+       * src/rrd_daemon.c: added "quit" command -- kevin
 
-added "quit" command -- kevin
+2008-11-08 17:57  oetiker
 
+       * src/rrd_daemon.c: rrdcached now frees all of its resources
+         correctly. This facilitates memory debugging. g_tree now knows how
+         to free the nodes when it removes them. Also, use g_tree_replace
+         instead of g_tree_insert. This fixes a bug triggered when the same
+         file was simultaneously inserted by two clients. --kevin
 
-------------------------------------------------------------------------
-r1655 | oetiker | 2008-11-08 18:57:32 +0100 | 9 lines
+2008-11-08 17:56  oetiker
 
-rrdcached now frees all of its resources correctly.  This facilitates
-memory debugging.  g_tree now knows how to free the nodes when it removes
-them.
+       * configure.ac: do not quit when libdbi is missing
 
-Also, use g_tree_replace instead of g_tree_insert.  This fixes a bug
-triggered when the same file was simultaneously inserted by two clients.
+2008-11-07 22:46  oetiker
 
---kevin
+       * branches/1.2/program/src/rrd_graph.c,
+         branches/1.3/program/src/rrd_graph.c, src/rrd_graph.c: fixed
+         --font TITLE:12: problem -- tobi
 
-------------------------------------------------------------------------
-r1654 | oetiker | 2008-11-08 18:56:48 +0100 | 2 lines
+2008-11-07 22:23  oetiker
 
-do not quit when libdbi is missing
+       * src/rrd_fetch_libdbi.c: fix scaling issue -- Martin
 
-------------------------------------------------------------------------
-r1653 | oetiker | 2008-11-07 23:46:40 +0100 | 2 lines
+2008-11-07 14:09  oetiker
 
-fixed --font TITLE:12: problem -- tobi
+       * src/rrd_fetch_libdbi.c: extra file to make libdbi patch work
 
-------------------------------------------------------------------------
-r1652 | oetiker | 2008-11-07 23:23:16 +0100 | 2 lines
+2008-11-07 14:07  oetiker
 
-fix scaling issue -- Martin
+       * CONTRIBUTORS, configure.ac, src/Makefile.am, src/rrd_fetch.c,
+         src/rrd_tool.h: As some of you may know that I have created a
+         patch for rrdtool 1.2 a few years ago, so that a database could be
+         queried for values for graphing. The patch has been mostly
+         rewritten and the following changes have been made: * high
+         dependency on mysql has been reduced by avoiding the temporary
+         tables (which was bad for mysql replication) * The number of
+         executed SQL-Statements for one CDEF has been reduced to 1
+         compared to 11 SQLs (including CREATE TEMPORARY TABLE) - for patch
+         against version 1.2 * All consolidation is done in rrdtool itself
+         (MIN,MAX,AVERAGE) * Additional consolidation functions are COUNT
+         and SIGMA, which give information on statistics on a per
+         "time-bin" basis. * All these consolidation values are always
+         returned as separate columns, that are returned by RRD and the
+         consolidation function given as Argument is ignored. Main reason
+         is that this way there is only one call to rrd_fetcht and thus the
+         database even if we need to fetch for example min, avg and max.
+         Compare this to 3 calls in case of different consolidation
+         functions - and if you want to get SIGMA and COUNT as well it is
+         still only one call to the backend and the database. * Some
+         previous existing features have been taken out at the moment to
+         allow for this reduced set of SQL queries. o prediction using the
+         values from the last X days at the same time o the corresponding
+         sigma calculation * The idea is to create generic CDEF's that will
+         do the same thing, but that is also available when using RRD-files
+         (similar to TREND, but with another scope) This will get posted as
+         a separate patch. * Overall performance should be much better and
+         the patch as a whole simpler. * The patch also includes
+         modifications to the configuration infrastructure, to make libdbi
+         support optional. -- Martin Sperl
 
-------------------------------------------------------------------------
-r1651 | oetiker | 2008-11-07 15:09:29 +0100 | 2 lines
+2008-11-07 14:02  oetiker
 
-extra file to make libdbi patch work
+       * CONTRIBUTORS, doc/rrdgraph_rpn.pod, src/rrd_rpncalc.c,
+         src/rrd_rpncalc.h: new CDEF functions for predictions PREDICT and
+         PREDICTSIGMA -- Martin Sperl
 
-------------------------------------------------------------------------
-r1650 | oetiker | 2008-11-07 15:07:53 +0100 | 38 lines
+2008-11-07 13:51  oetiker
 
-As some of you may know that I have created  a patch for rrdtool 1.2 a few years ago, so that a database could be queried  for
-values for graphing.
+       * src/rrd_daemon.c: Much simpler handling of timestamp errors.
+         Return an error to the user when any of the time stamp values are
+         invalid. This is similar to RRDTool's normal behavior. Removed the
+         complex logic previously used to return error codes to the user.
+         This solves a bug where non-advancing timestamps could have
+         produced incorrect error output during "BATCH" mode. The bug was
+         cause by using the sock->wbuf pointer for the error output. --
+         kevin brintnall
 
-The patch has been mostly rewritten and the following changes have been made:
+2008-11-07 13:45  oetiker
 
-   * high dependency on mysql has been reduced by avoiding the
-     temporary tables (which was bad for mysql replication)
-   * The number of executed SQL-Statements for one CDEF has been
-     reduced to 1 compared to 11 SQLs (including CREATE TEMPORARY
-     TABLE) - for patch against version 1.2
-   * All consolidation is done in rrdtool itself (MIN,MAX,AVERAGE)
-   * Additional consolidation functions are COUNT and SIGMA, which give
-     information on statistics on a per "time-bin" basis.
-   * All these consolidation values are always returned as separate
-     columns, that are returned by RRD and the consolidation function
-     given as Argument is ignored.
-     Main reason is that this way there is only one call to rrd_fetcht
-     and thus the database even if we need to fetch for example min,
-     avg and max. Compare this to 3 calls in case of different
-     consolidation functions - and if you want to get SIGMA and COUNT
-     as well it is still only one call to the backend and the database.
-   * Some previous existing features have been taken out at the moment
-     to allow for this reduced set of SQL queries.
-         o prediction using the values from the last X days at the same
-           time
-         o the corresponding sigma calculation
-   * The idea is to create generic CDEF's that will do the same thing,
-     but that is also available when using RRD-files (similar to TREND,
-     but with another scope)
-     This will get posted as a separate patch.
-   * Overall performance should be much better and the patch as a whole
-     simpler.
-   * The patch also includes modifications to the configuration
-     infrastructure, to make libdbi support optional.
+       * src/rrd_daemon.c: rrdcached: pull in rrd_config.h so we can use
+         its defines ... particularly HAVE_VSNPRINTF -- kevin brintnall
 
--- Martin Sperl
+2008-11-04 07:12  oetiker
 
+       * bindings/Makefile.am, bindings/lua/Makefile.am, doc/Makefile.am: I
+         realize now that the problem is the line test -f lua/Makefile &&
+         cd lua && $(MAKE) install || true in the target
+         "install-data-local", in bindings/Makefile.am. It forces execution
+         of bindings/lua/Makefile independently of lua being found or not.
+         I added that line in my first patch, following perl, python and
+         ruby build style, but it's not needed after I switched to
+         automake. The make recursion is controlled by SUBDIRS, which will
+         only contain "lua" if BUILD_LUA is true. -- Fidelis Assis
 
-------------------------------------------------------------------------
-r1649 | oetiker | 2008-11-07 15:02:09 +0100 | 3 lines
+2008-11-02 17:25  oetiker
 
-new CDEF functions for predictions PREDICT and PREDICTSIGMA
--- Martin Sperl
+       * bindings/lua/Makefile.am: fix build process for systems without
+         lua
 
-------------------------------------------------------------------------
-r1648 | oetiker | 2008-11-07 14:51:24 +0100 | 10 lines
+2008-11-02 17:09  oetiker
 
-Much simpler handling of timestamp errors.  Return an error to the user
-when any of the time stamp values are invalid.  This is similar to
-RRDTool's normal behavior.  Removed the complex logic previously used to
-return error codes to the user.
+       * src/rrd_daemon.c: PTHREAD_COND_INITIALIZER may only be used to
+         initialize static cond variables. -- Sebastian Harl
 
-This solves a bug where non-advancing timestamps could have produced
-incorrect error output during "BATCH" mode.  The bug was cause by using
-the sock->wbuf pointer for the error output. -- kevin brintnall
+2008-11-02 15:25  oetiker
 
+       * configure.ac: reverting non build makefile patch ... we need to
+         lua makefile for building the ditribution
 
-------------------------------------------------------------------------
-r1647 | oetiker | 2008-11-07 14:45:34 +0100 | 4 lines
+2008-11-01 09:09  oetiker
 
-rrdcached: pull in rrd_config.h so we can use its defines
-... particularly HAVE_VSNPRINTF --  kevin brintnall 
+       * configure.ac: do not create the lua makefile if lua is not to be
+         compiled.
 
+2008-10-30 14:32  oetiker
 
-------------------------------------------------------------------------
-r1645 | oetiker | 2008-11-04 08:12:46 +0100 | 15 lines
+       * doc/cdeftutorial.pod: fix from alex
 
-I realize now that the problem is the line
+2008-10-28 08:57  oetiker
 
-    test -f lua/Makefile && cd lua && $(MAKE) install || true
+       * NEWS, doc/rrddump.pod, doc/rrdtool-dump.xsd, src/rrd_dump.c,
+         src/rrd_tool.c: - remove the spaccing between the elements - add
+         xsd support to dump output - change the argument
+         "[--no-header|-n]" to [--header|-h {xsd,dtd}] -- tobias.lindenmann
+         1und1.de
 
-in the target "install-data-local", in bindings/Makefile.am. It forces
-execution of bindings/lua/Makefile independently of lua being found or
-not. I added that line in my first patch, following perl, python and
-ruby build style, but it's not needed after I switched to automake. The
-make recursion is controlled by SUBDIRS, which will only contain "lua"
-if BUILD_LUA is true.
+2008-10-26 15:18  oetiker
 
--- Fidelis Assis
+       * configure.ac, src/Makefile.am, src/librrd.sym.in,
+         src/librrd.sym.in.in: make compilation on older OSX versios work
+         by removing the # from the librrd.sym file
 
+2008-10-24 06:20  oetiker
 
+       * branches/1.2/program/doc/rrdpython.pod,
+         branches/1.3/program/doc/rrdpython.pod, doc/rrdpython.pod: fixed
+         typo ... GAUGE not GUAGE
 
-------------------------------------------------------------------------
-r1644 | oetiker | 2008-11-02 18:25:36 +0100 | 2 lines
+2008-10-22 20:41  oetiker
 
-fix build process for systems without lua
+       * src/rrd_daemon.c: The previous code relied on the assumption that
+         pthread_cond_init(&cond) was equivalent to memset(&cond,0). This
+         may not be true on all platforms. -- kevin
 
-------------------------------------------------------------------------
-r1643 | oetiker | 2008-11-02 18:09:36 +0100 | 3 lines
+2008-10-22 06:02  oetiker
 
-PTHREAD_COND_INITIALIZER may only be used to initialize static cond variables.
--- Sebastian Harl
+       * src/rrd_daemon.c: remove_cache_item() did not check whether a file
+         was in queue before modifying the cache head/tail pointers.
+         Therefore, the process of flushing old files may perturb the
+         cache_queue_head pointer. This caused some nodes with
+         CI_FLAGS_IN_QUEUE to be un-linked from the queue list. Thereafter,
+         they would not be flushed by any periodic process (although they
+         could be revived with FLUSH or UPDATE). This caused a slow memory
+         leak for files that are no longer updated. Pending updates for
+         these "abandoned" files would remain in memory ad infinitum. With
+         this patch, remove_from_queue() will check that the item is queued
+         before modifying the head/tail pointers. This restores the
+         intended behavior. --kevin
 
-------------------------------------------------------------------------
-r1642 | oetiker | 2008-11-02 16:25:48 +0100 | 2 lines
+2008-10-22 05:08  oetiker
 
-reverting non build makefile patch ... we need to lua makefile for building the ditribution
+       * bindings/lua/Makefile.lua.in: this was replaced by Makefile.am
 
-------------------------------------------------------------------------
-r1641 | oetiker | 2008-11-01 10:09:07 +0100 | 2 lines
+2008-10-21 06:10  oetiker
 
-do not create the lua makefile if lua is not to be compiled.
+       * bindings/lua/Makefile.am: guess one needs that in svn too for
+         luabindings to work
 
-------------------------------------------------------------------------
-r1638 | oetiker | 2008-10-30 15:32:09 +0100 | 2 lines
+2008-10-21 05:42  oetiker
 
-fix from alex
+       * src/rrd_daemon.c: * Open all listen sockets in daemonize(), while
+         we still have stderr. Changed open_listen_socket_* routines to
+         complain to stderr. Now, any errors in binding to the listen
+         sockets are much more obvious. * Simplified exit of parent after
+         fork() * PID file will be correctly cleaned up if there is a
+         failure in daemonize(). * unlink the unix socket before trying to
+         bind() (after we're sure we have the PID file) -- kevin
 
-------------------------------------------------------------------------
-r1637 | oetiker | 2008-10-28 09:57:13 +0100 | 5 lines
+2008-10-20 11:46  oetiker
 
-- remove the spaccing between the elements
-- add xsd support to dump output
-- change the argument "[--no-header|-n]" to [--header|-h {xsd,dtd}]
--- tobias.lindenmann 1und1.de
+       * src/rrd.h, src/rrd_create.c, src/rrd_open.c, src/rrd_update.c:
+         rrd_notify_row patch: - Delegate choice of starting row for newly
+         created RRD files to the rrd_open.c API. - Introduce the
+         rrd_notify_row() function so that an implementation can choose to
+         align the rows of new RRDs with existing RRDs, if desirable. -
+         Maintain the existing behaviour (random starting row) by default.
+         -- Daniel.Pocock
 
-------------------------------------------------------------------------
-r1632 | oetiker | 2008-10-26 16:18:33 +0100 | 2 lines
+2008-10-20 06:06  oetiker
 
-make compilation on older OSX versios work by removing the # from the librrd.sym file
+       * bindings/Makefile.am, bindings/lua/README,
+         bindings/lua/compat-5.1r5, bindings/lua/compat-5.1r5/compat-5.1.c,
+         bindings/lua/compat-5.1r5/compat-5.1.h,
+         bindings/lua/compat-5.1r5/compat-5.1.lua, bindings/lua/rrdlua.c,
+         bindings/lua/test.lua, bindings/lua/test.lua.bottom, configure.ac:
+         - Lua module build and install process rewritten using
+         automake+libtool - improved check for compat-5.1 availability --
+         Fidelis Assis
 
-------------------------------------------------------------------------
-r1628 | oetiker | 2008-10-24 08:20:21 +0200 | 2 lines
+2008-10-18 22:32  oetiker
 
-fixed typo ... GAUGE not GUAGE
+       * src/rrd_open.c: rrd_open should not create files with restrictive
+         masks Removed unnecessary "mode" varaible. The mode is only used
+         when O_CREAT is specified, where we want to use 0666 (as
+         rrd_create_fn did r<=1612). --kevin
 
-------------------------------------------------------------------------
-r1627 | oetiker | 2008-10-22 22:41:59 +0200 | 4 lines
+2008-10-18 15:50  oetiker
 
-The previous code relied on the assumption that pthread_cond_init(&cond)
-was equivalent to memset(&cond,0).  This may not be true on all platforms.
--- kevin
+       * src/rrd.h, src/rrd_open.c: - encapsulate fd and mmap related
+         variables within a private data structure - rrd_file_t keeps a
+         pointer to the private data structure of type void*, so that other
+         block storage implementations can store their internal data with
+         rrd_file_t -- Daniel.Pocock
 
-------------------------------------------------------------------------
-r1626 | oetiker | 2008-10-22 08:02:23 +0200 | 15 lines
+2008-10-17 05:50  oetiker
 
-remove_cache_item() did not check whether a file was in queue before
-modifying the cache head/tail pointers.  Therefore, the process of
-flushing old files may perturb the cache_queue_head pointer.  This caused
-some nodes with CI_FLAGS_IN_QUEUE to be un-linked from the queue list.
+       * src/rrd_client.c: rrdc_flush_if_daemon should not clobber error
+         message -- kevin (as suggested by Sebastian)
 
-Thereafter, they would not be flushed by any periodic process (although
-they could be revived with FLUSH or UPDATE).  This caused a slow memory
-leak for files that are no longer updated.  Pending updates for these
-"abandoned" files would remain in memory ad infinitum.
+2008-10-17 05:44  oetiker
 
-With this patch, remove_from_queue() will check that the item is queued
-before modifying the head/tail pointers.  This restores the intended
-behavior.
---kevin
+       * branches/1.3/program/src/rrd_graph.c, src/rrd_graph.c: use double
+         for legend positioning to fight wiggle
 
-------------------------------------------------------------------------
-r1625 | oetiker | 2008-10-22 07:08:47 +0200 | 2 lines
+2008-10-16 21:33  oetiker
 
-this was replaced by Makefile.am
+       * doc/rrdbuild.pod: fix version numbers in compile instructions tobi
 
-------------------------------------------------------------------------
-r1624 | oetiker | 2008-10-21 08:10:32 +0200 | 2 lines
+2008-10-16 21:30  oetiker
 
-guess one needs that in svn too for luabindings to work
+       * src/rrd_client.c: In almost all cases where rrdc_flush can fail,
+         it will leave a more descriptive error message anyway.. better not
+         overwrite it. -- kevin
 
-------------------------------------------------------------------------
-r1623 | oetiker | 2008-10-21 07:42:50 +0200 | 13 lines
+2008-10-16 21:12  oetiker
 
- * Open all listen sockets in daemonize(), while we still have stderr.
-   Changed open_listen_socket_* routines to complain to stderr.  Now, any
-   errors in binding to the listen sockets are much more obvious.
+       * src/rrd.h, src/rrd_create.c, src/rrd_dump.c, src/rrd_fetch.c,
+         src/rrd_first.c, src/rrd_info.c, src/rrd_last.c,
+         src/rrd_lastupdate.c, src/rrd_open.c, src/rrd_resize.c,
+         src/rrd_tune.c, src/rrd_update.c: - rrd_open() calculates file
+         size for new files and calls mmap once for the whole file -
+         rrd_resize() cleaned up, no longer passing a size through the
+         cookie argument - rrd_init(&my_rrd) must be called before
+         rrd_open() - if people are calling rrd_open directly from
+         application code, this might be troublesome. Alternative
+         solutions: creating an additional function, rrd_open_create(), or
+         adding an extra argument to rrd_open() for setting the file size
+         -- Daniel Pocock
 
- * Simplified exit of parent after fork()
+2008-10-16 21:05  oetiker
 
- * PID file will be correctly cleaned up if there is a failure in daemonize().
+       * src/rrd_open.c, src/rrd_update.c: move rrd_lock into rrd_open
+         where the general rrd_file ops are located. -- Daniel Pocock
 
- * unlink the unix socket before trying to bind()
-   (after we're sure we have the PID file)
+2008-10-16 06:11  oetiker
 
--- kevin
+       * src/rrd_daemon.c: error reporting caused crash in journal replay
 
-------------------------------------------------------------------------
-r1622 | oetiker | 2008-10-20 13:46:08 +0200 | 9 lines
+2008-10-16 06:11  oetiker
 
-rrd_notify_row patch:
+       * doc/rrdbuild.pod: better build docs
 
- - Delegate choice of starting row for newly created RRD  files to the  rrd_open.c API.
- - Introduce the rrd_notify_row() function so that an implementation can choose to align the rows of new RRDs with existing  RRDs, if desirable.
- - Maintain the existing behaviour (random starting row) by default.
+2008-10-15 05:29  oetiker
 
--- Daniel.Pocock
+       * src/rrd.h, src/rrd_create.c, src/rrd_open.c, src/rrd_resize.c,
+         src/rrd_tool.h, src/rrd_update.c: reverted r1601 and r1606 since
+         r1601 introduced a non portable mremap and r1606 has a dependency
+         on r1601.
 
+2008-10-14 20:14  oetiker
 
-------------------------------------------------------------------------
-r1621 | oetiker | 2008-10-20 08:06:16 +0200 | 4 lines
+       * src/rrd.h, src/rrd_create.c, src/rrd_open.c, src/rrd_update.c:
+         This moves selection of the initial RRA row into the rrd_open.c
+         API The current implementation (random row) is used by default.
+         However, it now provides an opportunity for alternative
+         implementations to integrate with rrdtool in a single place. Maybe
+         there are other places in rrdtool where I should insert calls to
+         the function rrd_notify_row()? This has been tested with rrdtool
+         create and rrdtool info to verify that random rows are selected by
+         default (existing behaviour preserved). -- Daniel Pocock
 
-- Lua module build and install process rewritten using automake+libtool
-- improved check for compat-5.1 availability
--- Fidelis Assis
+2008-10-14 19:23  oetiker
 
-------------------------------------------------------------------------
-r1620 | oetiker | 2008-10-19 00:32:19 +0200 | 6 lines
+       * src/rrd_daemon.c: Under most circumstances, rrdcached can detect a
+         stale pid file. If the process in the pid file does not exist, or
+         cannot be signalled by the rrdcached owner, then rrdcached will
+         replace the pid file and start normally. Otherwise, it will
+         complain verbosely to STDERR. --kevin
 
-rrd_open should not create files with restrictive masks
+2008-10-14 19:08  oetiker
 
-Removed unnecessary "mode" varaible.  The mode is only used when O_CREAT is
-specified, where we want to use 0666 (as rrd_create_fn did r<=1612).
---kevin
+       * src/rrd_client.c: * this preserves principle of least surprise
+         when dealing with files that are reachable via many path strings.
+         i.e. when $PWD=/base/dir the following files are the same:
+         /base/dir/x.rrd x.rrd ../dir/x.rrd * for performance, absolute
+         paths (starting with '/') are not resolved. this reduces the
+         number of stat(2) system calls.
 
-------------------------------------------------------------------------
-r1619 | oetiker | 2008-10-18 17:50:07 +0200 | 7 lines
+2008-10-14 19:08  oetiker
 
-- encapsulate fd and mmap related variables within a private data
-structure
-- rrd_file_t keeps a pointer to the private data structure of type
-void*, so that other block storage implementations can store their
-internal data with rrd_file_t
--- Daniel.Pocock
+       * doc/rrdcached.pod, src/rrd_daemon.c: Now, the daemon will check
+         that a base directory is NOT reached via symbolic link.
+         Documentation added to illustrate the restriction. This allows
+         several simplifying (and performance-enhancing) assumptions to be
+         made elsewhere in the code: * it ensures that paths resolved in
+         the client via realpath() will match our data structure keys *
+         it's possible to generate the correct absolute path when given a
+         relative path by simply prepending the base directory * it's not
+         necessary to resolve paths that begin with '/' -- kevin
 
-------------------------------------------------------------------------
-r1618 | oetiker | 2008-10-17 07:50:22 +0200 | 3 lines
+2008-10-14 19:08  oetiker
 
-rrdc_flush_if_daemon should not clobber error message -- kevin (as suggested by Sebastian)
+       * CONTRIBUTORS, src/rrd_daemon.c: rrdcached treats relative and
+         absolute paths the same -- kevin
 
+2008-10-14 11:33  oetiker
 
-------------------------------------------------------------------------
-r1617 | oetiker | 2008-10-17 07:44:09 +0200 | 2 lines
+       * src/rrd_create.c, src/rrd_open.c, src/rrd_resize.c,
+         src/rrd_tool.h: Some observations I made while implementing this:
+         - In rrd_open(), the call to rrd_init() clobbers values already
+         populated in rrd_create.c - The logic for newfile_size in
+         rrd_open() wasn't really able to cope with the logic for a file
+         starting with size 0 I've tried to deal with these issues, but
+         maybe there is a more elegant solution. -- Daniel Pocock
 
-use double for legend positioning to fight wiggle
+2008-10-14 06:37  oetiker
 
-------------------------------------------------------------------------
-r1616 | oetiker | 2008-10-16 23:33:08 +0200 | 5 lines
+       * src/rrd_daemon.c: clearer way of advancing the flush time -- kevin
 
-fix version numbers in compile instructions
-tobi
+2008-10-13 22:07  oetiker
 
+       * src/rrd_daemon.c: This patch reduces the number of
+         time()/gettimeofday() system calls when doing high volume
+         processing. This enables about 25% speed increase during journal
+         replay and "BATCH" processing. (this is a function of syscall
+         overhead). * note when "BATCH" processing or journal replay
+         starts, use that timestamp for all commands * use the batch start
+         time to detect when we're in batch mode. no longer need a separate
+         boolean. * pass the time_t into handle_request * pass the time_t
+         through to the commands that need it -- kevin brintnall
 
+2008-10-13 18:41  oetiker
 
-------------------------------------------------------------------------
-r1614 | oetiker | 2008-10-16 23:30:17 +0200 | 4 lines
+       * src/rrd_daemon.c: fixed bad folding marker (on
+         handle_request_flush) -- kevin
 
-In almost all cases where rrdc_flush can fail, it will leave a more
-descriptive error message anyway..  better not overwrite it.
--- kevin
+2008-10-11 09:53  oetiker
 
-------------------------------------------------------------------------
-r1613 | oetiker | 2008-10-16 23:12:27 +0200 | 14 lines
+       * src/rrd_daemon.c: this ensures that the response is
+         protocol-compliant even if additional info has been added to the
+         write buffer during processing. -- kevin brintnall
 
-- rrd_open() calculates file size for new files and calls mmap once for
-the whole file
+2008-10-11 09:37  oetiker
 
-- rrd_resize() cleaned up, no longer passing a size through the cookie
-argument
+       * doc/rrdcached.pod, src/rrd_daemon.c: This patch introduces a
+         feature whereby rrdcached will disallow updates that do not
+         advance the update time. This prevents the updates from being
+         discarded later by rrd_update_r. This patch attempts to make the
+         most of the protocol's limited ability to return error text when
+         using a -1 return code. -- kevin brintnall
 
-- rrd_init(&my_rrd) must be called before rrd_open() - if people are
-calling rrd_open directly from application code, this might be
-troublesome.  Alternative solutions: creating an additional function,
-rrd_open_create(), or adding an extra argument to rrd_open() for setting
-the file size
+2008-10-10 05:21  oetiker
 
--- Daniel Pocock
+       * etc/rrdcached-init: This patch ensures that when rrdcached is
+         stopped, it cleans up the pid file. Apparently this is necessary
+         if RRDCACHED_USER is not the default "rrdcached". -- Bernard Li
 
-------------------------------------------------------------------------
-r1612 | oetiker | 2008-10-16 23:05:51 +0200 | 2 lines
+2008-10-10 05:21  oetiker
 
-move rrd_lock into rrd_open where the general rrd_file ops are located. -- Daniel Pocock
+       * rrdtool.spec: The patch I submitted for rrdtool.spec introduced a
+         bug where there are two ldconfig calls in the %postun section.
+         This patch fixes that. -- Bernard Li
 
-------------------------------------------------------------------------
-r1610 | oetiker | 2008-10-16 08:11:54 +0200 | 3 lines
+2008-10-10 05:19  oetiker
 
-error reporting caused crash in journal replay
+       * etc/rrdcached-default, etc/rrdcached-init: This patch does two
+         things: - remove the --pidfile check, for compatibility with older
+         RHEL/Centos systems - update the username used by the init script,
+         to remain consistent with Bernard's changes to the spec file --
+         Daniel.Pocock
 
+2008-10-08 20:47  oetiker
 
-------------------------------------------------------------------------
-r1609 | oetiker | 2008-10-16 08:11:44 +0200 | 2 lines
+       * rrdtool.spec: Split-out rrd-cached subpackage -- Bernard Li
 
-better build docs
+2008-10-08 05:49  oetiker
 
-------------------------------------------------------------------------
-r1607 | oetiker | 2008-10-15 07:29:41 +0200 | 2 lines
+       * rrdtool.spec: This patch updates the spec file and includes the
+         librrd.pc file in the -devel subpackage so that you can build the
+         RPM again. -- Bernard
 
-reverted r1601 and r1606 since r1601 introduced a non portable mremap and r1606 has a dependency on r1601.
+2008-10-08 05:47  oetiker
 
-------------------------------------------------------------------------
-r1606 | oetiker | 2008-10-14 22:14:35 +0200 | 15 lines
+       * src/rrd_daemon.c: fix crash reported by Bernard Li -
+         connection_thread_main: avoid double calls to close_connection --
+         kevin
 
-This moves selection of the initial RRA row into the rrd_open.c API
+2008-10-08 05:46  oetiker
 
-The current implementation (random row) is used by default.  However, it
-now provides an opportunity for alternative implementations to integrate
-with rrdtool in a single place.
+       * doc/rrdcached.pod: fixed typo
 
-Maybe there are other places in rrdtool where I should insert calls to
-the function rrd_notify_row()?
+2008-10-07 21:10  oetiker
 
-This has been tested with rrdtool create and rrdtool info to verify that
-random rows are selected by default (existing behaviour preserved).
+       * doc/rrdcached.pod, src/rrd_daemon.c: This patch introduces two new
+         commands for cache management: PENDING: shows any un-written
+         updates for a file FORGET : remove a file completely from cache --
+         kevin brintnall
 
--- Daniel Pocock
+2008-10-07 21:08  oetiker
 
+       * src/rrd_daemon.c: This patch moves the permission handling code
+         around a bit. * moved privilege checks into the command handler
+         functions (possible now that we pass the sock data structures
+         around) * on UPDATE, delay journal_write until after
+         check_file_access(). previously, it was possible for a high-priv
+         socket to introduce commands into the journal that could be
+         replayed if they were still in the journal at next startup. *
+         moved has_privilege() further up in the file to avoid need for
+         prototype. -- kevin brintnall
 
-------------------------------------------------------------------------
-r1605 | oetiker | 2008-10-14 21:23:24 +0200 | 8 lines
+2008-10-07 16:28  oetiker
 
-Under most circumstances, rrdcached can detect a stale pid file.
+       * src/rrd_daemon.c: This patch introduces some extra safety checks
+         in journal processing, and cleans up the code a little bit. *
+         moved journal initialization to its own function; main() is
+         cleaner * any time we process a file, log the results (previous
+         code only loggded if there was a valid entry) * After reading
+         journals at startup, only trigger full flush out to disk if the
+         user specified -F. Avoids unnecessary IO on startup unless the
+         user also wants unnecessary IO on shutdown. * journal_replay is
+         much more careful about files it will open * must be a regular
+         file * must be owned by daemon user * must not be group/other
+         writable * Ensure that the journal gets created with the right
+         permissions. ... even when the daemon is invoked with a permissive
+         umask. equivalent to "chmod a-x,go-w" -- kevin
 
-If the process in the pid file does not exist, or cannot be signalled by
-the rrdcached owner, then rrdcached will replace the pid file and start
-normally.  Otherwise, it will complain verbosely to STDERR.
+2008-10-07 15:37  oetiker
 
---kevin
+       * src/rrd_open.c: aniel Pocock reported that the argument may be
+         NULL in low-diskspace situations, so check for that here to
+         prevent a segmentation fault. -- Florian Forster
 
-------------------------------------------------------------------------
-r1604 | oetiker | 2008-10-14 21:08:56 +0200 | 12 lines
+2008-10-06 19:14  oetiker
 
- * this preserves principle of least surprise when dealing with files that
-   are reachable via many path strings.  i.e. when $PWD=/base/dir the
-   following files are the same:
+       * bindings/lua/Makefile.lua: Makefile.lua is now generated
 
-        /base/dir/x.rrd
-        x.rrd
-        ../dir/x.rrd
+2008-10-06 19:13  oetiker
 
- * for performance, absolute paths (starting with '/') are not resolved.
-   this reduces the number of stat(2) system calls.
+       * bindings/lua/Makefile.lua.in: added missing file from lua 5.0
+         integration patch
 
+2008-10-06 19:05  oetiker
 
-------------------------------------------------------------------------
-r1603 | oetiker | 2008-10-14 21:08:36 +0200 | 15 lines
+       * doc/rrdcached.pod, src/rrd_daemon.c: This patch introduces "BATCH"
+         mode. In this mode, a client can feed multiple commands to
+         rrdcached without waiting for acknowledgement. This permits
+         multiple commands to be sent for each read()/write(). This can
+         dramatically increase the command throughput by increasing the
+         amount of work done per system call. It enables over 100k
+         updates/second with no CPU utilization due to the reduced system
+         calls. -- kevin brintnall
 
-Now, the daemon will check that a base directory is NOT reached via
-symbolic link.  Documentation added to illustrate the restriction.
+2008-10-06 19:04  oetiker
 
-This allows several simplifying (and performance-enhancing) assumptions to
-be made elsewhere in the code:
+       * src/rrd_daemon.c: This patch introduces buffered I/O to rrdcached.
+         Now, rrdcached can interpret as many commands as arrive in a
+         single read(), and it will use fewer write()s when there are
+         multiple output lines. All routines now pass around
+         listen_socket_t objects instead of file descriptors. All I/O is
+         now contained in two routines. It's no longer necessary to specify
+         the line count in multi-line outputs, since that is calculated
+         automatically. This is the foundation for accepting batched
+         commands. -- kevin brintnall
 
- * it ensures that paths resolved in the client via realpath() will match
-   our data structure keys
+2008-10-06 05:05  oetiker
 
- * it's possible to generate the correct absolute path when given a
-   relative path by simply prepending the base directory
+       * CONTRIBUTORS, bindings/Makefile.am, bindings/lua/Makefile.lua,
+         bindings/lua/README, bindings/lua/rrdlua.c, configure.ac,
+         doc/rrdlua.pod: Support to Lua 5.0 -- Fidelis Assis
 
- * it's not necessary to resolve paths that begin with '/'
- -- kevin
+2008-10-04 16:05  oetiker
 
-------------------------------------------------------------------------
-r1602 | oetiker | 2008-10-14 21:08:00 +0200 | 2 lines
+       * configure.ac, src/Makefile.am, src/librrd.pc.in: initial librrd
+         file added ... this will need more love since it does not pick up
+         any -rpath settings
 
-rrdcached treats relative and absolute paths the same -- kevin
+2008-10-04 13:34  oetiker
 
-------------------------------------------------------------------------
-r1601 | oetiker | 2008-10-14 13:33:37 +0200 | 13 lines
+       * branches/1.3/program/src/rrd_resize.c, src/rrd_resize.c,
+         trunk/tutorial/lisa2008/rrd-by-example/ex/hw-demo.pl: * rrd_resize
+         fixed so that it does NOT alter the original file (mmap side
+         effect) * rrd_resize can can deal with version 4 files, so let it
 
-Some observations I made while implementing this:
+2008-10-03 22:53  oetiker
 
-- In rrd_open(), the call to rrd_init() clobbers values already populated in
-rrd_create.c
+       * branches/1.3/program/src/rrd_open.c, src/rrd_open.c: The patch
+         fixs rrdtools behaviour when presented with trunkated rrd files. *
+         Make sure that we do not extend past the end of the file when
+         reading the header. * Makes sure that the data portion of the file
+         is large enough, based on the ds_cnt and the total number of RRA
+         rows -- kevin brintnall
 
-- The logic for newfile_size in rrd_open() wasn't really able to cope with the
-logic for a file starting with size 0
+2008-10-02 19:17  oetiker
 
-I've tried to deal with these issues, but maybe there is a more elegant solution.
+       * src/rrd_daemon.c: folding fix
 
--- Daniel Pocock
+2008-10-02 19:08  oetiker
 
+       * bindings/ruby/extconf.rb: missing spaces in extconf.rb caused
+         compile failure -- kevin
+
+2008-10-02 17:17  oetiker
+
+       * etc/rrdcached-default: permission fix for rrdcached socket --
+         Daniel.Pocock
+
+2008-10-01 20:22  oetiker
 
-------------------------------------------------------------------------
-r1600 | oetiker | 2008-10-14 08:37:19 +0200 | 3 lines
+       * src/Makefile.am: since rrdcached uses pthread functions, use the
+         threadsafe version of librrd as well. This will also reasolve
+         build problems on boxes there the ptherad functions must be linked
+         explicitly.
+
+2008-10-01 20:04  oetiker
+
+       * doc/rrdcached.pod: Clearer explanation on which paths are
+         permitted when -B is supplied -- kevin
 
-clearer way of advancing the flush time
--- kevin
+2008-10-01 20:01  oetiker
 
-------------------------------------------------------------------------
-r1599 | oetiker | 2008-10-14 00:07:14 +0200 | 18 lines
+       * bindings/lua/Makefile.lua, bindings/ruby/extconf.rb,
+         bindings/ruby/main.c, bindings/tcl/Makefile.am,
+         bindings/tcl/tclrrd.c, configure.ac, src/Makefile.am,
+         src/rrd_client.c, src/rrd_dump.c, src/rrd_gfx.c, src/rrd_open.c,
+         src/rrd_xport.c: Fixes for the following compiler warnings: -
+         unused variable - unused parameter - assignment / argument
+         discards qualifiers from pointer target type - comparison between
+         signed and unsigned - too many arguments to function - assignment
+         makes pointer from integer without a cast - incompatible pointer
+         type - differ in signedness - implicit declaration of function -
+         enumeration value not handled in switch - value computed is not
+         used Most notably, a possible segfault in the Rrd_Lastupdate()
+         code of the TCL bindings has been fixed. Also, -Wundef (warn if an
+         undefined identifier is evaluated in an #if directive) has been
+         removed from CFLAGS. I don't see any problem with letting
+         undefined identifiers evaluate to "false" in rrdtool. Keeping that
+         option would produce a lot of (imho unnecessary) errors which
+         would need to be fixed using ugly preprocessor statements like
+         '#if defined(FOO) && FOO'. -- Sebastian Harl
 
-This patch reduces the number of time()/gettimeofday() system calls when
-doing high volume processing.  This enables about 25% speed increase
-during journal replay and "BATCH" processing.  (this is a function of
-syscall overhead).
+2008-10-01 19:48  oetiker
 
- * note when "BATCH" processing or journal replay starts, use that
-   timestamp for all commands
+       * Makefile.am, etc, etc/rrdcached-default, etc/rrdcached-init,
+         rrdtool.spec: I've adapted an init script for rrdcached, and also
+         incorporated it into the spec file so that it is deployed with the
+         RPM. There are also some other changes to the spec file so that I
+         could build an RPM successfully from trunk. I'm happy to tidy up
+         the spec file some more if no one else wants to mandate the best
+         way to do it. By default, rrdcached runs as nobody. I've tested
+         this on a server running Ganglia gmetad. Regards, Daniel
 
- * use the batch start time to detect when we're in batch mode.  no longer
-   need a separate boolean.
+2008-10-01 19:44  oetiker
 
- * pass the time_t into handle_request
+       * doc/rrdcached.pod, src/rrd_daemon.c: Now, moving a value to the
+         head of the queue is O(1). Before it was O(queue size). This
+         improves performance of individual flushes when there is a large
+         number of files in the queue. As a result, we don't hold the
+         cache_lock as much. Revamped enqueue_cache_item to take advantage
+         of the new structure. Renamed _wipe_ci_values to look nicer with
+         other code. --kevin
 
- * pass the time_t through to the commands that need it
+2008-10-01 16:53  oetiker
 
--- kevin brintnall
+       * src/rrd_graph.c: lcd is actually gcd!
 
+2008-09-30 18:44  oetiker
 
-------------------------------------------------------------------------
-r1598 | oetiker | 2008-10-13 20:41:12 +0200 | 3 lines
+       * doc/rrdcached.pod, src/rrd_daemon.c: When -B is specified, the
+         daemon will only operate on files within the base directory.
+         Symlink detection is omitted for performance reasons (if a user
+         can create a symlink, they can probably overwrite the RRDs
+         anyway). -- kevin
 
-fixed bad folding marker (on handle_request_flush)
--- kevin
+2008-09-30 18:43  oetiker
 
-------------------------------------------------------------------------
-r1597 | oetiker | 2008-10-11 11:53:40 +0200 | 4 lines
+       * src/rrd_daemon.c: check permissions before writing to journal --
+         kevin
 
-this ensures that the response is protocol-compliant even if additional
-info has been added to the write buffer during processing.
--- kevin brintnall
+2008-09-30 18:42  oetiker
 
-------------------------------------------------------------------------
-r1596 | oetiker | 2008-10-11 11:37:53 +0200 | 10 lines
+       * src/rrd_daemon.c: The daemon should behave the same way w/r/t
+         files whether we "-g" or not. -- kevin
 
-This patch introduces a feature whereby rrdcached will disallow updates
-that do not advance the update time.  This prevents the updates from being
-discarded later by rrd_update_r.
+2008-09-29 20:00  oetiker
 
-This patch attempts to make the most of the protocol's limited ability to
-return error text when using a -1 return code.
+       * src/rrd_daemon.c: This bug caused the last line in each journal
+         file to be processed a second time. Since it had been modified due
+         to tokenizing, it failed syntax check. The daemon would always
+         record one failed line at end-of-journal as a result. No data loss
+         incurred by this bug. -- kevin
 
--- kevin brintnall 
+2008-09-29 19:58  oetiker
 
+       * doc/rrdcached.pod, src/rrd_daemon.c: This patch introduces the
+         concept of socket privilege levels. "UPDATE" and "FLUSHALL"
+         commands are restricted to high-privilege sockets. "FLUSH"
+         commands can be executed on any socket. This is ideal for
+         multi-user installations where only certain users need write
+         access to the RRD files. Now, nearly all socket information is
+         passed around the daemon in listen_socket_t data structures. In
+         case there is other per-socket state (i.e. if we add
+         authentication) we can put it there. Also, I created a new
+         "open_listen_socket_network" and removed the network setup from
+         "open_listen_socket". -- kevin
 
-------------------------------------------------------------------------
-r1595 | oetiker | 2008-10-10 07:21:19 +0200 | 5 lines
+2008-09-29 19:56  oetiker
+
+       * src/rrd_client.c, src/rrd_update.c: This patch provides better
+         error messages to the client when something goes wrong with the
+         daemon. When possible, the daemon error message is passed through
+         to rrd_set_error() on the client. Prior to this patch, most error
+         conditions would result in "Internal error", which is not very
+         helpful. -- kevin brintnall
 
-This patch ensures that when rrdcached is stopped, it cleans up the
-pid file.  Apparently this is necessary if RRDCACHED_USER is not the
-default "rrdcached".
--- Bernard Li
+2008-09-28 21:37  oetiker
 
-------------------------------------------------------------------------
-r1594 | oetiker | 2008-10-10 07:21:01 +0200 | 4 lines
+       * doc/rrdcached.pod: spelling fix -- kevin
 
-The patch I submitted for rrdtool.spec introduced a bug where there
-are two ldconfig calls in the %postun section.  This patch fixes that.
---  Bernard Li 
+2008-09-28 21:36  oetiker
+
+       * doc/rrdcached.pod, src/rrd_daemon.c: This patch removes an extra
+         "SIGNALS" section in the rrdcached.pod and merges "[BUG] fixed
+         hang in flush_file() introduced by per-file flush condition". --
+         kevin brintnall
+
+2008-09-28 19:27  oetiker
 
-------------------------------------------------------------------------
-r1593 | oetiker | 2008-10-10 07:19:06 +0200 | 11 lines
+       * src/rrd_daemon.c: a few missing {{{ folding }}} markers added --
+         kevin brintnall
 
-This patch does two things:
+2008-09-28 19:26  oetiker
 
-- remove the --pidfile check, for compatibility with older RHEL/Centos
-  systems
+       * doc/rrdcached.pod, src/rrd_daemon.c: This patch introduces "fast
+         shutdown" mode and two new signals. -- kevin brintnall
 
-- update the username used by the init script, to remain consistent with
-  Bernard's changes to the spec file
+2008-09-28 19:25  oetiker
 
--- Daniel.Pocock
+       * doc/rrdcached.pod, src/rrd_daemon.c: Moved signal handler setup
+         out of daemonize(). Coalesced common code in preparation for new
+         signals. Documented behavior of existing signals. -- kevin
+         brintnall
 
+2008-09-28 19:23  oetiker
 
-------------------------------------------------------------------------
-r1592 | oetiker | 2008-10-08 22:47:04 +0200 | 2 lines
+       * MakeMakefile: Attached is a patch to lower the version
+         requirements of libtool and automake. I have tested this on CentOS
+         4.x with the specified versions of libtool and automake and was
+         able to build RRDTool fine. I did *not* test building with PHP,
+         tcl, ruby or Python though. I also abstracted the version numbers
+         of all the dependencies such that editing them in the future will
+         be easier. -- Bernard Li
 
-Split-out rrd-cached subpackage -- Bernard Li
+2008-09-28 19:12  oetiker
 
-------------------------------------------------------------------------
-r1591 | oetiker | 2008-10-08 07:49:24 +0200 | 5 lines
+       * doc/rrdcached.pod, src/rrd_daemon.c: added support for FLUSHALL
+         command -- kevin brintnall
 
-This patch updates the spec file and includes the librrd.pc file in
-the -devel subpackage so that you can build the RPM again.
--- Bernard
+2008-09-28 19:10  oetiker
 
+       * src/rrd_daemon.c: move cache broadcast into enqueue_cache_item --
+         kevin brintnall
 
-------------------------------------------------------------------------
-r1590 | oetiker | 2008-10-08 07:47:39 +0200 | 2 lines
+2008-09-28 19:10  oetiker
 
-fix crash reported by Bernard Li - connection_thread_main: avoid double calls to close_connection -- kevin
+       * src/rrd_daemon.c: When -z <jitter> is specified, some updates may
+         be timestamped up to <jitter> seconcds in the future. Therefore, a
+         timeout of now+1 may not be sufficient. Set abs_timeout past the
+         point where any updates are currently specified. -- kevin
+         brintnall
 
-------------------------------------------------------------------------
-r1589 | oetiker | 2008-10-08 07:46:21 +0200 | 1 line
+2008-09-28 19:09  oetiker
 
-fixed typo
-------------------------------------------------------------------------
-r1588 | oetiker | 2008-10-07 23:10:54 +0200 | 7 lines
+       * src/rrd_daemon.c: The PID file is created with open() in the
+         parent process, while we still have STDERR open. If it cannot be
+         created, it complains verbosely to stderr. The PID file is written
+         in the child process. The only way the fdopen() will fail on a fd
+         that is already open is if you're completely out of memory. As in
+         other places in the code, I didn't consider this a case that
+         required a very verbose message. (Search for "strdup failed"). If
+         you still think a more verbose message is called for, please
+         suggest one. The attached patch corrects the error message to
+         complain about fdopen() vs fopen(). I hadn't noticed that until
+         you brought it up. -- kevin brintnall
 
-This patch introduces two new commands for cache management:
+2008-09-28 19:08  oetiker
 
- PENDING: shows any un-written updates for a file
- FORGET : remove a file completely from cache
+       * src/librrd.sym.in, src/rrd.h: rrd.h, librrd.sym: Define and export
+         rrd_info_r() -- Sebastian Harl
 
--- kevin brintnall
+2008-09-28 15:01  oetiker
 
-------------------------------------------------------------------------
-r1587 | oetiker | 2008-10-07 23:08:30 +0200 | 15 lines
+       * branches/1.2/program/src/rrd_graph.c,
+         branches/1.3/program/src/rrd_graph.c,
+         branches/1.3/program/src/rrd_tool.c, src/rrd_graph.c,
+         src/rrd_tool.c: vdef calc was using end_orig to determine for
+         which range it should do its calculations which is odd, since orig
+         is only the requested range as invocation time and not the data
+         range deliverd by fetch. It does fall completely flat when
+         shifting since shifting does not affect the original data. Bug
+         #177 reported by hokiel
 
-This patch moves the permission handling code around a bit.
+2008-09-27 11:44  oetiker
 
- * moved privilege checks into the command handler functions
-   (possible now that we pass the sock data structures around)
+       * branches/1.2/program/src/rrd_xport.c,
+         branches/1.3/program/src/rrd_xport.c, src/rrd_xport.c: rrdxport
+         was completely broken for exporting datasources that did not have
+         a uniform step size. Thanks to Peter Valdemar Mørch for finding
+         this.
 
- * on UPDATE, delay journal_write until after check_file_access().
-   previously, it was possible for a high-priv socket to introduce
-   commands into the journal that could be replayed if they were
-   still in the journal at next startup.
+2008-09-26 05:11  oetiker
 
- * moved has_privilege() further up in the file to avoid need
-   for prototype.
+       * src/rrd_daemon.c: create the pid file before forking, so we can
+         complain to stderr -- kevin brintnall
 
---  kevin brintnall
+2008-09-26 05:10  oetiker
 
-------------------------------------------------------------------------
-r1586 | oetiker | 2008-10-07 18:28:24 +0200 | 24 lines
+       * doc/rrdcached.pod, doc/rrdflush.pod, src/rrd_daemon.c: This patch
+         ensures that the "FLUSH" command will write the updates out to RRD
+         before returning to the user. Before, it returned when the update
+         was "dequeued"; updates were not necessarily on disk. Also, for
+         new nodes, the cache_lock is not held while we are setting up the
+         new node. We don't want to be holding the lock if the stat()
+         blocks. -- kevin brintnal
 
-This patch introduces some extra safety checks in journal processing,
-and cleans up the code a little bit.
+2008-09-25 21:07  oetiker
 
- * moved journal initialization to its own function; main() is cleaner
+       * src/rrd_client.c: Use the same IPv6/IPv4 as for the client as
+         Florian did for the server -- kevin brintnall
 
- * any time we process a file, log the results
-   (previous code only loggded if there was a valid entry)
+2008-09-25 20:31  oetiker
 
- * After reading journals at startup, only trigger full flush out to disk
-   if the user specified -F.  Avoids unnecessary IO on startup unless the
-   user also wants unnecessary IO on shutdown.
+       * src/rrd_daemon.c: This fixes a couple problems when exiting due to
+         signal: * connection threads exit without closing client socket
+         (so client blocks waiting for response that never comes) *
+         listen_queue_thread blocks on poll() until a new connection comes
+         in (because no poll timeout specified) -- kevin brintnall
 
- * journal_replay is much more careful about files it will open
-     * must be a regular file
-     * must be owned by daemon user
-     * must not be group/other writable
+2008-09-25 20:11  oetiker
 
- * Ensure that the journal gets created with the right permissions.
-    ... even when the daemon is invoked with a permissive umask.
-    equivalent to "chmod a-x,go-w"
+       * src/rrd_daemon.c: set SO_REUSEADDR on the listen socket -- kevin
+         brintnall
 
--- kevin
+2008-09-25 20:10  oetiker
 
+       * doc/rrdcached.pod, src/rrd_daemon.c: Support for IPv6 has been
+         broken with revision 1522: Because IPv6-addresses contain colons,
+         simply checking for a colon and using everything after it does
+         destroy correctly formatted IPv6-addresses. This patch checks for
+         dots '.' in the address. If the address contains at least one dot,
+         it is considered to be a hostname or an IPv4-address and a simple
+         search for a colon is done. If no dot is found, the code will
+         check for an opening square bracket '[' at the beginning of the
+         address. If one if found, the format [address]:port is assumed. If
+         neither applies, the default port will be used. -- Florian Forster
 
-------------------------------------------------------------------------
-r1584 | oetiker | 2008-10-07 17:37:34 +0200 | 4 lines
+2008-09-25 15:25  oetiker
 
-aniel Pocock reported that the argument may be NULL in low-diskspace
-situations, so check for that here to prevent a segmentation fault.
--- Florian Forster
+       * doc/rrdcached.pod, doc/rrddump.pod, doc/rrdfetch.pod,
+         doc/rrdflush.pod, doc/rrdgraph.pod, doc/rrdinfo.pod,
+         doc/rrdlast.pod, doc/rrdlastupdate.pod, doc/rrdupdate.pod,
+         doc/rrdxport.pod, src/rrd_client.c: This adds support for
+         <address>:<port> in the rrd client library. Obviously this is
+         required to take advantage of the server's ability to bind to a
+         non-standard port -- kevin brintnall
 
-------------------------------------------------------------------------
-r1583 | oetiker | 2008-10-06 21:14:17 +0200 | 2 lines
+2008-09-24 22:21  oetiker
 
-Makefile.lua is now generated
+       * doc/rrdcached.pod, src/rrd_daemon.c: Allow ports to be specified
+         with -l addr:port also. -- kevin brintnall
 
-------------------------------------------------------------------------
-r1582 | oetiker | 2008-10-06 21:13:30 +0200 | 2 lines
+2008-09-24 22:07  oetiker
 
-added missing file from lua 5.0 integration patch
+       * bindings/Makefile.am: the rrdlua.pod is in the doc directory
 
-------------------------------------------------------------------------
-r1581 | oetiker | 2008-10-06 21:05:47 +0200 | 12 lines
+2008-09-24 06:04  oetiker
 
-This patch introduces "BATCH" mode.
+       * doc/rrdcached.pod: added section on error reporting -- Florian
+         Forster
 
-In this mode, a client can feed multiple commands to rrdcached without
-waiting for acknowledgement.  This permits multiple commands to be sent
-for each read()/write().  This can dramatically increase the command
-throughput by increasing the amount of work done per system call.
+2008-09-22 06:35  oetiker
 
-It enables over 100k updates/second with no CPU
-utilization due to the reduced system calls.
+       * MakeMakefile, bindings/Makefile.am, bindings/lua,
+         bindings/lua/Makefile.lua, bindings/lua/README,
+         bindings/lua/rrdlua.c, bindings/lua/test.lua, configure.ac,
+         doc/Makefile.am, doc/rrdlua.pod: I finally finished the first
+         version of the patch (attached) -- Fidelis Assis fidelis pobox.com
+         (this does not seem to quite work yet at least not in my hardy
+         setup)
 
--- kevin brintnall
+2008-09-22 05:38  oetiker
 
-------------------------------------------------------------------------
-r1580 | oetiker | 2008-10-06 21:04:48 +0200 | 15 lines
+       * branches/1.2/program/configure.ac,
+         branches/1.3/program/configure.ac, configure.ac: use default
+         prefix for ruby install if no user defined prefix is available
 
-This patch introduces buffered I/O to rrdcached.  Now, rrdcached can
-interpret as many commands as arrive in a single read(), and it will use
-fewer write()s when there are multiple output lines.
+2008-09-19 20:34  oetiker
 
-All routines now pass around listen_socket_t objects instead of file
-descriptors.
+       * branches/1.3/program/bindings/perl-shared/Makefile.PL,
+         bindings/perl-shared/Makefile.PL: Bsd lirary path switch added to
+         perl bindings makefile -- as suggested by Kevin Brintnall
 
-All I/O is now contained in two routines.  It's no longer necessary to
-specify the line count in multi-line outputs, since that is calculated
-automatically.
+2008-09-18 13:30  oetiker
 
-This is the foundation for accepting batched commands.
--- kevin brintnall
+       * branches/1.3/program/src/rrd_open.c, src/rrd_open.c: Fix for
+         debian bug 498183 ... never *advise after the end of the file. On
+         sparc this causes a segfault. Thanks to Sebastian Harl and Jurij
+         Smakov for finding this.
 
+2008-09-14 15:30  oetiker
 
-------------------------------------------------------------------------
-r1579 | oetiker | 2008-10-06 07:05:19 +0200 | 2 lines
+       * src/rrd_daemon.c: fix RRDCacheD documentation -- Florian Forster
 
-Support to Lua 5.0 -- Fidelis Assis
+2008-09-14 15:28  oetiker
 
-------------------------------------------------------------------------
-r1575 | oetiker | 2008-10-04 18:05:11 +0200 | 3 lines
+       * src/rrd_client.c: The previous code was broken: The response was
+         read using `read(2)'. If the server wasn't sending fast enough,
+         the client would stop reading before the entire message had been
+         read. This patch changes the communication code to use the (line
+         based) `fgets' function rather than the lower level `read'
+         function. After reading the first line (which contains the total
+         number of line to be expected), this precise number of lines is
+         read - blocking if necessary. Also, the missing four new statistic
+         values have been added to `rrdc_stats_get'. --Folorian Forester
 
-initial librrd file added ... this will need more love since it does
-not pick up any -rpath settings
+2008-09-14 10:35  oetiker
 
-------------------------------------------------------------------------
-r1571 | oetiker | 2008-10-04 15:34:54 +0200 | 3 lines
+       * CONTRIBUTORS, doc/rrdcached.pod, doc/rrdflush.pod,
+         src/librrd.sym.in, src/rrd_client.c, src/rrd_client.h,
+         src/rrd_daemon.c, src/rrd_dump.c, src/rrd_fetch.c,
+         src/rrd_flush.c, src/rrd_graph.c, src/rrd_graph.h, src/rrd_info.c,
+         src/rrd_last.c, src/rrd_lastupdate.c, src/rrd_tool.h,
+         src/rrd_update.c, src/rrd_xport.c: did not pick up all the changes
+         for rrdcached in the first round ... so here is the second batch.
 
-* rrd_resize fixed so that it does NOT alter the original file (mmap side effect)
-* rrd_resize can can deal with version 4 files, so let it
+2008-09-14 09:49  oetiker
 
-------------------------------------------------------------------------
-r1570 | oetiker | 2008-10-04 00:53:28 +0200 | 11 lines
+       * CONTRIBUTORS, configure.ac, doc/Makefile.am, doc/rrdcached.pod,
+         doc/rrddump.pod, doc/rrdfetch.pod, doc/rrdgraph.pod,
+         doc/rrdinfo.pod, doc/rrdlast.pod, doc/rrdlastupdate.pod,
+         doc/rrdtool.pod, doc/rrdupdate.pod, doc/rrdxport.pod,
+         src/Makefile.am, src/librrd.sym.in, src/rrd.h, src/rrd_client.c,
+         src/rrd_client.h, src/rrd_daemon.c, src/rrd_dump.c,
+         src/rrd_fetch.c, src/rrd_graph.c, src/rrd_graph.h, src/rrd_info.c,
+         src/rrd_last.c, src/rrd_lastupdate.c, src/rrd_tool.c,
+         src/rrd_tool.h, src/rrd_update.c, src/rrd_xport.c: RRDcached
+         patch. This implements an infrastructure, where rrd updates can be
+         sent to a daemon which caches them prior to bulk-updateing rrd
+         files. See the rrdcached manual page. -- Created by Florian
+         Forster with some help from Kevin Brintnall.
 
-The patch fixs rrdtools behaviour when presented with trunkated rrd files.
+2008-09-13 11:42  oetiker
 
-  * Make sure that we do not extend past the end of the
-    file when reading the header.
+       * configure.ac, src/Makefile.am, src/rrd_config_bottom.h: regarding
+         #183: * move part of rrd_config.h out to a separate file, so that
+         autoconf is not confused by the more complex expressions. * fix
+         configure variable name to allow caching * another attemt at
+         fixing solaris 2.8 compile so that it works out of the box.
 
-  * Makes sure that the data portion of the file is large enough, based on
-    the ds_cnt and the total number of RRA rows
+2008-09-13 10:56  oetiker
 
--- kevin brintnall
+       * doc/rrdgraph.pod: fix graph docs
 
+2008-09-11 20:27  oetiker
 
-------------------------------------------------------------------------
-r1567 | oetiker | 2008-10-02 21:17:18 +0200 | 2 lines
+       * src/rrd_graph.c: fixed processing of custom fonts René GARCIA
+         <rene@margar.fr>
 
-folding fix
+2008-09-11 07:01  oetiker
 
-------------------------------------------------------------------------
-r1566 | oetiker | 2008-10-02 21:08:30 +0200 | 3 lines
+       * src/rrd_format.h: no , on the last member in C
 
-missing spaces in extconf.rb caused compile failure -- kevin
+2008-09-07 07:19  oetiker
 
+       * src/rrd_update.c: The attached patch eliminates the many places
+         where the rra_current pointer was maintained; the existing
+         write/seek mechanisms update rrd_file->pos correctly. Also, the
+         seek at the front of process_arg is not necessary; write_to_rras
+         will now take care to correct the file position at every update
+         cycle. This eliminates unnecessary rrd_seek() calls when MMAP is
+         not enabled. -- kevin brintnall kbrint rufus.net
 
-------------------------------------------------------------------------
-r1565 | oetiker | 2008-10-02 19:17:58 +0200 | 2 lines
+2008-09-06 14:24  oetiker
 
-permission fix for rrdcached socket -- Daniel.Pocock
+       * bindings/perl-piped/RRDp.pm, bindings/perl-shared/RRDs.pm,
+         doc/rrdbuild.pod, rrdtool.spec, src/pngsize.c, src/rrd.h,
+         src/rrd_cgi.c, src/rrd_create.c, src/rrd_datalang.c,
+         src/rrd_diff.c, src/rrd_dump.c, src/rrd_error.c, src/rrd_fetch.c,
+         src/rrd_first.c, src/rrd_format.c, src/rrd_format.h,
+         src/rrd_gfx.c, src/rrd_graph.c, src/rrd_graph_helper.c,
+         src/rrd_hw.c, src/rrd_hw.h, src/rrd_i18n.h, src/rrd_info.c,
+         src/rrd_is_thread_safe.h, src/rrd_last.c, src/rrd_lastupdate.c,
+         src/rrd_not_thread_safe.c, src/rrd_open.c, src/rrd_resize.c,
+         src/rrd_restore.c, src/rrd_rpncalc.c, src/rrd_rpncalc.h,
+         src/rrd_thread_safe.c, src/rrd_thread_safe_nt.c, src/rrd_tool.c,
+         src/rrd_tool.h, src/rrd_tune.c, src/rrd_update.c,
+         src/rrd_version.c, src/rrd_xport.c, src/rrd_xport.h,
+         src/rrdupdate.c: prepare for the release of rrdtool-1.3.2
 
-------------------------------------------------------------------------
-r1559 | oetiker | 2008-10-01 22:22:57 +0200 | 3 lines
+2008-09-06 11:46  oetiker
 
-since rrdcached uses pthread functions, use the threadsafe version of librrd as well. This will
-also reasolve build problems on boxes there the ptherad functions must be linked explicitly.
+       * src/rrd_tool.h: we need rrd_format.h here for things to compile
+         properly
 
-------------------------------------------------------------------------
-r1558 | oetiker | 2008-10-01 22:04:47 +0200 | 2 lines
+2008-09-06 11:43  oetiker
 
-Clearer explanation on which paths are permitted when -B is supplied -- kevin
+       * doc/rrdbuild.pod: updated opensolaris build instructions
 
-------------------------------------------------------------------------
-r1557 | oetiker | 2008-10-01 22:01:43 +0200 | 26 lines
+2008-09-06 10:43  oetiker
 
-Fixes for the following compiler warnings:
+       * bindings/perl-piped/RRDp.pm, configure.ac, src/Makefile.am,
+         src/librrd.sym, src/librrd.sym.in, src/rrd_tool.h: only link build
+         and use rrd_getopt if there is no getopt_long provided by by the
+         os ... this should also fix problems for solaris 2.8 and other non
+         getopt_long oses who were not taken care of anymore after the
+         intriduction of librrd.sym
 
- - unused variable
- - unused parameter
- - assignment / argument discards qualifiers from pointer target type
- - comparison between signed and unsigned
- - too many arguments to function
- - assignment makes pointer from integer without a cast
- - incompatible pointer type
- - differ in signedness
- - implicit declaration of function
- - enumeration value not handled in switch
- - value computed is not used
+2008-09-06 10:39  oetiker
 
-Most notably, a possible segfault in the Rrd_Lastupdate() code of the TCL
-bindings has been fixed.
+       * src/rrd_update.c: fix for multi update - data corruption bug as
+         reported (and patched) in #178 by kevin brintnall
 
-Also, -Wundef (warn if an undefined identifier is evaluated in an #if
-directive) has been removed from CFLAGS. I don't see any problem with letting
-undefined identifiers evaluate to "false" in rrdtool. Keeping that option
-would produce a lot of (imho unnecessary) errors which would need to be fixed
-using ugly preprocessor statements like '#if defined(FOO) && FOO'.
+2008-09-06 10:32  oetiker
 
--- Sebastian Harl 
+       * doc/cdeftutorial.pod, doc/rrdgraph.pod, doc/rrdgraph_graph.pod,
+         doc/rrdtool.pod: make pod checker happy
 
+2008-09-06 08:58  oetiker
 
-------------------------------------------------------------------------
-r1556 | oetiker | 2008-10-01 21:48:15 +0200 | 15 lines
+       * src/rrd_open.c: inline functions are not supported in c99 ... lets
+         remove this. the compiler will foture it out if they are
+         important.
 
-I've adapted an init script for rrdcached, and also incorporated it into
-the spec file so that it is deployed with the RPM.
+2008-09-04 21:45  oetiker
 
-There are also some other changes to the spec file so that I could build
-an RPM successfully from trunk.  I'm happy to tidy up the spec file some
-more if no one else wants to mandate the best way to do it.
+       * src/rrd_graph.c: introduced a persistant fontmap ... this makes
+         our pango rendering 6 times faster starting from the second graph
+         we draw.
 
-By default, rrdcached runs as nobody.  I've tested this on a server
-running Ganglia gmetad.
+2008-08-31 23:42  oetiker
 
-Regards,
+       * src/rrd_gfx.c, src/rrd_graph.c, src/rrd_graph.h: now the results
+         actually look as they did with the old code only things are FASTER
 
-Daniel
+2008-08-31 22:53  oetiker
 
+       * src/rrd_gfx.c, src/rrd_graph.c, src/rrd_graph.h,
+         src/rrd_graph_helper.c: Improve performance by keeping multiple
+         pango font descriptions. For the first invocation we are about 20%
+         times as fast for the second one about 4-5 times faster ...
 
-------------------------------------------------------------------------
-r1555 | oetiker | 2008-10-01 21:44:36 +0200 | 11 lines
+2008-08-31 10:55  oetiker
 
-Now, moving a value to the head of the queue is O(1).  Before it was
-O(queue size).  This improves performance of individual flushes when
-there is a large number of files in the queue.  As a result, we don't
-hold the cache_lock as much.
+       * src/rrd_gfx.c: trying to improve the pango performance I added
+         facilities to cache layout,context and more in between invocations
+         of the text function, unfortunately it does not seem to help all
+         that much.
 
-Revamped enqueue_cache_item to take advantage of the new structure.
+2008-08-31 10:52  oetiker
 
-Renamed _wipe_ci_values to look nicer with other code.
+       * bindings/perl-shared/RRDs.xs, bindings/ruby/main.c: use the
+         standart info free function
 
---kevin
+2008-08-28 05:49  oetiker
 
-------------------------------------------------------------------------
-r1552 | oetiker | 2008-10-01 18:53:56 +0200 | 2 lines
+       * src/rrd_tool.c: fix handling of error conditions in rrd_tool.c ...
+         errno is not for detection, only for information AFTER detection.
 
-lcd is actually gcd!
+2008-08-28 04:13  oetiker
 
-------------------------------------------------------------------------
-r1551 | oetiker | 2008-09-30 20:44:03 +0200 | 4 lines
+       * src/rrd_tool.c: free the linebuffer if you don't return it!
 
-When -B is specified, the daemon will only operate on files within the
-base directory.  Symlink detection is omitted for performance reasons (if
-a user can create a symlink, they can probably overwrite the RRDs anyway). -- kevin
+2008-08-27 22:06  oetiker
 
-------------------------------------------------------------------------
-r1550 | oetiker | 2008-09-30 20:43:15 +0200 | 2 lines
+       * src/rrd_gfx.c: some more leak plugging
 
- check permissions before writing to journal -- kevin
+2008-08-27 21:48  oetiker
 
-------------------------------------------------------------------------
-r1549 | oetiker | 2008-09-30 20:42:34 +0200 | 3 lines
+       * src/rrd_graph.c: drop the dummy surface prior to creating the real
+         one
 
-The daemon should behave the same way w/r/t files whether we "-g" or not.
--- kevin
+2008-08-27 21:46  oetiker
 
-------------------------------------------------------------------------
-r1548 | oetiker | 2008-09-29 22:00:34 +0200 | 6 lines
+       * src/rrd_tool.c: added some freeing for error conditions
 
-This bug caused the last line in each journal file to be processed a
-second time.  Since it had been modified due to tokenizing, it failed
-syntax check.  The daemon would always record one failed line at
-end-of-journal as a result.  No data loss incurred by this bug. -- kevin
+2008-08-27 21:25  oetiker
 
+       * src/rrd.h, src/rrd_gfx.c, src/rrd_graph.c, src/rrd_open.c,
+         src/rrd_update.c: fixed indentation ... gnu indent results are not
+         realy beautifl. I might switch to uncrustify.
 
-------------------------------------------------------------------------
-r1547 | oetiker | 2008-09-29 21:58:34 +0200 | 13 lines
+2008-08-27 21:25  oetiker
 
-This patch introduces the concept of socket privilege levels.  "UPDATE"
-and "FLUSHALL" commands are restricted to high-privilege sockets.  "FLUSH"
-commands can be executed on any socket.  This is ideal for multi-user
-installations where only certain users need write access to the RRD files.
+       * src/rrd_create.c: Many rrd_create memory leaks patched ... based
+         on valgrind analysis by Sven Engelhardt. Thanks!
 
-Now, nearly all socket information is passed around the daemon in
-listen_socket_t data structures.  In case there is other per-socket state
-(i.e. if we add authentication) we can put it there.
+2008-08-27 21:18  oetiker
 
-Also, I created a new "open_listen_socket_network" and removed the network
-setup from "open_listen_socket". -- kevin
+       * src/rrd_restore.c: fix indentation
 
+2008-08-27 06:52  oetiker
 
-------------------------------------------------------------------------
-r1546 | oetiker | 2008-09-29 21:56:10 +0200 | 6 lines
+       * configure.ac: added sparc-sun-solaris2.8 to list of broken
+         isfinite implementations
 
-This patch provides better error messages to the client when something
-goes wrong with the daemon.  When possible, the daemon error message is
-passed through to rrd_set_error() on the client.  Prior to this patch,
-most error conditions would result in "Internal error", which is not very
-helpful. -- kevin brintnall
+2008-08-22 22:04  oetiker
 
-------------------------------------------------------------------------
-r1543 | oetiker | 2008-09-28 23:37:46 +0200 | 2 lines
+       * bindings/ruby/main.c: it is rb_rrd_infocall not rrd_infocall ...
 
-spelling fix -- kevin
+2008-08-16 07:13  oetiker
 
-------------------------------------------------------------------------
-r1542 | oetiker | 2008-09-28 23:36:46 +0200 | 4 lines
+       * doc/rrdgraph.pod, src/rrd_graph.c: When in lazy mode, and the
+         graph does not get regenerated, then there are no results from
+         PRINT either. Fix for #163.
 
-This patch removes an extra "SIGNALS" section in the rrdcached.pod and
-merges "[BUG] fixed hang in flush_file() introduced by per-file flush
-condition". --  kevin brintnall
+2008-08-16 07:11  oetiker
 
-------------------------------------------------------------------------
-r1541 | oetiker | 2008-09-28 21:27:45 +0200 | 3 lines
+       * bindings/perl-shared/RRDs.pm: documentation updates
 
-a few missing {{{ folding }}} markers added
--- kevin brintnall
+2008-08-12 06:48  oetiker
 
-------------------------------------------------------------------------
-r1540 | oetiker | 2008-09-28 21:26:39 +0200 | 3 lines
+       * src/rrd_graph.c: make sure imageinfo only reports the filename and
+         not the whole path. This is a regression from 1.2.x where this was
+         implemented properly.
 
-This patch introduces "fast shutdown" mode and two new signals.
--- kevin brintnall 
+2008-08-04 20:35  oetiker
 
-------------------------------------------------------------------------
-r1539 | oetiker | 2008-09-28 21:25:40 +0200 | 4 lines
+       * src/rrd_gfx.c: The attached patch converts the given string to
+         UTF-8 using glib's g_locale_to_utf8() function. This function
+         expects the string to be encoded as specified by the locale
+         settings, so this will fail if e.g. you're using some script which
+         is encoded in some way incompatible to the locale settings. In
+         this case, the patch falls back to use the original string as
+         provided by the user as there is no way to tell how to interpret
+         that string. So, in this case, you will still get the old behavior
+         (that pango warning and messed up strings in the graph). However,
+         imho this is perfectly fine since it should be up to the user to
+         take care of a sane environment. -- Sebastian Harl
 
-Moved signal handler setup out of daemonize().  Coalesced common code
-in preparation for new signals.  Documented behavior of existing signals.
--- kevin brintnall
+2008-07-29 14:42  oetiker
 
-------------------------------------------------------------------------
-r1537 | oetiker | 2008-09-28 21:23:23 +0200 | 9 lines
+       * bindings/perl-shared/RRDs.xs: newer perlapi docu suggests to use
+         SV * instead of void for managed returns
 
-Attached is a patch to lower the version requirements of libtool and
-automake.  I have tested this on CentOS 4.x with the specified
-versions of libtool and automake and was able to build RRDTool fine.
-I did *not* test building with PHP, tcl, ruby or Python though.
+2008-07-29 05:08  oetiker
 
-I also abstracted the version numbers of all the dependencies such
-that editing them in the future will be easier.
--- Bernard Li
+       * src/rrd_gfx.c, src/rrd_hw_update.c: fixed some c++ style lines --
+         David Masterson
 
-------------------------------------------------------------------------
-r1535 | oetiker | 2008-09-28 21:12:22 +0200 | 2 lines
+2008-07-28 07:23  oetiker
 
-added support for FLUSHALL command -- kevin brintnall
+       * doc/rrdgraph_data.pod: spelling fix
 
-------------------------------------------------------------------------
-r1534 | oetiker | 2008-09-28 21:10:57 +0200 | 1 line
+2008-07-23 15:03  oetiker
 
-move cache broadcast into enqueue_cache_item -- kevin brintnall
-------------------------------------------------------------------------
-r1533 | oetiker | 2008-09-28 21:10:15 +0200 | 6 lines
+       * src/rrd_restore.c: forward ported patch for rra cur_row
+         randomization in rrd_restore from 1.2.28 to 1.3.1
 
-When -z <jitter> is specified, some updates may be timestamped up to
-<jitter> seconcds in the future.  Therefore, a timeout of now+1 may not be
-sufficient.  Set abs_timeout past the point where any updates are
-currently specified. -- kevin brintnall
+2008-07-23 13:02  oetiker
 
+       * bindings/perl-piped/RRDp.pm, bindings/perl-shared/RRDs.pm,
+         configure.ac, doc/rrdbuild.pod, rrdtool.spec, src/pngsize.c,
+         src/rrd.h, src/rrd_cgi.c, src/rrd_create.c, src/rrd_datalang.c,
+         src/rrd_diff.c, src/rrd_dump.c, src/rrd_error.c, src/rrd_fetch.c,
+         src/rrd_first.c, src/rrd_format.c, src/rrd_format.h,
+         src/rrd_gfx.c, src/rrd_graph.c, src/rrd_graph_helper.c,
+         src/rrd_hw.c, src/rrd_hw.h, src/rrd_i18n.h, src/rrd_info.c,
+         src/rrd_is_thread_safe.h, src/rrd_last.c, src/rrd_lastupdate.c,
+         src/rrd_not_thread_safe.c, src/rrd_open.c, src/rrd_resize.c,
+         src/rrd_restore.c, src/rrd_rpncalc.c, src/rrd_rpncalc.h,
+         src/rrd_thread_safe.c, src/rrd_thread_safe_nt.c, src/rrd_tool.c,
+         src/rrd_tool.h, src/rrd_tune.c, src/rrd_update.c,
+         src/rrd_version.c, src/rrd_xport.c, src/rrd_xport.h,
+         src/rrdupdate.c: prepare for the release of rrdtool-1.3.1
 
-------------------------------------------------------------------------
-r1532 | oetiker | 2008-09-28 21:09:34 +0200 | 15 lines
+2008-07-23 12:45  oetiker
 
-The PID file is created with open() in the parent process, while we still
-have STDERR open.  If it cannot be created, it complains verbosely to
-stderr.
+       * src/rrd_restore.c: added support for restoring rrdtool 1.0.x files
+         ... removed support for old HW patched rrd format created by an
+         early patched version of 1.0.x
 
-The PID file is written in the child process.  The only way the fdopen()
-will fail on a fd that is already open is if you're completely out of
-memory.  As in other places in the code, I didn't consider this a case
-that required a very verbose message.  (Search for "strdup failed").  If
-you still think a more verbose message is called for, please suggest one.
+2008-07-22 15:15  oetiker
 
-The attached patch corrects the error message to complain about fdopen()
-vs fopen().  I hadn't noticed that until you brought it up.
+       * branches/1.2/program/src/rrd_create.c, src/rrd_create.c: Fix for
+         #167 - rrdcreate is arguably missing a check for 'step>=1' for
+         RRAs with AVERAGE as a CF. I ran into this when specifying 0.6 as
+         a step value, assuming floats were also accepted. Patch attached
+         here. -- Bogdan
 
---  kevin brintnall
+2008-07-01 06:35  oetiker
 
-------------------------------------------------------------------------
-r1531 | oetiker | 2008-09-28 21:08:41 +0200 | 2 lines
+       * doc/rrdbuild.pod: header-fix
 
- rrd.h, librrd.sym: Define and export rrd_info_r() --  Sebastian Harl 
+2008-07-01 06:34  oetiker
 
-------------------------------------------------------------------------
-r1530 | oetiker | 2008-09-28 17:01:43 +0200 | 7 lines
+       * doc/rrdbuild.pod: improve layout
 
-vdef calc was using end_orig to determine for which range it should do its
-calculations which is odd, since orig is only the requested range as
-invocation time and not the data range deliverd by fetch. It does fall
-completely flat when shifting since shifting does not affect the original
-data. Bug #177 reported by hokiel
+2008-06-29 16:23  oetiker
 
+       * src/rrd_update.c: added rrd filename to illegal update message --
+         he at uninett.no
 
-------------------------------------------------------------------------
-r1529 | oetiker | 2008-09-27 13:44:58 +0200 | 2 lines
+2008-06-29 14:08  oetiker
 
-rrdxport was completely broken for exporting datasources that did not have a uniform step size. Thanks to Peter Valdemar Mørch for finding this.
+       * rrdtool.spec: rrdtool.spec fix by Anton Blanchard to build without
+         php patch
 
-------------------------------------------------------------------------
-r1528 | oetiker | 2008-09-26 07:11:32 +0200 | 2 lines
+2008-06-29 13:57  oetiker
 
-create the pid file before forking, so we can complain to stderr  --  kevin brintnall
+       * doc/rrdgraph.pod, src/rrd_graph.c: make sure image-with and
+         image-height get returned even when rrdtool is called with --lazy
+         as reported in bug #163
 
-------------------------------------------------------------------------
-r1527 | oetiker | 2008-09-26 07:10:25 +0200 | 8 lines
+2008-06-19 13:18  oetiker
 
-This patch ensures that the "FLUSH" command will write the updates out to
-RRD before returning to the user.  Before, it returned when the update was
-"dequeued"; updates were not necessarily on disk.
+       * branches/1.2/program/bindings/python/rrdtoolmodule.c,
+         bindings/python/rrdtoolmodule.c: rrdtool.fetch is returning an
+         extra, bogus, data point. Attached is a patch to correct this. -
+         Gilad Raphaelli. Fix for #161
 
-Also, for new nodes, the cache_lock is not held while we are setting up
-the new node.  We don't want to be holding the lock if the stat() blocks.
---  kevin brintnal
+2008-06-12 13:54  oetiker
 
-------------------------------------------------------------------------
-r1526 | oetiker | 2008-09-25 23:07:35 +0200 | 2 lines
+       * doc/rrdgraph_graph.pod: added note on %S
 
-Use the same IPv6/IPv4 as for the client as Florian did for the server -- kevin brintnall
+2008-06-11 15:49  oetiker
 
-------------------------------------------------------------------------
-r1525 | oetiker | 2008-09-25 22:31:29 +0200 | 10 lines
+       * NEWS: made news the same as the announcement
 
-This fixes a couple problems when exiting due to signal:
+2008-06-10 23:12  oetiker
 
- * connection threads exit without closing client socket
-   (so client blocks waiting for response that never comes)
+       * bindings/perl-piped/RRDp.pm, bindings/perl-shared/RRDs.pm,
+         doc/rrdbuild.pod, doc/rrdcreate.pod, doc/rrdgraph.pod,
+         doc/rrdgraph_graph.pod, rrdtool.spec, src/pngsize.c, src/rrd.h,
+         src/rrd_cgi.c, src/rrd_create.c, src/rrd_datalang.c,
+         src/rrd_diff.c, src/rrd_dump.c, src/rrd_error.c, src/rrd_fetch.c,
+         src/rrd_first.c, src/rrd_format.c, src/rrd_format.h,
+         src/rrd_gfx.c, src/rrd_graph.c, src/rrd_graph_helper.c,
+         src/rrd_hw.c, src/rrd_hw.h, src/rrd_i18n.h, src/rrd_info.c,
+         src/rrd_is_thread_safe.h, src/rrd_last.c, src/rrd_lastupdate.c,
+         src/rrd_not_thread_safe.c, src/rrd_open.c, src/rrd_resize.c,
+         src/rrd_restore.c, src/rrd_rpncalc.c, src/rrd_rpncalc.h,
+         src/rrd_thread_safe.c, src/rrd_thread_safe_nt.c, src/rrd_tool.c,
+         src/rrd_tool.h, src/rrd_tune.c, src/rrd_update.c,
+         src/rrd_version.c, src/rrd_xport.c, src/rrd_xport.h,
+         src/rrdupdate.c: prepare for the release of rrdtool-1.3.0
 
- * listen_queue_thread blocks on poll() until a new connection comes in
-   (because no poll timeout specified)
+2008-06-10 16:38  oetiker
 
--- kevin brintnall
+       * configure.ac: oops it is 1.3.0 not 1.4.0 yet
 
-------------------------------------------------------------------------
-r1524 | oetiker | 2008-09-25 22:11:43 +0200 | 2 lines
+2008-06-10 16:37  oetiker
 
-set SO_REUSEADDR on the listen socket -- kevin brintnall
+       * 00README, CONTRIBUTORS, PROJECTS, TODO, configure.ac,
+         rrdtool-1.3-release: preparing for 1.3
 
-------------------------------------------------------------------------
-r1523 | oetiker | 2008-09-25 22:10:17 +0200 | 17 lines
+2008-06-10 16:32  oetiker
 
-Support for IPv6 has been broken with revision 1522: Because IPv6-addresses
-contain colons, simply checking for a colon and using everything after it does
-destroy correctly formatted IPv6-addresses.
+       * src/Makefile.am, src/rrd.h, src/rrd_format.h, src/rrd_hw_math.c,
+         src/rrd_hw_update.c, src/rrd_tool.h: document the 'internal'
+         functions in rrd.h but mark them as deprecated, so that anyone
+         using them will see that they should not be doing it.
 
-This patch checks for dots '.' in the address. If the address contains at least
-one dot, it is considered to be a hostname or an IPv4-address and a simple
-search for a colon is done.
+2008-06-10 11:16  oetiker
 
-If no dot is found, the code will check for an opening square bracket '[' at
-the beginning of the address. If one if found, the format
-  [address]:port
-is assumed.
+       * src/rrd_create.c: flip check for row_count with setting for better
+         code logic
 
-If neither applies, the default port will be used.
--- Florian Forster
+2008-06-10 09:35  oetiker
 
+       * doc/rrdcreate.pod, src/rrd_create.c: check row count in RRAs to be
+         > 0 ... by Sebastian Harl
 
-------------------------------------------------------------------------
-r1522 | oetiker | 2008-09-25 17:25:51 +0200 | 4 lines
+2008-06-10 07:18  oetiker
 
-This adds support for <address>:<port> in the rrd client library.
-Obviously this is required to take advantage of the server's ability to
-bind to a non-standard port -- kevin brintnall
+       * src/rrd_create.c, src/rrd_open.c: for windows we must open files
+         in O_BINARY mode
 
-------------------------------------------------------------------------
-r1521 | oetiker | 2008-09-25 00:21:21 +0200 | 2 lines
+2008-06-09 16:10  oetiker
 
-Allow ports to be specified with -l addr:port also. --  kevin brintnall
+       * src/rrd.h, src/rrd_tool.h: do NOT export lowlevel functions, since
+         I have no intention supporting these interfaces across versions.
+         The symbols are in the library, so if someone WANTS to code to
+         them, they are free todo so, but they will have to use our
+         internal header files.
 
-------------------------------------------------------------------------
-r1520 | oetiker | 2008-09-25 00:07:33 +0200 | 2 lines
+2008-06-09 15:49  oetiker
 
-the rrdlua.pod is in the doc directory
+       * src/librrd.sym, src/rrd.h, src/rrd_tool.h: add all lowlevel file
+         access functions from the rrd_open interface to the export list.
 
-------------------------------------------------------------------------
-r1519 | oetiker | 2008-09-24 08:04:26 +0200 | 2 lines
+2008-06-09 05:12  oetiker
 
-added section on error reporting -- Florian Forster
+       * bindings/python/rrdtoolmodule.c, src/pngsize.c, src/rrd.h,
+         src/rrd_error.c, src/rrd_graph.h, src/rrd_info.c, src/rrd_open.c,
+         src/rrd_parsetime.c, src/rrd_tool.c, src/rrd_update.c: fixed
+         indenting
 
-------------------------------------------------------------------------
-r1517 | oetiker | 2008-09-22 08:35:26 +0200 | 3 lines
+2008-06-09 05:11  oetiker
 
-I finally finished the first version of the patch (attached) --  Fidelis Assis fidelis pobox.com
-(this does not seem to quite work yet at least not in my hardy setup)
+       * rrdtool.spec: update to rpm spec from Jarod Wilson
 
-------------------------------------------------------------------------
-r1515 | oetiker | 2008-09-22 07:38:28 +0200 | 2 lines
+2008-06-08 21:15  oetiker
 
-use default prefix for ruby install if no user defined prefix is available
+       * src/librrd.sym: export some more symbols from librrd
 
-------------------------------------------------------------------------
-r1513 | oetiker | 2008-09-19 22:34:42 +0200 | 2 lines
+2008-06-08 21:06  oetiker
 
-Bsd lirary path switch added to perl bindings makefile -- as suggested by Kevin Brintnall
+       * win32/config.h: windows should use a windows font
+
+2008-06-08 21:05  oetiker
+
+       * src/rrd_graph.c: drop special case windows font code ... it makes
+         no sense with the new setup
+
+2008-06-08 17:08  oetiker
+
+       * bindings/perl-piped/RRDp.pm, bindings/perl-shared/RRDs.pm,
+         configure.ac, doc/rrdbuild.pod, rrdtool.spec, src/pngsize.c,
+         src/rrd.h, src/rrd_cgi.c, src/rrd_create.c, src/rrd_datalang.c,
+         src/rrd_diff.c, src/rrd_dump.c, src/rrd_error.c, src/rrd_fetch.c,
+         src/rrd_first.c, src/rrd_format.c, src/rrd_format.h,
+         src/rrd_gfx.c, src/rrd_graph.c, src/rrd_graph_helper.c,
+         src/rrd_hw.c, src/rrd_hw.h, src/rrd_i18n.h, src/rrd_info.c,
+         src/rrd_is_thread_safe.h, src/rrd_last.c, src/rrd_lastupdate.c,
+         src/rrd_not_thread_safe.c, src/rrd_open.c, src/rrd_resize.c,
+         src/rrd_restore.c, src/rrd_rpncalc.c, src/rrd_rpncalc.h,
+         src/rrd_thread_safe.c, src/rrd_thread_safe_nt.c, src/rrd_tool.c,
+         src/rrd_tool.h, src/rrd_tune.c, src/rrd_update.c,
+         src/rrd_version.c, src/rrd_xport.c, src/rrd_xport.h,
+         src/rrdupdate.c: prepare for the release of rrdtool-1.3rc9
+
+2008-06-08 17:08  oetiker
+
+       * src/rrd_gfx.c, src/rrd_graph.c: fixed pango markup switch ... we
+         still want the text to show even if no markup is enabled
+
+2008-06-08 16:47  oetiker
+
+       * bindings/python/rrdtoolmodule.c, bindings/ruby/main.c,
+         src/librrd.sym: rrd_freemem has to be exported as well ...
 
-------------------------------------------------------------------------
-r1512 | oetiker | 2008-09-18 15:30:48 +0200 | 3 lines
+2008-06-08 16:23  oetiker
 
-Fix for debian bug 498183 ... never *advise after the end of the
-file. On sparc this causes a segfault. Thanks to Sebastian Harl and Jurij Smakov for finding this.
+       * branches/1.2/program/src/pngsize.c, src/pngsize.c: fix for ticket
+         #121 jmpbuf on aix is a problem it seems, maybe this makes it
+         better.
 
-------------------------------------------------------------------------
-r1507 | oetiker | 2008-09-14 17:30:43 +0200 | 2 lines
+2008-06-08 15:59  oetiker
 
-fix RRDCacheD documentation -- Florian Forster
+       * src/Makefile.am: prepare for the release of rrdtool-1.3rc8
 
-------------------------------------------------------------------------
-r1506 | oetiker | 2008-09-14 17:28:34 +0200 | 13 lines
+2008-06-08 15:55  oetiker
 
-The previous code was broken: The response was read using `read(2)'. If
-the server wasn't sending fast enough, the client would stop reading
-before the entire message had been read.
+       * bindings/perl-piped/RRDp.pm, bindings/perl-shared/RRDs.pm,
+         configure.ac, doc/rrdbuild.pod, rrdtool.spec, src/pngsize.c,
+         src/rrd.h, src/rrd_cgi.c, src/rrd_create.c, src/rrd_datalang.c,
+         src/rrd_diff.c, src/rrd_dump.c, src/rrd_error.c, src/rrd_fetch.c,
+         src/rrd_first.c, src/rrd_format.c, src/rrd_format.h,
+         src/rrd_gfx.c, src/rrd_graph.c, src/rrd_graph_helper.c,
+         src/rrd_hw.c, src/rrd_hw.h, src/rrd_i18n.h, src/rrd_info.c,
+         src/rrd_is_thread_safe.h, src/rrd_last.c, src/rrd_lastupdate.c,
+         src/rrd_not_thread_safe.c, src/rrd_open.c, src/rrd_resize.c,
+         src/rrd_restore.c, src/rrd_rpncalc.c, src/rrd_rpncalc.h,
+         src/rrd_thread_safe.c, src/rrd_thread_safe_nt.c, src/rrd_tool.c,
+         src/rrd_tool.h, src/rrd_tune.c, src/rrd_update.c,
+         src/rrd_version.c, src/rrd_xport.c, src/rrd_xport.h,
+         src/rrdupdate.c: prepare for the release of rrdtool-1.3rc8
 
-This patch changes the communication code to use the (line based)
-`fgets' function rather than the lower level `read' function. After
-reading the first line (which contains the total number of line to be
-expected), this precise number of lines is read - blocking if necessary.
+2008-06-08 15:55  oetiker
 
-Also, the missing four new statistic values have been added to
-`rrdc_stats_get'.
---Folorian Forester
+       * bindings/perl-shared/RRDs.xs, bindings/python/rrdtoolmodule.c,
+         bindings/ruby/main.c, bindings/tcl/tclrrd.c, doc/rrdthreads.pod,
+         netware/Makefile, src/Makefile.am, src/librrd.sym,
+         src/parsetime.c, src/parsetime.h, src/rrd.h, src/rrd_cgi.c,
+         src/rrd_create.c, src/rrd_error.c, src/rrd_fetch.c,
+         src/rrd_graph.c, src/rrd_graph.h, src/rrd_graph_helper.c,
+         src/rrd_info.c, src/rrd_nan_inf.c, src/rrd_not_thread_safe.c,
+         src/rrd_open.c, src/rrd_parsetime.c, src/rrd_parsetime.h,
+         src/rrd_resize.c, src/rrd_thread_safe.c, src/rrd_thread_safe_nt.c,
+         src/rrd_tool.c, src/rrd_tool.h, src/rrd_update.c, src/rrd_xport.c,
+         win32/rrd.dsp, win32/rrd.vcproj: From: Sebastian Harl sh
+         tokkee.org Date: Sun, 8 Jun 2008 15:01:05 +0200 Subject: [PATCH]
+         Cleanup the symbols exported by librrd. Up to know librrd exported
+         a lot of symbols, most of which are to be regarded as private
+         symbols. This somewhat pollutes the API as the symbols could, in
+         theory, be used by external software and, more importantly, makes
+         symbol based dependencies (as recently introduced in e.g. Debian)
+         somewhat harder to implement. This patch does a somewhat
+         large-scale cleanup of the exported symbols: * Introduced a
+         librrd.sym file which contains all symbols that are to be
+         exported. This file is then passed to libtool using the
+         -export-symbols option which tells the linker to export the given
+         symbols only (note: according to the libtool manual, this has no
+         effect on some architectures - however, I assume that most
+         architectures in use today do support it). librrd.sym contains all
+         symbols originally defined in rrd.h sans LockRRD() (which has been
+         moved to rrd_tool.h). The following functions have been added to
+         rrd.h and the list of exported symbols (some of them have been
+         renamed, see below): - rrd_info() - rrd_info_free() -
+         rrd_info_print() - rrd_info_push() - rrd_lastupdate() -
+         rrd_update_v() - rrd_strerror() * Prefixed all public functions
+         and types with "rrd_" to avoid name clashes with other libraries.
+         Also, while I was at it, I introduced typedefs for all custom
+         types and prefixed the time names with "_t" to improve
+         consistency: - enum info_type -> rrd_info_type_t - enum timetype
+         -> rrd_timetype_t - union infoval -> rrd_infoval_t - struct info_t
+         -> rrd_info_t - struct rrd_context -> rrd_context_t - struct
+         rrd_time_value -> rrd_time_value_t - info_free() ->
+         rrd_info_free() - info_free() -> rrd_info_free() - info_print() ->
+         rrd_info_print() - info_push() -> rrd_info_push() - LockRRD() ->
+         rrd_lock() (not public though) - parsetime() -> rrd_parsetime()
+         (and: src/parsetime.c -> src/rrd_parsetime.c) - proc_start_end()
+         -> rrd_proc_start_end() - set_to_DINF() -> rrd_set_to_DINF() -
+         set_to_DNAN() -> rrd_set_to_DNAN() * Moved readfile() from
+         rrd_open.c to rrd_cgi.c and declared it static. This function is
+         used in rrd_cgi.c only. * rrd_lock() (f.k.a. LockRRD()) now
+         accepts a rrd_file_t pointer instead of an integer to increase
+         encapsulation.
+
+2008-06-07 14:35  oetiker
+
+       * src/rrd_open.c: don't bother with don't need when there is neither
+         madvise not fadvise calls
 
-------------------------------------------------------------------------
-r1505 | oetiker | 2008-09-14 12:35:51 +0200 | 2 lines
+2008-06-06 16:38  oetiker
 
-did not pick up all the changes for rrdcached in the first round ... so here is the second batch.
+       * branches/1.2/program/src/rrd_graph.c, src/rrd_graph.c: fix for
+         --font bug (font names wer not being picked up at all). Bug
+         reported by Dmitry B. Bigunayk
 
-------------------------------------------------------------------------
-r1504 | oetiker | 2008-09-14 11:49:03 +0200 | 4 lines
+2008-06-05 20:56  oetiker
 
-RRDcached patch. This implements an infrastructure, where rrd updates can be
-sent to a daemon which caches them prior to bulk-updateing rrd files. See the rrdcached manual page.
--- Created by Florian Forster with some help from Kevin Brintnall.
+       * NEWS: added pango markup name
 
-------------------------------------------------------------------------
-r1502 | oetiker | 2008-09-13 13:42:08 +0200 | 7 lines
+2008-06-05 19:59  oetiker
 
-regarding #183:
-* move part of rrd_config.h out to a separate file, so that
-  autoconf is not confused by the more complex expressions.
-* fix configure variable name to allow caching
-* another attemt at fixing solaris 2.8 compile so that it
-  works out of the box.
+       * src/rrd.h, src/rrd_error.c, src/rrd_format.h, src/rrd_gfx.c,
+         src/rrd_info.c, src/rrd_open.c, src/rrd_update.c: fixed indenting
+
+2008-06-05 19:59  oetiker
+
+       * src/rrd_graph.c: disable pango markup by default. added
+         --pango-markup option for explicit enablement.
+
+2008-06-05 19:58  oetiker
+
+       * doc/rrdgraph.pod, src/rrd_graph.h: disable pango markup by
+         default. added --pango-markup option for explicit enablement.
+
+2008-06-05 19:57  oetiker
+
+       * bindings/python/rrdtoolmodule.c: fixed indenting
+
+2008-06-04 16:18  oetiker
+
+       * bindings/tcl/Makefile.am, configure.ac: enable new building for
+         newer tcl versions
+
+2008-06-02 06:46  oetiker
 
-------------------------------------------------------------------------
-r1501 | oetiker | 2008-09-13 12:56:40 +0200 | 2 lines
+       * configure.ac: updated documentation of library versioning system
 
-fix graph docs
+2008-06-02 06:43  oetiker
 
-------------------------------------------------------------------------
-r1500 | oetiker | 2008-09-11 22:27:47 +0200 | 3 lines
+       * configure.ac: Had to reset the interface version number due to the
+         change in the rrd_context implementation.
 
-fixed processing of custom fonts René GARCIA <rene@margar.fr>
+2008-06-02 06:21  oetiker
+
+       * src/rrd_restore.c: use DNAN instead of NAN since there seem to be
+         issues with gcc on solaris and the NAN experession (and we use
+         DNAN everywhere else anyway).
+
+2008-06-01 21:12  oetiker
+
+       * doc/rrdbuild.pod: integrated gentoo bits and spell fixes by Peter
+         Volkov
 
+2008-06-01 20:44  oetiker
 
-------------------------------------------------------------------------
-r1499 | oetiker | 2008-09-11 09:01:30 +0200 | 2 lines
+       * src/rrd.h, src/rrd_error.c, src/rrd_not_thread_safe.c,
+         src/rrd_thread_safe.c, src/rrd_thread_safe_nt.c: Patch for
+         rrd_context system by sebastian harl, making it simpler and less
+         error prone. Removing one buffer overflow in the process.
 
-no , on the last member in C
+2008-05-31 15:58  oetiker
 
-------------------------------------------------------------------------
-r1488 | oetiker | 2008-09-07 09:19:03 +0200 | 5 lines
+       * doc/rrdbuild.pod: prepare for the release of rrdtool-1.3rc7
 
-The attached patch eliminates the many places where the rra_current pointer was maintained; the existing write/seek mechanisms update rrd_file->pos correctly.
-Also, the seek at the front of process_arg is not necessary; write_to_rras will now take care to correct the file position at every update cycle.
-This eliminates unnecessary rrd_seek() calls when MMAP is not enabled. -- kevin brintnall  kbrint rufus.net
+2008-05-31 15:57  oetiker
 
+       * bindings/perl-piped/RRDp.pm, bindings/perl-shared/RRDs.pm,
+         configure.ac, doc/rrdbuild.pod, rrdtool.spec, src/pngsize.c,
+         src/rrd.h, src/rrd_cgi.c, src/rrd_create.c, src/rrd_datalang.c,
+         src/rrd_diff.c, src/rrd_dump.c, src/rrd_error.c, src/rrd_fetch.c,
+         src/rrd_first.c, src/rrd_format.c, src/rrd_format.h,
+         src/rrd_gfx.c, src/rrd_graph.c, src/rrd_graph_helper.c,
+         src/rrd_hw.c, src/rrd_hw.h, src/rrd_i18n.h, src/rrd_info.c,
+         src/rrd_is_thread_safe.h, src/rrd_last.c, src/rrd_lastupdate.c,
+         src/rrd_not_thread_safe.c, src/rrd_open.c, src/rrd_resize.c,
+         src/rrd_restore.c, src/rrd_rpncalc.c, src/rrd_rpncalc.h,
+         src/rrd_thread_safe.c, src/rrd_thread_safe_nt.c, src/rrd_tool.c,
+         src/rrd_tool.h, src/rrd_tune.c, src/rrd_update.c,
+         src/rrd_version.c, src/rrd_xport.c, src/rrd_xport.h,
+         src/rrdupdate.c: prepare for the release of rrdtool-1.3rc7
 
-------------------------------------------------------------------------
-r1484 | oetiker | 2008-09-06 16:24:43 +0200 | 1 line
+2008-05-31 15:56  oetiker
 
-prepare for the release of rrdtool-1.3.2
-------------------------------------------------------------------------
-r1483 | oetiker | 2008-09-06 13:46:41 +0200 | 2 lines
+       * doc/rrdbuild.pod: added pkgconfig build instructions
 
-we need rrd_format.h here for things to compile properly
+2008-05-31 12:28  oetiker
 
-------------------------------------------------------------------------
-r1482 | oetiker | 2008-09-06 13:43:10 +0200 | 2 lines
+       * branches/1.2/program/src/rrd_graph.c, src/rrd_graph.c: make sure
+         vdef calcs only calc as far as originally requested.
 
-updated opensolaris build instructions
+2008-05-27 22:24  oetiker
 
-------------------------------------------------------------------------
-r1481 | oetiker | 2008-09-06 12:43:07 +0200 | 4 lines
+       * src/rrd_info.c: fixed maxlength for sprintf_alloc 50 was not
+         enough ... 1024+strlen(fmt) is much better. This makes imginfo
+         work even when there are long image paths.
 
-only link build and use rrd_getopt if there is no getopt_long provided by
-by the os ... this should also fix problems for solaris 2.8 and other
-non getopt_long oses who were not taken care of anymore after the intriduction of librrd.sym
+2008-05-26 11:45  oetiker
 
-------------------------------------------------------------------------
-r1480 | oetiker | 2008-09-06 12:39:29 +0200 | 1 line
+       * TODO: updated todo list
 
-fix for multi update - data corruption bug as reported (and patched) in #178 by kevin brintnall
-------------------------------------------------------------------------
-r1479 | oetiker | 2008-09-06 12:32:57 +0200 | 2 lines
+2008-05-26 08:56  oetiker
 
-make pod checker happy
+       * bindings/perl-piped/RRDp.pm, bindings/perl-shared/RRDs.pm,
+         configure.ac, doc/rrdbuild.pod, rrdtool.spec, src/pngsize.c,
+         src/rrd.h, src/rrd_cgi.c, src/rrd_create.c, src/rrd_datalang.c,
+         src/rrd_diff.c, src/rrd_dump.c, src/rrd_error.c, src/rrd_fetch.c,
+         src/rrd_first.c, src/rrd_format.c, src/rrd_format.h,
+         src/rrd_gfx.c, src/rrd_graph.c, src/rrd_graph_helper.c,
+         src/rrd_hw.c, src/rrd_hw.h, src/rrd_i18n.h, src/rrd_info.c,
+         src/rrd_is_thread_safe.h, src/rrd_last.c, src/rrd_lastupdate.c,
+         src/rrd_not_thread_safe.c, src/rrd_open.c, src/rrd_resize.c,
+         src/rrd_restore.c, src/rrd_rpncalc.c, src/rrd_rpncalc.h,
+         src/rrd_thread_safe.c, src/rrd_thread_safe_nt.c, src/rrd_tool.c,
+         src/rrd_tool.h, src/rrd_tune.c, src/rrd_update.c,
+         src/rrd_version.c, src/rrd_xport.c, src/rrd_xport.h,
+         src/rrdupdate.c: prepare for the release of rrdtool-1.3rc6
 
-------------------------------------------------------------------------
-r1478 | oetiker | 2008-09-06 10:58:18 +0200 | 4 lines
+2008-05-26 07:46  oetiker
 
-inline functions are not supported in c99 ... lets remove this.
-the compiler will foture it out if they are important.
+       * NEWS: added notes about new grid lines
 
+2008-05-26 07:45  oetiker
 
-------------------------------------------------------------------------
-r1477 | oetiker | 2008-09-04 23:45:44 +0200 | 2 lines
+       * src/rrd_graph.c: * make y-axis labels NOT run into each other
+         (classic and alt) * space horizontal grid lines and lables a bit
+         further apart for tight layouts. * let horizontal lines and y axis
+         labels run a little closer for classic grid
 
-introduced a persistant fontmap ... this makes our pango rendering 6 times faster starting from the second graph we draw.
+2008-05-25 21:17  oetiker
 
-------------------------------------------------------------------------
-r1476 | oetiker | 2008-09-01 01:42:02 +0200 | 2 lines
+       * src/rrd_graph.c: fixed calculation of space at the bottom of the
+         graph
 
-now the results actually look as they did with the old code only things are FASTER
+2008-05-25 20:02  oetiker
 
-------------------------------------------------------------------------
-r1475 | oetiker | 2008-09-01 00:53:49 +0200 | 3 lines
+       * bindings/perl-piped/RRDp.pm, bindings/perl-shared/RRDs.pm,
+         configure.ac, doc/rrdbuild.pod, rrdtool.spec, src/pngsize.c,
+         src/rrd.h, src/rrd_cgi.c, src/rrd_create.c, src/rrd_datalang.c,
+         src/rrd_diff.c, src/rrd_dump.c, src/rrd_error.c, src/rrd_fetch.c,
+         src/rrd_first.c, src/rrd_format.c, src/rrd_format.h,
+         src/rrd_gfx.c, src/rrd_graph.c, src/rrd_graph_helper.c,
+         src/rrd_hw.c, src/rrd_hw.h, src/rrd_i18n.h, src/rrd_info.c,
+         src/rrd_is_thread_safe.h, src/rrd_last.c, src/rrd_lastupdate.c,
+         src/rrd_not_thread_safe.c, src/rrd_open.c, src/rrd_resize.c,
+         src/rrd_restore.c, src/rrd_rpncalc.c, src/rrd_rpncalc.h,
+         src/rrd_thread_safe.c, src/rrd_thread_safe_nt.c, src/rrd_tool.c,
+         src/rrd_tool.h, src/rrd_tune.c, src/rrd_update.c,
+         src/rrd_version.c, src/rrd_xport.c, src/rrd_xport.h,
+         src/rrdupdate.c: prepare for the release of rrdtool-1.3rc5
 
-Improve performance by keeping multiple pango font descriptions. For the first invocation we are about 20% times as fast
-for the second one about 4-5 times faster ... 
+2008-05-25 20:00  oetiker
 
-------------------------------------------------------------------------
-r1474 | oetiker | 2008-08-31 12:55:24 +0200 | 3 lines
+       * src/rrd_format.h, src/rrd_open.c, src/rrd_update.c: fix update
+         compatibility with rrd-1.0.x files
 
-trying to improve the pango performance I added facilities to cache layout,context and more in between invocations of
-the text function, unfortunately it does not seem to help all that much.
+2008-05-20 22:22  oetiker
 
-------------------------------------------------------------------------
-r1473 | oetiker | 2008-08-31 12:52:49 +0200 | 1 line
+       * bindings/Makefile.am: droped rrd_extra.h from the distro with the
+         python update ... must remove it from the Makefile too
 
-use the standart info free function
-------------------------------------------------------------------------
-r1471 | oetiker | 2008-08-28 07:49:02 +0200 | 2 lines
+2008-05-19 21:14  oetiker
 
-fix handling of error conditions in rrd_tool.c ... errno is not for detection, only for information AFTER detection.
+       * NEWS, bindings/python/README, bindings/python/rrd_extra.h,
+         bindings/python/rrdtoolmodule.c, doc/rrdpython.pod: fixed python
+         bindings: * info call isnnow aequivalent to rrdtool info (the same
+         as in the perl and ruby bindings) * graphv and updatev calls added
 
-------------------------------------------------------------------------
-r1470 | oetiker | 2008-08-28 06:13:39 +0200 | 2 lines
+2008-05-18 22:11  oetiker
 
-free the linebuffer if you don't return it!
+       * src/rrd_gfx.c, src/rrd_graph.c, src/rrd_tool.c: * document
+         tabwidth option * fix \t -> tab expansion
 
-------------------------------------------------------------------------
-r1469 | oetiker | 2008-08-28 00:06:43 +0200 | 2 lines
+2008-05-18 15:39  oetiker
 
-some more leak plugging
+       * src/rrd_graph.c: ytr boundery checking ... this is from the GD
+         days ... we don't need this anymore
 
-------------------------------------------------------------------------
-r1468 | oetiker | 2008-08-27 23:48:50 +0200 | 2 lines
+2008-05-18 15:11  oetiker
 
-drop the dummy surface prior to creating the real one
+       * src/rrd_dump.c, src/rrd_tool.c: fix indenting
 
-------------------------------------------------------------------------
-r1467 | oetiker | 2008-08-27 23:46:01 +0200 | 2 lines
+2008-05-18 15:11  oetiker
 
-added some freeing for error conditions
+       * src/rrd_graph.c: pdf, svg and ps formats were not being created
 
-------------------------------------------------------------------------
-r1466 | oetiker | 2008-08-27 23:25:43 +0200 | 2 lines
+2008-05-18 13:06  oetiker
 
-fixed indentation  ... gnu indent results are not realy beautifl. I might switch to uncrustify.
+       * bindings/perl-piped/RRDp.pm, bindings/perl-shared/RRDs.pm,
+         configure.ac, doc/rrdbuild.pod, rrdtool-1.3-release, rrdtool.spec,
+         src/pngsize.c, src/rrd.h, src/rrd_cgi.c, src/rrd_create.c,
+         src/rrd_datalang.c, src/rrd_diff.c, src/rrd_dump.c,
+         src/rrd_error.c, src/rrd_fetch.c, src/rrd_first.c,
+         src/rrd_format.c, src/rrd_format.h, src/rrd_gfx.c,
+         src/rrd_graph.c, src/rrd_graph_helper.c, src/rrd_hw.c,
+         src/rrd_hw.h, src/rrd_i18n.h, src/rrd_info.c,
+         src/rrd_is_thread_safe.h, src/rrd_last.c, src/rrd_lastupdate.c,
+         src/rrd_not_thread_safe.c, src/rrd_open.c, src/rrd_resize.c,
+         src/rrd_restore.c, src/rrd_rpncalc.c, src/rrd_rpncalc.h,
+         src/rrd_thread_safe.c, src/rrd_thread_safe_nt.c, src/rrd_tool.c,
+         src/rrd_tool.h, src/rrd_tune.c, src/rrd_update.c,
+         src/rrd_version.c, src/rrd_xport.c, src/rrd_xport.h,
+         src/rrdupdate.c: prepare for the release of rrdtool-1.3rc4
 
-------------------------------------------------------------------------
-r1465 | oetiker | 2008-08-27 23:25:04 +0200 | 2 lines
+2008-05-18 13:04  oetiker
 
-Many rrd_create memory leaks patched ... based on valgrind analysis by Sven Engelhardt. Thanks!
+       * src/rrd_tool.c, src/rrdupdate.c: fix year
 
-------------------------------------------------------------------------
-r1464 | oetiker | 2008-08-27 23:18:46 +0200 | 2 lines
+2008-05-18 12:53  oetiker
 
-fix indentation
+       * src/rrd_graph.c: PRINT returns from rrd_graph did not work due to
+         an off by one error
 
-------------------------------------------------------------------------
-r1463 | oetiker | 2008-08-27 08:52:33 +0200 | 3 lines
+2008-05-18 08:42  oetiker
 
-added  sparc-sun-solaris2.8 to list of broken isfinite implementations
+       * doc/rrdbuild.pod: updated build instructions to latest libraries
 
+2008-05-18 06:37  oetiker
 
-------------------------------------------------------------------------
-r1462 | oetiker | 2008-08-23 00:04:37 +0200 | 2 lines
+       * NEWS, configure.ac, src/rrd_i18n.h, src/rrd_tool.c: improved
+         handling of libintl issues
 
-it is rb_rrd_infocall not rrd_infocall ... 
+2008-05-16 12:29  oetiker
 
-------------------------------------------------------------------------
-r1461 | oetiker | 2008-08-16 09:13:01 +0200 | 5 lines
+       * bindings/perl-piped/RRDp.pm, bindings/perl-shared/RRDs.pm,
+         configure.ac, doc/rrdbuild.pod, rrdtool.spec, src/pngsize.c,
+         src/rrd.h, src/rrd_cgi.c, src/rrd_create.c, src/rrd_datalang.c,
+         src/rrd_diff.c, src/rrd_dump.c, src/rrd_error.c, src/rrd_fetch.c,
+         src/rrd_first.c, src/rrd_format.c, src/rrd_format.h,
+         src/rrd_gfx.c, src/rrd_graph.c, src/rrd_graph_helper.c,
+         src/rrd_hw.c, src/rrd_hw.h, src/rrd_i18n.h, src/rrd_info.c,
+         src/rrd_is_thread_safe.h, src/rrd_last.c, src/rrd_lastupdate.c,
+         src/rrd_not_thread_safe.c, src/rrd_open.c, src/rrd_resize.c,
+         src/rrd_restore.c, src/rrd_rpncalc.c, src/rrd_rpncalc.h,
+         src/rrd_thread_safe.c, src/rrd_thread_safe_nt.c, src/rrd_tool.c,
+         src/rrd_tool.h, src/rrd_tune.c, src/rrd_update.c,
+         src/rrd_version.c, src/rrd_xport.c, src/rrd_xport.h,
+         src/rrdupdate.c: prepare for the release of rrdtool-1.3rc3
 
-When in lazy mode, and the graph does not get regenerated, then there are no
-results from PRINT either. Fix for #163.
+2008-05-16 12:28  oetiker
 
+       * doc/rrddump.pod, src/rrd_dump.c: added --no-header to
+         documentation and fixed implementation
 
+2008-05-16 12:20  oetiker
 
-------------------------------------------------------------------------
-r1460 | oetiker | 2008-08-16 09:11:46 +0200 | 1 line
+       * src/rrd_dump.c: fixed dump_opt implementation
 
-documentation updates
-------------------------------------------------------------------------
-r1459 | oetiker | 2008-08-12 08:48:37 +0200 | 2 lines
+2008-05-16 12:18  oetiker
 
-make sure imageinfo only reports the filename and not the whole path. This is a regression from 1.2.x where this was implemented properly.
+       * NEWS, src/rrd_dump.c: added no-header option to rrd_dump
 
-------------------------------------------------------------------------
-r1457 | oetiker | 2008-08-04 22:35:45 +0200 | 12 lines
+2008-05-16 12:07  oetiker
 
-The attached patch converts the given string to UTF-8 using glib's
-g_locale_to_utf8() function. This function expects the string to be
-encoded as specified by the locale settings, so this will fail if e.g.
-you're using some script which is encoded in some way incompatible to
-the locale settings. In this case, the patch falls back to use the
-original string as provided by the user as there is no way to tell how
-to interpret that string. So, in this case, you will still get the old
-behavior (that pango warning and messed up strings in the graph).
-However, imho this is perfectly fine since it should be up to the user
-to take care of a sane environment. -- Sebastian Harl
+       * src/rrd_graph.c: fix handling of values <= zero for logarithmic
+         display
 
+2008-05-15 22:39  oetiker
 
-------------------------------------------------------------------------
-r1456 | oetiker | 2008-07-29 16:42:08 +0200 | 2 lines
+       * rrdtool-1.3-release: prepare for the release of rrdtool-1.3rc2
 
-newer perlapi docu suggests to  use SV * instead of void for managed returns
+2008-05-15 22:39  oetiker
 
-------------------------------------------------------------------------
-r1455 | oetiker | 2008-07-29 07:08:46 +0200 | 2 lines
+       * bindings/perl-piped/RRDp.pm, bindings/perl-shared/RRDs.pm,
+         configure.ac, doc/rrdbuild.pod, rrdtool.spec, src/pngsize.c,
+         src/rrd.h, src/rrd_cgi.c, src/rrd_create.c, src/rrd_datalang.c,
+         src/rrd_diff.c, src/rrd_dump.c, src/rrd_error.c, src/rrd_fetch.c,
+         src/rrd_first.c, src/rrd_format.c, src/rrd_format.h,
+         src/rrd_gfx.c, src/rrd_graph.c, src/rrd_graph_helper.c,
+         src/rrd_hw.c, src/rrd_hw.h, src/rrd_i18n.h, src/rrd_info.c,
+         src/rrd_is_thread_safe.h, src/rrd_last.c, src/rrd_lastupdate.c,
+         src/rrd_not_thread_safe.c, src/rrd_open.c, src/rrd_resize.c,
+         src/rrd_restore.c, src/rrd_rpncalc.c, src/rrd_rpncalc.h,
+         src/rrd_thread_safe.c, src/rrd_thread_safe_nt.c, src/rrd_tool.c,
+         src/rrd_tool.h, src/rrd_tune.c, src/rrd_update.c,
+         src/rrd_version.c, src/rrd_xport.c, src/rrd_xport.h,
+         src/rrdupdate.c: prepare for the release of rrdtool-1.3rc2
 
-fixed some c++ style lines -- David Masterson
+2008-05-15 22:37  oetiker
 
-------------------------------------------------------------------------
-r1454 | oetiker | 2008-07-28 09:23:15 +0200 | 2 lines
+       * Makefile.am, configure.ac, rrdtool-1.3-release, src/Makefile.am:
+         fix portability to mac osx and freebsd -- tobi
 
-spelling fix
+2008-05-12 23:10  oetiker
 
-------------------------------------------------------------------------
-r1453 | oetiker | 2008-07-23 17:03:43 +0200 | 3 lines
+       * configure.ac: add solaris pod2man location last
 
-forward ported patch for rra cur_row randomization in rrd_restore from 1.2.28 to 1.3.1
+2008-05-12 23:03  oetiker
 
+       * configure.ac, doc/Makefile.am, doc/rrdbuild.pod: some changes to
+         make things work on opensolaris 2008.05
 
-------------------------------------------------------------------------
-r1447 | oetiker | 2008-07-23 15:02:26 +0200 | 1 line
+2008-05-12 22:42  oetiker
 
-prepare for the release of rrdtool-1.3.1
-------------------------------------------------------------------------
-r1446 | oetiker | 2008-07-23 14:45:52 +0200 | 3 lines
+       * bindings/tcl/Makefile.am: for some reason tclrrd.c does not get
+         picked up using $< at least on opensolaris
 
-added support for restoring rrdtool 1.0.x files ... removed support for old HW patched rrd format created by an early patched version of 1.0.x
+2008-05-12 22:23  oetiker
 
+       * src/Makefile.am, src/rrd_graph.h, src/rrd_info.c,
+         src/rrd_rpncalc.c, src/rrd_rpncalc.h, src/rrd_tool.c: allow
+         rrd_rpncalc to build without cairo dependencies ... fix warnings
 
-------------------------------------------------------------------------
-r1445 | oetiker | 2008-07-22 17:15:44 +0200 | 2 lines
+2008-05-12 21:14  oetiker
 
-Fix for #167 - rrdcreate is arguably missing a check for 'step>=1' for RRAs with AVERAGE as a CF. I ran into this when specifying 0.6 as a step value, assuming floats were also accepted. Patch attached here. -- Bogdan
+       * Makefile.am: add intltool*in files to dist
 
-------------------------------------------------------------------------
-r1444 | oetiker | 2008-07-01 08:35:54 +0200 | 1 line
+2008-05-12 16:15  oetiker
 
-header-fix
-------------------------------------------------------------------------
-r1443 | oetiker | 2008-07-01 08:34:24 +0200 | 2 lines
+       * bindings/python/rrdtoolmodule.c, src/rrd_update.c: fixed indenting
 
-improve layout
+2008-05-12 16:15  oetiker
 
-------------------------------------------------------------------------
-r1441 | oetiker | 2008-06-29 18:23:50 +0200 | 2 lines
+       * src/rrd_graph.c, src/rrd_hw.c, src/rrd_open.c, src/rrd_rpncalc.c,
+         src/win32comp.c: removed c++ comments //
 
-added rrd filename to illegal update message -- he at uninett.no
+2008-05-12 16:09  oetiker
 
-------------------------------------------------------------------------
-r1440 | oetiker | 2008-06-29 16:08:51 +0200 | 2 lines
+       * NEWS: added notes about rewrites in this release
 
-rrdtool.spec fix by Anton Blanchard to build without php patch 
+2008-05-12 16:08  oetiker
 
-------------------------------------------------------------------------
-r1439 | oetiker | 2008-06-29 15:57:00 +0200 | 2 lines
+       * configure.ac, src/Makefile.am: improved handling of library
+         versioning
 
-make sure image-with and image-height get returned even when rrdtool is called with --lazy as reported in bug #163
+2008-05-12 15:35  oetiker
 
-------------------------------------------------------------------------
-r1436 | oetiker | 2008-06-19 15:18:04 +0200 | 3 lines
+       * src/rrd_update.c: should not leave debug enabled
 
-rrdtool.fetch is returning an extra, bogus, data point.  Attached is a
-patch to correct this. - Gilad Raphaelli. Fix for #161
+2008-05-12 15:33  oetiker
 
-------------------------------------------------------------------------
-r1435 | oetiker | 2008-06-12 15:54:23 +0200 | 2 lines
+       * branches/1.2/program/doc/rrdcreate.pod,
+         branches/1.2/program/src/rrd_update.c, doc/rrdcreate.pod,
+         src/rrd_update.c: Fixed handling of unknown data at PDP build
+         time. There was a long standing (even documented) missfeature in
+         rrdtool which caused uknown-data to be accepted as long as it was
+         less than the mrhb. This was never the intended behaviour and had
+         interesting side effects
+         (http://oss.oetiker.ch/rrdtool-trac/ticket/125): If you have a 60
+         Second step with 59s unknown data and 1 second of known data the
+         whole become known data as long as the mrhb was > step. The
+         intended behaviour was that a step should become unknown as soon
+         as it contains more than 50% of unknown data. The patch fixes both
+         the documentation and the code.
 
-added note on %S
+2008-05-12 13:22  oetiker
 
-------------------------------------------------------------------------
-r1434 | oetiker | 2008-06-11 17:49:24 +0200 | 2 lines
+       * src/rrd_create.c: the last_ds value fuer unknown is 'U' and not
+         'UNKN'
 
-made news the same as the announcement
+2008-05-04 18:59  oetiker
 
-------------------------------------------------------------------------
-r1432 | oetiker | 2008-06-11 01:12:55 +0200 | 1 line
+       * src/rrd_getopt.c, src/rrd_getopt1.c: fix for sun sudio 11
+         incompatibility
+         http://www.netbsd.org/cgi-bin/query-pr-single.pl?number=38555
 
-prepare for the release of rrdtool-1.3.0
-------------------------------------------------------------------------
-r1428 | oetiker | 2008-06-10 18:38:10 +0200 | 2 lines
+2008-05-01 23:23  oetiker
 
-oops it is 1.3.0 not 1.4.0 yet
+       * bindings/ruby/main.c, src/rrd.h, src/rrd_info.c, src/rrd_tool.c:
+         indenting fixes
 
-------------------------------------------------------------------------
-r1427 | oetiker | 2008-06-10 18:37:39 +0200 | 2 lines
+2008-05-01 23:23  oetiker
 
-preparing for 1.3
+       * src/rrd_graph.c: make sure properties are shown via graph_v even
+         in --graph-only mode
 
-------------------------------------------------------------------------
-r1426 | oetiker | 2008-06-10 18:32:34 +0200 | 4 lines
+2008-05-01 06:56  oetiker
 
-document the 'internal' functions in rrd.h but mark them as deprecated, so
-that anyone using them will see that they should not be doing it.
+       * MakeMakefile: Make the MakeMakefile script a bit more robust
 
+2008-04-22 21:40  oetiker
 
-------------------------------------------------------------------------
-r1425 | oetiker | 2008-06-10 13:16:40 +0200 | 2 lines
+       * bindings/python/rrd_extra.h, bindings/python/rrdtoolmodule.c: fix
+         for #148
 
-flip check for row_count with setting for better code logic
+2008-04-20 22:46  oetiker
 
-------------------------------------------------------------------------
-r1424 | oetiker | 2008-06-10 11:35:03 +0200 | 2 lines
+       * CONTRIBUTORS, NEWS, bindings/perl-shared/RRDs.pm,
+         bindings/perl-shared/RRDs.xs, bindings/ruby/main.c,
+         doc/rrdgraph.pod, src/rrd.h, src/rrd_graph.c, src/rrd_graph.h,
+         src/rrd_info.c, src/rrd_tool.c, src/rrd_tool.h: Introduced a
+         alternated interface to rrd_graph using rrd_info style return
+         values: rrd_graph_v The graph_v interface returnes additional
+         information about the graph including the location of the graphing
+         area within the image. When called with '-' as filename it will
+         even return the image data. The new interface is supported in the
+         rrdtool command line, RRDs perl and ruby bindings.
 
-check row count in RRAs to be > 0 ... by Sebastian Harl
+2008-04-17 05:35  oetiker
 
-------------------------------------------------------------------------
-r1423 | oetiker | 2008-06-10 09:18:02 +0200 | 2 lines
+       * src/rrd_update.c: indent fix
 
-for windows we must open files in O_BINARY mode
+2008-04-17 05:35  oetiker
 
-------------------------------------------------------------------------
-r1421 | oetiker | 2008-06-09 18:10:39 +0200 | 6 lines
+       * src/rrd_tune.c: do not reset the last_ds store unless the data
+         source type is actually changed.
 
-do NOT export lowlevel functions, since I have no intention supporting these
-interfaces across versions. The symbols are in the library, so if someone
-WANTS to code to them, they are free todo so, but they will have to use our
-internal header files.
+2008-04-16 15:50  oetiker
 
+       * branches/1.2/program/doc/rrdgraph.pod, doc/rrdgraph.pod: fixed 2.
+         x-grid example ... since the lable is valid for the whole day, it
+         must be 86400 wide. --tobi
 
-------------------------------------------------------------------------
-r1420 | oetiker | 2008-06-09 17:49:54 +0200 | 2 lines
+2008-04-12 09:29  oetiker
 
-add all lowlevel file access functions from the rrd_open interface to the export list.
+       * MakeMakefile, configure.ac: alter order of header inclusion for
+         FreeBSD 4.8 compatibility
 
-------------------------------------------------------------------------
-r1419 | oetiker | 2008-06-09 07:12:27 +0200 | 2 lines
+2008-04-12 09:21  oetiker
 
-fixed indenting
+       * branches/1.2/program/src/parsetime.c, src/parsetime.c: do not mess
+         with dst status after running localtime, the system gets confused
+         otherwhise when it comes to times during the switch over periode
+         as DST changes to non DST. -- tobi
 
-------------------------------------------------------------------------
-r1418 | oetiker | 2008-06-09 07:11:39 +0200 | 1 line
+2008-03-25 23:02  oetiker
 
-update to rpm spec from Jarod Wilson
-------------------------------------------------------------------------
-r1417 | oetiker | 2008-06-08 23:15:32 +0200 | 2 lines
+       * src/rrd_dump.c: added missing " escapes to xml header in
+         rrd_tool.c
 
-export some more symbols from librrd
+2008-03-25 22:59  oetiker
 
-------------------------------------------------------------------------
-r1416 | oetiker | 2008-06-08 23:06:35 +0200 | 2 lines
+       * CONTRIBUTORS: added Florian octo Forster to contrib list
 
-windows should use a windows font
+2008-03-25 22:59  oetiker
 
-------------------------------------------------------------------------
-r1415 | oetiker | 2008-06-08 23:05:50 +0200 | 2 lines
+       * doc/rrdgraph_examples.pod: added missing =back for propper pod
+         syntax
 
-drop special case windows font code ... it makes no sense with the new setup
+2008-03-25 22:58  oetiker
 
-------------------------------------------------------------------------
-r1413 | oetiker | 2008-06-08 19:08:47 +0200 | 1 line
+       * src/rrd_dump.c: fix indent
 
-prepare for the release of rrdtool-1.3rc9
-------------------------------------------------------------------------
-r1412 | oetiker | 2008-06-08 19:08:11 +0200 | 2 lines
+2008-03-25 22:58  oetiker
 
-fixed pango markup switch ... we still want the text to show even if no markup is enabled
+       * src/rrd_restore.c: fix broken header comment section -- Florian
+         octo Forster
 
-------------------------------------------------------------------------
-r1411 | oetiker | 2008-06-08 18:47:22 +0200 | 2 lines
+2008-03-25 22:57  oetiker
 
-rrd_freemem has to be exported as well ... 
+       * src/rrd_graph.c: cast size_t to int to avoid warning -- Florian
+         octo Forster
 
-------------------------------------------------------------------------
-r1409 | oetiker | 2008-06-08 18:23:39 +0200 | 2 lines
+2008-03-25 22:56  oetiker
 
-fix for ticket #121 jmpbuf on aix is a problem it seems, maybe this makes it better.
+       * src/rrd_open.c: do not declare DEBUG functions unless compiled in
+         DEBUG mode -- Florian octo Forster
 
-------------------------------------------------------------------------
-r1407 | oetiker | 2008-06-08 17:59:20 +0200 | 1 line
+2008-03-25 22:55  oetiker
 
-prepare for the release of rrdtool-1.3rc8
-------------------------------------------------------------------------
-r1406 | oetiker | 2008-06-08 17:55:54 +0200 | 1 line
+       * src/rrd_tool.c: make helptexts read only memory
 
-prepare for the release of rrdtool-1.3rc8
-------------------------------------------------------------------------
-r1405 | oetiker | 2008-06-08 17:55:09 +0200 | 62 lines
+2008-03-25 22:55  oetiker
 
-From: Sebastian Harl sh tokkee.org
-Date: Sun, 8 Jun 2008 15:01:05 +0200
-Subject: [PATCH] Cleanup the symbols exported by librrd.
+       * src/rrd_update.c: stop complaints about unused variables if not
+         running DEBUG
 
-Up to know librrd exported a lot of symbols, most of which are to be
-regarded as private symbols. This somewhat pollutes the API as the symbols
-could, in theory, be used by external software and, more importantly,
-makes symbol based dependencies (as recently introduced in e.g. Debian)
-somewhat harder to implement.
+2008-03-25 22:49  oetiker
 
-This patch does a somewhat large-scale cleanup of the exported symbols:
+       * MakeMakefile: Added check for intltool version. Use Makefile for
+         cleanup. -- Florian octo Forster
 
- * Introduced a librrd.sym file which contains all symbols that are to be
-   exported. This file is then passed to libtool using the -export-symbols
-   option which tells the linker to export the given symbols only (note:
-   according to the libtool manual, this has no effect on some
-   architectures - however, I assume that most architectures in use today
-   do support it).
+2008-03-23 13:43  oetiker
 
-   librrd.sym contains all symbols originally defined in rrd.h sans
-   LockRRD() (which has been moved to rrd_tool.h). The following functions
-   have been added to rrd.h and the list of exported symbols (some of them
-   have been renamed, see below):
-   - rrd_info()
-   - rrd_info_free()
-   - rrd_info_print()
-   - rrd_info_push()
-   - rrd_lastupdate()
-   - rrd_update_v()
-   - rrd_strerror()
+       * src/rrd_dump.c: added pointer to florian forsters dtd to the rrd
+         dumpt
 
- * Prefixed all public functions and types with "rrd_" to avoid name
-   clashes with other libraries. Also, while I was at it, I introduced
-   typedefs for all custom types and prefixed the time names with "_t" to
-   improve consistency:
-   - enum info_type -> rrd_info_type_t
-   - enum timetype -> rrd_timetype_t
+2008-03-19 23:36  oetiker
 
-   - union infoval -> rrd_infoval_t
+       * configure.ac: fix pkgconfig file name
 
-   - struct info_t -> rrd_info_t
-   - struct rrd_context -> rrd_context_t
-   - struct rrd_time_value -> rrd_time_value_t
+2008-03-15 10:39  oetiker
 
-   - info_free() -> rrd_info_free()
-   - info_free() -> rrd_info_free()
-   - info_print() -> rrd_info_print()
-   - info_push() -> rrd_info_push()
-   - LockRRD() -> rrd_lock() (not public though)
-   - parsetime() -> rrd_parsetime()
-     (and: src/parsetime.c -> src/rrd_parsetime.c)
-   - proc_start_end() -> rrd_proc_start_end()
-   - set_to_DINF() -> rrd_set_to_DINF()
-   - set_to_DNAN() -> rrd_set_to_DNAN()
+       * ., .indent.pro, 00README, CONTRIBUTORS, COPYING, COPYRIGHT,
+         MakeMakefile, Makefile.am, NEWS, PROJECTS, README, THREADS, TODO,
+         WIN32-BUILD-TIPS.txt, acinclude.m4, bindings,
+         bindings/Makefile.am, bindings/perl-piped,
+         bindings/perl-piped/MANIFEST, bindings/perl-piped/Makefile.PL,
+         bindings/perl-piped/README, bindings/perl-piped/RRDp.pm,
+         bindings/perl-piped/leaktest.pl, bindings/perl-piped/rrdpl.dsp,
+         bindings/perl-piped/rrdpl.dsw, bindings/perl-piped/t,
+         bindings/perl-piped/t/base.t, bindings/perl-shared,
+         bindings/perl-shared/MANIFEST, bindings/perl-shared/Makefile.PL,
+         bindings/perl-shared/README, bindings/perl-shared/RRDs.pm,
+         bindings/perl-shared/RRDs.ppd, bindings/perl-shared/RRDs.xs,
+         bindings/perl-shared/ntmake.pl, bindings/perl-shared/t,
+         bindings/perl-shared/t/base.t, bindings/python,
+         bindings/python/ACKNOWLEDGEMENT, bindings/python/AUTHORS,
+         bindings/python/COPYING, bindings/python/README,
+         bindings/python/rrd_extra.h, bindings/python/rrdtoolmodule.c,
+         bindings/python/setup.py, bindings/ruby, bindings/ruby/CHANGES,
+         bindings/ruby/README, bindings/ruby/extconf.rb,
+         bindings/ruby/main.c, bindings/ruby/test.rb, bindings/tcl,
+         bindings/tcl/Makefile.am, bindings/tcl/README,
+         bindings/tcl/ifOctets.tcl.in, bindings/tcl/tclrrd.c, configure.ac,
+         debian, debian/README.Debian, debian/build_freetype.sh,
+         debian/changelog, debian/control, debian/copyright,
+         debian/librrd0-dev.files, debian/librrd0.files,
+         debian/librrd0.postinst, debian/librrd0.postrm,
+         debian/librrd0.shlibs, debian/librrdp-perl.files,
+         debian/librrds-perl.files, debian/rrdtool-tcl.files,
+         debian/rrdtool.files, debian/rules, debian/watch, doc,
+         doc/Makefile.am, doc/bin_dec_hex.pod, doc/cdeftutorial.pod,
+         doc/name.inc, doc/rpntutorial.pod, doc/rrd-beginners.pod,
+         doc/rrdbuild.pod, doc/rrdcgi.pod, doc/rrdcreate.pod,
+         doc/rrddump.pod, doc/rrdfetch.pod, doc/rrdfirst.pod,
+         doc/rrdgraph-old.pod, doc/rrdgraph.pod, doc/rrdgraph_data.pod,
+         doc/rrdgraph_examples.pod, doc/rrdgraph_graph.pod,
+         doc/rrdgraph_rpn.pod, doc/rrdinfo.pod, doc/rrdlast.pod,
+         doc/rrdlastupdate.pod, doc/rrdpython.pod, doc/rrdresize.pod,
+         doc/rrdrestore.pod, doc/rrdruby.pod, doc/rrdthreads.pod,
+         doc/rrdtool-dump.dtd, doc/rrdtool-xport.dtd, doc/rrdtool.pod,
+         doc/rrdtune.pod, doc/rrdtutorial.es.pod, doc/rrdtutorial.pod,
+         doc/rrdupdate.pod, doc/rrdxport.pod, examples,
+         examples/4charts.pl.in, examples/Makefile.am,
+         examples/bigtops.pl.in, examples/cgi-demo.cgi.in,
+         examples/minmax.pl.in, examples/perftest.pl.in,
+         examples/piped-demo.pl.in, examples/shared-demo.pl.in,
+         examples/stripes.pl.in, favicon.ico, netware, netware/Makefile,
+         po, po/ChangeLog, po/LINGUAS, po/POTFILES.in, po/de.po,
+         rrdtool-1.2-release, rrdtool-1.3-release, rrdtool.spec, src,
+         src/Makefile.am, src/compile_afm.pl, src/fnv.h, src/get_ver.awk,
+         src/hash_32.c, src/parsetime.c, src/parsetime.h, src/pngsize.c,
+         src/rrd.h, src/rrd_cgi.c, src/rrd_create.c, src/rrd_datalang.c,
+         src/rrd_diff.c, src/rrd_dump.c, src/rrd_error.c, src/rrd_fetch.c,
+         src/rrd_first.c, src/rrd_format.c, src/rrd_format.h,
+         src/rrd_getopt.c, src/rrd_getopt.h, src/rrd_getopt1.c,
+         src/rrd_gfx.c, src/rrd_graph.c, src/rrd_graph.h,
+         src/rrd_graph_helper.c, src/rrd_hw.c, src/rrd_hw.h,
+         src/rrd_hw_math.c, src/rrd_hw_math.h, src/rrd_hw_update.c,
+         src/rrd_hw_update.h, src/rrd_i18n.h, src/rrd_info.c,
+         src/rrd_is_thread_safe.h, src/rrd_last.c, src/rrd_lastupdate.c,
+         src/rrd_nan_inf.c, src/rrd_not_thread_safe.c, src/rrd_open.c,
+         src/rrd_resize.c, src/rrd_restore.c, src/rrd_rpncalc.c,
+         src/rrd_rpncalc.h, src/rrd_thread_safe.c,
+         src/rrd_thread_safe_nt.c, src/rrd_tool.c, src/rrd_tool.h,
+         src/rrd_tune.c, src/rrd_update.c, src/rrd_version.c,
+         src/rrd_xport.c, src/rrd_xport.h, src/rrdupdate.c, src/strftime.c,
+         src/strftime.h, src/unused.h, src/win32comp.c, svn2cl.xsl, win32,
+         win32/Makefile, win32/config.h, win32/rrd.dsp, win32/rrd.vcproj,
+         win32/rrd_config.h.msvc, win32/rrdtool.dsp, win32/rrdtool.dsw,
+         win32/rrdtool.vcproj: reindent aded id keyword substitution
 
- * Moved readfile() from rrd_open.c to rrd_cgi.c and declared it static.
-   This function is used in rrd_cgi.c only.
+2008-03-15 10:32  oetiker
 
- * rrd_lock() (f.k.a. LockRRD()) now accepts a rrd_file_t pointer instead
-   of an integer to increase encapsulation.
+       * src/rrd_rpncalc.c: reat nan as FALSE in an IF CDEF
 
+2008-03-07 08:57  oetiker
 
-------------------------------------------------------------------------
-r1404 | oetiker | 2008-06-07 16:35:03 +0200 | 2 lines
+       * doc/rrdgraph_rpn.pod, src/rrd_rpncalc.c, src/rrd_rpncalc.h: a
+         nan-safe add operator (ADDNAN) into rrd. I used it to add several
+         incomplete graphs. NaN + NaN => NaN x + NaN => x NaN + y => y x +
+         y => x + y -- Timo Stripf tstripf gmx.de
 
-don't bother with don't need when there is neither madvise not fadvise calls
+2008-03-02 15:38  oetiker
 
-------------------------------------------------------------------------
-r1403 | oetiker | 2008-06-06 18:38:25 +0200 | 2 lines
+       * src/rrd_graph.c: Fix error "cairo_restore without matching
+         cairo_save" when zero-time point is out of graph
 
-fix for --font bug (font names wer not being picked up at all). Bug reported by  Dmitry B. Bigunayk
+2008-02-25 07:11  oetiker
 
-------------------------------------------------------------------------
-r1402 | oetiker | 2008-06-05 22:56:24 +0200 | 2 lines
+       * branches/1.2/program/src/rrd_fetch.c, src/rrd_fetch.c: Ignore
+         RRA-end when comparing. coverage.
 
-added pango markup name
+2008-02-24 14:27  oetiker
 
-------------------------------------------------------------------------
-r1401 | oetiker | 2008-06-05 21:59:18 +0200 | 2 lines
+       * src/rrd_create.c, src/rrd_graph_helper.c, src/rrd_i18n.h,
+         src/rrd_info.c, src/rrd_restore.c, src/rrd_tool.c: fix indents
+         gone out of kileter by patching ...
 
-fixed indenting
+2008-02-24 14:26  oetiker
 
-------------------------------------------------------------------------
-r1400 | oetiker | 2008-06-05 21:59:01 +0200 | 1 line
+       * src/rrd_dump.c, src/rrd_tool.c: get rid of a few type cast
+         warnings
 
-disable pango markup by default. added --pango-markup option for explicit enablement.
-------------------------------------------------------------------------
-r1399 | oetiker | 2008-06-05 21:58:51 +0200 | 1 line
+2008-02-24 14:26  oetiker
 
-disable pango markup by default. added --pango-markup option for explicit enablement.
-------------------------------------------------------------------------
-r1398 | oetiker | 2008-06-05 21:57:25 +0200 | 1 line
+       * src/rrd_restore.c: fix one segfault while trying to restore an
+         invalid xml file. -- tobi
 
-fixed indenting
-------------------------------------------------------------------------
-r1397 | oetiker | 2008-06-04 18:18:42 +0200 | 2 lines
+2008-02-21 07:20  oetiker
 
-enable new building for newer tcl versions
+       * configure.ac: make ruby obey destdir
 
-------------------------------------------------------------------------
-r1396 | oetiker | 2008-06-02 08:46:57 +0200 | 2 lines
+2008-02-21 07:18  oetiker
 
-updated documentation of library versioning system
+       * po/ChangeLog: initial
 
-------------------------------------------------------------------------
-r1395 | oetiker | 2008-06-02 08:43:43 +0200 | 3 lines
+2008-02-21 07:12  oetiker
 
-Had to reset the interface version number due to the change in the rrd_context implementation.
+       * MakeMakefile, configure.ac, po/LINGUAS, po/de.po, src/rrd_tool.c:
+         make inbternationalized version actually build
 
+2008-02-21 06:59  oetiker
 
-------------------------------------------------------------------------
-r1394 | oetiker | 2008-06-02 08:21:42 +0200 | 2 lines
+       * po, po/LINGUAS, po/POTFILES.in, src/rrd_i18n.h: added missing bits
+         from internationalization
 
-use DNAN instead of NAN since there seem to be issues with gcc on solaris and the NAN experession (and we use DNAN everywhere else anyway).
+2008-02-19 12:56  oetiker
 
-------------------------------------------------------------------------
-r1393 | oetiker | 2008-06-01 23:12:26 +0200 | 2 lines
+       * branches/1.2/program/src/rrd_create.c,
+         branches/1.2/program/src/rrd_info.c,
+         branches/1.2/program/src/rrd_restore.c, src/rrd_create.c,
+         src/rrd_info.c, src/rrd_restore.c: Generate a random cur_row for
+         each RRA during create/restore operations. This effectively
+         randomizes the block crossings among RRDs created around the same
+         time. Previously, RRDs that were created/restored en masse would
+         cross block boundaries simultaneously, which is sub-optimal. Also,
+         this patch enables the user to see the RRA's cur_row pointer via
+         rrdinfo. This was useful during debugging. -- kevin brintnall
+         kbrint qwest.net
 
-integrated gentoo bits and spell fixes by Peter Volkov
+2008-02-18 15:04  oetiker
 
-------------------------------------------------------------------------
-r1392 | oetiker | 2008-06-01 22:44:01 +0200 | 3 lines
+       * MakeMakefile, Makefile.am, configure.ac, rrdtool.spec,
+         src/Makefile.am, src/rrd_getopt.c, src/rrd_tool.c: Added I18N
+         support for messages printed by rrd_tool.c --
+         http://oss.oetiker.ch/rrdtool-trac/ticket/144
 
-Patch for rrd_context system by sebastian harl, making it simpler and less error prone. Removing one buffer overflow in the process.
+2008-02-15 08:49  oetiker
 
+       * configure.ac: check for pdf as well
 
-------------------------------------------------------------------------
-r1389 | oetiker | 2008-05-31 17:58:45 +0200 | 1 line
+2008-02-15 08:44  oetiker
 
-prepare for the release of rrdtool-1.3rc7
-------------------------------------------------------------------------
-r1388 | oetiker | 2008-05-31 17:57:39 +0200 | 1 line
+       * configure.ac: check for cairo-ps and cairo-svg explicitly
 
-prepare for the release of rrdtool-1.3rc7
-------------------------------------------------------------------------
-r1387 | oetiker | 2008-05-31 17:56:37 +0200 | 2 lines
+2008-02-06 00:12  oetiker
 
-added pkgconfig build instructions
+       * configure.ac: ready for beta 4
 
-------------------------------------------------------------------------
-r1386 | oetiker | 2008-05-31 14:28:11 +0200 | 2 lines
+2008-02-06 00:10  oetiker
 
-make sure vdef calcs only calc as far as originally requested.
+       * src/rrd_graph.c, src/rrd_graph_helper.c: * replaced strtok with
+         strtok_r for thread safety * fixed im initialization broken after
+         the introduction of dashes ...
 
-------------------------------------------------------------------------
-r1385 | oetiker | 2008-05-28 00:24:32 +0200 | 3 lines
+2008-02-04 22:34  oetiker
 
-fixed maxlength for sprintf_alloc 50 was not enough ... 1024+strlen(fmt) is much better. This
-makes imginfo work even when there are long image paths.
+       * src/rrd_create.c: in rrd_create we do not use mmaping and thus
+         need to free rrd struct members in any case ...
 
-------------------------------------------------------------------------
-r1382 | oetiker | 2008-05-26 13:45:15 +0200 | 2 lines
+2008-02-04 22:16  oetiker
 
-updated todo list
+       * src/rrd_update.c: this should help with the memory leak
 
-------------------------------------------------------------------------
-r1380 | oetiker | 2008-05-26 10:56:58 +0200 | 1 line
+2008-02-04 18:18  oetiker
 
-prepare for the release of rrdtool-1.3rc6
-------------------------------------------------------------------------
-r1379 | oetiker | 2008-05-26 09:46:35 +0200 | 2 lines
+       * COPYRIGHT: added zpl 2.1 to floss exception
 
-added notes about new grid lines
+2008-02-01 06:52  oetiker
 
-------------------------------------------------------------------------
-r1378 | oetiker | 2008-05-26 09:45:19 +0200 | 5 lines
+       * branches/1.2/program/src/rrd_graph.c, src/rrd_graph.c: fixed
+         parsing of fontnames with embeded spaces
 
-* make y-axis labels NOT run into each other (classic and alt)
-* space horizontal grid lines and lables a bit further apart for tight
-  layouts.
-* let horizontal lines and y axis labels run a little closer for classic grid
+2008-01-14 17:11  oetiker
 
-------------------------------------------------------------------------
-r1377 | oetiker | 2008-05-25 23:17:30 +0200 | 2 lines
+       * configure.ac: remove c++ warnings flag .. this is not c++ after
+         all
 
-fixed calculation of space at the bottom of the graph
+2008-01-14 16:52  oetiker
 
-------------------------------------------------------------------------
-r1375 | oetiker | 2008-05-25 22:02:23 +0200 | 1 line
+       * src/rrd_cgi.c, src/rrd_create.c: fixed indenting
 
-prepare for the release of rrdtool-1.3rc5
-------------------------------------------------------------------------
-r1374 | oetiker | 2008-05-25 22:00:45 +0200 | 2 lines
+2008-01-14 16:51  oetiker
 
-fix update compatibility with rrd-1.0.x files
+       * src/rrd_gfx.c: fix indents
 
-------------------------------------------------------------------------
-r1373 | oetiker | 2008-05-21 00:22:27 +0200 | 2 lines
+2008-01-14 16:50  oetiker
 
-droped rrd_extra.h from the distro with the python update ... must remove it from the Makefile too
+       * bindings/tcl/tclrrd.c, configure.ac, src/parsetime.c,
+         src/rrd_cgi.c, src/rrd_create.c, src/rrd_nan_inf.c: * fixed
+         madvise/fadvise detection * fixed many compiler warnings -- Peter
+         Breitenlohner peb mppmu.mpg.de
 
-------------------------------------------------------------------------
-r1372 | oetiker | 2008-05-19 23:14:36 +0200 | 5 lines
+2008-01-12 18:37  oetiker
 
-fixed python bindings:
-* info call isnnow aequivalent to rrdtool info (the same as in the perl and ruby bindings)
-* graphv and updatev calls added
+       * src/rrd_graph.c: weekday and time are too tight
 
+2008-01-04 22:53  oetiker
 
-------------------------------------------------------------------------
-r1371 | oetiker | 2008-05-19 00:11:56 +0200 | 3 lines
+       * src/rrd_gfx.c, src/rrd_graph.c: fontmap resolution was not
+         matching scaled_font resolution ... this killed layouting ... much
+         better now
 
-* document tabwidth option
-* fix \t -> tab expansion
+2008-01-03 21:30  oetiker
 
-------------------------------------------------------------------------
-r1370 | oetiker | 2008-05-18 17:39:41 +0200 | 2 lines
+       * doc/rrdgraph_examples.pod, doc/rrdgraph_graph.pod,
+         src/rrd_graph_helper.c: get rid of DASHED, only use dashes syntax.
+         less redundancy -- thomas.gutzler gmail.com
 
-ytr boundery checking ... this is from the GD days ... we don't need this anymore
+2008-01-02 22:11  oetiker
 
-------------------------------------------------------------------------
-r1369 | oetiker | 2008-05-18 17:11:52 +0200 | 2 lines
+       * CONTRIBUTORS, NEWS, doc/rrdgraph_examples.pod,
+         doc/rrdgraph_graph.pod, src/rrd_graph.c, src/rrd_graph.h,
+         src/rrd_graph_helper.c: support for dashed lines in graphs
 
-fix indenting
+2008-01-02 22:06  oetiker
 
-------------------------------------------------------------------------
-r1368 | oetiker | 2008-05-18 17:11:42 +0200 | 2 lines
+       * src/pngsize.c, src/rrd_graph.c: fix indenting
 
-pdf, svg and ps formats were not being created
+2008-01-02 22:06  oetiker
 
-------------------------------------------------------------------------
-r1366 | oetiker | 2008-05-18 15:06:44 +0200 | 1 line
+       * doc/Makefile.am: ignore errors with txt doc building
 
-prepare for the release of rrdtool-1.3rc4
-------------------------------------------------------------------------
-r1365 | oetiker | 2008-05-18 15:04:36 +0200 | 2 lines
+2007-12-11 23:41  oetiker
 
-fix year
+       * Makefile.am, doc/rrdbuild.pod: building the docs depends on the
+         presence of pod2man ... which does not seem to be installed
+         necessarily
 
-------------------------------------------------------------------------
-r1364 | oetiker | 2008-05-18 14:53:01 +0200 | 2 lines
+2007-12-08 22:15  oetiker
 
-PRINT returns from rrd_graph did not work due to an off by one error
+       * doc/rrdbuild.pod: added shared library locations into the docs
 
-------------------------------------------------------------------------
-r1363 | oetiker | 2008-05-18 10:42:18 +0200 | 2 lines
+2007-12-08 21:35  oetiker
 
-updated build instructions to latest libraries
+       * src/rrd_cgi.c: include stdlib since putenv is in there on solaris
 
-------------------------------------------------------------------------
-r1362 | oetiker | 2008-05-18 08:37:43 +0200 | 2 lines
+2007-12-08 16:57  oetiker
 
-improved handling of libintl issues
+       * configure.ac, doc/rrdbuild.pod, src/rrd_getopt.c: fixing solaris
+         portability * isinf and isnan definitions fixed * check if rt must
+         be linked * ordering must be read write in getopt * updated build
+         instructions
 
-------------------------------------------------------------------------
-r1360 | oetiker | 2008-05-16 14:29:42 +0200 | 1 line
+2007-11-26 20:12  oetiker
 
-prepare for the release of rrdtool-1.3rc3
-------------------------------------------------------------------------
-r1359 | oetiker | 2008-05-16 14:28:37 +0200 | 2 lines
+       * bindings/python/setup.py: fix libdir for python build
 
-added --no-header to documentation and fixed implementation 
+2007-11-21 10:51  oetiker
 
-------------------------------------------------------------------------
-r1358 | oetiker | 2008-05-16 14:20:05 +0200 | 2 lines
+       * configure.ac: fixed NetBSD spelling
 
-fixed dump_opt implementation
+2007-11-21 06:56  oetiker
 
-------------------------------------------------------------------------
-r1357 | oetiker | 2008-05-16 14:18:05 +0200 | 2 lines
+       * configure.ac: define bsd source to get access to chroot
 
-added no-header option to rrd_dump
+2007-11-21 06:47  oetiker
 
-------------------------------------------------------------------------
-r1356 | oetiker | 2008-05-16 14:07:58 +0200 | 2 lines
+       * bindings/perl-shared/Makefile.PL, configure.ac: make perlbuild
+         more portable
 
-fix handling of values <= zero for logarithmic display
+2007-11-20 22:22  oetiker
 
-------------------------------------------------------------------------
-r1354 | oetiker | 2008-05-16 00:39:55 +0200 | 1 line
+       * configure.ac: enable madvise defines in netbsd
 
-prepare for the release of rrdtool-1.3rc2
-------------------------------------------------------------------------
-r1353 | oetiker | 2008-05-16 00:39:09 +0200 | 1 line
+2007-11-20 00:08  oetiker
 
-prepare for the release of rrdtool-1.3rc2
-------------------------------------------------------------------------
-r1352 | oetiker | 2008-05-16 00:37:26 +0200 | 2 lines
+       * src/rrd_format.h, src/rrd_graph.c, src/rrd_nan_inf.c: remove last
+         traces of rrd_nan_inf.h fix handling of min==max where min < 0
 
-fix portability to mac osx and freebsd -- tobi
+2007-11-15 14:39  oetiker
 
-------------------------------------------------------------------------
-r1351 | oetiker | 2008-05-13 01:10:59 +0200 | 2 lines
+       * bindings/ruby/main.c, src/rrd.h, src/rrd_create.c, src/rrd_dump.c,
+         src/rrd_format.h, src/rrd_graph.c, src/rrd_hw.c, src/rrd_info.c,
+         src/rrd_open.c, src/rrd_restore.c, src/rrd_tune.c,
+         src/rrd_update.c, src/rrd_xport.c: re-indented files that have
+         gone out of indent-style over the last few weeks
 
-add solaris pod2man location last
+2007-11-15 14:36  oetiker
 
-------------------------------------------------------------------------
-r1350 | oetiker | 2008-05-13 01:03:04 +0200 | 2 lines
+       * src/Makefile.am, src/rrd.h, src/rrd_nan_inf.h: integrate
+         rrd_nan_inf header
 
-some changes to make things work on opensolaris 2008.05
+2007-11-15 14:35  oetiker
 
-------------------------------------------------------------------------
-r1349 | oetiker | 2008-05-13 00:42:25 +0200 | 2 lines
+       * src/rrd_open.c: Improve layout of documentation. -- Bernhard
+         Fischer
 
-for some reason tclrrd.c does not get picked up using $< at least on opensolaris
+2007-11-15 14:34  oetiker
 
-------------------------------------------------------------------------
-r1348 | oetiker | 2008-05-13 00:23:19 +0200 | 3 lines
+       * src/rrd_update.c: * rrd_update(): Unify error path. *
+         parse_template(): Likewise. * allocate_data_structures(): Make
+         error strings use consistent punctuation. -- bernhard fischer
 
-allow rrd_rpncalc to build without cairo dependencies ...
-fix warnings
+2007-11-15 14:32  oetiker
 
-------------------------------------------------------------------------
-r1346 | oetiker | 2008-05-12 23:14:12 +0200 | 2 lines
+       * src/pngsize.c: make sure this compiles with aix
 
-add intltool*in files to dist
+2007-11-08 10:16  oetiker
 
-------------------------------------------------------------------------
-r1345 | oetiker | 2008-05-12 18:15:25 +0200 | 2 lines
+       * NEWS, bindings/ruby/main.c, doc/rrdruby.pod: fixed start end time
+         in ruby fetch and added step size -- Mike Perham mperham gmail
 
-fixed indenting
+2007-11-06 21:27  oetiker
 
-------------------------------------------------------------------------
-r1344 | oetiker | 2008-05-12 18:15:02 +0200 | 2 lines
+       * doc/rrdbuild.pod: updated build instructions
 
-removed c++ comments // 
+2007-11-04 21:56  oetiker
 
-------------------------------------------------------------------------
-r1343 | oetiker | 2008-05-12 18:09:02 +0200 | 2 lines
+       * bindings/perl-piped/RRDp.pm: handle errors properly ... in RRDp
+         read call
 
-added notes about rewrites in this release
+2007-09-16 15:35  oetiker
 
-------------------------------------------------------------------------
-r1342 | oetiker | 2008-05-12 18:08:40 +0200 | 2 lines
+       * src/rrd_open.c: no reason to die when posixfadvise is not
+         sucessful
 
-improved handling of library versioning
+2007-09-11 06:28  oetiker
 
-------------------------------------------------------------------------
-r1341 | oetiker | 2008-05-12 17:35:40 +0200 | 2 lines
+       * doc/rrdcreate.pod, doc/rrdtune.pod, src/rrd_create.c,
+         src/rrd_dump.c, src/rrd_format.h, src/rrd_hw.c, src/rrd_info.c,
+         src/rrd_restore.c, src/rrd_tune.c: Allow to the the smoothing
+         window size other thatn the default 5%. -- Evan Miller emiller
+         imvu.com
 
-should not leave debug enabled
+2007-09-11 06:16  oetiker
 
-------------------------------------------------------------------------
-r1340 | oetiker | 2008-05-12 17:33:31 +0200 | 10 lines
+       * configure.ac, src/rrd_open.c: added msync before unmap
 
-Fixed handling of unknown data at PDP build time. There was a long standing
-(even documented) missfeature in rrdtool which caused uknown-data to be
-accepted as long as it was less than the mrhb. This was never the intended
-behaviour and had interesting side effects
-(http://oss.oetiker.ch/rrdtool-trac/ticket/125): If you have a 60 Second
-step with 59s unknown data and 1 second of known data the whole become known
-data as long as the mrhb was > step. The intended behaviour was that a step
-should become unknown as soon as it contains more than 50% of unknown data.
-The patch fixes both the documentation and the code.
+2007-09-08 05:23  oetiker
 
-------------------------------------------------------------------------
-r1339 | oetiker | 2008-05-12 15:22:26 +0200 | 2 lines
+       * CONTRIBUTORS, doc/rrdgraph_rpn.pod, src/rrd_graph.c,
+         src/rrd_graph.h: added STDEV aggregation function for VDEF. --
+         Patrick J Cherry patrick bytemark.co.uk
 
-the last_ds value fuer unknown is 'U' and not 'UNKN'
+2007-09-07 22:53  oetiker
 
-------------------------------------------------------------------------
-r1338 | oetiker | 2008-05-04 20:59:20 +0200 | 2 lines
+       * Makefile.am, examples/Makefile.am, examples/perftest.pl.in: a few
+         leanups -- Bernhard Fischer
 
-fix for sun sudio 11 incompatibility http://www.netbsd.org/cgi-bin/query-pr-single.pl?number=38555
+2007-09-06 09:06  oetiker
 
-------------------------------------------------------------------------
-r1335 | oetiker | 2008-05-02 01:23:35 +0200 | 1 line
+       * src/rrd_open.c: added missing ;
 
-indenting fixes
-------------------------------------------------------------------------
-r1334 | oetiker | 2008-05-02 01:23:25 +0200 | 1 line
+2007-09-06 08:42  oetiker
 
-make sure properties are shown via graph_v even in --graph-only mode
-------------------------------------------------------------------------
-r1333 | oetiker | 2008-05-01 08:56:32 +0200 | 2 lines
+       * src/rrd_open.c: * mimic write() and read() even better -- Bernhard
+         Fischer
 
-Make the MakeMakefile script a bit more robust
+2007-09-06 08:40  oetiker
 
-------------------------------------------------------------------------
-r1332 | oetiker | 2008-04-22 23:40:45 +0200 | 2 lines
+       * src/rrd_open.c: rrd_open.c (rrd_read): Mimicing read() behaviour
+         for EOF case and NULL buffer case. -- Bernhard Fischer
 
-fix for #148
+2007-09-02 16:55  oetiker
 
-------------------------------------------------------------------------
-r1331 | oetiker | 2008-04-21 00:46:39 +0200 | 7 lines
+       * doc/rrdgraph_graph.pod: fixed speling of horizon
 
-Introduced a alternated interface to rrd_graph using rrd_info style return
-values: rrd_graph_v The graph_v interface returnes additional information
-about the graph including the location of the graphing area within the
-image. When called with '-' as filename it will even return the image data.
-The new interface is supported in the rrdtool command line, RRDs perl and
-ruby bindings.
+2007-08-29 06:43  oetiker
 
-------------------------------------------------------------------------
-r1329 | oetiker | 2008-04-17 07:35:16 +0200 | 2 lines
+       * examples/perftest.pl.in: a better performance tester
 
-indent fix
+2007-08-16 07:31  oetiker
 
-------------------------------------------------------------------------
-r1328 | oetiker | 2008-04-17 07:35:01 +0200 | 2 lines
+       * doc/rrdgraph_examples.pod: added holt winters example back into
+         the examples documentation
 
-do not reset the last_ds store unless the data source type is actually changed.
+2007-08-14 21:59  oetiker
 
-------------------------------------------------------------------------
-r1327 | oetiker | 2008-04-16 17:50:59 +0200 | 2 lines
+       * src/rrd_update.c: Fix for HoltWinters phase-shift bug described
+         below. When one or more primary data point times were missed, the
+         SEASONAL and DEVSEASONAL archives were marked as being up-to-date,
+         so that they would not be written to. It was correct not to write
+         to these archives, but the code failed to advance the pointers
+         within the SEASONAL and DEVSEASONAL archives so that future
+         updates would go to the correct location in the archives. Rather
+         than mark these archives as up-to-date (by setting
+         rra_step_cnt[rra_idx] = 0), my patch allocates a new "skip_update"
+         array that is set to 1 for SEASONAL and DEVSEASONAL archives that
+         have missed one or more primary data points. When an RRA is
+         written to, the cur_row pointer advancement happens for all
+         archives, but the skip_update array is checked just before
+         actually writing out the changes. Please give it a whirl! -- Evan
+         Miller emiller imvu.com
 
-fixed 2. x-grid example ... since the lable is valid for the whole day, it must be 86400 wide. --tobi
+2007-08-13 20:06  oetiker
 
-------------------------------------------------------------------------
-r1324 | oetiker | 2008-04-12 11:29:10 +0200 | 2 lines
+       * src/rrd_update.c: Refactored rrd_update code in preparation of
+         finding the HW update problem -- Evan Miller
 
-alter order of header inclusion for FreeBSD 4.8 compatibility
+2007-08-07 15:02  oetiker
 
-------------------------------------------------------------------------
-r1323 | oetiker | 2008-04-12 11:21:31 +0200 | 3 lines
+       * doc/rrdbuild.pod: updated build instructions for 1.3
 
-do not mess with dst status after running localtime, the system gets confused otherwhise when it comes to times during the switch over periode as DST changes to non DST.
--- tobi
+2007-08-03 19:46  oetiker
 
-------------------------------------------------------------------------
-r1322 | oetiker | 2008-03-26 00:02:32 +0100 | 2 lines
+       * svn2cl.xsl: prepare for the release of rrdtool-1.2.99907080300
 
-added missing " escapes to xml header in rrd_tool.c
+2007-08-03 19:45  oetiker
 
-------------------------------------------------------------------------
-r1321 | oetiker | 2008-03-25 23:59:49 +0100 | 2 lines
+       * libraries, src/DejaVuSansMono-Roman.ttf, src/VeraMono.ttf: remove
+         some things we do not need anymore in 1.3
 
-added Florian octo Forster to contrib list
+2007-08-03 19:43  oetiker
 
-------------------------------------------------------------------------
-r1320 | oetiker | 2008-03-25 23:59:30 +0100 | 2 lines
+       * bindings/perl-piped/RRDp.pm, bindings/perl-shared/RRDs.pm,
+         doc/rrdbuild.pod, rrdtool.spec, src/pngsize.c, src/rrd.h,
+         src/rrd_cgi.c, src/rrd_create.c, src/rrd_datalang.c,
+         src/rrd_diff.c, src/rrd_dump.c, src/rrd_error.c, src/rrd_fetch.c,
+         src/rrd_first.c, src/rrd_format.c, src/rrd_format.h,
+         src/rrd_gfx.c, src/rrd_graph.c, src/rrd_graph_helper.c,
+         src/rrd_hw.c, src/rrd_hw.h, src/rrd_info.c,
+         src/rrd_is_thread_safe.h, src/rrd_last.c, src/rrd_lastupdate.c,
+         src/rrd_not_thread_safe.c, src/rrd_open.c, src/rrd_resize.c,
+         src/rrd_restore.c, src/rrd_rpncalc.c, src/rrd_rpncalc.h,
+         src/rrd_thread_safe.c, src/rrd_thread_safe_nt.c, src/rrd_tool.c,
+         src/rrd_tool.h, src/rrd_tune.c, src/rrd_update.c,
+         src/rrd_version.c, src/rrd_xport.c, src/rrd_xport.h,
+         src/rrdupdate.c: prepare for the release of
+         rrdtool-1.2.99907080300
 
-added missing =back for propper pod syntax
+2007-08-03 19:43  oetiker
 
-------------------------------------------------------------------------
-r1319 | oetiker | 2008-03-25 23:58:16 +0100 | 2 lines
+       * configure.ac, rrdtool-1.3-release: prepare for 1.3 beta 1
 
-fix indent
+2007-08-03 19:26  oetiker
 
-------------------------------------------------------------------------
-r1318 | oetiker | 2008-03-25 23:58:08 +0100 | 2 lines
+       * src/Makefile.am: continue with the revision numbering
 
-fix broken header comment section -- Florian octo Forster
+2007-08-03 19:17  oetiker
 
-------------------------------------------------------------------------
-r1317 | oetiker | 2008-03-25 23:57:42 +0100 | 2 lines
+       * doc/rrdgraph_graph.pod: added notes on pango inline formatting
 
-cast size_t to int to avoid warning -- Florian octo Forster
+2007-08-01 15:29  oetiker
 
-------------------------------------------------------------------------
-r1316 | oetiker | 2008-03-25 23:56:41 +0100 | 2 lines
+       * src/rrd_graph.c: only release cairo stuff if we ever initialized
+         it.
 
-do not declare DEBUG functions unless compiled in DEBUG mode -- Florian octo Forster
+2007-08-01 15:28  oetiker
 
-------------------------------------------------------------------------
-r1315 | oetiker | 2008-03-25 23:55:56 +0100 | 2 lines
+       * src/rrd_xport.c: fix for 64bit portability problem ... unsigned
+         long is not int
 
-make helptexts read only memory
+2007-07-31 04:53  oetiker
 
-------------------------------------------------------------------------
-r1314 | oetiker | 2008-03-25 23:55:13 +0100 | 2 lines
+       * bindings/ruby/main.c: reindented
 
-stop complaints about unused variables if not running DEBUG
+2007-07-25 20:38  oetiker
 
-------------------------------------------------------------------------
-r1313 | oetiker | 2008-03-25 23:49:47 +0100 | 5 lines
+       * src/rrd_create.c, src/rrd_dump.c, src/rrd_fetch.c,
+         src/rrd_format.h, src/rrd_graph.c, src/rrd_graph_helper.c,
+         src/rrd_open.c, src/rrd_restore.c, src/rrd_rpncalc.c,
+         src/rrd_tool.h, src/rrd_tune.c: fixed indenting
 
-Added check for intltool version.
-Use Makefile for cleanup.
--- Florian octo Forster
+2007-07-25 20:38  oetiker
 
+       * src/rrd_update.c: make sure we check input even when the previous
+         update was a 'U' ... and some indenting fixes
 
-------------------------------------------------------------------------
-r1311 | oetiker | 2008-03-23 14:43:22 +0100 | 2 lines
+2007-07-22 15:51  oetiker
 
-added pointer to florian forsters dtd to the rrd dumpt
+       * src/rrd_format.h: new consolidation functions must be added last
+         or this will break binary compatibility
 
-------------------------------------------------------------------------
-r1310 | oetiker | 2008-03-20 00:36:26 +0100 | 2 lines
+2007-07-22 15:50  oetiker
 
-fix pkgconfig file name
+       * src/rrd_update.c: don't force data out ... let cache management do
+         this
 
-------------------------------------------------------------------------
-r1306 | oetiker | 2008-03-15 11:39:48 +0100 | 3 lines
+2007-07-22 09:47  oetiker
 
-reindent
-aded id keyword substitution
+       * NEWS, src/rrd_create.c, src/rrd_dump.c, src/rrd_format.h,
+         src/rrd_restore.c: Only create version 4 rrd files if the new
+         holtwinters MHW.. CF is used.
 
-------------------------------------------------------------------------
-r1305 | oetiker | 2008-03-15 11:32:10 +0100 | 2 lines
+2007-07-21 19:55  oetiker
 
-reat nan as FALSE in an IF CDEF
+       * src/rrd_open.c: * remove some experimental code from rrd_open *
+         rrd_dontneed will release all data except for header blocks and
+         RRA hot blocks which are going to be updated withing 10 minutes.
 
-------------------------------------------------------------------------
-r1303 | oetiker | 2008-03-07 09:57:01 +0100 | 10 lines
+2007-07-21 19:53  oetiker
 
-a nan-safe add operator (ADDNAN) into rrd. I used it to add several incomplete graphs.
+       * src/rrd_fetch.c: for now, do not release fetched data ... in the
+         future we may call rrd_dontneed and let the users decied with an
+         option if they want to keep the data in cache ...
 
-NaN + NaN => NaN
- x + NaN => x
- NaN + y => y
- x + y => x + y
+2007-07-21 19:52  oetiker
 
--- Timo Stripf tstripf gmx.de
+       * src/Makefile.am: the fonts are now taken from the system. we do
+         not distribute them anympore
 
+2007-07-21 19:37  oetiker
 
-------------------------------------------------------------------------
-r1301 | oetiker | 2008-03-02 16:38:05 +0100 | 2 lines
+       * NEWS: not on update rrd version
 
-Fix error "cairo_restore without matching cairo_save" when zero-time point is out of graph
+2007-07-20 22:20  oetiker
 
-------------------------------------------------------------------------
-r1300 | oetiker | 2008-02-25 08:11:00 +0100 | 2 lines
+       * src/rrd_format.h: we have a new holtwinders aggregation fucntion,
+         so we have a new version ...
 
-Ignore RRA-end when comparing. coverage.
+2007-07-20 22:19  oetiker
 
-------------------------------------------------------------------------
-r1298 | oetiker | 2008-02-24 15:27:34 +0100 | 2 lines
+       * configure.ac: check for fadvise all the time
 
-fix indents gone out of kileter by patching ... 
+2007-07-20 22:16  oetiker
 
-------------------------------------------------------------------------
-r1297 | oetiker | 2008-02-24 15:26:46 +0100 | 2 lines
+       * doc/rrdcreate.pod: better docs on the aggregate functions
 
-get rid of a few type cast warnings
+2007-07-18 22:02  oetiker
 
-------------------------------------------------------------------------
-r1296 | oetiker | 2008-02-24 15:26:16 +0100 | 2 lines
+       * NEWS: added note on locale
 
-fix one segfault while trying to restore an invalid xml file. -- tobi
+2007-07-18 21:59  oetiker
 
-------------------------------------------------------------------------
-r1294 | oetiker | 2008-02-21 08:20:49 +0100 | 2 lines
+       * src/rrd_graph_helper.c: some more piechart removed
 
-make ruby obey destdir
+2007-07-18 21:47  oetiker
 
-------------------------------------------------------------------------
-r1293 | oetiker | 2008-02-21 08:18:58 +0100 | 2 lines
+       * src/rrd_create.c, src/rrd_graph.c, src/rrd_rpncalc.c,
+         src/rrd_tune.c, src/rrd_update.c: make sure all ascii to float
+         parsing uses LC_NUMERIC = C so that we do not stuble on locales
+         confusing the , with a .
 
-initial
+2007-07-18 00:30  oetiker
 
-------------------------------------------------------------------------
-r1292 | oetiker | 2008-02-21 08:12:27 +0100 | 2 lines
+       * src/rrd_create.c, src/rrd_open.c, src/rrd_tool.h,
+         src/rrd_update.c: * rrd_open: rrd_close does not purge file from
+         cache * rrd_open: new function rrd_dontneed for purging un-needed
+         pages from core * rrd_open: in linux at least only fadivse
+         DONTNEED has the power to purge pages from cache, so letst call
+         madvise as well as fadvise * rrd_create: uses open/write/close
+         now, flushes file to disk and keeps only hot pages in core *
+         rrd_update: keeps only hot pages in core * configure enables
+         FADVISE even when mmap is in use
 
-make inbternationalized version actually build
+2007-07-17 21:46  oetiker
 
-------------------------------------------------------------------------
-r1291 | oetiker | 2008-02-21 07:59:19 +0100 | 2 lines
+       * src/rrd_open.c, src/rrd_resize.c: added comment on float cookie
 
-added missing bits from internationalization
+2007-07-16 06:37  oetiker
 
-------------------------------------------------------------------------
-r1290 | oetiker | 2008-02-19 13:56:44 +0100 | 12 lines
+       * bindings/ruby/main.c: fix for fetch in ruby bindings and support
+         for info added.
 
-Generate a random cur_row for each RRA during
-create/restore operations. This effectively randomizes the block crossings
-among RRDs created around the same time. Previously, RRDs that were
-created/restored en masse would cross block boundaries simultaneously, which
-is sub-optimal.
+2007-07-12 20:33  oetiker
 
-Also, this patch enables the user to see the RRA's cur_row pointer via
-rrdinfo. This was useful during debugging.
+       * doc/rrdtutorial.pod: improve wording
 
--- kevin brintnall kbrint qwest.net
+2007-07-12 20:33  oetiker
 
+       * configure.ac: fix tcl build settup
 
-------------------------------------------------------------------------
-r1289 | oetiker | 2008-02-18 16:04:42 +0100 | 2 lines
+2007-07-11 23:08  oetiker
 
-Added I18N support for messages printed by rrd_tool.c -- http://oss.oetiker.ch/rrdtool-trac/ticket/144
+       * src/rrd_create.c: usr rrd_free for freeing the rrd structs ...
+         vito caputo
 
-------------------------------------------------------------------------
-r1285 | oetiker | 2008-02-15 09:49:07 +0100 | 2 lines
+2007-07-05 15:19  oetiker
 
-check for pdf as well
+       * src/rrd_graph_helper.c: prevent potential segfaults on boxes where
+         time_t is not long
 
-------------------------------------------------------------------------
-r1284 | oetiker | 2008-02-15 09:44:04 +0100 | 2 lines
+2007-06-18 18:25  oetiker
 
-check for cairo-ps and cairo-svg explicitly
+       * src/rrd_cgi.c, src/rrd_graph.c, src/rrd_tune.c, src/rrd_xport.c:
+         fix indentation
 
-------------------------------------------------------------------------
-r1280 | oetiker | 2008-02-06 01:12:27 +0100 | 2 lines
+2007-06-18 16:05  oetiker
 
-ready for beta 4
+       * configure.ac, src/parsetime.c, src/rrd_cgi.c, src/rrd_create.c,
+         src/rrd_fetch.c, src/rrd_first.c, src/rrd_getopt.c,
+         src/rrd_getopt1.c, src/rrd_graph.c, src/rrd_open.c,
+         src/rrd_restore.c, src/rrd_thread_safe.c, src/rrd_tune.c,
+         src/rrd_update.c, src/rrd_xport.c: Bernhard Fischer: - move
+         several static struct option out of loops and makes them
+         non-static - moves some functions from old-style definitions into
+         new-style definitions
 
-------------------------------------------------------------------------
-r1279 | oetiker | 2008-02-06 01:10:33 +0100 | 4 lines
+2007-06-16 23:20  oetiker
 
-* replaced strtok with strtok_r for thread safety
-* fixed im initialization broken after the introduction of dashes ...
+       * CONTRIBUTORS: Bernhard is not Benrard
 
+2007-06-15 21:49  oetiker
 
-------------------------------------------------------------------------
-r1278 | oetiker | 2008-02-04 23:34:56 +0100 | 2 lines
+       * NEWS: notes on evans contribs
 
-in rrd_create we do not use mmaping and thus need to free rrd struct members in any case ... 
+2007-06-15 21:41  oetiker
 
-------------------------------------------------------------------------
-r1277 | oetiker | 2008-02-04 23:16:14 +0100 | 2 lines
+       * rrdtool.spec: rrdtool.spec from Jarod "redhat" Wilson
 
-this should help with the memory leak
+2007-06-15 08:09  oetiker
 
-------------------------------------------------------------------------
-r1276 | oetiker | 2008-02-04 19:18:07 +0100 | 2 lines
+       * CONTRIBUTORS: updated contributors
 
-added zpl 2.1 to floss exception
+2007-06-15 08:01  oetiker
 
-------------------------------------------------------------------------
-r1274 | oetiker | 2008-02-01 07:52:56 +0100 | 2 lines
+       * NEWS: added note on TEXTALIGN
 
-fixed parsing of fontnames with embeded spaces
+2007-06-15 07:59  oetiker
 
-------------------------------------------------------------------------
-r1272 | oetiker | 2008-01-14 18:11:50 +0100 | 2 lines
+       * doc/rrdcreate.pod, doc/rrdtune.pod, src/Makefile.am,
+         src/rrd_create.c, src/rrd_dump.c, src/rrd_format.c,
+         src/rrd_format.h, src/rrd_graph.c, src/rrd_hw.c,
+         src/rrd_hw_math.c, src/rrd_hw_math.h, src/rrd_hw_update.c,
+         src/rrd_hw_update.h, src/rrd_info.c, src/rrd_restore.c,
+         src/rrd_tune.c, src/rrd_update.c: There are two popular variants
+         of the Holt-Winters forecasting method; RRDtool supports the
+         "additive" method, which means that seasonal variation is simply
+         added to the baseline. For our application, it would be more
+         appropriate to use the "multiplicative" Holt-Winters method, where
+         seasonal variation is a coefficient multiplied by the baseline.
+         Quick example to illustrate the difference: if the average doubles
+         season-over-season, the additive method would predict the delta
+         between min and max to be constant, whereas the multiplicative
+         method would predict the delta to double as well. Attached is a
+         patch against trunk to support the multiplicative method. I've
+         done this with a new consolidation function, MHWPREDICT, which is
+         essentially interchangeable with HWPREDICT. There is a noticeable
+         improvement in prediction deviations for certain types of
+         functions; the attachments show HWPREDICT and MHWPREDICT
+         predictions for a function with an x*sin(x) component. Because
+         HWPREDICT and MHWPREDICT differ only in their equations, I've
+         factored out their math into rrd_hw_math.c. The appropriate
+         smoothing functions are passed to the update functions in a
+         container of function pointers, which are called where
+         appropriate. Thus the additive and multiplicative methods use the
+         same update functions, and the right equations are evaluated
+         without having flag checks everywhere. This approach, I think,
+         makes the algorithms quite clear, with minimal duplicate code. I
+         have moved update_hwpredict, update_seasonal, update_devpredict,
+         update_devseasonal, and update_failures into a separate file,
+         rrd_hw_update.c, with some slight refactoring related to
+         rrd_hw_math.c. I ran some regression tests against trunk to make
+         sure I didn't break anything with the existing HWPREDICT code.
+         MHWPREDICT uses the same deviation smoothing and failure detection
+         algorithms as HWPREDICT. Some helpful references on the
+         multiplicative Holt-Winters method:
+         http://www.it.iitb.ac.in/~praj/acads/seminar/04329008_ExponentialSmoothing.pdf
+         (a student's quick overview of additive vs. multiplicative HW)
+         http://ideas.repec.org/p/msh/ebswps/1999-1.html (paper on
+         variations to the multiplicative Holt-Winters, including variance
+         calculations; FYI, my implementation uses "Model 1") My employer
+         and the owner of this patch (IMVU, Inc.) is happy to license it
+         under the same terms as RRDtool, i.e. give it to the project. --
+         Evan Miller emiller imvu.com
 
-remove c++ warnings flag .. this is not c++ after all
+2007-06-15 06:43  oetiker
 
-------------------------------------------------------------------------
-r1271 | oetiker | 2008-01-14 17:52:49 +0100 | 2 lines
+       * src/rrd.h: oops missed to update the in memory output interface
+         here
 
-fixed indenting
+2007-06-15 06:28  oetiker
 
-------------------------------------------------------------------------
-r1270 | oetiker | 2008-01-14 17:51:42 +0100 | 2 lines
+       * src/rrd.h, src/rrd_graph.c, src/rrd_graph.h: added interface to
+         get rendered image via a pointer to allocated memory ... Evan
+         Miller emmiller gmail.com
 
-fix indents
+2007-06-15 06:12  oetiker
 
-------------------------------------------------------------------------
-r1269 | oetiker | 2008-01-14 17:50:51 +0100 | 5 lines
+       * configure.ac: improve fontnaming
 
-* fixed madvise/fadvise detection
-* fixed many compiler warnings
--- Peter Breitenlohner peb mppmu.mpg.de
+2007-06-14 20:30  oetiker
 
+       * bindings/ruby/main.c, src/rrd_graph.c, src/rrd_graph_helper.c,
+         src/rrd_rpncalc.c: fixed indentation
 
-------------------------------------------------------------------------
-r1266 | oetiker | 2008-01-12 19:37:10 +0100 | 1 line
+2007-06-14 20:28  oetiker
 
-weekday and time are too tight
-------------------------------------------------------------------------
-r1264 | oetiker | 2008-01-04 23:53:46 +0100 | 2 lines
+       * doc/rrdgraph_graph.pod, src/rrd_graph.c, src/rrd_graph.h,
+         src/rrd_graph_helper.c: added TEXTALIGN command to change the
+         default text alignment
 
-fontmap resolution was not matching scaled_font resolution ... this killed layouting ... much better now
+2007-06-13 16:53  oetiker
 
-------------------------------------------------------------------------
-r1263 | oetiker | 2008-01-03 22:30:59 +0100 | 2 lines
+       * bindings/tcl/Makefile.am, bindings/tcl/tclrrd.c: fixed tcl
+         includes
 
-get rid of DASHED, only use dashes syntax. less redundancy -- thomas.gutzler gmail.com
+2007-06-13 16:51  oetiker
 
-------------------------------------------------------------------------
-r1262 | oetiker | 2008-01-02 23:11:26 +0100 | 2 lines
+       * bindings/ruby/main.c: be more helpful when raising rb_eTypeError
+         in string_arr string_arr_new(VALUE rb_strings). This patch
+         indicates which index is in error as well as the type you are
+         erroneously passing. -- anonymous
 
-support for dashed lines in graphs
+2007-06-12 20:36  oetiker
 
-------------------------------------------------------------------------
-r1261 | oetiker | 2008-01-02 23:06:24 +0100 | 2 lines
+       * src/rrd_update.c: Bernhard Fischer: - fix nulling the updvals -
+         cosmetic change to move the option struct out of the loop. - need
+         to operate on a copy of optarg
 
-fix indenting
+2007-06-11 19:45  oetiker
 
-------------------------------------------------------------------------
-r1260 | oetiker | 2008-01-02 23:06:16 +0100 | 2 lines
+       * doc/rrdgraph_rpn.pod, src/rrd_rpncalc.c, src/rrd_rpncalc.h: added
+         TRENDNAN function -- Timo Stripf
 
-ignore errors with txt doc building
+2007-06-11 19:45  oetiker
 
-------------------------------------------------------------------------
-r1255 | oetiker | 2007-12-12 00:41:21 +0100 | 2 lines
+       * src/rrd_graph.c: allow output to stdout -- Timo Stripf
 
-building the docs depends on the presence of pod2man ... which does not seem to be installed necessarily
+2007-06-11 16:49  oetiker
 
-------------------------------------------------------------------------
-r1253 | oetiker | 2007-12-08 23:15:22 +0100 | 2 lines
+       * NEWS: added more news
 
-added shared library locations into the docs
+2007-06-11 16:34  oetiker
 
-------------------------------------------------------------------------
-r1252 | oetiker | 2007-12-08 22:35:51 +0100 | 2 lines
+       * doc/rrdgraph.pod, src/rrd_graph.c: fixed indentation, added
+         documentation note on gridfitting.
 
-include stdlib since putenv is in there on solaris
+2007-06-11 16:33  oetiker
 
-------------------------------------------------------------------------
-r1251 | oetiker | 2007-12-08 17:57:04 +0100 | 6 lines
+       * src/rrd_graph.c: fix arrow locations
 
-fixing solaris portability
-* isinf and isnan definitions fixed
-* check if rt must be linked
-* ordering must be read write in getopt
-* updated build instructions
+2007-06-11 16:20  oetiker
 
-------------------------------------------------------------------------
-r1247 | oetiker | 2007-11-26 21:12:11 +0100 | 2 lines
+       * src/rrd_graph.c: disable gridfitting for vector formats
 
-fix libdir for python build
+2007-06-11 16:14  oetiker
 
-------------------------------------------------------------------------
-r1244 | oetiker | 2007-11-21 11:51:48 +0100 | 2 lines
+       * src/rrd_graph.c, src/rrd_graph.h: make pdf output work
 
-fixed NetBSD spelling
+2007-06-11 15:32  oetiker
 
-------------------------------------------------------------------------
-r1241 | oetiker | 2007-11-21 07:56:19 +0100 | 2 lines
+       * NEWS: added detail
 
-define bsd source to get access to chroot
+2007-06-11 15:11  oetiker
 
-------------------------------------------------------------------------
-r1240 | oetiker | 2007-11-21 07:47:17 +0100 | 2 lines
+       * NEWS, configure.ac, doc/rrdgraph.pod, src/Makefile.am,
+         src/rrd_gfx.c, src/rrd_gfx.h, src/rrd_graph.c, src/rrd_graph.h,
+         src/rrd_graph_helper.c: --font-render-mode is back, and there is
+         also --graph-render-mode now. It allows to enable mono graphs that
+         look strikingly like rrdtool 1.0.x --tobi
 
-make perlbuild more portable
+2007-06-11 13:36  oetiker
 
-------------------------------------------------------------------------
-r1238 | oetiker | 2007-11-20 23:22:31 +0100 | 2 lines
+       * NEWS, src/rrd_update.c: Bernhard Fischer: - NEWS mention the new
+         file accessors - rrd_update.c: remove unused some cruft
 
-enable madvise defines in netbsd
+2007-06-11 10:09  oetiker
 
-------------------------------------------------------------------------
-r1234 | oetiker | 2007-11-20 01:08:20 +0100 | 3 lines
+       * src/rrd_update.c: Bernhard Fischer: - fix maintaining our file-pos
+         when we have to wrap the rra_ptr in update(). - no need to update
+         the header-data a second time for the mmap case.
 
-remove last traces of rrd_nan_inf.h
-fix handling of min==max where min < 0
+2007-06-11 00:23  oetiker
 
-------------------------------------------------------------------------
-r1228 | oetiker | 2007-11-15 15:39:56 +0100 | 2 lines
+       * NEWS: updated news
 
-re-indented files that have gone out of indent-style over the last few weeks
+2007-06-11 00:22  oetiker
 
-------------------------------------------------------------------------
-r1227 | oetiker | 2007-11-15 15:36:39 +0100 | 2 lines
+       * configure.ac, doc/rrdgraph.pod, src/Makefile.am: * added some
+         documentation * updated version number
 
-integrate rrd_nan_inf header
+2007-06-10 23:55  oetiker
 
-------------------------------------------------------------------------
-r1226 | oetiker | 2007-11-15 15:35:15 +0100 | 2 lines
+       * acinclude.m4, configure.ac, src/Makefile.am, src/art_rgba_svp.c,
+         src/art_rgba_svp.h, src/rrd_afm.c, src/rrd_afm.h,
+         src/rrd_afm_data.c, src/rrd_afm_data.h, src/rrd_gfx.c,
+         src/rrd_gfx.h, src/rrd_graph.c, src/rrd_graph.h,
+         src/rrd_graph_helper.c: switched graphics library from arts to
+         cairo+pango
 
-Improve layout of documentation. -- Bernhard Fischer
+2007-06-04 11:15  oetiker
 
-------------------------------------------------------------------------
-r1225 | oetiker | 2007-11-15 15:34:14 +0100 | 5 lines
+       * configure.ac, src/Makefile.am: Bernhard Fischer: - new configure
+         option --enable-static-programs
 
-*  rrd_update(): Unify error path.
-*  parse_template(): Likewise.
-*  allocate_data_structures(): Make error strings use consistent punctuation.
--- bernhard fischer
+2007-06-01 19:11  oetiker
 
-------------------------------------------------------------------------
-r1224 | oetiker | 2007-11-15 15:32:37 +0100 | 2 lines
+       * src/rrd_open.c, src/rrd_resize.c: Bernhard: - implement resize
+         SHRINK for FD (mmap is to be done) - indent
 
-make sure this compiles with aix
+2007-06-01 17:59  oetiker
 
-------------------------------------------------------------------------
-r1213 | oetiker | 2007-11-08 11:16:27 +0100 | 2 lines
+       * src/rrd_graph.c: --full-size-mode with and without --no-legend
+         should work now -- Matthew Chambers
 
-fixed start end time in ruby fetch and added step size -- Mike Perham mperham gmail
+2007-06-01 17:35  oetiker
 
-------------------------------------------------------------------------
-r1211 | oetiker | 2007-11-06 22:27:52 +0100 | 2 lines
+       * src/rrd_open.c, src/rrd_resize.c: Bernhard - fill the file with
+         DNAN and add the remaining data in after the fact ...
 
-updated build instructions
+2007-06-01 17:34  oetiker
 
-------------------------------------------------------------------------
-r1209 | oetiker | 2007-11-04 22:56:19 +0100 | 2 lines
+       * src/rrd_open.c, src/rrd_resize.c: Bernhard Fischer - implement
+         resize, growing part. truncation is to be done.
 
-handle errors properly ... in RRDp read call 
+2007-06-01 09:10  oetiker
 
-------------------------------------------------------------------------
-r1204 | oetiker | 2007-09-16 17:35:11 +0200 | 2 lines
+       * src/rrd_cgi.c, src/rrd_graph_helper.c, src/rrd_open.c: Bernhard
+         Fischer - use 'z' length modifier when printing size_t - add a
+         cast to __rrd_read and document why it is there - add RANDOM hint
+         for the header
 
-no reason to die when posixfadvise is not sucessful
+2007-05-31 18:47  oetiker
 
-------------------------------------------------------------------------
-r1203 | oetiker | 2007-09-11 08:28:15 +0200 | 4 lines
+       * src/rrd_open.c: Bernhard: - plug tiny mem-leak in error path of
+         rrd_close where freeing the rrd_file was forgotten. - improve two
+         error messages - use CHECK_MADVISE_OVERLAPS per default
 
-Allow to the the smoothing window size other thatn the default 5%.
--- Evan Miller emiller imvu.com
+2007-05-30 19:56  oetiker
 
+       * src/rrd_open.c, src/rrd_update.c: fix rrd_write -- Bernhard
+         Fischer
 
-------------------------------------------------------------------------
-r1202 | oetiker | 2007-09-11 08:16:52 +0200 | 2 lines
+2007-05-30 12:41  oetiker
 
-added msync before unmap
+       * src/rrd_fetch.c, src/rrd_first.c, src/rrd_graph.c,
+         src/rrd_graph.h, src/rrd_info.c, src/rrd_lastupdate.c,
+         src/rrd_open.c, src/rrd_resize.c: fix indenting ... again
 
-------------------------------------------------------------------------
-r1201 | oetiker | 2007-09-08 07:23:23 +0200 | 3 lines
+2007-05-30 12:39  oetiker
 
-added STDEV aggregation function for VDEF. -- Patrick J Cherry patrick bytemark.co.uk
+       * src/rrd_create.c, src/rrd_dump.c, src/rrd_fetch.c,
+         src/rrd_first.c, src/rrd_info.c, src/rrd_last.c,
+         src/rrd_lastupdate.c, src/rrd_open.c, src/rrd_resize.c,
+         src/rrd_tune.c, src/rrd_update.c: From Bernhard Fischer -
+         rrd_close(): call close on the file and use rrd_close consistently
+         - clean up some error paths. The fadvise error path is leaking
+         memory (see XXX in these spots).
 
+2007-05-30 05:23  oetiker
 
-------------------------------------------------------------------------
-r1200 | oetiker | 2007-09-08 00:53:41 +0200 | 2 lines
+       * CONTRIBUTORS, doc/rrdgraph.pod, src/rrd_graph.c, src/rrd_graph.h:
+         switch for rrd_graph to specify the outer-size of the graph and
+         not just the size of the canvas: --full-size-mode --
+         matthew.chambers vanderbilt.edu
 
-a few leanups -- Bernhard Fischer
+2007-05-29 21:29  oetiker
 
-------------------------------------------------------------------------
-r1199 | oetiker | 2007-09-06 11:06:04 +0200 | 2 lines
+       * configure.ac, examples/perftest.pl.in, src/rrd_hw.c,
+         src/rrd_last.c, src/rrd_lastupdate.c, src/rrd_open.c,
+         src/rrd_resize.c, src/rrd_tool.c, src/rrd_tune.c,
+         src/rrd_update.c: More updates from Bernhard Fischer - flag
+         rrd_resize's old file with RRD_COPY - cleanup error-handling
+         pathes in rrd_update and fix a few typos in comments -
+         rrd_close(): implement printing mincore results for the rrd if
+         DEBUG=2 was defined - rrd_open(): madvise start addresses need to
+         be page-aligned; implement alternative path to the fine-grained
+         (i.e. exact) madvise by flagging just the first two pages as
+         needed (see TWO_PAGES). Implement alternative path that records
+         the last madvise()ed area to avoid redundant calls to madvise() on
+         identical areas (due to page-alignment constraints) -- see
+         CHECK_MADVISE_OVERLAPS. Implement path for USE_DIRECT_IO. -
+         configure: add check for O_DIRECT flag to open(2). Add option
+         --enable-direct-io. Add _GNU_SOURCE to CFLAGS to silence warnings
+         about chroot which is marked LEGACY since SUSv2 and is a non POSIX
+         extension. Make checks for posix_fadvise() dependant on
+         --disable-mmap, since we do not need fadvise for the mmap case.
 
-added missing ;
+2007-05-25 15:24  oetiker
 
-------------------------------------------------------------------------
-r1198 | oetiker | 2007-09-06 10:42:22 +0200 | 3 lines
+       * src/rrd_stat.c: tobis old cruft removal program ...
+
+2007-05-25 13:14  oetiker
+
+       * src/rrd_dump.c, src/rrd_fetch.c, src/rrd_open.c, src/rrd_resize.c,
+         src/rrd_update.c: updates from Bernhard Fischer rep dot nop gmail
+         com - add some more rrd_sterror calls to failure paths. - make
+         rrdtool updatev work like 1.2.23 (i.e. multiple values are still
+         broken, but at least updating a single value works; see
+         http://oss.oetiker.ch/rrdtool-trac/ticket/8) - indent touched
+         files.
 
-* mimic write() and read() even better -- Bernhard Fischer
+2007-05-25 13:12  oetiker
 
+       * .indent.pro, Makefile.am, configure.ac, examples/perftest.pl.in,
+         src/rrd_dump.c, src/rrd_fetch.c, src/rrd_open.c, src/rrd_resize.c,
+         src/rrd_tool.h, src/rrd_update.c: Updates from Bernhard Fischer
+         rep dot nop gmail com - fix typo in rrd_fetch where rrd_read
+         result was checked against an incorrect size. - in rrd_fetch, drop
+         rrd_head_size in favour of rrd_file->header_len - in rrd_fetch,
+         make the message "post fetch" unambiguous (now past vs. post). -
+         change usage of param rdwr of rrd_open: allow for RRD_READONLY,
+         RRD_READWRITE, RRD_CREAT, RRD_READAHEAD; adjust callers
+         accordingly: + rrd_resize needs CREAT + rrd_dump may want
+         READAHEAD - implement FD based I/O in rrd_open, rrd_read,
+         rrd_write, rrd_seek. - in rrd_update, unify write_RRA_row(). -
+         sort | uniq the -T in .indent.pro (info_t was duplicated) - add
+         stub of an option to use O_DIRECT to the configury - in
+         Makefile.am, simplify the "indent" invocation of find: My find may
+         not support "-o" resp. "-or" nor braces. Using -name "*.[ch]"
+         works everywhere, AFAIK.
+
+2007-05-24 08:26  oetiker
+
+       * configure.ac: use proper preprocessor directives for the
+         config-checks. -- tobi
+
+2007-05-24 07:21  oetiker
+
+       * configure.ac: fixed version number for development
+
+2007-05-24 06:16  oetiker
+
+       * .indent.pro, Makefile.am, bindings/python/rrd_extra.h,
+         bindings/python/rrdtoolmodule.c, bindings/ruby/main.c,
+         bindings/tcl/tclrrd.c, libraries/afm/test-afm.c, src/.indent.pro,
+         src/hash_32.c, src/parsetime.c, src/rrd.h, src/rrd_afm.c,
+         src/rrd_create.c, src/rrd_dump.c, src/rrd_fetch.c, src/rrd_gfx.c,
+         src/rrd_gfx.h, src/rrd_graph.c, src/rrd_graph_helper.c,
+         src/rrd_hw.c, src/rrd_hw.h, src/rrd_info.c, src/rrd_open.c,
+         src/rrd_rpncalc.c, src/rrd_rpncalc.h, src/rrd_tool.h,
+         src/rrd_update.c, src/rrd_xport.c, win32/config.h: indent all the
+         rest of the code, and add some typedefs to indent.pro there is now
+         a indent makefile target
+
+2007-05-23 21:40  oetiker
+
+       * src/gdpng.c: removed superfluouse code
+
+2007-05-23 21:39  oetiker
+
+       * src/.indent.pro: added more indenting rules
+
+2007-05-23 21:33  oetiker
+
+       * src/.indent.pro, src/art_rgba_svp.c, src/art_rgba_svp.h,
+         src/fnv.h, src/gdpng.c, src/hash_32.c, src/parsetime.c,
+         src/pngsize.c, src/rrd.h, src/rrd_afm.c, src/rrd_afm.h,
+         src/rrd_afm_data.c, src/rrd_afm_data.h, src/rrd_cgi.c,
+         src/rrd_create.c, src/rrd_diff.c, src/rrd_dump.c, src/rrd_error.c,
+         src/rrd_fetch.c, src/rrd_first.c, src/rrd_format.c,
+         src/rrd_format.h, src/rrd_getopt.c, src/rrd_getopt.h,
+         src/rrd_getopt1.c, src/rrd_gfx.c, src/rrd_gfx.h, src/rrd_graph.c,
+         src/rrd_graph.h, src/rrd_graph_helper.c, src/rrd_hw.c,
+         src/rrd_hw.h, src/rrd_info.c, src/rrd_is_thread_safe.h,
+         src/rrd_last.c, src/rrd_lastupdate.c, src/rrd_nan_inf.c,
+         src/rrd_nan_inf.h, src/rrd_not_thread_safe.c, src/rrd_open.c,
+         src/rrd_resize.c, src/rrd_restore.c, src/rrd_rpncalc.c,
+         src/rrd_rpncalc.h, src/rrd_stat.c, src/rrd_thread_safe.c,
+         src/rrd_thread_safe_nt.c, src/rrd_tool.c, src/rrd_tool.h,
+         src/rrd_tune.c, src/rrd_update.c, src/rrd_version.c,
+         src/rrd_xport.c, src/rrd_xport.h, src/rrdupdate.c, src/strftime.c,
+         src/strftime.h, src/win32comp.c: reindented everything according
+         to .indent.pro
+
+2007-05-23 20:57  oetiker
+
+       * .indent.pro, src/.indent.pro: profile must be in the source
+         directory to work
+
+2007-05-23 20:57  oetiker
+
+       * .indent.pro: tabs be gone!
+
+2007-05-23 20:42  oetiker
+
+       * configure.ac, src/Makefile.am, src/rrd.h, src/rrd_dump.c,
+         src/rrd_fetch.c, src/rrd_first.c, src/rrd_hw.c, src/rrd_hw.h,
+         src/rrd_info.c, src/rrd_last.c, src/rrd_lastupdate.c,
+         src/rrd_open.c, src/rrd_resize.c, src/rrd_restore.c,
+         src/rrd_stat.c, src/rrd_thread_safe.c, src/rrd_tool.h,
+         src/rrd_tune.c, src/rrd_update.c, src/unused.h: * progress in
+         moving all the fileaccess over to a wrapper system that can do fd
+         based and mmap based fileaccess transparently ... * small fixes
+         left and right to improve code quality and stability. -- Bernhard
+         Fischer rep dot nop gmail com
+
+2007-05-23 16:10  oetiker
+
+       * .indent.pro: we are going to use indent from now on to keep code
+         indenting consistent throughout the project
+
+2007-05-23 16:08  oetiker
+
+       * .: new trunk based on current 1.2
 
-------------------------------------------------------------------------
-r1197 | oetiker | 2007-09-06 10:40:36 +0200 | 5 lines
-
-rrd_open.c (rrd_read): Mimicing read() behaviour for EOF case and NULL buffer case.
--- Bernhard Fischer
-
-
-
-------------------------------------------------------------------------
-r1196 | oetiker | 2007-09-02 18:55:01 +0200 | 3 lines
-
-fixed speling of horizon
-
-
-------------------------------------------------------------------------
-r1194 | oetiker | 2007-08-29 08:43:16 +0200 | 2 lines
-
-a better performance tester
-
-------------------------------------------------------------------------
-r1193 | oetiker | 2007-08-16 09:31:53 +0200 | 2 lines
-
-added holt winters example back into the examples documentation
-
-------------------------------------------------------------------------
-r1192 | oetiker | 2007-08-14 23:59:31 +0200 | 18 lines
-
-Fix for HoltWinters phase-shift bug described below.
-
-When one or more primary data point times were missed, the SEASONAL and
-DEVSEASONAL archives were marked as being up-to-date, so that they would not
-be written to. It was correct not to write to these archives, but the code
-failed to advance the pointers within the SEASONAL and DEVSEASONAL archives
-so that future updates would go to the correct location in the archives.
-
-Rather than mark these archives as up-to-date (by setting
-rra_step_cnt[rra_idx] = 0), my patch allocates a new "skip_update" array
-that is set to 1 for SEASONAL and DEVSEASONAL archives that have missed one
-or more primary data points. When an RRA is written to, the cur_row pointer
-advancement happens for all archives, but the skip_update array is checked
-just before actually writing out the changes.
-
-Please give it a whirl!
--- Evan Miller emiller imvu.com
-
-------------------------------------------------------------------------
-r1191 | oetiker | 2007-08-13 22:06:10 +0200 | 3 lines
-
-Refactored rrd_update code in preparation of finding the HW update
-problem -- Evan Miller
-
-------------------------------------------------------------------------
-r1190 | oetiker | 2007-08-07 17:02:08 +0200 | 2 lines
-
-updated build instructions for 1.3
-
-------------------------------------------------------------------------
-r1185 | oetiker | 2007-08-03 21:46:17 +0200 | 1 line
-
-prepare for the release of rrdtool-1.2.99907080300
-------------------------------------------------------------------------
-r1184 | oetiker | 2007-08-03 21:45:01 +0200 | 2 lines
-
-remove some things we do not need anymore in 1.3
-
-------------------------------------------------------------------------
-r1183 | oetiker | 2007-08-03 21:43:47 +0200 | 1 line
-
-prepare for the release of rrdtool-1.2.99907080300
-------------------------------------------------------------------------
-r1182 | oetiker | 2007-08-03 21:43:21 +0200 | 2 lines
-
-prepare for 1.3 beta 1
-
-------------------------------------------------------------------------
-r1181 | oetiker | 2007-08-03 21:26:41 +0200 | 2 lines
-
-continue with the revision numbering
-
-------------------------------------------------------------------------
-r1180 | oetiker | 2007-08-03 21:17:13 +0200 | 2 lines
-
-added notes on pango inline formatting
-
-------------------------------------------------------------------------
-r1178 | oetiker | 2007-08-01 17:29:09 +0200 | 2 lines
-
-only release cairo stuff if we ever initialized it.
-
-------------------------------------------------------------------------
-r1177 | oetiker | 2007-08-01 17:28:03 +0200 | 2 lines
-
-fix for 64bit portability problem ... unsigned long is not int
-
-------------------------------------------------------------------------
-r1175 | oetiker | 2007-07-31 06:53:04 +0200 | 2 lines
-
-reindented
-
-------------------------------------------------------------------------
-r1173 | oetiker | 2007-07-25 22:38:37 +0200 | 2 lines
-
-fixed indenting
-
-------------------------------------------------------------------------
-r1172 | oetiker | 2007-07-25 22:38:26 +0200 | 2 lines
-
-make sure we check input even when the previous update was a 'U' ... and some indenting fixes
-
-------------------------------------------------------------------------
-r1169 | oetiker | 2007-07-22 17:51:39 +0200 | 2 lines
-
-new consolidation functions must be added last or this will break binary compatibility
-
-------------------------------------------------------------------------
-r1168 | oetiker | 2007-07-22 17:50:21 +0200 | 2 lines
-
-don't force data out ... let cache management do this
-
-------------------------------------------------------------------------
-r1167 | oetiker | 2007-07-22 11:47:53 +0200 | 1 line
-
-Only create version 4 rrd files if the new holtwinters MHW.. CF is used.
-------------------------------------------------------------------------
-r1166 | oetiker | 2007-07-21 21:55:00 +0200 | 5 lines
-
-* remove some experimental code from rrd_open
-* rrd_dontneed will release all data except for header blocks and RRA hot blocks 
-  which are going to be updated withing 10 minutes.
-
-
-------------------------------------------------------------------------
-r1165 | oetiker | 2007-07-21 21:53:52 +0200 | 3 lines
-
-for now, do not release fetched data ... in the future we may call rrd_dontneed and let the users decied with an option
-if they want to keep the data in cache ... 
-
-------------------------------------------------------------------------
-r1164 | oetiker | 2007-07-21 21:52:17 +0200 | 2 lines
-
-the fonts are now taken from the system. we do not distribute them anympore
-
-------------------------------------------------------------------------
-r1163 | oetiker | 2007-07-21 21:37:50 +0200 | 2 lines
-
-not on update rrd version
-
-------------------------------------------------------------------------
-r1162 | oetiker | 2007-07-21 00:20:18 +0200 | 2 lines
-
-we have a new holtwinders aggregation fucntion, so we have a new version ...
-
-------------------------------------------------------------------------
-r1161 | oetiker | 2007-07-21 00:19:53 +0200 | 2 lines
-
-check for fadvise all the time
-
-------------------------------------------------------------------------
-r1160 | oetiker | 2007-07-21 00:16:36 +0200 | 2 lines
-
-better docs on the aggregate functions
-
-------------------------------------------------------------------------
-r1159 | oetiker | 2007-07-19 00:02:18 +0200 | 2 lines
-
-added note on locale
-
-------------------------------------------------------------------------
-r1158 | oetiker | 2007-07-18 23:59:10 +0200 | 2 lines
-
-some more piechart removed
-
-------------------------------------------------------------------------
-r1157 | oetiker | 2007-07-18 23:47:26 +0200 | 1 line
-
-make sure all ascii to float parsing uses LC_NUMERIC = C so that we do not stuble on locales confusing the , with a .
-------------------------------------------------------------------------
-r1156 | oetiker | 2007-07-18 02:30:49 +0200 | 9 lines
-
-* rrd_open: rrd_close does not purge file from cache
-* rrd_open: new function rrd_dontneed for purging un-needed pages from core
-* rrd_open: in linux at least only fadivse DONTNEED has the power to purge
-  pages from cache, so letst call madvise as well as fadvise
-* rrd_create: uses open/write/close now, flushes file to disk and keeps only hot pages in core
-* rrd_update: keeps only hot pages in core
-* configure enables FADVISE even when mmap is in use
-
-
-------------------------------------------------------------------------
-r1155 | oetiker | 2007-07-17 23:46:00 +0200 | 2 lines
-
-added comment on float cookie
-
-------------------------------------------------------------------------
-r1154 | oetiker | 2007-07-16 08:37:07 +0200 | 2 lines
-
-fix for fetch in ruby bindings and support for info added.
-
-------------------------------------------------------------------------
-r1149 | oetiker | 2007-07-12 22:33:47 +0200 | 2 lines
-
-improve wording
-
-------------------------------------------------------------------------
-r1148 | oetiker | 2007-07-12 22:33:37 +0200 | 2 lines
-
-fix tcl build settup
-
-------------------------------------------------------------------------
-r1146 | oetiker | 2007-07-12 01:08:47 +0200 | 2 lines
-
-usr rrd_free for freeing the rrd structs ... vito caputo
-
-------------------------------------------------------------------------
-r1141 | oetiker | 2007-07-05 17:19:27 +0200 | 2 lines
-
-prevent potential segfaults on boxes where time_t is not long
-
-------------------------------------------------------------------------
-r1134 | oetiker | 2007-06-18 20:25:35 +0200 | 2 lines
-
-fix indentation
-
-------------------------------------------------------------------------
-r1133 | oetiker | 2007-06-18 18:05:07 +0200 | 8 lines
-
-Bernhard Fischer:
-
-- move several static struct option out of loops and makes them
-  non-static
-- moves some functions from old-style definitions into new-style
-  definitions
-
-
-------------------------------------------------------------------------
-r1132 | oetiker | 2007-06-17 01:20:23 +0200 | 2 lines
-
-Bernhard is not Benrard
-
-------------------------------------------------------------------------
-r1130 | oetiker | 2007-06-15 23:49:52 +0200 | 1 line
-
-notes on evans contribs
-------------------------------------------------------------------------
-r1129 | oetiker | 2007-06-15 23:41:54 +0200 | 3 lines
-
-rrdtool.spec from Jarod "redhat" Wilson
-
-
-------------------------------------------------------------------------
-r1127 | oetiker | 2007-06-15 10:09:13 +0200 | 2 lines
-
-updated contributors
-
-------------------------------------------------------------------------
-r1126 | oetiker | 2007-06-15 10:01:04 +0200 | 2 lines
-
-added note on TEXTALIGN
-
-------------------------------------------------------------------------
-r1125 | oetiker | 2007-06-15 09:59:01 +0200 | 46 lines
-
-There are two popular variants of the Holt-Winters forecasting method; RRDtool
-supports the "additive" method, which means that seasonal variation is simply
-added to the baseline. For our application, it would be more appropriate to use
-the "multiplicative" Holt-Winters method, where seasonal variation is a
-coefficient multiplied by the baseline.  Quick example to illustrate the
-difference: if the average doubles season-over-season, the additive method
-would predict the delta between min and max to be constant, whereas the
-multiplicative method would predict the delta to double as well.
-
-Attached is a patch against trunk to support the multiplicative method.  I've
-done this with a new consolidation function, MHWPREDICT, which is essentially
-interchangeable with HWPREDICT. There is a noticeable improvement in prediction
-deviations for certain types of functions; the attachments show HWPREDICT and
-MHWPREDICT predictions for a function with an x*sin(x) component.
-
-Because HWPREDICT and MHWPREDICT differ only in their equations, I've factored
-out their math into rrd_hw_math.c. The appropriate smoothing functions are
-passed to the update functions in a container of function pointers, which are
-called where appropriate. Thus the additive and multiplicative methods use the
-same update functions, and the right equations are evaluated without having
-flag checks everywhere. This approach, I think, makes the algorithms quite
-clear, with minimal duplicate code.
-
-I have moved update_hwpredict, update_seasonal, update_devpredict,
-update_devseasonal, and update_failures into a separate file, rrd_hw_update.c,
-with some slight refactoring related to rrd_hw_math.c. I ran some
-regression tests against trunk to make sure I didn't break anything with
-the existing HWPREDICT code.
-
-MHWPREDICT uses the same deviation smoothing and failure detection algorithms
-as HWPREDICT.
-
-Some helpful references on the multiplicative Holt-Winters method:
-
-http://www.it.iitb.ac.in/~praj/acads/seminar/04329008_ExponentialSmoothing.pdf
-(a student's quick overview of additive vs. multiplicative HW)
-
-http://ideas.repec.org/p/msh/ebswps/1999-1.html (paper on variations to the
-multiplicative Holt-Winters, including variance calculations; FYI, my
-implementation uses "Model 1")
-
-My employer and the owner of this patch (IMVU, Inc.) is happy to license it
-under the same terms as RRDtool, i.e. give it to the project.
--- Evan Miller emiller imvu.com
-
-
-------------------------------------------------------------------------
-r1124 | oetiker | 2007-06-15 08:43:36 +0200 | 2 lines
-
-oops missed to update the in memory output interface here
-
-------------------------------------------------------------------------
-r1123 | oetiker | 2007-06-15 08:28:47 +0200 | 3 lines
-
-added interface to get rendered image via a pointer to allocated memory ... Evan Miller emmiller gmail.com
-
-
-------------------------------------------------------------------------
-r1122 | oetiker | 2007-06-15 08:12:55 +0200 | 2 lines
-
-improve fontnaming
-
-------------------------------------------------------------------------
-r1121 | oetiker | 2007-06-14 22:30:13 +0200 | 2 lines
-
-fixed indentation
-
-------------------------------------------------------------------------
-r1120 | oetiker | 2007-06-14 22:28:44 +0200 | 1 line
-
-added TEXTALIGN command to change the default text alignment
-------------------------------------------------------------------------
-r1119 | oetiker | 2007-06-13 18:53:32 +0200 | 2 lines
-
-fixed tcl includes
-
-------------------------------------------------------------------------
-r1118 | oetiker | 2007-06-13 18:51:06 +0200 | 2 lines
-
-be more helpful when raising rb_eTypeError in string_arr string_arr_new(VALUE rb_strings). This patch indicates which index is in error as well as the type you are erroneously passing. -- anonymous
-
-------------------------------------------------------------------------
-r1116 | oetiker | 2007-06-12 22:36:50 +0200 | 6 lines
-
-Bernhard Fischer:
-- fix nulling the updvals
-- cosmetic change to move the option struct out of the loop.
-- need to operate on a copy of optarg
-
-
-------------------------------------------------------------------------
-r1115 | oetiker | 2007-06-11 21:45:42 +0200 | 2 lines
-
-added TRENDNAN function -- Timo Stripf
-
-------------------------------------------------------------------------
-r1114 | oetiker | 2007-06-11 21:45:16 +0200 | 1 line
-
-allow output to stdout -- Timo Stripf
-------------------------------------------------------------------------
-r1113 | oetiker | 2007-06-11 18:49:01 +0200 | 2 lines
-
-added more news
-
-------------------------------------------------------------------------
-r1112 | oetiker | 2007-06-11 18:34:51 +0200 | 2 lines
-
-fixed indentation, added documentation note on gridfitting.
-
-------------------------------------------------------------------------
-r1111 | oetiker | 2007-06-11 18:33:59 +0200 | 2 lines
-
-fix arrow locations
-
-------------------------------------------------------------------------
-r1110 | oetiker | 2007-06-11 18:20:20 +0200 | 2 lines
-
-disable gridfitting for vector formats
-
-------------------------------------------------------------------------
-r1109 | oetiker | 2007-06-11 18:14:40 +0200 | 2 lines
-
-make pdf output work
-
-------------------------------------------------------------------------
-r1108 | oetiker | 2007-06-11 17:32:41 +0200 | 1 line
-
-added detail
-------------------------------------------------------------------------
-r1107 | oetiker | 2007-06-11 17:11:10 +0200 | 5 lines
-
---font-render-mode is back, and there is also
---graph-render-mode now. It allows to enable
-mono graphs that look strikingly like rrdtool 1.0.x 
---tobi
-
-------------------------------------------------------------------------
-r1106 | oetiker | 2007-06-11 15:36:40 +0200 | 5 lines
-
-Bernhard Fischer:
-- NEWS mention the new file accessors
-- rrd_update.c: remove unused some cruft
-
-
-------------------------------------------------------------------------
-r1105 | oetiker | 2007-06-11 12:09:54 +0200 | 7 lines
-
-Bernhard Fischer:
-
-- fix maintaining our file-pos when we have to wrap the rra_ptr in
-  update().
-- no need to update the header-data a second time for the mmap case.
-
-
-------------------------------------------------------------------------
-r1104 | oetiker | 2007-06-11 02:23:51 +0200 | 2 lines
-
-updated news
-
-------------------------------------------------------------------------
-r1103 | oetiker | 2007-06-11 02:22:23 +0200 | 4 lines
-
-* added some documentation
-* updated version number
-
-
-------------------------------------------------------------------------
-r1102 | oetiker | 2007-06-11 01:55:13 +0200 | 2 lines
-
-switched graphics library from arts to cairo+pango
-
-------------------------------------------------------------------------
-r1101 | oetiker | 2007-06-04 13:15:11 +0200 | 3 lines
-
-Bernhard Fischer:
-- new configure option --enable-static-programs
-
-------------------------------------------------------------------------
-r1100 | oetiker | 2007-06-01 21:11:49 +0200 | 5 lines
-
-Bernhard:
-- implement resize SHRINK for FD (mmap is to be done)
-- indent
-
-
-------------------------------------------------------------------------
-r1099 | oetiker | 2007-06-01 19:59:25 +0200 | 2 lines
-
---full-size-mode with and without --no-legend should work now -- Matthew Chambers
-
-------------------------------------------------------------------------
-r1098 | oetiker | 2007-06-01 19:35:46 +0200 | 4 lines
-
-Bernhard
-- fill the file with DNAN and add the remaining data in after the fact ... 
-
-
-------------------------------------------------------------------------
-r1097 | oetiker | 2007-06-01 19:34:15 +0200 | 3 lines
-
-Bernhard Fischer 
-- implement resize, growing part. truncation is to be done.
-
-------------------------------------------------------------------------
-r1096 | oetiker | 2007-06-01 11:10:33 +0200 | 6 lines
-
-Bernhard Fischer
-- use 'z' length modifier when printing size_t
-- add a cast to __rrd_read and document why it is there
-- add RANDOM hint for the header
-
-
-------------------------------------------------------------------------
-r1095 | oetiker | 2007-05-31 20:47:13 +0200 | 7 lines
-
-Bernhard:
-- plug tiny mem-leak in error path of rrd_close where freeing the
-  rrd_file was forgotten.
-- improve two error messages
-- use CHECK_MADVISE_OVERLAPS per default
-
-
-------------------------------------------------------------------------
-r1094 | oetiker | 2007-05-30 21:56:34 +0200 | 2 lines
-
-fix rrd_write -- Bernhard Fischer
-
-------------------------------------------------------------------------
-r1093 | oetiker | 2007-05-30 14:41:39 +0200 | 1 line
-
-fix indenting ... again
-------------------------------------------------------------------------
-r1092 | oetiker | 2007-05-30 14:39:30 +0200 | 6 lines
-
-From Bernhard Fischer
-
-- rrd_close(): call close on the file and use rrd_close consistently
-- clean up some error paths. The fadvise error path is leaking memory (see XXX in these spots).
-
-
-------------------------------------------------------------------------
-r1089 | oetiker | 2007-05-30 07:23:07 +0200 | 3 lines
-
-switch for rrd_graph to specify the outer-size of the graph and not just the
-size of the canvas: --full-size-mode -- matthew.chambers vanderbilt.edu
-
-------------------------------------------------------------------------
-r1088 | oetiker | 2007-05-29 23:29:17 +0200 | 22 lines
-
-More updates from Bernhard Fischer
-
-- flag rrd_resize's old file with RRD_COPY
-- cleanup error-handling pathes in rrd_update and fix a few typos in
-  comments
-- rrd_close(): implement printing mincore results for the rrd if
-  DEBUG=2 was defined
-- rrd_open(): madvise start addresses need to be page-aligned; implement
-  alternative path to the fine-grained (i.e. exact) madvise by flagging
-  just the first two pages as needed (see TWO_PAGES). Implement
-  alternative path that records the last madvise()ed area to avoid
-  redundant calls to madvise() on identical areas (due to
-  page-alignment constraints) -- see CHECK_MADVISE_OVERLAPS. Implement
-  path for USE_DIRECT_IO.
-- configure: add check for O_DIRECT flag to open(2). Add option
-  --enable-direct-io. Add _GNU_SOURCE to CFLAGS to silence warnings
-  about chroot which is marked LEGACY since SUSv2 and is a non POSIX
-  extension. Make checks for posix_fadvise() dependant on
-  --disable-mmap, since we do not need fadvise for the mmap case.
-
-
-
-------------------------------------------------------------------------
-r1086 | oetiker | 2007-05-25 17:24:32 +0200 | 2 lines
-
-tobis old cruft removal program ...
-
-------------------------------------------------------------------------
-r1085 | oetiker | 2007-05-25 15:14:35 +0200 | 8 lines
-
-updates from Bernhard Fischer rep dot nop gmail com
-- add some more rrd_sterror calls to failure paths.
-- make rrdtool updatev work like 1.2.23 (i.e. multiple values are still
-  broken, but at least updating a single value works; see
-  http://oss.oetiker.ch/rrdtool-trac/ticket/8)
-- indent touched files.
-
-
-------------------------------------------------------------------------
-r1084 | oetiker | 2007-05-25 15:12:07 +0200 | 19 lines
-
-Updates from Bernhard Fischer rep dot nop gmail com
-- fix typo in rrd_fetch where rrd_read result was checked against an
-  incorrect size.
-- in rrd_fetch, drop rrd_head_size in favour of rrd_file->header_len
-- in rrd_fetch, make the message "post fetch" unambiguous (now past vs.
-  post).
-- change usage of param rdwr of rrd_open: allow for RRD_READONLY,
-  RRD_READWRITE, RRD_CREAT, RRD_READAHEAD; adjust callers accordingly:
-  + rrd_resize needs CREAT
-  + rrd_dump may want READAHEAD
-- implement FD based I/O in rrd_open, rrd_read, rrd_write, rrd_seek.
-- in rrd_update, unify write_RRA_row().
-- sort | uniq the -T in .indent.pro (info_t was duplicated)
-- add stub of an option to use O_DIRECT to the configury
-- in Makefile.am, simplify the "indent" invocation of find:
-  My find may not support "-o" resp. "-or" nor braces.
-  Using -name "*.[ch]" works everywhere, AFAIK.
-
-
-------------------------------------------------------------------------
-r1083 | oetiker | 2007-05-24 10:26:39 +0200 | 2 lines
-
-use proper preprocessor directives for the config-checks. -- tobi
-
-------------------------------------------------------------------------
-r1082 | oetiker | 2007-05-24 09:21:48 +0200 | 2 lines
-
-fixed version number for development
-
-------------------------------------------------------------------------
-r1081 | oetiker | 2007-05-24 08:16:01 +0200 | 3 lines
-
-indent all the rest of the code, and add some typedefs to indent.pro
-there is now a indent makefile target
-
-------------------------------------------------------------------------
-r1080 | oetiker | 2007-05-23 23:40:21 +0200 | 2 lines
-
-removed superfluouse code
-
-------------------------------------------------------------------------
-r1079 | oetiker | 2007-05-23 23:39:58 +0200 | 2 lines
-
-added more indenting rules
-
-------------------------------------------------------------------------
-r1078 | oetiker | 2007-05-23 23:33:45 +0200 | 3 lines
-
-reindented everything according to .indent.pro
-
-
-------------------------------------------------------------------------
-r1077 | oetiker | 2007-05-23 22:57:43 +0200 | 2 lines
-
-profile must be in the source directory to work
-
-------------------------------------------------------------------------
-r1076 | oetiker | 2007-05-23 22:57:24 +0200 | 2 lines
-
-tabs be gone!
-
-------------------------------------------------------------------------
-r1075 | oetiker | 2007-05-23 22:42:13 +0200 | 4 lines
-
-* progress in moving all the fileaccess over to a wrapper system that can do fd based and mmap based fileaccess transparently ... 
-* small fixes left and right to improve code quality and stability.
--- Bernhard Fischer rep dot nop gmail com
-
-------------------------------------------------------------------------
-r1074 | oetiker | 2007-05-23 18:10:23 +0200 | 2 lines
-
-we are going to use indent from now on to keep code indenting consistent throughout the project
-
-------------------------------------------------------------------------
-r1073 | oetiker | 2007-05-23 18:08:14 +0200 | 2 lines
-
-new trunk based on current 1.2
-
-------------------------------------------------------------------------
-r1071 | oetiker | 2007-05-22 22:46:25 +0200 | 2 lines
-
-fixed spelling
-
-------------------------------------------------------------------------
-r1070 | oetiker | 2007-05-22 22:44:57 +0200 | 4 lines
-
-* better tests for madvise, fadvise and fdatasync 
-* fix inclusion of fcntl.h
-* clenups for configure.ac -- Bernhard Fischer rep dot nop gmail com
-
-------------------------------------------------------------------------
-r1067 | oetiker | 2007-05-19 07:47:29 +0200 | 2 lines
-
-update defines according to manual pageentry
-
-------------------------------------------------------------------------
-r1066 | oetiker | 2007-05-18 18:40:55 +0200 | 2 lines
-
-added madvise MADV_RANDOM is rrd_update uses mmap
-
-------------------------------------------------------------------------
-r1065 | oetiker | 2007-05-18 13:56:34 +0200 | 5 lines
-
-* dropping in rrd_update is probably overkill since we may be dropping too much.
-* in create we have to flush before dropping.
-* read fcntl.h after defining the __USE_XOPEN2K
-* fix drop code in fetch ... 
-
-------------------------------------------------------------------------
-r1064 | oetiker | 2007-05-17 13:38:54 +0200 | 2 lines
-
-now the fadvise code actually compiles ... let the testing begin.
-
-------------------------------------------------------------------------
-r1063 | oetiker | 2007-05-17 10:44:26 +0200 | 2 lines
-
-new better ? performance test ... work in progress
-
-------------------------------------------------------------------------
-r1062 | oetiker | 2007-05-17 10:44:06 +0200 | 7 lines
-
-added posix_fadvise support (untested) ... this should help performance by
-stopping read-ahead and droping buffer cache for all rrd data except the
-file header portion. Newly created files are fdsynced to disk and released
-from cache after creation, to soften the blow on buffer cache by creating
-new rrds.
-
-
-------------------------------------------------------------------------
-r1061 | oetiker | 2007-05-16 22:35:56 +0200 | 2 lines
-
-remove tabs and replace with 8 spaces
-
-------------------------------------------------------------------------
-r1060 | oetiker | 2007-05-15 10:39:17 +0200 | 2 lines
-
-use libdir instead of exec_prefix/lib ... maybe someone wants their libraries in another place
-
-------------------------------------------------------------------------
-r1059 | oetiker | 2007-05-15 10:36:52 +0200 | 2 lines
-
-yet another attempt to make the python build environment REALY cool
-
-------------------------------------------------------------------------
-r1057 | oetiker | 2007-05-09 17:26:57 +0200 | 3 lines
-
-make sure the python extension gets the final resting place of the rrdlibrary compiled in ... 
-
-
-------------------------------------------------------------------------
-r1056 | oetiker | 2007-05-08 17:10:21 +0200 | 3 lines
-
-ruby complained about finding a previous copy of the rrdtool extension ... very odd thing actually ...
-adding RUBYARCHDIR= seems to help ... 
-
-------------------------------------------------------------------------
-r1055 | oetiker | 2007-05-06 21:38:22 +0200 | 2 lines
-
-don't use round since it is c99 ... use floor(x+0.5) for positive numbers instead.
-
-------------------------------------------------------------------------
-r1054 | oetiker | 2007-05-06 10:50:11 +0200 | 2 lines
-
-print the name of the HW cf in debug mode -- Helge Oldach
-
-------------------------------------------------------------------------
-r1053 | oetiker | 2007-05-03 14:49:44 +0200 | 2 lines
-
-added some more rounding for int to float comparisons
-
-------------------------------------------------------------------------
-r1052 | oetiker | 2007-05-03 14:43:15 +0200 | 2 lines
-
-Testing an double and an integer for equality is bound to produce odd results on times. Don't do it! -- rrdtool@oldach.net
-
-------------------------------------------------------------------------
-r1050 | oetiker | 2007-05-02 20:06:05 +0200 | 1 line
-
-prepare for the release of rrdtool-1.2.23
-------------------------------------------------------------------------
-r1049 | oetiker | 2007-05-02 20:05:37 +0200 | 2 lines
-
-fix python install for virgin systems
-
-------------------------------------------------------------------------
-r1047 | oetiker | 2007-05-02 17:31:29 +0200 | 1 line
-
-prepare for the release of rrdtool-1.2.22
-------------------------------------------------------------------------
-r1046 | oetiker | 2007-05-02 17:31:05 +0200 | 2 lines
-
-fixed old urls in code
-
-------------------------------------------------------------------------
-r1045 | oetiker | 2007-05-02 17:23:34 +0200 | 2 lines
-
-fix python for staged installs
-
-------------------------------------------------------------------------
-r1044 | oetiker | 2007-05-02 07:08:21 +0200 | 2 lines
-
-fixed path to rrd_format.h in tcl bindings
-
-------------------------------------------------------------------------
-r1042 | oetiker | 2007-05-01 22:41:59 +0200 | 1 line
-
-prepare for the release of rrdtool-1.2.21
-------------------------------------------------------------------------
-r1041 | oetiker | 2007-05-01 22:40:15 +0200 | 2 lines
-
-if the graph goes 'down' minval must be hanged instead
-
-------------------------------------------------------------------------
-r1039 | oetiker | 2007-05-01 18:36:02 +0200 | 1 line
-
-prepare for the release of rrdtool-1.2.20
-------------------------------------------------------------------------
-r1038 | oetiker | 2007-05-01 18:24:03 +0200 | 2 lines
-
-updated win32 and netware Makefiles -- Guenter Knauf
-
-------------------------------------------------------------------------
-r1037 | oetiker | 2007-05-01 18:23:19 +0200 | 2 lines
-
-added some const casts
-
-------------------------------------------------------------------------
-r1036 | oetiker | 2007-05-01 18:19:47 +0200 | 3 lines
-
-added --alt-autoscale-min (see --alt-autoscale-max) -- Helge Oldach
-
-
-------------------------------------------------------------------------
-r1032 | oetiker | 2007-04-10 07:43:34 +0200 | 2 lines
-
-untabified rrd_graph.c
-
-------------------------------------------------------------------------
-r1031 | oetiker | 2007-04-10 07:41:50 +0200 | 2 lines
-
-use the shorthand for vidx ... 
-
-------------------------------------------------------------------------
-r1030 | oetiker | 2007-04-10 07:27:04 +0200 | 2 lines
-
-the rrd_graph_check_vname function is not used anywhere in the code ... 
-
-------------------------------------------------------------------------
-r1029 | oetiker | 2007-04-06 09:28:33 +0200 | 2 lines
-
-release font resources after thy have been used ... -- Travis Spencer
-
-------------------------------------------------------------------------
-r1028 | oetiker | 2007-04-02 08:21:19 +0200 | 6 lines
-
-new function rrd_fetch_r() (and make the
-strings const char* instead of char*).  The only difference between
-rrd_fetch_r() and rrd_fetch_fn() is that rrd_fetch_r() receives the
-consolidation function as a string (instead of an enum cf_en) and is thread-safe -- Sam Umbach
-
-
-------------------------------------------------------------------------
-r1027 | oetiker | 2007-04-02 08:18:15 +0200 | 2 lines
-
-make xml2rrd more robust on invalid input -- Florian Forster
-
-------------------------------------------------------------------------
-r1026 | oetiker | 2007-03-29 21:08:26 +0200 | 2 lines
-
-added vardef
-
-------------------------------------------------------------------------
-r1021 | oetiker | 2007-03-15 22:10:18 +0100 | 2 lines
-
-fix the snprintf call for vtag ... it was using the wrong size -- kili
-
-------------------------------------------------------------------------
-r1020 | oetiker | 2007-03-15 22:03:51 +0100 | 2 lines
-
-fixed strerror_r usage ... #85
-
-------------------------------------------------------------------------
-r1019 | oetiker | 2007-03-11 14:08:31 +0100 | 2 lines
-
-fix netware and win32 makefiles for new getopt names
-
-------------------------------------------------------------------------
-r1018 | oetiker | 2007-03-11 14:04:41 +0100 | 2 lines
-
-enable ID keyword in all source files
-
-------------------------------------------------------------------------
-r1017 | oetiker | 2007-03-11 13:57:38 +0100 | 2 lines
-
-do not use gnuisms in Makefile rules ($<)
-
-------------------------------------------------------------------------
-r1016 | oetiker | 2007-03-11 13:41:46 +0100 | 2 lines
-
-use Guenters latest Netware Makefile ... 
-
-------------------------------------------------------------------------
-r1014 | oetiker | 2007-03-10 18:44:12 +0100 | 2 lines
-
-axe the double quotes on $perlcc in configure to allow for program names with arguments.
-
-------------------------------------------------------------------------
-r1013 | oetiker | 2007-03-10 18:36:32 +0100 | 2 lines
-
-integers can be negative ... fixed the test for this in rrd_update -- rians cc usu edu
-
-------------------------------------------------------------------------
-r1012 | oetiker | 2007-03-03 12:03:38 +0100 | 4 lines
-
-* build extensions last since this seems to be most likely to fail
-* do more testing before building the ruby extension
-
-
-------------------------------------------------------------------------
-r1010 | oetiker | 2007-02-24 18:23:02 +0100 | 2 lines
-
-fix memmory problem in rrd_dump.c
-
-------------------------------------------------------------------------
-r1008 | oetiker | 2007-02-14 19:54:29 +0100 | 2 lines
-
-new operator ABS added -- 
-
-------------------------------------------------------------------------
-r1007 | oetiker | 2007-02-14 19:48:21 +0100 | 2 lines
-
-renamed getopt to rrd_getopt to avoid confusion on some systems ... 
-
-------------------------------------------------------------------------
-r1006 | oetiker | 2007-02-14 19:47:41 +0100 | 2 lines
-
-cosmetic fix for usage message -- günter knauff
-
-------------------------------------------------------------------------
-r1005 | oetiker | 2007-02-14 19:46:56 +0100 | 2 lines
-
-added new win32 component to the release tarball
-
-------------------------------------------------------------------------
-r1004 | oetiker | 2007-02-14 19:46:16 +0100 | 2 lines
-
-updates to the windows build system by guenter knauff
-
-------------------------------------------------------------------------
-r1003 | oetiker | 2007-02-14 07:53:01 +0100 | 2 lines
-
-allow --units-length to reserve label space even when --y-grid=none is in effect [#75], tobi
-
-------------------------------------------------------------------------
-r1002 | oetiker | 2007-02-14 07:33:49 +0100 | 3 lines
-
-parsing absolute time should not send us 30,000 years into the future -- Tatsuki Makino tatsuki_makino hotmail.com
-
-
-------------------------------------------------------------------------
-r1001 | oetiker | 2007-02-14 07:31:52 +0100 | 3 lines
-
-Printstrftime on rrd_cgi.c returns an illegal value. It causes segmentation fault error. -- Tatsuki Makino tatsuki_makino hotmail.com
-
-
-------------------------------------------------------------------------
-r998 | oetiker | 2007-02-09 23:19:48 +0100 | 2 lines
-
-more build patches from Günter Knauf
-
-------------------------------------------------------------------------
-r997 | oetiker | 2007-02-08 07:01:43 +0100 | 2 lines
-
-updates for Win32 and NW Makefiles -- Guenter Knauf 
-
-------------------------------------------------------------------------
-r996 | oetiker | 2007-02-08 06:54:23 +0100 | 2 lines
-
-added get_ver.awk to release
-
-------------------------------------------------------------------------
-r995 | oetiker | 2007-02-08 06:51:48 +0100 | 2 lines
-
-there is no Makefile.in for python anymore!
-
-------------------------------------------------------------------------
-r994 | oetiker | 2007-02-07 22:35:39 +0100 | 2 lines
-
-DPRINTF may not be the ideal define ... use something more RRDish ... like RRDPRINTF
-
-------------------------------------------------------------------------
-r993 | oetiker | 2007-02-07 22:35:07 +0100 | 2 lines
-
-use setup.py for python install and build work instad of trying todo it on our own
-
-------------------------------------------------------------------------
-r992 | oetiker | 2007-02-07 22:31:33 +0100 | 2 lines
-
-added Makefile targets for python
-
-------------------------------------------------------------------------
-r991 | oetiker | 2007-02-07 22:30:18 +0100 | 2 lines
-
-python does no get built externally
-
-------------------------------------------------------------------------
-r990 | oetiker | 2007-02-02 19:22:34 +0100 | 2 lines
-
-added IBM Public License to the list of Exceptions
-
-------------------------------------------------------------------------
-r989 | oetiker | 2007-02-02 13:19:12 +0100 | 2 lines
-
-increasse portability (no // comment, no ... arguments for cpp)
-
-------------------------------------------------------------------------
-r988 | oetiker | 2007-02-01 23:00:23 +0100 | 3 lines
-
-we should use the headers from the local rrdtool setup and not the system ones!
-
-
-------------------------------------------------------------------------
-r986 | oetiker | 2007-02-01 06:51:34 +0100 | 1 line
-
-prepare for the release of rrdtool-1.2.19
-------------------------------------------------------------------------
-r985 | oetiker | 2007-02-01 06:45:03 +0100 | 3 lines
-
-libtool builds shared libraries anyway, no need for extra LDFLAGS
-that bite non GNU ld versions
-
-------------------------------------------------------------------------
-r979 | oetiker | 2007-01-29 17:47:28 +0100 | 2 lines
-
-resolve snprintf overflow warning by using sizeof -- Anna Bernathova suse cz
-
-------------------------------------------------------------------------
-r977 | oetiker | 2007-01-23 21:54:46 +0100 | 1 line
-
-prepare for the release of rrdtool-1.2.18
-------------------------------------------------------------------------
-r976 | oetiker | 2007-01-23 21:52:35 +0100 | 4 lines
-
-the change from R920 to fetch was not helping ... no low res got prefered in
-non full coverage situations ..
-
-
-------------------------------------------------------------------------
-r975 | oetiker | 2007-01-23 18:30:27 +0100 | 2 lines
-
-another control sequence that got lost ... 
-
-------------------------------------------------------------------------
-r974 | oetiker | 2007-01-23 09:28:56 +0100 | 2 lines
-
-read up to full potential length of gdp->rrd 
-
-------------------------------------------------------------------------
-r972 | oetiker | 2007-01-22 17:34:55 +0100 | 2 lines
-
-added missing B formatting instruction
-
-------------------------------------------------------------------------
-r971 | oetiker | 2007-01-22 11:49:19 +0100 | 2 lines
-
-create non version link
-
-------------------------------------------------------------------------
-r969 | oetiker | 2007-01-22 11:33:30 +0100 | 1 line
-
-prepare for the release of rrdtool-1.2.17
-------------------------------------------------------------------------
-r968 | oetiker | 2007-01-22 11:29:11 +0100 | 1 line
-
-prepare for the release of rrdtool-1.2.17
-------------------------------------------------------------------------
-r967 | oetiker | 2007-01-22 11:28:39 +0100 | 6 lines
-
-introduced \n as an alias for \l since people seem to be using it despite
-the documentation not talking about this ... so now it is official and I bet
-there will soon be people asking why this was only working at the end of a
-line. -- tobi
-
-
-------------------------------------------------------------------------
-r966 | oetiker | 2007-01-21 23:22:30 +0100 | 2 lines
-
-removed mentiones of \n ... 
-
-------------------------------------------------------------------------
-r962 | oetiker | 2007-01-20 23:54:25 +0100 | 1 line
-
-prepare for the release of rrdtool-1.2.16
-------------------------------------------------------------------------
-r961 | oetiker | 2007-01-20 23:48:37 +0100 | 1 line
-
-prepare for the release of rrdtool-1.2.16
-------------------------------------------------------------------------
-r960 | oetiker | 2007-01-20 23:22:10 +0100 | 1 line
-
-prepare for the release of rrdtool-1.2.16
-------------------------------------------------------------------------
-r959 | oetiker | 2007-01-20 21:19:13 +0100 | 1 line
-
-prepare for the release of rrdtool-1.2.16
-------------------------------------------------------------------------
-r958 | oetiker | 2007-01-20 21:17:31 +0100 | 1 line
-
-prepare for the release of rrdtool-1.2.16
-------------------------------------------------------------------------
-r957 | oetiker | 2007-01-20 21:16:15 +0100 | 1 line
-
-prepare for the release of rrdtool-1.2.16
-------------------------------------------------------------------------
-r956 | oetiker | 2007-01-20 21:03:14 +0100 | 2 lines
-
-this did not compile after integrating the new fetchlast command  -- Andy Riebs
-
-------------------------------------------------------------------------
-r955 | oetiker | 2007-01-20 17:41:15 +0100 | 1 line
-
-prepare for the release of rrdtool-1.2.16
-------------------------------------------------------------------------
-r954 | oetiker | 2007-01-20 17:39:32 +0100 | 2 lines
-
-get ready for 1.2.16 release
-
-------------------------------------------------------------------------
-r953 | oetiker | 2007-01-19 00:43:26 +0100 | 2 lines
-
-aargh another missing bit from lastupdate added ...
-
-------------------------------------------------------------------------
-r952 | oetiker | 2007-01-18 00:35:01 +0100 | 2 lines
-
-finish integration of lastupdate commmand ... 
-
-------------------------------------------------------------------------
-r951 | oetiker | 2007-01-17 22:31:23 +0100 | 4 lines
-
-New functions lastupdate to efficiently get the last values fed into the rrd ... this also changes that the last values
-get stored even for ABSOLUTE and GAUGE data sources ... -- andy.riebs hp.com
-
-
-------------------------------------------------------------------------
-r938 | oetiker | 2006-12-16 17:14:43 +0100 | 2 lines
-
-add missing \0 to the end of several strncpy strings
-
-------------------------------------------------------------------------
-r937 | oetiker | 2006-12-16 17:13:53 +0100 | 5 lines
-
-replace malloc/strncpy by strdup
-add \0 to the end of several strncpy strings
-add missing free
-fix error string rendering :... makes no sense here
-
-------------------------------------------------------------------------
-r936 | oetiker | 2006-12-16 17:11:46 +0100 | 2 lines
-
-move headers around to make more sense
-
-------------------------------------------------------------------------
-r935 | oetiker | 2006-12-16 17:10:58 +0100 | 2 lines
-
-init the context on first call
-
-------------------------------------------------------------------------
-r934 | oetiker | 2006-12-16 17:05:07 +0100 | 2 lines
-
-make sure there is ample space in the static strings
-
-------------------------------------------------------------------------
-r933 | oetiker | 2006-12-16 17:04:05 +0100 | 2 lines
-
-oops 99 is the last item
-
-------------------------------------------------------------------------
-r932 | oetiker | 2006-12-16 17:02:43 +0100 | 3 lines
-
-it is sufficient to set the last item to 0
-
-
-------------------------------------------------------------------------
-r931 | oetiker | 2006-12-16 17:02:00 +0100 | 2 lines
-
-getopt is required for rrdupdate too (there are platforms where this is not in libc ... eg solaris)
-
-------------------------------------------------------------------------
-r930 | oetiker | 2006-12-16 17:01:25 +0100 | 2 lines
-
-we have 2006 now
-
-------------------------------------------------------------------------
-r929 | oetiker | 2006-12-16 16:56:26 +0100 | 4 lines
-
-it makes no sense allocating an array and then asiging it to a fixed string ... 
-this caused stuff to crash badly as long error strings were assigned.
-
-
-------------------------------------------------------------------------
-r927 | oetiker | 2006-12-11 20:11:36 +0100 | 2 lines
-
-added note on alternate CFLAGS for Forte
-
-------------------------------------------------------------------------
-r925 | oetiker | 2006-12-07 20:51:59 +0100 | 2 lines
-
-c is a valid formatting character
-
-------------------------------------------------------------------------
-r922 | oetiker | 2006-11-19 12:15:32 +0100 | 2 lines
-
-fixed typo
-
-------------------------------------------------------------------------
-r920 | oetiker | 2006-11-06 07:53:13 +0100 | 4 lines
-
-when fetching, don't pick a higher res rra just because it's coverage at the 'end' of the
-requested range is better ... -- Sebastian Pachuta seba123 seba123.webd.pl
-
-
-------------------------------------------------------------------------
-r919 | oetiker | 2006-10-27 16:03:22 +0200 | 2 lines
-
-use integer time
-
-------------------------------------------------------------------------
-r918 | oetiker | 2006-10-27 00:26:31 +0200 | 2 lines
-
-added perftest tool
-
-------------------------------------------------------------------------
-r917 | oetiker | 2006-10-25 19:19:46 +0200 | 2 lines
-
-do not distribute windows files anymore ... 
-
-------------------------------------------------------------------------
-r916 | oetiker | 2006-10-25 19:18:27 +0200 | 2 lines
-
-distribute win32 and netware build files too
-
-------------------------------------------------------------------------
-r915 | oetiker | 2006-10-25 19:17:07 +0200 | 2 lines
-
-do not remove Makefiles from win32 and netware build dirs
-
-------------------------------------------------------------------------
-r914 | oetiker | 2006-10-25 19:12:22 +0200 | 3 lines
-
-fix build procedure for ruby (clean target)
-don't run autoreconf at the end of MakeMakefiles as this has a tendency todo the wrong things
-
-------------------------------------------------------------------------
-r913 | oetiker | 2006-10-25 18:39:31 +0200 | 2 lines
-
-added path to sepp
-
-------------------------------------------------------------------------
-r912 | oetiker | 2006-10-25 18:30:39 +0200 | 2 lines
-
-aclocal expects a space after -I ... 
-
-------------------------------------------------------------------------
-r911 | oetiker | 2006-10-25 18:24:44 +0200 | 2 lines
-
-tell aclocal where to find its config ... 
-
-------------------------------------------------------------------------
-r910 | oetiker | 2006-10-25 18:11:57 +0200 | 2 lines
-
-aclocal show know where it's stuff is ... 
-
-------------------------------------------------------------------------
-r908 | oetiker | 2006-10-22 23:20:45 +0200 | 8 lines
-
-make time paring more robust ... it can now deal with
-
-time date
-date time
-time date + xxx
-date time + xxx
-
-
-------------------------------------------------------------------------
-r907 | oetiker | 2006-10-22 23:09:27 +0200 | 2 lines
-
-check if valid control codes are in use
-
-------------------------------------------------------------------------
-r906 | oetiker | 2006-10-22 18:01:42 +0200 | 2 lines
-
-fixed ruby demo
-
-------------------------------------------------------------------------
-r905 | oetiker | 2006-10-22 18:01:32 +0200 | 2 lines
-
-fixed address
-
-------------------------------------------------------------------------
-r903 | oetiker | 2006-10-03 09:52:51 +0200 | 2 lines
-
-added missing file
-
-------------------------------------------------------------------------
-r902 | oetiker | 2006-09-28 14:38:34 +0200 | 2 lines
-
-fixed doc regarding site install
-
-------------------------------------------------------------------------
-r901 | oetiker | 2006-09-27 23:48:05 +0200 | 2 lines
-
-added ruby bindings ... thanks to Loïs LHERBIER lois.lherbier covadis.ch
-
-------------------------------------------------------------------------
-r900 | oetiker | 2006-09-27 23:46:23 +0200 | 2 lines
-
-make rrdupdate realy light as it was intended in the first place -- Peter Breitenlohner peb mppmu.mpg.de
-
-------------------------------------------------------------------------
-r899 | oetiker | 2006-09-27 23:45:47 +0200 | 1 line
-
-tod can come after the date as well as before the date
-------------------------------------------------------------------------
-r898 | oetiker | 2006-09-18 07:45:16 +0200 | 2 lines
-
-fix faild netware makefile merge -- Guenter Knauf
-
-------------------------------------------------------------------------
-r897 | oetiker | 2006-09-17 23:08:29 +0200 | 2 lines
-
-make mvs stop complaining about uninitialized variables ... -- norman wheeler bigpond.com
-
-------------------------------------------------------------------------
-r896 | oetiker | 2006-09-17 23:05:18 +0200 | 2 lines
-
-fixed spelling -- Peter Breitenlohner
-
-------------------------------------------------------------------------
-r895 | oetiker | 2006-09-17 22:46:17 +0200 | 3 lines
-
-fix generation of cgi-demo.cgi --  Peter Breitenlohner peb mppmu.mpg.de
-
-
-------------------------------------------------------------------------
-r894 | oetiker | 2006-09-17 22:31:26 +0200 | 4 lines
-
-make rrdtool use rrd_config.h instead of config.h since this is just bound to lead to confusion when the wrong config.h gets sourced --  Guenter Knauf
-fix clean target in bindings directory
-
-
-------------------------------------------------------------------------
-r893 | oetiker | 2006-09-10 21:30:22 +0200 | 2 lines
-
-the msvc files need dos file endings ... 
-
-------------------------------------------------------------------------
-r892 | oetiker | 2006-09-10 21:26:05 +0200 | 2 lines
-
-we want an int, so lets tell the compiler to make it not complain
-
-------------------------------------------------------------------------
-r891 | oetiker | 2006-09-10 21:20:59 +0200 | 2 lines
-
-netware und win32 fixes from guenter
-
-------------------------------------------------------------------------
-r890 | oetiker | 2006-09-05 21:55:36 +0200 | 2 lines
-
-we do not need an extra echo there
-
-------------------------------------------------------------------------
-r889 | oetiker | 2006-09-05 20:34:47 +0200 | 2 lines
-
-put all the architecture specific stuff in separate subdirectories ... one for netwara and one for win32 -- Guenter Knauf
-
-------------------------------------------------------------------------
-r888 | oetiker | 2006-09-05 20:19:02 +0200 | 3 lines
-
-noone needs this anymore
-
-
-------------------------------------------------------------------------
-r887 | oetiker | 2006-09-04 23:10:55 +0200 | 1 line
-
-in logarithmic mode minval must not be <= 0
-------------------------------------------------------------------------
-r883 | oetiker | 2006-08-24 06:14:54 +0200 | 2 lines
-
-add more submission encuragement -- alex
-
-------------------------------------------------------------------------
-r882 | oetiker | 2006-08-21 13:41:57 +0200 | 2 lines
-
-updated windows build instructions from guenter
-
-------------------------------------------------------------------------
-r881 | oetiker | 2006-08-16 08:07:26 +0200 | 2 lines
-
-contain a potential problem with log grid painting Bug #54
-
-------------------------------------------------------------------------
-r880 | oetiker | 2006-08-15 07:51:04 +0200 | 1 line
-
-do not loose filedescriptors when rrd_first errors out
-------------------------------------------------------------------------
-r879 | oetiker | 2006-08-15 07:44:54 +0200 | 2 lines
-
-catch empty XXXX: commands in graph
-
-------------------------------------------------------------------------
-r878 | oetiker | 2006-08-15 07:24:39 +0200 | 2 lines
-
-windows is not NT anymore ... lets call it WIN32
-
-------------------------------------------------------------------------
-r877 | oetiker | 2006-08-13 18:41:23 +0200 | 2 lines
-
-use unix fileendings here!
-
-------------------------------------------------------------------------
-r876 | oetiker | 2006-08-13 18:40:17 +0200 | 2 lines
-
-new version added by Guenter Knauf
-
-------------------------------------------------------------------------
-r875 | oetiker | 2006-08-13 18:25:00 +0200 | 3 lines
-
-added new rrdstrversion function -- Guenter Knauf
-
-
-------------------------------------------------------------------------
-r874 | oetiker | 2006-08-13 18:22:53 +0200 | 3 lines
-
-use th OS provided timezone names for %Z this should make things more flexile
-will only work on windows, but since we are using strftime.c on windows only this should not be a problem -- Guenter Knauf
-
-------------------------------------------------------------------------
-r873 | oetiker | 2006-08-13 18:13:13 +0200 | 2 lines
-
-include strftime.h for windows builds -- Guenter Knauff
-
-------------------------------------------------------------------------
-r872 | oetiker | 2006-08-13 18:10:23 +0200 | 2 lines
-
-removed mscv defines to confignt/config.h completely -- Guenter Knauf
-
-------------------------------------------------------------------------
-r871 | oetiker | 2006-08-13 18:09:25 +0200 | 2 lines
-
-working windows config.h 
-
-------------------------------------------------------------------------
-r870 | oetiker | 2006-08-13 18:07:36 +0200 | 3 lines
-
-can't define new variables in the middle of the code (unless everyone was using c99 which is not the case)
-
-
-------------------------------------------------------------------------
-r869 | oetiker | 2006-08-13 17:21:12 +0200 | 3 lines
-
-added special labeling for LONGTERM graphs -- Paul Boven p.boven sara.nl
-
-
-------------------------------------------------------------------------
-r867 | oetiker | 2006-08-10 09:46:22 +0200 | 2 lines
-
-it seems some headers have nan predefined ... so lets just use other variable names 
-
-------------------------------------------------------------------------
-r866 | oetiker | 2006-08-04 17:06:18 +0200 | 2 lines
-
-copy of the solaris isnan hack from configure.ac
-
-------------------------------------------------------------------------
-r865 | oetiker | 2006-08-04 00:21:37 +0200 | 3 lines
-
-solaris 10 has isnan defined as a sun forte builtin ... gcc can not deal with this
-this will replace isnan with an fpclass expression hopefully working around the problem
-
-------------------------------------------------------------------------
-r864 | oetiker | 2006-08-02 17:05:36 +0200 | 3 lines
-
-fixing python bindings ...  Jarod Wilson jwilson redhat.com
-
-
-------------------------------------------------------------------------
-r863 | oetiker | 2006-08-01 15:08:33 +0200 | 2 lines
-
-unknownaszero was not a good idea ... bye bye
-
-------------------------------------------------------------------------
-r862 | oetiker | 2006-08-01 00:48:45 +0200 | 2 lines
-
-new options --enumds and --unknwonaszero for xport
-
-------------------------------------------------------------------------
-r860 | oetiker | 2006-07-14 14:11:16 +0200 | 1 line
-
-prepare for the release of rrdtool-1.2.15
-------------------------------------------------------------------------
-r859 | oetiker | 2006-07-14 14:06:09 +0200 | 1 line
-
-we were leaking directory handles ... 
-------------------------------------------------------------------------
-r858 | oetiker | 2006-07-14 13:34:23 +0200 | 1 line
-
-remove an excess =over
-------------------------------------------------------------------------
-r857 | oetiker | 2006-07-14 13:32:39 +0200 | 2 lines
-
-added missing =over
-
-------------------------------------------------------------------------
-r855 | oetiker | 2006-07-14 13:12:45 +0200 | 1 line
-
-prepare for the release of rrdtool-1.2.14
-------------------------------------------------------------------------
-r854 | oetiker | 2006-07-14 11:47:34 +0200 | 2 lines
-
-do not reset im->gdes[i].step blindly. We initialize it to im->step at allocation time already ... the fix in r291 was over the top. -- niels weaklogic.com
-
-------------------------------------------------------------------------
-r853 | oetiker | 2006-07-14 10:56:28 +0200 | 3 lines
-
-added pwd command for remote server
-reset errno to zero before each loop  -- Damien.Stuart usi.net
-
-------------------------------------------------------------------------
-r852 | oetiker | 2006-07-13 10:44:47 +0200 | 2 lines
-
-fixed makefiles without libcgi ... guenter knauf
-
-------------------------------------------------------------------------
-r851 | oetiker | 2006-07-08 00:37:20 +0200 | 2 lines
-
-added first function to python bindings ... --  Ulf Lilleengen lulf pvv.ntnu.no
-
-------------------------------------------------------------------------
-r850 | oetiker | 2006-07-06 00:00:25 +0200 | 2 lines
-
-we have no cgilib anymore ....
-
-------------------------------------------------------------------------
-r849 | oetiker | 2006-07-04 23:04:12 +0200 | 2 lines
-
-let rrdtool  understand <?xml ...?> headers in rrdtool restore input
-
-------------------------------------------------------------------------
-r847 | oetiker | 2006-06-18 23:21:56 +0200 | 3 lines
-
-Added AVG function to CDEF language. Martin Sperl martin sperl.org
-
-
-------------------------------------------------------------------------
-r846 | oetiker | 2006-06-16 00:16:04 +0200 | 2 lines
-
-fixed libpng link
-
-------------------------------------------------------------------------
-r845 | oetiker | 2006-06-15 09:44:22 +0200 | 2 lines
-
-added hint for RHEL
-
-------------------------------------------------------------------------
-r843 | oetiker | 2006-06-13 23:20:36 +0200 | 2 lines
-
-added missing tcl files
-
-------------------------------------------------------------------------
-r842 | oetiker | 2006-06-07 23:01:35 +0200 | 2 lines
-
-fix calc of fahrenheit ... 
-
-------------------------------------------------------------------------
-r841 | oetiker | 2006-06-06 15:25:32 +0200 | 2 lines
-
-additional AIX hints from zoran.majcenic inet.hr
-
-------------------------------------------------------------------------
-r840 | oetiker | 2006-06-06 10:16:05 +0200 | 3 lines
-
-new, working rrdtool.spec file from Jarod Wilson jwilson redhat.com
-
-
-------------------------------------------------------------------------
-r839 | oetiker | 2006-05-27 07:44:15 +0200 | 2 lines
-
-python uses the name of the module for loding, so this should better match up -- Duncan Webb  duncan dwebb ch
-
-------------------------------------------------------------------------
-r838 | oetiker | 2006-05-25 17:13:56 +0200 | 2 lines
-
-addeed AIX instructions
-
-------------------------------------------------------------------------
-r837 | oetiker | 2006-05-23 08:52:22 +0200 | 2 lines
-
-adjust label spacing to make sure labels don't overlap for the default font.
-
-------------------------------------------------------------------------
-r836 | oetiker | 2006-05-22 00:14:27 +0200 | 2 lines
-
-add note about variable name picking as suggested by alex
-
-------------------------------------------------------------------------
-r835 | oetiker | 2006-05-22 00:07:02 +0200 | 1 line
-
-another Makefile update from guenter
-------------------------------------------------------------------------
-r834 | oetiker | 2006-05-22 00:06:17 +0200 | 2 lines
-
-tiny updates to netware and win32 makefiles -- Guenter Knauf
-
-------------------------------------------------------------------------
-r833 | oetiker | 2006-05-21 23:53:57 +0200 | 2 lines
-
-fixed type hte->the
-
-------------------------------------------------------------------------
-r832 | oetiker | 2006-05-21 23:47:23 +0200 | 3 lines
-
-make vdef time part available in the data_calc stage so that the legend printer
-can decide properly
-
-------------------------------------------------------------------------
-r831 | oetiker | 2006-05-21 23:15:39 +0200 | 2 lines
-
-new GPRINT option :strftime to print time associated with a VDEF value
-
-------------------------------------------------------------------------
-r830 | oetiker | 2006-05-21 22:20:11 +0200 | 2 lines
-
-make configure test which flags gcc actually accepts ... 
-
-------------------------------------------------------------------------
-r829 | oetiker | 2006-05-21 15:08:46 +0200 | 2 lines
-
-don't deprecate HRULE anymore
-
-------------------------------------------------------------------------
-r828 | oetiker | 2006-05-21 14:37:12 +0200 | 2 lines
-
-allow DS names starting with the same letters as operators
-
-------------------------------------------------------------------------
-r827 | oetiker | 2006-05-12 15:26:00 +0200 | 2 lines
-
-we wan't to dist thread_save_nt too
-
-------------------------------------------------------------------------
-r826 | oetiker | 2006-05-11 13:11:04 +0200 | 2 lines
-
-make DNAN and DINF faster by caching the result of the first calculation -- pascal.gloor spale.com
-
-------------------------------------------------------------------------
-r825 | oetiker | 2006-05-11 09:37:58 +0200 | 2 lines
-
-tell Makefile.PL how to store an rpath under aix
-
-------------------------------------------------------------------------
-r824 | oetiker | 2006-05-10 22:51:09 +0200 | 2 lines
-
-improved scaling for --logarithmic mode ... -- beat.zahnd space.unibe.ch
-
-------------------------------------------------------------------------
-r823 | oetiker | 2006-05-09 20:46:14 +0200 | 2 lines
-
-don't panic if the user forgets to specify the name of the rrd file
-
-------------------------------------------------------------------------
-r822 | oetiker | 2006-05-07 12:46:24 +0200 | 2 lines
-
-make legend spacing more reliable. handle the fact that some graph comands do not contribute to the legend -- tobi
-
-------------------------------------------------------------------------
-r821 | oetiker | 2006-05-06 15:29:33 +0200 | 3 lines
-
-lets have index.html -- Peter Breitenlohner <peb mppmu.mpg.de>
-
-
-------------------------------------------------------------------------
-r820 | oetiker | 2006-05-06 15:28:57 +0200 | 4 lines
-
-Avoid gcc warning (discards qualifier) in tclrrd.c -- Peter Breitenlohner <peb mppmu.mpg.de>
-
-
-
-------------------------------------------------------------------------
-r819 | oetiker | 2006-05-06 15:28:16 +0200 | 2 lines
-
-Avoid gcc warning ("static not first") -- Peter Breitenlohner <peb mppmu.mpg.de>
-
-------------------------------------------------------------------------
-r818 | oetiker | 2006-05-06 15:24:23 +0200 | 3 lines
-
-Avoid gcc warnings about use of "long long" -- Peter Breitenlohner <peb mppmu.mpg.de>
-
-
-------------------------------------------------------------------------
-r817 | oetiker | 2006-05-06 15:21:42 +0200 | 2 lines
-
-Use tclpkgdir instead of pkglibdir in order to avoid automake warning --  Peter Breitenlohner <peb mppmu.mpg.de>
-
-------------------------------------------------------------------------
-r816 | oetiker | 2006-05-06 15:20:26 +0200 | 4 lines
-
-The rrdtoolmodule.so should be installed in pyexecdir instead of pythondir (they differ if prefix!=exec_prefix) -- Peter Breitenlohner <peb mppmu.mpg.de>
-
-
-
-------------------------------------------------------------------------
-r815 | oetiker | 2006-05-04 22:41:51 +0200 | 3 lines
-
-fix for debian bug 359071 ... reporting the long cdef in the error message was too much ...
-plus some other small cleanups in this context
-
-------------------------------------------------------------------------
-r813 | oetiker | 2006-05-04 15:26:21 +0200 | 1 line
-
-prepare for the release of rrdtool-1.2.13
-------------------------------------------------------------------------
-r812 | oetiker | 2006-05-04 15:24:16 +0200 | 2 lines
-
-fix my mail address
-
-------------------------------------------------------------------------
-r811 | oetiker | 2006-05-04 15:12:01 +0200 | 2 lines
-
-fewer double frees ... -- slamb slamb.org
-
-------------------------------------------------------------------------
-r810 | oetiker | 2006-05-04 15:02:26 +0200 | 4 lines
-
-* fixed argument parsing for long options
-* no more doublefree on abort
-* enable restore of xml dumps created with rrdtool 1.0.x
-
-------------------------------------------------------------------------
-r809 | oetiker | 2006-05-04 14:11:09 +0200 | 3 lines
-
-if end % step == 0 we should still fetch a full step ... no need
-for special handling
-
-------------------------------------------------------------------------
-r808 | oetiker | 2006-05-04 09:48:04 +0200 | 4 lines
-
-updated handling of subsecond resolution in connection with unknown data ... bugreport #38 pointed out
-that the old handling where the seconds were rounded could lead to cases where the data stored was higher than the data input ...
-now I always floor the unknown seconds and this will lead to the same or lower data but not higher ... -- tobi
-
-------------------------------------------------------------------------
-r806 | oetiker | 2006-05-02 22:52:46 +0200 | 2 lines
-
-variables should be defined at the bein of the block ... else we loose portability!
-
-------------------------------------------------------------------------
-r805 | oetiker | 2006-04-29 10:57:25 +0200 | 2 lines
-
-fixed spelling
-
-------------------------------------------------------------------------
-r804 | oetiker | 2006-04-27 08:37:03 +0200 | 2 lines
-
-new units=si option -- wim.heirmann elis.urgent.be
-
-------------------------------------------------------------------------
-r802 | oetiker | 2006-04-25 23:00:09 +0200 | 2 lines
-
-compile without multibyte support
-
-------------------------------------------------------------------------
-r801 | oetiker | 2006-04-25 22:59:41 +0200 | 2 lines
-
-lets have proper dependencies
-
-------------------------------------------------------------------------
-r800 | oetiker | 2006-04-24 17:14:10 +0200 | 2 lines
-
-make sure things are initialised ... 
-
-------------------------------------------------------------------------
-r796 | oetiker | 2006-04-18 07:29:34 +0200 | 2 lines
-
-shared should be share !
-
-------------------------------------------------------------------------
-r795 | oetiker | 2006-04-17 22:25:33 +0200 | 3 lines
-
-Add a second label to the Y axis if there is only going to be one -- Jason A. Smith smithj4 X bnl.gov
-
-
-------------------------------------------------------------------------
-r790 | oetiker | 2006-04-14 12:17:28 +0200 | 2 lines
-
-no more people links!
-
-------------------------------------------------------------------------
-r788 | oetiker | 2006-04-14 11:22:00 +0200 | 2 lines
-
-remove people references
-
-------------------------------------------------------------------------
-r785 | oetiker | 2006-04-07 16:37:52 +0200 | 2 lines
-
-add solaris hint to bild procedure
-
-------------------------------------------------------------------------
-r784 | oetiker | 2006-04-04 20:46:08 +0200 | 2 lines
-
-allow for input lines of arbitrary length in rrdtool pipe mode -- roger.meier terreactive.ch
-
-------------------------------------------------------------------------
-r782 | oetiker | 2006-04-01 17:36:05 +0200 | 1 line
-
-watermartk feature for rrdgraph by Ronan Mullally
-------------------------------------------------------------------------
-r781 | oetiker | 2006-03-26 16:36:35 +0200 | 2 lines
-
-vnames can be up to MAX_VNAME_LEN long ... not only 30 chars ... --  Ulf Harnhammar metaur telia.com
-
-------------------------------------------------------------------------
-r780 | oetiker | 2006-03-26 16:29:53 +0200 | 2 lines
-
-potential bufferoverflow throught large windir avoided
-
-------------------------------------------------------------------------
-r776 | oetiker | 2006-03-14 15:59:57 +0100 | 2 lines
-
-added note on the fact that no OK will be printed in rrdtool pipe mode if an error occures.
-
-------------------------------------------------------------------------
-r775 | oetiker | 2006-03-14 08:11:00 +0100 | 2 lines
-
-RRDtool in remote mode will either print an ERROR line or an OK line not both.
-
-------------------------------------------------------------------------
-r774 | oetiker | 2006-03-14 00:21:27 +0100 | 2 lines
-
-in pipe mode, make rrd_tool send errors to STDOUT (most of the time) -- tobi
-
-------------------------------------------------------------------------
-r772 | oetiker | 2006-03-06 08:15:45 +0100 | 2 lines
-
-at least freebsd will not do utf8 bits properly without this
-
-------------------------------------------------------------------------
-r769 | oetiker | 2006-03-04 00:11:55 +0100 | 3 lines
-
-* simplify code for STACK function ... there were two code paths (new as well as legacy from 1.0.x)
-* make TICK work for negative fractions
-
-------------------------------------------------------------------------
-r768 | oetiker | 2006-03-04 00:10:46 +0100 | 2 lines
-
-remove ~ from my wishlist address ... 
-
-------------------------------------------------------------------------
-r767 | oetiker | 2006-03-04 00:10:14 +0100 | 2 lines
-
-make this compile even when HAVE_MBSTOWCS is not set
-
-------------------------------------------------------------------------
-r766 | oetiker | 2006-02-23 08:26:28 +0100 | 3 lines
-
-separate matching of full and partial match evaluation for better result stability. The fetch result was dependent on the RRA ordering before.  -- Jo Rhett jrhett svcolo.com
-
-
-------------------------------------------------------------------------
-r764 | oetiker | 2006-02-20 07:20:37 +0100 | 2 lines
-
-YYYYMMDDhhmm is not supported ... only YYYYMMDD
-
-------------------------------------------------------------------------
-r761 | oetiker | 2006-02-08 12:35:10 +0100 | 2 lines
-
-OS and COPYRIGHT removed from the rrdcgi INTERNAL function since we do not have this info
-
-------------------------------------------------------------------------
-r760 | oetiker | 2006-02-06 20:49:23 +0100 | 1 line
-
-new rrdcgi function RRD::INTERNAL for accessing VERSION, COPYRIGHT, COMPILETIME, OS -- Guenter Knauf gk gknw.de
-------------------------------------------------------------------------
-r759 | oetiker | 2006-02-06 20:46:26 +0100 | 2 lines
-
-we have 2006 now so let's show it
-
-------------------------------------------------------------------------
-r755 | oetiker | 2006-01-30 00:28:21 +0100 | 1 line
-
-more makefile cleanup from Guenter Knauf gk gknw.de
-------------------------------------------------------------------------
-r752 | oetiker | 2006-01-25 20:09:12 +0100 | 2 lines
-
-allow RRDp  to catch errors
-
-------------------------------------------------------------------------
-r751 | oetiker | 2006-01-22 13:02:47 +0100 | 3 lines
-
-clarified the documentation of xff -- Michael Bunk  mb computer-leipzig.com
-
-
-------------------------------------------------------------------------
-r750 | oetiker | 2006-01-22 12:00:18 +0100 | 2 lines
-
-the operator in the example is * not + -- Nick Sharp njsharp bigpond.net.au
-
-------------------------------------------------------------------------
-r748 | oetiker | 2006-01-15 14:31:12 +0100 | 2 lines
-
-make sure we pickup the correct config.h ... -- Blair Zajac blair orcaware.com
-
-------------------------------------------------------------------------
-r747 | oetiker | 2006-01-15 13:31:03 +0100 | 2 lines
-
-make sure the image size only gets printed from rrd_tool when --imageinfo is NOT set.
-
-------------------------------------------------------------------------
-r746 | oetiker | 2006-01-15 13:25:36 +0100 | 2 lines
-
-make sure gcc does not thing gridind may be undefined
-
-------------------------------------------------------------------------
-r745 | oetiker | 2006-01-15 12:12:51 +0100 | 2 lines
-
-HWPREDICT without reference number will implicitly create the other Holt-Winters RRAs.
-
-------------------------------------------------------------------------
-r744 | oetiker | 2006-01-15 10:03:30 +0100 | 2 lines
-
-updated NetWare and Cygwin Builds
-
-------------------------------------------------------------------------
-r743 | oetiker | 2006-01-15 09:55:53 +0100 | 2 lines
-
-make sure gridind is defined under all conditions
-
-------------------------------------------------------------------------
-r742 | oetiker | 2006-01-14 10:10:16 +0100 | 2 lines
-
-add perlbindings and optional export filename to rrd_dump -- Nicola Worthington nicolaw arwen.tfb.net
-
-------------------------------------------------------------------------
-r740 | oetiker | 2006-01-05 21:39:12 +0100 | 2 lines
-
-let the building of the perl extension be more reliable ... 
-
-------------------------------------------------------------------------
-r739 | oetiker | 2006-01-05 21:07:41 +0100 | 2 lines
-
-remove redundant if statement in rrd_gfx pdf code ...  -- NormW
-
-------------------------------------------------------------------------
-r737 | oetiker | 2006-01-04 23:07:46 +0100 | 2 lines
-
-Compile time improvments for NetWare and Win32 -- Guenter Knauf  gk.gknw.de
-
-------------------------------------------------------------------------
-r736 | oetiker | 2006-01-04 21:12:20 +0100 | 2 lines
-
-make sure this actually compiles with HAVE_MBSTOWCS is not defined
-
-------------------------------------------------------------------------
-r735 | oetiker | 2005-12-30 15:36:30 +0100 | 3 lines
-
-only use getuid if it is actually available ...
-
-
-------------------------------------------------------------------------
-r734 | oetiker | 2005-12-26 17:01:40 +0100 | 3 lines
-
-added heartbeat grahics
-
-
-------------------------------------------------------------------------
-r733 | oetiker | 2005-12-19 13:28:55 +0100 | 2 lines
-
-fix tcl issues ... build with pre tcl8.4 ... do not try to install into the tcl tree unless --enable-tcl-site is given -- tobi
-
-------------------------------------------------------------------------
-r729 | oetiker | 2005-12-18 21:30:31 +0100 | 1 line
-
-prepare for the release of rrdtool-1.2.12
-------------------------------------------------------------------------
-r728 | oetiker | 2005-12-18 21:29:51 +0100 | 3 lines
-
-added FLOSS exception from http://www.mysql.com/company/legal/licensing/foss-exception.html
-in order to not end up in license incompatibility hell -- tobi
-
-------------------------------------------------------------------------
-r725 | oetiker | 2005-11-30 10:19:16 +0100 | 3 lines
-
-if called with --lazy we still want to PRINT ... -- Bartek Szady bszx from bszx.eu.org
-
-
-------------------------------------------------------------------------
-r723 | oetiker | 2005-11-28 22:59:15 +0100 | 2 lines
-
-we should still consider the mrhb ... 
-
-------------------------------------------------------------------------
-r722 | oetiker | 2005-11-20 11:16:38 +0100 | 2 lines
-
-improve win32 compilation -- Norm
-
-------------------------------------------------------------------------
-r721 | oetiker | 2005-11-18 21:38:51 +0100 | 2 lines
-
-deal with versions ending in letters
-
-------------------------------------------------------------------------
-r718 | oetiker | 2005-11-16 14:14:25 +0100 | 3 lines
-
-have indivitudal lines for generating output files, so that cygwin does not choke
-
-
-------------------------------------------------------------------------
-r717 | oetiker | 2005-11-15 00:07:30 +0100 | 2 lines
-
-make mmap test a little saver
-
-------------------------------------------------------------------------
-r714 | oetiker | 2005-11-14 12:46:31 +0100 | 2 lines
-
-cygwin can actually do mmap ... -- larryjadams with comcast.net
-
-------------------------------------------------------------------------
-r713 | oetiker | 2005-11-14 08:32:23 +0100 | 2 lines
-
-guess the option should still  be called template :-)
-
-------------------------------------------------------------------------
-r712 | oetiker | 2005-11-13 19:32:10 +0100 | 2 lines
-
-improve screen apperance of configure output as suggested by Dale -- tobi
-
-------------------------------------------------------------------------
-r711 | oetiker | 2005-11-13 19:31:38 +0100 | 2 lines
-
-don't use clean: target ... automake wants this to be clean-local:
-
-------------------------------------------------------------------------
-r710 | oetiker | 2005-11-13 00:36:10 +0100 | 3 lines
-
-add xmlns declaration to svg output -- R.P. Aditya <aditya with grot.org>
-
-
-------------------------------------------------------------------------
-r709 | oetiker | 2005-11-13 00:30:50 +0100 | 2 lines
-
-clean target was broken
-
-------------------------------------------------------------------------
-r708 | oetiker | 2005-11-13 00:10:48 +0100 | 5 lines
-
-* integrate necessary cgi functionality into rrd_cgi.c so that libcgi is not
-  required anymore ...  -- D. Walsh <buildsmart at daleenterprise.com>
-
-* check if we have to include malloc/malloc.h to make malloc work ... -- tobi
-
-------------------------------------------------------------------------
-r707 | oetiker | 2005-11-07 20:12:47 +0100 | 3 lines
-
-the variable template has to generic a name, it clashes with other things
-in some environments.
-
-------------------------------------------------------------------------
-r706 | oetiker | 2005-10-28 07:55:36 +0200 | 3 lines
-
-added openbsd note
-
-
-------------------------------------------------------------------------
-r705 | oetiker | 2005-10-24 22:55:03 +0200 | 2 lines
-
-use multithreded version of librrd -- Oleg Derevenetz <oleg with vsi.ru>
-
-------------------------------------------------------------------------
-r702 | oetiker | 2005-10-11 19:09:09 +0200 | 2 lines
-
-improved error messages for rrd_graph commandline parsing -- Alex
-
-------------------------------------------------------------------------
-r701 | oetiker | 2005-10-11 18:51:50 +0200 | 2 lines
-
-fix file generation
-
-------------------------------------------------------------------------
-r700 | oetiker | 2005-10-11 18:41:15 +0200 | 2 lines
-
-die on error! -- Alex
-
-------------------------------------------------------------------------
-r699 | oetiker | 2005-10-11 18:37:58 +0200 | 2 lines
-
-the images should be written to the current directory ... -- Alex
-
-------------------------------------------------------------------------
-r698 | oetiker | 2005-10-11 18:32:09 +0200 | 2 lines
-
-do not complain about strict aliasing issues -- Alex
-
-------------------------------------------------------------------------
-r697 | oetiker | 2005-10-08 23:58:57 +0200 | 2 lines
-
-allow rrd::graph to write directly to a tcl stream ... by Dave Bodenstab <dave with bodenstab.org>
-
-------------------------------------------------------------------------
-r696 | oetiker | 2005-10-07 09:48:52 +0200 | 2 lines
-
-updates for tcl bindings by -- Dave Bodenstab <dave on bodenstab.org>
-
-------------------------------------------------------------------------
-r695 | oetiker | 2005-10-07 09:48:01 +0200 | 2 lines
-
-included favicon in distro
-
-------------------------------------------------------------------------
-r691 | oetiker | 2005-09-26 22:33:45 +0200 | 2 lines
-
-plugged two memmory leaks happening when a requested font is not found.
-
-------------------------------------------------------------------------
-r690 | oetiker | 2005-09-24 01:06:12 +0200 | 3 lines
-
-hmpf its the gdef step we are talking about not the image step !
-
-
-------------------------------------------------------------------------
-r689 | oetiker | 2005-09-22 22:18:12 +0200 | 2 lines
-
-do not 'reload' data if you already have it!
-
-------------------------------------------------------------------------
-r688 | oetiker | 2005-09-22 22:17:42 +0200 | 3 lines
-
-the -r option should not expect an argument
-
-
-------------------------------------------------------------------------
-r685 | oetiker | 2005-09-19 09:42:17 +0200 | 2 lines
-
-do not free stuff that gets freed later anyway
-
-------------------------------------------------------------------------
-r684 | oetiker | 2005-09-18 20:28:19 +0200 | 2 lines
-
-Netware Build Updates --- Guenter Knauf <gk with gknw.de>
-
-------------------------------------------------------------------------
-r683 | oetiker | 2005-09-18 18:59:34 +0200 | 3 lines
-
-allocate memory for one more row ... fetch can not return 0 reows ... 
-
-
-------------------------------------------------------------------------
-r682 | oetiker | 2005-09-18 17:39:49 +0200 | 2 lines
-
-comparing floating point numbers is dangerouse ... don't do this directly!
-
-------------------------------------------------------------------------
-r681 | oetiker | 2005-09-01 23:23:34 +0200 | 3 lines
-
-since we use firstdir even without CHROOT it should better be defined in any case
--- Guenter Knauf
-
-------------------------------------------------------------------------
-r680 | oetiker | 2005-08-30 07:52:41 +0200 | 3 lines
-
-When selecting the x-axis label take the length of the time shown in the graph into consideration
-just showing %H:%M in a two day presentation is a problem ... -- LAUKENS Niels <Niels.LAUKENS .. VRT.BE>
-
-------------------------------------------------------------------------
-r679 | oetiker | 2005-08-28 09:33:13 +0200 | 3 lines
-
-fixed location of example scripts
-
-
-------------------------------------------------------------------------
-r678 | oetiker | 2005-08-27 23:29:21 +0200 | 7 lines
-
-resolve subsecond resolution logging and handling of unknown values by
-starting off with an unknown value when building a pdp instead of starting
-out with 0 and then turning it into unknown later on if the number of uknown
-seconds is equal or larger than the interval ...
-
-
-
-------------------------------------------------------------------------
-r677 | oetiker | 2005-08-27 22:55:46 +0200 | 2 lines
-
-the rrdtool binary one more level up the path ... 
-
-------------------------------------------------------------------------
-r676 | oetiker | 2005-08-27 22:52:12 +0200 | 2 lines
-
-update for new prefix setting
-
-------------------------------------------------------------------------
-r675 | oetiker | 2005-08-25 22:43:04 +0200 | 3 lines
-
-when resize converts a v1 rrd to v3 it should also change the version number in the head ... 
-
-
-------------------------------------------------------------------------
-r674 | oetiker | 2005-08-23 23:18:23 +0200 | 3 lines
-
-fixes for compiling rrdtool with win32 mingw and netware -- Guenter Knauf <gk with gknw.de>
-
-
-------------------------------------------------------------------------
-r673 | oetiker | 2005-08-16 07:30:29 +0200 | 3 lines
-
-added notes about VDEF expressions not being general purpose
-
-
-------------------------------------------------------------------------
-r672 | oetiker | 2005-08-11 21:18:36 +0200 | 2 lines
-
-only bomb is there is no chroot and someone tries to use it.
-
-------------------------------------------------------------------------
-r669 | oetiker | 2005-08-04 07:08:04 +0200 | 3 lines
-
-New VDEF functions for least squares slope, intercept & correlation for simple forecasting
--- Trent Burkard <tburkard with tangentis.com>
-
-------------------------------------------------------------------------
-r668 | oetiker | 2005-08-04 06:59:01 +0200 | 2 lines
-
-fix rounding issues that prevented UNKNOWN to work as soon as subsecond resolution was used
-
-------------------------------------------------------------------------
-r667 | oetiker | 2005-08-04 06:58:11 +0200 | 2 lines
-
-avoid drawing lines where two points are in the same spot. this mai be confusing libart
-
-------------------------------------------------------------------------
-r666 | oetiker | 2005-08-02 17:54:32 +0200 | 2 lines
-
-make sure clean works even when the perl Makefile is broken
-
-------------------------------------------------------------------------
-r665 | oetiker | 2005-07-26 11:13:36 +0200 | 2 lines
-
-initialize font to empty string for deault font case.
-
-------------------------------------------------------------------------
-r663 | oetiker | 2005-07-25 16:12:58 +0200 | 1 line
-
-prepare for the release of rrdtool-1.2.11
-------------------------------------------------------------------------
-r662 | oetiker | 2005-07-25 16:07:35 +0200 | 3 lines
-
-prepared for release
-
-
-------------------------------------------------------------------------
-r660 | oetiker | 2005-07-22 15:16:48 +0200 | 2 lines
-
-do not quit so easily when runing in interactive mode
-
-------------------------------------------------------------------------
-r659 | oetiker | 2005-07-22 15:16:18 +0200 | 2 lines
-
-init ytr after all the changes have happened
-
-------------------------------------------------------------------------
-r658 | oetiker | 2005-07-22 15:10:50 +0200 | 2 lines
-
-make --no-gridfit with --only-graph work
-
-------------------------------------------------------------------------
-r657 | oetiker | 2005-07-22 00:23:28 +0200 | 2 lines
-
-when stacking known on unknown, then we asume unknown was zero ... 
-
-------------------------------------------------------------------------
-r654 | oetiker | 2005-07-20 09:20:04 +0200 | 2 lines
-
-make sure gcc-4.0 does not optimize our tests away :-)
-
-------------------------------------------------------------------------
-r653 | oetiker | 2005-07-19 12:00:13 +0200 | 2 lines
-
-fixed some corner cases in drawing code to get the same results as before with way more performance
-
-------------------------------------------------------------------------
-r652 | oetiker | 2005-07-12 00:49:09 +0200 | 2 lines
-
-optimized drawing routines ... up to 6 times faster (in the case of smokeping)
-
-------------------------------------------------------------------------
-r651 | oetiker | 2005-07-07 12:27:55 +0200 | 2 lines
-
-colors start with # not :
-
-------------------------------------------------------------------------
-r650 | oetiker | 2005-07-04 20:49:56 +0200 | 3 lines
-
-make setting just the size and not the font work -- Havard Eidnes <he from uninett.no>
-
-
-------------------------------------------------------------------------
-r649 | oetiker | 2005-06-28 23:03:20 +0200 | 3 lines
-
-* the makefiles should not depend on gnumake features
-* make the perl module compilation environement configurable -- Stan Sinyagin ssinyagin on yahoo.com
-
-------------------------------------------------------------------------
-r646 | oetiker | 2005-06-25 07:24:52 +0200 | 2 lines
-
-added GNUMAKE and EGREP hints
-
-------------------------------------------------------------------------
-r645 | oetiker | 2005-06-20 11:15:10 +0200 | 3 lines
-
-x-axis labels should be aligned to their baseline
-alt-y-grid labels without fractionals should have no fractionals when printed
-
-------------------------------------------------------------------------
-r642 | oetiker | 2005-06-17 11:05:17 +0200 | 1 line
-
-prepare for the release of rrdtool-1.2.10
-------------------------------------------------------------------------
-r641 | oetiker | 2005-06-17 00:09:36 +0200 | 2 lines
-
-when building the sgridstep in alt-y-grid mode, take the --base into consideration.
-
-------------------------------------------------------------------------
-r639 | oetiker | 2005-06-13 23:56:48 +0200 | 2 lines
-
-simplify code for generating y axis labels a bit.
-
-------------------------------------------------------------------------
-r638 | oetiker | 2005-06-13 15:20:45 +0200 | 2 lines
-
-wide chars should better be unsigned
-
-------------------------------------------------------------------------
-r637 | oetiker | 2005-06-13 14:56:11 +0200 | 2 lines
-
-fall back to assuming latin1 encoding if mbtowchar conversion fails
-
-------------------------------------------------------------------------
-r636 | oetiker | 2005-06-13 07:43:44 +0200 | 2 lines
-
-allow for VNAMES starting with a number and add documentation -- Alex
-
-------------------------------------------------------------------------
-r635 | oetiker | 2005-06-13 07:43:16 +0200 | 2 lines
-
-add notes about small numbers for --alt-y-grid
-
-------------------------------------------------------------------------
-r634 | oetiker | 2005-06-12 22:01:57 +0200 | 3 lines
-
-kill the last stored counter value if the updates comes after mrhb
-to make sure it does not get taken into account accedenly later on.
-
-------------------------------------------------------------------------
-r633 | oetiker | 2005-06-12 22:00:07 +0200 | 3 lines
-
-make --alt-y-grid work properly in many more cases than before
-
-
-------------------------------------------------------------------------
-r632 | oetiker | 2005-06-11 21:03:46 +0200 | 2 lines
-
-be more careful when checking if a file is an rrdfile
-
-------------------------------------------------------------------------
-r631 | oetiker | 2005-06-11 08:17:02 +0200 | 4 lines
-
-distribute all generated documentation
-install in share and not shared
-drop index.html link
-
-------------------------------------------------------------------------
-r630 | oetiker | 2005-06-11 08:14:25 +0200 | 2 lines
-
-install examples in an rrdtool specific subdirectory if  the prefix does not contain rrd -- Peter Breitenlohner
-
-------------------------------------------------------------------------
-r629 | oetiker | 2005-06-11 07:41:31 +0200 | 3 lines
-
-avoid problems when building with VPATH set and --disable-perl
-fix make test for perl-piped -- Peter Breitenlohner
-
-------------------------------------------------------------------------
-r628 | oetiker | 2005-06-11 07:40:04 +0200 | 2 lines
-
-let 'out-of tree' builds work for everythin but the perl module -- Peter Breitenlohner
-
-------------------------------------------------------------------------
-r627 | oetiker | 2005-06-11 07:37:55 +0200 | 2 lines
-
-defined DPRINTF in a more compatible way -- Peter Breitenlohner
-
-------------------------------------------------------------------------
-r626 | oetiker | 2005-06-11 07:31:22 +0200 | 1 line
-
-link libcgi only against rrd_cgi since it is only needed there -- Peter Breitenlohner
-------------------------------------------------------------------------
-r625 | oetiker | 2005-06-11 07:29:45 +0200 | 1 line
-
-Make sure librrd_th properly depends on libpthread. -- Peter Breitenlohner
-------------------------------------------------------------------------
-r624 | oetiker | 2005-06-11 07:27:08 +0200 | 2 lines
-
-avoid gcc (3.4.3) warnings char format, different type arg -- Peter Breitenlohner
-
-------------------------------------------------------------------------
-r623 | oetiker | 2005-06-11 07:26:13 +0200 | 2 lines
-
-fix various problems with the tcl bindings -- Peter Breitenlohner
-
-------------------------------------------------------------------------
-r622 | oetiker | 2005-06-11 07:22:14 +0200 | 2 lines
-
-added peter breitenlohner
-
-------------------------------------------------------------------------
-r621 | oetiker | 2005-06-11 07:20:59 +0200 | 2 lines
-
-remove various gcc (3.4.3) warnings such as discards qualifier all due to 'char **' vs. 'const char **' discrepancies. -- Peter Breitenlohner peb with mppmu.mpg.de
-
-------------------------------------------------------------------------
-r620 | oetiker | 2005-06-11 07:15:37 +0200 | 2 lines
-
-re-innitializing sort of defeats the purpose
-
-------------------------------------------------------------------------
-r619 | oetiker | 2005-06-11 07:03:33 +0200 | 2 lines
-
-be more carefull in checking for sucessful open
-
-------------------------------------------------------------------------
-r618 | oetiker | 2005-06-10 21:25:36 +0200 | 2 lines
-
-vnames MUST start with a letter
-
-------------------------------------------------------------------------
-r617 | oetiker | 2005-06-10 21:24:06 +0200 | 2 lines
-
-kill another warning
-
-------------------------------------------------------------------------
-r616 | oetiker | 2005-06-10 20:44:40 +0200 | 6 lines
-
-make  --font more flexible:
-
-* TITLE:30:   just alter the size of the title
-* DEFAULT:0:/tmp/funfont.ttf  alter the font but not the size
-
-
-------------------------------------------------------------------------
-r613 | oetiker | 2005-06-10 10:42:44 +0200 | 2 lines
-
-added missing cd and replace one path with a variable
-
-------------------------------------------------------------------------
-r612 | oetiker | 2005-06-08 00:10:01 +0200 | 2 lines
-
-make pdf/eps/svg formats utf8 aware too -- Peter Speck
-
-------------------------------------------------------------------------
-r611 | oetiker | 2005-06-06 07:32:44 +0200 | 2 lines
-
-sync up with Dag Wieers version from http://dag.wieers.com/packages/rrdtool/rrdtool.spec
-
-------------------------------------------------------------------------
-r610 | oetiker | 2005-06-06 00:23:32 +0200 | 3 lines
-
-New functions for CDEF ATAN2 RAD2DEG and DEG2RAD
--- Simon Melhuish <simon mailing from melhuish.info>
-
-------------------------------------------------------------------------
-r605 | oetiker | 2005-05-31 08:22:31 +0200 | 2 lines
-
-fixed epoch
-
-------------------------------------------------------------------------
-r603 | oetiker | 2005-05-28 15:01:43 +0200 | 1 line
-
-prepare for the release of rrdtool-1.2.9
-------------------------------------------------------------------------
-r602 | oetiker | 2005-05-28 14:53:13 +0200 | 2 lines
-
-add notes on building on Mac OS X
-
-------------------------------------------------------------------------
-r601 | oetiker | 2005-05-28 14:52:50 +0200 | 3 lines
-
-kill a few warnings
-
-
-------------------------------------------------------------------------
-r600 | oetiker | 2005-05-28 14:52:26 +0200 | 2 lines
-
-make the bindings work on os x
-
-------------------------------------------------------------------------
-r599 | oetiker | 2005-05-27 21:17:17 +0200 | 2 lines
-
-add note on variable names
-
-------------------------------------------------------------------------
-r598 | oetiker | 2005-05-27 21:12:23 +0200 | 2 lines
-
-remove one more warning
-
-------------------------------------------------------------------------
-r597 | oetiker | 2005-05-27 21:12:12 +0200 | 2 lines
-
-there is realy no reason to have the vnames constraind so much
-
-------------------------------------------------------------------------
-r596 | oetiker | 2005-05-27 21:01:53 +0200 | 3 lines
-
-only print ttf font errors when compiled with -DDEBUG
-
-
-------------------------------------------------------------------------
-r593 | oetiker | 2005-05-23 00:29:11 +0200 | 2 lines
-
-don't go into an endless loop upon finding a bad character in a truetype font
-
-------------------------------------------------------------------------
-r591 | oetiker | 2005-05-20 08:20:19 +0200 | 2 lines
-
-go into rrdbuild too if we use tcsh
-
-------------------------------------------------------------------------
-r590 | oetiker | 2005-05-20 07:48:52 +0200 | 2 lines
-
-initial checking
-
-------------------------------------------------------------------------
-r589 | oetiker | 2005-05-20 07:46:52 +0200 | 2 lines
-
-remove extra whitespace at the end of lines
-
-------------------------------------------------------------------------
-r588 | oetiker | 2005-05-20 07:43:27 +0200 | 2 lines
-
-introduce builddir
-
-------------------------------------------------------------------------
-r586 | oetiker | 2005-05-20 07:14:20 +0200 | 2 lines
-
-iconf is not needed so to not check for it
-
-------------------------------------------------------------------------
-r585 | oetiker | 2005-05-20 01:21:51 +0200 | 1 line
-
-added propper numeric version number to version
-------------------------------------------------------------------------
-r584 | oetiker | 2005-05-20 01:21:20 +0200 | 4 lines
-
-add multibyte to wide char conversion ability. Now every string
-users input should should be handled propperly by rrdtool,
-whatever your locale says will work.
-
-------------------------------------------------------------------------
-r583 | oetiker | 2005-05-20 01:19:09 +0200 | 1 line
-
-windows at least stores null terminated char strings in dummychar1 -- Philippe
-------------------------------------------------------------------------
-r581 | oetiker | 2005-05-18 22:20:55 +0200 | 2 lines
-
-make tcl compile again ... don't know if it will work though
-
-------------------------------------------------------------------------
-r580 | oetiker | 2005-05-18 21:43:03 +0200 | 2 lines
-
-fix rrd_version prototype
-
-------------------------------------------------------------------------
-r579 | oetiker | 2005-05-18 21:41:08 +0200 | 2 lines
-
-cleaned up version number code and added new function rrd_version -- partly by Burton Strauss
-
-------------------------------------------------------------------------
-r578 | oetiker | 2005-05-18 21:18:59 +0200 | 3 lines
-
-help building perl on hpux
-
-
-------------------------------------------------------------------------
-r571 | oetiker | 2005-05-16 22:56:09 +0200 | 1 line
-
-prepare for the release of rrdtool-1.2.8
-------------------------------------------------------------------------
-r570 | oetiker | 2005-05-16 22:55:29 +0200 | 4 lines
-
-redo --disable-* options for python and tcl
-add some more quotes to protect potentially empty variables in tests which
-should make configure more robust.
-
-------------------------------------------------------------------------
-r569 | oetiker | 2005-05-16 22:04:42 +0200 | 2 lines
-
-if python stuff does not work, do not die, just do not compile python
-
-------------------------------------------------------------------------
-r568 | oetiker | 2005-05-16 22:02:26 +0200 | 2 lines
-
-fix extra argument when testing for PERLCC problem -- Simon Leinen
-
-------------------------------------------------------------------------
-r565 | oetiker | 2005-05-16 14:18:16 +0200 | 1 line
-
-prepare for the release of rrdtool-1.2.7
-------------------------------------------------------------------------
-r564 | oetiker | 2005-05-16 14:14:19 +0200 | 3 lines
-
-added note about --alt-y-mrtg
-
-
-------------------------------------------------------------------------
-r563 | oetiker | 2005-05-16 12:12:26 +0200 | 3 lines
-
-fix the color square spacing so that it works regardles of the fontsize
-and with transparend backgrounds.
-
-------------------------------------------------------------------------
-r562 | oetiker | 2005-05-16 11:01:01 +0200 | 2 lines
-
-added alt-y-mrtg option as a dummy so that old apps who use it do not crash when doing so.
-
-------------------------------------------------------------------------
-r561 | oetiker | 2005-05-16 08:33:30 +0200 | 2 lines
-
-reintroduced the FRAME color ... somehow it was lost from 1.0.x
-
-------------------------------------------------------------------------
-r560 | oetiker | 2005-05-15 16:16:15 +0200 | 1 line
-
-make transparent backgrounds work propperly
-------------------------------------------------------------------------
-r559 | oetiker | 2005-05-14 23:57:46 +0200 | 2 lines
-
-it seems that _WIN32 is more commonly defined thatn WIN32 on win32 ... (gifford.hesketh on gmail.com)
-
-------------------------------------------------------------------------
-r558 | oetiker | 2005-05-14 19:32:05 +0200 | 3 lines
-
-added a note to dump old rrd files with a current rrdtool dump to get the upgraded on the fly. Adding 001 support should
-not be all that tough though. Any takers ?
-
-------------------------------------------------------------------------
-r557 | oetiker | 2005-05-14 17:07:35 +0200 | 1 line
-
-check cookie read for success
-------------------------------------------------------------------------
-r556 | oetiker | 2005-05-14 11:35:02 +0200 | 5 lines
-
-if the y value is out of bounds, make it just a wee bit larger or smaller
-than the bound so that the code can detect this by comparing it with the
-bound, but make it so small that it is not visible.
-
-
-------------------------------------------------------------------------
-r555 | oetiker | 2005-05-13 00:27:06 +0200 | 1 line
-
-one sed is quite enough
-------------------------------------------------------------------------
-r554 | oetiker | 2005-05-13 00:22:45 +0200 | 2 lines
-
-[ must be quoted by [ ...
-
-------------------------------------------------------------------------
-r553 | oetiker | 2005-05-13 00:12:56 +0200 | 2 lines
-
-add global option
-
-------------------------------------------------------------------------
-r552 | oetiker | 2005-05-13 00:06:13 +0200 | 2 lines
-
-fox sed line for unsetting header cache
-
-------------------------------------------------------------------------
-r551 | oetiker | 2005-05-13 00:03:33 +0200 | 2 lines
-
-make sure the header gets tested twice
-
-------------------------------------------------------------------------
-r550 | oetiker | 2005-05-13 00:03:01 +0200 | 1 line
-
-add notes on python error, and install location
-------------------------------------------------------------------------
-r549 | oetiker | 2005-05-12 13:32:39 +0200 | 1 line
-
-allow 3/4 component color rrdtool graph --color too -- Alex
-------------------------------------------------------------------------
-r548 | oetiker | 2005-05-12 13:28:13 +0200 | 2 lines
-
-make the areas a little bigger still for propper overlapping
-
-------------------------------------------------------------------------
-r547 | oetiker | 2005-05-12 13:22:11 +0200 | 3 lines
-
-make parsing of DS arguments more robust and give more sensible
-error messages. -- Alex 
-
-------------------------------------------------------------------------
-r546 | oetiker | 2005-05-12 10:38:53 +0200 | 4 lines
-
-make the areas that makeup the graphs a little larger, so that they overlap a bit
-and do not exhibit white lines when touching each other.
-
-
-------------------------------------------------------------------------
-r545 | oetiker | 2005-05-12 07:48:56 +0200 | 2 lines
-
-some more warning fixes
-
-------------------------------------------------------------------------
-r544 | oetiker | 2005-05-12 07:41:09 +0200 | 2 lines
-
-add unused to prevent warnings about self
-
-------------------------------------------------------------------------
-r543 | oetiker | 2005-05-11 20:31:00 +0200 | 2 lines
-
-intial python bindings documentation
-
-------------------------------------------------------------------------
-r541 | oetiker | 2005-05-11 14:09:36 +0200 | 2 lines
-
-fix wording for min/max ... they are not optional
-
-------------------------------------------------------------------------
-r540 | oetiker | 2005-05-10 22:19:55 +0200 | 2 lines
-
-second installment with warning fixes from alan
-
-------------------------------------------------------------------------
-r539 | oetiker | 2005-05-10 20:52:43 +0200 | 2 lines
-
-python bindings add -- Alan Milligan alan from balclutha.org
-
-------------------------------------------------------------------------
-r538 | oetiker | 2005-05-10 20:35:55 +0200 | 2 lines
-
-fix for character escaping in EPS -- Peter Speck
-
-------------------------------------------------------------------------
-r536 | oetiker | 2005-05-10 08:07:41 +0200 | 1 line
-
-prepare for the release of rrdtool-1.2.6
-------------------------------------------------------------------------
-r535 | oetiker | 2005-05-10 08:06:49 +0200 | 2 lines
-
-I guess the pdf entities want to be escaped chars not just control caracters with a prepended backslash ... 
-
-------------------------------------------------------------------------
-r534 | oetiker | 2005-05-10 07:18:28 +0200 | 2 lines
-
-we should not use C++ comments in c files
-
-------------------------------------------------------------------------
-r533 | oetiker | 2005-05-10 06:14:17 +0200 | 2 lines
-
-we should distribute unused.h if we use it :-)
-
-------------------------------------------------------------------------
-r531 | oetiker | 2005-05-09 22:15:38 +0200 | 1 line
-
-prepare for the release of rrdtool-1.2.5
-------------------------------------------------------------------------
-r530 | oetiker | 2005-05-09 22:13:28 +0200 | 2 lines
-
-silence warnings for UNUSED variables without changeing the funtion interfaces -- Alex
-
-------------------------------------------------------------------------
-r529 | oetiker | 2005-05-09 21:32:12 +0200 | 2 lines
-
-allow decimal positions y axis labels as soon as the max entry is < 10 
-
-------------------------------------------------------------------------
-r528 | oetiker | 2005-05-09 21:11:05 +0200 | 2 lines
-
-fix rendering of the color spots especially when proportional fonts are in use.
-
-------------------------------------------------------------------------
-r526 | oetiker | 2005-05-09 16:01:21 +0200 | 3 lines
-
-EPS/SVG/PDF code ...  more comments and better font finder including removal of hardcoded SVG font.
--- Peter Speck speck from vitality.dk
-
-------------------------------------------------------------------------
-r525 | oetiker | 2005-05-09 15:22:23 +0200 | 3 lines
-
-* switch to courier if the font is unknown
-* fix font positioning
-
-------------------------------------------------------------------------
-r523 | oetiker | 2005-05-09 07:39:59 +0200 | 2 lines
-
-perls $^O is set to linux not Linux
-
-------------------------------------------------------------------------
-r522 | oetiker | 2005-05-09 00:02:35 +0200 | 2 lines
-
-svg/pdf/eps rendering improvements. There are still issues though ... -- peter speck
-
-------------------------------------------------------------------------
-r521 | oetiker | 2005-05-08 23:25:42 +0200 | 2 lines
-
-added support for getting ascent/descent size info for ps fonts -- Peter Speck
-
-------------------------------------------------------------------------
-r520 | oetiker | 2005-05-08 22:15:18 +0200 | 2 lines
-
-we do not actually need these files ... goodbye
-
-------------------------------------------------------------------------
-r518 | oetiker | 2005-05-08 18:59:20 +0200 | 1 line
-
-prepare for the release of rrdtool-1.2.4
-------------------------------------------------------------------------
-r517 | oetiker | 2005-05-08 18:22:25 +0200 | 4 lines
-
-* adjust spacing at the left border of the graph. use less white space
-* increasse minimal grid spacing and label spacing
-
-
-------------------------------------------------------------------------
-r516 | oetiker | 2005-05-08 18:02:28 +0200 | 2 lines
-
-increase minimal vertical spacing for y-axis lables
-
-------------------------------------------------------------------------
-r515 | oetiker | 2005-05-08 18:01:40 +0200 | 2 lines
-
-shorten space for y-axis labels a bit
-
-------------------------------------------------------------------------
-r514 | oetiker | 2005-05-08 17:40:28 +0200 | 2 lines
-
-remove the premature fox for the unused parameter in xport
-
-------------------------------------------------------------------------
-r513 | oetiker | 2005-05-08 17:30:12 +0200 | 2 lines
-
-sync with reality
-
-------------------------------------------------------------------------
-r512 | oetiker | 2005-05-08 17:19:02 +0200 | 2 lines
-
-be more portable with shorter strings
-
-------------------------------------------------------------------------
-r511 | oetiker | 2005-05-08 17:18:47 +0200 | 2 lines
-
-we do not use the affine functions
-
-------------------------------------------------------------------------
-r510 | oetiker | 2005-05-08 17:07:27 +0200 | 2 lines
-
-removed extra $ from from PERLCC test
-
-------------------------------------------------------------------------
-r509 | oetiker | 2005-05-08 10:20:48 +0200 | 2 lines
-
-fix rendering errors by removing single spaces
-
-------------------------------------------------------------------------
-r507 | oetiker | 2005-05-08 01:54:52 +0200 | 1 line
-
-prepare for the release of rrdtool-1.2.3
-------------------------------------------------------------------------
-r506 | oetiker | 2005-05-08 01:26:30 +0200 | 2 lines
-
-fix some more y0, y1 complaints
-
-------------------------------------------------------------------------
-r505 | oetiker | 2005-05-08 01:26:14 +0200 | 3 lines
-
-When encountering an empty legend, do NOT make
-space for drawing the color spats in front of it.
-
-------------------------------------------------------------------------
-r503 | oetiker | 2005-05-07 17:57:55 +0200 | 1 line
-
-prep for 1.2.2 release
-------------------------------------------------------------------------
-r502 | oetiker | 2005-05-07 17:51:47 +0200 | 2 lines
-
-increment library revision
-
-------------------------------------------------------------------------
-r501 | oetiker | 2005-05-07 17:45:52 +0200 | 2 lines
-
-fix these annoying y0 warnings.
-
-------------------------------------------------------------------------
-r500 | oetiker | 2005-05-07 17:45:27 +0200 | 1 line
-
-add rrdtool attribution string back using a transparent version of the font color
-------------------------------------------------------------------------
-r499 | oetiker | 2005-05-07 17:23:41 +0200 | 2 lines
-
-added build instructions
-
-------------------------------------------------------------------------
-r498 | oetiker | 2005-05-07 12:38:34 +0200 | 2 lines
-
-fix for rotation code in pdf,eps,svg formats -- Peter Speck <speck from vitality.dk>
-
-------------------------------------------------------------------------
-r497 | oetiker | 2005-05-07 12:34:48 +0200 | 2 lines
-
-fix handling of PREV(x) command
-
-------------------------------------------------------------------------
-r493 | oetiker | 2005-05-07 01:00:53 +0200 | 5 lines
-
-* added RRDTOOL/TOBI OETIKER back in
-* in riggid mode, cut data and 'min' and 'max' not two above
-* gibt ytop0 a default value
-
-
-------------------------------------------------------------------------
-r492 | oetiker | 2005-05-07 00:59:22 +0200 | 2 lines
-
-fixed documentation strings for rrdgraph
-
-------------------------------------------------------------------------
-r491 | oetiker | 2005-05-07 00:03:16 +0200 | 2 lines
-
-added doc for new slope-mode
-
-------------------------------------------------------------------------
-r490 | oetiker | 2005-05-06 23:52:55 +0200 | 3 lines
-
-since the drawing code is now much simpler we do not need to perturbe the points or rewind the graph anymore
-this saves quite some time ... 
-
-------------------------------------------------------------------------
-r489 | oetiker | 2005-05-06 17:44:11 +0200 | 6 lines
-
-* allow for 3(4) letter color names
-* better debugging code
-* fix tick, line, stack parsing
---  Alex van den Bogaerdt <alex with ergens.op.het.net>
-
-
-------------------------------------------------------------------------
-r488 | oetiker | 2005-05-06 17:24:27 +0200 | 2 lines
-
-if stacking on nothing we should not try to figure out WHAT we stacked on since this will result in a segfault ... -- Alex van den Bogaerdt <alex at ergens.op.het.net>
-
-------------------------------------------------------------------------
-r485 | oetiker | 2005-05-06 00:15:10 +0200 | 3 lines
-
-clarify LINE/AREA syntax
--- Alex van den Bogaerdt alex with ergens.op.het.net
-
-------------------------------------------------------------------------
-r484 | oetiker | 2005-05-05 11:07:56 +0200 | 2 lines
-
-better not to write into argv elements ... Henrik Stoerner <henrik from hswn.dk>
-
-------------------------------------------------------------------------
-r483 | oetiker | 2005-05-03 22:23:05 +0200 | 1 line
-
-do not die upon wront input when in remote mode
-------------------------------------------------------------------------
-r482 | oetiker | 2005-05-03 20:10:16 +0200 | 4 lines
-
-install documentation into $PREFIX/shared/doc/rrdtool-$VERSION/{txt,html} but
-drop the rrdtool-$VERSION/ bit if $PREFIX matches on rrd assuming that the tool is being installed into a custom directory anyway.
-
-
-------------------------------------------------------------------------
-r481 | oetiker | 2005-05-03 19:24:50 +0200 | 4 lines
-
-new options to tune how fontsmoothing works: 
--R/--font-render-mode {normal,light,mono} and -B/--font-smoothing-threshold size
--- John yffffffff4271ef37 at f4n.org
-
-------------------------------------------------------------------------
-r480 | oetiker | 2005-05-03 19:22:54 +0200 | 2 lines
-
-note about win32comp
-
-------------------------------------------------------------------------
-r478 | oetiker | 2005-05-02 22:27:13 +0200 | 1 line
-
-files that help getting that native windows port going -- Philippe.Simonet with swisscom.com
-------------------------------------------------------------------------
-r477 | oetiker | 2005-05-02 21:47:05 +0200 | 2 lines
-
-when walking the bytes use the pitch not the width
-
-------------------------------------------------------------------------
-r476 | oetiker | 2005-05-02 21:33:53 +0200 | 2 lines
-
-pow is alreay used as a function ... so lets call it power instead
-
-------------------------------------------------------------------------
-r475 | oetiker | 2005-05-02 21:32:49 +0200 | 2 lines
-
-no infinite line width please
-
-------------------------------------------------------------------------
-r472 | oetiker | 2005-05-02 00:07:34 +0200 | 1 line
-
-prep for 1.2.1 release
-------------------------------------------------------------------------
-r471 | oetiker | 2005-05-02 00:04:34 +0200 | 2 lines
-
-add some more vertical space above the graph if no title is available
-
-------------------------------------------------------------------------
-r470 | oetiker | 2005-05-01 23:24:06 +0200 | 2 lines
-
-use the pen to determine string length, do not look at the realy length, or space will get ignored.
-
-------------------------------------------------------------------------
-r469 | oetiker | 2005-05-01 23:16:49 +0200 | 3 lines
-
-DejaVuSansMono-Roman is a variant of VeraMono with lots of added unicode glyphes ... 
-check out http://dejavu.sourceforge.net
-
-------------------------------------------------------------------------
-r468 | oetiker | 2005-05-01 22:49:54 +0200 | 2 lines
-
-fix spaceing ... more space for the title and more space the the left of the yaxis lable
-
-------------------------------------------------------------------------
-r467 | oetiker | 2005-05-01 15:19:39 +0200 | 2 lines
-
-the multibyte support tried did not work ... takeing it out again
-
-------------------------------------------------------------------------
-r466 | oetiker | 2005-05-01 15:18:48 +0200 | 2 lines
-
-update tested library version
-
-------------------------------------------------------------------------
-r465 | oetiker | 2005-05-01 13:02:40 +0200 | 1 line
-
-undef jmpbuf to make compile work on AIX 5.1
-------------------------------------------------------------------------
-r464 | oetiker | 2005-05-01 13:00:36 +0200 | 2 lines
-
-increasse revision of shared library number since the library source code has changed
-
-------------------------------------------------------------------------
-r463 | oetiker | 2005-05-01 13:00:10 +0200 | 2 lines
-
-add wide character support
-
-------------------------------------------------------------------------
-r462 | oetiker | 2005-05-01 12:42:17 +0200 | 3 lines
-
-do not make the graph wider if the title does not fit ... this is wagging the dog
-the graph is not ABOUT the title
-
-------------------------------------------------------------------------
-r461 | oetiker | 2005-05-01 12:37:00 +0200 | 1 line
-
-fix description of VRULE
-------------------------------------------------------------------------
-r460 | oetiker | 2005-05-01 12:23:11 +0200 | 2 lines
-
-reset optind opterr inside the function calls ... 
-
-------------------------------------------------------------------------
-r459 | oetiker | 2005-05-01 12:22:35 +0200 | 2 lines
-
-fixed documentation regarding floating point line width
-
-------------------------------------------------------------------------
-r458 | oetiker | 2005-05-01 12:20:55 +0200 | 4 lines
-
-relax parsing of LINE commands LINE: is valid as well as LINE<double>:
-eg. LINE1.2323: 
-
-
-------------------------------------------------------------------------
-r457 | oetiker | 2005-05-01 11:16:38 +0200 | 2 lines
-
-allow for characters over 127
-
-------------------------------------------------------------------------
-r456 | oetiker | 2005-04-30 11:56:58 +0200 | 3 lines
-
-added notes on escaping colons in COMMENT and put deprecated forms of command to the back and not to the front
-
-
-------------------------------------------------------------------------
-r455 | oetiker | 2005-04-30 11:51:12 +0200 | 2 lines
-
-always open with rb/wb when it is a binary file ... unix and windows will work alike with this ... 
-
-------------------------------------------------------------------------
-r454 | oetiker | 2005-04-30 11:48:49 +0200 | 2 lines
-
-this file is not required ...
-
-------------------------------------------------------------------------
-r453 | oetiker | 2005-04-30 11:41:14 +0200 | 2 lines
-
-even better lets have rb for CYGWIN too ... one never knows it is windows after all.
-
-------------------------------------------------------------------------
-r452 | oetiker | 2005-04-30 11:40:24 +0200 | 2 lines
-
-oops inverted code here ... windows needs rb unix not
-
-------------------------------------------------------------------------
-r451 | oetiker | 2005-04-30 11:38:50 +0200 | 2 lines
-
-let rrd_graph honor the font name (RRD_DEFAULT_FONT) defined in confignt/config.h
-
-------------------------------------------------------------------------
-r450 | oetiker | 2005-04-27 00:08:22 +0200 | 1 line
-
-use pod syntax not html syntax in pod :-)
-------------------------------------------------------------------------
-r449 | oetiker | 2005-04-27 00:04:25 +0200 | 2 lines
-
-more fixes by fritz
-
-------------------------------------------------------------------------
-r443 | oetiker | 2005-04-26 07:33:18 +0200 | 2 lines
-
-obfuscate email addresses
-
-------------------------------------------------------------------------
-r442 | oetiker | 2005-04-26 07:30:22 +0200 | 5 lines
-
-* remove jakes old address
-* add security warning
-
-
-
-------------------------------------------------------------------------
-r440 | oetiker | 2005-04-26 00:55:15 +0200 | 2 lines
-
-remove pdf link
-
-------------------------------------------------------------------------
-r436 | oetiker | 2005-04-26 00:18:15 +0200 | 4 lines
-
-use time_t to improve portability to 64bit systems
--- John R Mocho <jmocho in royaldc.com>
-
-
-------------------------------------------------------------------------
-r429 | oetiker | 2005-04-25 23:01:22 +0200 | 2 lines
-
-added new state
-
-------------------------------------------------------------------------
-r428 | oetiker | 2005-04-25 22:45:00 +0200 | 1 line
-
-prep for 1.2.0 release
-------------------------------------------------------------------------
-r426 | oetiker | 2005-04-25 21:07:18 +0200 | 2 lines
-
-resolved all XXX situations
-
-------------------------------------------------------------------------
-r425 | oetiker | 2005-04-25 19:31:11 +0200 | 2 lines
-
-another batch of fixes from fritz
-
-------------------------------------------------------------------------
-r423 | oetiker | 2005-04-25 00:21:34 +0200 | 1 line
-
-fixed contributiors listing
-------------------------------------------------------------------------
-r422 | oetiker | 2005-04-24 19:23:57 +0200 | 2 lines
-
-big patch-up for the 1.2. Documents Revisited by Fritz Zaucker
-
-------------------------------------------------------------------------
-r420 | oetiker | 2005-04-22 20:35:15 +0200 | 1 line
-
-prep for 1.2rc9 release
-------------------------------------------------------------------------
-r417 | oetiker | 2005-04-19 23:09:27 +0200 | 1 line
-
-fix titles
-------------------------------------------------------------------------
-r416 | oetiker | 2005-04-19 23:05:39 +0200 | 2 lines
-
-fixed title
-
-------------------------------------------------------------------------
-r414 | oetiker | 2005-04-19 00:39:10 +0200 | 3 lines
-
-src moved back to pod. this include thing was a neat idea but it just adds another twist to things which is not necessary.
-fixed some pod errors
-
-------------------------------------------------------------------------
-r413 | oetiker | 2005-04-19 00:13:20 +0200 | 2 lines
-
-misc fixes for better display
-
-------------------------------------------------------------------------
-r412 | oetiker | 2005-04-18 13:07:02 +0200 | 2 lines
-
-fixed format
-
-------------------------------------------------------------------------
-r411 | oetiker | 2005-04-18 00:43:11 +0200 | 3 lines
-
-fixed many pod bugs while creating the new website
-
-
-------------------------------------------------------------------------
-r410 | oetiker | 2005-04-17 19:29:29 +0200 | 2 lines
-
-make sure argument descriptions comply with Bold = fixed and Italics = variable
-
-------------------------------------------------------------------------
-r409 | oetiker | 2005-04-17 18:26:18 +0200 | 2 lines
-
-fix use of =item commands
-
-------------------------------------------------------------------------
-r408 | oetiker | 2005-04-17 18:25:53 +0200 | 2 lines
-
-allow to build pods (for website)
-
-------------------------------------------------------------------------
-r406 | oetiker | 2005-04-14 00:00:20 +0200 | 4 lines
-
-* draw the axis last to have them always on top
-* use a smaller font for labeling the axis
-
-
-------------------------------------------------------------------------
-r405 | oetiker | 2005-04-13 21:53:41 +0200 | 2 lines
-
-have better default compression
-
-------------------------------------------------------------------------
-r404 | oetiker | 2005-04-13 21:53:16 +0200 | 1 line
-
-tune fontsizes and spacing to be more in line with rrdtool 1.0
-------------------------------------------------------------------------
-r402 | oetiker | 2005-04-12 23:52:18 +0200 | 1 line
-
-prep for 1.2rc8 release
-------------------------------------------------------------------------
-r401 | oetiker | 2005-04-12 23:10:39 +0200 | 1 line
-
-prep for 1.2rc8 release
-------------------------------------------------------------------------
-r400 | oetiker | 2005-04-12 22:56:19 +0200 | 5 lines
-
-* better fix for units-exponent issue ... now the whole scaling happens only at
-  print time ... this is more stable -- tobi
-
-* remove the newline from ctime (%c) in VDEF -- alex
-
-------------------------------------------------------------------------
-r398 | oetiker | 2005-04-12 01:23:59 +0200 | 1 line
-
-prep for 1.2rc7 release
-------------------------------------------------------------------------
-r397 | oetiker | 2005-04-12 01:22:57 +0200 | 6 lines
-
-* adjusted element spacing within the  graph
-* re-intruduced --units-length option
-* stabilized --units-exponent option by jumping to alt-y-grid mode
-  once the default autogrid can not cope with the data anymore.
-
-
-------------------------------------------------------------------------
-r396 | oetiker | 2005-04-12 01:20:52 +0200 | 1 line
-
-added note about incompatible changes
-------------------------------------------------------------------------
-r395 | oetiker | 2005-04-11 14:29:32 +0200 | 2 lines
-
-started change log
-
-------------------------------------------------------------------------
-r394 | oetiker | 2005-04-11 14:17:36 +0200 | 1 line
-
-added notes on INF
-------------------------------------------------------------------------
-r393 | oetiker | 2005-04-11 11:51:22 +0200 | 4 lines
-
-* we are now creating true RGBA pngs
-* removed all memory leeks from rrd_gfx
-
-
-------------------------------------------------------------------------
-r392 | oetiker | 2005-04-11 00:02:10 +0200 | 2 lines
-
-started updating for 1.2 release
-
-------------------------------------------------------------------------
-r391 | oetiker | 2005-04-10 20:11:58 +0200 | 1 line
-
-clarified output -- alex
-------------------------------------------------------------------------
-r390 | oetiker | 2005-04-10 20:10:56 +0200 | 1 line
-
-get the docs ready for the 1.2 release. remove notes about things that never got implemented. -- alex
-------------------------------------------------------------------------
-r389 | oetiker | 2005-04-10 20:05:51 +0200 | 1 line
-
-do not draw AREAS that have no hight (done right). draw an arrow on the positiv y axis.
-------------------------------------------------------------------------
-r388 | oetiker | 2005-04-10 17:35:28 +0200 | 1 line
-
-updated for 1.2 release -- alex
-------------------------------------------------------------------------
-r387 | oetiker | 2005-04-10 16:00:12 +0200 | 1 line
-
-fixed typo -- alex
-------------------------------------------------------------------------
-r386 | oetiker | 2005-04-10 15:57:34 +0200 | 2 lines
-
-G<gt> does not exist E<gt> does 
-
-------------------------------------------------------------------------
-r385 | oetiker | 2005-04-10 14:12:21 +0200 | 2 lines
-
-fixed spelling and working -- Alex van den Bogaerdt alex at ergens.op.het.net
-
-------------------------------------------------------------------------
-r383 | oetiker | 2005-04-10 13:53:01 +0200 | 1 line
-
-added extra strftime.[ch] which supports ISO 8601 week numbers, together with instructions in the NT-BUILD-TIPPS file
-------------------------------------------------------------------------
-r381 | oetiker | 2005-04-10 13:33:10 +0200 | 1 line
-
-prep for 1.2rc6 release
-------------------------------------------------------------------------
-r380 | oetiker | 2005-04-10 13:31:32 +0200 | 2 lines
-
-remove excess comment 
-
-------------------------------------------------------------------------
-r379 | oetiker | 2005-04-10 13:30:14 +0200 | 4 lines
-
-make --disable-perl work
-allow configuration of the default font at configure time
-
-
-------------------------------------------------------------------------
-r378 | oetiker | 2005-04-10 13:29:16 +0200 | 1 line
-
-revamped drawing routines to be less complex and more stable. be kind to libart
-------------------------------------------------------------------------
-r377 | oetiker | 2005-04-10 11:38:38 +0200 | 1 line
-
-allow --color arguments with RRGGBB and not only RRGGBBAA
-------------------------------------------------------------------------
-r376 | oetiker | 2005-04-10 11:16:10 +0200 | 1 line
-
-everyone has other names for their shared libraries, so lets drop the dependency
-------------------------------------------------------------------------
-r375 | oetiker | 2005-04-10 11:15:19 +0200 | 1 line
-
-mention updatev in the synopsis
-------------------------------------------------------------------------
-r374 | oetiker | 2005-04-09 16:21:59 +0200 | 2 lines
-
-we do have 95% 
-
-------------------------------------------------------------------------
-r372 | oetiker | 2005-04-07 23:35:32 +0200 | 1 line
-
-prep for 1.2rc5 release
-------------------------------------------------------------------------
-r371 | oetiker | 2005-04-07 23:31:37 +0200 | 1 line
-
-fix implementation of --only-graph
-------------------------------------------------------------------------
-r370 | oetiker | 2005-04-07 23:31:09 +0200 | 1 line
-
-make libart happy by NOT adjusting coordinates and by using the ART_WIND_RULE_NONZERO winding rule
-------------------------------------------------------------------------
-r369 | oetiker | 2005-04-07 23:30:16 +0200 | 1 line
-
-return propper exit codes
-------------------------------------------------------------------------
-r368 | oetiker | 2005-04-07 22:07:45 +0200 | 2 lines
-
-fix bitpatterns of extraflags so that they do not interfear
-
-------------------------------------------------------------------------
-r366 | oetiker | 2005-04-07 01:58:41 +0200 | 1 line
-
-prep for 1.2rc4 release
-------------------------------------------------------------------------
-r365 | oetiker | 2005-04-07 01:24:35 +0200 | 1 line
-
-prep for 1.2rc4 release
-------------------------------------------------------------------------
-r364 | oetiker | 2005-04-07 01:18:37 +0200 | 2 lines
-
-document RRD_DEFAULT_FONT environment variable 
-
-------------------------------------------------------------------------
-r363 | oetiker | 2005-04-07 00:40:53 +0200 | 2 lines
-
-make sure WIN32 sections do NOT kick in for cygwin compiles
-
-------------------------------------------------------------------------
-r362 | oetiker | 2005-04-06 00:49:55 +0200 | 2 lines
-
-only unwind the areas, the lines should be fine by themselves!
-
-------------------------------------------------------------------------
-r360 | oetiker | 2005-04-05 22:32:39 +0200 | 1 line
-
-prep for 1.2rc3 release
-------------------------------------------------------------------------
-r359 | oetiker | 2005-04-05 22:17:45 +0200 | 4 lines
-
-* fix transparency rendering by rewinding the paths propperly
-* fix x-axis label drawing by considering label precision
-
-
-------------------------------------------------------------------------
-r358 | oetiker | 2005-04-05 21:14:16 +0200 | 1 line
-
-new originaly copy
-------------------------------------------------------------------------
-r357 | oetiker | 2005-04-05 21:12:54 +0200 | 2 lines
-
-fixed propperties to have a RAW font
-
-------------------------------------------------------------------------
-r353 | oetiker | 2005-04-04 23:56:30 +0200 | 1 line
-
-make configure work even when no prefix is specified
-------------------------------------------------------------------------
-r352 | oetiker | 2005-04-04 23:40:11 +0200 | 1 line
-
-prep for 1.2rc2 release
-------------------------------------------------------------------------
-r351 | oetiker | 2005-04-04 23:22:05 +0200 | 1 line
-
-prepared for 1.2rc2 release
-------------------------------------------------------------------------
-r350 | oetiker | 2005-04-04 23:21:43 +0200 | 1 line
-
-prepared for 1.2rc1 release
-------------------------------------------------------------------------
-r349 | oetiker | 2005-04-04 23:12:21 +0200 | 1 line
-
-prepared for 1.2rc1 release
-------------------------------------------------------------------------
-r348 | oetiker | 2005-04-04 23:07:55 +0200 | 1 line
-
-prepared for 1.2rc1 release
-------------------------------------------------------------------------
-r347 | oetiker | 2005-04-04 23:05:32 +0200 | 1 line
-
-prepared for 1.2rc1 release
-------------------------------------------------------------------------
-r345 | oetiker | 2005-04-04 22:56:49 +0200 | 1 line
-
-fixed prefix detection code again
-------------------------------------------------------------------------
-r344 | oetiker | 2005-04-04 22:53:23 +0200 | 1 line
-
-fixed autoprefix
-------------------------------------------------------------------------
-r342 | oetiker | 2005-04-04 22:48:58 +0200 | 2 lines
-
-fixed config script for prefixing
-
-------------------------------------------------------------------------
-r340 | oetiker | 2005-04-04 22:37:26 +0200 | 2 lines
-
-get ready for 1.2
-
-------------------------------------------------------------------------
-r338 | oetiker | 2005-04-04 21:55:30 +0200 | 1 line
-
-branche for 1.2
-------------------------------------------------------------------------
-r336 | oetiker | 2005-04-03 14:44:15 +0200 | 2 lines
-
-update build instructions and configure output.
-
-------------------------------------------------------------------------
-r335 | oetiker | 2005-04-03 13:44:58 +0200 | 2 lines
-
-paramters in SHIFT are separated by : like everywhere else
-
-------------------------------------------------------------------------
-r334 | oetiker | 2005-04-03 13:36:58 +0200 | 3 lines
-
-the piechart code does not produce release ready results ... hide it behind WITH_PIECHART define
-
-
-------------------------------------------------------------------------
-r333 | oetiker | 2005-04-03 13:11:50 +0200 | 2 lines
-
-improve png writing speed by lowering the compression
-
-------------------------------------------------------------------------
-r332 | oetiker | 2005-04-03 13:11:21 +0200 | 2 lines
-
-make sure the font path is shorter than the buffer
-
-------------------------------------------------------------------------
-r331 | oetiker | 2005-04-03 12:10:56 +0200 | 3 lines
-
-fix graph layout ... especially consider text propperties propperly
-
-
-------------------------------------------------------------------------
-r330 | oetiker | 2005-04-03 11:37:08 +0200 | 3 lines
-
-the legend string of a PRINT command gets renderd later by runnning
-it through printf.
-
-------------------------------------------------------------------------
-r329 | oetiker | 2005-04-03 11:35:52 +0200 | 4 lines
-
-MMAP support for rrdtool this is suposed to speed-up uptime 4 times.
--- Radoslaw Karas <rkaras@tyndall.ie>
-
-
-------------------------------------------------------------------------
-r328 | oetiker | 2005-03-20 22:17:50 +0100 | 1 line
-
-revert to last working version
-------------------------------------------------------------------------
-r327 | oetiker | 2005-03-20 22:11:17 +0100 | 1 line
-
-fix quoting
-------------------------------------------------------------------------
-r326 | oetiker | 2005-03-20 22:00:13 +0100 | 2 lines
-
-quote sed expression
-
-------------------------------------------------------------------------
-r325 | oetiker | 2005-03-20 21:59:31 +0100 | 5 lines
-
-document tabbing support by adding in the textformatting notes
-document --tabwidth argument
-document AXIS color
-
-
-------------------------------------------------------------------------
-r324 | oetiker | 2005-03-20 21:58:28 +0100 | 8 lines
-
-* allow configuration of the default tab width
-* added new configurable color AXIS
-* made tabbing support work with legend elements
-* use propper font for the legend: LEGEND
-* fix apperance by makeing grid more transparent
-* draw axis over the graph not under it.
-
-
-------------------------------------------------------------------------
-r323 | oetiker | 2005-03-20 21:56:16 +0100 | 1 line
-
-added tabbig support
-------------------------------------------------------------------------
-r322 | oetiker | 2005-03-20 21:55:27 +0100 | 1 line
-
-include the thread defs after they have been found not before
-------------------------------------------------------------------------
-r320 | oetiker | 2005-03-13 17:34:27 +0100 | 2 lines
-
-propperly integrate rrd_first
-
-------------------------------------------------------------------------
-r319 | oetiker | 2005-03-13 17:13:49 +0100 | 1 line
-
-autotools still run after configure this is not good ... run autoreconf at the end of MakeMakefile. Maybe this will help
-------------------------------------------------------------------------
-r318 | oetiker | 2005-03-13 17:09:21 +0100 | 1 line
-
-set install patch to version
-------------------------------------------------------------------------
-r317 | oetiker | 2005-03-13 17:08:43 +0100 | 1 line
-
-re-run autotools to make sure dependent dates are correct
-------------------------------------------------------------------------
-r316 | oetiker | 2005-03-13 17:00:51 +0100 | 1 line
-
-reintroduce final header regen
-------------------------------------------------------------------------
-r315 | oetiker | 2005-03-13 16:57:37 +0100 | 1 line
-
-still trying to get the order of calling autotools right
-------------------------------------------------------------------------
-r314 | oetiker | 2005-03-13 16:54:06 +0100 | 1 line
-
-create aclocal.m4 before libtoolize
-------------------------------------------------------------------------
-r313 | oetiker | 2005-03-13 16:51:06 +0100 | 1 line
-
-make the headers first
-------------------------------------------------------------------------
-r312 | oetiker | 2005-03-13 16:16:05 +0100 | 1 line
-
-add the documentation for first
-------------------------------------------------------------------------
-r311 | oetiker | 2005-03-13 16:14:31 +0100 | 1 line
-
-ntconfig is no more
-------------------------------------------------------------------------
-r310 | oetiker | 2005-03-13 16:12:44 +0100 | 2 lines
-
-missed the actual code for  first
-
-------------------------------------------------------------------------
-r309 | oetiker | 2005-03-12 18:06:46 +0100 | 1 line
-
-rrd_first code contributed by Burton Strauss <Burton@ntopSupport.com>
-------------------------------------------------------------------------
-r307 | oetiker | 2005-03-10 18:03:34 +0100 | 17 lines
-
-* Updated perl compile system. It now uses Makefile.PL for everything,
-  but gets it to install the perl module in @prefix@/lib/perl such
-  that you can use the same use lib line for whatever platform and perlversion 
-  you install into this directory. They all live neatly next to each other.
-
-* fixed examples to work with new perl install system. Added a few exec_prefix lines
-  where appropriate
-
-* fixed piped demo
-
-* fixed VeraMono.ttf file. This somehow got damaged by cvs ... 
-
-* added thread defines to normal compile run, so that _r functions to not through errors.
-
-* tested compilation and installation
-
-
-------------------------------------------------------------------------
-r306 | oetiker | 2005-03-05 00:53:39 +0100 | 8 lines
-
-revamped configure system ... lots more stuff is in acinclude now still a
-bit of a mess, but better than before ... if configure does not find the
-dependent libraries and header it will not try to get help from pkg-config.
-
-If you know where your libraries are it is best to just use CPPFLAGS and
-LDFLAGS to specify their location.
-
-
-------------------------------------------------------------------------
-r305 | oetiker | 2005-03-04 01:12:37 +0100 | 15 lines
-
-Big autotool update:
-
-* Upgraded to the latest version of autoconf, automake and libtool
-
-* replaced pthread detection code in configure with a more effective one
-
-* added a test to see if special solaris defines
-  are required for ctime_r to behave posixly correct.
-
-* Fixed lots of warnings from autotools
-
-* started adding support for pkg-config ... this will eventually
-  make the whole library finding much simpler
-
-
-------------------------------------------------------------------------
-r300 | oetiker | 2005-03-03 14:34:53 +0100 | 1 line
-
-ignorelists are a propperty of an svn directory not a file
-------------------------------------------------------------------------
-r298 | oetiker | 2005-02-27 23:00:54 +0100 | 2 lines
-
-do not complain when setting environemnt variable sucessfully. -- hunter@mimuw.edu.pl
-
-------------------------------------------------------------------------
-r297 | oetiker | 2005-02-13 17:13:33 +0100 | 3 lines
-
-let rrd_graph return the actual value range it picked ...
--- Henrik Stoerner <henrik@hswn.dk>
-
-------------------------------------------------------------------------
-r296 | oetiker | 2005-01-28 15:02:17 +0100 | 2 lines
-
-fix for memory leak. Rene Gallati <security .. draxinusom.ch>
-
-------------------------------------------------------------------------
-r295 | oetiker | 2005-01-03 23:25:37 +0100 | 2 lines
-
-update todo
-
-------------------------------------------------------------------------
-r294 | oetiker | 2004-10-26 00:22:53 +0200 | 2 lines
-
-* fore-rules-legend option -- author name missing
-
-------------------------------------------------------------------------
-r293 | oetiker | 2004-10-26 00:21:19 +0200 | 2 lines
-
-fixed segmentation falt problem in rrd_tool -- Yasuhiro Sumi <yasuhiro.sumi@hde.co.jp>
-
-------------------------------------------------------------------------
-r292 | oetiker | 2004-10-21 21:21:24 +0200 | 2 lines
-
-fix return codes in the error case -- Haroon Rafique <haroon.rafique@utoronto.ca>
-
-------------------------------------------------------------------------
-r291 | oetiker | 2004-09-24 23:11:09 +0200 | 3 lines
-
-misc fixed and TREND and reduce functionality by
--- David M. Grimes <dgrimes@navisite.com>
-
-------------------------------------------------------------------------
-r290 | oetiker | 2004-08-24 07:26:09 +0200 | 5 lines
-
-CDEF operators SHIFT, SQRT, SORT, and REV (reverse).  See documentation for what
-they do. This included removal of redundant code in the
-rrd_xport path, replaced with a call to rrd_graph_script().
--- David M. Grimes <dgrimes@navisite.com>
-
-------------------------------------------------------------------------
-r289 | oetiker | 2004-08-09 10:38:55 +0200 | 2 lines
-
-added note on escaping :
-
-------------------------------------------------------------------------
-r288 | oetiker | 2004-08-08 23:54:07 +0200 | 2 lines
-
-port forward of fixes from the stable version of rrd_cgi
-
-------------------------------------------------------------------------
-r287 | oetiker | 2004-08-08 01:46:35 +0200 | 3 lines
-
-when moving the data pointers we should take into account how fahr off they
-are. Found by David M. Grimes <dgrimes@navisite.com>
-
-------------------------------------------------------------------------
-r286 | oetiker | 2004-08-05 23:24:46 +0200 | 2 lines
-
-removed nonexisting files from manifest
-
-------------------------------------------------------------------------
-r285 | jake | 2004-07-30 02:30:13 +0200 | 4 lines
-
-Fix the Win32 build for executable and perl-shared library.
-See NT-BUILD-TIPS.txt for step by step instructions.
-Remove VC++ project files not being maintained by anyone.
-
-------------------------------------------------------------------------
-r284 | oetiker | 2004-07-14 12:55:25 +0200 | 2 lines
-
-added Peter Speck
-
-------------------------------------------------------------------------
-r283 | oetiker | 2004-06-26 11:03:50 +0200 | 3 lines
-
-allow building rpm from cvs where there is not ChangeLog (this gets generated when the
-distribution tar is built) -- Tobi and Mike Slifcak
-
-------------------------------------------------------------------------
-r282 | oetiker | 2004-06-23 22:36:39 +0200 | 4 lines
-
-It's quie enough that the title is placed on the top
-of the graph, there's no need to emphasize it more.
--- Stanislav Sinyagin <ssinyagin@yahoo.com>
-
-------------------------------------------------------------------------
-r281 | oetiker | 2004-06-23 10:39:44 +0200 | 2 lines
-
-reverted ... $< does not work
-
-------------------------------------------------------------------------
-r280 | oetiker | 2004-06-23 00:09:07 +0200 | 4 lines
-
-The "$^" variable is GNU make-specific, and fails to compile under
-FreeBSD 4.10. Please change it to $<, which is more compatible.
---  Stanislav Sinyagin <ssinyagin@yahoo.com>
-
-------------------------------------------------------------------------
-r279 | oetiker | 2004-06-18 00:09:24 +0200 | 2 lines
-
-fixed type for text_prop_conv prototype
-
-------------------------------------------------------------------------
-r278 | oetiker | 2004-06-07 21:07:57 +0200 | 3 lines
-
-Fix for debian freetype linking
--- Peter Hirdina <Peter.Hirdina@gmx.net>
-
-------------------------------------------------------------------------
-r277 | oetiker | 2004-05-27 00:11:12 +0200 | 2 lines
-
-reduce compiler warnings. Many small fixes. -- Mike Slifcak <slif@bellsouth.net>
-
-------------------------------------------------------------------------
-r276 | oetiker | 2004-05-27 00:10:24 +0200 | 2 lines
-
-improve redhat/fedora building -- Mike Slifcak
-
-------------------------------------------------------------------------
-r275 | oetiker | 2004-05-27 00:09:58 +0200 | 2 lines
-
-update debian build instructions -- Mike Slifcak
-
-------------------------------------------------------------------------
-r274 | oetiker | 2004-05-26 00:08:12 +0200 | 3 lines
-
-The counter was the only variable which needed to be an integer.
--- Mike Slifcak
-
-------------------------------------------------------------------------
-r273 | oetiker | 2004-05-26 00:07:30 +0200 | 10 lines
-
-The rrdtool RPM package was depending on the rrdtool-perl package.
-These changes move the examples, which are primarily perl scripts,
-in with the rrdtool-perl RPM package, thereby de-coupling the
-rest of the RRDtool from Perl.  Perhaps this is silliness ?
-
-If there is no need for rrdtool separate from the Perl modules,
-let me know, then I'll just create an rrdtool and an rrdtool-devel
-RPM package (that would be a cleaner build and scripting, anyway).
--- Mike Slifcak
-
-------------------------------------------------------------------------
-r272 | oetiker | 2004-05-26 00:03:04 +0200 | 2 lines
-
-added dtd descriptsion s or rrdtool xml output  -- Wolfgang Schrimm <wolfgang{dot}schrimm{at}urz{dot}uni-heidelberg{dot}de>
-
-------------------------------------------------------------------------
-r271 | oetiker | 2004-05-25 23:06:59 +0200 | 2 lines
-
-added dump and restore ... Mike Schilli <b2b@perlmeister.com>
-
-------------------------------------------------------------------------
-r270 | oetiker | 2004-05-25 23:01:50 +0200 | 2 lines
-
-added some contributors
-
-------------------------------------------------------------------------
-r269 | oetiker | 2004-05-25 23:00:48 +0200 | 2 lines
-
-fixed time stamp in example -- Mike Slifcak
-
-------------------------------------------------------------------------
-r268 | oetiker | 2004-05-25 22:59:49 +0200 | 2 lines
-
-more fixes for rpm spec -- Mike Slifcak
-
-------------------------------------------------------------------------
-r267 | oetiker | 2004-05-25 22:58:57 +0200 | 2 lines
-
-single word fix -- Mike Slifcak
-
-------------------------------------------------------------------------
-r266 | oetiker | 2004-05-25 22:57:58 +0200 | 4 lines
-
-Clear out previous legend array contents before freeing legend array.
-Problem could manifest under extreme resource limits.  Not tested.
--- Mike Slifcak
-
-------------------------------------------------------------------------
-r265 | oetiker | 2004-05-25 22:55:37 +0200 | 2 lines
-
-subordinate term was improperly formed --  Mike Slifcak
-
-------------------------------------------------------------------------
-r264 | oetiker | 2004-05-25 22:53:21 +0200 | 2 lines
-
-prevent small leak when resources are exhausted -- Mike Slifcak
-
-------------------------------------------------------------------------
-r263 | oetiker | 2004-05-25 22:52:16 +0200 | 2 lines
-
-fix spelling and syntax, especially in messages that are printed -- Mike Slifcak
-
-------------------------------------------------------------------------
-r262 | oetiker | 2004-05-25 22:51:49 +0200 | 2 lines
-
-Update displayed copyright messages to be consistent. -- Mike Slifcak
-
-------------------------------------------------------------------------
-r261 | oetiker | 2004-05-25 22:51:12 +0200 | 2 lines
-
-don't process the old rrdgraph single file document -- Mike Slifcak
-
-------------------------------------------------------------------------
-r260 | oetiker | 2004-05-25 22:50:36 +0200 | 2 lines
-
-fix rpm rules --  Mike Slifcak
-
-------------------------------------------------------------------------
-r259 | oetiker | 2004-05-25 22:50:07 +0200 | 2 lines
-
-fixed debian dependencies --  Mike Slifcak
-
-------------------------------------------------------------------------
-r258 | oetiker | 2004-05-25 18:51:49 +0200 | 3 lines
-
-The expression's head was first checking for LT, and then for LTIME,
-and the latter was never reached. -- Stanislav Sinyagin <ssinyagin@yahoo.com>
-
-------------------------------------------------------------------------
-r257 | oetiker | 2004-05-19 07:11:07 +0200 | 2 lines
-
-integrated from debian
-
-------------------------------------------------------------------------
-r256 | oetiker | 2004-05-18 20:54:50 +0200 | 2 lines
-
-its 365 days in a year .... -- Mike Slifcak
-
-------------------------------------------------------------------------
-r255 | oetiker | 2004-05-18 20:53:03 +0200 | 2 lines
-
-big spell checking patch -- slif@bellsouth.net
-
-------------------------------------------------------------------------
-r254 | oetiker | 2004-05-18 20:51:55 +0200 | 2 lines
-
-make force option work
-
-------------------------------------------------------------------------
-r253 | oetiker | 2004-05-18 20:51:02 +0200 | 2 lines
-
-added beginners guide off debian --  slif@bellsouth.net
-
-------------------------------------------------------------------------
-r252 | oetiker | 2004-05-18 20:49:50 +0200 | 2 lines
-
-add 4chars and fix two examples -- Mike Slifcak <slif@bellsouth.net>
-
-------------------------------------------------------------------------
-r251 | oetiker | 2004-05-18 20:40:31 +0200 | 2 lines
-
-initial debian build system added -- Mike Slifcak <slif@bellsouth.net>
-
-------------------------------------------------------------------------
-r250 | oetiker | 2004-05-18 20:36:05 +0200 | 2 lines
-
-fix library numbering  -- Mike Slifcak
-
-------------------------------------------------------------------------
-r249 | oetiker | 2004-05-18 20:25:45 +0200 | 2 lines
-
-better cleaning -- Mike Slifcak
-
-------------------------------------------------------------------------
-r248 | oetiker | 2004-05-12 23:57:53 +0200 | 3 lines
-
-locate the mkinstalldirs script at top level
-accept "configure --mandir=" settings -- Mike Slifcak <slif@bellsouth.net>
-
-------------------------------------------------------------------------
-r247 | oetiker | 2004-05-04 23:01:29 +0200 | 4 lines
-
-Added the ATAN function. This is being used to convert a DS for each vector component of wind direction into a
-single direction for graphing. CDEF:avdir=yavg,xavg,/,ATAN,57.296,*,xavg,0,LT,180,0,IF,+,DUP,0,LT,360,0,IF,+
--- Daniel Shiels <dan@marge.tofubar.com>
-
-------------------------------------------------------------------------
-r246 | oetiker | 2004-05-04 22:54:47 +0200 | 2 lines
-
-updated spec file -- Chris Adams <cmadams@hiwaay.net>
-
-------------------------------------------------------------------------
-r245 | oetiker | 2004-05-04 07:25:19 +0200 | 3 lines
-
-die only after all the version checks are done and not for each one
--- Alex van den Bogaerdt <alex@ergens.op.het.net>
-
-------------------------------------------------------------------------
-r244 | oetiker | 2004-05-03 16:05:48 +0200 | 6 lines
-
-* Allows rrdtool 1.1.x (2004-04-29) to compile on freebsd.
-* Add configure options
-  --disable-rrdcgi        disable building of rrdcgi
-  --disable-pthread       disable multithread support
--- Stanislav Sinyagin <ssinyagin@yahoo.com>
-
-------------------------------------------------------------------------
-r243 | oetiker | 2004-05-02 23:10:59 +0200 | 7 lines
-
-See the patch, attached. It changes the default angle to 90, and
-allows one to change it from configure command line:
-
-./configure RRDGRAPH_YLEGEND_ANGLE=270.0
-
--- Stanislav Sinyagin <ssinyagin@yahoo.com>
-
-------------------------------------------------------------------------
-r242 | oetiker | 2004-04-18 12:21:31 +0200 | 2 lines
-
-fixed O_BINARY
-
-------------------------------------------------------------------------
-r241 | oetiker | 2004-03-23 22:34:28 +0100 | 2 lines
-
-make sure fole is opened binary on restore ... to make things work on windows -- "Girod, Laurent" <Laurent.Girod@pmintl.com>
-
-------------------------------------------------------------------------
-r240 | oetiker | 2004-03-21 12:40:49 +0100 | 2 lines
-
-Added --only-graph option -- Piotr Kodzis <Piotr.Kodzis@inteligo.pl>
-
-------------------------------------------------------------------------
-r239 | oetiker | 2004-03-14 21:58:32 +0100 | 3 lines
-
-make MakeMaker work on debian and fix some leftovers from the library rip-out transition
--- Tobi
-
-------------------------------------------------------------------------
-r238 | oetiker | 2004-01-20 00:41:34 +0100 | 2 lines
-
-initial
-
-------------------------------------------------------------------------
-r237 | oetiker | 2004-01-20 00:39:42 +0100 | 2 lines
-
-kill
-
-------------------------------------------------------------------------
-r236 | oetiker | 2004-01-20 00:39:01 +0100 | 2 lines
-
-remove
-
-------------------------------------------------------------------------
-r235 | oetiker | 2004-01-20 00:37:19 +0100 | 2 lines
-
-kill it
-
-------------------------------------------------------------------------
-r234 | oetiker | 2004-01-20 00:35:21 +0100 | 2 lines
-
-killem
-
-------------------------------------------------------------------------
-r233 | oetiker | 2004-01-20 00:27:17 +0100 | 2 lines
-
-all must go
-
-------------------------------------------------------------------------
-r232 | oetiker | 2004-01-20 00:17:00 +0100 | 2 lines
-
-misc fixes to get rrdtool working without included libraries.
-
-------------------------------------------------------------------------
-r231 | oetiker | 2004-01-20 00:16:03 +0100 | 2 lines
-
-modifications for 'no more local libaries'
-
-------------------------------------------------------------------------
-r230 | oetiker | 2004-01-15 19:14:02 +0100 | 2 lines
-
-addition of RRDs::times -- Christophe Kalt <kalt@taranis.org>
-
-------------------------------------------------------------------------
-r229 | oetiker | 2003-12-26 17:54:55 +0100 | 2 lines
-
-using --riggid it is possible to get a case where minval is bigger than maxval ... this breaks the horizontal grid ...
-
-------------------------------------------------------------------------
-r228 | oetiker | 2003-11-27 07:31:38 +0100 | 2 lines
-
-Stop RRDs for segfaulting on invalid graph input -- Ian Holsman <Ian.Holsman@cnet.com>
-
-------------------------------------------------------------------------
-r227 | oetiker | 2003-11-27 07:30:36 +0100 | 2 lines
-
-make rrd_cgi build again ... Ian Holsman <rrd.developers@holsman.net>
-
-------------------------------------------------------------------------
-r226 | oetiker | 2003-11-23 13:55:37 +0100 | 2 lines
-
-New recursive parser for rrdcgi by Arend-Jan Wijtzes <ajwytzes@wise-guys.nl>
-
-------------------------------------------------------------------------
-r225 | oetiker | 2003-11-19 08:06:44 +0100 | 4 lines
-
-Adding attributions:
-* xml fix was by Ian Holsman <rrd.developers@holsman.net>
-* font rotation was by Chris Turbeville <turbo@verio.net>
-
-------------------------------------------------------------------------
-r224 | oetiker | 2003-11-19 07:58:36 +0100 | 2 lines
-
-fixed svg generation
-
-------------------------------------------------------------------------
-r223 | oetiker | 2003-11-17 12:43:56 +0100 | 2 lines
-
-more correct usage added -- Eldad Zack <eldad@stoneshaft.ath.cx>
-
-------------------------------------------------------------------------
-r222 | oetiker | 2003-11-15 00:10:51 +0100 | 2 lines
-
-handle NULL pointers gracefully
-
-------------------------------------------------------------------------
-r221 | oetiker | 2003-11-12 23:14:26 +0100 | 2 lines
-
-allow to pass an open filehandle into rrd_graph as an extra argument
-
-------------------------------------------------------------------------
-r220 | oetiker | 2003-11-12 23:13:55 +0100 | 2 lines
-
-make create much faster .. -- David M. Grimes <dgrimes@navisite.com>
-
-------------------------------------------------------------------------
-r219 | oetiker | 2003-11-11 22:19:52 +0100 | 3 lines
-
-Allow to force overwrite when restoring from xml to rrd.
--- Eldad Zack <eldad@stoneshaft.ath.cx>
-
-------------------------------------------------------------------------
-r218 | oetiker | 2003-11-11 20:46:21 +0100 | 2 lines
-
-replaced time_value with rrd_time_value as MacOS X introduced a struct of that name in their standard headers
-
-------------------------------------------------------------------------
-r217 | oetiker | 2003-11-11 20:38:03 +0100 | 3 lines
-
-rrd files should NOT change size ever ... bulk update code wa buggy.
--- David M. Grimes <dgrimes@navisite.com>
-
-------------------------------------------------------------------------
-r216 | oetiker | 2003-11-04 23:20:33 +0100 | 2 lines
-
-20 chars max in a ds name -- Kuba Filipowicz <amo@axit.pl>
-
-------------------------------------------------------------------------
-r215 | oetiker | 2003-10-26 20:29:56 +0100 | 2 lines
-
-added rotation ...
-
-------------------------------------------------------------------------
-r214 | oetiker | 2003-09-04 15:16:12 +0200 | 2 lines
-
-should not assigne but compare ... grrrrr
-
-------------------------------------------------------------------------
-r213 | oetiker | 2003-09-02 23:58:35 +0200 | 2 lines
-
-be pickier about what we accept in rrd_update. Complain if things do not work out
-
-------------------------------------------------------------------------
-r212 | oetiker | 2003-08-28 23:48:53 +0200 | 2 lines
-
-make sure we get only 1 flag -- Chris Turbeville <turbo@verio.net>
-
-------------------------------------------------------------------------
-r211 | oetiker | 2003-07-28 23:59:22 +0200 | 10 lines
-
-I was just taking a look at the development RRDtool build (I'm looking
-forward to SVG support), and had a few problems with an out-of-tree
-build. I find using a separate build directory makes things much
-easier to manage, especially when building for multiple architectures.
-
-I've attached the minor patches for the progress that I made (I couldn't
-get the Perl modules to work, but the main binaries seem okay), and
-would be grateful if you could commit them (or something like them!).
--- Joseph Walton <joe@kafsemo.org>
-
-------------------------------------------------------------------------
-r210 | jake | 2003-07-24 16:51:46 +0200 | 2 lines
-
-Allow hyphen character in DEF_NAM_FMT to match DS_NAM_FMT.
-
-------------------------------------------------------------------------
-r209 | jake | 2003-07-17 01:41:37 +0200 | 4 lines
-
-Updated MS Visual C++ files from 7.0 to 7.1.
-Add code to rrd_graph.c: rrd_graph_init() to use %windir% environment
-variable to find the default font at runtime.
-
-------------------------------------------------------------------------
-r208 | jake | 2003-07-15 02:58:38 +0200 | 2 lines
-
-Moved OP_COUNT to the end of the enumeration.
-
-------------------------------------------------------------------------
-r207 | oetiker | 2003-05-20 22:51:04 +0200 | 5 lines
-
-I've made a patch to rrdcgi to add <RRD::TIME::STRFTIME ...> which allows
-you to re-format start and end-time at-style times using strftime.  This
-allows easy timespans in the graph (e.g. -2weeks) to be formatted into more
-usual times. -- "Erskine, Thomas" <terskine@NRCan.gc.ca>
-
-------------------------------------------------------------------------
-r206 | oetiker | 2003-05-03 17:41:41 +0200 | 3 lines
-
-small patch to rrd_create.c that corrects problem with the
-version number of the newly created files. -- Sasha Mikheev <sasha@avalon-net.co.il>
-
-------------------------------------------------------------------------
-r205 | oetiker | 2003-04-29 23:56:49 +0200 | 6 lines
-
-readline in rrd_open.c reads the file in 8 KB blocks, and calls realloc for
-each block. realloc is very slow in Mac OS X for huge blocks, e.g. when
-restoring databases from huge xml files. This patch finds the size of the
-file, and starts out with malloc'ing the full size.
--- Peter Speck <speck@ruc.dk>
-
-------------------------------------------------------------------------
-r204 | oetiker | 2003-04-29 21:37:27 +0200 | 2 lines
-
-added comment on iso
-
-------------------------------------------------------------------------
-r203 | jake | 2003-04-29 21:14:12 +0200 | 3 lines
-
-Change updatev RRA return from index_number to cf_nam, pdp_cnt.
-Also revert accidental addition of -I to aclocal MakeMakefile.
-
-------------------------------------------------------------------------
-r202 | oetiker | 2003-04-26 07:11:27 +0200 | 2 lines
-
-only restore V2 and larger.
-
-------------------------------------------------------------------------
-r201 | jake | 2003-04-25 20:35:08 +0200 | 2 lines
-
-Alternate update interface, updatev. Returns info about CDPs written to disk as result of update. Output format is similar to rrd_info, a hash of key-values.
-
-------------------------------------------------------------------------
-r200 | oetiker | 2003-04-24 00:47:00 +0200 | 2 lines
-
-fixed version checks to only complain if xml version is > than current RRD version
-
-------------------------------------------------------------------------
-r199 | oetiker | 2003-04-11 21:43:44 +0200 | 6 lines
-
-New special value COUNT which allows calculations based on the position of a
-value within a data set. Bug fix in rrd_rpncalc.c. PREV returned erroneus
-value for the second value. Bug fix in rrd_restore.c. Bug causing seek error
-when accesing an RRD restored from an xml that holds an RRD version <3.
---  Ruben Justo <ruben@ainek.com>
-
-------------------------------------------------------------------------
-r198 | oetiker | 2003-04-04 22:51:21 +0200 | 4 lines
-
-I think I found a very small bug in rrd graph PDF output : the is_stream member of
-pdf_buffer is not initialized, making bad PDF sometimes (I found a case where is_stream was
-!= 0 for the font initialization). -- lhoudard@netcourrier.com
-
-------------------------------------------------------------------------
-r197 | jake | 2003-04-02 00:52:23 +0200 | 2 lines
-
-Fix Win32 build. VC++ 6.0 and 7.0 now use the thread-safe code.
-
-------------------------------------------------------------------------
-r196 | oetiker | 2003-03-31 23:22:12 +0200 | 4 lines
-
-enables RRDtool updates with microsecond or in case of windows millisecond
-precision. This is needed to reduce time measurement error when archive step
-is small. (<30s) --  Sasha Mikheev <sasha@avalon-net.co.il>
-
-------------------------------------------------------------------------
-r195 | oetiker | 2003-03-25 23:29:10 +0100 | 2 lines
-
-use the environment variable VCINSTALLDIR --  Ian Holsman <rrd.developers@holsman.net>
-
-------------------------------------------------------------------------
-r194 | oetiker | 2003-03-24 23:08:20 +0100 | 2 lines
-
-strerror should not turn us recursive here ... --  Peter Stamfest <peter@stamfest.at>
-
-------------------------------------------------------------------------
-r193 | oetiker | 2003-03-24 23:05:26 +0100 | 2 lines
-
-strerror must not become recursive -- Peter Stamfest <peter@stamfest.at>
-
-------------------------------------------------------------------------
-r192 | oetiker | 2003-03-12 21:39:59 +0100 | 2 lines
-
-remove ^M
-
-------------------------------------------------------------------------
-r191 | oetiker | 2003-03-10 01:30:34 +0100 | 3 lines
-
-handle cases with two negative numbers
---  Sasha Mikheev <sasha@avalon-net.co.il>
-
-------------------------------------------------------------------------
-r190 | oetiker | 2003-03-08 19:44:06 +0100 | 3 lines
-
-don't display legends for [HV]RULEs out of graph bounds (rrdgraph)
--- Christophe Kalt <kalt@taranis.org>
-
-------------------------------------------------------------------------
-r189 | oetiker | 2003-03-01 23:25:56 +0100 | 2 lines
-
-realy suppress size output when talking to stdout. Patch from Mat Zimmerman @ debian
-
-------------------------------------------------------------------------
-r188 | oetiker | 2003-02-24 19:26:37 +0100 | 2 lines
-
-fix for : in piped demo
-
-------------------------------------------------------------------------
-r187 | oetiker | 2003-02-22 22:57:35 +0100 | 3 lines
-
-Initial checkin
--- Peter Stamfest <peter@stamfest.at>
-
-------------------------------------------------------------------------
-r186 | oetiker | 2003-02-22 22:57:03 +0100 | 3 lines
-
-a patch to avoid a memory leak and a Makefile.am patch to
-distribute all required source files -- Peter Stamfest <peter@stamfest.at>
-
-------------------------------------------------------------------------
-r185 | oetiker | 2003-02-21 23:40:07 +0100 | 2 lines
-
-colons must be escaped
-
-------------------------------------------------------------------------
-r184 | oetiker | 2003-02-20 22:48:57 +0100 | 3 lines
-
-make the threading work and compile, fix linking to libpng
-and update the timestaps int the files
-
-------------------------------------------------------------------------
-r183 | oetiker | 2003-02-20 22:27:48 +0100 | 4 lines
-
-updated copyrigh dates
-removed error.h from threaded variant
-added compiletime to rrdtool
-
-------------------------------------------------------------------------
-r182 | oetiker | 2003-02-16 13:32:24 +0100 | 2 lines
-
-if output is - there is not need to deref the handler
-
-------------------------------------------------------------------------
-r181 | oetiker | 2003-02-16 13:31:58 +0100 | 2 lines
-
-expect seems to exist on some systems in the system inc files
-
-------------------------------------------------------------------------
-r180 | oetiker | 2003-02-13 08:05:59 +0100 | 12 lines
-
-Find attached the patch I promised to send to you. Please note that there
-are three new source files (src/rrd_is_thread_safe.h, src/rrd_thread_safe.c
-and src/rrd_not_thread_safe.c) and the introduction of librrd_th. This
-library is identical to librrd, but it contains support code for per-thread
-global variables currently used for error information only. This is similar
-to how errno per-thread variables are implemented.  librrd_th must be linked
-alongside of libpthred
-
-There is also a new file "THREADS", holding some documentation.
-
--- Peter Stamfest <peter@stamfest.at>
-
-------------------------------------------------------------------------
-r179 | oetiker | 2003-02-12 08:06:56 +0100 | 2 lines
-
-improved dist target -- Peter Stamfest <peter@stamfest.at>
-
-------------------------------------------------------------------------
-r178 | oetiker | 2003-02-11 11:16:46 +0100 | 2 lines
-
-removed lg we do not allow this in the code at th moment
-
-------------------------------------------------------------------------
-r177 | oetiker | 2003-02-05 19:16:02 +0100 | 2 lines
-
-rrd resize SHRINK was broken :-) -- Scott Mace <smace@intt.ORG>
-
-------------------------------------------------------------------------
-r176 | oetiker | 2003-01-31 07:46:32 +0100 | 2 lines
-
-The NaN check should only use lastgdes when following a STACK -- Scott Mace <smace@intt.ORG>
-
-------------------------------------------------------------------------
-r175 | oetiker | 2003-01-30 22:39:21 +0100 | 2 lines
-
-fix stak+nan error ... Scott Mace <smace@intt.ORG>
-
-------------------------------------------------------------------------
-r174 | oetiker | 2003-01-29 08:17:23 +0100 | 2 lines
-
-fixed the processing of TICK:vname#color:frac:legend --  Scott Mace <smace@intt.ORG>
-
-------------------------------------------------------------------------
-r173 | oetiker | 2003-01-25 23:50:32 +0100 | 3 lines
-
-added function (--no-minor) to turn off minor gridlines on graphs
--- Travis Brown <tebrown@csh.rit.edu>
-
-------------------------------------------------------------------------
-r172 | oetiker | 2003-01-17 00:27:54 +0100 | 3 lines
-
-fix border condition in rra selection of rrd_fetch
--- Stanislav Sinyagin <ssinyagin@yahoo.com>
-
-------------------------------------------------------------------------
-r171 | oetiker | 2003-01-15 20:24:13 +0100 | 2 lines
-
-* single letter variants for all graph options -- James Overbeck <grendel@gmo.jp>
-
-------------------------------------------------------------------------
-r170 | oetiker | 2002-12-14 23:30:41 +0100 | 3 lines
-
-fix rrdtool compile on solaris where CC for perl is "gcc -B/usr/ccs/bin/"
--- Russell Van Tassell <russell@loosenut.com>
-
-------------------------------------------------------------------------
-r169 | oetiker | 2002-11-29 12:57:17 +0100 | 2 lines
-
-note on info added
-
-------------------------------------------------------------------------
-r168 | oetiker | 2002-11-19 23:33:09 +0100 | 2 lines
-
-added g as valid string format value
-
-------------------------------------------------------------------------
-r167 | oetiker | 2002-11-19 00:37:56 +0100 | 3 lines
-
-check for -OPT:IEEE_NaN_inf=ON on SGI C compiler
--- Albert Chin-A-Young <china@thewrittenword.com>
-
-------------------------------------------------------------------------
-r166 | oetiker | 2002-11-03 16:07:13 +0100 | 2 lines
-
-fixed
-
-------------------------------------------------------------------------
-r165 | oetiker | 2002-10-24 23:17:51 +0200 | 2 lines
-
-added patch for apache 2 compatibility
-
-------------------------------------------------------------------------
-r164 | oetiker | 2002-10-07 08:22:35 +0200 | 2 lines
-
-keep up with the jhonses
-
-------------------------------------------------------------------------
-r163 | oetiker | 2002-10-07 08:21:22 +0200 | 2 lines
-
--z does not take an option --  Tomoyuki Murakami <tomoyuki@pobox.com>
-
-------------------------------------------------------------------------
-r162 | oetiker | 2002-09-02 20:41:19 +0200 | 2 lines
-
-fixed leak in VDEF_PERCENT handlin -- Perry Stoll <perry_stoll@yahoo.com>
-
-------------------------------------------------------------------------
-r161 | oetiker | 2002-08-01 07:42:27 +0200 | 3 lines
-
-fix for segfault condition in print_calc
- -- Paul Clifford <paul.clifford@bbc.co.uk>
-
-------------------------------------------------------------------------
-r160 | oetiker | 2002-07-31 07:42:48 +0200 | 2 lines
-
-improved fetch explanation -- Nenad.Antic@era.ericsson.se
-
-------------------------------------------------------------------------
-r159 | oetiker | 2002-07-13 20:35:37 +0200 | 3 lines
-
-fixed DEF_NAM_FMT definition
-added double include protection the rrd_graph.h and rrd_rpncalc.h
-
-------------------------------------------------------------------------
-r158 | oetiker | 2002-07-12 13:20:32 +0200 | 2 lines
-
-fixed PREV parsing ... Gonzalo Augusto Arana Tagle <garana@uolsinectis.com.ar>
-
-------------------------------------------------------------------------
-r157 | oetiker | 2002-07-06 17:45:15 +0200 | 2 lines
-
-new operators must be added at the END of the sequence ...
-
-------------------------------------------------------------------------
-r156 | oetiker | 2002-07-05 20:57:02 +0200 | 2 lines
-
-new operand on rrdgraph CDEFs: PREV(xxxx) -- Gonzalo Augusto Arana Tagle <garana@uolsinectis.com.ar>
-
-------------------------------------------------------------------------
-r155 | oetiker | 2002-07-05 20:47:46 +0200 | 2 lines
-
-explain tzset
-
-------------------------------------------------------------------------
-r154 | oetiker | 2002-07-02 12:35:23 +0200 | 2 lines
-
-fixed DINF for win32
-
-------------------------------------------------------------------------
-r153 | alex | 2002-06-29 17:33:58 +0200 | 2 lines
-
-Changed DEF:...
-
-------------------------------------------------------------------------
-r152 | alex | 2002-06-29 17:24:26 +0200 | 3 lines
-
-Changed parsing again.
-Added a DEBUG prefix to all grapher commands
-
-------------------------------------------------------------------------
-r151 | alex | 2002-06-29 16:55:47 +0200 | 2 lines
-
-Not needed anymore
-
-------------------------------------------------------------------------
-r150 | alex | 2002-06-27 21:34:25 +0200 | 3 lines
-
-DEF now takes "--start" and "--end"
-LINEx, AREA and such now take parameter "STACK"
-
-------------------------------------------------------------------------
-r149 | alex | 2002-06-24 01:13:53 +0200 | 2 lines
-
-Updated docs for the "DEF ...  :step=nnnn" case
-
-------------------------------------------------------------------------
-r148 | alex | 2002-06-24 00:29:40 +0200 | 3 lines
-
-Added "step=1800" and such to "DEF"
-Cleaned some of the signed vs. unsigned problems
-
-------------------------------------------------------------------------
-r147 | alex | 2002-06-24 00:28:06 +0200 | 2 lines
-
-In stead of a zillion warnings, only one place gives a warning for DNAN
-
-------------------------------------------------------------------------
-r146 | jake | 2002-06-20 02:21:03 +0200 | 2 lines
-
-More Win32 build changes; thanks to Kerry Calvert.
-
-------------------------------------------------------------------------
-r145 | oetiker | 2002-06-14 14:15:12 +0200 | 2 lines
-
-better explanations -- "Shipway, Steve" <steve.shipway@eds.com>
-
-------------------------------------------------------------------------
-r144 | jake | 2002-05-22 17:25:43 +0200 | 2 lines
-
-Changed intercept to slope for beta parameter in rrdtune doc.
-
-------------------------------------------------------------------------
-r143 | oetiker | 2002-05-22 07:35:09 +0200 | 3 lines
-
-VC++ .NET (7.0) project files
--- Eric Chamberlain <echamber@socrates.Berkeley.EDU>
-
-------------------------------------------------------------------------
-r142 | oetiker | 2002-05-16 21:18:35 +0200 | 2 lines
-
-added -W ... lets have some more warnings ... with gcc 3.1 985
-
-------------------------------------------------------------------------
-r141 | oetiker | 2002-05-15 08:14:40 +0200 | 2 lines
-
-afm fixes -- Peter Speck <speck@ruc.dk>
-
-------------------------------------------------------------------------
-r140 | jake | 2002-05-14 23:52:58 +0200 | 2 lines
-
-Fix Win32 Build compatibility.
-
-------------------------------------------------------------------------
-r139 | oetiker | 2002-05-14 23:48:05 +0200 | 2 lines
-
-double free fixed
-
-------------------------------------------------------------------------
-r138 | oetiker | 2002-05-14 07:28:45 +0200 | 3 lines
-
-make opendir readdir chdir chroot and thus the serverfunctionality
-a conditional compile depending on the presence of the necessary function calls.
-
-------------------------------------------------------------------------
-r137 | oetiker | 2002-05-11 11:09:57 +0200 | 2 lines
-
-make dirent sys/types and sys/stat autoconfable ....
-
-------------------------------------------------------------------------
-r136 | oetiker | 2002-05-08 22:34:56 +0200 | 3 lines
-
-Add funtionality to rrdtool to run it as a 'server'
--- Hartmut.Vogler@epost.de
-
-------------------------------------------------------------------------
-r135 | oetiker | 2002-05-07 23:58:33 +0200 | 3 lines
-
-new command rrdtool xport integrated
---  Wolfgang Schrimm <Wolfgang.Schrimm@urz.uni-heidelberg.de>
-
-------------------------------------------------------------------------
-r134 | oetiker | 2002-05-02 15:23:56 +0200 | 2 lines
-
-typo fixed
-
-------------------------------------------------------------------------
-r133 | oetiker | 2002-04-29 19:11:03 +0200 | 2 lines
-
-badformat parser fixed ... for good this time I hope
-
-------------------------------------------------------------------------
-r132 | oetiker | 2002-04-28 21:13:04 +0200 | 2 lines
-
-inserted PRINT checker at the wrong point ...
-
-------------------------------------------------------------------------
-r131 | oetiker | 2002-04-28 16:14:48 +0200 | 5 lines
-
-It's nice and simple, the error checker for the PRINT stuff which is
-passed to printf() is not allowing certain valid printf() style operations
-which make text alignment much more fun.
--- Richard A Steenbergen <ras@e-gerbil.net>
-
-------------------------------------------------------------------------
-r130 | oetiker | 2002-04-24 23:04:46 +0200 | 2 lines
-
-fixed setlocale issues
-
-------------------------------------------------------------------------
-r129 | oetiker | 2002-04-24 22:54:09 +0200 | 2 lines
-
-fixed adress for wishlist
-
-------------------------------------------------------------------------
-r128 | oetiker | 2002-04-24 22:49:26 +0200 | 2 lines
-
-Patch for supporting PDF as output format
-
-------------------------------------------------------------------------
-r127 | oetiker | 2002-04-24 22:49:00 +0200 | 6 lines
-
-Modification of rrd_graph.c/h so it uses dashes for gridlines much like
-rrdtool 1.0 Avoids drawing minor vertical gridlines where a major gridline
-is to avoid artifacts from having the grey line beneath the red one. Patches
-src/rrd_graph.c and src/rrd_graph.h
---  Peter Speck <speck@ruc.dk
-
-------------------------------------------------------------------------
-r126 | oetiker | 2002-04-24 22:48:03 +0200 | 3 lines
-
-Improvement of svg/eps dash code so it adjusts dash-lengths for round caps.
--- Peter Speck <speck@ruc.dk>
-
-------------------------------------------------------------------------
-r125 | oetiker | 2002-04-24 22:43:27 +0200 | 2 lines
-
-fixed setlocale issues
-
-------------------------------------------------------------------------
-r124 | oetiker | 2002-04-16 07:00:07 +0200 | 2 lines
-
-doc for gridfit by peter
-
-------------------------------------------------------------------------
-r123 | oetiker | 2002-04-15 23:29:24 +0200 | 20 lines
-
-Evenly-spaced y-axis gridlines.
-
-I had to split horizontal_grid() into calc_horizontal_grid and
-draw_horizontal_grid as the calculated info is needed in the adjustment
-code. My previous patch had the problem that it adjusted the y-axis too
-late, e.g. after the data lines was drawn.
-The result of the calc is stored in struct ygrid_scale_t which
-image_desc_t has as a member.
-
---no-gridfit is implemented.
-
-The round-to-integer coordinates for png is moved to the libart code in
-rrd_gfx. The 'close path' code is cleaned up so the node list is left
-unchanged if you want to save the same graph in multiple formats in one
-run. The rounding is done on the scaled coordinates (zoom).
-
-I have made a simple version for logarithmic y scales as such a scale
-might have 5 gridlines with 4 difference spacings. This version only
-uses y = 10^x values for modifying the scale. -- Peter Speck <speck@ruc.dk>
-
-------------------------------------------------------------------------
-r122 | oetiker | 2002-04-09 23:35:49 +0200 | 2 lines
-
-remove boguos description of goodfor and refresh
-
-------------------------------------------------------------------------
-r121 | oetiker | 2002-04-09 23:34:56 +0200 | 2 lines
-
-removed tzset as it is in rrd_graph now
-
-------------------------------------------------------------------------
-r120 | oetiker | 2002-04-09 23:34:13 +0200 | 2 lines
-
-added tzset and setlocale to rrd_graph
-
-------------------------------------------------------------------------
-r119 | oetiker | 2002-04-08 00:07:46 +0200 | 2 lines
-
-added missing files from peters patch
-
-------------------------------------------------------------------------
-r118 | oetiker | 2002-04-07 22:20:27 +0200 | 18 lines
-
-3 patches, #3 depends on #1 as EPS uses AFM for stringwidth too.
-
-src/rrd_afm.[ch], src/rrd_afm_data.[ch] and changes to rrd_gfx.[ch] to
-use AFM for stringwidth in SVG output.
-
-libraries/afm with .afm files for the standard 14 postscript
-fonts and perl script to create src/rrd_afm_data.c Includes small test
-program to show examples of calculated stringwidth and actual
-stringwidth.
-
-Adds EPS output support.
-Modifies rrd_tool.c as rrd_graph() changes the argv pointer, and
-rrd_tool then always wrote the 200x100 output line to the file (which
-probably doesn't do anything for png images, but eps files fail having
-it after the %%EOF marker).
-
--- Peter Speck <speck@ruc.dk>
-
-------------------------------------------------------------------------
-r117 | alex | 2002-04-06 14:40:59 +0200 | 2 lines
-
-Different default font when WIN32 is defined
-
-------------------------------------------------------------------------
-r116 | alex | 2002-04-06 14:25:29 +0200 | 3 lines
-
-Removed references to GIF
-Changed y0 and such into Y0 and so
-
-------------------------------------------------------------------------
-r115 | jake | 2002-04-06 01:51:21 +0200 | 4 lines
-
-Updated/added MVSC++ 6.0 project files for compilation of
-rrd.lib and rrdtool.exe on Win32. Changes for RRDs compilation
-on Win32. Moved src/ntconfig.h to confignt/config.h.
-
-------------------------------------------------------------------------
-r114 | oetiker | 2002-04-03 16:52:15 +0200 | 23 lines
-
-As gfx_canvas_t now has excatly the same lifespan as image_desc_t, I've
-made 'gfx_canvas_t canvas' a member of image_desc_t and dropped it as a
-separate parameter in all function calls.
-
-imgformat, interlaced and zoom are moved to gfx_canvas_t. I have dropped
-my old fontlib-enum as imgformat contains that information. The
-gfx_render_xxx switch is moved to rrd_gfx so rrd_graph is (almost) only
-bothered with image formats in cmd line parsing.
-
-gfx_close_path is added.
-
-gfx_new_dashed_line is added with 2 new arguments: length of a dash and
-length between dashes. gfx_new_line is still there for plain lines.
-Having dash-length == 0 creates normal line.
-rrd_graph.c is not updated for dashed lines. It's not decided how one
-should specify which and how lines are dashed. An extension of the color
-specification?
-
-svg is updated for dashes and opacity, but libart code is not. I've
-fixed indent in SVG, all lines had a space before func decl. etc.
-Misc small fixes, e.g. sscanf of gfx_color_t, position of x-axis arrow.
---- Peter Speck <speck@ruc.dk>
-
-------------------------------------------------------------------------
-r113 | oetiker | 2002-04-03 07:32:31 +0200 | 2 lines
-
-i suck.  sorry.  add ,0666 to the open(). -- Paul Vixie <paul@vix.com>
-
-------------------------------------------------------------------------
-r112 | oetiker | 2002-04-02 23:32:15 +0200 | 2 lines
-
-added call to tzset to activate TZ settings -- Paul A Vixie <vixie@vix.com>
-
-------------------------------------------------------------------------
-r111 | oetiker | 2002-04-02 23:31:08 +0200 | 2 lines
-
-aded missing fcntl.h
-
-------------------------------------------------------------------------
-r110 | oetiker | 2002-04-02 21:37:54 +0200 | 2 lines
-
-rrd restore should not burn down existing files -- Paul Vixie <paul@vix.com>
-
-------------------------------------------------------------------------
-r109 | oetiker | 2002-04-01 20:32:17 +0200 | 2 lines
-
-merged svg update
-
-------------------------------------------------------------------------
-r108 | oetiker | 2002-04-01 20:31:22 +0200 | 3 lines
-
-"!" takes a higher preference than "||" this means rrd_update N:: would
-segfault -- Oliver Cook <ollie@uk.clara.net>
-
-------------------------------------------------------------------------
-r107 | jake | 2002-03-28 18:33:49 +0100 | 2 lines
-
-Added comment suggesting use of -I flag with aclocal.
-
-------------------------------------------------------------------------
-r106 | oetiker | 2002-03-26 08:02:28 +0100 | 2 lines
-
-added SVG support -- Peter Speck <speck@ruc.dk>
-
-------------------------------------------------------------------------
-r105 | alex | 2002-03-23 21:41:48 +0100 | 2 lines
-
-Better positioning of the pie when it is alone on the canvas
-
-------------------------------------------------------------------------
-r104 | alex | 2002-03-23 21:01:13 +0100 | 2 lines
-
-Modified rrd_graph
-
-------------------------------------------------------------------------
-r103 | alex | 2002-03-23 20:59:39 +0100 | 2 lines
-
-Changes in rrd_graph; see NEWS
-
-------------------------------------------------------------------------
-r102 | oetiker | 2002-03-23 10:05:32 +0100 | 2 lines
-
-removed reference to GIF
-
-------------------------------------------------------------------------
-r101 | oetiker | 2002-03-23 10:01:43 +0100 | 2 lines
-
-remove all traces of GIF and make PNG the default
-
-------------------------------------------------------------------------
-r100 | oetiker | 2002-03-23 09:53:31 +0100 | 3 lines
-
-Move CDEF start pointers if start of cdef is a step ahead of the start
-of the data -- Ashok Mandala <chakri063@yahoo.com>
-
-------------------------------------------------------------------------
-r99 | oetiker | 2002-03-21 23:39:03 +0100 | 2 lines
-
-fixed color area in legend and fixed color area in 3d border
-
-------------------------------------------------------------------------
-r98 | alex | 2002-03-21 13:00:51 +0100 | 3 lines
-
-Pie charts didn't have anti-aliasing; building them clockwise
-seems to solve this problem.
-
-------------------------------------------------------------------------
-r97 | oetiker | 2002-03-20 23:48:25 +0100 | 3 lines
-
-fixed longstanding bug affection CDEFS where values from
-rrds with different resolutions got mixed ..
-
-------------------------------------------------------------------------
-r96 | alex | 2002-03-17 23:40:18 +0100 | 2 lines
-
-Changed the way circle sections are drawn.
-
-------------------------------------------------------------------------
-r95 | alex | 2002-03-13 03:58:44 +0100 | 2 lines
-
-New, hopefully better, implementation of PART drawing
-
-------------------------------------------------------------------------
-r94 | oetiker | 2002-03-12 08:19:09 +0100 | 2 lines
-
-realy remove zlibe 1.1.3 dir
-
-------------------------------------------------------------------------
-r93 | oetiker | 2002-03-12 08:18:06 +0100 | 2 lines
-
-updated
-
-------------------------------------------------------------------------
-r92 | oetiker | 2002-03-12 08:17:46 +0100 | 2 lines
-
-ignore generated files
-
-------------------------------------------------------------------------
-r91 | oetiker | 2002-03-12 08:16:32 +0100 | 2 lines
-
-missing bits
-
-------------------------------------------------------------------------
-r90 | oetiker | 2002-03-12 07:43:38 +0100 | 2 lines
-
-updated to zlib 1.1.4
-
-------------------------------------------------------------------------
-r89 | oetiker | 2002-03-12 07:42:00 +0100 | 2 lines
-
-replace zlib 1.1.3 with zlib 1.1.4
-
-------------------------------------------------------------------------
-r88 | alex | 2002-03-11 00:08:37 +0100 | 2 lines
-
-Pie chart support added to rrdtool graph
-
-------------------------------------------------------------------------
-r87 | oetiker | 2002-03-10 23:49:24 +0100 | 2 lines
-
-added quotes to echo
-
-------------------------------------------------------------------------
-r86 | alex | 2002-03-10 17:22:28 +0100 | 3 lines
-
-Realigned function rpn_calc()
-Stack checking now done using a macro
-
-------------------------------------------------------------------------
-r85 | alex | 2002-03-10 15:58:30 +0100 | 3 lines
-
-Fixed some typos/errors
-Updated for the NE and ISINF operators in RPN
-
-------------------------------------------------------------------------
-r84 | alex | 2002-03-10 15:53:04 +0100 | 3 lines
-
-Using the font option resulted in a segfault.  Needs more care,
-the current change is just a hack
-
-------------------------------------------------------------------------
-r83 | alex | 2002-03-10 15:48:59 +0100 | 2 lines
-
-Added NE and ISINF operands to RPN
-
-------------------------------------------------------------------------
-r82 | oetiker | 2002-03-10 13:28:38 +0100 | 2 lines
-
-better version check
-
-------------------------------------------------------------------------
-r81 | alex | 2002-03-08 23:14:22 +0100 | 2 lines
-
-Needed to escape a wildcard
-
-------------------------------------------------------------------------
-r80 | alex | 2002-03-08 23:11:37 +0100 | 2 lines
-
-Fixed some typos
-
-------------------------------------------------------------------------
-r79 | oetiker | 2002-02-18 22:52:20 +0100 | 2 lines
-
-added autotools version check to MakeMakefiles
-
-------------------------------------------------------------------------
-r78 | oetiker | 2002-02-09 07:21:11 +0100 | 2 lines
-
-do propper error checking and release memmory when it is not required anymore
-
-------------------------------------------------------------------------
-r77 | oetiker | 2002-02-08 19:40:37 +0100 | 2 lines
-
-allow rrd_cgi to deal with umlauts -- Alexander Schwartz <alexander.schwartz@gmx.net>
-
-------------------------------------------------------------------------
-r76 | oetiker | 2002-02-03 09:10:36 +0100 | 2 lines
-
-fixed spelling
-
-------------------------------------------------------------------------
-r75 | oetiker | 2002-02-02 15:36:14 +0100 | 2 lines
-
-fixed data pointer storage
-
-------------------------------------------------------------------------
-r74 | oetiker | 2002-02-01 21:34:49 +0100 | 2 lines
-
-fixed version number and date/time
-
-------------------------------------------------------------------------
-r73 | oetiker | 2002-02-01 21:29:32 +0100 | 2 lines
-
-*** empty log message ***
-
-------------------------------------------------------------------------
-r72 | oetiker | 2002-01-31 23:44:34 +0100 | 2 lines
-
-this file and all the external libraries configurability was contributed by mat zimmermann
-
-------------------------------------------------------------------------
-r71 | oetiker | 2002-01-31 23:43:13 +0100 | 2 lines
-
-allow use of libraries already installed on the system
-
-------------------------------------------------------------------------
-r70 | oetiker | 2002-01-31 12:56:24 +0100 | 2 lines
-
-make "18:00 yesterday" work  Pavel Mores <pvl@uh.cz>
-
-------------------------------------------------------------------------
-r69 | oetiker | 2002-01-31 08:23:12 +0100 | 2 lines
-
-weeknumber is not %V which is more appropriate than %W
-
-------------------------------------------------------------------------
-r68 | oetiker | 2002-01-31 07:36:27 +0100 | 2 lines
-
-copy ltmain.sh
-
-------------------------------------------------------------------------
-r67 | oetiker | 2002-01-17 21:31:31 +0100 | 2 lines
-
-this also
-
-------------------------------------------------------------------------
-r66 | oetiker | 2002-01-17 21:30:46 +0100 | 2 lines
-
-this is not needed anymore
-
-------------------------------------------------------------------------
-r65 | oetiker | 2002-01-17 21:28:01 +0100 | 2 lines
-
-killing remains
-
-------------------------------------------------------------------------
-r64 | oetiker | 2002-01-17 00:11:11 +0100 | 2 lines
-
-added places for download
-
-------------------------------------------------------------------------
-r63 | oetiker | 2002-01-15 23:58:09 +0100 | 2 lines
-
-ignore irrelevant things
-
-------------------------------------------------------------------------
-r62 | oetiker | 2002-01-15 23:53:19 +0100 | 2 lines
-
-added new .cvsignore files
-
-------------------------------------------------------------------------
-r61 | oetiker | 2002-01-15 23:51:07 +0100 | 15 lines
-
-The BIG graph update
-  * Replace libgd with libart
-  * Added freetype
-  * Updated zlib and libpng
-  * rrd_gfx.c intrduced as libart wrapper
-  * LINE takes now a float as argument
-  * rrdtool uses truetype for fonts
-  * thanks to libart there is now full alpha transparenc
-    and antialiasing.
-  * the new option --font lets customize the font
-    and size for various graph elements
-  * Updated to -> libtool 1.4.2 automake 2.12 autoconf 2.52
-  * new --zoom commandline option for zoom ans shrinking
-  -- tobias oetiker
-
-------------------------------------------------------------------------
-r60 | alex | 2002-01-04 02:11:35 +0100 | 2 lines
-
-Reworked rrd_graph_script()
-
-------------------------------------------------------------------------
-r59 | alex | 2001-12-24 07:51:49 +0100 | 21 lines
-
-A patch of size 44Kbytes... in short:
-
-Found and repaired the off-by-one error in rrd_fetch_fn().
-As a result I had to remove the hacks in rrd_fetch_fn(),
-rrd_tool.c, vdef_calc(), data_calc(), data_proc() and
-reduce_data().  There may be other places which I didn't
-find so be careful.
-
-Enhanced debugging in rrd_fetch_fn(), it shows the RRA selection
-process.
-
-Added the ability to print VDEF timestamps.  At the moment it
-is a hack, I needed it now to fix the off-by-one error.
-If the format string is "%c" (and nothing else!), the time
-will be printed by both ctime() and as a long int.
-
-Moved some code around (slightly altering it) from rrd_graph()
-  initializing     now in rrd_graph_init()
-  options parsing  now in rrd_graph_options()
-  script parsing   now in rrd_graph_script()
-
-------------------------------------------------------------------------
-r58 | alex | 2001-12-22 03:49:23 +0100 | 3 lines
-
-Somehow eight lines were missing from function rrd_graph().
-Also fixed minor bug in vdef_calc().
-
-------------------------------------------------------------------------
-r57 | oetiker | 2001-12-17 13:48:43 +0100 | 2 lines
-
-fix overflow error ...
-
-------------------------------------------------------------------------
-r56 | jake | 2001-12-11 23:55:28 +0100 | 2 lines
-
-Fixed uninitialized ptr causing seg fault invoking info for COMPUTE data sources.
-
-------------------------------------------------------------------------
-r55 | oetiker | 2001-11-18 09:41:16 +0100 | 2 lines
-
-return "" instead of NULL for <RRD::GETENV UNKNOWN_VARIABLE> -- Michael <sysadmin@qsl.net>
-
-------------------------------------------------------------------------
-r54 | oetiker | 2001-11-17 17:57:55 +0100 | 2 lines
-
-fixed path to mkinstalldirs -- Laurent Saehyun Kim?\239?\191?\189<LKim@xo.com>
-
-------------------------------------------------------------------------
-r53 | oetiker | 2001-09-08 20:25:17 +0200 | 2 lines
-
-spelling updates by Martin Schulze <joey@finlandia.infodrom.north.de>
-
-------------------------------------------------------------------------
-r52 | jake | 2001-08-23 00:29:07 +0200 | 13 lines
-
-Contents of this patch:
-(1) Adds/revises documentation for rrd tune in rrd_tool.c and pod files.
-(2) Moves some initialization code from rrd_create.c to rrd_hw.c.
-(3) Adds another pass to smoothing for SEASONAL and DEVSEASONAL RRAs.
-This pass computes the coefficients as deviations from an average; the
-average is added the baseline coefficient of HWPREDICT. Statistical texts
-suggest this to preserve algorithm stability. It will not invalidate
-RRD files created and smoothed with the old code.
-(4) Adds the aberrant-reset flag to rrd tune. This operation, which is
-specified for a single data source, causes the holt-winters algorithm to
-forget everthing it has learned and start over.
-(5) Fixes a few out-of-date code comments.
-
-------------------------------------------------------------------------
-r51 | oetiker | 2001-08-13 20:58:07 +0200 | 2 lines
-
-spell fix for si units (only in comments)
-
-------------------------------------------------------------------------
-r50 | alex | 2001-07-29 00:34:42 +0200 | 2 lines
-
-Removing rrdgraph*.pod from the cvs
-
-------------------------------------------------------------------------
-r49 | alex | 2001-07-29 00:21:44 +0200 | 4 lines
-
-Edited Makefile.am and the rrdgraph_*.src files. By mistake the
-previous update was made on the rrdgraph_*.pod files however they
-are not to be edited. This is now corrected.
-
-------------------------------------------------------------------------
-r48 | alex | 2001-07-26 04:27:46 +0200 | 4 lines
-
-Supporting functions for rrd_graph.  Functions that are used frequently
-and/or from different places should be added here in stead of repeating
-them in rrd_graph.c over and over again.
-
-------------------------------------------------------------------------
-r47 | alex | 2001-07-26 04:25:38 +0200 | 2 lines
-
-Moved most typedefs etc. from rrd_graph.c to this file
-
-------------------------------------------------------------------------
-r46 | alex | 2001-07-26 04:22:18 +0200 | 3 lines
-
-Added VDEF TOTAL
-Moved most typedefs etc. to rrd_graph.h
-
-------------------------------------------------------------------------
-r45 | alex | 2001-07-26 04:19:48 +0200 | 2 lines
-
-Added rrd_graph_helper
-
-------------------------------------------------------------------------
-r44 | alex | 2001-07-26 04:15:02 +0200 | 2 lines
-
-Updated for VDEF TOTAL
-
-------------------------------------------------------------------------
-r43 | alex | 2001-07-26 04:11:46 +0200 | 2 lines
-
-Announce of VDEF in rrd_graph
-
-------------------------------------------------------------------------
-r42 | alex | 2001-07-21 20:17:44 +0200 | 2 lines
-
-Made PRINT and GPRINT aware of VDEF statements
-
-------------------------------------------------------------------------
-r41 | oetiker | 2001-07-21 00:34:29 +0200 | 2 lines
-
-missing documentation ... -- Alex van den Bogaerdt <alex@slot.hollandcasino.nl>
-
-------------------------------------------------------------------------
-r40 | oetiker | 2001-07-21 00:34:06 +0200 | 2 lines
-
-only a comment
-
-------------------------------------------------------------------------
-r39 | oetiker | 2001-07-21 00:33:17 +0200 | 2 lines
-
-small fixes -- Alex van den Bogaerdt <alex@slot.hollandcasino.nl>
-
-------------------------------------------------------------------------
-r38 | oetiker | 2001-07-19 00:30:29 +0200 | 2 lines
-
-VDEF and VRULE are comig along -- Alex van den Bogaerdt <alex@slot.hollandcasino.nl>
-
-------------------------------------------------------------------------
-r37 | oetiker | 2001-06-05 15:42:55 +0200 | 2 lines
-
-spell fix
-
-------------------------------------------------------------------------
-r36 | oetiker | 2001-05-09 07:31:01 +0200 | 5 lines
-
-Bug fix: when update of multiple PDP/CDP RRAs coincided
-with interpolation of multiple PDPs an incorrect value was
-stored as the CDP. Especially evident for GAUGE data sources.
-Minor changes to rrdcreate.pod. -- Jake Brutlag <jakeb@corp.webtv.net>
-
-------------------------------------------------------------------------
-r35 | oetiker | 2001-03-31 17:21:59 +0200 | 3 lines
-
-added 'all' dependancy to site-perl-install rule as many seem to skip
-this step when instaling cricket ... probably an incomplete cricket doku.
-
-------------------------------------------------------------------------
-r34 | oetiker | 2001-03-15 20:43:04 +0100 | 2 lines
-
-added PROJECTS file
-
-------------------------------------------------------------------------
-r33 | oetiker | 2001-03-11 13:03:12 +0100 | 2 lines
-
-reindented
-
-------------------------------------------------------------------------
-r32 | oetiker | 2001-03-11 12:49:28 +0100 | 2 lines
-
-reindented the cource for better readability
-
-------------------------------------------------------------------------
-r31 | oetiker | 2001-03-11 00:54:41 +0100 | 7 lines
-
-Support for COMPUTE data sources (CDEF data sources). Removes the RPN
-parser and calculator from rrd_graph and puts then in a new file,
-rrd_rpncalc.c. Changes to core files rrd_create and rrd_update. Some
-clean-up of aberrant behavior stuff, including a bug fix.
-Documentation update (rrdcreate.pod, rrdupdate.pod). Change xml format.
--- Jake Brutlag <jakeb@corp.webtv.net>
-
-------------------------------------------------------------------------
-r30 | oetiker | 2001-03-07 22:21:54 +0100 | 4 lines
-
-complete rewrite of rrdgraph documentation. This also includs info
-on upcomming/planned changes to the rrdgraph interface and functionality
--- Alex van den Bogaerdt <alex@slot.hollandcasino.nl>
-
-------------------------------------------------------------------------
-r28 | oetiker | 2001-03-04 14:50:31 +0100 | 2 lines
-
-fidex jackes adderss
-
-------------------------------------------------------------------------
-r27 | oetiker | 2001-03-04 14:12:44 +0100 | 2 lines
-
-added note on counter vs derive --  Don BAARDA <don.baarda@baesystems.com>
-
-------------------------------------------------------------------------
-r26 | oetiker | 2001-03-04 14:01:56 +0100 | 6 lines
-
-Aberrant Behavior Detection support. A brief overview added to rrdtool.pod.
-Major updates to rrd_update.c, rrd_create.c. Minor update to other core files.
-This is backwards compatible! But new files using the Aberrant stuff are not readable
-by old rrdtool versions. See http://cricket.sourceforge.net/aberrant/rrd_hw.htm
--- Jake Brutlag <jakeb@corp.webtv.net>
-
-------------------------------------------------------------------------
-r25 | oetiker | 2001-03-04 14:00:25 +0100 | 2 lines
-
-another do not report Makefile and Makefile.in
-
-------------------------------------------------------------------------
-r24 | oetiker | 2001-03-04 13:51:55 +0100 | 2 lines
-
-this file has no purpose
-
-------------------------------------------------------------------------
-r23 | oetiker | 2001-03-04 13:32:07 +0100 | 2 lines
-
-rrdupdate is a generated file it has no place in cvs
-
-------------------------------------------------------------------------
-r21 | oetiker | 2001-03-04 12:31:21 +0100 | 2 lines
-
-repository cleanup
-
-------------------------------------------------------------------------
-r20 | oetiker | 2001-03-04 12:14:26 +0100 | 3 lines
-
-added at-style-time@value:value syntax to rrd_update
---  Dave Bodenstab <imdave@mcs.net>
-
-------------------------------------------------------------------------
-r19 | oetiker | 2001-03-04 11:29:20 +0100 | 3 lines
-
-fixed filedescriptor leak
--- Mike Franusich <mike@franusich.com>
-
-------------------------------------------------------------------------
-r18 | oetiker | 2001-03-02 23:48:39 +0100 | 2 lines
-
-added test for hpux. if matched, compile zlib with -fpic instead of -fPIC
-
-------------------------------------------------------------------------
-r17 | oetiker | 2001-03-01 22:37:54 +0100 | 2 lines
-
-added check for the presence of the compiler used to build perl modules
-
-------------------------------------------------------------------------
-r16 | oetiker | 2001-02-26 00:18:40 +0100 | 2 lines
-
-they do not belong into cvs ad they are autogenerated
-
-------------------------------------------------------------------------
-r15 | oetiker | 2001-02-25 23:57:02 +0100 | 2 lines
-
-Fixed ln for modules
-
-------------------------------------------------------------------------
-r14 | oetiker | 2001-02-25 23:53:17 +0100 | 2 lines
-
-fixed compile order ... src before bindings
-
-------------------------------------------------------------------------
-r6 | oetiker | 2001-02-25 23:25:02 +0100 | 2 lines
-
-Initial revision
-
-------------------------------------------------------------------------
index f76a677de04cb3e920526f1ca5243067afd47db2..04378fb810b06a2d3d3b3ad6c4efd80fa5ee53c3 100644 (file)
@@ -1,4 +1,4 @@
-$Id: CONTRIBUTORS 1841 2009-06-07 11:20:15Z oetiker $
+$Id$
 
 I would like to thank to following people for helping to
 bring RRDtool into existence.
@@ -9,6 +9,7 @@ Alex van den Bogaerdt <alex with ergens.op.het.net> (rrd_resize.c and more)
 Amos Shapira <amos with gezernet.co.il>
 Andreas Kroomaa <andre with ml.ee>
 Andrew Turner <turner with mint.net> (LAST consolidator)
+Benny Baumann <benbe with geshi.org) rrd_dump with callback support
 Bernard Fischer <bfischer with syslog.ch> 64bit stuff, --alt-autoscale-max
 Bernhard Fischer <rep dot dot dot nop with gmail.com> MMAP rewrite
 Bill Fenner <fenner with research.att.com>
index 93cb62b14fedcbd2d8f8c32de48646361821fee9..8c01b8a46f2b14c90a3310d0293b2bcf24126f93 100644 (file)
--- a/COPYRIGHT
+++ b/COPYRIGHT
@@ -1,4 +1,4 @@
-$Id: COPYRIGHT 1843 2009-06-07 11:34:39Z oetiker $
+$Id$
 RRDTOOL - Round Robin Database Tool
 A tool for fast logging of numerical data graphical display
 of this data.
index c0ca21a7e88d8881890a5b83d643813ba71ca4d8..9e1a22b9dfbd703c48464ef1383b8e0605af04a9 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: Makefile.am 1846 2009-06-07 13:42:39Z oetiker $
+# $Id$
 
 ## Process this file with automake to produce Makefile.in
 RSYNC = rsync --rsh=ssh
index 84dfb0b09a80184228bc2b163129c89a83c49030..920ed9c959f1f6bcd5d4b45bd8e726c0cf3b037d 100644 (file)
@@ -15,7 +15,7 @@
 
 @SET_MAKE@
 
-# $Id: Makefile.am 1846 2009-06-07 13:42:39Z oetiker $
+# $Id$
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
@@ -222,6 +222,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
diff --git a/NEWS b/NEWS
index afd2f3d1cd466353a206bbf13f3daed3b828f3ed..d13a76ad04204ac3606a5e42e9bcc76c3328d3c4 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,6 @@
 News for RRDtool 1.4
 ====================
-$Id: NEWS 1840 2009-06-07 11:16:07Z oetiker $
+$Id$
 
 RRD Caching Daemon (rrdcached)
 ------------------------------
@@ -61,4 +61,13 @@ Miscellaneous Changes
 * various improvements to rrd_open functions and mmap handling
   by Daniel Pocock
 
+* allow the HW smoothing window size to be set to 0 with rrdtool tune
+  by sylvain luiset
+
+* new graph option --border to set the 3d border width 
+  by Bernhard Reutner-Fischer
+
+* draw different color swats depending on the type of line drawn in the
+  graph by Loïc Tortay
+
 for more detail see the CHANGES file.
diff --git a/README b/README
index ac18e6c1e18a3d454387074a48f8c16e6944ee57..1ba71f67c8bcca518f93eefdae039316ca58f855 100644 (file)
--- a/README
+++ b/README
@@ -1,6 +1,6 @@
 Round Robin Database Tools
 ==========================
-$Id: README 1844 2009-06-07 11:35:52Z oetiker $
+$Id$
 
 It is pretty easy to gather status information from all sorts of things,
 ranging from the temperature in your office to the number of octets which
diff --git a/TODO b/TODO
index c18e54302d2db29da984e58c33a2968f1e342427..706727fe35a7eba715b01264dcfb724430e99fbf 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,6 +1,6 @@
 Random Feature Ideas for RRDtool
 --------------------------------
-$Id: TODO 1842 2009-06-07 11:34:22Z oetiker $
+$Id$
 
 make it possible to define order of legend items independant of their order
 on the commandline ...
index 53be74d0da4cbe316317b7bd866840b247ea1662..c38fae4a7702b0525e485b35b657b31eb35bfea4 100644 (file)
@@ -13,8 +13,8 @@
 
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.63],,
-[m4_warning([this file was generated for autoconf 2.63.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.64],,
+[m4_warning([this file was generated for autoconf 2.64.
 You have another version of autoconf.  It may work, but is not guaranteed to.
 If you have problems, you may need to regenerate the build system entirely.
 To do so, use the procedure documented by the package, typically `autoreconf'.])])
index b524ca37ec96df27e7fa6756caeb6de7c7f8b4ee..a7226cc2fc266f9b2af825b1e84988e4ef97f45d 100755 (executable)
@@ -1,3 +1,3 @@
 #!/bin/sh
 libtoolize
-autoreconf --force --install --verbose -I config -I m4
+autoreconf --force --install --verbose -I m4
index 6bbdfbd8ad877791ed28c72650b30d9ddda60d23..d8653e5b34ec73ddfba6d867970debeb8be82afe 100644 (file)
@@ -205,6 +205,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
@@ -339,9 +340,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bindings/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign bindings/Makefile'; \
        $(am__cd) $(top_srcdir) && \
-         $(AUTOMAKE) --gnu bindings/Makefile
+         $(AUTOMAKE) --foreign bindings/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
index 3083743af4d76f3c6dc58556dcc5d57b0ad19543..c18724bc2c29332ed6ca9952447579de1f985867 100644 (file)
@@ -226,6 +226,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
@@ -367,9 +368,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bindings/lua/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign bindings/lua/Makefile'; \
        $(am__cd) $(top_srcdir) && \
-         $(AUTOMAKE) --gnu bindings/lua/Makefile
+         $(AUTOMAKE) --foreign bindings/lua/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
index d8303bdab4bacc9e0da7b41e94a969aea6d20fae..e94929e6fa1ffc61799a3352515e3557470e120f 100644 (file)
@@ -1,7 +1,28 @@
 /*
 ** Compat-5.1
 ** Copyright Kepler Project 2004-2006 (http://www.keplerproject.org/compat)
-** $Id: compat-5.1.c 1621 2008-10-20 06:06:16Z oetiker $
+** $Id$
+
+Copyright Â© 2004-2006 The Kepler Project.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to
+deal in the Software without restriction, including without limitation the
+rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+sell copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+IN THE SOFTWARE.
+
 */
 
 #include <stdio.h>
index d342203e00aa20a360f5bd6134ab808fd427c5b0..d835069f7a333298c87586e637b46b0f37a5a5cd 100644 (file)
@@ -1,7 +1,28 @@
 /*
 ** Compat-5.1
 ** Copyright Kepler Project 2004-2006 (http://www.keplerproject.org/compat/)
-** $Id: compat-5.1.h 1621 2008-10-20 06:06:16Z oetiker $
+** $Id$
+
+Copyright Â© 2004-2006 The Kepler Project.
+  
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to
+deal in the Software without restriction, including without limitation the
+rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+sell copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in 
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR  
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+IN THE SOFTWARE.   
+
 */
 
 #ifndef COMPAT_H
index 0938d56a7723aff450d9aecc573e1029dbdbbcc3..b662270bf37afc9bc360ca4839b670f076465a3f 100644 (file)
@@ -4,6 +4,26 @@
 -- According to Lua 5.1
 -- $Id: compat-5.1.lua,v 1.22 2006/02/20 21:12:47 carregal Exp $
 --
+-- Copyright Â© 2004-2006 The Kepler Project.
+--   
+-- Permission is hereby granted, free of charge, to any person obtaining a copy
+-- of this software and associated documentation files (the "Software"), to
+-- deal in the Software without restriction, including without limitation the
+-- rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+-- sell copies of the Software, and to permit persons to whom the Software is
+-- furnished to do so, subject to the following conditions:
+-- 
+-- The above copyright notice and this permission notice shall be included in 
+-- all copies or substantial portions of the Software.
+-- 
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR  
+-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+-- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+-- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+-- IN THE SOFTWARE.   
+--
 
 _COMPAT51 = "Compat-5.1 R5"
 
index 8eba8f928b7e31167406da0e19e0152a85916b58..a2647b50f788f908e44571625581e617ce3a6ef3 100644 (file)
@@ -37,7 +37,9 @@
 # define UNUSED(x) x
 #endif
 
-static const char *__version__ = "$Revision: 1.14 $";
+
+#include "../../rrd_config.h"
+static const char *__version__ = PACKAGE_VERSION;
 
 #include "Python.h"
 #include "../../src/rrd_tool.h"
index 93fb7ac96426cc1655d2512103790844109df6c5..355625f9c2ec5d87b6124b1ec05cca1243decfdf 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: main.c 1855 2009-06-07 20:48:39Z oetiker $
+/* $Id$
  * Substantial penalty for early withdrawal.
  */
 
index 8d15a28cd057c80487f6d36ce274997cd95467fe..5d7271c89c9a49722a5922bfb4a33e47bb03fc63 100644 (file)
@@ -196,6 +196,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
@@ -342,9 +343,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu bindings/tcl/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign bindings/tcl/Makefile'; \
        $(am__cd) $(top_srcdir) && \
-         $(AUTOMAKE) --gnu bindings/tcl/Makefile
+         $(AUTOMAKE) --foreign bindings/tcl/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
index f1f0234e96855a78835639c009bd6beadb4411d4..a98a2d7c2ac23f82847e8991a5287f4550f74d03 100644 (file)
@@ -8,7 +8,7 @@
  * See the file "COPYING" for information on usage and redistribution
  * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  *
- * $Id: tclrrd.c 1854 2009-06-07 14:46:21Z oetiker $
+ * $Id$
  */
 
 
index da8331460888af3b367e2a9df88cb52022866c73..e3a2116a7dcd3d282cd95263d96fcbc6f5f42c7d 100755 (executable)
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
 #   Free Software Foundation, Inc.
 
-timestamp='2009-04-27'
+timestamp='2009-06-10'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -170,7 +170,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
            arm*|i386|m68k|ns32k|sh3*|sparc|vax)
                eval $set_cc_for_build
                if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
-                       | grep __ELF__ >/dev/null
+                       | grep -q __ELF__
                then
                    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
                    # Return netbsd for either.  FIX?
@@ -656,7 +656,7 @@ EOF
            # => hppa64-hp-hpux11.23
 
            if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
-               grep __LP64__ >/dev/null
+               grep -q __LP64__
            then
                HP_ARCH="hppa2.0w"
            else
@@ -822,6 +822,9 @@ EOF
     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
        echo i${UNAME_MACHINE}-pc-mks
        exit ;;
+    8664:Windows_NT:*)
+       echo x86_64-pc-mks
+       exit ;;
     i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
        # How do we know it's Interix rather than the generic POSIX subsystem?
        # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
@@ -882,40 +885,17 @@ EOF
     m68*:Linux:*:*)
        echo ${UNAME_MACHINE}-unknown-linux-gnu
        exit ;;
-    mips:Linux:*:*)
+    mips:Linux:*:* | mips64:Linux:*:*)
        eval $set_cc_for_build
        sed 's/^        //' << EOF >$dummy.c
        #undef CPU
-       #undef mips
-       #undef mipsel
+       #undef ${UNAME_MACHINE}
+       #undef ${UNAME_MACHINE}el
        #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-       CPU=mipsel
+       CPU=${UNAME_MACHINE}el
        #else
        #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-       CPU=mips
-       #else
-       CPU=
-       #endif
-       #endif
-EOF
-       eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
-           /^CPU/{
-               s: ::g
-               p
-           }'`"
-       test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
-       ;;
-    mips64:Linux:*:*)
-       eval $set_cc_for_build
-       sed 's/^        //' << EOF >$dummy.c
-       #undef CPU
-       #undef mips64
-       #undef mips64el
-       #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-       CPU=mips64el
-       #else
-       #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-       CPU=mips64
+       CPU=${UNAME_MACHINE}
        #else
        CPU=
        #endif
@@ -947,7 +927,7 @@ EOF
          EV67)  UNAME_MACHINE=alphaev67 ;;
          EV68*) UNAME_MACHINE=alphaev68 ;;
         esac
-       objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
+       objdump --private-headers /bin/sh | grep -q ld.so.1
        if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
        echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
        exit ;;
@@ -1001,14 +981,6 @@ EOF
          elf32-i386)
                TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
                ;;
-         a.out-i386-linux)
-               echo "${UNAME_MACHINE}-pc-linux-gnuaout"
-               exit ;;
-         "")
-               # Either a pre-BFD a.out linker (linux-gnuoldld) or
-               # one that does not give us useful --help.
-               echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
-               exit ;;
        esac
        # Determine whether the default compiler is a.out or elf
        eval $set_cc_for_build
@@ -1074,7 +1046,7 @@ EOF
     i*86:syllable:*:*)
        echo ${UNAME_MACHINE}-pc-syllable
        exit ;;
-    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
        echo i386-unknown-lynxos${UNAME_RELEASE}
        exit ;;
     i*86:*DOS:*:*)
@@ -1182,7 +1154,7 @@ EOF
     rs6000:LynxOS:2.*:*)
        echo rs6000-unknown-lynxos${UNAME_RELEASE}
        exit ;;
-    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
        echo powerpc-unknown-lynxos${UNAME_RELEASE}
        exit ;;
     SM[BE]S:UNIX_SV:*:*)
index a39437d0158ed7058a189617db490472252a70ae..eb0389a693f35eb868f6b979d4ec781feda41d99 100755 (executable)
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Configuration validation subroutine script.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
 #   Free Software Foundation, Inc.
 
-timestamp='2009-04-17'
+timestamp='2009-06-11'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -153,6 +153,9 @@ case $os in
                os=
                basic_machine=$1
                ;;
+        -bluegene*)
+               os=-cnk
+               ;;
        -sim | -cisco | -oki | -wec | -winbond)
                os=
                basic_machine=$1
@@ -467,6 +470,10 @@ case $basic_machine in
                basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
                os=-linux
                ;;
+       bluegene*)
+               basic_machine=powerpc-ibm
+               os=-cnk
+               ;;
        c90)
                basic_machine=c90-cray
                os=-unicos
@@ -1260,7 +1267,7 @@ case $os in
        # Each alternative MUST END IN A *, to match a version number.
        # -sysv* is not here because it comes later, after sysvr4.
        -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
-             | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
+             | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
              | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
              | -kopensolaris* \
              | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
@@ -1613,7 +1620,7 @@ case $basic_machine in
                        -sunos*)
                                vendor=sun
                                ;;
-                       -aix*)
+                       -cnk*|-aix*)
                                vendor=ibm
                                ;;
                        -beos*)
index 66b0ca7f26c20073dbf90498e360d0181d14f06f..af8c9f238282d89526788e99621fdb66f1bc0643 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,18 +1,20 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63 for rrdtool 1.3.99909060808.
+# Generated by GNU Autoconf 2.64 for rrdtool 1.3.999.
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
+# Foundation, Inc.
+#
 # This configure script is free software; the Free Software Foundation
 # gives unlimited permission to copy, distribute and modify it.
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
 
 # Be more Bourne compatible
 DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
@@ -20,23 +22,15 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
 else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
 esac
-
 fi
 
 
-
-
-# PATH needs CR
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
 as_nl='
 '
 export as_nl
@@ -44,7 +38,13 @@ export as_nl
 as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
   as_echo='printf %s\n'
   as_echo_n='printf %s'
 else
@@ -55,7 +55,7 @@ else
     as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
     as_echo_n_body='eval
       arg=$1;
-      case $arg in
+      case $arg in #(
       *"$as_nl"*)
        expr "X$arg" : "X\\(.*\\)$as_nl";
        arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
@@ -78,13 +78,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
   }
 fi
 
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
 
 # IFS
 # We need space, tab and new line, in precisely that order.  Quoting is
@@ -94,15 +87,15 @@ fi
 IFS=" ""       $as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
-case $0 in
+case $0 in #((
   *[\\/]* ) as_myself=$0 ;;
   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
 IFS=$as_save_IFS
 
      ;;
@@ -114,12 +107,16 @@ if test "x$as_myself" = x; then
 fi
 if test ! -f "$as_myself"; then
   $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  { (exit 1); exit 1; }
+  exit 1
 fi
 
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
 done
 PS1='$ '
 PS2='> '
@@ -131,7 +128,248 @@ export LC_ALL
 LANGUAGE=C
 export LANGUAGE
 
-# Required to use basename.
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test "x$CONFIG_SHELL" = x; then
+  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
+else
+  case \`(set -o) 2>/dev/null\` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
+fi
+"
+  as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+  exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1"
+  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+  if (eval "$as_required") 2>/dev/null; then :
+  as_have_required=yes
+else
+  as_have_required=no
+fi
+  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  as_found=:
+  case $as_dir in #(
+        /*)
+          for as_base in sh bash ksh sh5; do
+            # Try only shells that exist, to save several forks.
+            as_shell=$as_dir/$as_base
+            if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+                   { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  CONFIG_SHELL=$as_shell as_have_required=yes
+                  if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  break 2
+fi
+fi
+          done;;
+       esac
+  as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+             { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+  CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+      if test "x$CONFIG_SHELL" != x; then :
+  # We cannot yet assume a decent shell, so we have to provide a
+       # neutralization value for shells without unset; and this also
+       # works around shells that cannot unset nonexistent variables.
+       BASH_ENV=/dev/null
+       ENV=/dev/null
+       (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+       export CONFIG_SHELL
+       exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+fi
+
+    if test x$as_have_required = xno; then :
+  $as_echo "$0: This script requires a shell more modern than all"
+  $as_echo "$0: the shells that I found on your system."
+  if test x${ZSH_VERSION+set} = xset ; then
+    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+  else
+    $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+  fi
+  exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$as_dir" : 'X\(//\)[^/]' \| \
+        X"$as_dir" : 'X\(//\)$' \| \
+        X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)[^/].*/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
+# as_fn_error ERROR [LINENO LOG_FD]
+# ---------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with status $?, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$?; test $as_status -eq 0 && as_status=1
+  if test "$3"; then
+    as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+  fi
+  $as_echo "$as_me: error: $1" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
 if expr a : '\(a\)' >/dev/null 2>&1 &&
    test "X`expr 00001 : '.*\(...\)'`" = X001; then
   as_expr=expr
@@ -145,8 +383,12 @@ else
   as_basename=false
 fi
 
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
 
-# Name of the executable.
 as_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
         X"$0" : 'X\(//\)$' \| \
@@ -166,409 +408,120 @@ $as_echo X/"$0" |
          }
          s/.*/./; q'`
 
-# CDPATH.
-$as_unset CDPATH
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
 
 
-if test "x$CONFIG_SHELL" = x; then
-  if (eval ":") 2>/dev/null; then
-  as_have_required=yes
-else
-  as_have_required=no
-fi
+  as_lineno_1=$LINENO as_lineno_1a=$LINENO
+  as_lineno_2=$LINENO as_lineno_2a=$LINENO
+  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
+    sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
+      N
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+      t loop
+      s/-\n.*//
+    ' >$as_me.lineno &&
+  chmod +x "$as_me.lineno" ||
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
 
-  if test $as_have_required = yes &&    (eval ":
-(as_func_return () {
-  (exit \$1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
+  # Don't try to exec as it changes $[0], causing all sort of problems
+  # (the dirname of $[0] is not the place where we might find the
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
+  # Exit status is that of the last command.
+  exit
 }
 
-exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+  case `echo 'xy\c'` in
+  *c*) ECHO_T='        ';;     # ECHO_T is single tab character.
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='        ';;
+  esac;;
+*)
+  ECHO_N='-n';;
+esac
 
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
 fi
-
-if as_func_ret_success; then
-  :
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -p'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -p'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
+    as_ln_s='cp -p'
+  fi
 else
-  exitcode=1
-  echo as_func_ret_success failed.
+  as_ln_s='cp -p'
 fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
 
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
+if mkdir -p . 2>/dev/null; then
+  as_mkdir_p='mkdir -p "$as_dir"'
+else
+  test -d ./-p && rmdir ./-p
+  as_mkdir_p=false
 fi
 
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
-  :
+if test -x / >/dev/null 2>&1; then
+  as_test_x='test -x'
 else
-  exitcode=1
-  echo positional parameters were not saved.
+  if ls -dL / >/dev/null 2>&1; then
+    as_ls_L_option=L
+  else
+    as_ls_L_option=
+  fi
+  as_test_x='
+    eval sh -c '\''
+      if test -d "$1"; then
+       test -d "$1/.";
+      else
+       case $1 in #(
+       -*)set "./$1";;
+       esac;
+       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+       ???[sx]*):;;*)false;;esac;fi
+    '\'' sh
+  '
 fi
+as_executable_p=$as_test_x
 
-test \$exitcode = 0) || { (exit 1); exit 1; }
-
-(
-  as_lineno_1=\$LINENO
-  as_lineno_2=\$LINENO
-  test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
-  test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
-") 2> /dev/null; then
-  :
-else
-  as_candidate_shells=
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  case $as_dir in
-        /*)
-          for as_base in sh bash ksh sh5; do
-            as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
-          done;;
-       esac
-done
-IFS=$as_save_IFS
-
-
-      for as_shell in $as_candidate_shells $SHELL; do
-        # Try only shells that exist, to save several forks.
-        if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-               { ("$as_shell") 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
-esac
-
-fi
-
-
-:
-_ASEOF
-}; then
-  CONFIG_SHELL=$as_shell
-              as_have_required=yes
-              if { "$as_shell" 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
-esac
-
-fi
-
-
-:
-(as_func_return () {
-  (exit $1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
-
-exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
-  :
-else
-  exitcode=1
-  echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = "$1" ); then
-  :
-else
-  exitcode=1
-  echo positional parameters were not saved.
-fi
-
-test $exitcode = 0) || { (exit 1); exit 1; }
-
-(
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
-
-_ASEOF
-}; then
-  break
-fi
-
-fi
-
-      done
-
-      if test "x$CONFIG_SHELL" != x; then
-  for as_var in BASH_ENV ENV
-       do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-       done
-       export CONFIG_SHELL
-       exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
-fi
-
-
-    if test $as_have_required = no; then
-  echo This script requires a shell more modern than all the
-      echo shells that I found on your system.  Please install a
-      echo modern shell, or manually run the script under such a
-      echo shell if you do have one.
-      { (exit 1); exit 1; }
-fi
-
-
-fi
-
-fi
-
-
-
-(eval "as_func_return () {
-  (exit \$1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
-
-exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
-  :
-else
-  exitcode=1
-  echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
-  :
-else
-  exitcode=1
-  echo positional parameters were not saved.
-fi
-
-test \$exitcode = 0") || {
-  echo No shell found that supports shell functions.
-  echo Please tell bug-autoconf@gnu.org about your system,
-  echo including any error possibly output before this message.
-  echo This can help us improve future autoconf versions.
-  echo Configuration will now proceed without shell functions.
-}
-
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line after each line using $LINENO; the second 'sed'
-  # does the real work.  The second script uses 'N' to pair each
-  # line-number line with the line containing $LINENO, and appends
-  # trailing '-' during substitution so that $LINENO is not a special
-  # case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # scripts with optimization help from Paolo Bonzini.  Blame Lee
-  # E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
-    sed '
-      s/[$]LINENO.*/&-/
-      t lineno
-      b
-      :lineno
-      N
-      :loop
-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
-      t loop
-      s/-\n.*//
-    ' >$as_me.lineno &&
-  chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensitive to this).
-  . "./$as_me.lineno"
-  # Exit status is that of the last command.
-  exit
-}
-
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
--n*)
-  case `echo 'x\c'` in
-  *c*) ECHO_T='        ';;     # ECHO_T is single tab character.
-  *)   ECHO_C='\c';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
-  if ln -s conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s='ln -s'
-    # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
-    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
-  elif ln conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s=ln
-  else
-    as_ln_s='cp -p'
-  fi
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-       test -d "$1/.";
-      else
-       case $1 in
-       -*)set "./$1";;
-       esac;
-       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
-       ???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
 
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
 
 
@@ -738,14 +691,14 @@ cross_compiling=no
 subdirs=
 MFLAGS=
 MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
 
 # Identity of this package.
 PACKAGE_NAME='rrdtool'
 PACKAGE_TARNAME='rrdtool'
-PACKAGE_VERSION='1.3.99909060808'
-PACKAGE_STRING='rrdtool 1.3.99909060808'
+PACKAGE_VERSION='1.3.999'
+PACKAGE_STRING='rrdtool 1.3.999'
 PACKAGE_BUGREPORT=''
+PACKAGE_URL=''
 
 # Factoring default headers for most tests.
 ac_includes_default="\
@@ -916,11 +869,11 @@ LIBTOOL
 STATIC_PROGRAMS_FALSE
 STATIC_PROGRAMS_TRUE
 RRDGRAPH_YLEGEND_ANGLE
+AM_BACKSLASH
+AM_DEFAULT_VERBOSITY
 MAINT
 MAINTAINER_MODE_FALSE
 MAINTAINER_MODE_TRUE
-AM_BACKSLASH
-AM_DEFAULT_VERBOSITY
 am__fastdepCC_FALSE
 am__fastdepCC_TRUE
 CCDEPMODE
@@ -1007,6 +960,7 @@ bindir
 program_transform_name
 prefix
 exec_prefix
+PACKAGE_URL
 PACKAGE_BUGREPORT
 PACKAGE_STRING
 PACKAGE_VERSION
@@ -1019,8 +973,8 @@ ac_subst_files=''
 ac_user_opts='
 enable_option_checking
 enable_dependency_tracking
-enable_silent_rules
 enable_maintainer_mode
+enable_silent_rules
 enable_rrdcgi
 with_rrd_default_font
 enable_mmap
@@ -1173,8 +1127,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
-   { (exit 1); exit 1; }; }
+      as_fn_error "invalid feature name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1200,8 +1153,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
-   { (exit 1); exit 1; }; }
+      as_fn_error "invalid feature name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1405,8 +1357,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
-   { (exit 1); exit 1; }; }
+      as_fn_error "invalid package name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1422,8 +1373,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
-   { (exit 1); exit 1; }; }
+      as_fn_error "invalid package name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1453,17 +1403,17 @@ do
   | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
     x_libraries=$ac_optarg ;;
 
-  -*) { $as_echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; }
+  -*) as_fn_error "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information."
     ;;
 
   *=*)
     ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-      { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2
-   { (exit 1); exit 1; }; }
+    case $ac_envvar in #(
+      '' | [0-9]* | *[!_$as_cr_alnum]* )
+      as_fn_error "invalid variable name: \`$ac_envvar'" ;;
+    esac
     eval $ac_envvar=\$ac_optarg
     export $ac_envvar ;;
 
@@ -1480,15 +1430,13 @@ done
 
 if test -n "$ac_prev"; then
   ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  { $as_echo "$as_me: error: missing argument to $ac_option" >&2
-   { (exit 1); exit 1; }; }
+  as_fn_error "missing argument to $ac_option"
 fi
 
 if test -n "$ac_unrecognized_opts"; then
   case $enable_option_checking in
     no) ;;
-    fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2
-   { (exit 1); exit 1; }; } ;;
+    fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
     *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
   esac
 fi
@@ -1511,8 +1459,7 @@ do
     [\\/$]* | ?:[\\/]* )  continue;;
     NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
   esac
-  { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; }
+  as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
 done
 
 # There might be people who depend on the old broken behavior: `$host'
@@ -1542,11 +1489,9 @@ test "$silent" = yes && exec 6>/dev/null
 ac_pwd=`pwd` && test -n "$ac_pwd" &&
 ac_ls_di=`ls -di .` &&
 ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
-  { $as_echo "$as_me: error: working directory cannot be determined" >&2
-   { (exit 1); exit 1; }; }
+  as_fn_error "working directory cannot be determined"
 test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
-  { $as_echo "$as_me: error: pwd does not report name of working directory" >&2
-   { (exit 1); exit 1; }; }
+  as_fn_error "pwd does not report name of working directory"
 
 
 # Find the source files, if location was not specified.
@@ -1585,13 +1530,11 @@ else
 fi
 if test ! -r "$srcdir/$ac_unique_file"; then
   test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
-  { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
-   { (exit 1); exit 1; }; }
+  as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
 fi
 ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
 ac_abs_confdir=`(
-       cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2
-   { (exit 1); exit 1; }; }
+       cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
        pwd)`
 # When building in place, set srcdir=.
 if test "$ac_abs_confdir" = "$ac_pwd"; then
@@ -1617,7 +1560,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures rrdtool 1.3.99909060808 to adapt to many kinds of systems.
+\`configure' configures rrdtool 1.3.999 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1688,7 +1631,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of rrdtool 1.3.99909060808:";;
+     short | recursive ) echo "Configuration of rrdtool 1.3.999:";;
    esac
   cat <<\_ACEOF
 
@@ -1698,10 +1641,10 @@ Optional Features:
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
   --disable-dependency-tracking  speeds up one-time build
   --enable-dependency-tracking   do not reject slow dependency extractors
-  --enable-silent-rules          less verbose build output (undo: `make V=1')
-  --disable-silent-rules         verbose build output (undo: `make V=0')
   --enable-maintainer-mode  enable make rules and dependencies not useful
                          (and sometimes confusing) to the casual installer
+  --enable-silent-rules          less verbose build output (undo: `make V=1')
+  --disable-silent-rules         verbose build output (undo: `make V=0')
   --disable-rrdcgi        disable building of rrdcgi
   --disable-mmap          disable mmap in rrd_update, use seek+write instead
   --disable-pthread       disable multithread support
@@ -1779,15 +1722,16 @@ Some influential environment variables:
   CPP         C preprocessor
   RRDGRAPH_YLEGEND_ANGLE
               Vertical label angle: -90.0 (default) or 90.0
-  PERLCC      [] C compiler for Perl modules
-  PERLCCFLAGS [] CC flags for Perl modules
-  PERLLD      [same], [as], [PERLCC] Linker for Perl modules
-  PERLLDFLAGS [] LD flags for Perl modules
+  PERLCC      C compiler for Perl modules
+  PERLCCFLAGS CC flags for Perl modules
+  PERLLD      Linker for Perl modules
+  PERLLDFLAGS LD flags for Perl modules
   RRDDOCDIR   [DATADIR/doc/PACKAGE-VERSION] Documentation directory
 
 Use these variables to override the choices made by `configure' or to help
 it to find libraries and programs with nonstandard names/locations.
 
+Report bugs to the package provider.
 _ACEOF
 ac_status=$?
 fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-rrdtool configure 1.3.99909060808
-generated by GNU Autoconf 2.63
+rrdtool configure 1.3.999
+generated by GNU Autoconf 2.64
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+Copyright (C) 2009 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
   exit
 fi
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by rrdtool $as_me 1.3.99909060808, which was
-generated by GNU Autoconf 2.63.  Invocation command line was
 
-  $ $0 $@
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
 
-_ACEOF
-exec 5>>config.log
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
 {
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext
+  if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+       ac_retval=1
+fi
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  return $ac_retval
 
-_ASUNAME
+} # ac_fn_c_try_compile
 
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  $as_echo "PATH: $as_dir"
-done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } >/dev/null && {
+        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+    ac_retval=1
+fi
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  return $ac_retval
 
-## ----------- ##
-## Core tests. ##
-## ----------- ##
+} # ac_fn_c_try_cpp
 
+# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
 _ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_header_compiler=yes
+else
+  ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
 
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  ac_header_preproc=yes
+else
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
 
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
-  for ac_arg
-  do
-    case $ac_arg in
-    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-    | -silent | --silent | --silen | --sile | --sil)
-      continue ;;
-    *\'*)
-      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    case $ac_pass in
-    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
-    2)
-      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
-      if test $ac_must_keep_next = true; then
-       ac_must_keep_next=false # Got value, back to normal.
-      else
-       case $ac_arg in
-         *=* | --config-cache | -C | -disable-* | --disable-* \
-         | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
-         | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
-         | -with-* | --with-* | -without-* | --without-* | --x)
-           case "$ac_configure_args0 " in
-             "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
-           esac
-           ;;
-         -* ) ac_must_keep_next=true ;;
-       esac
-      fi
-      ac_configure_args="$ac_configure_args '$ac_arg'"
-      ;;
-    esac
-  done
-done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log.  We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
-  # Save into config.log some information that might help in debugging.
-  {
-    echo
-
-    cat <<\_ASBOX
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-_ASBOX
-    echo
-    # The following way of writing the cache mishandles newlines in values,
-(
-  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) $as_unset $ac_var ;;
-      esac ;;
-    esac
-  done
-  (set) 2>&1 |
-    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      sed -n \
-       "s/'\''/'\''\\\\'\'''\''/g;
-         s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
-      ;; #(
-    *)
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-)
-    echo
-
-    cat <<\_ASBOX
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-_ASBOX
-    echo
-    for ac_var in $ac_subst_vars
-    do
-      eval ac_val=\$$ac_var
-      case $ac_val in
-      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-      esac
-      $as_echo "$ac_var='\''$ac_val'\''"
-    done | sort
-    echo
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+  yes:no: )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+    ;;
+esac
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+else
+  eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
 
-    if test -n "$ac_subst_files"; then
-      cat <<\_ASBOX
-## ------------------- ##
-## File substitutions. ##
-## ------------------- ##
-_ASBOX
-      echo
-      for ac_var in $ac_subst_files
-      do
-       eval ac_val=\$$ac_var
-       case $ac_val in
-       *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-       esac
-       $as_echo "$ac_var='\''$ac_val'\''"
-      done | sort
-      echo
-    fi
+} # ac_fn_c_check_header_mongrel
 
-    if test -s confdefs.h; then
-      cat <<\_ASBOX
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-_ASBOX
-      echo
-      cat confdefs.h
-      echo
-    fi
-    test "$ac_signal" != 0 &&
-      $as_echo "$as_me: caught signal $ac_signal"
-    $as_echo "$as_me: exit $exit_status"
-  } >&5
-  rm -f core *.core core.conftest.* &&
-    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
-    exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
-  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
-done
-ac_signal=0
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_c_try_run ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: program exited with status $ac_status" >&5
+       $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
+       ac_retval=$ac_status
+fi
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  return $ac_retval
 
-# Predefined preprocessor variables.
+} # ac_fn_c_try_run
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
 _ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
 
+} # ac_fn_c_check_header_compile
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext conftest$ac_exeext
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+        test -z "$ac_c_werror_flag" ||
+        test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+        test "$cross_compiling" = yes ||
+        $as_test_x conftest$ac_exeext
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
 
+       ac_retval=1
+fi
+  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+  # interfere with the next link command; also delete a directory that is
+  # left behind by Apple's compiler.  We do this before executing the actions.
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  return $ac_retval
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
+} # ac_fn_c_try_link
 
+# ac_fn_c_check_func LINENO FUNC VAR
+# ----------------------------------
+# Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $2 innocuous_$2
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $2 (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
 
+#undef $2
 
-# Let the site file select an alternate cache file if it wants to.
-# Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
-if test -n "$CONFIG_SITE"; then
-  ac_site_file1=$CONFIG_SITE
-elif test "x$prefix" != xNONE; then
-  ac_site_file1=$prefix/share/config.site
-  ac_site_file2=$prefix/etc/config.site
-else
-  ac_site_file1=$ac_default_prefix/share/config.site
-  ac_site_file2=$ac_default_prefix/etc/config.site
-fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
-do
-  test "x$ac_site_file" = xNONE && continue
-  if test -r "$ac_site_file"; then
-    { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
-    sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file"
-  fi
-done
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$2 || defined __stub___$2
+choke me
+#endif
 
-if test -r "$cache_file"; then
-  # Some versions of bash will fail to source /dev/null (special
-  # files actually), so we avoid doing that.
-  if test -f "$cache_file"; then
-    { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
-    case $cache_file in
-      [\\/]* | ?:[\\/]* ) . "$cache_file";;
-      *)                      . "./$cache_file";;
-    esac
-  fi
+int
+main ()
+{
+return $2 ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  eval "$3=yes"
 else
-  { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
-  >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
-  eval ac_old_set=\$ac_cv_env_${ac_var}_set
-  eval ac_new_set=\$ac_env_${ac_var}_set
-  eval ac_old_val=\$ac_cv_env_${ac_var}_value
-  eval ac_new_val=\$ac_env_${ac_var}_value
-  case $ac_old_set,$ac_new_set in
-    set,)
-      { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,set)
-      { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,);;
-    *)
-      if test "x$ac_old_val" != "x$ac_new_val"; then
-       # differences in whitespace do not lead to failure.
-       ac_old_val_w=`echo x $ac_old_val`
-       ac_new_val_w=`echo x $ac_new_val`
-       if test "$ac_old_val_w" != "$ac_new_val_w"; then
-         { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-         ac_cache_corrupted=:
-       else
-         { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
-         eval $ac_var=\$ac_old_val
-       fi
-       { $as_echo "$as_me:$LINENO:   former value:  \`$ac_old_val'" >&5
-$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
-       { $as_echo "$as_me:$LINENO:   current value: \`$ac_new_val'" >&5
-$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
-      fi;;
-  esac
-  # Pass precious variables to config.status.
-  if test "$ac_new_set" = set; then
-    case $ac_new_val in
-    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-    *) ac_arg=$ac_var=$ac_new_val ;;
-    esac
-    case " $ac_configure_args " in
-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
-    esac
-  fi
-done
-if $ac_cache_corrupted; then
-  { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-  { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
-   { (exit 1); exit 1; }; }
+  eval "$3=no"
 fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-NUMVERS=1.399909060808
-
-
-LIBVERS=5:0:1
-
-
-ac_aux_dir=
-for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
-  if test -f "$ac_dir/install-sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f "$ac_dir/install.sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  elif test -f "$ac_dir/shtool"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
-  fi
-done
-if test -z "$ac_aux_dir"; then
-  { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5
-$as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;}
-   { (exit 1); exit 1; }; }
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
 
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
-
-
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-  { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
-$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
-   { (exit 1); exit 1; }; }
+} # ac_fn_c_check_func
 
-{ $as_echo "$as_me:$LINENO: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if test "${ac_cv_build+set}" = set; then
+# ac_fn_c_check_decl LINENO SYMBOL VAR
+# ------------------------------------
+# Tests whether SYMBOL is declared, setting cache variable VAR accordingly.
+ac_fn_c_check_decl ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $2 is declared" >&5
+$as_echo_n "checking whether $2 is declared... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
   $as_echo_n "(cached) " >&6
 else
-  ac_build_alias=$build_alias
-test "x$ac_build_alias" = x &&
-  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
-test "x$ac_build_alias" = x &&
-  { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
-$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
-   { (exit 1); exit 1; }; }
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
-$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+#ifndef $2
+  (void) $2;
+#endif
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
-case $ac_cv_build in
-*-*-*) ;;
-*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
-$as_echo "$as_me: error: invalid value of canonical build" >&2;}
-   { (exit 1); exit 1; }; };;
-esac
-build=$ac_cv_build
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_build
-shift
-build_cpu=$1
-build_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-build_os=$*
-IFS=$ac_save_IFS
-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
 
+} # ac_fn_c_check_decl
 
-{ $as_echo "$as_me:$LINENO: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if test "${ac_cv_host+set}" = set; then
+# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
+# -------------------------------------------
+# Tests whether TYPE exists after having included INCLUDES, setting cache
+# variable VAR accordingly.
+ac_fn_c_check_type ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "x$host_alias" = x; then
-  ac_cv_host=$ac_cv_build
+  eval "$3=no"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+if (sizeof ($2))
+        return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+if (sizeof (($2)))
+           return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
 else
-  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-    { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
-$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
+  eval "$3=yes"
 fi
-
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
-case $ac_cv_host in
-*-*-*) ;;
-*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
-$as_echo "$as_me: error: invalid value of canonical host" >&2;}
-   { (exit 1); exit 1; }; };;
-esac
-host=$ac_cv_host
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_host
-shift
-host_cpu=$1
-host_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-host_os=$*
-IFS=$ac_save_IFS
-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
 
+} # ac_fn_c_check_type
 
-{ $as_echo "$as_me:$LINENO: checking target system type" >&5
-$as_echo_n "checking target system type... " >&6; }
-if test "${ac_cv_target+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test "x$target_alias" = x; then
-  ac_cv_target=$ac_cv_host
-else
-  ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
-    { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&5
-$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_target" >&5
-$as_echo "$ac_cv_target" >&6; }
-case $ac_cv_target in
-*-*-*) ;;
-*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical target" >&5
-$as_echo "$as_me: error: invalid value of canonical target" >&2;}
-   { (exit 1); exit 1; }; };;
-esac
-target=$ac_cv_target
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_target
-shift
-target_cpu=$1
-target_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-target_os=$*
-IFS=$ac_save_IFS
-case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac
+# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
+# --------------------------------------------
+# Tries to find the compile-time value of EXPR in a program that includes
+# INCLUDES, setting VAR accordingly. Returns whether the value could be
+# computed
+ac_fn_c_compute_int ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if test "$cross_compiling" = yes; then
+    # Depending upon the size, compute the lo and hi bounds.
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) >= 0)];
+test_array [0] = 0
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0
 
-# The aliases save the names the user supplied, while $host etc.
-# will get canonicalized.
-test -n "$target_alias" &&
-  test "$program_prefix$program_suffix$program_transform_name" = \
-    NONENONEs,x,x, &&
-  program_prefix=${target_alias}-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_hi=$ac_mid; break
 else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
+  as_fn_arith $ac_mid + 1 && ac_lo=$as_val
+                       if test $ac_lo -le $ac_mid; then
+                         ac_lo= ac_hi=
+                         break
+                       fi
+                       as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
 fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
-$as_echo "$CC" >&6; }
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) < 0)];
+test_array [0] = 0
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) >= $ac_mid)];
+test_array [0] = 0
 
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  $as_echo_n "(cached) " >&6
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_lo=$ac_mid; break
 else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+  as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
+                       if test $ac_mid -le $ac_hi; then
+                         ac_lo= ac_hi=
+                         break
+                       fi
+                       as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
 else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CC="gcc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
+  ac_lo= ac_hi=
 fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_hi=$ac_mid
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
+  as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
 fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in #((
+?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
+'') ac_retval=1 ;;
+esac
+  else
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+static long int longval () { return $2; }
+static unsigned long int ulongval () { return $2; }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
 
-  if test "x$ac_ct_CC" = x; then
-    CC=""
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    return 1;
+  if (($2) < 0)
+    {
+      long int i = longval ();
+      if (i != ($2))
+       return 1;
+      fprintf (f, "%ld", i);
+    }
   else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
+    {
+      unsigned long int i = ulongval ();
+      if (i != ($2))
+       return 1;
+      fprintf (f, "%lu", i);
+    }
+  /* Do not output a trailing newline, as this causes \r\n confusion
+     on some platforms.  */
+  return ferror (f) || fclose (f) != 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  echo >>conftest.val; read $3 <conftest.val; ac_retval=0
 else
-  CC="$ac_cv_prog_CC"
+  ac_retval=1
 fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f conftest.val
+
+  fi
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  return $ac_retval
+
+} # ac_fn_c_compute_int
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by rrdtool $as_me 1.3.999, which was
+generated by GNU Autoconf 2.64.  Invocation command line was
+
+  $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+
+/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
+/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+
+_ASUNAME
 
-if test -z "$CC"; then
-          if test -n "$ac_tool_prefix"; then
-    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="${ac_tool_prefix}cc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
+    $as_echo "PATH: $as_dir"
+  done
 IFS=$as_save_IFS
 
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  fi
-fi
-if test -z "$CC"; then
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
-       ac_prog_rejected=yes
-       continue
-     fi
-    ac_cv_prog_CC="cc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
+} >&5
 
-if test $ac_prog_rejected = yes; then
-  # We found a bogon in the path, so make sure we never use it.
-  set dummy $ac_cv_prog_CC
-  shift
-  if test $# != 0; then
-    # We chose a different compiler from the bogus one.
-    # However, it has the same basename, so the bogon will be chosen
-    # first if we set CC to just the basename; use the full file name.
-    shift
-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
-  fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
+cat >&5 <<_ACEOF
 
 
-fi
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl.exe
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
+## ----------- ##
+## Core tests. ##
+## ----------- ##
 
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
+_ACEOF
 
 
-    test -n "$CC" && break
-  done
-fi
-if test -z "$CC"; then
-  ac_ct_CC=$CC
-  for ac_prog in cl.exe
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
 do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CC="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
+  for ac_arg
+  do
+    case $ac_arg in
+    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+    | -silent | --silent | --silen | --sile | --sil)
+      continue ;;
+    *\'*)
+      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    case $ac_pass in
+    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+    2)
+      as_fn_append ac_configure_args1 " '$ac_arg'"
+      if test $ac_must_keep_next = true; then
+       ac_must_keep_next=false # Got value, back to normal.
+      else
+       case $ac_arg in
+         *=* | --config-cache | -C | -disable-* | --disable-* \
+         | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+         | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+         | -with-* | --with-* | -without-* | --without-* | --x)
+           case "$ac_configure_args0 " in
+             "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+           esac
+           ;;
+         -* ) ac_must_keep_next=true ;;
+       esac
+      fi
+      as_fn_append ac_configure_args " '$ac_arg'"
+      ;;
+    esac
+  done
 done
-IFS=$as_save_IFS
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
 
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log.  We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+  # Save into config.log some information that might help in debugging.
+  {
+    echo
 
+    cat <<\_ASBOX
+## ---------------- ##
+## Cache variables. ##
+## ---------------- ##
+_ASBOX
+    echo
+    # The following way of writing the cache mishandles newlines in values,
+(
+  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+      *) { eval $ac_var=; unset $ac_var;} ;;
+      esac ;;
+    esac
+  done
+  (set) 2>&1 |
+    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
+      sed -n \
+       "s/'\''/'\''\\\\'\'''\''/g;
+         s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+      ;; #(
+    *)
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+      ;;
+    esac |
+    sort
+)
+    echo
 
-  test -n "$ac_ct_CC" && break
-done
+    cat <<\_ASBOX
+## ----------------- ##
+## Output variables. ##
+## ----------------- ##
+_ASBOX
+    echo
+    for ac_var in $ac_subst_vars
+    do
+      eval ac_val=\$$ac_var
+      case $ac_val in
+      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+      esac
+      $as_echo "$ac_var='\''$ac_val'\''"
+    done | sort
+    echo
 
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-fi
+    if test -n "$ac_subst_files"; then
+      cat <<\_ASBOX
+## ------------------- ##
+## File substitutions. ##
+## ------------------- ##
+_ASBOX
+      echo
+      for ac_var in $ac_subst_files
+      do
+       eval ac_val=\$$ac_var
+       case $ac_val in
+       *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+       esac
+       $as_echo "$ac_var='\''$ac_val'\''"
+      done | sort
+      echo
+    fi
 
-fi
+    if test -s confdefs.h; then
+      cat <<\_ASBOX
+## ----------- ##
+## confdefs.h. ##
+## ----------- ##
+_ASBOX
+      echo
+      cat confdefs.h
+      echo
+    fi
+    test "$ac_signal" != 0 &&
+      $as_echo "$as_me: caught signal $ac_signal"
+    $as_echo "$as_me: exit $exit_status"
+  } >&5
+  rm -f core *.core core.conftest.* &&
+    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+    exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
 
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
 
-test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+$as_echo "/* confdefs.h */" > confdefs.h
 
-# Provide some information about the compiler.
-$as_echo "$as_me:$LINENO: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-{ (ac_try="$ac_compiler --version >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler --version >&5") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -v >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler -v >&5") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -V >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler -V >&5") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
+# Predefined preprocessor variables.
 
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-int
-main ()
-{
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
 
-  ;
-  return 0;
-}
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
 _ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
 
-# The possible output files:
-ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
 
-ac_rmfiles=
-for ac_file in $ac_files
-do
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
-    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
-  esac
-done
-rm -f $ac_rmfiles
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
 
-if { (ac_try="$ac_link_default"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link_default") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-# in a Makefile.  We should not override ac_cv_exeext if it was cached,
-# so that the user can short-circuit this test for compilers unknown to
-# Autoconf.
-for ac_file in $ac_files ''
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+  ac_site_file1=$CONFIG_SITE
+elif test "x$prefix" != xNONE; then
+  ac_site_file1=$prefix/share/config.site
+  ac_site_file2=$prefix/etc/config.site
+else
+  ac_site_file1=$ac_default_prefix/share/config.site
+  ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
 do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
-       ;;
-    [ab].out )
-       # We found the default executable, but exeext='' is most
-       # certainly right.
-       break;;
-    *.* )
-        if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
-       then :; else
-          ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-       fi
-       # We set ac_cv_exeext here because the later test for it is not
-       # safe: cross compilers may not add the suffix if given an `-o'
-       # argument, so we may need to know it at that point already.
-       # Even if this section looks crufty: it has the advantage of
-       # actually working.
-       break;;
-    * )
-       break;;
-  esac
+  test "x$ac_site_file" = xNONE && continue
+  if test -r "$ac_site_file"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
+    sed 's/^/| /' "$ac_site_file" >&5
+    . "$ac_site_file"
+  fi
 done
-test "$ac_cv_exeext" = no && ac_cv_exeext=
 
+if test -r "$cache_file"; then
+  # Some versions of bash will fail to source /dev/null (special
+  # files actually), so we avoid doing that.
+  if test -f "$cache_file"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
+    case $cache_file in
+      [\\/]* | ?:[\\/]* ) . "$cache_file";;
+      *)                      . "./$cache_file";;
+    esac
+  fi
 else
-  ac_file=''
+  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+  >$cache_file
 fi
 
-{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
-if test -z "$ac_file"; then
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+  eval ac_new_set=\$ac_env_${ac_var}_set
+  eval ac_old_val=\$ac_cv_env_${ac_var}_value
+  eval ac_new_val=\$ac_env_${ac_var}_value
+  case $ac_old_set,$ac_new_set in
+    set,)
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,set)
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      ac_cache_corrupted=: ;;
+    ,);;
+    *)
+      if test "x$ac_old_val" != "x$ac_new_val"; then
+       # differences in whitespace do not lead to failure.
+       ac_old_val_w=`echo x $ac_old_val`
+       ac_new_val_w=`echo x $ac_new_val`
+       if test "$ac_old_val_w" != "$ac_new_val_w"; then
+         { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+         ac_cache_corrupted=:
+       else
+         { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+         eval $ac_var=\$ac_old_val
+       fi
+       { $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
+$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
+       { $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
+$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
+      fi;;
+  esac
+  # Pass precious variables to config.status.
+  if test "$ac_new_set" = set; then
+    case $ac_new_val in
+    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *) ac_arg=$ac_var=$ac_new_val ;;
+    esac
+    case " $ac_configure_args " in
+      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+    esac
+  fi
+done
+if $ac_cache_corrupted; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: C compiler cannot create executables
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+  as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
 fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
 
-ac_exeext=$ac_cv_exeext
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-# Check that the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
-# If not cross compiling, check that we can run a simple program.
-if test "$cross_compiling" != yes; then
-  if { ac_try='./$ac_file'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-    cross_compiling=no
-  else
-    if test "$cross_compiling" = maybe; then
-       cross_compiling=yes
-    else
-       { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+
+
+NUMVERS=1.3999
+
+
+LIBVERS=5:0:1
+
+
+ac_aux_dir=
+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
+  for ac_t in install-sh install.sh shtool; do
+    if test -f "$ac_dir/$ac_t"; then
+      ac_aux_dir=$ac_dir
+      ac_install_sh="$ac_aux_dir/$ac_t -c"
+      break 2
     fi
-  fi
+  done
+done
+if test -z "$ac_aux_dir"; then
+  as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
 fi
-{ $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
 
-rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-# Check that the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
-{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 
-{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5
-$as_echo_n "checking for suffix of executables... " >&6; }
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
-    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-         break;;
-    * ) break;;
-  esac
-done
-else
-  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
-fi
 
-rm -f conftest$ac_cv_exeext
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
-$as_echo "$ac_cv_exeext" >&6; }
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+  as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
 
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if test "${ac_cv_objext+set}" = set; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if test "${ac_cv_build+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
+  ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
+  as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+  as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
-  for ac_file in conftest.o conftest.obj conftest.*; do
-  test -f "$ac_file" || continue;
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
-    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
-       break;;
-  esac
-done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
 
-{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
-fi
 
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-$as_echo "$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if test "${ac_cv_host+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_compiler_gnu=yes
+  if test "x$host_alias" = x; then
+  ac_cv_host=$ac_cv_build
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+    as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
 
-       ac_compiler_gnu=no
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
-  GCC=yes
-else
-  GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
+$as_echo_n "checking target system type... " >&6; }
+if test "${ac_cv_target+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  ac_save_c_werror_flag=$ac_c_werror_flag
-   ac_c_werror_flag=yes
-   ac_cv_prog_cc_g=no
-   CFLAGS="-g"
-   cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cc_g=yes
+  if test "x$target_alias" = x; then
+  ac_cv_target=$ac_cv_host
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
+    as_fn_error "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5
+fi
 
-       CFLAGS=""
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5
+$as_echo "$ac_cv_target" >&6; }
+case $ac_cv_target in
+*-*-*) ;;
+*) as_fn_error "invalid value of canonical target" "$LINENO" 5;;
+esac
+target=$ac_cv_target
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_target
+shift
+target_cpu=$1
+target_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+target_os=$*
+IFS=$ac_save_IFS
+case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac
 
-int
-main ()
-{
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
+# The aliases save the names the user supplied, while $host etc.
+# will get canonicalized.
+test -n "$target_alias" &&
+  test "$program_prefix$program_suffix$program_transform_name" = \
+    NONENONEs,x,x, &&
+  program_prefix=${target_alias}-
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
-       ac_c_werror_flag=$ac_save_c_werror_flag
-        CFLAGS="-g"
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
 
-int
-main ()
-{
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cc_g=yes
+fi
+if test -z "$ac_cv_prog_CC"; then
+  ac_ct_CC=$CC
+  # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_CC="gcc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
 fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
-  CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
-  if test "$GCC" = yes; then
-    CFLAGS="-g -O2"
+  if test "x$ac_ct_CC" = x; then
+    CC=""
   else
-    CFLAGS="-g"
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
   fi
 else
-  if test "$GCC" = yes; then
-    CFLAGS="-O2"
-  else
-    CFLAGS=
-  fi
+  CC="$ac_cv_prog_CC"
 fi
-{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then
+
+if test -z "$CC"; then
+          if test -n "$ac_tool_prefix"; then
+    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
-   function prototypes and stuff, but not '\xHH' hex character constants.
-   These don't provoke an error unfortunately, instead are silently treated
-   as 'x'.  The following induces an error, until -std is added to get
-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
-   array size at least.  It's necessary to write '\x00'==0 to get something
-   that's true only with -std.  */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
-   inside strings and character constants.  */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-  ;
-  return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
-       -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
 do
-  CC="$ac_save_CC $ac_arg"
-  rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_prog_cc_c89=$ac_arg
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_CC="${ac_tool_prefix}cc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
 
 
+  fi
 fi
-
-rm -f core conftest.err conftest.$ac_objext
-  test "x$ac_cv_prog_cc_c89" != "xno" && break
+if test -z "$CC"; then
+  # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+       ac_prog_rejected=yes
+       continue
+     fi
+    ac_cv_prog_CC="cc"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
 done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
+  done
+IFS=$as_save_IFS
 
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# != 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+  fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
-  x)
-    { $as_echo "$as_me:$LINENO: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
-  xno)
-    { $as_echo "$as_me:$LINENO: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
-  *)
-    CC="$CC $ac_cv_prog_cc_c89"
-    { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
-$as_echo_n "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
 fi
-if test -z "$CPP"; then
-  if test "${ac_cv_prog_CPP+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-      # Double quotes because CPP needs to be expanded
-    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-                    Syntax error
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  :
+if test -z "$CC"; then
+  if test -n "$ac_tool_prefix"; then
+  for ac_prog in cl.exe
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_CC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
-  # Broken: fails on valid input.
-continue
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
-rm -f conftest.err conftest.$ac_ext
 
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  # Broken: success on invalid input.
-continue
+    test -n "$CC" && break
+  done
+fi
+if test -z "$CC"; then
+  ac_ct_CC=$CC
+  for ac_prog in cl.exe
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+  $as_echo_n "(cached) " >&6
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  if test -n "$ac_ct_CC"; then
+  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_CC="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
-  # Passes both tests.
-ac_preproc_ok=:
-break
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
-rm -f conftest.err conftest.$ac_ext
 
+  test -n "$ac_ct_CC" && break
 done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  break
-fi
-
-    done
-    ac_cv_prog_CPP=$CPP
 
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
 fi
-  CPP=$ac_cv_prog_CPP
-else
-  ac_cv_prog_CPP=$CPP
+
 fi
-{ $as_echo "$as_me:$LINENO: result: $CPP" >&5
-$as_echo "$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-                    Syntax error
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "no acceptable C compiler found in \$PATH
+See \`config.log' for more details." "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
   ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  # Broken: fails on valid input.
-continue
-fi
-
-rm -f conftest.err conftest.$ac_ext
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    rm -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
 
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <ac_nonexistent.h>
+#include <stdio.h>
+int
+main ()
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+  ;
+  return 0;
+}
 _ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out conftest.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+  esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link_default") 2>&5
   ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  # Broken: success on invalid input.
-continue
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile.  We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+       ;;
+    [ab].out )
+       # We found the default executable, but exeext='' is most
+       # certainly right.
+       break;;
+    *.* )
+       if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+       then :; else
+          ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+       fi
+       # We set ac_cv_exeext here because the later test for it is not
+       # safe: cross compilers may not add the suffix if given an `-o'
+       # argument, so we may need to know it at that point already.
+       # Even if this section looks crufty: it has the advantage of
+       # actually working.
+       break;;
+    * )
+       break;;
+  esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
 else
+  ac_file=''
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+if test -z "$ac_file"; then :
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-
-rm -f conftest.err conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  :
-else
-  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+{ as_fn_set_status 77
+as_fn_error "C compiler cannot create executables
+See \`config.log' for more details." "$LINENO" 5; }; }
 fi
+ac_exeext=$ac_cv_exeext
 
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if test "${ac_cv_path_GREP+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$GREP"; then
-  ac_path_GREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_prog in grep ggrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
-# Check for GNU ac_path_GREP and select it if it is found.
-  # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'GREP' >> "conftest.nl"
-    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    ac_count=`expr $ac_count + 1`
-    if test $ac_count -gt ${ac_path_GREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_GREP="$ac_path_GREP"
-      ac_path_GREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+# Check that the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
+# If not cross compiling, check that we can run a simple program.
+if test "$cross_compiling" != yes; then
+  if { ac_try='./$ac_file'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
 esac
-
-      $ac_path_GREP_found && break 3
-    done
-  done
-done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_GREP"; then
-    { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
-   { (exit 1); exit 1; }; }
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then
+    cross_compiling=no
+  else
+    if test "$cross_compiling" = maybe; then
+       cross_compiling=yes
+    else
+       { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details." "$LINENO" 5; }
+    fi
   fi
-else
-  ac_cv_path_GREP=$GREP
-fi
-
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out conftest.out
+ac_clean_files=$ac_clean_files_save
+# Check that the compiler produces executables we can run.  If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
 
-{ $as_echo "$as_me:$LINENO: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if test "${ac_cv_path_EGREP+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
-   then ac_cv_path_EGREP="$GREP -E"
-   else
-     if test -z "$EGREP"; then
-  ac_path_EGREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_prog in egrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
-  # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'EGREP' >> "conftest.nl"
-    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    ac_count=`expr $ac_count + 1`
-    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_EGREP="$ac_path_EGREP"
-      ac_path_EGREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
+if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
 esac
-
-      $ac_path_EGREP_found && break 3
-    done
-  done
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+  test -f "$ac_file" || continue
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+         break;;
+    * ) break;;
+  esac
 done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_EGREP"; then
-    { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
 else
-  ac_cv_path_EGREP=$EGREP
-fi
-
-   fi
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." "$LINENO" 5; }
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
+rm -f conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
 
-{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if test "${ac_cv_objext+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
 
 int
 main ()
@@ -3725,402 +3437,534 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
+rm -f conftest.o conftest.obj
+if { ac_try="$ac_compile"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>&5
   ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_header_stdc=yes
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
+  for ac_file in conftest.o conftest.obj conftest.*; do
+  test -f "$ac_file" || continue;
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+       break;;
+  esac
+done
 else
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_cv_header_stdc=no
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." "$LINENO" 5; }
 fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if test "${ac_cv_c_compiler_gnu+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <string.h>
 
+int
+main ()
+{
+#ifndef __GNUC__
+       choke me
+#endif
+
+  ;
+  return 0;
+}
 _ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then
-  :
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_compiler_gnu=yes
 else
-  ac_cv_header_stdc=no
+  ac_compiler_gnu=no
 fi
-rm -f conftest*
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GCC=yes
+else
+  GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if test "${ac_cv_prog_cc_g+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_save_c_werror_flag=$ac_c_werror_flag
+   ac_c_werror_flag=yes
+   ac_cv_prog_cc_g=no
+   CFLAGS="-g"
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+int
+main ()
+{
+
+  ;
+  return 0;
+}
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
+else
+  CFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <stdlib.h>
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then
-  :
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
+int
+main ()
+{
 
-fi
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
 
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then
-  :
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  ac_c_werror_flag=$ac_save_c_werror_flag
+        CFLAGS="-g"
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
-                  (('a' <= (c) && (c) <= 'i') \
-                    || ('j' <= (c) && (c) <= 'r') \
-                    || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
 
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
 int
 main ()
 {
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-       || toupper (i) != TOUPPER (i))
-      return 2;
+
+  ;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_header_stdc=no
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_g=yes
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-
-
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_c_werror_flag=$ac_save_c_werror_flag
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if test "${ac_cv_prog_cc_c89+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+     char **p;
+     int i;
+{
+  return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+  char *s;
+  va_list v;
+  va_start (v,p);
+  s = g (p, va_arg (v,int));
+  va_end (v);
+  return s;
+}
 
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-
-
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
 
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+   inside strings and character constants.  */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
 
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+  ;
+  return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+       -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+  CC="$ac_save_CC $ac_arg"
+  if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
 
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+  x)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+  xno)
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+  *)
+    CC="$CC $ac_cv_prog_cc_c89"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
 
+fi
 
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
-                 inttypes.h stdint.h unistd.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+  if test "${ac_cv_prog_CPP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+      # Double quotes because CPP needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
-
-#include <$ac_header>
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+                    Syntax error
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval "$as_ac_Header=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_cpp "$LINENO"; then :
 
-       eval "$as_ac_Header=no"
+else
+  # Broken: fails on valid input.
+continue
 fi
+rm -f conftest.err conftest.$ac_ext
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
 _ACEOF
-
+if ac_fn_c_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
+else
+  # Passes both tests.
+ac_preproc_ok=:
+break
 fi
+rm -f conftest.err conftest.$ac_ext
 
 done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+  break
+fi
 
+    done
+    ac_cv_prog_CPP=$CPP
 
-
-  if test "${ac_cv_header_minix_config_h+set}" = set; then
-  { $as_echo "$as_me:$LINENO: checking for minix/config.h" >&5
-$as_echo_n "checking for minix/config.h... " >&6; }
-if test "${ac_cv_header_minix_config_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5
-$as_echo "$ac_cv_header_minix_config_h" >&6; }
+  CPP=$ac_cv_prog_CPP
 else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking minix/config.h usability" >&5
-$as_echo_n "checking minix/config.h usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <minix/config.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
+  ac_cv_prog_CPP=$CPP
 fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking minix/config.h presence" >&5
-$as_echo_n "checking minix/config.h presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <minix/config.h>
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+                    Syntax error
 _ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_cpp "$LINENO"; then :
 
-  ac_header_preproc=no
+else
+  # Broken: fails on valid input.
+continue
 fi
-
 rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
 
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: minix/config.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: minix/config.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: minix/config.h: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: minix/config.h:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: minix/config.h:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: minix/config.h: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: minix/config.h:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: minix/config.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: minix/config.h: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: minix/config.h: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: minix/config.h: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for minix/config.h" >&5
-$as_echo_n "checking for minix/config.h... " >&6; }
-if test "${ac_cv_header_minix_config_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
 else
-  ac_cv_header_minix_config_h=$ac_header_preproc
+  # Passes both tests.
+ac_preproc_ok=:
+break
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_minix_config_h" >&5
-$as_echo "$ac_cv_header_minix_config_h" >&6; }
+rm -f conftest.err conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
 
-fi
-if test "x$ac_cv_header_minix_config_h" = x""yes; then
-  MINIX=yes
 else
-  MINIX=
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." "$LINENO" 5; }
 fi
 
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-  if test "$MINIX" = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define _POSIX_SOURCE 1
-_ACEOF
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if test "${ac_cv_path_GREP+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$GREP"; then
+  ac_path_GREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in grep ggrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+  # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'GREP' >> "conftest.nl"
+    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_GREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_GREP="$ac_path_GREP"
+      ac_path_GREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
 
+      $ac_path_GREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_GREP"; then
+    as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_GREP=$GREP
+fi
 
-cat >>confdefs.h <<\_ACEOF
-#define _POSIX_1_SOURCE 2
-_ACEOF
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
 
 
-cat >>confdefs.h <<\_ACEOF
-#define _MINIX 1
-_ACEOF
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if test "${ac_cv_path_EGREP+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+   then ac_cv_path_EGREP="$GREP -E"
+   else
+     if test -z "$EGREP"; then
+  ac_path_EGREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in egrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+  # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'EGREP' >> "conftest.nl"
+    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_EGREP="$ac_path_EGREP"
+      ac_path_EGREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
 
+      $ac_path_EGREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_EGREP"; then
+    as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
   fi
+else
+  ac_cv_path_EGREP=$EGREP
+fi
 
+   fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
 
 
-  { $as_echo "$as_me:$LINENO: checking whether it is safe to define __EXTENSIONS__" >&5
-$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
-if test "${ac_cv_safe_to_define___extensions__+set}" = set; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if test "${ac_cv_header_stdc+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
 
-#        define __EXTENSIONS__ 1
-         $ac_includes_default
 int
 main ()
 {
@@ -4129,78 +3973,197 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_safe_to_define___extensions__=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_header_stdc=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_safe_to_define___extensions__=no
+  ac_cv_header_stdc=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_safe_to_define___extensions__" >&5
-$as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
-  test $ac_cv_safe_to_define___extensions__ = yes &&
-    cat >>confdefs.h <<\_ACEOF
-#define __EXTENSIONS__ 1
-_ACEOF
 
-  cat >>confdefs.h <<\_ACEOF
-#define _ALL_SOURCE 1
-_ACEOF
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <string.h>
 
-  cat >>confdefs.h <<\_ACEOF
-#define _GNU_SOURCE 1
 _ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "memchr" >/dev/null 2>&1; then :
 
-  cat >>confdefs.h <<\_ACEOF
-#define _POSIX_PTHREAD_SEMANTICS 1
-_ACEOF
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
 
-  cat >>confdefs.h <<\_ACEOF
-#define _TANDEM_SOURCE 1
 _ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "free" >/dev/null 2>&1; then :
 
+else
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
 
-am__api_version='1.11'
+fi
 
-# Find a good install program.  We prefer a C program (faster),
-# so one script is as good as another.  But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+  if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+                  (('a' <= (c) && (c) <= 'i') \
+                    || ('j' <= (c) && (c) <= 'r') \
+                    || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 256; i++)
+    if (XOR (islower (i), ISLOWER (i))
+       || toupper (i) != TOUPPER (i))
+      return 2;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+  ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+                 inttypes.h stdint.h unistd.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+  ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
+if test "x$ac_cv_header_minix_config_h" = x""yes; then :
+  MINIX=yes
+else
+  MINIX=
+fi
+
+
+  if test "$MINIX" = yes; then
+
+$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h
+
+
+$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h
+
+
+$as_echo "#define _MINIX 1" >>confdefs.h
+
+  fi
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
+$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
+if test "${ac_cv_safe_to_define___extensions__+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#        define __EXTENSIONS__ 1
+         $ac_includes_default
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_safe_to_define___extensions__=yes
+else
+  ac_cv_safe_to_define___extensions__=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
+$as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
+  test $ac_cv_safe_to_define___extensions__ = yes &&
+    $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h
+
+  $as_echo "#define _ALL_SOURCE 1" >>confdefs.h
+
+  $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
+
+  $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
+
+  $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
+
+
+am__api_version='1.11'
+
+# Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # OS/2's system install, which has a completely different semantic
 # ./install, which can be erroneously created by make from ./install.sh.
 # Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
 $as_echo_n "checking for a BSD-compatible install... " >&6; }
 if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
+if test "${ac_cv_path_install+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -4208,11 +4171,11 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in
-  ./ | .// | /cC/* | \
+    # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in #((
+  ./ | .// | /[cC]/* | \
   /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
-  ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
+  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
   /usr/ucb/* ) ;;
   *)
     # OSF1 and SCO ODT 3.0 have their own names for install.
@@ -4249,7 +4212,7 @@ case $as_dir/ in
     ;;
 esac
 
-done
+  done
 IFS=$as_save_IFS
 
 rm -rf conftest.one conftest.two conftest.dir
@@ -4265,7 +4228,7 @@ fi
     INSTALL=$ac_install_sh
   fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
 $as_echo "$INSTALL" >&6; }
 
 # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
@@ -4276,7 +4239,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
 
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
-{ $as_echo "$as_me:$LINENO: checking whether build environment is sane" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
 $as_echo_n "checking whether build environment is sane... " >&6; }
 # Just in case
 sleep 1
@@ -4287,15 +4250,11 @@ am_lf='
 '
 case `pwd` in
   *[\\\"\#\$\&\'\`$am_lf]*)
-    { { $as_echo "$as_me:$LINENO: error: unsafe absolute working directory name" >&5
-$as_echo "$as_me: error: unsafe absolute working directory name" >&2;}
-   { (exit 1); exit 1; }; };;
+    as_fn_error "unsafe absolute working directory name" "$LINENO" 5;;
 esac
 case $srcdir in
   *[\\\"\#\$\&\'\`$am_lf\ \    ]*)
-    { { $as_echo "$as_me:$LINENO: error: unsafe srcdir value: \`$srcdir'" >&5
-$as_echo "$as_me: error: unsafe srcdir value: \`$srcdir'" >&2;}
-   { (exit 1); exit 1; }; };;
+    as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
 esac
 
 # Do `set' in a subshell so we don't clobber the current shell's
@@ -4317,11 +4276,8 @@ if (
       # if, for instance, CONFIG_SHELL is bash and it inherits a
       # broken ls alias from the environment.  This has actually
       # happened.  Such a system could not be considered "sane".
-      { { $as_echo "$as_me:$LINENO: error: ls -t appears to fail.  Make sure there is not a broken
-alias in your environment" >&5
-$as_echo "$as_me: error: ls -t appears to fail.  Make sure there is not a broken
-alias in your environment" >&2;}
-   { (exit 1); exit 1; }; }
+      as_fn_error "ls -t appears to fail.  Make sure there is not a broken
+alias in your environment" "$LINENO" 5
    fi
 
    test "$2" = conftest.file
@@ -4330,13 +4286,10 @@ then
    # Ok.
    :
 else
-   { { $as_echo "$as_me:$LINENO: error: newly created file is older than distributed files!
-Check your system clock" >&5
-$as_echo "$as_me: error: newly created file is older than distributed files!
-Check your system clock" >&2;}
-   { (exit 1); exit 1; }; }
+   as_fn_error "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
 fi
-{ $as_echo "$as_me:$LINENO: result: yes" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 test "$program_prefix" != NONE &&
   program_transform_name="s&^&$program_prefix&;$program_transform_name"
@@ -4364,7 +4317,7 @@ if eval "$MISSING --run true"; then
   am_missing_run="$MISSING --run "
 else
   am_missing_run=
-  { $as_echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
 fi
 
@@ -4385,9 +4338,9 @@ if test "$cross_compiling" != no; then
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
 set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then
+if test "${ac_cv_prog_STRIP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$STRIP"; then
@@ -4398,24 +4351,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 STRIP=$ac_cv_prog_STRIP
 if test -n "$STRIP"; then
-  { $as_echo "$as_me:$LINENO: result: $STRIP" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
 $as_echo "$STRIP" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -4425,9 +4378,9 @@ if test -z "$ac_cv_prog_STRIP"; then
   ac_ct_STRIP=$STRIP
   # Extract the first word of "strip", so it can be a program name with args.
 set dummy strip; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_STRIP"; then
@@ -4438,24 +4391,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_STRIP="strip"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
 if test -n "$ac_ct_STRIP"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
 $as_echo "$ac_ct_STRIP" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -4464,7 +4417,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -4477,10 +4430,10 @@ fi
 fi
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 
-{ $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
 if test -z "$MKDIR_P"; then
-  if test "${ac_cv_path_mkdir+set}" = set; then
+  if test "${ac_cv_path_mkdir+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -4488,7 +4441,7 @@ for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_prog in mkdir gmkdir; do
+    for ac_prog in mkdir gmkdir; do
         for ac_exec_ext in '' $ac_executable_extensions; do
           { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
           case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
@@ -4500,7 +4453,7 @@ do
           esac
         done
        done
-done
+  done
 IFS=$as_save_IFS
 
 fi
@@ -4516,7 +4469,7 @@ fi
     MKDIR_P="$ac_install_sh -d"
   fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
 $as_echo "$MKDIR_P" >&6; }
 
 mkdir_p="$MKDIR_P"
@@ -4529,9 +4482,9 @@ for ac_prog in gawk mawk nawk awk
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AWK+set}" = set; then
+if test "${ac_cv_prog_AWK+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$AWK"; then
@@ -4542,24 +4495,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_AWK="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 AWK=$ac_cv_prog_AWK
 if test -n "$AWK"; then
-  { $as_echo "$as_me:$LINENO: result: $AWK" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
 $as_echo "$AWK" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -4567,11 +4520,11 @@ fi
   test -n "$AWK" && break
 done
 
-{ $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
 set x ${MAKE-make}
 ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then
+if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
   $as_echo_n "(cached) " >&6
 else
   cat >conftest.make <<\_ACEOF
@@ -4589,11 +4542,11 @@ esac
 rm -f conftest.make
 fi
 if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
-  { $as_echo "$as_me:$LINENO: result: yes" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
   SET_MAKE=
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
   SET_MAKE="MAKE=${MAKE-make}"
 fi
@@ -4619,7 +4572,7 @@ am__doit:
 .PHONY: am__doit
 END
 # If we don't find an include directive, just comment out the code.
-{ $as_echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
 $as_echo_n "checking for style of include used by $am_make... " >&6; }
 am__include="#"
 am__quote=
@@ -4647,12 +4600,12 @@ if test "$am__include" = "#"; then
 fi
 
 
-{ $as_echo "$as_me:$LINENO: result: $_am_result" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
 $as_echo "$_am_result" >&6; }
 rm -f confinc confmf
 
 # Check whether --enable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then
+if test "${enable_dependency_tracking+set}" = set; then :
   enableval=$enable_dependency_tracking;
 fi
 
@@ -4669,27 +4622,13 @@ else
 fi
 
 
-# Check whether --enable-silent-rules was given.
-if test "${enable_silent_rules+set}" = set; then
-  enableval=$enable_silent_rules;
-fi
-
-case $enable_silent_rules in
-yes) AM_DEFAULT_VERBOSITY=0;;
-no)  AM_DEFAULT_VERBOSITY=1;;
-*)   AM_DEFAULT_VERBOSITY=1;;
-esac
-AM_BACKSLASH='\'
-
 if test "`cd $srcdir && pwd`" != "`pwd`"; then
   # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
   # is not polluted with repeated "-I."
   am__isrc=' -I$(srcdir)'
   # test to see if srcdir already configured
   if test -f $srcdir/config.status; then
-    { { $as_echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
-$as_echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
   fi
 fi
 
@@ -4705,7 +4644,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='rrdtool'
- VERSION='1.3.99909060808'
+ VERSION='1.3.999'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4746,9 +4685,9 @@ am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
 
 depcc="$CC"   am_compiler_list=
 
-{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
 $as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
+if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
@@ -4856,7 +4795,7 @@ else
 fi
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
 CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
 
@@ -4873,16 +4812,16 @@ fi
 
 
 
-{ $as_echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
     # Check whether --enable-maintainer-mode was given.
-if test "${enable_maintainer_mode+set}" = set; then
+if test "${enable_maintainer_mode+set}" = set; then :
   enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
 else
   USE_MAINTAINER_MODE=no
 fi
 
-  { $as_echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
 $as_echo "$USE_MAINTAINER_MODE" >&6; }
    if test $USE_MAINTAINER_MODE = yes; then
   MAINTAINER_MODE_TRUE=
@@ -4895,8 +4834,11 @@ fi
   MAINT=$MAINTAINER_MODE_TRUE
 
 
+# Enable silent build rules by default, requires at least
+# Automake-1.11. Disable by either passing --disable-silent-rules to
+# configure or passing V=1 to make
 # Check whether --enable-silent-rules was given.
-if test "${enable_silent_rules+set}" = set; then
+if test "${enable_silent_rules+set}" = set; then :
   enableval=$enable_silent_rules;
 fi
 
@@ -4926,15 +4868,13 @@ ac_config_headers="$ac_config_headers rrd_config.h"
 
 
 
-
-
 cat >>confdefs.h <<_ACEOF
 #define RRDGRAPH_YLEGEND_ANGLE ${RRDGRAPH_YLEGEND_ANGLE:-90.0}
 _ACEOF
 
 
 # Check whether --enable-rrdcgi was given.
-if test "${enable_rrdcgi+set}" = set; then
+if test "${enable_rrdcgi+set}" = set; then :
   enableval=$enable_rrdcgi;
 else
   enable_rrdcgi=yes
@@ -4943,7 +4883,7 @@ fi
 
 
 # Check whether --with-rrd-default-font was given.
-if test "${with_rrd_default_font+set}" = set; then
+if test "${with_rrd_default_font+set}" = set; then :
   withval=$with_rrd_default_font; RRD_DEFAULT_FONT=$withval
 else
 
@@ -4957,7 +4897,7 @@ fi
 
 
 # Check whether --enable-mmap was given.
-if test "${enable_mmap+set}" = set; then
+if test "${enable_mmap+set}" = set; then :
   enableval=$enable_mmap;
 else
   enable_mmap=yes
@@ -4965,7 +4905,7 @@ fi
 
 
 # Check whether --enable-pthread was given.
-if test "${enable_pthread+set}" = set; then
+if test "${enable_pthread+set}" = set; then :
   enableval=$enable_pthread;
 else
   enable_pthread=yes
@@ -4973,13 +4913,11 @@ fi
 
 
 # Check whether --enable-static-programs was given.
-if test "${enable_static_programs+set}" = set; then
+if test "${enable_static_programs+set}" = set; then :
   enableval=$enable_static_programs; case "${enableval}" in
        yes) staticprogs=yes ;;
        no)  staticprogs=no ;;
-       *) { { $as_echo "$as_me:$LINENO: error: bad value ${enableval} for --enable-static-programs" >&5
-$as_echo "$as_me: error: bad value ${enableval} for --enable-static-programs" >&2;}
-   { (exit 1); exit 1; }; } ;;
+       *) as_fn_error "bad value ${enableval} for --enable-static-programs" "$LINENO" 5 ;;
      esac
 else
   staticprogs=no
@@ -5011,9 +4949,9 @@ case $TERM in
                T_ME=''
        ;;
 esac
-  { $as_echo "$as_me:$LINENO: result: " >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
 $as_echo "" >&6; }
-  { $as_echo "$as_me:$LINENO: result: ${T_MD}Audit Compilation Environment${T_ME}" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${T_MD}Audit Compilation Environment${T_ME}" >&5
 $as_echo "${T_MD}Audit Compilation Environment${T_ME}" >&6; }
 
 
@@ -5023,14 +4961,14 @@ ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
 $as_echo_n "checking how to run the C preprocessor... " >&6; }
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
 fi
 if test -z "$CPP"; then
-  if test "${ac_cv_prog_CPP+set}" = set; then
+  if test "${ac_cv_prog_CPP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
       # Double quotes because CPP needs to be expanded
@@ -5045,11 +4983,7 @@ do
   # <limits.h> exists even on freestanding compilers.
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #ifdef __STDC__
 # include <limits.h>
@@ -5058,78 +4992,34 @@ cat >>conftest.$ac_ext <<_ACEOF
 #endif
                     Syntax error
 _ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_cpp "$LINENO"; then :
 
+else
   # Broken: fails on valid input.
 continue
 fi
-
 rm -f conftest.err conftest.$ac_ext
 
   # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <ac_nonexistent.h>
 _ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
+if ac_fn_c_try_cpp "$LINENO"; then :
   # Broken: success on invalid input.
 continue
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
   # Passes both tests.
 ac_preproc_ok=:
 break
 fi
-
 rm -f conftest.err conftest.$ac_ext
 
 done
 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
 rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
+if $ac_preproc_ok; then :
   break
 fi
 
@@ -5141,7 +5031,7 @@ fi
 else
   ac_cv_prog_CPP=$CPP
 fi
-{ $as_echo "$as_me:$LINENO: result: $CPP" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
 $as_echo "$CPP" >&6; }
 ac_preproc_ok=false
 for ac_c_preproc_warn_flag in '' yes
@@ -5152,11 +5042,7 @@ do
   # <limits.h> exists even on freestanding compilers.
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #ifdef __STDC__
 # include <limits.h>
@@ -5165,87 +5051,40 @@ cat >>conftest.$ac_ext <<_ACEOF
 #endif
                     Syntax error
 _ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_cpp "$LINENO"; then :
 
+else
   # Broken: fails on valid input.
 continue
 fi
-
 rm -f conftest.err conftest.$ac_ext
 
   # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <ac_nonexistent.h>
 _ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
+if ac_fn_c_try_cpp "$LINENO"; then :
   # Broken: success on invalid input.
 continue
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
   # Passes both tests.
 ac_preproc_ok=:
 break
 fi
-
 rm -f conftest.err conftest.$ac_ext
 
 done
 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
 rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  :
+if $ac_preproc_ok; then :
+
 else
-  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+as_fn_error "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." "$LINENO" 5; }
 fi
 
 ac_ext=c
@@ -5262,9 +5101,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if test "${ac_cv_prog_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -5275,24 +5114,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 $as_echo "$CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -5302,9 +5141,9 @@ if test -z "$ac_cv_prog_CC"; then
   ac_ct_CC=$CC
   # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -5315,24 +5154,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="gcc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
 $as_echo "$ac_ct_CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -5341,7 +5180,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -5355,9 +5194,9 @@ if test -z "$CC"; then
           if test -n "$ac_tool_prefix"; then
     # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if test "${ac_cv_prog_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -5368,24 +5207,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 $as_echo "$CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -5395,9 +5234,9 @@ fi
 if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if test "${ac_cv_prog_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -5409,18 +5248,18 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
        ac_prog_rejected=yes
        continue
      fi
     ac_cv_prog_CC="cc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 if test $ac_prog_rejected = yes; then
@@ -5439,10 +5278,10 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 $as_echo "$CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -5454,9 +5293,9 @@ if test -z "$CC"; then
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if test "${ac_cv_prog_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -5467,24 +5306,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 $as_echo "$CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -5498,9 +5337,9 @@ if test -z "$CC"; then
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -5511,24 +5350,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
 $as_echo "$ac_ct_CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -5541,7 +5380,7 @@ done
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -5552,62 +5391,42 @@ fi
 fi
 
 
-test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+as_fn_error "no acceptable C compiler found in \$PATH
+See \`config.log' for more details." "$LINENO" 5; }
 
 # Provide some information about the compiler.
-$as_echo "$as_me:$LINENO: checking for C compiler version" >&5
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
 set X $ac_compile
 ac_compiler=$2
-{ (ac_try="$ac_compiler --version >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler --version >&5") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -v >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler -v >&5") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -V >&5"
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler -V >&5") 2>&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    rm -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
 
-{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
+if test "${ac_cv_c_compiler_gnu+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -5621,37 +5440,16 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_compiler_gnu=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_compiler_gnu=no
+  ac_compiler_gnu=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
 $as_echo "$ac_cv_c_compiler_gnu" >&6; }
 if test $ac_compiler_gnu = yes; then
   GCC=yes
@@ -5660,20 +5458,16 @@ else
 fi
 ac_test_CFLAGS=${CFLAGS+set}
 ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
 $as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then
+if test "${ac_cv_prog_cc_g+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_save_c_werror_flag=$ac_c_werror_flag
    ac_c_werror_flag=yes
    ac_cv_prog_cc_g=no
    CFLAGS="-g"
-   cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -5684,35 +5478,11 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_prog_cc_g=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       CFLAGS=""
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  CFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -5723,36 +5493,12 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_compile "$LINENO"; then :
 
-       ac_c_werror_flag=$ac_save_c_werror_flag
+else
+  ac_c_werror_flag=$ac_save_c_werror_flag
         CFLAGS="-g"
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -5763,42 +5509,17 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_prog_cc_g=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
    ac_c_werror_flag=$ac_save_c_werror_flag
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
 $as_echo "$ac_cv_prog_cc_g" >&6; }
 if test "$ac_test_CFLAGS" = set; then
   CFLAGS=$ac_save_CFLAGS
@@ -5815,18 +5536,14 @@ else
     CFLAGS=
   fi
 fi
-{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then
+if test "${ac_cv_prog_cc_c89+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_prog_cc_c89=no
 ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdarg.h>
 #include <stdio.h>
@@ -5883,32 +5600,9 @@ for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
        -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
 do
   CC="$ac_save_CC $ac_arg"
-  rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+  if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_prog_cc_c89=$ac_arg
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
 rm -f core conftest.err conftest.$ac_objext
   test "x$ac_cv_prog_cc_c89" != "xno" && break
 done
@@ -5919,17 +5613,19 @@ fi
 # AC_CACHE_VAL
 case "x$ac_cv_prog_cc_c89" in
   x)
-    { $as_echo "$as_me:$LINENO: result: none needed" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
 $as_echo "none needed" >&6; } ;;
   xno)
-    { $as_echo "$as_me:$LINENO: result: unsupported" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
 $as_echo "unsupported" >&6; } ;;
   *)
     CC="$CC $ac_cv_prog_cc_c89"
-    { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
 esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
 
+fi
 
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
@@ -5938,22 +5634,18 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 if test "x$CC" != xcc; then
-  { $as_echo "$as_me:$LINENO: checking whether $CC and cc understand -c and -o together" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5
 $as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; }
 else
-  { $as_echo "$as_me:$LINENO: checking whether cc understands -c and -o together" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5
 $as_echo_n "checking whether cc understands -c and -o together... " >&6; }
 fi
 set dummy $CC; ac_cc=`$as_echo "$2" |
                      sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
-if { as_var=ac_cv_prog_cc_${ac_cc}_c_o; eval "test \"\${$as_var+set}\" = set"; }; then
+if { as_var=ac_cv_prog_cc_${ac_cc}_c_o; eval "test \"\${$as_var+set}\" = set"; }; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -5969,63 +5661,63 @@ _ACEOF
 # existing .o file with -o, though they will create one.
 ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
 rm -f conftest2.*
-if { (case "(($ac_try" in
+if { case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-   test -f conftest2.$ac_objext && { (case "(($ac_try" in
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } &&
+   test -f conftest2.$ac_objext && { case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); };
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; };
 then
   eval ac_cv_prog_cc_${ac_cc}_c_o=yes
   if test "x$CC" != xcc; then
     # Test first that cc exists at all.
     if { ac_try='cc -c conftest.$ac_ext >&5'
-  { (case "(($ac_try" in
+  { case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then
       ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
       rm -f conftest2.*
-      if { (case "(($ac_try" in
+      if { case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-        test -f conftest2.$ac_objext && { (case "(($ac_try" in
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } &&
+        test -f conftest2.$ac_objext && { case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); };
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; };
       then
        # cc works too.
        :
@@ -6042,15 +5734,13 @@ rm -f core conftest*
 
 fi
 if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then
-  { $as_echo "$as_me:$LINENO: result: yes" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define NO_MINUS_C_MINUS_O 1
-_ACEOF
+$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h
 
 fi
 
@@ -6071,7 +5761,7 @@ fi
 
 case `pwd` in
   *\ * | *\    *)
-    { $as_echo "$as_me:$LINENO: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
 esac
 
@@ -6094,9 +5784,9 @@ macro_revision='1.3012'
 
 ltmain="$ac_aux_dir/ltmain.sh"
 
-{ $as_echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
 $as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if test "${ac_cv_path_SED+set}" = set; then
+if test "${ac_cv_path_SED+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
             ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
@@ -6104,7 +5794,7 @@ else
        ac_script="$ac_script$as_nl$ac_script"
      done
      echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
-     $as_unset ac_script || ac_script=
+     { ac_script=; unset ac_script;}
      if test -z "$SED"; then
   ac_path_SED_found=false
   # Loop through the user's path and test for each of PROGNAME-LIST
@@ -6113,7 +5803,7 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_prog in sed gsed; do
+    for ac_prog in sed gsed; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
       { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
@@ -6133,7 +5823,7 @@ case `"$ac_path_SED" --version 2>&1` in
     $as_echo '' >> "conftest.nl"
     "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    ac_count=`expr $ac_count + 1`
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
     if test $ac_count -gt ${ac_path_SED_max-0}; then
       # Best one so far, save it but keep looking for a better one
       ac_cv_path_SED="$ac_path_SED"
@@ -6148,19 +5838,17 @@ esac
       $ac_path_SED_found && break 3
     done
   done
-done
+  done
 IFS=$as_save_IFS
   if test -z "$ac_cv_path_SED"; then
-    { { $as_echo "$as_me:$LINENO: error: no acceptable sed could be found in \$PATH" >&5
-$as_echo "$as_me: error: no acceptable sed could be found in \$PATH" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5
   fi
 else
   ac_cv_path_SED=$SED
 fi
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_SED" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
 $as_echo "$ac_cv_path_SED" >&6; }
  SED="$ac_cv_path_SED"
   rm -f conftest.sed
@@ -6178,9 +5866,9 @@ Xsed="$SED -e 1s/^X//"
 
 
 
-{ $as_echo "$as_me:$LINENO: checking for fgrep" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
 $as_echo_n "checking for fgrep... " >&6; }
-if test "${ac_cv_path_FGREP+set}" = set; then
+if test "${ac_cv_path_FGREP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
@@ -6194,7 +5882,7 @@ for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_prog in fgrep; do
+    for ac_prog in fgrep; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
       { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue
@@ -6214,7 +5902,7 @@ case `"$ac_path_FGREP" --version 2>&1` in
     $as_echo 'FGREP' >> "conftest.nl"
     "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    ac_count=`expr $ac_count + 1`
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
     if test $ac_count -gt ${ac_path_FGREP_max-0}; then
       # Best one so far, save it but keep looking for a better one
       ac_cv_path_FGREP="$ac_path_FGREP"
@@ -6229,12 +5917,10 @@ esac
       $ac_path_FGREP_found && break 3
     done
   done
-done
+  done
 IFS=$as_save_IFS
   if test -z "$ac_cv_path_FGREP"; then
-    { { $as_echo "$as_me:$LINENO: error: no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-$as_echo "$as_me: error: no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
   fi
 else
   ac_cv_path_FGREP=$FGREP
@@ -6242,7 +5928,7 @@ fi
 
    fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_FGREP" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
 $as_echo "$ac_cv_path_FGREP" >&6; }
  FGREP="$ac_cv_path_FGREP"
 
@@ -6268,7 +5954,7 @@ test -z "$GREP" && GREP=grep
 
 
 # Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then
+if test "${with_gnu_ld+set}" = set; then :
   withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
 else
   with_gnu_ld=no
@@ -6277,7 +5963,7 @@ fi
 ac_prog=ld
 if test "$GCC" = yes; then
   # Check if gcc -print-prog-name=ld gives a path.
-  { $as_echo "$as_me:$LINENO: checking for ld used by $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
 $as_echo_n "checking for ld used by $CC... " >&6; }
   case $host in
   *-*-mingw*)
@@ -6307,13 +5993,13 @@ $as_echo_n "checking for ld used by $CC... " >&6; }
     ;;
   esac
 elif test "$with_gnu_ld" = yes; then
-  { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
 $as_echo_n "checking for GNU ld... " >&6; }
 else
-  { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
 $as_echo_n "checking for non-GNU ld... " >&6; }
 fi
-if test "${lt_cv_path_LD+set}" = set; then
+if test "${lt_cv_path_LD+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$LD"; then
@@ -6344,18 +6030,16 @@ fi
 
 LD="$lt_cv_path_LD"
 if test -n "$LD"; then
-  { $as_echo "$as_me:$LINENO: result: $LD" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
 $as_echo "$LD" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
-test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
-$as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
-   { (exit 1); exit 1; }; }
-{ $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if test "${lt_cv_prog_gnu_ld+set}" = set; then
+if test "${lt_cv_prog_gnu_ld+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   # I'd rather use --version here, but apparently some GNU lds only accept -v.
@@ -6368,7 +6052,7 @@ case `$LD -v 2>&1 </dev/null` in
   ;;
 esac
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
 $as_echo "$lt_cv_prog_gnu_ld" >&6; }
 with_gnu_ld=$lt_cv_prog_gnu_ld
 
@@ -6380,9 +6064,9 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
 
 
 
-{ $as_echo "$as_me:$LINENO: checking for BSD- or MS-compatible name lister (nm)" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
-if test "${lt_cv_path_NM+set}" = set; then
+if test "${lt_cv_path_NM+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$NM"; then
@@ -6429,7 +6113,7 @@ else
   : ${lt_cv_path_NM=no}
 fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
 $as_echo "$lt_cv_path_NM" >&6; }
 if test "$lt_cv_path_NM" != "no"; then
   NM="$lt_cv_path_NM"
@@ -6440,9 +6124,9 @@ else
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_DUMPBIN+set}" = set; then
+if test "${ac_cv_prog_DUMPBIN+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$DUMPBIN"; then
@@ -6453,24 +6137,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 DUMPBIN=$ac_cv_prog_DUMPBIN
 if test -n "$DUMPBIN"; then
-  { $as_echo "$as_me:$LINENO: result: $DUMPBIN" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
 $as_echo "$DUMPBIN" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -6484,9 +6168,9 @@ if test -z "$DUMPBIN"; then
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then
+if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_DUMPBIN"; then
@@ -6497,24 +6181,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
 if test -n "$ac_ct_DUMPBIN"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_DUMPBIN" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
 $as_echo "$ac_ct_DUMPBIN" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -6527,7 +6211,7 @@ done
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -6547,44 +6231,44 @@ test -z "$NM" && NM=nm
 
 
 
-{ $as_echo "$as_me:$LINENO: checking the name lister ($NM) interface" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
 $as_echo_n "checking the name lister ($NM) interface... " >&6; }
-if test "${lt_cv_nm_interface+set}" = set; then
+if test "${lt_cv_nm_interface+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:6557: $ac_compile\"" >&5)
+  (eval echo "\"\$as_me:6241: $ac_compile\"" >&5)
   (eval "$ac_compile" 2>conftest.err)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:6560: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+  (eval echo "\"\$as_me:6244: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:6563: output\"" >&5)
+  (eval echo "\"\$as_me:6247: output\"" >&5)
   cat conftest.out >&5
   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
     lt_cv_nm_interface="MS dumpbin"
   fi
   rm -f conftest*
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_nm_interface" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
 $as_echo "$lt_cv_nm_interface" >&6; }
 
-{ $as_echo "$as_me:$LINENO: checking whether ln -s works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
 $as_echo_n "checking whether ln -s works... " >&6; }
 LN_S=$as_ln_s
 if test "$LN_S" = "ln -s"; then
-  { $as_echo "$as_me:$LINENO: result: yes" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no, using $LN_S" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
 $as_echo "no, using $LN_S" >&6; }
 fi
 
 # find the maximum length of command line arguments
-{ $as_echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
 $as_echo_n "checking the maximum length of command line arguments... " >&6; }
-if test "${lt_cv_sys_max_cmd_len+set}" = set; then
+if test "${lt_cv_sys_max_cmd_len+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
     i=0
@@ -6702,10 +6386,10 @@ else
 fi
 
 if test -n $lt_cv_sys_max_cmd_len ; then
-  { $as_echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
 $as_echo "$lt_cv_sys_max_cmd_len" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: none" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
 $as_echo "none" >&6; }
 fi
 max_cmd_len=$lt_cv_sys_max_cmd_len
@@ -6719,7 +6403,7 @@ max_cmd_len=$lt_cv_sys_max_cmd_len
 : ${MV="mv -f"}
 : ${RM="rm -f"}
 
-{ $as_echo "$as_me:$LINENO: checking whether the shell understands some XSI constructs" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
 # Try some XSI features
 xsi_shell=no
@@ -6729,17 +6413,17 @@ xsi_shell=no
     && eval 'test $(( 1 + 1 )) -eq 2 \
     && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
   && xsi_shell=yes
-{ $as_echo "$as_me:$LINENO: result: $xsi_shell" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
 $as_echo "$xsi_shell" >&6; }
 
 
-{ $as_echo "$as_me:$LINENO: checking whether the shell understands \"+=\"" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
 lt_shell_append=no
 ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
     >/dev/null 2>&1 \
   && lt_shell_append=yes
-{ $as_echo "$as_me:$LINENO: result: $lt_shell_append" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
 $as_echo "$lt_shell_append" >&6; }
 
 
@@ -6774,14 +6458,14 @@ esac
 
 
 
-{ $as_echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
 $as_echo_n "checking for $LD option to reload object files... " >&6; }
-if test "${lt_cv_ld_reload_flag+set}" = set; then
+if test "${lt_cv_ld_reload_flag+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_ld_reload_flag='-r'
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
 $as_echo "$lt_cv_ld_reload_flag" >&6; }
 reload_flag=$lt_cv_ld_reload_flag
 case $reload_flag in
@@ -6810,9 +6494,9 @@ esac
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
 set dummy ${ac_tool_prefix}objdump; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OBJDUMP+set}" = set; then
+if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$OBJDUMP"; then
@@ -6823,24 +6507,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 OBJDUMP=$ac_cv_prog_OBJDUMP
 if test -n "$OBJDUMP"; then
-  { $as_echo "$as_me:$LINENO: result: $OBJDUMP" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
 $as_echo "$OBJDUMP" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -6850,9 +6534,9 @@ if test -z "$ac_cv_prog_OBJDUMP"; then
   ac_ct_OBJDUMP=$OBJDUMP
   # Extract the first word of "objdump", so it can be a program name with args.
 set dummy objdump; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then
+if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OBJDUMP"; then
@@ -6863,24 +6547,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_OBJDUMP="objdump"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
 if test -n "$ac_ct_OBJDUMP"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
 $as_echo "$ac_ct_OBJDUMP" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -6889,7 +6573,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -6909,9 +6593,9 @@ test -z "$OBJDUMP" && OBJDUMP=objdump
 
 
 
-{ $as_echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
 $as_echo_n "checking how to recognize dependent libraries... " >&6; }
-if test "${lt_cv_deplibs_check_method+set}" = set; then
+if test "${lt_cv_deplibs_check_method+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_file_magic_cmd='$MAGIC_CMD'
@@ -7030,7 +6714,7 @@ linux* | k*bsd*-gnu)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-netbsd*)
+netbsd* | netbsdelf*-gnu)
   if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
     lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
   else
@@ -7105,7 +6789,7 @@ tpf*)
 esac
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
 $as_echo "$lt_cv_deplibs_check_method" >&6; }
 file_magic_cmd=$lt_cv_file_magic_cmd
 deplibs_check_method=$lt_cv_deplibs_check_method
@@ -7125,9 +6809,9 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ar; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AR+set}" = set; then
+if test "${ac_cv_prog_AR+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$AR"; then
@@ -7138,24 +6822,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_AR="${ac_tool_prefix}ar"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 AR=$ac_cv_prog_AR
 if test -n "$AR"; then
-  { $as_echo "$as_me:$LINENO: result: $AR" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
 $as_echo "$AR" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7165,9 +6849,9 @@ if test -z "$ac_cv_prog_AR"; then
   ac_ct_AR=$AR
   # Extract the first word of "ar", so it can be a program name with args.
 set dummy ar; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
+if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_AR"; then
@@ -7178,24 +6862,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_AR="ar"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_AR=$ac_cv_prog_ac_ct_AR
 if test -n "$ac_ct_AR"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
 $as_echo "$ac_ct_AR" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7204,7 +6888,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -7230,9 +6914,9 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
 set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then
+if test "${ac_cv_prog_STRIP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$STRIP"; then
@@ -7243,24 +6927,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 STRIP=$ac_cv_prog_STRIP
 if test -n "$STRIP"; then
-  { $as_echo "$as_me:$LINENO: result: $STRIP" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
 $as_echo "$STRIP" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7270,9 +6954,9 @@ if test -z "$ac_cv_prog_STRIP"; then
   ac_ct_STRIP=$STRIP
   # Extract the first word of "strip", so it can be a program name with args.
 set dummy strip; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_STRIP"; then
@@ -7283,24 +6967,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_STRIP="strip"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
 if test -n "$ac_ct_STRIP"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
 $as_echo "$ac_ct_STRIP" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7309,7 +6993,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -7329,9 +7013,9 @@ test -z "$STRIP" && STRIP=:
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then
+if test "${ac_cv_prog_RANLIB+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$RANLIB"; then
@@ -7342,24 +7026,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 RANLIB=$ac_cv_prog_RANLIB
 if test -n "$RANLIB"; then
-  { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
 $as_echo "$RANLIB" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7369,9 +7053,9 @@ if test -z "$ac_cv_prog_RANLIB"; then
   ac_ct_RANLIB=$RANLIB
   # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_RANLIB"; then
@@ -7382,24 +7066,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_RANLIB="ranlib"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
 if test -n "$ac_ct_RANLIB"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
 $as_echo "$ac_ct_RANLIB" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7408,7 +7092,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -7486,9 +7170,9 @@ compiler=$CC
 
 
 # Check for command to grab the raw symbol name followed by C symbol from nm.
-{ $as_echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
-if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then
+if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -7604,18 +7288,18 @@ void nm_test_func(void){}
 int main(){nm_test_var='a';nm_test_func();return(0);}
 _LT_EOF
 
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
     # Now try to grab the symbols.
     nlist=conftest.nm
-    if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5
   (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s "$nlist"; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s "$nlist"; then
       # Try sorting and uniquifying the output.
       if sort "$nlist" | uniq > "$nlist"T; then
        mv -f "$nlist"T "$nlist"
@@ -7668,11 +7352,11 @@ _LT_EOF
          lt_save_CFLAGS="$CFLAGS"
          LIBS="conftstm.$ac_objext"
          CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
-         if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+         if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext}; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest${ac_exeext}; then
            pipe_works=yes
          fi
          LIBS="$lt_save_LIBS"
@@ -7706,10 +7390,10 @@ if test -z "$lt_cv_sys_global_symbol_pipe"; then
   lt_cv_sys_global_symbol_to_cdecl=
 fi
 if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-  { $as_echo "$as_me:$LINENO: result: failed" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
 $as_echo "failed" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: ok" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
 $as_echo "ok" >&6; }
 fi
 
@@ -7735,7 +7419,7 @@ fi
 
 
 # Check whether --enable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then
+if test "${enable_libtool_lock+set}" = set; then :
   enableval=$enable_libtool_lock;
 fi
 
@@ -7747,11 +7431,11 @@ case $host in
 ia64-*-hpux*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
     case `/usr/bin/file conftest.$ac_objext` in
       *ELF-32*)
        HPUX_IA64_MODE="32"
@@ -7765,12 +7449,12 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 7768 "configure"' > conftest.$ac_ext
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  echo '#line 7452 "configure"' > conftest.$ac_ext
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
     if test "$lt_cv_prog_gnu_ld" = yes; then
       case `/usr/bin/file conftest.$ac_objext` in
        *32-bit*)
@@ -7804,11 +7488,11 @@ x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
 s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
     case `/usr/bin/file conftest.o` in
       *32-bit*)
        case $host in
@@ -7857,9 +7541,9 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   # On SCO OpenServer 5, we need -belf to get full-featured binaries.
   SAVE_CFLAGS="$CFLAGS"
   CFLAGS="$CFLAGS -belf"
-  { $as_echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
 $as_echo_n "checking whether the C compiler needs -belf... " >&6; }
-if test "${lt_cv_cc_needs_belf+set}" = set; then
+if test "${lt_cv_cc_needs_belf+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_ext=c
@@ -7868,11 +7552,7 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-     cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -7883,38 +7563,13 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   lt_cv_cc_needs_belf=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       lt_cv_cc_needs_belf=no
+  lt_cv_cc_needs_belf=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
      ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -7922,7 +7577,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
 $as_echo "$lt_cv_cc_needs_belf" >&6; }
   if test x"$lt_cv_cc_needs_belf" != x"yes"; then
     # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
@@ -7932,11 +7587,11 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; }
 sparc*-*solaris*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
     case `/usr/bin/file conftest.o` in
     *64-bit*)
       case $lt_cv_prog_gnu_ld in
@@ -7962,9 +7617,9 @@ need_locks="$enable_libtool_lock"
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
 set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_DSYMUTIL+set}" = set; then
+if test "${ac_cv_prog_DSYMUTIL+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$DSYMUTIL"; then
@@ -7975,24 +7630,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 DSYMUTIL=$ac_cv_prog_DSYMUTIL
 if test -n "$DSYMUTIL"; then
-  { $as_echo "$as_me:$LINENO: result: $DSYMUTIL" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
 $as_echo "$DSYMUTIL" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -8002,9 +7657,9 @@ if test -z "$ac_cv_prog_DSYMUTIL"; then
   ac_ct_DSYMUTIL=$DSYMUTIL
   # Extract the first word of "dsymutil", so it can be a program name with args.
 set dummy dsymutil; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then
+if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_DSYMUTIL"; then
@@ -8015,24 +7670,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
 if test -n "$ac_ct_DSYMUTIL"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
 $as_echo "$ac_ct_DSYMUTIL" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -8041,7 +7696,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -8054,9 +7709,9 @@ fi
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
 set dummy ${ac_tool_prefix}nmedit; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_NMEDIT+set}" = set; then
+if test "${ac_cv_prog_NMEDIT+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$NMEDIT"; then
@@ -8067,24 +7722,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 NMEDIT=$ac_cv_prog_NMEDIT
 if test -n "$NMEDIT"; then
-  { $as_echo "$as_me:$LINENO: result: $NMEDIT" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
 $as_echo "$NMEDIT" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -8094,9 +7749,9 @@ if test -z "$ac_cv_prog_NMEDIT"; then
   ac_ct_NMEDIT=$NMEDIT
   # Extract the first word of "nmedit", so it can be a program name with args.
 set dummy nmedit; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then
+if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_NMEDIT"; then
@@ -8107,24 +7762,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_NMEDIT="nmedit"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
 if test -n "$ac_ct_NMEDIT"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
 $as_echo "$ac_ct_NMEDIT" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -8133,7 +7788,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -8146,9 +7801,9 @@ fi
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
 set dummy ${ac_tool_prefix}lipo; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_LIPO+set}" = set; then
+if test "${ac_cv_prog_LIPO+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$LIPO"; then
@@ -8159,24 +7814,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 LIPO=$ac_cv_prog_LIPO
 if test -n "$LIPO"; then
-  { $as_echo "$as_me:$LINENO: result: $LIPO" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
 $as_echo "$LIPO" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -8186,9 +7841,9 @@ if test -z "$ac_cv_prog_LIPO"; then
   ac_ct_LIPO=$LIPO
   # Extract the first word of "lipo", so it can be a program name with args.
 set dummy lipo; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then
+if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_LIPO"; then
@@ -8199,24 +7854,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_LIPO="lipo"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
 if test -n "$ac_ct_LIPO"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_LIPO" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
 $as_echo "$ac_ct_LIPO" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -8225,7 +7880,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -8238,9 +7893,9 @@ fi
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
 set dummy ${ac_tool_prefix}otool; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OTOOL+set}" = set; then
+if test "${ac_cv_prog_OTOOL+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$OTOOL"; then
@@ -8251,24 +7906,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 OTOOL=$ac_cv_prog_OTOOL
 if test -n "$OTOOL"; then
-  { $as_echo "$as_me:$LINENO: result: $OTOOL" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
 $as_echo "$OTOOL" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -8278,9 +7933,9 @@ if test -z "$ac_cv_prog_OTOOL"; then
   ac_ct_OTOOL=$OTOOL
   # Extract the first word of "otool", so it can be a program name with args.
 set dummy otool; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then
+if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OTOOL"; then
@@ -8291,24 +7946,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_OTOOL="otool"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
 if test -n "$ac_ct_OTOOL"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_OTOOL" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
 $as_echo "$ac_ct_OTOOL" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -8317,7 +7972,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -8330,9 +7985,9 @@ fi
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
 set dummy ${ac_tool_prefix}otool64; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OTOOL64+set}" = set; then
+if test "${ac_cv_prog_OTOOL64+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$OTOOL64"; then
@@ -8343,24 +7998,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 OTOOL64=$ac_cv_prog_OTOOL64
 if test -n "$OTOOL64"; then
-  { $as_echo "$as_me:$LINENO: result: $OTOOL64" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
 $as_echo "$OTOOL64" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -8370,9 +8025,9 @@ if test -z "$ac_cv_prog_OTOOL64"; then
   ac_ct_OTOOL64=$OTOOL64
   # Extract the first word of "otool64", so it can be a program name with args.
 set dummy otool64; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then
+if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OTOOL64"; then
@@ -8383,24 +8038,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_OTOOL64="otool64"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
 if test -n "$ac_ct_OTOOL64"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_OTOOL64" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
 $as_echo "$ac_ct_OTOOL64" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -8409,7 +8064,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -8445,9 +8100,9 @@ fi
 
 
 
-    { $as_echo "$as_me:$LINENO: checking for -single_module linker flag" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
 $as_echo_n "checking for -single_module linker flag... " >&6; }
-if test "${lt_cv_apple_cc_single_mod+set}" = set; then
+if test "${lt_cv_apple_cc_single_mod+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_apple_cc_single_mod=no
@@ -8472,22 +8127,18 @@ else
        rm -f conftest.*
       fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
 $as_echo "$lt_cv_apple_cc_single_mod" >&6; }
-    { $as_echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
-if test "${lt_cv_ld_exported_symbols_list+set}" = set; then
+if test "${lt_cv_ld_exported_symbols_list+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_ld_exported_symbols_list=no
       save_LDFLAGS=$LDFLAGS
       echo "_main" > conftest.sym
       LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -8498,42 +8149,17 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   lt_cv_ld_exported_symbols_list=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       lt_cv_ld_exported_symbols_list=no
+  lt_cv_ld_exported_symbols_list=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
        LDFLAGS="$save_LDFLAGS"
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
     case $host_os in
     rhapsody* | darwin1.[012])
@@ -8570,62 +8196,13 @@ $as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
     ;;
   esac
 
-
 for ac_header in dlfcn.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval "$as_ac_Header=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_Header=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+do :
+  ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_dlfcn_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_DLFCN_H 1
 _ACEOF
 
 fi
@@ -8645,7 +8222,7 @@ done
 
 
             # Check whether --enable-shared was given.
-if test "${enable_shared+set}" = set; then
+if test "${enable_shared+set}" = set; then :
   enableval=$enable_shared; p=${PACKAGE-default}
     case $enableval in
     yes) enable_shared=yes ;;
@@ -8676,7 +8253,7 @@ fi
 
 
   # Check whether --enable-static was given.
-if test "${enable_static+set}" = set; then
+if test "${enable_static+set}" = set; then :
   enableval=$enable_static; p=${PACKAGE-default}
     case $enableval in
     yes) enable_static=yes ;;
@@ -8708,7 +8285,7 @@ fi
 
 
 # Check whether --with-pic was given.
-if test "${with_pic+set}" = set; then
+if test "${with_pic+set}" = set; then :
   withval=$with_pic; pic_mode="$withval"
 else
   pic_mode=default
@@ -8724,7 +8301,7 @@ test -z "$pic_mode" && pic_mode=default
 
 
   # Check whether --enable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then
+if test "${enable_fast_install+set}" = set; then :
   enableval=$enable_fast_install; p=${PACKAGE-default}
     case $enableval in
     yes) enable_fast_install=yes ;;
@@ -8805,9 +8382,9 @@ if test -n "${ZSH_VERSION+set}" ; then
    setopt NO_GLOB_SUBST
 fi
 
-{ $as_echo "$as_me:$LINENO: checking for objdir" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
 $as_echo_n "checking for objdir... " >&6; }
-if test "${lt_cv_objdir+set}" = set; then
+if test "${lt_cv_objdir+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   rm -f .libs 2>/dev/null
@@ -8820,7 +8397,7 @@ else
 fi
 rmdir .libs 2>/dev/null
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
 $as_echo "$lt_cv_objdir" >&6; }
 objdir=$lt_cv_objdir
 
@@ -8913,9 +8490,9 @@ test -z "$MAGIC_CMD" && MAGIC_CMD=file
 case $deplibs_check_method in
 file_magic*)
   if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    { $as_echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $MAGIC_CMD in
@@ -8966,10 +8543,10 @@ fi
 
 MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
 if test -n "$MAGIC_CMD"; then
-  { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
 $as_echo "$MAGIC_CMD" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -8979,9 +8556,9 @@ fi
 
 if test -z "$lt_cv_path_MAGIC_CMD"; then
   if test -n "$ac_tool_prefix"; then
-    { $as_echo "$as_me:$LINENO: checking for file" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
 $as_echo_n "checking for file... " >&6; }
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $MAGIC_CMD in
@@ -9032,10 +8609,10 @@ fi
 
 MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
 if test -n "$MAGIC_CMD"; then
-  { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
 $as_echo "$MAGIC_CMD" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -9116,9 +8693,9 @@ lt_prog_compiler_no_builtin_flag=
 if test "$GCC" = yes; then
   lt_prog_compiler_no_builtin_flag=' -fno-builtin'
 
-  { $as_echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
-if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
+if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_rtti_exceptions=no
@@ -9134,11 +8711,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9137: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8714: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:9141: \$? = $ac_status" >&5
+   echo "$as_me:8718: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -9151,7 +8728,7 @@ else
    $RM conftest*
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
 
 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
@@ -9171,7 +8748,7 @@ fi
 lt_prog_compiler_pic=
 lt_prog_compiler_static=
 
-{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
 $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
 
   if test "$GCC" = yes; then
@@ -9443,7 +9020,7 @@ case $host_os in
     lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
     ;;
 esac
-{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
 $as_echo "$lt_prog_compiler_pic" >&6; }
 
 
@@ -9455,9 +9032,9 @@ $as_echo "$lt_prog_compiler_pic" >&6; }
 # Check to make sure the PIC flag actually works.
 #
 if test -n "$lt_prog_compiler_pic"; then
-  { $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
-if test "${lt_cv_prog_compiler_pic_works+set}" = set; then
+if test "${lt_cv_prog_compiler_pic_works+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_pic_works=no
@@ -9473,11 +9050,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9476: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:9053: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:9480: \$? = $ac_status" >&5
+   echo "$as_me:9057: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -9490,7 +9067,7 @@ else
    $RM conftest*
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
 
 if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
@@ -9514,9 +9091,9 @@ fi
 # Check to make sure the static flag actually works.
 #
 wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if test "${lt_cv_prog_compiler_static_works+set}" = set; then
+if test "${lt_cv_prog_compiler_static_works+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_static_works=no
@@ -9542,7 +9119,7 @@ else
    LDFLAGS="$save_LDFLAGS"
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
 $as_echo "$lt_cv_prog_compiler_static_works" >&6; }
 
 if test x"$lt_cv_prog_compiler_static_works" = xyes; then
@@ -9557,9 +9134,9 @@ fi
 
 
 
-  { $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o+set}" = set; then
+if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_c_o=no
@@ -9578,11 +9155,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9581: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:9158: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:9585: \$? = $ac_status" >&5
+   echo "$as_me:9162: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -9604,7 +9181,7 @@ else
    $RM conftest*
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
 $as_echo "$lt_cv_prog_compiler_c_o" >&6; }
 
 
@@ -9612,9 +9189,9 @@ $as_echo "$lt_cv_prog_compiler_c_o" >&6; }
 
 
 
-  { $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o+set}" = set; then
+if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_c_o=no
@@ -9633,11 +9210,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9636: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:9213: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:9640: \$? = $ac_status" >&5
+   echo "$as_me:9217: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -9659,7 +9236,7 @@ else
    $RM conftest*
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
 $as_echo "$lt_cv_prog_compiler_c_o" >&6; }
 
 
@@ -9668,7 +9245,7 @@ $as_echo "$lt_cv_prog_compiler_c_o" >&6; }
 hard_links="nottested"
 if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
   # do not overwrite the value of need_locks provided by the user
-  { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
 $as_echo_n "checking if we can lock with hard links... " >&6; }
   hard_links=yes
   $RM conftest*
@@ -9676,10 +9253,10 @@ $as_echo_n "checking if we can lock with hard links... " >&6; }
   touch conftest.a
   ln conftest.a conftest.b 2>&5 || hard_links=no
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { $as_echo "$as_me:$LINENO: result: $hard_links" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
 $as_echo "$hard_links" >&6; }
   if test "$hard_links" = no; then
-    { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
     need_locks=warn
   fi
@@ -9692,7 +9269,7 @@ fi
 
 
 
-  { $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
 
   runpath_var=
@@ -9752,6 +9329,9 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
   openbsd*)
     with_gnu_ld=no
     ;;
+  linux* | k*bsd*-gnu)
+    link_all_deplibs=no
+    ;;
   esac
 
   ld_shlibs=yes
@@ -9934,7 +9514,7 @@ _LT_EOF
       fi
       ;;
 
-    netbsd*)
+    netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
        archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
        wlarc=
@@ -10109,6 +9689,7 @@ _LT_EOF
        if test "$aix_use_runtimelinking" = yes; then
          shared_flag="$shared_flag "'${wl}-G'
        fi
+       link_all_deplibs=no
       else
        # not using gcc
        if test "$host_cpu" = ia64; then
@@ -10134,11 +9715,7 @@ _LT_EOF
        allow_undefined_flag='-berok'
         # Determine the default libpath from the value encoded in an
         # empty executable.
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -10149,27 +9726,7 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
 
 lt_aix_libpath_sed='
     /Import File Strings/,/^$/ {
@@ -10183,16 +9740,9 @@ aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpat
 if test -z "$aix_libpath"; then
   aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 fi
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
         hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
@@ -10205,11 +9755,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
        else
         # Determine the default libpath from the value encoded in an
         # empty executable.
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -10220,27 +9766,7 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
 
 lt_aix_libpath_sed='
     /Import File Strings/,/^$/ {
@@ -10254,16 +9780,9 @@ aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpat
 if test -z "$aix_libpath"; then
   aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 fi
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
         hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
@@ -10475,42 +9994,16 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
        # implicitly export all symbols.
         save_LDFLAGS="$LDFLAGS"
         LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-        cat >conftest.$ac_ext <<_ACEOF
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 int foo(void) {}
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
 
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
         LDFLAGS="$save_LDFLAGS"
       else
        archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
@@ -10523,7 +10016,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       link_all_deplibs=yes
       ;;
 
-    netbsd*)
+    netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
        archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
       else
@@ -10766,7 +10259,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
     fi
   fi
 
-{ $as_echo "$as_me:$LINENO: result: $ld_shlibs" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
 $as_echo "$ld_shlibs" >&6; }
 test "$ld_shlibs" = no && can_build_shared=no
 
@@ -10803,16 +10296,16 @@ x|xyes)
       # Test whether the compiler implicitly links with -lc since on some
       # systems, -lgcc has to come before -lc. If gcc already passes -lc
       # to ld, don't add -lc before -lgcc.
-      { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
       $RM conftest*
       echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
-      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+      if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } 2>conftest.err; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } 2>conftest.err; then
         soname=conftest
         lib=conftest
         libobjs=conftest.$ac_objext
@@ -10826,11 +10319,11 @@ $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
         libname=conftest
         lt_save_allow_undefined_flag=$allow_undefined_flag
         allow_undefined_flag=
-        if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
+        if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
   (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
         then
          archive_cmds_need_lc=no
         else
@@ -10841,7 +10334,7 @@ $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
         cat conftest.err 1>&5
       fi
       $RM conftest*
-      { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5
 $as_echo "$archive_cmds_need_lc" >&6; }
       ;;
     esac
@@ -11005,7 +10498,7 @@ esac
 
 
 
-  { $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
 $as_echo_n "checking dynamic linker characteristics... " >&6; }
 
 if test "$GCC" = yes; then
@@ -11427,11 +10920,7 @@ linux* | k*bsd*-gnu)
   save_libdir=$libdir
   eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
        LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -11442,41 +10931,13 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then
+if ac_fn_c_try_link "$LINENO"; then :
+  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
   shlibpath_overrides_runpath=yes
 fi
-
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   LDFLAGS=$save_LDFLAGS
   libdir=$save_libdir
 
@@ -11500,15 +10961,27 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
   dynamic_linker='GNU/Linux ld.so'
   ;;
 
-netbsd*)
-  version_type=sunos
+netbsdelf*-gnu)
+  version_type=linux
   need_lib_prefix=no
   need_version=no
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='NetBSD ld.elf_so'
+  ;;
+
+netbsd*)
+  version_type=sunos
+  need_lib_prefix=no
+  need_version=no
+  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+    dynamic_linker='NetBSD (a.out) ld.so'
+  else
     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
     soname_spec='${libname}${release}${shared_ext}$major'
     dynamic_linker='NetBSD ld.elf_so'
@@ -11688,7 +11161,7 @@ uts4*)
   dynamic_linker=no
   ;;
 esac
-{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
 $as_echo "$dynamic_linker" >&6; }
 test "$dynamic_linker" = no && can_build_shared=no
 
@@ -11790,7 +11263,7 @@ fi
 
 
 
-  { $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
 $as_echo_n "checking how to hardcode library paths into programs... " >&6; }
 hardcode_action=
 if test -n "$hardcode_libdir_flag_spec" ||
@@ -11815,7 +11288,7 @@ else
   # directories.
   hardcode_action=unsupported
 fi
-{ $as_echo "$as_me:$LINENO: result: $hardcode_action" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
 $as_echo "$hardcode_action" >&6; }
 
 if test "$hardcode_action" = relink ||
@@ -11860,18 +11333,14 @@ else
 
   darwin*)
   # if libdl is installed we need to link against it
-    { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
 $as_echo_n "checking for dlopen in -ldl... " >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -11889,43 +11358,18 @@ return dlopen ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_dl_dlopen=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dl_dlopen=no
+  ac_cv_lib_dl_dlopen=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = x""yes; then
+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
 else
 
     ;;
 
   *)
-    { $as_echo "$as_me:$LINENO: checking for shl_load" >&5
-$as_echo_n "checking for shl_load... " >&6; }
-if test "${ac_cv_func_shl_load+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define shl_load innocuous_shl_load
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char shl_load (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef shl_load
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_shl_load || defined __stub___shl_load
-choke me
-#endif
-
-int
-main ()
-{
-return shl_load ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_func_shl_load=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_shl_load=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
-$as_echo "$ac_cv_func_shl_load" >&6; }
-if test "x$ac_cv_func_shl_load" = x""yes; then
+    ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
+if test "x$ac_cv_func_shl_load" = x""yes; then :
   lt_cv_dlopen="shl_load"
 else
-  { $as_echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
 $as_echo_n "checking for shl_load in -ldld... " >&6; }
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then
+if test "${ac_cv_lib_dld_shl_load+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -12055,145 +11411,32 @@ return shl_load ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_dld_shl_load=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dld_shl_load=no
+  ac_cv_lib_dld_shl_load=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
 $as_echo "$ac_cv_lib_dld_shl_load" >&6; }
-if test "x$ac_cv_lib_dld_shl_load" = x""yes; then
+if test "x$ac_cv_lib_dld_shl_load" = x""yes; then :
   lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
 else
-  { $as_echo "$as_me:$LINENO: checking for dlopen" >&5
-$as_echo_n "checking for dlopen... " >&6; }
-if test "${ac_cv_func_dlopen+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define dlopen innocuous_dlopen
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char dlopen (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef dlopen
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_dlopen || defined __stub___dlopen
-choke me
-#endif
-
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_func_dlopen=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_dlopen=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
-$as_echo "$ac_cv_func_dlopen" >&6; }
-if test "x$ac_cv_func_dlopen" = x""yes; then
+  ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
+if test "x$ac_cv_func_dlopen" = x""yes; then :
   lt_cv_dlopen="dlopen"
 else
-  { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
 $as_echo_n "checking for dlopen in -ldl... " >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -12211,57 +11454,28 @@ return dlopen ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_dl_dlopen=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dl_dlopen=no
+  ac_cv_lib_dl_dlopen=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = x""yes; then
+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
 else
-  { $as_echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
 $as_echo_n "checking for dlopen in -lsvld... " >&6; }
-if test "${ac_cv_lib_svld_dlopen+set}" = set; then
+if test "${ac_cv_lib_svld_dlopen+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lsvld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -12279,57 +11493,28 @@ return dlopen ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_svld_dlopen=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_svld_dlopen=no
+  ac_cv_lib_svld_dlopen=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
 $as_echo "$ac_cv_lib_svld_dlopen" >&6; }
-if test "x$ac_cv_lib_svld_dlopen" = x""yes; then
+if test "x$ac_cv_lib_svld_dlopen" = x""yes; then :
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
 else
-  { $as_echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
 $as_echo_n "checking for dld_link in -ldld... " >&6; }
-if test "${ac_cv_lib_dld_dld_link+set}" = set; then
+if test "${ac_cv_lib_dld_dld_link+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -12347,43 +11532,18 @@ return dld_link ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_dld_dld_link=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_dld_dld_link=no
+  ac_cv_lib_dld_dld_link=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
 $as_echo "$ac_cv_lib_dld_dld_link" >&6; }
-if test "x$ac_cv_lib_dld_dld_link" = x""yes; then
+if test "x$ac_cv_lib_dld_dld_link" = x""yes; then :
   lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
 fi
 
@@ -12422,9 +11582,9 @@ fi
     save_LIBS="$LIBS"
     LIBS="$lt_cv_dlopen_libs $LIBS"
 
-    { $as_echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
 $as_echo_n "checking whether a program can dlopen itself... " >&6; }
-if test "${lt_cv_dlopen_self+set}" = set; then
+if test "${lt_cv_dlopen_self+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
          if test "$cross_compiling" = yes; then :
@@ -12433,7 +11593,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12436 "configure"
+#line 11596 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -12492,11 +11652,11 @@ int main ()
   return status;
 }
 _LT_EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
     (./conftest; exit; ) >&5 2>/dev/null
     lt_status=$?
     case x$lt_status in
@@ -12513,14 +11673,14 @@ rm -fr conftest*
 
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
 $as_echo "$lt_cv_dlopen_self" >&6; }
 
     if test "x$lt_cv_dlopen_self" = xyes; then
       wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
-      { $as_echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
-if test "${lt_cv_dlopen_self_static+set}" = set; then
+if test "${lt_cv_dlopen_self_static+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
          if test "$cross_compiling" = yes; then :
@@ -12529,7 +11689,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12532 "configure"
+#line 11692 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -12588,11 +11748,11 @@ int main ()
   return status;
 }
 _LT_EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
     (./conftest; exit; ) >&5 2>/dev/null
     lt_status=$?
     case x$lt_status in
@@ -12609,7 +11769,7 @@ rm -fr conftest*
 
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
 $as_echo "$lt_cv_dlopen_self_static" >&6; }
     fi
 
 
 striplib=
 old_striplib=
-{ $as_echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
 $as_echo_n "checking whether stripping libraries is possible... " >&6; }
 if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
   test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
   test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  { $as_echo "$as_me:$LINENO: result: yes" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 else
 # FIXME - insert some real tests, host_os isn't really good enough
@@ -12662,15 +11822,15 @@ else
     if test -n "$STRIP" ; then
       striplib="$STRIP -x"
       old_striplib="$STRIP -S"
-      { $as_echo "$as_me:$LINENO: result: yes" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
     else
-      { $as_echo "$as_me:$LINENO: result: no" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
     fi
     ;;
   *)
-    { $as_echo "$as_me:$LINENO: result: no" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
     ;;
   esac
 
 
   # Report which library types will actually be built
-  { $as_echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
 $as_echo_n "checking if libtool supports shared libraries... " >&6; }
-  { $as_echo "$as_me:$LINENO: result: $can_build_shared" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
 $as_echo "$can_build_shared" >&6; }
 
-  { $as_echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
 $as_echo_n "checking whether to build shared libraries... " >&6; }
   test "$can_build_shared" = "no" && enable_shared=no
 
@@ -12714,14 +11874,14 @@ $as_echo_n "checking whether to build shared libraries... " >&6; }
     fi
     ;;
   esac
-  { $as_echo "$as_me:$LINENO: result: $enable_shared" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
 $as_echo "$enable_shared" >&6; }
 
-  { $as_echo "$as_me:$LINENO: checking whether to build static libraries" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
 $as_echo_n "checking whether to build static libraries... " >&6; }
   # Make sure either enable_shared or enable_static is yes.
   test "$enable_shared" = yes || enable_static=yes
-  { $as_echo "$as_me:$LINENO: result: $enable_static" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
 $as_echo "$enable_static" >&6; }
 
 
@@ -12759,16 +11919,12 @@ CC="$lt_save_CC"
 
 CFLAGS="$CFLAGS -D_GNU_SOURCE"
 
-{ $as_echo "$as_me:$LINENO: checking if gcc likes the -Werror flag" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if gcc likes the -Werror flag" >&5
 $as_echo_n "checking if gcc likes the -Werror flag... " >&6; }
-if test "${rd_cv_gcc_flag__Werror+set}" = set; then
+if test "${rd_cv_gcc_flag__Werror+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -12779,35 +11935,14 @@ return 0
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   rd_cv_gcc_flag__Werror="yes"
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       rd_cv_gcc_flag__Werror="no"
+  rd_cv_gcc_flag__Werror="no"
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $rd_cv_gcc_flag__Werror" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $rd_cv_gcc_flag__Werror" >&5
 $as_echo "$rd_cv_gcc_flag__Werror" >&6; }
 if test "x$rd_cv_gcc_flag__Werror" = "xyes"; then
   WERROR="-Werror"
@@ -12821,16 +11956,12 @@ if test "x$GCC" = "xyes"; then
     oCFLAGS="$CFLAGS"
     CFLAGS="$CFLAGS $flag"
     cachename=rd_cv_gcc_flag_`echo $flag|sed 's/[^A-Za-z]/_/g'`
-    { $as_echo "$as_me:$LINENO: checking if gcc likes the $flag flag" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if gcc likes the $flag flag" >&5
 $as_echo_n "checking if gcc likes the $flag flag... " >&6; }
-if { as_var=$cachename; eval "test \"\${$as_var+set}\" = set"; }; then
+if { as_var=$cachename; eval "test \"\${$as_var+set}\" = set"; }; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -12841,37 +11972,15 @@ return 0
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   eval $cachename=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval $cachename=no
+  eval $cachename=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$cachename'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+eval ac_res=\$$cachename
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
     if eval test \$$cachename = no; then
          CFLAGS="$oCFLAGS"
@@ -12899,22 +12008,18 @@ case $TERM in
                T_ME=''
        ;;
 esac
-  { $as_echo "$as_me:$LINENO: result: " >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
 $as_echo "" >&6; }
-  { $as_echo "$as_me:$LINENO: result: ${T_MD}Checking for Header Files${T_ME}" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${T_MD}Checking for Header Files${T_ME}" >&5
 $as_echo "${T_MD}Checking for Header Files${T_ME}" >&6; }
 
 
-{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
 $as_echo_n "checking for ANSI C header files... " >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then
+if test "${ac_cv_header_stdc+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdlib.h>
 #include <stdarg.h>
@@ -12929,48 +12034,23 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_header_stdc=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_header_stdc=no
+  ac_cv_header_stdc=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <string.h>
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then
-  :
+  $EGREP "memchr" >/dev/null 2>&1; then :
+
 else
   ac_cv_header_stdc=no
 fi
 
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdlib.h>
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then
-  :
+  $EGREP "free" >/dev/null 2>&1; then :
+
 else
   ac_cv_header_stdc=no
 fi
 
 if test $ac_cv_header_stdc = yes; then
   # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then
+  if test "$cross_compiling" = yes; then :
   :
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <ctype.h>
 #include <stdlib.h>
@@ -13035,72 +12107,34 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_run "$LINENO"; then :
 
-( exit $ac_status )
-ac_cv_header_stdc=no
+else
+  ac_cv_header_stdc=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
 fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
 $as_echo "$ac_cv_header_stdc" >&6; }
 if test $ac_cv_header_stdc = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
 
 fi
 
-
-
-
-
-
 ac_header_dirent=no
 for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
   as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5
 $as_echo_n "checking for $ac_hdr that defines DIR... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
 #include <$ac_hdr>
@@ -13114,41 +12148,18 @@ return 0;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   eval "$as_ac_Header=yes"
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_Header=no"
+  eval "$as_ac_Header=no"
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+eval ac_res=\$$as_ac_Header
+              { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
 _ACEOF
 done
 # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
 if test $ac_header_dirent = dirent.h; then
-  { $as_echo "$as_me:$LINENO: checking for library containing opendir" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
 $as_echo_n "checking for library containing opendir... " >&6; }
-if test "${ac_cv_search_opendir+set}" = set; then
+if test "${ac_cv_search_opendir+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -13194,70 +12201,39 @@ for ac_lib in '' dir; do
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
   fi
-  rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+  if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_search_opendir=$ac_res
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext
-  if test "${ac_cv_search_opendir+set}" = set; then
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if test "${ac_cv_search_opendir+set}" = set; then :
   break
 fi
 done
-if test "${ac_cv_search_opendir+set}" = set; then
-  :
+if test "${ac_cv_search_opendir+set}" = set; then :
+
 else
   ac_cv_search_opendir=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
 $as_echo "$ac_cv_search_opendir" >&6; }
 ac_res=$ac_cv_search_opendir
-if test "$ac_res" != no; then
+if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 fi
 
 else
-  { $as_echo "$as_me:$LINENO: checking for library containing opendir" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
 $as_echo_n "checking for library containing opendir... " >&6; }
-if test "${ac_cv_search_opendir+set}" = set; then
+if test "${ac_cv_search_opendir+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -13282,218 +12258,39 @@ for ac_lib in '' x; do
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
   fi
-  rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+  if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_search_opendir=$ac_res
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext
-  if test "${ac_cv_search_opendir+set}" = set; then
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if test "${ac_cv_search_opendir+set}" = set; then :
   break
 fi
 done
-if test "${ac_cv_search_opendir+set}" = set; then
-  :
+if test "${ac_cv_search_opendir+set}" = set; then :
+
 else
   ac_cv_search_opendir=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_opendir" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_opendir" >&5
 $as_echo "$ac_cv_search_opendir" >&6; }
 ac_res=$ac_cv_search_opendir
-if test "$ac_res" != no; then
+if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 fi
 
 fi
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-for ac_header in libgen.h features.h sys/stat.h sys/types.h fcntl.h locale.h fp_class.h malloc.h unistd.h ieeefp.h math.h sys/times.h sys/param.h sys/resource.h signal.h float.h stdio.h stdlib.h errno.h string.h ctype.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+for ac_header in stdint.h inttypes.h libgen.h features.h sys/stat.h sys/types.h fcntl.h locale.h fp_class.h malloc.h unistd.h ieeefp.h math.h sys/times.h sys/param.h sys/resource.h signal.h float.h stdio.h stdlib.h errno.h string.h ctype.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
 done
 
 
-{ $as_echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
 $as_echo_n "checking for an ANSI C-conforming const... " >&6; }
-if test "${ac_cv_c_const+set}" = set; then
+if test "${ac_cv_c_const+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -13572,54 +12365,27 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_c_const=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_c_const=no
+  ac_cv_c_const=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
 $as_echo "$ac_cv_c_const" >&6; }
 if test $ac_cv_c_const = no; then
 
-cat >>confdefs.h <<\_ACEOF
-#define const /**/
-_ACEOF
+$as_echo "#define const /**/" >>confdefs.h
 
 fi
 
-{ $as_echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5
 $as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; }
-if test "${ac_cv_header_time+set}" = set; then
+if test "${ac_cv_header_time+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
 #include <sys/time.h>
@@ -13634,54 +12400,27 @@ return 0;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_header_time=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_header_time=no
+  ac_cv_header_time=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5
 $as_echo "$ac_cv_header_time" >&6; }
 if test $ac_cv_header_time = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define TIME_WITH_SYS_TIME 1
-_ACEOF
+$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h
 
 fi
 
-{ $as_echo "$as_me:$LINENO: checking whether struct tm is in sys/time.h or time.h" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; }
-if test "${ac_cv_struct_tm+set}" = set; then
+if test "${ac_cv_struct_tm+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
 #include <time.h>
@@ -13696,41 +12435,18 @@ struct tm tm;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_struct_tm=time.h
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_struct_tm=sys/time.h
+  ac_cv_struct_tm=sys/time.h
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_struct_tm" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5
 $as_echo "$ac_cv_struct_tm" >&6; }
 if test $ac_cv_struct_tm = sys/time.h; then
 
-cat >>confdefs.h <<\_ACEOF
-#define TM_IN_SYS_TIME 1
-_ACEOF
+$as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h
 
 fi
 
@@ -13751,39 +12467,25 @@ case $TERM in
                T_ME=''
        ;;
 esac
-  { $as_echo "$as_me:$LINENO: result: " >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
 $as_echo "" >&6; }
-  { $as_echo "$as_me:$LINENO: result: ${T_MD}Test Library Functions${T_ME}" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${T_MD}Test Library Functions${T_ME}" >&5
 $as_echo "${T_MD}Test Library Functions${T_ME}" >&6; }
 
 
-{ $as_echo "$as_me:$LINENO: checking for acos" >&5
-$as_echo_n "checking for acos... " >&6; }
-if test "${ac_cv_func_acos+set}" = set; then
+ac_fn_c_check_func "$LINENO" "acos" "ac_cv_func_acos"
+if test "x$ac_cv_func_acos" = x""yes; then :
+
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for acos in -lm" >&5
+$as_echo_n "checking for acos in -lm... " >&6; }
+if test "${ac_cv_lib_m_acos+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lm  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-/* Define acos to an innocuous variant, in case <limits.h> declares acos.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define acos innocuous_acos
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char acos (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef acos
 
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
@@ -13792,13 +12494,6 @@ cat >>conftest.$ac_ext <<_ACEOF
 extern "C"
 #endif
 char acos ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_acos || defined __stub___acos
-choke me
-#endif
-
 int
 main ()
 {
@@ -13807,116 +12502,23 @@ return acos ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_func_acos=yes
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_m_acos=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_acos=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_acos" >&5
-$as_echo "$ac_cv_func_acos" >&6; }
-if test "x$ac_cv_func_acos" = x""yes; then
-  :
-else
-
-{ $as_echo "$as_me:$LINENO: checking for acos in -lm" >&5
-$as_echo_n "checking for acos in -lm... " >&6; }
-if test "${ac_cv_lib_m_acos+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lm  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char acos ();
-int
-main ()
-{
-return acos ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_lib_m_acos=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_m_acos=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_m_acos" >&5
-$as_echo "$ac_cv_lib_m_acos" >&6; }
-if test "x$ac_cv_lib_m_acos" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_LIBM 1
-_ACEOF
-
-  LIBS="-lm $LIBS"
+  ac_cv_lib_m_acos=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_acos" >&5
+$as_echo "$ac_cv_lib_m_acos" >&6; }
+if test "x$ac_cv_lib_m_acos" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBM 1
+_ACEOF
+
+  LIBS="-lm $LIBS"
 
 fi
 
@@ -13928,118 +12530,24 @@ eval `./libtool --config | grep pic_flag`
 CFLAGS="$CFLAGS $pic_flag"
 
 
-
 for ac_func in strftime
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+do :
+  ac_fn_c_check_func "$LINENO" "strftime" "ac_cv_func_strftime"
+if test "x$ac_cv_func_strftime" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_STRFTIME 1
 _ACEOF
 
 else
   # strftime is in -lintl on SCO UNIX.
-{ $as_echo "$as_me:$LINENO: checking for strftime in -lintl" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for strftime in -lintl" >&5
 $as_echo_n "checking for strftime in -lintl... " >&6; }
-if test "${ac_cv_lib_intl_strftime+set}" = set; then
+if test "${ac_cv_lib_intl_strftime+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lintl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -14057,46 +12565,19 @@ return strftime ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_intl_strftime=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_intl_strftime=no
+  ac_cv_lib_intl_strftime=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_intl_strftime" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_strftime" >&5
 $as_echo "$ac_cv_lib_intl_strftime" >&6; }
-if test "x$ac_cv_lib_intl_strftime" = x""yes; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_STRFTIME 1
-_ACEOF
+if test "x$ac_cv_lib_intl_strftime" = x""yes; then :
+  $as_echo "#define HAVE_STRFTIME 1" >>confdefs.h
 
 LIBS="-lintl $LIBS"
 fi
 fi
 done
 
-
 for ac_func in vprintf
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+do :
+  ac_fn_c_check_func "$LINENO" "vprintf" "ac_cv_func_vprintf"
+if test "x$ac_cv_func_vprintf" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-{ $as_echo "$as_me:$LINENO: checking for _doprnt" >&5
-$as_echo_n "checking for _doprnt... " >&6; }
-if test "${ac_cv_func__doprnt+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+#define HAVE_VPRINTF 1
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define _doprnt to an innocuous variant, in case <limits.h> declares _doprnt.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define _doprnt innocuous__doprnt
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char _doprnt (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef _doprnt
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char _doprnt ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub__doprnt || defined __stub____doprnt
-choke me
-#endif
-
-int
-main ()
-{
-return _doprnt ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_func__doprnt=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func__doprnt=no
-fi
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func__doprnt" >&5
-$as_echo "$ac_cv_func__doprnt" >&6; }
-if test "x$ac_cv_func__doprnt" = x""yes; then
+ac_fn_c_check_func "$LINENO" "_doprnt" "ac_cv_func__doprnt"
+if test "x$ac_cv_func__doprnt" = x""yes; then :
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_DOPRNT 1
-_ACEOF
+$as_echo "#define HAVE_DOPRNT 1" >>confdefs.h
 
 fi
 
@@ -14300,19 +12605,14 @@ done
 
 
 
-
- { $as_echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
 $as_echo_n "checking whether byte ordering is bigendian... " >&6; }
-if test "${ac_cv_c_bigendian+set}" = set; then
+if test "${ac_cv_c_bigendian+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_c_bigendian=unknown
     # See if we're dealing with a universal compiler.
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #ifndef __APPLE_CC__
               not a universal capable compiler
@@ -14320,46 +12620,34 @@ cat >>conftest.$ac_ext <<_ACEOF
             typedef int dummy;
 
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
 
        # Check for potential -arch flags.  It is not universal unless
-       # there are some -arch flags.  Note that *ppc* also matches
-       # ppc64.  This check is also rather less than ideal.
-       case "${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" in  #(
-         *-arch*ppc*|*-arch*i386*|*-arch*x86_64*) ac_cv_c_bigendian=universal;;
-       esac
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
+       # there are at least two -arch flags with different values.
+       ac_arch=
+       ac_prev=
+       for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
+        if test -n "$ac_prev"; then
+          case $ac_word in
+            i?86 | x86_64 | ppc | ppc64)
+              if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
+                ac_arch=$ac_word
+              else
+                ac_cv_c_bigendian=universal
+                break
+              fi
+              ;;
+          esac
+          ac_prev=
+        elif test "x$ac_word" = "x-arch"; then
+          ac_prev=arch
+        fi
+       done
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     if test $ac_cv_c_bigendian = unknown; then
       # See if sys/param.h defines the BYTE_ORDER macro.
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
             #include <sys/param.h>
@@ -14377,30 +12665,9 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   # It does; now see whether it defined to BIG_ENDIAN or not.
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
                #include <sys/param.h>
@@ -14416,49 +12683,18 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_c_bigendian=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_c_bigendian=no
+  ac_cv_c_bigendian=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     fi
     if test $ac_cv_c_bigendian = unknown; then
       # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <limits.h>
 
@@ -14473,30 +12709,9 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   # It does; now see whether it defined to _BIG_ENDIAN or not.
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <limits.h>
 
@@ -14511,51 +12726,20 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_c_bigendian=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_c_bigendian=no
+  ac_cv_c_bigendian=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     fi
     if test $ac_cv_c_bigendian = unknown; then
       # Compile a test program.
-      if test "$cross_compiling" = yes; then
+      if test "$cross_compiling" = yes; then :
   # Try to guess by grepping values from an object file.
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 short int ascii_mm[] =
                  { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
@@ -14581,24 +12765,7 @@ return use_ascii (foo) == use_ebcdic (foo);
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
              ac_cv_c_bigendian=yes
            fi
@@ -14610,20 +12777,10 @@ $as_echo "$ac_try_echo") >&5
                ac_cv_c_bigendian=unknown
              fi
            fi
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $ac_includes_default
 int
@@ -14643,123 +12800,186 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+if ac_fn_c_try_run "$LINENO"; then :
   ac_cv_c_bigendian=no
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_c_bigendian=yes
+  ac_cv_c_bigendian=yes
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
     fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
 $as_echo "$ac_cv_c_bigendian" >&6; }
  case $ac_cv_c_bigendian in #(
    yes)
-     cat >>confdefs.h <<\_ACEOF
-#define WORDS_BIGENDIAN 1
-_ACEOF
+     $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h
 ;; #(
    no)
       ;; #(
    universal)
 
-cat >>confdefs.h <<\_ACEOF
-#define AC_APPLE_UNIVERSAL_BUILD 1
-_ACEOF
+$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
 
      ;; #(
    *)
-     { { $as_echo "$as_me:$LINENO: error: unknown endianness
- presetting ac_cv_c_bigendian=no (or yes) will help" >&5
-$as_echo "$as_me: error: unknown endianness
- presetting ac_cv_c_bigendian=no (or yes) will help" >&2;}
-   { (exit 1); exit 1; }; } ;;
+     as_fn_error "unknown endianness
+ presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
  esac
 
 
 
+for ac_func in tzset fsync mbstowcs opendir readdir chdir chroot getuid setlocale strerror snprintf vsnprintf vasprintf fpclass class fp_class isnan memmove strchr mktime getrusage gettimeofday
+do :
+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+eval as_val=\$$as_ac_var
+   if test "x$as_val" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
 
+fi
+done
 
 
+ac_fn_c_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strerror_r" = x""yes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
+fi
 
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRERROR_R $ac_have_decl
+_ACEOF
 
+for ac_func in strerror_r
+do :
+  ac_fn_c_check_func "$LINENO" "strerror_r" "ac_cv_func_strerror_r"
+if test "x$ac_cv_func_strerror_r" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_STRERROR_R 1
+_ACEOF
 
+fi
+done
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror_r returns char *" >&5
+$as_echo_n "checking whether strerror_r returns char *... " >&6; }
+if test "${ac_cv_func_strerror_r_char_p+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
 
+    ac_cv_func_strerror_r_char_p=no
+    if test $ac_cv_have_decl_strerror_r = yes; then
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
 
+         char buf[100];
+         char x = *strerror_r (0, buf, sizeof buf);
+         char *p = strerror_r (0, buf, sizeof buf);
+         return !p || x;
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_func_strerror_r_char_p=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    else
+      # strerror_r is not declared.  Choose between
+      # systems that have relatively inaccessible declarations for the
+      # function.  BeOS and DEC UNIX 4.0 fall in this category, but the
+      # former has a strerror_r that returns char*, while the latter
+      # has a strerror_r that returns `int'.
+      # This test should segfault on the DEC system.
+      if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_includes_default
+       extern char *strerror_r ();
+int
+main ()
+{
+char buf[100];
+         char x = *strerror_r (0, buf, sizeof buf);
+         return ! isalpha (x);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  ac_cv_func_strerror_r_char_p=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
 
+    fi
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strerror_r_char_p" >&5
+$as_echo "$ac_cv_func_strerror_r_char_p" >&6; }
+if test $ac_cv_func_strerror_r_char_p = yes; then
 
+$as_echo "#define STRERROR_R_CHAR_P 1" >>confdefs.h
 
+fi
 
 
 
+case $TERM in
+       #   for the most important terminal types we directly know the sequences
+       xterm|xterm*|vt220|vt220*)
+               T_MD=`awk 'BEGIN { printf("%c%c%c%c", 27, 91, 49, 109); }' </dev/null 2>/dev/null`
+               T_ME=`awk 'BEGIN { printf("%c%c%c", 27, 91, 109); }' </dev/null 2>/dev/null`
+       ;;
+       vt100|vt100*|cygwin)
+               T_MD=`awk 'BEGIN { printf("%c%c%c%c%c%c", 27, 91, 49, 109, 0, 0); }' </dev/null 2>/dev/null`
+               T_ME=`awk 'BEGIN { printf("%c%c%c%c%c", 27, 91, 109, 0, 0); }' </dev/null 2>/dev/null`
+       ;;
+       *)
+               T_MD=''
+               T_ME=''
+       ;;
+esac
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
+$as_echo "" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${T_MD}Map/Fadvis/Madvise checking${T_ME}" >&5
+$as_echo "${T_MD}Map/Fadvis/Madvise checking${T_ME}" >&6; }
 
 
 
 
+for ac_func in fdatasync
+do :
+  ac_fn_c_check_func "$LINENO" "fdatasync" "ac_cv_func_fdatasync"
+if test "x$ac_cv_func_fdatasync" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_FDATASYNC 1
+_ACEOF
 
-for ac_func in tzset fsync mbstowcs opendir readdir chdir chroot getuid setlocale strerror snprintf vsnprintf vasprintf fpclass class fp_class isnan memmove strchr mktime getrusage gettimeofday
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fdatasync in -lrt" >&5
+$as_echo_n "checking for fdatasync in -lrt... " >&6; }
+if test "${ac_cv_lib_rt_fdatasync+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lrt  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
 
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
@@ -14767,233 +12987,266 @@ cat >>conftest.$ac_ext <<_ACEOF
 #ifdef __cplusplus
 extern "C"
 #endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
+char fdatasync ();
 int
 main ()
 {
-return $ac_func ();
+return fdatasync ();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_rt_fdatasync=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  ac_cv_lib_rt_fdatasync=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_fdatasync" >&5
+$as_echo "$ac_cv_lib_rt_fdatasync" >&6; }
+if test "x$ac_cv_lib_rt_fdatasync" = x""yes; then :
+  LIBS="${LIBS} -lrt"; $as_echo "#define HAVE_FDATASYNC 1" >>confdefs.h
 
-       eval "$as_ac_var=no"
 fi
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+done
+
+for ac_func in fsync
+do :
+  ac_fn_c_check_func "$LINENO" "fsync" "ac_cv_func_fsync"
+if test "x$ac_cv_func_fsync" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_FSYNC 1
 _ACEOF
 
 fi
 done
 
 
-{ $as_echo "$as_me:$LINENO: checking whether strerror_r is declared" >&5
-$as_echo_n "checking whether strerror_r is declared... " >&6; }
-if test "${ac_cv_have_decl_strerror_r+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-#ifndef strerror_r
-  (void) strerror_r;
-#endif
 
-  ;
-  return 0;
-}
+if test "x$enable_mmap" = "xyes"; then
+  case "$host" in
+  *cygwin*)
+    # the normal mmap test does not work in cygwin
+    for ac_func in mmap
+do :
+  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_MMAP 1
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_strerror_r=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_cv_have_decl_strerror_r=no
 fi
+done
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_strerror_r" >&5
-$as_echo "$ac_cv_have_decl_strerror_r" >&6; }
-if test "x$ac_cv_have_decl_strerror_r" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRERROR_R 1
+    if test "x$ac_cv_func_mmap" = "xyes"; then
+      ac_cv_func_mmap_fixed_mapped=yes
+    fi
+  ;;
+  *)
+    for ac_header in sys/mman.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_mman_h" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_SYS_MMAN_H 1
 _ACEOF
 
+fi
+
+done
 
-else
+    for ac_header in stdlib.h unistd.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRERROR_R 0
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
 
-
 fi
 
+done
 
+for ac_func in getpagesize
+do :
+  ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize"
+if test "x$ac_cv_func_getpagesize" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_GETPAGESIZE 1
+_ACEOF
 
-for ac_func in strerror_r
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+fi
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5
+$as_echo_n "checking for working mmap... " >&6; }
+if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  if test "$cross_compiling" = yes; then :
+  ac_cv_func_mmap_fixed_mapped=no
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
+$ac_includes_default
+/* malloc might have been renamed as rpl_malloc. */
+#undef malloc
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
+/* Thanks to Mike Haertel and Jim Avera for this test.
+   Here is a matrix of mmap possibilities:
+       mmap private not fixed
+       mmap private fixed at somewhere currently unmapped
+       mmap private fixed at somewhere already mapped
+       mmap shared not fixed
+       mmap shared fixed at somewhere currently unmapped
+       mmap shared fixed at somewhere already mapped
+   For private mappings, we should verify that changes cannot be read()
+   back from the file, nor mmap's back from the file at a different
+   address.  (There have been systems where private was not correctly
+   implemented like the infamous i386 svr4.0, and systems where the
+   VM page cache was not coherent with the file system buffer cache
+   like early versions of FreeBSD and possibly contemporary NetBSD.)
+   For shared mappings, we should conversely verify that changes get
+   propagated back to all the places they're supposed to be.
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
+   Grep wants private fixed already mapped.
+   The main things grep needs to know about mmap are:
+   * does it exist and is it safe to write into the mmap'd area
+   * how to use it (BSD variants)  */
 
-#undef $ac_func
+#include <fcntl.h>
+#include <sys/mman.h>
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
+#if !defined STDC_HEADERS && !defined HAVE_STDLIB_H
+char *malloc ();
 #endif
 
+/* This mess was copied from the GNU getpagesize.h.  */
+#ifndef HAVE_GETPAGESIZE
+/* Assume that all systems that can run configure have sys/param.h.  */
+# ifndef HAVE_SYS_PARAM_H
+#  define HAVE_SYS_PARAM_H 1
+# endif
+
+# ifdef _SC_PAGESIZE
+#  define getpagesize() sysconf(_SC_PAGESIZE)
+# else /* no _SC_PAGESIZE */
+#  ifdef HAVE_SYS_PARAM_H
+#   include <sys/param.h>
+#   ifdef EXEC_PAGESIZE
+#    define getpagesize() EXEC_PAGESIZE
+#   else /* no EXEC_PAGESIZE */
+#    ifdef NBPG
+#     define getpagesize() NBPG * CLSIZE
+#     ifndef CLSIZE
+#      define CLSIZE 1
+#     endif /* no CLSIZE */
+#    else /* no NBPG */
+#     ifdef NBPC
+#      define getpagesize() NBPC
+#     else /* no NBPC */
+#      ifdef PAGESIZE
+#       define getpagesize() PAGESIZE
+#      endif /* PAGESIZE */
+#     endif /* no NBPC */
+#    endif /* no NBPG */
+#   endif /* no EXEC_PAGESIZE */
+#  else /* no HAVE_SYS_PARAM_H */
+#   define getpagesize() 8192  /* punt totally */
+#  endif /* no HAVE_SYS_PARAM_H */
+# endif /* no _SC_PAGESIZE */
+
+#endif /* no HAVE_GETPAGESIZE */
+
 int
 main ()
 {
-return $ac_func ();
-  ;
+  char *data, *data2, *data3;
+  int i, pagesize;
+  int fd;
+
+  pagesize = getpagesize ();
+
+  /* First, make a file with some known garbage in it. */
+  data = (char *) malloc (pagesize);
+  if (!data)
+    return 1;
+  for (i = 0; i < pagesize; ++i)
+    *(data + i) = rand ();
+  umask (0);
+  fd = creat ("conftest.mmap", 0600);
+  if (fd < 0)
+    return 1;
+  if (write (fd, data, pagesize) != pagesize)
+    return 1;
+  close (fd);
+
+  /* Next, try to mmap the file at a fixed address which already has
+     something else allocated at it.  If we can, also make sure that
+     we see the same garbage.  */
+  fd = open ("conftest.mmap", O_RDWR);
+  if (fd < 0)
+    return 1;
+  data2 = (char *) malloc (2 * pagesize);
+  if (!data2)
+    return 1;
+  data2 += (pagesize - ((long int) data2 & (pagesize - 1))) & (pagesize - 1);
+  if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE,
+                    MAP_PRIVATE | MAP_FIXED, fd, 0L))
+    return 1;
+  for (i = 0; i < pagesize; ++i)
+    if (*(data + i) != *(data2 + i))
+      return 1;
+
+  /* Finally, make sure that changes to the mapped area do not
+     percolate back to the file as seen by read().  (This is a bug on
+     some variants of i386 svr4.0.)  */
+  for (i = 0; i < pagesize; ++i)
+    *(data2 + i) = *(data2 + i) + 1;
+  data3 = (char *) malloc (pagesize);
+  if (!data3)
+    return 1;
+  if (read (fd, data3, pagesize) != pagesize)
+    return 1;
+  for (i = 0; i < pagesize; ++i)
+    if (*(data + i) != *(data3 + i))
+      return 1;
+  close (fd);
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
+if ac_fn_c_try_run "$LINENO"; then :
+  ac_cv_func_mmap_fixed_mapped=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  ac_cv_func_mmap_fixed_mapped=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
 
-       eval "$as_ac_var=no"
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mmap_fixed_mapped" >&5
+$as_echo "$ac_cv_func_mmap_fixed_mapped" >&6; }
+if test $ac_cv_func_mmap_fixed_mapped = yes; then
+
+$as_echo "#define HAVE_MMAP 1" >>confdefs.h
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+rm -f conftest.mmap
+
+    for ac_func in mmap munmap msync
+do :
+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+eval as_val=\$$as_ac_var
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -15001,135 +13254,81 @@ _ACEOF
 fi
 done
 
-{ $as_echo "$as_me:$LINENO: checking whether strerror_r returns char *" >&5
-$as_echo_n "checking whether strerror_r returns char *... " >&6; }
-if test "${ac_cv_func_strerror_r_char_p+set}" = set; then
-  $as_echo_n "(cached) " >&6
+    ac_fn_c_check_decl "$LINENO" "madvise" "ac_cv_have_decl_madvise" "#ifdef HAVE_SYS_MMAN_H
+                                    # include <sys/mman.h>
+                                    #endif
+"
+if test "x$ac_cv_have_decl_madvise" = x""yes; then :
+  ac_have_decl=1
 else
+  ac_have_decl=0
+fi
 
-    ac_cv_func_strerror_r_char_p=no
-    if test $ac_cv_have_decl_strerror_r = yes; then
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_MADVISE $ac_have_decl
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-
-         char buf[100];
-         char x = *strerror_r (0, buf, sizeof buf);
-         char *p = strerror_r (0, buf, sizeof buf);
-         return !p || x;
 
-  ;
-  return 0;
-}
+    if test "x$ac_cv_have_decl_madvise" = "xyes";
+    then
+      for ac_func in madvise
+do :
+  ac_fn_c_check_func "$LINENO" "madvise" "ac_cv_func_madvise"
+if test "x$ac_cv_func_madvise" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_MADVISE 1
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_func_strerror_r_char_p=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
 
 fi
+done
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
     else
-      # strerror_r is not declared.  Choose between
-      # systems that have relatively inaccessible declarations for the
-      # function.  BeOS and DEC UNIX 4.0 fall in this category, but the
-      # former has a strerror_r that returns char*, while the latter
-      # has a strerror_r that returns `int'.
-      # This test should segfault on the DEC system.
-      if test "$cross_compiling" = yes; then
-  :
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+      for ac_func in posix_madvise
+do :
+  ac_fn_c_check_func "$LINENO" "posix_madvise" "ac_cv_func_posix_madvise"
+if test "x$ac_cv_func_posix_madvise" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_POSIX_MADVISE 1
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-       extern char *strerror_r ();
-int
-main ()
-{
-char buf[100];
-         char x = *strerror_r (0, buf, sizeof buf);
-         return ! isalpha (x);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_strerror_r_char_p=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
+done
 
+      if test "x$ac_cv_func_posix_madvise" != "xyes"; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: madvise() nor posix_madvise() found." >&5
+$as_echo "$as_me: WARNING: madvise() nor posix_madvise() found." >&2;}
+      fi
     fi
+  ;;
+  esac
+  if test "x$ac_cv_func_mmap" != "xyes";
+  then
+    as_fn_error "--enable-mmap requested but mmap() was not detected" "$LINENO" 5
+  fi
+fi
 
+ac_fn_c_check_decl "$LINENO" "posix_fadvise" "ac_cv_have_decl_posix_fadvise" "#define _XOPEN_SOURCE 600
+#include <fcntl.h>
+"
+if test "x$ac_cv_have_decl_posix_fadvise" = x""yes; then :
+  ac_have_decl=1
+else
+  ac_have_decl=0
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_strerror_r_char_p" >&5
-$as_echo "$ac_cv_func_strerror_r_char_p" >&6; }
-if test $ac_cv_func_strerror_r_char_p = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define STRERROR_R_CHAR_P 1
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_POSIX_FADVISE $ac_have_decl
+_ACEOF
+
+for ac_func in posix_fadvise
+do :
+  ac_fn_c_check_func "$LINENO" "posix_fadvise" "ac_cv_func_posix_fadvise"
+if test "x$ac_cv_func_posix_fadvise" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_POSIX_FADVISE 1
 _ACEOF
 
 fi
+done
 
 
 
@@ -15148,725 +13347,461 @@ case $TERM in
                T_ME=''
        ;;
 esac
-  { $as_echo "$as_me:$LINENO: result: " >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
 $as_echo "" >&6; }
-  { $as_echo "$as_me:$LINENO: result: ${T_MD}Map/Fadvis/Madvise checking${T_ME}" >&5
-$as_echo "${T_MD}Map/Fadvis/Madvise checking${T_ME}" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${T_MD}Libintl Processing${T_ME}" >&5
+$as_echo "${T_MD}Libintl Processing${T_ME}" >&6; }
 
 
 
 
 
-for ac_func in fdatasync
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
+        MKINSTALLDIRS=
+  if test -n "$ac_aux_dir"; then
+    case "$ac_aux_dir" in
+      /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;;
+      *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;;
+    esac
+  fi
+  if test -z "$MKINSTALLDIRS"; then
+    MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
+  fi
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5
+$as_echo_n "checking whether NLS is requested... " >&6; }
+    # Check whether --enable-nls was given.
+if test "${enable_nls+set}" = set; then :
+  enableval=$enable_nls; USE_NLS=$enableval
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
+  USE_NLS=yes
+fi
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
+$as_echo "$USE_NLS" >&6; }
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
 
-#undef $ac_func
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
 
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       eval "$as_ac_var=no"
-fi
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
 fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
 
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+  ac_executable_p="test -x"
 else
-  { $as_echo "$as_me:$LINENO: checking for fdatasync in -lrt" >&5
-$as_echo_n "checking for fdatasync in -lrt... " >&6; }
-if test "${ac_cv_lib_rt_fdatasync+set}" = set; then
+  ac_executable_p="test -f"
+fi
+rm -f conf$$.file
+
+# Extract the first word of "msgfmt", so it can be a program name with args.
+set dummy msgfmt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_MSGFMT+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lrt  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char fdatasync ();
-int
-main ()
-{
-return fdatasync ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
+  case "$MSGFMT" in
+  [\\/]* | ?:[\\/]*)
+    ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
+    ;;
+  *)
+    ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH; do
+      IFS="$ac_save_IFS"
+      test -z "$ac_dir" && ac_dir=.
+      for ac_exec_ext in '' $ac_executable_extensions; do
+        if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+          echo "$as_me: trying $ac_dir/$ac_word..." >&5
+          if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 &&
+     (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+            ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext"
+            break 2
+          fi
+        fi
+      done
+    done
+    IFS="$ac_save_IFS"
+  test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":"
+    ;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_lib_rt_fdatasync=yes
+fi
+MSGFMT="$ac_cv_path_MSGFMT"
+if test "$MSGFMT" != ":"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5
+$as_echo "$MSGFMT" >&6; }
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_rt_fdatasync=no
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_rt_fdatasync" >&5
-$as_echo "$ac_cv_lib_rt_fdatasync" >&6; }
-if test "x$ac_cv_lib_rt_fdatasync" = x""yes; then
-  LIBS="${LIBS} -lrt"; cat >>confdefs.h <<\_ACEOF
-#define HAVE_FDATASYNC 1
-_ACEOF
+  # Extract the first word of "gmsgfmt", so it can be a program name with args.
+set dummy gmsgfmt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_GMSGFMT+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $GMSGFMT in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
+  test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
+  ;;
+esac
 fi
-
+GMSGFMT=$ac_cv_path_GMSGFMT
+if test -n "$GMSGFMT"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5
+$as_echo "$GMSGFMT" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
-done
 
 
-for ac_func in fsync
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+  ac_executable_p="test -x"
+else
+  ac_executable_p="test -f"
+fi
+rm -f conf$$.file
 
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
+# Extract the first word of "xgettext", so it can be a program name with args.
+set dummy xgettext; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_XGETTEXT+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case "$XGETTEXT" in
+  [\\/]* | ?:[\\/]*)
+    ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+    ;;
+  *)
+    ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH; do
+      IFS="$ac_save_IFS"
+      test -z "$ac_dir" && ac_dir=.
+      for ac_exec_ext in '' $ac_executable_extensions; do
+        if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+          echo "$as_me: trying $ac_dir/$ac_word..." >&5
+          if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 &&
+     (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+            ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext"
+            break 2
+          fi
+        fi
+      done
+    done
+    IFS="$ac_save_IFS"
+  test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
+    ;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
+fi
+XGETTEXT="$ac_cv_path_XGETTEXT"
+if test "$XGETTEXT" != ":"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5
+$as_echo "$XGETTEXT" >&6; }
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+    rm -f messages.po
+
 
-       eval "$as_ac_var=no"
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
 fi
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+  ac_executable_p="test -x"
+else
+  ac_executable_p="test -f"
 fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
+rm -f conf$$.file
 
+# Extract the first word of "msgmerge", so it can be a program name with args.
+set dummy msgmerge; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_MSGMERGE+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case "$MSGMERGE" in
+  [\\/]* | ?:[\\/]*)
+    ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path.
+    ;;
+  *)
+    ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH; do
+      IFS="$ac_save_IFS"
+      test -z "$ac_dir" && ac_dir=.
+      for ac_exec_ext in '' $ac_executable_extensions; do
+        if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+          echo "$as_me: trying $ac_dir/$ac_word..." >&5
+          if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then
+            ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext"
+            break 2
+          fi
+        fi
+      done
+    done
+    IFS="$ac_save_IFS"
+  test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":"
+    ;;
+esac
+fi
+MSGMERGE="$ac_cv_path_MSGMERGE"
+if test "$MSGMERGE" != ":"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5
+$as_echo "$MSGMERGE" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
-done
 
 
+      if test "$GMSGFMT" != ":"; then
+            if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
+       (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+      : ;
+    else
+      GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: found $GMSGFMT program is not GNU msgfmt; ignore it" >&5
+$as_echo "found $GMSGFMT program is not GNU msgfmt; ignore it" >&6; }
+      GMSGFMT=":"
+    fi
+  fi
 
-if test "x$enable_mmap" = "xyes"; then
-  case "$host" in
-  *cygwin*)
-    # the normal mmap test does not work in cygwin
+      if test "$XGETTEXT" != ":"; then
+            if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
+       (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+      : ;
+    else
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5
+$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; }
+      XGETTEXT=":"
+    fi
+        rm -f messages.po
+  fi
 
-for ac_func in mmap
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
+  ac_config_commands="$ac_config_commands default-1"
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
 
-#undef $ac_func
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library 2 or newer" >&5
+$as_echo_n "checking whether we are using the GNU C Library 2 or newer... " >&6; }
+if test "${ac_cv_gnu_library_2+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ >= 2)
+  Lucky GNU user
+ #endif
 #endif
 
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "Lucky GNU user" >/dev/null 2>&1; then :
+  ac_cv_gnu_library_2=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
+  ac_cv_gnu_library_2=no
 fi
+rm -f conftest*
+
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
 
 fi
-done
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gnu_library_2" >&5
+$as_echo "$ac_cv_gnu_library_2" >&6; }
 
-    if test "x$ac_cv_func_mmap" = "xyes"; then
-      ac_cv_func_mmap_fixed_mapped=yes
-    fi
-  ;;
-  *)
+    GLIBC2="$ac_cv_gnu_library_2"
 
-for ac_header in sys/mman.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_RANLIB+set}" = set; then :
+  $as_echo_n "(cached) " >&6
 else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
-       ac_header_compiler=no
 fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
 fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
 else
-  eval "$as_ac_Header=\$ac_header_preproc"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
 
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
 
 fi
-
-done
-
-
-
-for ac_header in stdlib.h unistd.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+if test -z "$ac_cv_prog_RANLIB"; then
+  ac_ct_RANLIB=$RANLIB
+  # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
   $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
 else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
+  if test -n "$ac_ct_RANLIB"; then
+  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_RANLIB="ranlib"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
-       ac_header_compiler=no
 fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
+  if test "x$ac_ct_RANLIB" = x; then
+    RANLIB=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
 esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
+    RANLIB=$ac_ct_RANLIB
+  fi
 else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
+  RANLIB="$ac_cv_prog_RANLIB"
 fi
 
-done
-
 
-for ac_func in getpagesize
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for strerror in -lcposix" >&5
+$as_echo_n "checking for strerror in -lcposix... " >&6; }
+if test "${ac_cv_lib_cposix_strerror+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lcposix  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
 
 /* Override any GCC internal prototype to avoid an error.
    Use char because int might match the return type of a GCC
@@ -15874,1847 +13809,948 @@ cat >>conftest.$ac_ext <<_ACEOF
 #ifdef __cplusplus
 extern "C"
 #endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
+char strerror ();
 int
 main ()
 {
-return $ac_func ();
+return strerror ();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_cposix_strerror=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
+  ac_cv_lib_cposix_strerror=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cposix_strerror" >&5
+$as_echo "$ac_cv_lib_cposix_strerror" >&6; }
+if test "x$ac_cv_lib_cposix_strerror" = x""yes; then :
+  LIBS="$LIBS -lcposix"
 fi
-done
 
-{ $as_echo "$as_me:$LINENO: checking for working mmap" >&5
-$as_echo_n "checking for working mmap... " >&6; }
-if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for signed" >&5
+$as_echo_n "checking for signed... " >&6; }
+if test "${bh_cv_c_signed+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
-  ac_cv_func_mmap_fixed_mapped=no
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
-/* malloc might have been renamed as rpl_malloc. */
-#undef malloc
-
-/* Thanks to Mike Haertel and Jim Avera for this test.
-   Here is a matrix of mmap possibilities:
-       mmap private not fixed
-       mmap private fixed at somewhere currently unmapped
-       mmap private fixed at somewhere already mapped
-       mmap shared not fixed
-       mmap shared fixed at somewhere currently unmapped
-       mmap shared fixed at somewhere already mapped
-   For private mappings, we should verify that changes cannot be read()
-   back from the file, nor mmap's back from the file at a different
-   address.  (There have been systems where private was not correctly
-   implemented like the infamous i386 svr4.0, and systems where the
-   VM page cache was not coherent with the file system buffer cache
-   like early versions of FreeBSD and possibly contemporary NetBSD.)
-   For shared mappings, we should conversely verify that changes get
-   propagated back to all the places they're supposed to be.
-
-   Grep wants private fixed already mapped.
-   The main things grep needs to know about mmap are:
-   * does it exist and is it safe to write into the mmap'd area
-   * how to use it (BSD variants)  */
-
-#include <fcntl.h>
-#include <sys/mman.h>
-
-#if !defined STDC_HEADERS && !defined HAVE_STDLIB_H
-char *malloc ();
-#endif
-
-/* This mess was copied from the GNU getpagesize.h.  */
-#ifndef HAVE_GETPAGESIZE
-/* Assume that all systems that can run configure have sys/param.h.  */
-# ifndef HAVE_SYS_PARAM_H
-#  define HAVE_SYS_PARAM_H 1
-# endif
-
-# ifdef _SC_PAGESIZE
-#  define getpagesize() sysconf(_SC_PAGESIZE)
-# else /* no _SC_PAGESIZE */
-#  ifdef HAVE_SYS_PARAM_H
-#   include <sys/param.h>
-#   ifdef EXEC_PAGESIZE
-#    define getpagesize() EXEC_PAGESIZE
-#   else /* no EXEC_PAGESIZE */
-#    ifdef NBPG
-#     define getpagesize() NBPG * CLSIZE
-#     ifndef CLSIZE
-#      define CLSIZE 1
-#     endif /* no CLSIZE */
-#    else /* no NBPG */
-#     ifdef NBPC
-#      define getpagesize() NBPC
-#     else /* no NBPC */
-#      ifdef PAGESIZE
-#       define getpagesize() PAGESIZE
-#      endif /* PAGESIZE */
-#     endif /* no NBPC */
-#    endif /* no NBPG */
-#   endif /* no EXEC_PAGESIZE */
-#  else /* no HAVE_SYS_PARAM_H */
-#   define getpagesize() 8192  /* punt totally */
-#  endif /* no HAVE_SYS_PARAM_H */
-# endif /* no _SC_PAGESIZE */
-
-#endif /* no HAVE_GETPAGESIZE */
 
 int
 main ()
 {
-  char *data, *data2, *data3;
-  int i, pagesize;
-  int fd;
-
-  pagesize = getpagesize ();
-
-  /* First, make a file with some known garbage in it. */
-  data = (char *) malloc (pagesize);
-  if (!data)
-    return 1;
-  for (i = 0; i < pagesize; ++i)
-    *(data + i) = rand ();
-  umask (0);
-  fd = creat ("conftest.mmap", 0600);
-  if (fd < 0)
-    return 1;
-  if (write (fd, data, pagesize) != pagesize)
-    return 1;
-  close (fd);
-
-  /* Next, try to mmap the file at a fixed address which already has
-     something else allocated at it.  If we can, also make sure that
-     we see the same garbage.  */
-  fd = open ("conftest.mmap", O_RDWR);
-  if (fd < 0)
-    return 1;
-  data2 = (char *) malloc (2 * pagesize);
-  if (!data2)
-    return 1;
-  data2 += (pagesize - ((long int) data2 & (pagesize - 1))) & (pagesize - 1);
-  if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE,
-                    MAP_PRIVATE | MAP_FIXED, fd, 0L))
-    return 1;
-  for (i = 0; i < pagesize; ++i)
-    if (*(data + i) != *(data2 + i))
-      return 1;
-
-  /* Finally, make sure that changes to the mapped area do not
-     percolate back to the file as seen by read().  (This is a bug on
-     some variants of i386 svr4.0.)  */
-  for (i = 0; i < pagesize; ++i)
-    *(data2 + i) = *(data2 + i) + 1;
-  data3 = (char *) malloc (pagesize);
-  if (!data3)
-    return 1;
-  if (read (fd, data3, pagesize) != pagesize)
-    return 1;
-  for (i = 0; i < pagesize; ++i)
-    if (*(data + i) != *(data3 + i))
-      return 1;
-  close (fd);
+signed char x;
+  ;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_func_mmap_fixed_mapped=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  bh_cv_c_signed=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_func_mmap_fixed_mapped=no
+  bh_cv_c_signed=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bh_cv_c_signed" >&5
+$as_echo "$bh_cv_c_signed" >&6; }
+  if test $bh_cv_c_signed = no; then
 
+$as_echo "#define signed /**/" >>confdefs.h
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5
-$as_echo "$ac_cv_func_mmap_fixed_mapped" >&6; }
-if test $ac_cv_func_mmap_fixed_mapped = yes; then
+  fi
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_MMAP 1
-_ACEOF
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
+$as_echo_n "checking for inline... " >&6; }
+if test "${ac_cv_c_inline+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_c_inline=no
+for ac_kw in inline __inline__ __inline; do
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifndef __cplusplus
+typedef int foo_t;
+static $ac_kw foo_t static_foo () {return 0; }
+$ac_kw foo_t foo () {return 0; }
+#endif
 
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_c_inline=$ac_kw
 fi
-rm -f conftest.mmap
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  test "$ac_cv_c_inline" != no && break
+done
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
+$as_echo "$ac_cv_c_inline" >&6; }
 
+case $ac_cv_c_inline in
+  inline | yes) ;;
+  *)
+    case $ac_cv_c_inline in
+      no) ac_val=;;
+      *) ac_val=$ac_cv_c_inline;;
+    esac
+    cat >>confdefs.h <<_ACEOF
+#ifndef __cplusplus
+#define inline $ac_val
+#endif
+_ACEOF
+    ;;
+esac
 
+ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default"
+if test "x$ac_cv_type_off_t" = x""yes; then :
 
-for ac_func in mmap munmap msync
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+
+cat >>confdefs.h <<_ACEOF
+#define off_t long int
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
+fi
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
+ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
+if test "x$ac_cv_type_size_t" = x""yes; then :
 
-#undef $ac_func
+else
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
+cat >>confdefs.h <<_ACEOF
+#define size_t unsigned int
+_ACEOF
 
+fi
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long" >&5
+$as_echo_n "checking for long long... " >&6; }
+if test "${ac_cv_type_long_long+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+long long ll = 1LL; int i = 63;
 int
 main ()
 {
-return $ac_func ();
+long long llmax = (long long) -1;
+     return ll << i | ll >> i | llmax / ll | llmax % ll;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_type_long_long=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
+  ac_cv_type_long_long=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_long_long" >&5
+$as_echo "$ac_cv_type_long_long" >&6; }
+  if test $ac_cv_type_long_long = yes; then
 
-fi
-done
+$as_echo "#define HAVE_LONG_LONG 1" >>confdefs.h
+
+  fi
 
-    { $as_echo "$as_me:$LINENO: checking whether madvise is declared" >&5
-$as_echo_n "checking whether madvise is declared... " >&6; }
-if test "${ac_cv_have_decl_madvise+set}" = set; then
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long double" >&5
+$as_echo_n "checking for long double... " >&6; }
+if test "${gt_cv_c_long_double+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  if test "$GCC" = yes; then
+       gt_cv_c_long_double=yes
+     else
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#ifdef HAVE_SYS_MMAN_H
-                                    # include <sys/mman.h>
-                                    #endif
+
+         /* The Stardent Vistra knows sizeof(long double), but does not support it.  */
+         long double foo = 0.0;
+         /* On Ultrix 4.3 cc, long double is 4 and double is 8.  */
+         int array [2*(sizeof(long double) >= sizeof(double)) - 1];
 
 int
 main ()
 {
-#ifndef madvise
-  (void) madvise;
-#endif
 
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_madvise=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  gt_cv_c_long_double=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_madvise=no
+  gt_cv_c_long_double=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+     fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_madvise" >&5
-$as_echo "$ac_cv_have_decl_madvise" >&6; }
-if test "x$ac_cv_have_decl_madvise" = x""yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_MADVISE 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_MADVISE 0
-_ACEOF
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_long_double" >&5
+$as_echo "$gt_cv_c_long_double" >&6; }
+  if test $gt_cv_c_long_double = yes; then
 
-fi
+$as_echo "#define HAVE_LONG_DOUBLE 1" >>confdefs.h
 
+  fi
 
-    if test "x$ac_cv_have_decl_madvise" = "xyes";
-    then
 
-for ac_func in madvise
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchar_t" >&5
+$as_echo_n "checking for wchar_t... " >&6; }
+if test "${gt_cv_c_wchar_t+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
+#include <stddef.h>
+       wchar_t foo = (wchar_t)'\0';
 int
 main ()
 {
-return $ac_func ();
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
+if ac_fn_c_try_compile "$LINENO"; then :
+  gt_cv_c_wchar_t=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
+  gt_cv_c_wchar_t=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wchar_t" >&5
+$as_echo "$gt_cv_c_wchar_t" >&6; }
+  if test $gt_cv_c_wchar_t = yes; then
 
-fi
-done
+$as_echo "#define HAVE_WCHAR_T 1" >>confdefs.h
 
-    else
+  fi
 
-for ac_func in posix_madvise
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5
+$as_echo_n "checking for wint_t... " >&6; }
+if test "${gt_cv_c_wint_t+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
+#include <wchar.h>
+       wint_t foo = (wchar_t)'\0';
+int
+main ()
+{
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gt_cv_c_wint_t=yes
+else
+  gt_cv_c_wint_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_wint_t" >&5
+$as_echo "$gt_cv_c_wint_t" >&6; }
+  if test $gt_cv_c_wint_t = yes; then
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
+$as_echo "#define HAVE_WINT_T 1" >>confdefs.h
 
-#undef $ac_func
+  fi
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5
+$as_echo_n "checking for inttypes.h... " >&6; }
+if test "${gl_cv_header_inttypes_h+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+#include <inttypes.h>
 int
 main ()
 {
-return $ac_func ();
+uintmax_t i = (uintmax_t) -1;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_header_inttypes_h=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
+  gl_cv_header_inttypes_h=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_inttypes_h" >&5
+$as_echo "$gl_cv_header_inttypes_h" >&6; }
+  if test $gl_cv_header_inttypes_h = yes; then
 
-fi
-done
+cat >>confdefs.h <<_ACEOF
+#define HAVE_INTTYPES_H_WITH_UINTMAX 1
+_ACEOF
 
-      if test "x$ac_cv_func_posix_madvise" != "xyes"; then
-        { $as_echo "$as_me:$LINENO: WARNING: madvise() nor posix_madvise() found." >&5
-$as_echo "$as_me: WARNING: madvise() nor posix_madvise() found." >&2;}
-      fi
-    fi
-  ;;
-  esac
-  if test "x$ac_cv_func_mmap" != "xyes";
-  then
-    { { $as_echo "$as_me:$LINENO: error: --enable-mmap requested but mmap() was not detected" >&5
-$as_echo "$as_me: error: --enable-mmap requested but mmap() was not detected" >&2;}
-   { (exit 1); exit 1; }; }
   fi
-fi
 
-{ $as_echo "$as_me:$LINENO: checking whether posix_fadvise is declared" >&5
-$as_echo_n "checking whether posix_fadvise is declared... " >&6; }
-if test "${ac_cv_have_decl_posix_fadvise+set}" = set; then
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint.h" >&5
+$as_echo_n "checking for stdint.h... " >&6; }
+if test "${gl_cv_header_stdint_h+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#define _XOPEN_SOURCE 600
-#include <fcntl.h>
-
+#include <sys/types.h>
+#include <stdint.h>
 int
 main ()
 {
-#ifndef posix_fadvise
-  (void) posix_fadvise;
-#endif
-
+uintmax_t i = (uintmax_t) -1;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_posix_fadvise=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_header_stdint_h=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_posix_fadvise=no
+  gl_cv_header_stdint_h=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_posix_fadvise" >&5
-$as_echo "$ac_cv_have_decl_posix_fadvise" >&6; }
-if test "x$ac_cv_have_decl_posix_fadvise" = x""yes; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_stdint_h" >&5
+$as_echo "$gl_cv_header_stdint_h" >&6; }
+  if test $gl_cv_header_stdint_h = yes; then
 
 cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_POSIX_FADVISE 1
-_ACEOF
-
-
-else
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_POSIX_FADVISE 0
+#define HAVE_STDINT_H_WITH_UINTMAX 1
 _ACEOF
 
+  fi
 
-fi
 
 
 
-for ac_func in posix_fadvise
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intmax_t" >&5
+$as_echo_n "checking for intmax_t... " >&6; }
+if test "${gt_cv_c_intmax_t+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
 
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
+#include <stddef.h>
+#include <stdlib.h>
+#if HAVE_STDINT_H_WITH_UINTMAX
+#include <stdint.h>
 #endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
+#if HAVE_INTTYPES_H_WITH_UINTMAX
+#include <inttypes.h>
 #endif
 
 int
 main ()
 {
-return $ac_func ();
+intmax_t x = -1;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
+if ac_fn_c_try_compile "$LINENO"; then :
+  gt_cv_c_intmax_t=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
+  gt_cv_c_intmax_t=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_c_intmax_t" >&5
+$as_echo "$gt_cv_c_intmax_t" >&6; }
+  if test $gt_cv_c_intmax_t = yes; then
 
-fi
-done
+$as_echo "#define HAVE_INTMAX_T 1" >>confdefs.h
 
+  fi
 
 
-case $TERM in
-       #   for the most important terminal types we directly know the sequences
-       xterm|xterm*|vt220|vt220*)
-               T_MD=`awk 'BEGIN { printf("%c%c%c%c", 27, 91, 49, 109); }' </dev/null 2>/dev/null`
-               T_ME=`awk 'BEGIN { printf("%c%c%c", 27, 91, 109); }' </dev/null 2>/dev/null`
-       ;;
-       vt100|vt100*|cygwin)
-               T_MD=`awk 'BEGIN { printf("%c%c%c%c%c%c", 27, 91, 49, 109, 0, 0); }' </dev/null 2>/dev/null`
-               T_ME=`awk 'BEGIN { printf("%c%c%c%c%c", 27, 91, 109, 0, 0); }' </dev/null 2>/dev/null`
-       ;;
-       *)
-               T_MD=''
-               T_ME=''
-       ;;
-esac
-  { $as_echo "$as_me:$LINENO: result: " >&5
-$as_echo "" >&6; }
-  { $as_echo "$as_me:$LINENO: result: ${T_MD}Libintl Processing${T_ME}" >&5
-$as_echo "${T_MD}Libintl Processing${T_ME}" >&6; }
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf() supports POSIX/XSI format strings" >&5
+$as_echo_n "checking whether printf() supports POSIX/XSI format strings... " >&6; }
+if test "${gt_cv_func_printf_posix+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
 
+      if test "$cross_compiling" = yes; then :
 
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#if defined __NetBSD__ || defined _MSC_VER || defined __MINGW32__ || defined __CYGWIN__
+  notposix
+#endif
 
-        MKINSTALLDIRS=
-  if test -n "$ac_aux_dir"; then
-    case "$ac_aux_dir" in
-      /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;;
-      *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;;
-    esac
-  fi
-  if test -z "$MKINSTALLDIRS"; then
-    MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
-  fi
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "notposix" >/dev/null 2>&1; then :
+  gt_cv_func_printf_posix="guessing no"
+else
+  gt_cv_func_printf_posix="guessing yes"
+fi
+rm -f conftest*
 
 
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-  { $as_echo "$as_me:$LINENO: checking whether NLS is requested" >&5
-$as_echo_n "checking whether NLS is requested... " >&6; }
-    # Check whether --enable-nls was given.
-if test "${enable_nls+set}" = set; then
-  enableval=$enable_nls; USE_NLS=$enableval
+#include <stdio.h>
+#include <string.h>
+/* The string "%2$d %1$d", with dollar characters protected from the shell's
+   dollar expansion (possibly an autoconf bug).  */
+static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' };
+static char buf[100];
+int main ()
+{
+  sprintf (buf, format, 33, 55);
+  return (strcmp (buf, "55 33") != 0);
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gt_cv_func_printf_posix=yes
 else
-  USE_NLS=yes
+  gt_cv_func_printf_posix=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-  { $as_echo "$as_me:$LINENO: result: $USE_NLS" >&5
-$as_echo "$USE_NLS" >&6; }
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_printf_posix" >&5
+$as_echo "$gt_cv_func_printf_posix" >&6; }
+  case $gt_cv_func_printf_posix in
+    *yes)
 
+$as_echo "#define HAVE_POSIX_PRINTF 1" >>confdefs.h
 
+      ;;
+  esac
 
+# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
+# for constant arguments.  Useless!
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5
+$as_echo_n "checking for working alloca.h... " >&6; }
+if test "${ac_cv_working_alloca_h+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <alloca.h>
+int
+main ()
+{
+char *p = (char *) alloca (2 * sizeof (int));
+                         if (p) return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_working_alloca_h=yes
+else
+  ac_cv_working_alloca_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5
+$as_echo "$ac_cv_working_alloca_h" >&6; }
+if test $ac_cv_working_alloca_h = yes; then
 
+$as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h
 
-# Prepare PATH_SEPARATOR.
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
 fi
 
-# Find out how to test for executable files. Don't use a zero-byte file,
-# as systems may use methods other than mode bits to determine executability.
-cat >conf$$.file <<_ASEOF
-#! /bin/sh
-exit 0
-_ASEOF
-chmod +x conf$$.file
-if test -x conf$$.file >/dev/null 2>&1; then
-  ac_executable_p="test -x"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5
+$as_echo_n "checking for alloca... " >&6; }
+if test "${ac_cv_func_alloca_works+set}" = set; then :
+  $as_echo_n "(cached) " >&6
 else
-  ac_executable_p="test -f"
-fi
-rm -f conf$$.file
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+#else
+# ifdef _MSC_VER
+#  include <malloc.h>
+#  define alloca _alloca
+# else
+#  ifdef HAVE_ALLOCA_H
+#   include <alloca.h>
+#  else
+#   ifdef _AIX
+ #pragma alloca
+#   else
+#    ifndef alloca /* predefined by HP cc +Olibcalls */
+char *alloca ();
+#    endif
+#   endif
+#  endif
+# endif
+#endif
 
-# Extract the first word of "msgfmt", so it can be a program name with args.
-set dummy msgfmt; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MSGFMT+set}" = set; then
-  $as_echo_n "(cached) " >&6
+int
+main ()
+{
+char *p = (char *) alloca (1);
+                                   if (p) return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_func_alloca_works=yes
 else
-  case "$MSGFMT" in
-  [\\/]* | ?:[\\/]*)
-    ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
-    ;;
-  *)
-    ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
-    for ac_dir in $PATH; do
-      IFS="$ac_save_IFS"
-      test -z "$ac_dir" && ac_dir=.
-      for ac_exec_ext in '' $ac_executable_extensions; do
-        if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
-          echo "$as_me: trying $ac_dir/$ac_word..." >&5
-          if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 &&
-     (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
-            ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext"
-            break 2
-          fi
-        fi
-      done
-    done
-    IFS="$ac_save_IFS"
-  test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":"
-    ;;
-esac
+  ac_cv_func_alloca_works=no
 fi
-MSGFMT="$ac_cv_path_MSGFMT"
-if test "$MSGFMT" != ":"; then
-  { $as_echo "$as_me:$LINENO: result: $MSGFMT" >&5
-$as_echo "$MSGFMT" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5
+$as_echo "$ac_cv_func_alloca_works" >&6; }
 
-  # Extract the first word of "gmsgfmt", so it can be a program name with args.
-set dummy gmsgfmt; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_GMSGFMT+set}" = set; then
+if test $ac_cv_func_alloca_works = yes; then
+
+$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h
+
+else
+  # The SVR3 libPW and SVR4 libucb both contain incompatible functions
+# that cause trouble.  Some versions do not even contain alloca or
+# contain a buggy version.  If you still want to use their alloca,
+# use ar to extract alloca.o from them instead of compiling alloca.c.
+
+ALLOCA=\${LIBOBJDIR}alloca.$ac_objext
+
+$as_echo "#define C_ALLOCA 1" >>confdefs.h
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5
+$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; }
+if test "${ac_cv_os_cray+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  case $GMSGFMT in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined CRAY && ! defined CRAY2
+webecray
+#else
+wenotbecray
+#endif
 
-  test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
-  ;;
-esac
-fi
-GMSGFMT=$ac_cv_path_GMSGFMT
-if test -n "$GMSGFMT"; then
-  { $as_echo "$as_me:$LINENO: result: $GMSGFMT" >&5
-$as_echo "$GMSGFMT" >&6; }
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "webecray" >/dev/null 2>&1; then :
+  ac_cv_os_cray=yes
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
+  ac_cv_os_cray=no
 fi
+rm -f conftest*
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5
+$as_echo "$ac_cv_os_cray" >&6; }
+if test $ac_cv_os_cray = yes; then
+  for ac_func in _getb67 GETB67 getb67; do
+    as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+eval as_val=\$$as_ac_var
+   if test "x$as_val" = x""yes; then :
 
+cat >>confdefs.h <<_ACEOF
+#define CRAY_STACKSEG_END $ac_func
+_ACEOF
 
+    break
+fi
 
-# Prepare PATH_SEPARATOR.
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
+  done
 fi
 
-# Find out how to test for executable files. Don't use a zero-byte file,
-# as systems may use methods other than mode bits to determine executability.
-cat >conf$$.file <<_ASEOF
-#! /bin/sh
-exit 0
-_ASEOF
-chmod +x conf$$.file
-if test -x conf$$.file >/dev/null 2>&1; then
-  ac_executable_p="test -x"
-else
-  ac_executable_p="test -f"
-fi
-rm -f conf$$.file
-
-# Extract the first word of "xgettext", so it can be a program name with args.
-set dummy xgettext; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_XGETTEXT+set}" = set; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5
+$as_echo_n "checking stack direction for C alloca... " >&6; }
+if test "${ac_cv_c_stack_direction+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  case "$XGETTEXT" in
-  [\\/]* | ?:[\\/]*)
-    ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
-    ;;
-  *)
-    ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
-    for ac_dir in $PATH; do
-      IFS="$ac_save_IFS"
-      test -z "$ac_dir" && ac_dir=.
-      for ac_exec_ext in '' $ac_executable_extensions; do
-        if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
-          echo "$as_me: trying $ac_dir/$ac_word..." >&5
-          if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 &&
-     (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
-            ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext"
-            break 2
-          fi
-        fi
-      done
-    done
-    IFS="$ac_save_IFS"
-  test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
-    ;;
-esac
-fi
-XGETTEXT="$ac_cv_path_XGETTEXT"
-if test "$XGETTEXT" != ":"; then
-  { $as_echo "$as_me:$LINENO: result: $XGETTEXT" >&5
-$as_echo "$XGETTEXT" >&6; }
+  if test "$cross_compiling" = yes; then :
+  ac_cv_c_stack_direction=0
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-    rm -f messages.po
-
-
-# Prepare PATH_SEPARATOR.
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_includes_default
+int
+find_stack_direction ()
+{
+  static char *addr = 0;
+  auto char dummy;
+  if (addr == 0)
+    {
+      addr = &dummy;
+      return find_stack_direction ();
+    }
   else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-# Find out how to test for executable files. Don't use a zero-byte file,
-# as systems may use methods other than mode bits to determine executability.
-cat >conf$$.file <<_ASEOF
-#! /bin/sh
-exit 0
-_ASEOF
-chmod +x conf$$.file
-if test -x conf$$.file >/dev/null 2>&1; then
-  ac_executable_p="test -x"
-else
-  ac_executable_p="test -f"
-fi
-rm -f conf$$.file
+    return (&dummy > addr) ? 1 : -1;
+}
 
-# Extract the first word of "msgmerge", so it can be a program name with args.
-set dummy msgmerge; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MSGMERGE+set}" = set; then
-  $as_echo_n "(cached) " >&6
+int
+main ()
+{
+  return find_stack_direction () < 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  ac_cv_c_stack_direction=1
 else
-  case "$MSGMERGE" in
-  [\\/]* | ?:[\\/]*)
-    ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path.
-    ;;
-  *)
-    ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
-    for ac_dir in $PATH; do
-      IFS="$ac_save_IFS"
-      test -z "$ac_dir" && ac_dir=.
-      for ac_exec_ext in '' $ac_executable_extensions; do
-        if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
-          echo "$as_me: trying $ac_dir/$ac_word..." >&5
-          if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then
-            ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext"
-            break 2
-          fi
-        fi
-      done
-    done
-    IFS="$ac_save_IFS"
-  test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":"
-    ;;
-esac
+  ac_cv_c_stack_direction=-1
 fi
-MSGMERGE="$ac_cv_path_MSGMERGE"
-if test "$MSGMERGE" != ":"; then
-  { $as_echo "$as_me:$LINENO: result: $MSGMERGE" >&5
-$as_echo "$MSGMERGE" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5
+$as_echo "$ac_cv_c_stack_direction" >&6; }
+cat >>confdefs.h <<_ACEOF
+#define STACK_DIRECTION $ac_cv_c_stack_direction
+_ACEOF
 
-      if test "$GMSGFMT" != ":"; then
-            if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
-       (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
-      : ;
-    else
-      GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
-      { $as_echo "$as_me:$LINENO: result: found $GMSGFMT program is not GNU msgfmt; ignore it" >&5
-$as_echo "found $GMSGFMT program is not GNU msgfmt; ignore it" >&6; }
-      GMSGFMT=":"
-    fi
-  fi
-
-      if test "$XGETTEXT" != ":"; then
-            if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
-       (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
-      : ;
-    else
-      { $as_echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5
-$as_echo "found xgettext program is not GNU xgettext; ignore it" >&6; }
-      XGETTEXT=":"
-    fi
-        rm -f messages.po
-  fi
-
-  ac_config_commands="$ac_config_commands default-1"
 
+fi
 
 
-    { $as_echo "$as_me:$LINENO: checking whether we are using the GNU C Library 2 or newer" >&5
-$as_echo_n "checking whether we are using the GNU C Library 2 or newer... " >&6; }
-if test "${ac_cv_gnu_library_2+set}" = set; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library 2.1 or newer" >&5
+$as_echo_n "checking whether we are using the GNU C Library 2.1 or newer... " >&6; }
+if test "${ac_cv_gnu_library_2_1+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <features.h>
 #ifdef __GNU_LIBRARY__
- #if (__GLIBC__ >= 2)
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
   Lucky GNU user
  #endif
 #endif
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Lucky GNU user" >/dev/null 2>&1; then
-  ac_cv_gnu_library_2=yes
+  $EGREP "Lucky GNU user" >/dev/null 2>&1; then :
+  ac_cv_gnu_library_2_1=yes
 else
-  ac_cv_gnu_library_2=no
+  ac_cv_gnu_library_2_1=no
 fi
 rm -f conftest*
 
 
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_gnu_library_2" >&5
-$as_echo "$ac_cv_gnu_library_2" >&6; }
-
-    GLIBC2="$ac_cv_gnu_library_2"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gnu_library_2_1" >&5
+$as_echo "$ac_cv_gnu_library_2_1" >&6; }
 
+    GLIBC21="$ac_cv_gnu_library_2_1"
 
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$RANLIB"; then
-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
 
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
-  { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
 
 
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
-  ac_ct_RANLIB=$RANLIB
-  # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether integer division by zero raises SIGFPE" >&5
+$as_echo_n "checking whether integer division by zero raises SIGFPE... " >&6; }
+if test "${gt_cv_int_divbyzero_sigfpe+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  if test -n "$ac_ct_RANLIB"; then
-  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_RANLIB="ranlib"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
 
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
-$as_echo "$ac_ct_RANLIB" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
+      if test "$cross_compiling" = yes; then :
+
+          # Guess based on the CPU.
+          case "$host_cpu" in
+            alpha* | i3456786 | m68k | s390*)
+              gt_cv_int_divbyzero_sigfpe="guessing yes";;
+            *)
+              gt_cv_int_divbyzero_sigfpe="guessing no";;
+          esac
 
-  if test "x$ac_ct_RANLIB" = x; then
-    RANLIB=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    RANLIB=$ac_ct_RANLIB
-  fi
 else
-  RANLIB="$ac_cv_prog_RANLIB"
-fi
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+#include <stdlib.h>
+#include <signal.h>
 
-        { $as_echo "$as_me:$LINENO: checking for strerror in -lcposix" >&5
-$as_echo_n "checking for strerror in -lcposix... " >&6; }
-if test "${ac_cv_lib_cposix_strerror+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lcposix  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
+static void
 #ifdef __cplusplus
-extern "C"
+sigfpe_handler (int sig)
+#else
+sigfpe_handler (sig) int sig;
 #endif
-char strerror ();
-int
-main ()
 {
-return strerror ();
-  ;
-  return 0;
+  /* Exit with code 0 if SIGFPE, with code 1 if any other signal.  */
+  exit (sig != SIGFPE);
+}
+
+int x = 1;
+int y = 0;
+int z;
+int nan;
+
+int main ()
+{
+  signal (SIGFPE, sigfpe_handler);
+/* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP.  */
+#if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP)
+  signal (SIGTRAP, sigfpe_handler);
+#endif
+/* Linux/SPARC yields signal SIGILL.  */
+#if defined (__sparc__) && defined (__linux__)
+  signal (SIGILL, sigfpe_handler);
+#endif
+
+  z = x / y;
+  nan = y / y;
+  exit (1);
 }
+
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_lib_cposix_strerror=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  gt_cv_int_divbyzero_sigfpe=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_cposix_strerror=no
+  gt_cv_int_divbyzero_sigfpe=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_cposix_strerror" >&5
-$as_echo "$ac_cv_lib_cposix_strerror" >&6; }
-if test "x$ac_cv_lib_cposix_strerror" = x""yes; then
-  LIBS="$LIBS -lcposix"
+
+
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_int_divbyzero_sigfpe" >&5
+$as_echo "$gt_cv_int_divbyzero_sigfpe" >&6; }
+  case "$gt_cv_int_divbyzero_sigfpe" in
+    *yes) value=1;;
+    *) value=0;;
+  esac
 
+cat >>confdefs.h <<_ACEOF
+#define INTDIV0_RAISES_SIGFPE $value
+_ACEOF
 
 
 
-  { $as_echo "$as_me:$LINENO: checking for signed" >&5
-$as_echo_n "checking for signed... " >&6; }
-if test "${bh_cv_c_signed+set}" = set; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsigned long long" >&5
+$as_echo_n "checking for unsigned long long... " >&6; }
+if test "${ac_cv_type_unsigned_long_long+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+unsigned long long ull = 1ULL; int i = 63;
 int
 main ()
 {
-signed char x;
+unsigned long long ullmax = (unsigned long long) -1;
+     return ull << i | ull >> i | ullmax / ull | ullmax % ull;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  bh_cv_c_signed=yes
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_type_unsigned_long_long=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       bh_cv_c_signed=no
+  ac_cv_type_unsigned_long_long=no
 fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $bh_cv_c_signed" >&5
-$as_echo "$bh_cv_c_signed" >&6; }
-  if test $bh_cv_c_signed = no; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_unsigned_long_long" >&5
+$as_echo "$ac_cv_type_unsigned_long_long" >&6; }
+  if test $ac_cv_type_unsigned_long_long = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define signed /**/
-_ACEOF
+$as_echo "#define HAVE_UNSIGNED_LONG_LONG 1" >>confdefs.h
 
   fi
 
-{ $as_echo "$as_me:$LINENO: checking for inline" >&5
-$as_echo_n "checking for inline... " >&6; }
-if test "${ac_cv_c_inline+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_c_inline=no
-for ac_kw in inline __inline__ __inline; do
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifndef __cplusplus
-typedef int foo_t;
-static $ac_kw foo_t static_foo () {return 0; }
-$ac_kw foo_t foo () {return 0; }
-#endif
 
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_c_inline=$ac_kw
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
 
-fi
+  if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  test "$ac_cv_c_inline" != no && break
-done
+    test $ac_cv_type_unsigned_long_long = yes \
+      && ac_type='unsigned long long' \
+      || ac_type='unsigned long'
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5
-$as_echo "$ac_cv_c_inline" >&6; }
+cat >>confdefs.h <<_ACEOF
+#define uintmax_t $ac_type
+_ACEOF
 
+  else
+
+$as_echo "#define HAVE_UINTMAX_T 1" >>confdefs.h
+
+  fi
 
-case $ac_cv_c_inline in
-  inline | yes) ;;
-  *)
-    case $ac_cv_c_inline in
-      no) ac_val=;;
-      *) ac_val=$ac_cv_c_inline;;
-    esac
-    cat >>confdefs.h <<_ACEOF
-#ifndef __cplusplus
-#define inline $ac_val
-#endif
-_ACEOF
-    ;;
-esac
 
-{ $as_echo "$as_me:$LINENO: checking for off_t" >&5
-$as_echo_n "checking for off_t... " >&6; }
-if test "${ac_cv_type_off_t+set}" = set; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5
+$as_echo_n "checking for inttypes.h... " >&6; }
+if test "${gt_cv_header_inttypes_h+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  ac_cv_type_off_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof (off_t))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+#include <sys/types.h>
+#include <inttypes.h>
 int
 main ()
 {
-if (sizeof ((off_t)))
-         return 0;
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
+if ac_fn_c_try_compile "$LINENO"; then :
+  gt_cv_header_inttypes_h=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_type_off_t=yes
+  gt_cv_header_inttypes_h=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5
-$as_echo "$ac_cv_type_off_t" >&6; }
-if test "x$ac_cv_type_off_t" = x""yes; then
-  :
-else
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_header_inttypes_h" >&5
+$as_echo "$gt_cv_header_inttypes_h" >&6; }
+  if test $gt_cv_header_inttypes_h = yes; then
 
 cat >>confdefs.h <<_ACEOF
-#define off_t long int
+#define HAVE_INTTYPES_H 1
 _ACEOF
 
-fi
+  fi
+
+
 
-{ $as_echo "$as_me:$LINENO: checking for size_t" >&5
-$as_echo_n "checking for size_t... " >&6; }
-if test "${ac_cv_type_size_t+set}" = set; then
+  if test $gt_cv_header_inttypes_h = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the inttypes.h PRIxNN macros are broken" >&5
+$as_echo_n "checking whether the inttypes.h PRIxNN macros are broken... " >&6; }
+if test "${gt_cv_inttypes_pri_broken+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  ac_cv_type_size_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof (size_t))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
+#include <inttypes.h>
+#ifdef PRId32
+char *p = PRId32;
+#endif
+
 int
 main ()
 {
-if (sizeof ((size_t)))
-         return 0;
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
+if ac_fn_c_try_compile "$LINENO"; then :
+  gt_cv_inttypes_pri_broken=no
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_type_size_t=yes
+  gt_cv_inttypes_pri_broken=yes
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5
-$as_echo "$ac_cv_type_size_t" >&6; }
-if test "x$ac_cv_type_size_t" = x""yes; then
-  :
-else
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_inttypes_pri_broken" >&5
+$as_echo "$gt_cv_inttypes_pri_broken" >&6; }
+  fi
+  if test "$gt_cv_inttypes_pri_broken" = yes; then
 
 cat >>confdefs.h <<_ACEOF
-#define size_t unsigned int
+#define PRI_MACROS_BROKEN 1
 _ACEOF
 
-fi
+  fi
 
 
-  { $as_echo "$as_me:$LINENO: checking for long long" >&5
-$as_echo_n "checking for long long... " >&6; }
-if test "${ac_cv_type_long_long+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-long long ll = 1LL; int i = 63;
-int
-main ()
-{
-long long llmax = (long long) -1;
-     return ll << i | ll >> i | llmax / ll | llmax % ll;
-  ;
-  return 0;
-}
+  for ac_header in stdint.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdint_h" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_STDINT_H 1
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_type_long_long=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_cv_type_long_long=no
 fi
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_long_long" >&5
-$as_echo "$ac_cv_type_long_long" >&6; }
-  if test $ac_cv_type_long_long = yes; then
+done
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_LONG_LONG 1
-_ACEOF
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SIZE_MAX" >&5
+$as_echo_n "checking for SIZE_MAX... " >&6; }
+  result=
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-  fi
+#include <limits.h>
+#if HAVE_STDINT_H
+#include <stdint.h>
+#endif
+#ifdef SIZE_MAX
+Found it
+#endif
 
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "Found it" >/dev/null 2>&1; then :
+  result=yes
+fi
+rm -f conftest*
+
+  if test -z "$result"; then
+                    if ac_fn_c_compute_int "$LINENO" "~(size_t)0 / 10" "res_hi"        "#include <stddef.h>"; then :
 
-  { $as_echo "$as_me:$LINENO: checking for long double" >&5
-$as_echo_n "checking for long double... " >&6; }
-if test "${gt_cv_c_long_double+set}" = set; then
-  $as_echo_n "(cached) " >&6
 else
-  if test "$GCC" = yes; then
-       gt_cv_c_long_double=yes
-     else
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
+  result=?
+fi
 
-         /* The Stardent Vistra knows sizeof(long double), but does not support it.  */
-         long double foo = 0.0;
-         /* On Ultrix 4.3 cc, long double is 4 and double is 8.  */
-         int array [2*(sizeof(long double) >= sizeof(double)) - 1];
 
-int
-main ()
-{
+    if ac_fn_c_compute_int "$LINENO" "~(size_t)0 % 10" "res_lo"        "#include <stddef.h>"; then :
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gt_cv_c_long_double=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gt_cv_c_long_double=no
+  result=?
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-     fi
-fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_c_long_double" >&5
-$as_echo "$gt_cv_c_long_double" >&6; }
-  if test $gt_cv_c_long_double = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_LONG_DOUBLE 1
-_ACEOF
+    if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) <= sizeof (unsigned int)" "fits_in_uint"        "#include <stddef.h>"; then :
 
-  fi
+else
+  result=?
+fi
 
 
-  { $as_echo "$as_me:$LINENO: checking for wchar_t" >&5
-$as_echo_n "checking for wchar_t... " >&6; }
-if test "${gt_cv_c_wchar_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+    if test "$fits_in_uint" = 1; then
+                  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stddef.h>
-       wchar_t foo = (wchar_t)'\0';
+        extern size_t foo;
+        extern unsigned long foo;
+
 int
 main ()
 {
@@ -17723,2897 +14759,1514 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gt_cv_c_wchar_t=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gt_cv_c_wchar_t=no
+if ac_fn_c_try_compile "$LINENO"; then :
+  fits_in_uint=0
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_c_wchar_t" >&5
-$as_echo "$gt_cv_c_wchar_t" >&6; }
-  if test $gt_cv_c_wchar_t = yes; then
+    fi
+    if test -z "$result"; then
+      if test "$fits_in_uint" = 1; then
+        result="$res_hi$res_lo"U
+      else
+        result="$res_hi$res_lo"UL
+      fi
+    else
+            result='~(size_t)0'
+    fi
+  fi
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result" >&5
+$as_echo "$result" >&6; }
+  if test "$result" != yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_WCHAR_T 1
+cat >>confdefs.h <<_ACEOF
+#define SIZE_MAX $result
 _ACEOF
 
   fi
 
 
-  { $as_echo "$as_me:$LINENO: checking for wint_t" >&5
-$as_echo_n "checking for wint_t... " >&6; }
-if test "${gt_cv_c_wint_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <wchar.h>
-       wint_t foo = (wchar_t)'\0';
-int
-main ()
-{
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gt_cv_c_wint_t=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       gt_cv_c_wint_t=no
-fi
+  for ac_header in stdint.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdint_h" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_STDINT_H 1
+_ACEOF
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_c_wint_t" >&5
-$as_echo "$gt_cv_c_wint_t" >&6; }
-  if test $gt_cv_c_wint_t = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_WINT_T 1
-_ACEOF
+done
 
-  fi
 
 
-  { $as_echo "$as_me:$LINENO: checking for inttypes.h" >&5
-$as_echo_n "checking for inttypes.h... " >&6; }
-if test "${gl_cv_header_inttypes_h+set}" = set; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5
+$as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; }
+if test "${gt_cv_func_CFPreferencesCopyAppValue+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  gt_save_CPPFLAGS="$CPPFLAGS"
+     CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers"
+     gt_save_LIBS="$LIBS"
+     LIBS="$LIBS -framework CoreFoundation"
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <sys/types.h>
-#include <inttypes.h>
+#include <CFPreferences.h>
 int
 main ()
 {
-uintmax_t i = (uintmax_t) -1;
+CFPreferencesCopyAppValue(NULL, NULL)
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_header_inttypes_h=yes
+if ac_fn_c_try_link "$LINENO"; then :
+  gt_cv_func_CFPreferencesCopyAppValue=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_header_inttypes_h=no
+  gt_cv_func_CFPreferencesCopyAppValue=no
 fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+     CPPFLAGS="$gt_save_CPPFLAGS"
+     LIBS="$gt_save_LIBS"
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_header_inttypes_h" >&5
-$as_echo "$gl_cv_header_inttypes_h" >&6; }
-  if test $gl_cv_header_inttypes_h = yes; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5
+$as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; }
+  if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_INTTYPES_H_WITH_UINTMAX 1
-_ACEOF
+$as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h
 
   fi
-
-
-  { $as_echo "$as_me:$LINENO: checking for stdint.h" >&5
-$as_echo_n "checking for stdint.h... " >&6; }
-if test "${gl_cv_header_stdint_h+set}" = set; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5
+$as_echo_n "checking for CFLocaleCopyCurrent... " >&6; }
+if test "${gt_cv_func_CFLocaleCopyCurrent+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  gt_save_CPPFLAGS="$CPPFLAGS"
+     CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers"
+     gt_save_LIBS="$LIBS"
+     LIBS="$LIBS -framework CoreFoundation"
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <sys/types.h>
-#include <stdint.h>
+#include <CFLocale.h>
 int
 main ()
 {
-uintmax_t i = (uintmax_t) -1;
+CFLocaleCopyCurrent();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gl_cv_header_stdint_h=yes
+if ac_fn_c_try_link "$LINENO"; then :
+  gt_cv_func_CFLocaleCopyCurrent=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gl_cv_header_stdint_h=no
+  gt_cv_func_CFLocaleCopyCurrent=no
 fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+     CPPFLAGS="$gt_save_CPPFLAGS"
+     LIBS="$gt_save_LIBS"
 fi
-{ $as_echo "$as_me:$LINENO: result: $gl_cv_header_stdint_h" >&5
-$as_echo "$gl_cv_header_stdint_h" >&6; }
-  if test $gl_cv_header_stdint_h = yes; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5
+$as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; }
+  if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
 
-cat >>confdefs.h <<_ACEOF
-#define HAVE_STDINT_H_WITH_UINTMAX 1
-_ACEOF
+$as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h
 
   fi
+  INTL_MACOSX_LIBS=
+  if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+    INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
+  fi
 
 
 
+      if test "X$prefix" = "XNONE"; then
+    acl_final_prefix="$ac_default_prefix"
+  else
+    acl_final_prefix="$prefix"
+  fi
+  if test "X$exec_prefix" = "XNONE"; then
+    acl_final_exec_prefix='${prefix}'
+  else
+    acl_final_exec_prefix="$exec_prefix"
+  fi
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
+  prefix="$acl_save_prefix"
 
-  { $as_echo "$as_me:$LINENO: checking for intmax_t" >&5
-$as_echo_n "checking for intmax_t... " >&6; }
-if test "${gt_cv_c_intmax_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <stddef.h>
-#include <stdlib.h>
-#if HAVE_STDINT_H_WITH_UINTMAX
-#include <stdint.h>
-#endif
-#if HAVE_INTTYPES_H_WITH_UINTMAX
-#include <inttypes.h>
-#endif
 
-int
-main ()
-{
-intmax_t x = -1;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gt_cv_c_intmax_t=yes
+# Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then :
+  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gt_cv_c_intmax_t=no
+  with_gnu_ld=no
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by GCC" >&5
+$as_echo_n "checking for ld used by GCC... " >&6; }
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [\\/]* | [A-Za-z]:[\\/]*)
+      re_direlt='/[^/][^/]*/\.\./'
+      # Canonicalize the path of ld
+      ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+       ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if test "${acl_cv_path_LD+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$LD"; then
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      acl_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some GNU ld's only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
+      *GNU* | *'with BFD'*)
+       test "$with_gnu_ld" != no && break ;;
+      *)
+       test "$with_gnu_ld" != yes && break ;;
+      esac
+    fi
+  done
+  IFS="$ac_save_ifs"
+else
+  acl_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_c_intmax_t" >&5
-$as_echo "$gt_cv_c_intmax_t" >&6; }
-  if test $gt_cv_c_intmax_t = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_INTMAX_T 1
-_ACEOF
+LD="$acl_cv_path_LD"
+if test -n "$LD"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if test "${acl_cv_prog_gnu_ld+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  # I'd rather use --version here, but apparently some GNU ld's only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  acl_cv_prog_gnu_ld=yes ;;
+*)
+  acl_cv_prog_gnu_ld=no ;;
+esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_prog_gnu_ld" >&5
+$as_echo "$acl_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$acl_cv_prog_gnu_ld
 
-  fi
 
 
 
-  { $as_echo "$as_me:$LINENO: checking whether printf() supports POSIX/XSI format strings" >&5
-$as_echo_n "checking whether printf() supports POSIX/XSI format strings... " >&6; }
-if test "${gt_cv_func_printf_posix+set}" = set; then
+                                                { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5
+$as_echo_n "checking for shared library run path origin... " >&6; }
+if test "${acl_cv_rpath+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
 
-      if test "$cross_compiling" = yes; then
-
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#if defined __NetBSD__ || defined _MSC_VER || defined __MINGW32__ || defined __CYGWIN__
-  notposix
-#endif
+    CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
+    ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
+    . ./conftest.sh
+    rm -f ./conftest.sh
+    acl_cv_rpath=done
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "notposix" >/dev/null 2>&1; then
-  gt_cv_func_printf_posix="guessing no"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5
+$as_echo "$acl_cv_rpath" >&6; }
+  wl="$acl_cv_wl"
+  libext="$acl_cv_libext"
+  shlibext="$acl_cv_shlibext"
+  hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
+  hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
+  hardcode_direct="$acl_cv_hardcode_direct"
+  hardcode_minus_L="$acl_cv_hardcode_minus_L"
+    # Check whether --enable-rpath was given.
+if test "${enable_rpath+set}" = set; then :
+  enableval=$enable_rpath; :
 else
-  gt_cv_func_printf_posix="guessing yes"
+  enable_rpath=yes
 fi
-rm -f conftest*
 
 
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-#include <stdio.h>
-#include <string.h>
-/* The string "%2$d %1$d", with dollar characters protected from the shell's
-   dollar expansion (possibly an autoconf bug).  */
-static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' };
-static char buf[100];
-int main ()
-{
-  sprintf (buf, format, 33, 55);
-  return (strcmp (buf, "55 33") != 0);
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gt_cv_func_printf_posix=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-( exit $ac_status )
-gt_cv_func_printf_posix=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
 
 
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_printf_posix" >&5
-$as_echo "$gt_cv_func_printf_posix" >&6; }
-  case $gt_cv_func_printf_posix in
-    *yes)
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_POSIX_PRINTF 1
-_ACEOF
+    use_additional=yes
 
-      ;;
-  esac
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
 
-# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
-# for constant arguments.  Useless!
-{ $as_echo "$as_me:$LINENO: checking for working alloca.h" >&5
-$as_echo_n "checking for working alloca.h... " >&6; }
-if test "${ac_cv_working_alloca_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <alloca.h>
-int
-main ()
-{
-char *p = (char *) alloca (2 * sizeof (int));
-                         if (p) return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_working_alloca_h=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+    eval additional_includedir=\"$includedir\"
+    eval additional_libdir=\"$libdir\"
 
-       ac_cv_working_alloca_h=no
-fi
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_working_alloca_h" >&5
-$as_echo "$ac_cv_working_alloca_h" >&6; }
-if test $ac_cv_working_alloca_h = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ALLOCA_H 1
-_ACEOF
+# Check whether --with-libiconv-prefix was given.
+if test "${with_libiconv_prefix+set}" = set; then :
+  withval=$with_libiconv_prefix;
+    if test "X$withval" = "Xno"; then
+      use_additional=no
+    else
+      if test "X$withval" = "X"; then
 
-fi
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
 
-{ $as_echo "$as_me:$LINENO: checking for alloca" >&5
-$as_echo_n "checking for alloca... " >&6; }
-if test "${ac_cv_func_alloca_works+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#ifdef __GNUC__
-# define alloca __builtin_alloca
-#else
-# ifdef _MSC_VER
-#  include <malloc.h>
-#  define alloca _alloca
-# else
-#  ifdef HAVE_ALLOCA_H
-#   include <alloca.h>
-#  else
-#   ifdef _AIX
- #pragma alloca
-#   else
-#    ifndef alloca /* predefined by HP cc +Olibcalls */
-char *alloca ();
-#    endif
-#   endif
-#  endif
-# endif
-#endif
+          eval additional_includedir=\"$includedir\"
+          eval additional_libdir=\"$libdir\"
 
-int
-main ()
-{
-char *p = (char *) alloca (1);
-                                   if (p) return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_func_alloca_works=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-       ac_cv_func_alloca_works=no
-fi
+      else
+        additional_includedir="$withval/include"
+        additional_libdir="$withval/lib"
+      fi
+    fi
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_alloca_works" >&5
-$as_echo "$ac_cv_func_alloca_works" >&6; }
-
-if test $ac_cv_func_alloca_works = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ALLOCA 1
-_ACEOF
-
-else
-  # The SVR3 libPW and SVR4 libucb both contain incompatible functions
-# that cause trouble.  Some versions do not even contain alloca or
-# contain a buggy version.  If you still want to use their alloca,
-# use ar to extract alloca.o from them instead of compiling alloca.c.
-
-ALLOCA=\${LIBOBJDIR}alloca.$ac_objext
 
-cat >>confdefs.h <<\_ACEOF
-#define C_ALLOCA 1
-_ACEOF
+      LIBICONV=
+  LTLIBICONV=
+  INCICONV=
+  rpathdirs=
+  ltrpathdirs=
+  names_already_handled=
+  names_next_round='iconv '
+  while test -n "$names_next_round"; do
+    names_this_round="$names_next_round"
+    names_next_round=
+    for name in $names_this_round; do
+      already_handled=
+      for n in $names_already_handled; do
+        if test "$n" = "$name"; then
+          already_handled=yes
+          break
+        fi
+      done
+      if test -z "$already_handled"; then
+        names_already_handled="$names_already_handled $name"
+                        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
+        eval value=\"\$HAVE_LIB$uppername\"
+        if test -n "$value"; then
+          if test "$value" = yes; then
+            eval value=\"\$LIB$uppername\"
+            test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value"
+            eval value=\"\$LTLIB$uppername\"
+            test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value"
+          else
+                                    :
+          fi
+        else
+                              found_dir=
+          found_la=
+          found_so=
+          found_a=
+          if test $use_additional = yes; then
+            if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
+              found_dir="$additional_libdir"
+              found_so="$additional_libdir/lib$name.$shlibext"
+              if test -f "$additional_libdir/lib$name.la"; then
+                found_la="$additional_libdir/lib$name.la"
+              fi
+            else
+              if test -f "$additional_libdir/lib$name.$libext"; then
+                found_dir="$additional_libdir"
+                found_a="$additional_libdir/lib$name.$libext"
+                if test -f "$additional_libdir/lib$name.la"; then
+                  found_la="$additional_libdir/lib$name.la"
+                fi
+              fi
+            fi
+          fi
+          if test "X$found_dir" = "X"; then
+            for x in $LDFLAGS $LTLIBICONV; do
 
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-{ $as_echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5
-$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; }
-if test "${ac_cv_os_cray+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#if defined CRAY && ! defined CRAY2
-webecray
-#else
-wenotbecray
-#endif
+              case "$x" in
+                -L*)
+                  dir=`echo "X$x" | sed -e 's/^X-L//'`
+                  if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
+                    found_dir="$dir"
+                    found_so="$dir/lib$name.$shlibext"
+                    if test -f "$dir/lib$name.la"; then
+                      found_la="$dir/lib$name.la"
+                    fi
+                  else
+                    if test -f "$dir/lib$name.$libext"; then
+                      found_dir="$dir"
+                      found_a="$dir/lib$name.$libext"
+                      if test -f "$dir/lib$name.la"; then
+                        found_la="$dir/lib$name.la"
+                      fi
+                    fi
+                  fi
+                  ;;
+              esac
+              if test "X$found_dir" != "X"; then
+                break
+              fi
+            done
+          fi
+          if test "X$found_dir" != "X"; then
+                        LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name"
+            if test "X$found_so" != "X"; then
+                                                        if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
+                                LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+              else
+                                                                                haveit=
+                for x in $ltrpathdirs; do
+                  if test "X$x" = "X$found_dir"; then
+                    haveit=yes
+                    break
+                  fi
+                done
+                if test -z "$haveit"; then
+                  ltrpathdirs="$ltrpathdirs $found_dir"
+                fi
+                                if test "$hardcode_direct" = yes; then
+                                                      LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+                else
+                  if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
+                                                            LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+                                                            haveit=
+                    for x in $rpathdirs; do
+                      if test "X$x" = "X$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      rpathdirs="$rpathdirs $found_dir"
+                    fi
+                  else
+                                                                                haveit=
+                    for x in $LDFLAGS $LIBICONV; do
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "webecray" >/dev/null 2>&1; then
-  ac_cv_os_cray=yes
-else
-  ac_cv_os_cray=no
-fi
-rm -f conftest*
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5
-$as_echo "$ac_cv_os_cray" >&6; }
-if test $ac_cv_os_cray = yes; then
-  for ac_func in _getb67 GETB67 getb67; do
-    as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
+                      if test "X$x" = "X-L$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir"
+                    fi
+                    if test "$hardcode_minus_L" != no; then
+                                                                                        LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+                    else
+                                                                                                                                                                                LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
+                    fi
+                  fi
+                fi
+              fi
+            else
+              if test "X$found_a" != "X"; then
+                                LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a"
+              else
+                                                LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name"
+              fi
+            fi
+                        additional_includedir=
+            case "$found_dir" in
+              */lib | */lib/)
+                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
+                additional_includedir="$basedir/include"
+                ;;
+            esac
+            if test "X$additional_includedir" != "X"; then
+                                                                                                                if test "X$additional_includedir" != "X/usr/include"; then
+                haveit=
+                if test "X$additional_includedir" = "X/usr/local/include"; then
+                  if test -n "$GCC"; then
+                    case $host_os in
+                      linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+                    esac
+                  fi
+                fi
+                if test -z "$haveit"; then
+                  for x in $CPPFLAGS $INCICONV; do
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
+                    if test "X$x" = "X-I$additional_includedir"; then
+                      haveit=yes
+                      break
+                    fi
+                  done
+                  if test -z "$haveit"; then
+                    if test -d "$additional_includedir"; then
+                                            INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir"
+                    fi
+                  fi
+                fi
+              fi
+            fi
+                        if test -n "$found_la"; then
+                                                        save_libdir="$libdir"
+              case "$found_la" in
+                */* | *\\*) . "$found_la" ;;
+                *) . "./$found_la" ;;
+              esac
+              libdir="$save_libdir"
+                            for dep in $dependency_libs; do
+                case "$dep" in
+                  -L*)
+                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+                                                                                                                                                                if test "X$additional_libdir" != "X/usr/lib"; then
+                      haveit=
+                      if test "X$additional_libdir" = "X/usr/local/lib"; then
+                        if test -n "$GCC"; then
+                          case $host_os in
+                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+                          esac
+                        fi
+                      fi
+                      if test -z "$haveit"; then
+                        haveit=
+                        for x in $LDFLAGS $LIBICONV; do
 
-#undef $ac_func
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                                                        LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir"
+                          fi
+                        fi
+                        haveit=
+                        for x in $LDFLAGS $LTLIBICONV; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                                                        LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir"
+                          fi
+                        fi
+                      fi
+                    fi
+                    ;;
+                  -R*)
+                    dir=`echo "X$dep" | sed -e 's/^X-R//'`
+                    if test "$enable_rpath" != no; then
+                                                                  haveit=
+                      for x in $rpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        rpathdirs="$rpathdirs $dir"
+                      fi
+                                                                  haveit=
+                      for x in $ltrpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        ltrpathdirs="$ltrpathdirs $dir"
+                      fi
+                    fi
+                    ;;
+                  -l*)
+                                        names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+                    ;;
+                  *.la)
+                                                                                names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+                    ;;
+                  *)
+                                        LIBICONV="${LIBICONV}${LIBICONV:+ }$dep"
+                    LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep"
+                    ;;
+                esac
+              done
+            fi
+          else
+                                                            LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
+            LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name"
+          fi
+        fi
+      fi
+    done
+  done
+  if test "X$rpathdirs" != "X"; then
+    if test -n "$hardcode_libdir_separator"; then
+                        alldirs=
+      for found_dir in $rpathdirs; do
+        alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
+      done
+            acl_save_libdir="$libdir"
+      libdir="$alldirs"
+      eval flag=\"$hardcode_libdir_flag_spec\"
+      libdir="$acl_save_libdir"
+      LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
+    else
+            for found_dir in $rpathdirs; do
+        acl_save_libdir="$libdir"
+        libdir="$found_dir"
+        eval flag=\"$hardcode_libdir_flag_spec\"
+        libdir="$acl_save_libdir"
+        LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
+      done
+    fi
+  fi
+  if test "X$ltrpathdirs" != "X"; then
+            for found_dir in $ltrpathdirs; do
+      LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir"
+    done
+  fi
+
+
+
+
+
+
+
+
+  ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
+if test "x$ac_cv_type_ptrdiff_t" = x""yes; then :
 
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       eval "$as_ac_var=no"
-fi
+$as_echo "#define ptrdiff_t long" >>confdefs.h
+
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
 fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
 
-cat >>confdefs.h <<_ACEOF
-#define CRAY_STACKSEG_END $ac_func
+  for ac_header in argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
+stdlib.h string.h unistd.h sys/param.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
 
-    break
 fi
 
-  done
+done
+
+  for ac_func in asprintf fwprintf getcwd getegid geteuid getgid getuid \
+mempcpy munmap putenv setenv setlocale snprintf stpcpy strcasecmp strdup \
+strtoul tsearch wcslen __argz_count __argz_stringify __argz_next \
+__fsetlocking
+do :
+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+eval as_val=\$$as_ac_var
+   if test "x$as_val" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
 fi
+done
 
-{ $as_echo "$as_me:$LINENO: checking stack direction for C alloca" >&5
-$as_echo_n "checking stack direction for C alloca... " >&6; }
-if test "${ac_cv_c_stack_direction+set}" = set; then
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether _snprintf is declared" >&5
+$as_echo_n "checking whether _snprintf is declared... " >&6; }
+if test "${ac_cv_have_decl__snprintf+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
-  ac_cv_c_stack_direction=0
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
-int
-find_stack_direction ()
-{
-  static char *addr = 0;
-  auto char dummy;
-  if (addr == 0)
-    {
-      addr = &dummy;
-      return find_stack_direction ();
-    }
-  else
-    return (&dummy > addr) ? 1 : -1;
-}
-
+#include <stdio.h>
 int
 main ()
 {
-  return find_stack_direction () < 0;
+
+#ifndef _snprintf
+  char *p = (char *) _snprintf;
+#endif
+
+  ;
+  return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_c_stack_direction=1
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_have_decl__snprintf=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_c_stack_direction=-1
+  ac_cv_have_decl__snprintf=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_stack_direction" >&5
-$as_echo "$ac_cv_c_stack_direction" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_decl__snprintf" >&5
+$as_echo "$ac_cv_have_decl__snprintf" >&6; }
+  if test $ac_cv_have_decl__snprintf = yes; then
+    gt_value=1
+  else
+    gt_value=0
+  fi
 
 cat >>confdefs.h <<_ACEOF
-#define STACK_DIRECTION $ac_cv_c_stack_direction
+#define HAVE_DECL__SNPRINTF $gt_value
 _ACEOF
 
 
-fi
-
 
-    { $as_echo "$as_me:$LINENO: checking whether we are using the GNU C Library 2.1 or newer" >&5
-$as_echo_n "checking whether we are using the GNU C Library 2.1 or newer... " >&6; }
-if test "${ac_cv_gnu_library_2_1+set}" = set; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether _snwprintf is declared" >&5
+$as_echo_n "checking whether _snwprintf is declared... " >&6; }
+if test "${ac_cv_have_decl__snwprintf+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+#include <stdio.h>
+int
+main ()
+{
 
-#include <features.h>
-#ifdef __GNU_LIBRARY__
- #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
-  Lucky GNU user
- #endif
+#ifndef _snwprintf
+  char *p = (char *) _snwprintf;
 #endif
 
+  ;
+  return 0;
+}
 _ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Lucky GNU user" >/dev/null 2>&1; then
-  ac_cv_gnu_library_2_1=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_have_decl__snwprintf=yes
 else
-  ac_cv_gnu_library_2_1=no
+  ac_cv_have_decl__snwprintf=no
 fi
-rm -f conftest*
-
-
-
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_gnu_library_2_1" >&5
-$as_echo "$ac_cv_gnu_library_2_1" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_decl__snwprintf" >&5
+$as_echo "$ac_cv_have_decl__snwprintf" >&6; }
+  if test $ac_cv_have_decl__snwprintf = yes; then
+    gt_value=1
+  else
+    gt_value=0
+  fi
 
-    GLIBC21="$ac_cv_gnu_library_2_1"
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL__SNWPRINTF $gt_value
+_ACEOF
 
 
 
 
-  { $as_echo "$as_me:$LINENO: checking whether integer division by zero raises SIGFPE" >&5
-$as_echo_n "checking whether integer division by zero raises SIGFPE... " >&6; }
-if test "${gt_cv_int_divbyzero_sigfpe+set}" = set; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether feof_unlocked is declared" >&5
+$as_echo_n "checking whether feof_unlocked is declared... " >&6; }
+if test "${ac_cv_have_decl_feof_unlocked+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-
-      if test "$cross_compiling" = yes; then
-
-          # Guess based on the CPU.
-          case "$host_cpu" in
-            alpha* | i3456786 | m68k | s390*)
-              gt_cv_int_divbyzero_sigfpe="guessing yes";;
-            *)
-              gt_cv_int_divbyzero_sigfpe="guessing no";;
-          esac
-
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-#include <stdlib.h>
-#include <signal.h>
-
-static void
-#ifdef __cplusplus
-sigfpe_handler (int sig)
-#else
-sigfpe_handler (sig) int sig;
-#endif
+#include <stdio.h>
+int
+main ()
 {
-  /* Exit with code 0 if SIGFPE, with code 1 if any other signal.  */
-  exit (sig != SIGFPE);
-}
-
-int x = 1;
-int y = 0;
-int z;
-int nan;
 
-int main ()
-{
-  signal (SIGFPE, sigfpe_handler);
-/* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP.  */
-#if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP)
-  signal (SIGTRAP, sigfpe_handler);
-#endif
-/* Linux/SPARC yields signal SIGILL.  */
-#if defined (__sparc__) && defined (__linux__)
-  signal (SIGILL, sigfpe_handler);
+#ifndef feof_unlocked
+  char *p = (char *) feof_unlocked;
 #endif
 
-  z = x / y;
-  nan = y / y;
-  exit (1);
+  ;
+  return 0;
 }
-
 _ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  gt_cv_int_divbyzero_sigfpe=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_have_decl_feof_unlocked=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-gt_cv_int_divbyzero_sigfpe=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+  ac_cv_have_decl_feof_unlocked=no
 fi
-
-
-
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_int_divbyzero_sigfpe" >&5
-$as_echo "$gt_cv_int_divbyzero_sigfpe" >&6; }
-  case "$gt_cv_int_divbyzero_sigfpe" in
-    *yes) value=1;;
-    *) value=0;;
-  esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_decl_feof_unlocked" >&5
+$as_echo "$ac_cv_have_decl_feof_unlocked" >&6; }
+  if test $ac_cv_have_decl_feof_unlocked = yes; then
+    gt_value=1
+  else
+    gt_value=0
+  fi
 
 cat >>confdefs.h <<_ACEOF
-#define INTDIV0_RAISES_SIGFPE $value
+#define HAVE_DECL_FEOF_UNLOCKED $gt_value
 _ACEOF
 
 
 
-  { $as_echo "$as_me:$LINENO: checking for unsigned long long" >&5
-$as_echo_n "checking for unsigned long long... " >&6; }
-if test "${ac_cv_type_unsigned_long_long+set}" = set; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fgets_unlocked is declared" >&5
+$as_echo_n "checking whether fgets_unlocked is declared... " >&6; }
+if test "${ac_cv_have_decl_fgets_unlocked+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-unsigned long long ull = 1ULL; int i = 63;
+#include <stdio.h>
 int
 main ()
 {
-unsigned long long ullmax = (unsigned long long) -1;
-     return ull << i | ull >> i | ullmax / ull | ullmax % ull;
+
+#ifndef fgets_unlocked
+  char *p = (char *) fgets_unlocked;
+#endif
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_type_unsigned_long_long=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_have_decl_fgets_unlocked=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_type_unsigned_long_long=no
+  ac_cv_have_decl_fgets_unlocked=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_unsigned_long_long" >&5
-$as_echo "$ac_cv_type_unsigned_long_long" >&6; }
-  if test $ac_cv_type_unsigned_long_long = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_UNSIGNED_LONG_LONG 1
-_ACEOF
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_decl_fgets_unlocked" >&5
+$as_echo "$ac_cv_have_decl_fgets_unlocked" >&6; }
+  if test $ac_cv_have_decl_fgets_unlocked = yes; then
+    gt_value=1
+  else
+    gt_value=0
   fi
 
-
-
-
-  if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then
-
-    test $ac_cv_type_unsigned_long_long = yes \
-      && ac_type='unsigned long long' \
-      || ac_type='unsigned long'
-
 cat >>confdefs.h <<_ACEOF
-#define uintmax_t $ac_type
-_ACEOF
-
-  else
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_UINTMAX_T 1
+#define HAVE_DECL_FGETS_UNLOCKED $gt_value
 _ACEOF
 
-  fi
 
 
-  { $as_echo "$as_me:$LINENO: checking for inttypes.h" >&5
-$as_echo_n "checking for inttypes.h... " >&6; }
-if test "${gt_cv_header_inttypes_h+set}" = set; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getc_unlocked is declared" >&5
+$as_echo_n "checking whether getc_unlocked is declared... " >&6; }
+if test "${ac_cv_have_decl_getc_unlocked+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <sys/types.h>
-#include <inttypes.h>
+#include <stdio.h>
 int
 main ()
 {
 
+#ifndef getc_unlocked
+  char *p = (char *) getc_unlocked;
+#endif
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gt_cv_header_inttypes_h=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_have_decl_getc_unlocked=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gt_cv_header_inttypes_h=no
+  ac_cv_have_decl_getc_unlocked=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
 fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_header_inttypes_h" >&5
-$as_echo "$gt_cv_header_inttypes_h" >&6; }
-  if test $gt_cv_header_inttypes_h = yes; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_decl_getc_unlocked" >&5
+$as_echo "$ac_cv_have_decl_getc_unlocked" >&6; }
+  if test $ac_cv_have_decl_getc_unlocked = yes; then
+    gt_value=1
+  else
+    gt_value=0
+  fi
 
 cat >>confdefs.h <<_ACEOF
-#define HAVE_INTTYPES_H 1
+#define HAVE_DECL_GETC_UNLOCKED $gt_value
 _ACEOF
 
+
+
+  case $gt_cv_func_printf_posix in
+    *yes) HAVE_POSIX_PRINTF=1 ;;
+    *) HAVE_POSIX_PRINTF=0 ;;
+  esac
+
+  if test "$ac_cv_func_asprintf" = yes; then
+    HAVE_ASPRINTF=1
+  else
+    HAVE_ASPRINTF=0
+  fi
+
+  if test "$ac_cv_func_snprintf" = yes; then
+    HAVE_SNPRINTF=1
+  else
+    HAVE_SNPRINTF=0
+  fi
+
+  if test "$ac_cv_func_wprintf" = yes; then
+    HAVE_WPRINTF=1
+  else
+    HAVE_WPRINTF=0
   fi
 
 
 
-  if test $gt_cv_header_inttypes_h = yes; then
-    { $as_echo "$as_me:$LINENO: checking whether the inttypes.h PRIxNN macros are broken" >&5
-$as_echo_n "checking whether the inttypes.h PRIxNN macros are broken... " >&6; }
-if test "${gt_cv_inttypes_pri_broken+set}" = set; then
+
+
+
+
+          am_save_CPPFLAGS="$CPPFLAGS"
+
+  for element in $INCICONV; do
+    haveit=
+    for x in $CPPFLAGS; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+      if test "X$x" = "X$element"; then
+        haveit=yes
+        break
+      fi
+    done
+    if test -z "$haveit"; then
+      CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
+    fi
+  done
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
+$as_echo_n "checking for iconv... " >&6; }
+if test "${am_cv_func_iconv+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
 
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+    am_cv_func_iconv="no, consider installing GNU libiconv"
+    am_cv_lib_iconv=no
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <iconv.h>
+int
+main ()
+{
+iconv_t cd = iconv_open("","");
+       iconv(cd,NULL,NULL,NULL,NULL);
+       iconv_close(cd);
+  ;
+  return 0;
+}
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  am_cv_func_iconv=yes
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+    if test "$am_cv_func_iconv" != yes; then
+      am_save_LIBS="$LIBS"
+      LIBS="$LIBS $LIBICONV"
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <inttypes.h>
-#ifdef PRId32
-char *p = PRId32;
-#endif
-
+#include <stdlib.h>
+#include <iconv.h>
 int
 main ()
 {
-
+iconv_t cd = iconv_open("","");
+         iconv(cd,NULL,NULL,NULL,NULL);
+         iconv_close(cd);
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  gt_cv_inttypes_pri_broken=no
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gt_cv_inttypes_pri_broken=yes
+if ac_fn_c_try_link "$LINENO"; then :
+  am_cv_lib_iconv=yes
+        am_cv_func_iconv=yes
 fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+      LIBS="$am_save_LIBS"
+    fi
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_inttypes_pri_broken" >&5
-$as_echo "$gt_cv_inttypes_pri_broken" >&6; }
-  fi
-  if test "$gt_cv_inttypes_pri_broken" = yes; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5
+$as_echo "$am_cv_func_iconv" >&6; }
+  if test "$am_cv_func_iconv" = yes; then
 
-cat >>confdefs.h <<_ACEOF
-#define PRI_MACROS_BROKEN 1
-_ACEOF
+$as_echo "#define HAVE_ICONV 1" >>confdefs.h
 
   fi
+  if test "$am_cv_lib_iconv" = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5
+$as_echo_n "checking how to link with libiconv... " >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5
+$as_echo "$LIBICONV" >&6; }
+  else
+            CPPFLAGS="$am_save_CPPFLAGS"
+    LIBICONV=
+    LTLIBICONV=
+  fi
 
 
 
-for ac_header in stdint.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  if test "$am_cv_func_iconv" = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5
+$as_echo_n "checking for iconv declaration... " >&6; }
+    if test "${am_cv_proto_iconv+set}" = set; then :
   $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
 else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_header_compiler=no
-fi
+#include <stdlib.h>
+#include <iconv.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+#if defined(__STDC__) || defined(__cplusplus)
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
+#else
+size_t iconv();
+#endif
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
+int
+main ()
+{
 
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
+  ;
+  return 0;
+}
 _ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
+if ac_fn_c_try_compile "$LINENO"; then :
+  am_cv_proto_iconv_arg1=""
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
+  am_cv_proto_iconv_arg1="const"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+      am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"
 fi
 
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
+    am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${ac_t:-
+         }$am_cv_proto_iconv" >&5
+$as_echo "${ac_t:-
+         }$am_cv_proto_iconv" >&6; }
 
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+cat >>confdefs.h <<_ACEOF
+#define ICONV_CONST $am_cv_proto_iconv_arg1
+_ACEOF
 
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  fi
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5
+$as_echo_n "checking for nl_langinfo and CODESET... " >&6; }
+if test "${am_cv_langinfo_codeset+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  eval "$as_ac_Header=\$ac_header_preproc"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <langinfo.h>
+int
+main ()
+{
+char* cs = nl_langinfo(CODESET);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  am_cv_langinfo_codeset=yes
+else
+  am_cv_langinfo_codeset=no
 fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
 fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_langinfo_codeset" >&5
+$as_echo "$am_cv_langinfo_codeset" >&6; }
+  if test $am_cv_langinfo_codeset = yes; then
 
-fi
+$as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h
 
-done
+  fi
 
-    { $as_echo "$as_me:$LINENO: checking for SIZE_MAX" >&5
-$as_echo_n "checking for SIZE_MAX... " >&6; }
-  result=
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <limits.h>
-#if HAVE_STDINT_H
-#include <stdint.h>
-#endif
-#ifdef SIZE_MAX
-Found it
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "Found it" >/dev/null 2>&1; then
-  result=yes
-fi
-rm -f conftest*
-
-  if test -z "$result"; then
-                    if test "$cross_compiling" = yes; then
-  # Depending upon the size, compute the lo and hi bounds.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stddef.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((~(size_t)0 / 10) >= 0)];
-test_array [0] = 0
+  if test $ac_cv_header_locale_h = yes; then
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LC_MESSAGES" >&5
+$as_echo_n "checking for LC_MESSAGES... " >&6; }
+if test "${gt_cv_val_LC_MESSAGES+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <stddef.h>
+#include <locale.h>
 int
 main ()
 {
-static int test_array [1 - 2 * !((~(size_t)0 / 10) <= $ac_mid)];
-test_array [0] = 0
-
+return LC_MESSAGES
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid; break
+if ac_fn_c_try_link "$LINENO"; then :
+  gt_cv_val_LC_MESSAGES=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo=`expr $ac_mid + 1`
-                       if test $ac_lo -le $ac_mid; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid + 1`
+  gt_cv_val_LC_MESSAGES=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_val_LC_MESSAGES" >&5
+$as_echo "$gt_cv_val_LC_MESSAGES" >&6; }
+  if test $gt_cv_val_LC_MESSAGES = yes; then
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+$as_echo "#define HAVE_LC_MESSAGES 1" >>confdefs.h
+
+  fi
+
+  fi
+
+  if test -n "$INTL_MACOSX_LIBS"; then
+    CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers"
+  fi
+
+                      for ac_prog in bison
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_INTLBISON+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$INTLBISON"; then
+  ac_cv_prog_INTLBISON="$INTLBISON" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_INTLBISON="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
   done
+IFS=$as_save_IFS
+
+fi
+fi
+INTLBISON=$ac_cv_prog_INTLBISON
+if test -n "$INTLBISON"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INTLBISON" >&5
+$as_echo "$INTLBISON" >&6; }
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
 
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stddef.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((~(size_t)0 / 10) < 0)];
-test_array [0] = 0
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  test -n "$INTLBISON" && break
+done
+
+  if test -z "$INTLBISON"; then
+    ac_verc_fail=yes
+  else
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of bison" >&5
+$as_echo_n "checking version of bison... " >&6; }
+    ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
+    case $ac_prog_version in
+      '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+      1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
+         ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+      *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+    esac
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
+$as_echo "$ac_prog_version" >&6; }
+  fi
+  if test $ac_verc_fail = yes; then
+    INTLBISON=:
+  fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5
+$as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; }
+if test "${gt_cv_func_CFPreferencesCopyAppValue+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  gt_save_CPPFLAGS="$CPPFLAGS"
+     CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers"
+     gt_save_LIBS="$LIBS"
+     LIBS="$LIBS -framework CoreFoundation"
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <stddef.h>
+#include <CFPreferences.h>
 int
 main ()
 {
-static int test_array [1 - 2 * !((~(size_t)0 / 10) >= $ac_mid)];
-test_array [0] = 0
-
+CFPreferencesCopyAppValue(NULL, NULL)
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=$ac_mid; break
+if ac_fn_c_try_link "$LINENO"; then :
+  gt_cv_func_CFPreferencesCopyAppValue=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_hi=`expr '(' $ac_mid ')' - 1`
-                       if test $ac_mid -le $ac_hi; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid`
+  gt_cv_func_CFPreferencesCopyAppValue=no
 fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo= ac_hi=
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+     CPPFLAGS="$gt_save_CPPFLAGS"
+     LIBS="$gt_save_LIBS"
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5
+$as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; }
+  if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
+$as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5
+$as_echo_n "checking for CFLocaleCopyCurrent... " >&6; }
+if test "${gt_cv_func_CFLocaleCopyCurrent+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  gt_save_CPPFLAGS="$CPPFLAGS"
+     CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers"
+     gt_save_LIBS="$LIBS"
+     LIBS="$LIBS -framework CoreFoundation"
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <stddef.h>
+#include <CFLocale.h>
 int
 main ()
 {
-static int test_array [1 - 2 * !((~(size_t)0 / 10) <= $ac_mid)];
-test_array [0] = 0
-
+CFLocaleCopyCurrent();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid
+if ac_fn_c_try_link "$LINENO"; then :
+  gt_cv_func_CFLocaleCopyCurrent=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_lo=`expr '(' $ac_mid ')' + 1`
+  gt_cv_func_CFLocaleCopyCurrent=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+     CPPFLAGS="$gt_save_CPPFLAGS"
+     LIBS="$gt_save_LIBS"
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5
+$as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; }
+  if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in
-?*) res_hi=$ac_lo;;
-'') result=? ;;
-esac
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stddef.h>
-static long int longval () { return ~(size_t)0 / 10; }
-static unsigned long int ulongval () { return ~(size_t)0 / 10; }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
+$as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h
 
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    return 1;
-  if ((~(size_t)0 / 10) < 0)
-    {
-      long int i = longval ();
-      if (i != (~(size_t)0 / 10))
-       return 1;
-      fprintf (f, "%ld", i);
-    }
-  else
-    {
-      unsigned long int i = ulongval ();
-      if (i != (~(size_t)0 / 10))
-       return 1;
-      fprintf (f, "%lu", i);
-    }
-  /* Do not output a trailing newline, as this causes \r\n confusion
-     on some platforms.  */
-  return ferror (f) || fclose (f) != 0;
+  fi
+  INTL_MACOSX_LIBS=
+  if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+    INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
+  fi
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  res_hi=`cat conftest.val`
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-( exit $ac_status )
-result=?
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5
+$as_echo_n "checking whether NLS is requested... " >&6; }
+    # Check whether --enable-nls was given.
+if test "${enable_nls+set}" = set; then :
+  enableval=$enable_nls; USE_NLS=$enableval
+else
+  USE_NLS=yes
 fi
-rm -f conftest.val
 
-    if test "$cross_compiling" = yes; then
-  # Depending upon the size, compute the lo and hi bounds.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stddef.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((~(size_t)0 % 10) >= 0)];
-test_array [0] = 0
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
+$as_echo "$USE_NLS" >&6; }
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stddef.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((~(size_t)0 % 10) <= $ac_mid)];
-test_array [0] = 0
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_lo=`expr $ac_mid + 1`
-                       if test $ac_lo -le $ac_mid; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid + 1`
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+    BUILD_INCLUDED_LIBINTL=no
+    USE_INCLUDED_LIBINTL=no
 
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stddef.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((~(size_t)0 % 10) < 0)];
-test_array [0] = 0
+  LIBINTL=
+  LTLIBINTL=
+  POSUB=
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stddef.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((~(size_t)0 % 10) >= $ac_mid)];
-test_array [0] = 0
+    if test "$USE_NLS" = "yes"; then
+    gt_use_preinstalled_gnugettext=no
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=$ac_mid; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether included gettext is requested" >&5
+$as_echo_n "checking whether included gettext is requested... " >&6; }
 
-       ac_hi=`expr '(' $ac_mid ')' - 1`
-                       if test $ac_mid -le $ac_hi; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid`
+# Check whether --with-included-gettext was given.
+if test "${with_included_gettext+set}" = set; then :
+  withval=$with_included_gettext; nls_cv_force_use_gnu_gettext=$withval
+else
+  nls_cv_force_use_gnu_gettext=no
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $nls_cv_force_use_gnu_gettext" >&5
+$as_echo "$nls_cv_force_use_gnu_gettext" >&6; }
 
-       ac_lo= ac_hi=
-fi
+      nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
+      if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stddef.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((~(size_t)0 % 10) <= $ac_mid)];
-test_array [0] = 0
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_lo=`expr '(' $ac_mid ')' + 1`
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in
-?*) res_lo=$ac_lo;;
-'') result=? ;;
-esac
+
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5
+$as_echo_n "checking for GNU gettext in libc... " >&6; }
+if test "${gt_cv_func_gnugettext1_libc+set}" = set; then :
+  $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <stddef.h>
-static long int longval () { return ~(size_t)0 % 10; }
-static unsigned long int ulongval () { return ~(size_t)0 % 10; }
-#include <stdio.h>
-#include <stdlib.h>
+#include <libintl.h>
+extern int _nl_msg_cat_cntr;
+extern int *_nl_domain_bindings;
 int
 main ()
 {
-
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    return 1;
-  if ((~(size_t)0 % 10) < 0)
-    {
-      long int i = longval ();
-      if (i != (~(size_t)0 % 10))
-       return 1;
-      fprintf (f, "%ld", i);
-    }
-  else
-    {
-      unsigned long int i = ulongval ();
-      if (i != (~(size_t)0 % 10))
-       return 1;
-      fprintf (f, "%lu", i);
-    }
-  /* Do not output a trailing newline, as this causes \r\n confusion
-     on some platforms.  */
-  return ferror (f) || fclose (f) != 0;
-
+bindtextdomain ("", "");
+return * gettext ("") + _nl_msg_cat_cntr + *_nl_domain_bindings
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  res_lo=`cat conftest.val`
+if ac_fn_c_try_link "$LINENO"; then :
+  gt_cv_func_gnugettext1_libc=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-result=?
+  gt_cv_func_gnugettext1_libc=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 fi
-rm -f conftest.val
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_gnugettext1_libc" >&5
+$as_echo "$gt_cv_func_gnugettext1_libc" >&6; }
 
-    if test "$cross_compiling" = yes; then
-  # Depending upon the size, compute the lo and hi bounds.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stddef.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((sizeof (size_t) <= sizeof (unsigned int)) >= 0)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stddef.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((sizeof (size_t) <= sizeof (unsigned int)) <= $ac_mid)];
-test_array [0] = 0
+        if test "$gt_cv_func_gnugettext1_libc" != "yes"; then
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_lo=`expr $ac_mid + 1`
-                       if test $ac_lo -le $ac_mid; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid + 1`
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+    use_additional=yes
 
-       cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stddef.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((sizeof (size_t) <= sizeof (unsigned int)) < 0)];
-test_array [0] = 0
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stddef.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((sizeof (size_t) <= sizeof (unsigned int)) >= $ac_mid)];
-test_array [0] = 0
+    eval additional_includedir=\"$includedir\"
+    eval additional_libdir=\"$libdir\"
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=$ac_mid; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-       ac_hi=`expr '(' $ac_mid ')' - 1`
-                       if test $ac_mid -le $ac_hi; then
-                         ac_lo= ac_hi=
-                         break
-                       fi
-                       ac_mid=`expr 2 '*' $ac_mid`
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+# Check whether --with-libintl-prefix was given.
+if test "${with_libintl_prefix+set}" = set; then :
+  withval=$with_libintl_prefix;
+    if test "X$withval" = "Xno"; then
+      use_additional=no
+    else
+      if test "X$withval" = "X"; then
 
-       ac_lo= ac_hi=
-fi
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
+          eval additional_includedir=\"$includedir\"
+          eval additional_libdir=\"$libdir\"
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stddef.h>
-int
-main ()
-{
-static int test_array [1 - 2 * !((sizeof (size_t) <= sizeof (unsigned int)) <= $ac_mid)];
-test_array [0] = 0
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+      else
+        additional_includedir="$withval/include"
+        additional_libdir="$withval/lib"
+      fi
+    fi
 
-       ac_lo=`expr '(' $ac_mid ')' + 1`
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in
-?*) fits_in_uint=$ac_lo;;
-'') result=? ;;
-esac
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stddef.h>
-static long int longval () { return sizeof (size_t) <= sizeof (unsigned int); }
-static unsigned long int ulongval () { return sizeof (size_t) <= sizeof (unsigned int); }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
-
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    return 1;
-  if ((sizeof (size_t) <= sizeof (unsigned int)) < 0)
-    {
-      long int i = longval ();
-      if (i != (sizeof (size_t) <= sizeof (unsigned int)))
-       return 1;
-      fprintf (f, "%ld", i);
-    }
-  else
-    {
-      unsigned long int i = ulongval ();
-      if (i != (sizeof (size_t) <= sizeof (unsigned int)))
-       return 1;
-      fprintf (f, "%lu", i);
-    }
-  /* Do not output a trailing newline, as this causes \r\n confusion
-     on some platforms.  */
-  return ferror (f) || fclose (f) != 0;
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  fits_in_uint=`cat conftest.val`
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-result=?
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f conftest.val
-
-    if test "$fits_in_uint" = 1; then
-                  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stddef.h>
-        extern size_t foo;
-        extern unsigned long foo;
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  fits_in_uint=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    fi
-    if test -z "$result"; then
-      if test "$fits_in_uint" = 1; then
-        result="$res_hi$res_lo"U
-      else
-        result="$res_hi$res_lo"UL
-      fi
-    else
-            result='~(size_t)0'
-    fi
-  fi
-  { $as_echo "$as_me:$LINENO: result: $result" >&5
-$as_echo "$result" >&6; }
-  if test "$result" != yes; then
-
-cat >>confdefs.h <<_ACEOF
-#define SIZE_MAX $result
-_ACEOF
-
-  fi
-
-
-
-
-
-for ac_header in stdint.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-    { $as_echo "$as_me:$LINENO: checking for CFPreferencesCopyAppValue" >&5
-$as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; }
-if test "${gt_cv_func_CFPreferencesCopyAppValue+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  gt_save_CPPFLAGS="$CPPFLAGS"
-     CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers"
-     gt_save_LIBS="$LIBS"
-     LIBS="$LIBS -framework CoreFoundation"
-     cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <CFPreferences.h>
-int
-main ()
-{
-CFPreferencesCopyAppValue(NULL, NULL)
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  gt_cv_func_CFPreferencesCopyAppValue=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gt_cv_func_CFPreferencesCopyAppValue=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-     CPPFLAGS="$gt_save_CPPFLAGS"
-     LIBS="$gt_save_LIBS"
-fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5
-$as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; }
-  if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_CFPREFERENCESCOPYAPPVALUE 1
-_ACEOF
-
-  fi
-    { $as_echo "$as_me:$LINENO: checking for CFLocaleCopyCurrent" >&5
-$as_echo_n "checking for CFLocaleCopyCurrent... " >&6; }
-if test "${gt_cv_func_CFLocaleCopyCurrent+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  gt_save_CPPFLAGS="$CPPFLAGS"
-     CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers"
-     gt_save_LIBS="$LIBS"
-     LIBS="$LIBS -framework CoreFoundation"
-     cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <CFLocale.h>
-int
-main ()
-{
-CFLocaleCopyCurrent();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  gt_cv_func_CFLocaleCopyCurrent=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gt_cv_func_CFLocaleCopyCurrent=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-     CPPFLAGS="$gt_save_CPPFLAGS"
-     LIBS="$gt_save_LIBS"
-fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_CFLocaleCopyCurrent" >&5
-$as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; }
-  if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_CFLOCALECOPYCURRENT 1
-_ACEOF
-
-  fi
-  INTL_MACOSX_LIBS=
-  if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
-    INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
-  fi
-
-
-
-      if test "X$prefix" = "XNONE"; then
-    acl_final_prefix="$ac_default_prefix"
-  else
-    acl_final_prefix="$prefix"
-  fi
-  if test "X$exec_prefix" = "XNONE"; then
-    acl_final_exec_prefix='${prefix}'
-  else
-    acl_final_exec_prefix="$exec_prefix"
-  fi
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
-  prefix="$acl_save_prefix"
-
-
-# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then
-  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
-else
-  with_gnu_ld=no
-fi
-
-# Prepare PATH_SEPARATOR.
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  { $as_echo "$as_me:$LINENO: checking for ld used by GCC" >&5
-$as_echo_n "checking for ld used by GCC... " >&6; }
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [\\/]* | [A-Za-z]:[\\/]*)
-      re_direlt='/[^/][^/]*/\.\./'
-      # Canonicalize the path of ld
-      ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
-      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
-       ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
-else
-  { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
-fi
-if test "${acl_cv_path_LD+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$LD"; then
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
-  for ac_dir in $PATH; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      acl_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some GNU ld's only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
-      *GNU* | *'with BFD'*)
-       test "$with_gnu_ld" != no && break ;;
-      *)
-       test "$with_gnu_ld" != yes && break ;;
-      esac
-    fi
-  done
-  IFS="$ac_save_ifs"
-else
-  acl_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$acl_cv_path_LD"
-if test -n "$LD"; then
-  { $as_echo "$as_me:$LINENO: result: $LD" >&5
-$as_echo "$LD" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
-$as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
-   { (exit 1); exit 1; }; }
-{ $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if test "${acl_cv_prog_gnu_ld+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  # I'd rather use --version here, but apparently some GNU ld's only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  acl_cv_prog_gnu_ld=yes ;;
-*)
-  acl_cv_prog_gnu_ld=no ;;
-esac
-fi
-{ $as_echo "$as_me:$LINENO: result: $acl_cv_prog_gnu_ld" >&5
-$as_echo "$acl_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$acl_cv_prog_gnu_ld
-
-
-
-
-                                                { $as_echo "$as_me:$LINENO: checking for shared library run path origin" >&5
-$as_echo_n "checking for shared library run path origin... " >&6; }
-if test "${acl_cv_rpath+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-
-    CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
-    ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
-    . ./conftest.sh
-    rm -f ./conftest.sh
-    acl_cv_rpath=done
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $acl_cv_rpath" >&5
-$as_echo "$acl_cv_rpath" >&6; }
-  wl="$acl_cv_wl"
-  libext="$acl_cv_libext"
-  shlibext="$acl_cv_shlibext"
-  hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
-  hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
-  hardcode_direct="$acl_cv_hardcode_direct"
-  hardcode_minus_L="$acl_cv_hardcode_minus_L"
-    # Check whether --enable-rpath was given.
-if test "${enable_rpath+set}" = set; then
-  enableval=$enable_rpath; :
-else
-  enable_rpath=yes
-fi
-
-
-
-
-
-
-
-
-    use_additional=yes
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-
-    eval additional_includedir=\"$includedir\"
-    eval additional_libdir=\"$libdir\"
-
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-
-# Check whether --with-libiconv-prefix was given.
-if test "${with_libiconv_prefix+set}" = set; then
-  withval=$with_libiconv_prefix;
-    if test "X$withval" = "Xno"; then
-      use_additional=no
-    else
-      if test "X$withval" = "X"; then
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-
-          eval additional_includedir=\"$includedir\"
-          eval additional_libdir=\"$libdir\"
-
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-      else
-        additional_includedir="$withval/include"
-        additional_libdir="$withval/lib"
-      fi
-    fi
-
-fi
-
-      LIBICONV=
-  LTLIBICONV=
-  INCICONV=
-  rpathdirs=
-  ltrpathdirs=
-  names_already_handled=
-  names_next_round='iconv '
-  while test -n "$names_next_round"; do
-    names_this_round="$names_next_round"
-    names_next_round=
-    for name in $names_this_round; do
-      already_handled=
-      for n in $names_already_handled; do
-        if test "$n" = "$name"; then
-          already_handled=yes
-          break
-        fi
-      done
-      if test -z "$already_handled"; then
-        names_already_handled="$names_already_handled $name"
-                        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
-        eval value=\"\$HAVE_LIB$uppername\"
-        if test -n "$value"; then
-          if test "$value" = yes; then
-            eval value=\"\$LIB$uppername\"
-            test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value"
-            eval value=\"\$LTLIB$uppername\"
-            test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value"
-          else
-                                    :
-          fi
-        else
-                              found_dir=
-          found_la=
-          found_so=
-          found_a=
-          if test $use_additional = yes; then
-            if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
-              found_dir="$additional_libdir"
-              found_so="$additional_libdir/lib$name.$shlibext"
-              if test -f "$additional_libdir/lib$name.la"; then
-                found_la="$additional_libdir/lib$name.la"
-              fi
-            else
-              if test -f "$additional_libdir/lib$name.$libext"; then
-                found_dir="$additional_libdir"
-                found_a="$additional_libdir/lib$name.$libext"
-                if test -f "$additional_libdir/lib$name.la"; then
-                  found_la="$additional_libdir/lib$name.la"
-                fi
-              fi
-            fi
-          fi
-          if test "X$found_dir" = "X"; then
-            for x in $LDFLAGS $LTLIBICONV; do
+      LIBINTL=
+  LTLIBINTL=
+  INCINTL=
+  rpathdirs=
+  ltrpathdirs=
+  names_already_handled=
+  names_next_round='intl '
+  while test -n "$names_next_round"; do
+    names_this_round="$names_next_round"
+    names_next_round=
+    for name in $names_this_round; do
+      already_handled=
+      for n in $names_already_handled; do
+        if test "$n" = "$name"; then
+          already_handled=yes
+          break
+        fi
+      done
+      if test -z "$already_handled"; then
+        names_already_handled="$names_already_handled $name"
+                        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
+        eval value=\"\$HAVE_LIB$uppername\"
+        if test -n "$value"; then
+          if test "$value" = yes; then
+            eval value=\"\$LIB$uppername\"
+            test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value"
+            eval value=\"\$LTLIB$uppername\"
+            test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value"
+          else
+                                    :
+          fi
+        else
+                              found_dir=
+          found_la=
+          found_so=
+          found_a=
+          if test $use_additional = yes; then
+            if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
+              found_dir="$additional_libdir"
+              found_so="$additional_libdir/lib$name.$shlibext"
+              if test -f "$additional_libdir/lib$name.la"; then
+                found_la="$additional_libdir/lib$name.la"
+              fi
+            else
+              if test -f "$additional_libdir/lib$name.$libext"; then
+                found_dir="$additional_libdir"
+                found_a="$additional_libdir/lib$name.$libext"
+                if test -f "$additional_libdir/lib$name.la"; then
+                  found_la="$additional_libdir/lib$name.la"
+                fi
+              fi
+            fi
+          fi
+          if test "X$found_dir" = "X"; then
+            for x in $LDFLAGS $LTLIBINTL; do
 
   acl_save_prefix="$prefix"
   prefix="$acl_final_prefix"
             done
           fi
           if test "X$found_dir" != "X"; then
-                        LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name"
+                        LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name"
             if test "X$found_so" != "X"; then
                                                         if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
-                                LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+                                LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
               else
                                                                                 haveit=
                 for x in $ltrpathdirs; do
                   ltrpathdirs="$ltrpathdirs $found_dir"
                 fi
                                 if test "$hardcode_direct" = yes; then
-                                                      LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+                                                      LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
                 else
                   if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
-                                                            LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+                                                            LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
                                                             haveit=
                     for x in $rpathdirs; do
                       if test "X$x" = "X$found_dir"; then
                       rpathdirs="$rpathdirs $found_dir"
                     fi
                   else
-                                                                                haveit=
-                    for x in $LDFLAGS $LIBICONV; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-                      if test "X$x" = "X-L$found_dir"; then
-                        haveit=yes
-                        break
-                      fi
-                    done
-                    if test -z "$haveit"; then
-                      LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir"
-                    fi
-                    if test "$hardcode_minus_L" != no; then
-                                                                                        LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
-                    else
-                                                                                                                                                                                LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
-                    fi
-                  fi
-                fi
-              fi
-            else
-              if test "X$found_a" != "X"; then
-                                LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a"
-              else
-                                                LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name"
-              fi
-            fi
-                        additional_includedir=
-            case "$found_dir" in
-              */lib | */lib/)
-                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
-                additional_includedir="$basedir/include"
-                ;;
-            esac
-            if test "X$additional_includedir" != "X"; then
-                                                                                                                if test "X$additional_includedir" != "X/usr/include"; then
-                haveit=
-                if test "X$additional_includedir" = "X/usr/local/include"; then
-                  if test -n "$GCC"; then
-                    case $host_os in
-                      linux* | gnu* | k*bsd*-gnu) haveit=yes;;
-                    esac
-                  fi
-                fi
-                if test -z "$haveit"; then
-                  for x in $CPPFLAGS $INCICONV; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-                    if test "X$x" = "X-I$additional_includedir"; then
-                      haveit=yes
-                      break
-                    fi
-                  done
-                  if test -z "$haveit"; then
-                    if test -d "$additional_includedir"; then
-                                            INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir"
-                    fi
-                  fi
-                fi
-              fi
-            fi
-                        if test -n "$found_la"; then
-                                                        save_libdir="$libdir"
-              case "$found_la" in
-                */* | *\\*) . "$found_la" ;;
-                *) . "./$found_la" ;;
-              esac
-              libdir="$save_libdir"
-                            for dep in $dependency_libs; do
-                case "$dep" in
-                  -L*)
-                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
-                                                                                                                                                                if test "X$additional_libdir" != "X/usr/lib"; then
-                      haveit=
-                      if test "X$additional_libdir" = "X/usr/local/lib"; then
-                        if test -n "$GCC"; then
-                          case $host_os in
-                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
-                          esac
-                        fi
-                      fi
-                      if test -z "$haveit"; then
-                        haveit=
-                        for x in $LDFLAGS $LIBICONV; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-                          if test "X$x" = "X-L$additional_libdir"; then
-                            haveit=yes
-                            break
-                          fi
-                        done
-                        if test -z "$haveit"; then
-                          if test -d "$additional_libdir"; then
-                                                        LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir"
-                          fi
-                        fi
-                        haveit=
-                        for x in $LDFLAGS $LTLIBICONV; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-                          if test "X$x" = "X-L$additional_libdir"; then
-                            haveit=yes
-                            break
-                          fi
-                        done
-                        if test -z "$haveit"; then
-                          if test -d "$additional_libdir"; then
-                                                        LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir"
-                          fi
-                        fi
-                      fi
-                    fi
-                    ;;
-                  -R*)
-                    dir=`echo "X$dep" | sed -e 's/^X-R//'`
-                    if test "$enable_rpath" != no; then
-                                                                  haveit=
-                      for x in $rpathdirs; do
-                        if test "X$x" = "X$dir"; then
-                          haveit=yes
-                          break
-                        fi
-                      done
-                      if test -z "$haveit"; then
-                        rpathdirs="$rpathdirs $dir"
-                      fi
-                                                                  haveit=
-                      for x in $ltrpathdirs; do
-                        if test "X$x" = "X$dir"; then
-                          haveit=yes
-                          break
-                        fi
-                      done
-                      if test -z "$haveit"; then
-                        ltrpathdirs="$ltrpathdirs $dir"
-                      fi
-                    fi
-                    ;;
-                  -l*)
-                                        names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
-                    ;;
-                  *.la)
-                                                                                names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
-                    ;;
-                  *)
-                                        LIBICONV="${LIBICONV}${LIBICONV:+ }$dep"
-                    LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep"
-                    ;;
-                esac
-              done
-            fi
-          else
-                                                            LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
-            LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name"
-          fi
-        fi
-      fi
-    done
-  done
-  if test "X$rpathdirs" != "X"; then
-    if test -n "$hardcode_libdir_separator"; then
-                        alldirs=
-      for found_dir in $rpathdirs; do
-        alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
-      done
-            acl_save_libdir="$libdir"
-      libdir="$alldirs"
-      eval flag=\"$hardcode_libdir_flag_spec\"
-      libdir="$acl_save_libdir"
-      LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
-    else
-            for found_dir in $rpathdirs; do
-        acl_save_libdir="$libdir"
-        libdir="$found_dir"
-        eval flag=\"$hardcode_libdir_flag_spec\"
-        libdir="$acl_save_libdir"
-        LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
-      done
-    fi
-  fi
-  if test "X$ltrpathdirs" != "X"; then
-            for found_dir in $ltrpathdirs; do
-      LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir"
-    done
-  fi
-
-
-
-
-
-
-
-
-  { $as_echo "$as_me:$LINENO: checking for ptrdiff_t" >&5
-$as_echo_n "checking for ptrdiff_t... " >&6; }
-if test "${ac_cv_type_ptrdiff_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_ptrdiff_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof (ptrdiff_t))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-if (sizeof ((ptrdiff_t)))
-         return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_type_ptrdiff_t=yes
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_ptrdiff_t" >&5
-$as_echo "$ac_cv_type_ptrdiff_t" >&6; }
-if test "x$ac_cv_type_ptrdiff_t" = x""yes; then
-  :
-else
-
-cat >>confdefs.h <<\_ACEOF
-#define ptrdiff_t long
-_ACEOF
-
-
-fi
-
-
-
-
-
-
-
-
-
-
-
-for ac_header in argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
-stdlib.h string.h unistd.h sys/param.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-for ac_func in asprintf fwprintf getcwd getegid geteuid getgid getuid \
-mempcpy munmap putenv setenv setlocale snprintf stpcpy strcasecmp strdup \
-strtoul tsearch wcslen __argz_count __argz_stringify __argz_next \
-__fsetlocking
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-
-  { $as_echo "$as_me:$LINENO: checking whether _snprintf is declared" >&5
-$as_echo_n "checking whether _snprintf is declared... " >&6; }
-if test "${ac_cv_have_decl__snprintf+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-
-#ifndef _snprintf
-  char *p = (char *) _snprintf;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl__snprintf=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl__snprintf=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl__snprintf" >&5
-$as_echo "$ac_cv_have_decl__snprintf" >&6; }
-  if test $ac_cv_have_decl__snprintf = yes; then
-    gt_value=1
-  else
-    gt_value=0
-  fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL__SNPRINTF $gt_value
-_ACEOF
-
-
-
-  { $as_echo "$as_me:$LINENO: checking whether _snwprintf is declared" >&5
-$as_echo_n "checking whether _snwprintf is declared... " >&6; }
-if test "${ac_cv_have_decl__snwprintf+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-
-#ifndef _snwprintf
-  char *p = (char *) _snwprintf;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl__snwprintf=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl__snwprintf=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl__snwprintf" >&5
-$as_echo "$ac_cv_have_decl__snwprintf" >&6; }
-  if test $ac_cv_have_decl__snwprintf = yes; then
-    gt_value=1
-  else
-    gt_value=0
-  fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL__SNWPRINTF $gt_value
-_ACEOF
-
-
-
-
-  { $as_echo "$as_me:$LINENO: checking whether feof_unlocked is declared" >&5
-$as_echo_n "checking whether feof_unlocked is declared... " >&6; }
-if test "${ac_cv_have_decl_feof_unlocked+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-
-#ifndef feof_unlocked
-  char *p = (char *) feof_unlocked;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_feof_unlocked=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_feof_unlocked=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_feof_unlocked" >&5
-$as_echo "$ac_cv_have_decl_feof_unlocked" >&6; }
-  if test $ac_cv_have_decl_feof_unlocked = yes; then
-    gt_value=1
-  else
-    gt_value=0
-  fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FEOF_UNLOCKED $gt_value
-_ACEOF
-
-
-
-  { $as_echo "$as_me:$LINENO: checking whether fgets_unlocked is declared" >&5
-$as_echo_n "checking whether fgets_unlocked is declared... " >&6; }
-if test "${ac_cv_have_decl_fgets_unlocked+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-
-#ifndef fgets_unlocked
-  char *p = (char *) fgets_unlocked;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_fgets_unlocked=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_fgets_unlocked=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_fgets_unlocked" >&5
-$as_echo "$ac_cv_have_decl_fgets_unlocked" >&6; }
-  if test $ac_cv_have_decl_fgets_unlocked = yes; then
-    gt_value=1
-  else
-    gt_value=0
-  fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_FGETS_UNLOCKED $gt_value
-_ACEOF
-
-
-
-  { $as_echo "$as_me:$LINENO: checking whether getc_unlocked is declared" >&5
-$as_echo_n "checking whether getc_unlocked is declared... " >&6; }
-if test "${ac_cv_have_decl_getc_unlocked+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-
-#ifndef getc_unlocked
-  char *p = (char *) getc_unlocked;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_have_decl_getc_unlocked=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_have_decl_getc_unlocked=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_getc_unlocked" >&5
-$as_echo "$ac_cv_have_decl_getc_unlocked" >&6; }
-  if test $ac_cv_have_decl_getc_unlocked = yes; then
-    gt_value=1
-  else
-    gt_value=0
-  fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_GETC_UNLOCKED $gt_value
-_ACEOF
-
-
-
-  case $gt_cv_func_printf_posix in
-    *yes) HAVE_POSIX_PRINTF=1 ;;
-    *) HAVE_POSIX_PRINTF=0 ;;
-  esac
-
-  if test "$ac_cv_func_asprintf" = yes; then
-    HAVE_ASPRINTF=1
-  else
-    HAVE_ASPRINTF=0
-  fi
-
-  if test "$ac_cv_func_snprintf" = yes; then
-    HAVE_SNPRINTF=1
-  else
-    HAVE_SNPRINTF=0
-  fi
-
-  if test "$ac_cv_func_wprintf" = yes; then
-    HAVE_WPRINTF=1
-  else
-    HAVE_WPRINTF=0
-  fi
-
-
-
-
-
-
-
-          am_save_CPPFLAGS="$CPPFLAGS"
-
-  for element in $INCICONV; do
-    haveit=
-    for x in $CPPFLAGS; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-      if test "X$x" = "X$element"; then
-        haveit=yes
-        break
-      fi
-    done
-    if test -z "$haveit"; then
-      CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
-    fi
-  done
-
-
-  { $as_echo "$as_me:$LINENO: checking for iconv" >&5
-$as_echo_n "checking for iconv... " >&6; }
-if test "${am_cv_func_iconv+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-
-    am_cv_func_iconv="no, consider installing GNU libiconv"
-    am_cv_lib_iconv=no
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <iconv.h>
-int
-main ()
-{
-iconv_t cd = iconv_open("","");
-       iconv(cd,NULL,NULL,NULL,NULL);
-       iconv_close(cd);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  am_cv_func_iconv=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-    if test "$am_cv_func_iconv" != yes; then
-      am_save_LIBS="$LIBS"
-      LIBS="$LIBS $LIBICONV"
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <iconv.h>
-int
-main ()
-{
-iconv_t cd = iconv_open("","");
-         iconv(cd,NULL,NULL,NULL,NULL);
-         iconv_close(cd);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  am_cv_lib_iconv=yes
-        am_cv_func_iconv=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-      LIBS="$am_save_LIBS"
-    fi
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_func_iconv" >&5
-$as_echo "$am_cv_func_iconv" >&6; }
-  if test "$am_cv_func_iconv" = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ICONV 1
-_ACEOF
-
-  fi
-  if test "$am_cv_lib_iconv" = yes; then
-    { $as_echo "$as_me:$LINENO: checking how to link with libiconv" >&5
-$as_echo_n "checking how to link with libiconv... " >&6; }
-    { $as_echo "$as_me:$LINENO: result: $LIBICONV" >&5
-$as_echo "$LIBICONV" >&6; }
-  else
-            CPPFLAGS="$am_save_CPPFLAGS"
-    LIBICONV=
-    LTLIBICONV=
-  fi
-
-
-
-  if test "$am_cv_func_iconv" = yes; then
-    { $as_echo "$as_me:$LINENO: checking for iconv declaration" >&5
-$as_echo_n "checking for iconv declaration... " >&6; }
-    if test "${am_cv_proto_iconv+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#include <stdlib.h>
-#include <iconv.h>
-extern
-#ifdef __cplusplus
-"C"
-#endif
-#if defined(__STDC__) || defined(__cplusplus)
-size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
-#else
-size_t iconv();
-#endif
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  am_cv_proto_iconv_arg1=""
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       am_cv_proto_iconv_arg1="const"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-      am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"
-fi
-
-    am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
-    { $as_echo "$as_me:$LINENO: result: ${ac_t:-
-         }$am_cv_proto_iconv" >&5
-$as_echo "${ac_t:-
-         }$am_cv_proto_iconv" >&6; }
-
-cat >>confdefs.h <<_ACEOF
-#define ICONV_CONST $am_cv_proto_iconv_arg1
-_ACEOF
-
-  fi
-
-
-  { $as_echo "$as_me:$LINENO: checking for nl_langinfo and CODESET" >&5
-$as_echo_n "checking for nl_langinfo and CODESET... " >&6; }
-if test "${am_cv_langinfo_codeset+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <langinfo.h>
-int
-main ()
-{
-char* cs = nl_langinfo(CODESET);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  am_cv_langinfo_codeset=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       am_cv_langinfo_codeset=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_langinfo_codeset" >&5
-$as_echo "$am_cv_langinfo_codeset" >&6; }
-  if test $am_cv_langinfo_codeset = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_LANGINFO_CODESET 1
-_ACEOF
-
-  fi
-
-  if test $ac_cv_header_locale_h = yes; then
-
-  { $as_echo "$as_me:$LINENO: checking for LC_MESSAGES" >&5
-$as_echo_n "checking for LC_MESSAGES... " >&6; }
-if test "${gt_cv_val_LC_MESSAGES+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <locale.h>
-int
-main ()
-{
-return LC_MESSAGES
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  gt_cv_val_LC_MESSAGES=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gt_cv_val_LC_MESSAGES=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_val_LC_MESSAGES" >&5
-$as_echo "$gt_cv_val_LC_MESSAGES" >&6; }
-  if test $gt_cv_val_LC_MESSAGES = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_LC_MESSAGES 1
-_ACEOF
-
-  fi
-
-  fi
-
-  if test -n "$INTL_MACOSX_LIBS"; then
-    CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers"
-  fi
-
-                      for ac_prog in bison
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_INTLBISON+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$INTLBISON"; then
-  ac_cv_prog_INTLBISON="$INTLBISON" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_INTLBISON="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-INTLBISON=$ac_cv_prog_INTLBISON
-if test -n "$INTLBISON"; then
-  { $as_echo "$as_me:$LINENO: result: $INTLBISON" >&5
-$as_echo "$INTLBISON" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$INTLBISON" && break
-done
-
-  if test -z "$INTLBISON"; then
-    ac_verc_fail=yes
-  else
-        { $as_echo "$as_me:$LINENO: checking version of bison" >&5
-$as_echo_n "checking version of bison... " >&6; }
-    ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
-    case $ac_prog_version in
-      '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
-      1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
-         ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
-      *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
-    esac
-    { $as_echo "$as_me:$LINENO: result: $ac_prog_version" >&5
-$as_echo "$ac_prog_version" >&6; }
-  fi
-  if test $ac_verc_fail = yes; then
-    INTLBISON=:
-  fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-    { $as_echo "$as_me:$LINENO: checking for CFPreferencesCopyAppValue" >&5
-$as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; }
-if test "${gt_cv_func_CFPreferencesCopyAppValue+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  gt_save_CPPFLAGS="$CPPFLAGS"
-     CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers"
-     gt_save_LIBS="$LIBS"
-     LIBS="$LIBS -framework CoreFoundation"
-     cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <CFPreferences.h>
-int
-main ()
-{
-CFPreferencesCopyAppValue(NULL, NULL)
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  gt_cv_func_CFPreferencesCopyAppValue=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gt_cv_func_CFPreferencesCopyAppValue=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-     CPPFLAGS="$gt_save_CPPFLAGS"
-     LIBS="$gt_save_LIBS"
-fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5
-$as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; }
-  if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_CFPREFERENCESCOPYAPPVALUE 1
-_ACEOF
-
-  fi
-    { $as_echo "$as_me:$LINENO: checking for CFLocaleCopyCurrent" >&5
-$as_echo_n "checking for CFLocaleCopyCurrent... " >&6; }
-if test "${gt_cv_func_CFLocaleCopyCurrent+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  gt_save_CPPFLAGS="$CPPFLAGS"
-     CPPFLAGS="$CPPFLAGS -I/System/Library/Frameworks/CoreFoundation.framework/Headers"
-     gt_save_LIBS="$LIBS"
-     LIBS="$LIBS -framework CoreFoundation"
-     cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <CFLocale.h>
-int
-main ()
-{
-CFLocaleCopyCurrent();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  gt_cv_func_CFLocaleCopyCurrent=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gt_cv_func_CFLocaleCopyCurrent=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-     CPPFLAGS="$gt_save_CPPFLAGS"
-     LIBS="$gt_save_LIBS"
-fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_CFLocaleCopyCurrent" >&5
-$as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; }
-  if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_CFLOCALECOPYCURRENT 1
-_ACEOF
-
-  fi
-  INTL_MACOSX_LIBS=
-  if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
-    INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
-  fi
-
-
-
-
-  { $as_echo "$as_me:$LINENO: checking whether NLS is requested" >&5
-$as_echo_n "checking whether NLS is requested... " >&6; }
-    # Check whether --enable-nls was given.
-if test "${enable_nls+set}" = set; then
-  enableval=$enable_nls; USE_NLS=$enableval
-else
-  USE_NLS=yes
-fi
-
-  { $as_echo "$as_me:$LINENO: result: $USE_NLS" >&5
-$as_echo "$USE_NLS" >&6; }
-
-
-
-
-    BUILD_INCLUDED_LIBINTL=no
-    USE_INCLUDED_LIBINTL=no
-
-  LIBINTL=
-  LTLIBINTL=
-  POSUB=
-
-    if test "$USE_NLS" = "yes"; then
-    gt_use_preinstalled_gnugettext=no
-
-      { $as_echo "$as_me:$LINENO: checking whether included gettext is requested" >&5
-$as_echo_n "checking whether included gettext is requested... " >&6; }
-
-# Check whether --with-included-gettext was given.
-if test "${with_included_gettext+set}" = set; then
-  withval=$with_included_gettext; nls_cv_force_use_gnu_gettext=$withval
-else
-  nls_cv_force_use_gnu_gettext=no
-fi
-
-      { $as_echo "$as_me:$LINENO: result: $nls_cv_force_use_gnu_gettext" >&5
-$as_echo "$nls_cv_force_use_gnu_gettext" >&6; }
-
-      nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
-      if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
-
-
-
-
-
-
-        { $as_echo "$as_me:$LINENO: checking for GNU gettext in libc" >&5
-$as_echo_n "checking for GNU gettext in libc... " >&6; }
-if test "${gt_cv_func_gnugettext1_libc+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <libintl.h>
-extern int _nl_msg_cat_cntr;
-extern int *_nl_domain_bindings;
-int
-main ()
-{
-bindtextdomain ("", "");
-return * gettext ("") + _nl_msg_cat_cntr + *_nl_domain_bindings
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  gt_cv_func_gnugettext1_libc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gt_cv_func_gnugettext1_libc=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext1_libc" >&5
-$as_echo "$gt_cv_func_gnugettext1_libc" >&6; }
-
-        if test "$gt_cv_func_gnugettext1_libc" != "yes"; then
-
-
-
-    use_additional=yes
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-
-    eval additional_includedir=\"$includedir\"
-    eval additional_libdir=\"$libdir\"
-
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-
-# Check whether --with-libintl-prefix was given.
-if test "${with_libintl_prefix+set}" = set; then
-  withval=$with_libintl_prefix;
-    if test "X$withval" = "Xno"; then
-      use_additional=no
-    else
-      if test "X$withval" = "X"; then
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-
-          eval additional_includedir=\"$includedir\"
-          eval additional_libdir=\"$libdir\"
-
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-      else
-        additional_includedir="$withval/include"
-        additional_libdir="$withval/lib"
-      fi
-    fi
-
-fi
-
-      LIBINTL=
-  LTLIBINTL=
-  INCINTL=
-  rpathdirs=
-  ltrpathdirs=
-  names_already_handled=
-  names_next_round='intl '
-  while test -n "$names_next_round"; do
-    names_this_round="$names_next_round"
-    names_next_round=
-    for name in $names_this_round; do
-      already_handled=
-      for n in $names_already_handled; do
-        if test "$n" = "$name"; then
-          already_handled=yes
-          break
-        fi
-      done
-      if test -z "$already_handled"; then
-        names_already_handled="$names_already_handled $name"
-                        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
-        eval value=\"\$HAVE_LIB$uppername\"
-        if test -n "$value"; then
-          if test "$value" = yes; then
-            eval value=\"\$LIB$uppername\"
-            test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value"
-            eval value=\"\$LTLIB$uppername\"
-            test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value"
-          else
-                                    :
-          fi
-        else
-                              found_dir=
-          found_la=
-          found_so=
-          found_a=
-          if test $use_additional = yes; then
-            if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
-              found_dir="$additional_libdir"
-              found_so="$additional_libdir/lib$name.$shlibext"
-              if test -f "$additional_libdir/lib$name.la"; then
-                found_la="$additional_libdir/lib$name.la"
-              fi
-            else
-              if test -f "$additional_libdir/lib$name.$libext"; then
-                found_dir="$additional_libdir"
-                found_a="$additional_libdir/lib$name.$libext"
-                if test -f "$additional_libdir/lib$name.la"; then
-                  found_la="$additional_libdir/lib$name.la"
-                fi
-              fi
-            fi
-          fi
-          if test "X$found_dir" = "X"; then
-            for x in $LDFLAGS $LTLIBINTL; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-              case "$x" in
-                -L*)
-                  dir=`echo "X$x" | sed -e 's/^X-L//'`
-                  if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
-                    found_dir="$dir"
-                    found_so="$dir/lib$name.$shlibext"
-                    if test -f "$dir/lib$name.la"; then
-                      found_la="$dir/lib$name.la"
-                    fi
-                  else
-                    if test -f "$dir/lib$name.$libext"; then
-                      found_dir="$dir"
-                      found_a="$dir/lib$name.$libext"
-                      if test -f "$dir/lib$name.la"; then
-                        found_la="$dir/lib$name.la"
-                      fi
-                    fi
-                  fi
-                  ;;
-              esac
-              if test "X$found_dir" != "X"; then
-                break
-              fi
-            done
-          fi
-          if test "X$found_dir" != "X"; then
-                        LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name"
-            if test "X$found_so" != "X"; then
-                                                        if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
-                                LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
-              else
-                                                                                haveit=
-                for x in $ltrpathdirs; do
-                  if test "X$x" = "X$found_dir"; then
-                    haveit=yes
-                    break
-                  fi
-                done
-                if test -z "$haveit"; then
-                  ltrpathdirs="$ltrpathdirs $found_dir"
-                fi
-                                if test "$hardcode_direct" = yes; then
-                                                      LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
-                else
-                  if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
-                                                            LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
-                                                            haveit=
-                    for x in $rpathdirs; do
-                      if test "X$x" = "X$found_dir"; then
-                        haveit=yes
-                        break
-                      fi
-                    done
-                    if test -z "$haveit"; then
-                      rpathdirs="$rpathdirs $found_dir"
-                    fi
-                  else
-                                                                                haveit=
-                    for x in $LDFLAGS $LIBINTL; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-                      if test "X$x" = "X-L$found_dir"; then
-                        haveit=yes
-                        break
-                      fi
-                    done
-                    if test -z "$haveit"; then
-                      LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir"
-                    fi
-                    if test "$hardcode_minus_L" != no; then
-                                                                                        LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
-                    else
-                                                                                                                                                                                LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name"
-                    fi
-                  fi
-                fi
-              fi
-            else
-              if test "X$found_a" != "X"; then
-                                LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a"
-              else
-                                                LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name"
-              fi
-            fi
-                        additional_includedir=
-            case "$found_dir" in
-              */lib | */lib/)
-                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
-                additional_includedir="$basedir/include"
-                ;;
-            esac
-            if test "X$additional_includedir" != "X"; then
-                                                                                                                if test "X$additional_includedir" != "X/usr/include"; then
-                haveit=
-                if test "X$additional_includedir" = "X/usr/local/include"; then
-                  if test -n "$GCC"; then
-                    case $host_os in
-                      linux* | gnu* | k*bsd*-gnu) haveit=yes;;
-                    esac
-                  fi
-                fi
-                if test -z "$haveit"; then
-                  for x in $CPPFLAGS $INCINTL; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-                    if test "X$x" = "X-I$additional_includedir"; then
-                      haveit=yes
-                      break
-                    fi
-                  done
-                  if test -z "$haveit"; then
-                    if test -d "$additional_includedir"; then
-                                            INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir"
-                    fi
-                  fi
-                fi
-              fi
-            fi
-                        if test -n "$found_la"; then
-                                                        save_libdir="$libdir"
-              case "$found_la" in
-                */* | *\\*) . "$found_la" ;;
-                *) . "./$found_la" ;;
-              esac
-              libdir="$save_libdir"
-                            for dep in $dependency_libs; do
-                case "$dep" in
-                  -L*)
-                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
-                                                                                                                                                                if test "X$additional_libdir" != "X/usr/lib"; then
-                      haveit=
-                      if test "X$additional_libdir" = "X/usr/local/lib"; then
-                        if test -n "$GCC"; then
-                          case $host_os in
-                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
-                          esac
-                        fi
-                      fi
-                      if test -z "$haveit"; then
-                        haveit=
-                        for x in $LDFLAGS $LIBINTL; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-                          if test "X$x" = "X-L$additional_libdir"; then
-                            haveit=yes
-                            break
-                          fi
-                        done
-                        if test -z "$haveit"; then
-                          if test -d "$additional_libdir"; then
-                                                        LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir"
-                          fi
-                        fi
-                        haveit=
-                        for x in $LDFLAGS $LTLIBINTL; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-                          if test "X$x" = "X-L$additional_libdir"; then
-                            haveit=yes
-                            break
-                          fi
-                        done
-                        if test -z "$haveit"; then
-                          if test -d "$additional_libdir"; then
-                                                        LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir"
-                          fi
-                        fi
-                      fi
-                    fi
-                    ;;
-                  -R*)
-                    dir=`echo "X$dep" | sed -e 's/^X-R//'`
-                    if test "$enable_rpath" != no; then
-                                                                  haveit=
-                      for x in $rpathdirs; do
-                        if test "X$x" = "X$dir"; then
-                          haveit=yes
-                          break
-                        fi
-                      done
-                      if test -z "$haveit"; then
-                        rpathdirs="$rpathdirs $dir"
-                      fi
-                                                                  haveit=
-                      for x in $ltrpathdirs; do
-                        if test "X$x" = "X$dir"; then
-                          haveit=yes
-                          break
-                        fi
-                      done
-                      if test -z "$haveit"; then
-                        ltrpathdirs="$ltrpathdirs $dir"
-                      fi
-                    fi
-                    ;;
-                  -l*)
-                                        names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
-                    ;;
-                  *.la)
-                                                                                names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
-                    ;;
-                  *)
-                                        LIBINTL="${LIBINTL}${LIBINTL:+ }$dep"
-                    LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep"
-                    ;;
-                esac
-              done
-            fi
-          else
-                                                            LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name"
-            LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name"
-          fi
-        fi
-      fi
-    done
-  done
-  if test "X$rpathdirs" != "X"; then
-    if test -n "$hardcode_libdir_separator"; then
-                        alldirs=
-      for found_dir in $rpathdirs; do
-        alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
-      done
-            acl_save_libdir="$libdir"
-      libdir="$alldirs"
-      eval flag=\"$hardcode_libdir_flag_spec\"
-      libdir="$acl_save_libdir"
-      LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
-    else
-            for found_dir in $rpathdirs; do
-        acl_save_libdir="$libdir"
-        libdir="$found_dir"
-        eval flag=\"$hardcode_libdir_flag_spec\"
-        libdir="$acl_save_libdir"
-        LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
-      done
-    fi
-  fi
-  if test "X$ltrpathdirs" != "X"; then
-            for found_dir in $ltrpathdirs; do
-      LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir"
-    done
-  fi
-
-          { $as_echo "$as_me:$LINENO: checking for GNU gettext in libintl" >&5
-$as_echo_n "checking for GNU gettext in libintl... " >&6; }
-if test "${gt_cv_func_gnugettext1_libintl+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  gt_save_CPPFLAGS="$CPPFLAGS"
-            CPPFLAGS="$CPPFLAGS $INCINTL"
-            gt_save_LIBS="$LIBS"
-            LIBS="$LIBS $LIBINTL"
-                        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <libintl.h>
-extern int _nl_msg_cat_cntr;
-extern
-#ifdef __cplusplus
-"C"
-#endif
-const char *_nl_expand_alias (const char *);
-int
-main ()
-{
-bindtextdomain ("", "");
-return * gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias ("")
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  gt_cv_func_gnugettext1_libintl=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       gt_cv_func_gnugettext1_libintl=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-                        if test "$gt_cv_func_gnugettext1_libintl" != yes && test -n "$LIBICONV"; then
-              LIBS="$LIBS $LIBICONV"
-              cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <libintl.h>
-extern int _nl_msg_cat_cntr;
-extern
-#ifdef __cplusplus
-"C"
-#endif
-const char *_nl_expand_alias (const char *);
-int
-main ()
-{
-bindtextdomain ("", "");
-return * gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias ("")
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  LIBINTL="$LIBINTL $LIBICONV"
-                LTLIBINTL="$LTLIBINTL $LTLIBICONV"
-                gt_cv_func_gnugettext1_libintl=yes
-
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-            fi
-            CPPFLAGS="$gt_save_CPPFLAGS"
-            LIBS="$gt_save_LIBS"
-fi
-{ $as_echo "$as_me:$LINENO: result: $gt_cv_func_gnugettext1_libintl" >&5
-$as_echo "$gt_cv_func_gnugettext1_libintl" >&6; }
-        fi
-
-                                        if test "$gt_cv_func_gnugettext1_libc" = "yes" \
-           || { test "$gt_cv_func_gnugettext1_libintl" = "yes" \
-                && test "$PACKAGE" != gettext-runtime \
-                && test "$PACKAGE" != gettext-tools; }; then
-          gt_use_preinstalled_gnugettext=yes
-        else
-                    LIBINTL=
-          LTLIBINTL=
-          INCINTL=
-        fi
-
-
-        if test "$gt_use_preinstalled_gnugettext" != "yes"; then
-                              nls_cv_use_gnu_gettext=yes
-        fi
-      fi
-
-      if test "$nls_cv_use_gnu_gettext" = "yes"; then
-                BUILD_INCLUDED_LIBINTL=yes
-        USE_INCLUDED_LIBINTL=yes
-        LIBINTL="\${top_builddir}/intl/libintl.a $LIBICONV"
-        LTLIBINTL="\${top_builddir}/intl/libintl.a $LTLIBICONV"
-        LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
-      fi
-
-      CATOBJEXT=
-      if test "$gt_use_preinstalled_gnugettext" = "yes" \
-         || test "$nls_cv_use_gnu_gettext" = "yes"; then
-                CATOBJEXT=.gmo
-      fi
-
-
-    if test -n "$INTL_MACOSX_LIBS"; then
-      if test "$gt_use_preinstalled_gnugettext" = "yes" \
-         || test "$nls_cv_use_gnu_gettext" = "yes"; then
-                LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
-        LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
-      fi
-    fi
-
-    if test "$gt_use_preinstalled_gnugettext" = "yes" \
-       || test "$nls_cv_use_gnu_gettext" = "yes"; then
-
-cat >>confdefs.h <<\_ACEOF
-#define ENABLE_NLS 1
-_ACEOF
-
-    else
-      USE_NLS=no
-    fi
-  fi
-
-  { $as_echo "$as_me:$LINENO: checking whether to use NLS" >&5
-$as_echo_n "checking whether to use NLS... " >&6; }
-  { $as_echo "$as_me:$LINENO: result: $USE_NLS" >&5
-$as_echo "$USE_NLS" >&6; }
-  if test "$USE_NLS" = "yes"; then
-    { $as_echo "$as_me:$LINENO: checking where the gettext function comes from" >&5
-$as_echo_n "checking where the gettext function comes from... " >&6; }
-    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
-      if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then
-        gt_source="external libintl"
-      else
-        gt_source="libc"
-      fi
-    else
-      gt_source="included intl directory"
-    fi
-    { $as_echo "$as_me:$LINENO: result: $gt_source" >&5
-$as_echo "$gt_source" >&6; }
-  fi
-
-  if test "$USE_NLS" = "yes"; then
-
-    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
-      if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then
-        { $as_echo "$as_me:$LINENO: checking how to link with libintl" >&5
-$as_echo_n "checking how to link with libintl... " >&6; }
-        { $as_echo "$as_me:$LINENO: result: $LIBINTL" >&5
-$as_echo "$LIBINTL" >&6; }
-
-  for element in $INCINTL; do
-    haveit=
-    for x in $CPPFLAGS; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-      if test "X$x" = "X$element"; then
-        haveit=yes
-        break
-      fi
-    done
-    if test -z "$haveit"; then
-      CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
-    fi
-  done
-
-      fi
-
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_GETTEXT 1
-_ACEOF
-
-
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_DCGETTEXT 1
-_ACEOF
-
-    fi
-
-        POSUB=po
-  fi
-
-
-            if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then
-      BUILD_INCLUDED_LIBINTL=yes
-    fi
-
-
-
-
-
-        nls_cv_header_intl=
-    nls_cv_header_libgt=
-
-        DATADIRNAME=share
-
-
-        INSTOBJEXT=.mo
-
-
-        GENCAT=gencat
-
-
-        INTLOBJS=
-    if test "$USE_INCLUDED_LIBINTL" = yes; then
-      INTLOBJS="\$(GETTOBJS)"
-    fi
-
-
-        INTL_LIBTOOL_SUFFIX_PREFIX=
-
-
-
-    INTLLIBS="$LIBINTL"
-
-
-
-
-
-
-
-
-case $TERM in
-       #   for the most important terminal types we directly know the sequences
-       xterm|xterm*|vt220|vt220*)
-               T_MD=`awk 'BEGIN { printf("%c%c%c%c", 27, 91, 49, 109); }' </dev/null 2>/dev/null`
-               T_ME=`awk 'BEGIN { printf("%c%c%c", 27, 91, 109); }' </dev/null 2>/dev/null`
-       ;;
-       vt100|vt100*|cygwin)
-               T_MD=`awk 'BEGIN { printf("%c%c%c%c%c%c", 27, 91, 49, 109, 0, 0); }' </dev/null 2>/dev/null`
-               T_ME=`awk 'BEGIN { printf("%c%c%c%c%c", 27, 91, 109, 0, 0); }' </dev/null 2>/dev/null`
-       ;;
-       *)
-               T_MD=''
-               T_ME=''
-       ;;
-esac
-  { $as_echo "$as_me:$LINENO: result: " >&5
-$as_echo "" >&6; }
-  { $as_echo "$as_me:$LINENO: result: ${T_MD}IEEE Math Checks${T_ME}" >&5
-$as_echo "${T_MD}IEEE Math Checks${T_ME}" >&6; }
-
-
-
-
-for ac_func in fpclassify
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-else
-  { $as_echo "$as_me:$LINENO: checking for fpclassify with <math.h>" >&5
-$as_echo_n "checking for fpclassify with <math.h>... " >&6; }
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <math.h>
-volatile int x;volatile float f;
-int
-main ()
-{
-x = fpclassify(f)
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
-      cat >>confdefs.h <<\_ACEOF
-#define HAVE_FPCLASSIFY 1
-_ACEOF
-
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-done
-
-
-
-for ac_func in isinf
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-else
-  { $as_echo "$as_me:$LINENO: checking for isinf with <math.h>" >&5
-$as_echo_n "checking for isinf with <math.h>... " >&6; }
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <math.h>
-volatile int x;volatile float f;
-int
-main ()
-{
-x = isinf(f)
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
-      cat >>confdefs.h <<\_ACEOF
-#define HAVE_ISINF 1
-_ACEOF
-
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-done
-
-
-{ $as_echo "$as_me:$LINENO: checking whether isfinite is broken" >&5
-$as_echo_n "checking whether isfinite is broken... " >&6; }
-if test "${ac_cv_have_broken_isfinite+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-
-if test "$cross_compiling" = yes; then
-
-case "${target}" in
-  hppa*-*-hpux*) ac_cv_have_broken_isfinite=yes ;;
-  *-solaris2.8) ac_cv_have_broken_isfinite=yes ;;
-  *-solaris2.9) ac_cv_have_broken_isfinite=yes ;;
-  *) ac_cv_have_broken_isfinite=no ;;
-esac
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-#ifdef HAVE_MATH_H
-#include <math.h>
-#endif
-#ifdef HAVE_FLOAT_H
-#include <float.h>
-#endif
-int main ()
-{
-#ifdef isfinite
-#ifdef LDBL_MAX
-  if (!isfinite(LDBL_MAX)) return 1;
-#endif
-#ifdef DBL_MAX
-  if (!isfinite(DBL_MAX)) return 1;
-#endif
-#endif
-return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_have_broken_isfinite=no
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ac_cv_have_broken_isfinite=yes
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_broken_isfinite" >&5
-$as_echo "$ac_cv_have_broken_isfinite" >&6; }
-
-case "${target}" in
-  *-solaris2.8) ac_cv_have_broken_isfinite=yes ;;
-  *-solaris2.9) ac_cv_have_broken_isfinite=yes ;;
-esac
-
-if test "x$ac_cv_have_broken_isfinite" = "xno"; then
-  cat >>confdefs.h <<\_ACEOF
-#define HAVE_ISFINITE 1
-_ACEOF
-
-else
-
-for ac_func in finite
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-else
-
-for ac_func in isfinite
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-else
-  { $as_echo "$as_me:$LINENO: checking for isfinite with <math.h>" >&5
-$as_echo_n "checking for isfinite with <math.h>... " >&6; }
-          cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <math.h>
-volatile int x;volatile float f;
-int
-main ()
-{
-x = isfinite(f)
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
-               cat >>confdefs.h <<\_ACEOF
-#define HAVE_ISFINITE 1
-_ACEOF
-
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-done
-
-fi
-done
-
-fi
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-_cflags=${CFLAGS}
-
-{ $as_echo "$as_me:$LINENO: checking if IEEE math works out of the box" >&5
-$as_echo_n "checking if IEEE math works out of the box... " >&6; }
-if test "${rd_cv_ieee_works+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then
-  :
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-
-#if HAVE_MATH_H
-#  include <math.h>
-#endif
-
-#if HAVE_FLOAT_H
-#  include <float.h>
-#endif
-
-#if HAVE_IEEEFP_H
-#  include <ieeefp.h>
-#endif
-
-#if HAVE_FP_CLASS_H
-#  include <fp_class.h>
-#endif
-
-/* Solaris */
-#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASS))
-#  define HAVE_ISINF 1
-#  define isinf(a) (fpclass(a) == FP_NINF || fpclass(a) == FP_PINF)
-#endif
-
-/* solaris 10 it defines isnan such that only forte can compile it ... bad bad  */
-#if (defined(HAVE_ISNAN) && defined(isnan) && defined(HAVE_FPCLASS))
-#  undef isnan
-#  define isnan(a) (fpclass(a) == FP_SNAN || fpclass(a) == FP_QNAN)
-#endif
-
-/* Digital UNIX */
-#if (! defined(HAVE_ISINF) && defined(HAVE_FP_CLASS) && defined(HAVE_FP_CLASS_H))
-#  define HAVE_ISINF 1
-#  define isinf(a) (fp_class(a) == FP_NEG_INF || fp_class(a) == FP_POS_INF)
-#endif
-
-/* AIX */
-#if (! defined(HAVE_ISINF) && defined(HAVE_CLASS))
-#  define HAVE_ISINF 1
-#  define isinf(a) (class(a) == FP_MINUS_INF || class(a) == FP_PLUS_INF)
-#endif
-
-#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASSIFY) && defined(FP_PLUS_INF) && defined(FP_MINUS_INF))
-#  define HAVE_ISINF 1
-#  define isinf(a) (fpclassify(a) == FP_MINUS_INF || fpclassify(a) == FP_PLUS_INF)
-#endif
-
-#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASSIFY) && defined(FP_INFINITE))
-#  define HAVE_ISINF 1
-#  define isinf(a) (fpclassify(a) == FP_INFINITE)
-#endif
-
-#include <stdio.h>
-int main(void){
-    double rrdnan,rrdinf,rrdc,rrdzero;
-    ;
-    /* some math to see if we get a floating point exception */
-    rrdzero=sin(0.0); /* don't let the compiler optimize us away */
-    rrdnan=0.0/rrdzero; /* especially here */
-    rrdinf=1.0/rrdzero; /* and here. I want to know if it can do the magic */
-                 /* at run time without sig fpe */
-    rrdc = rrdinf + rrdnan;
-    rrdc = rrdinf / rrdnan;
-    if (! isnan(rrdnan)) {printf ("not isnan(NaN) ... "); return 1;}
-    if (rrdnan == rrdnan) {printf ("nan == nan ... "); return 1;}
-    if (! isinf(rrdinf)) {printf ("not isinf(oo) ... "); return 1;}
-    if (! isinf(-rrdinf)) {printf ("not isinf(-oo) ... "); return 1;}
-    if (! rrdinf > 0) {printf ("not inf > 0 ... "); return 1;}
-    if (! -rrdinf < 0) {printf ("not -inf < 0 ... "); return 1;}
-    return 0;
- }
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  rd_cv_ieee_works=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-rd_cv_ieee_works=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-
-if test x${rd_cv_ieee_works} = "xyes"; then
- { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
-
-else
- { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$_cflags -ieee"
-
-{ $as_echo "$as_me:$LINENO: checking if IEEE math works with the -ieee switch" >&5
-$as_echo_n "checking if IEEE math works with the -ieee switch... " >&6; }
-if test "${rd_cv_ieee_switch+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then
-  :
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-
-#if HAVE_MATH_H
-#  include <math.h>
-#endif
-
-#if HAVE_FLOAT_H
-#  include <float.h>
-#endif
-
-#if HAVE_IEEEFP_H
-#  include <ieeefp.h>
-#endif
-
-#if HAVE_FP_CLASS_H
-#  include <fp_class.h>
-#endif
-
-/* Solaris */
-#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASS))
-#  define HAVE_ISINF 1
-#  define isinf(a) (fpclass(a) == FP_NINF || fpclass(a) == FP_PINF)
-#endif
-
-/* solaris 10 it defines isnan such that only forte can compile it ... bad bad  */
-#if (defined(HAVE_ISNAN) && defined(isnan) && defined(HAVE_FPCLASS))
-#  undef isnan
-#  define isnan(a) (fpclass(a) == FP_SNAN || fpclass(a) == FP_QNAN)
-#endif
-
-/* Digital UNIX */
-#if (! defined(HAVE_ISINF) && defined(HAVE_FP_CLASS) && defined(HAVE_FP_CLASS_H))
-#  define HAVE_ISINF 1
-#  define isinf(a) (fp_class(a) == FP_NEG_INF || fp_class(a) == FP_POS_INF)
-#endif
-
-/* AIX */
-#if (! defined(HAVE_ISINF) && defined(HAVE_CLASS))
-#  define HAVE_ISINF 1
-#  define isinf(a) (class(a) == FP_MINUS_INF || class(a) == FP_PLUS_INF)
-#endif
-
-#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASSIFY) && defined(FP_PLUS_INF) && defined(FP_MINUS_INF))
-#  define HAVE_ISINF 1
-#  define isinf(a) (fpclassify(a) == FP_MINUS_INF || fpclassify(a) == FP_PLUS_INF)
-#endif
-
-#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASSIFY) && defined(FP_INFINITE))
-#  define HAVE_ISINF 1
-#  define isinf(a) (fpclassify(a) == FP_INFINITE)
-#endif
-
-#include <stdio.h>
-int main(void){
-    double rrdnan,rrdinf,rrdc,rrdzero;
-    ;
-    /* some math to see if we get a floating point exception */
-    rrdzero=sin(0.0); /* don't let the compiler optimize us away */
-    rrdnan=0.0/rrdzero; /* especially here */
-    rrdinf=1.0/rrdzero; /* and here. I want to know if it can do the magic */
-                 /* at run time without sig fpe */
-    rrdc = rrdinf + rrdnan;
-    rrdc = rrdinf / rrdnan;
-    if (! isnan(rrdnan)) {printf ("not isnan(NaN) ... "); return 1;}
-    if (rrdnan == rrdnan) {printf ("nan == nan ... "); return 1;}
-    if (! isinf(rrdinf)) {printf ("not isinf(oo) ... "); return 1;}
-    if (! isinf(-rrdinf)) {printf ("not isinf(-oo) ... "); return 1;}
-    if (! rrdinf > 0) {printf ("not inf > 0 ... "); return 1;}
-    if (! -rrdinf < 0) {printf ("not -inf < 0 ... "); return 1;}
-    return 0;
- }
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  rd_cv_ieee_switch=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-rd_cv_ieee_switch=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-
-if test x${rd_cv_ieee_switch} = "xyes"; then
- { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
-
-else
- { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$_cflags -qfloat=nofold"
-
-{ $as_echo "$as_me:$LINENO: checking if IEEE math works with the -qfloat=nofold switch" >&5
-$as_echo_n "checking if IEEE math works with the -qfloat=nofold switch... " >&6; }
-if test "${rd_cv_ieee_nofold+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then
-  :
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-
-#if HAVE_MATH_H
-#  include <math.h>
-#endif
-
-#if HAVE_FLOAT_H
-#  include <float.h>
-#endif
+                                                                                haveit=
+                    for x in $LDFLAGS $LIBINTL; do
 
-#if HAVE_IEEEFP_H
-#  include <ieeefp.h>
-#endif
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-#if HAVE_FP_CLASS_H
-#  include <fp_class.h>
-#endif
+                      if test "X$x" = "X-L$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir"
+                    fi
+                    if test "$hardcode_minus_L" != no; then
+                                                                                        LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+                    else
+                                                                                                                                                                                LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name"
+                    fi
+                  fi
+                fi
+              fi
+            else
+              if test "X$found_a" != "X"; then
+                                LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a"
+              else
+                                                LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name"
+              fi
+            fi
+                        additional_includedir=
+            case "$found_dir" in
+              */lib | */lib/)
+                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
+                additional_includedir="$basedir/include"
+                ;;
+            esac
+            if test "X$additional_includedir" != "X"; then
+                                                                                                                if test "X$additional_includedir" != "X/usr/include"; then
+                haveit=
+                if test "X$additional_includedir" = "X/usr/local/include"; then
+                  if test -n "$GCC"; then
+                    case $host_os in
+                      linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+                    esac
+                  fi
+                fi
+                if test -z "$haveit"; then
+                  for x in $CPPFLAGS $INCINTL; do
 
-/* Solaris */
-#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASS))
-#  define HAVE_ISINF 1
-#  define isinf(a) (fpclass(a) == FP_NINF || fpclass(a) == FP_PINF)
-#endif
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-/* solaris 10 it defines isnan such that only forte can compile it ... bad bad  */
-#if (defined(HAVE_ISNAN) && defined(isnan) && defined(HAVE_FPCLASS))
-#  undef isnan
-#  define isnan(a) (fpclass(a) == FP_SNAN || fpclass(a) == FP_QNAN)
-#endif
+                    if test "X$x" = "X-I$additional_includedir"; then
+                      haveit=yes
+                      break
+                    fi
+                  done
+                  if test -z "$haveit"; then
+                    if test -d "$additional_includedir"; then
+                                            INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir"
+                    fi
+                  fi
+                fi
+              fi
+            fi
+                        if test -n "$found_la"; then
+                                                        save_libdir="$libdir"
+              case "$found_la" in
+                */* | *\\*) . "$found_la" ;;
+                *) . "./$found_la" ;;
+              esac
+              libdir="$save_libdir"
+                            for dep in $dependency_libs; do
+                case "$dep" in
+                  -L*)
+                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+                                                                                                                                                                if test "X$additional_libdir" != "X/usr/lib"; then
+                      haveit=
+                      if test "X$additional_libdir" = "X/usr/local/lib"; then
+                        if test -n "$GCC"; then
+                          case $host_os in
+                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+                          esac
+                        fi
+                      fi
+                      if test -z "$haveit"; then
+                        haveit=
+                        for x in $LDFLAGS $LIBINTL; do
 
-/* Digital UNIX */
-#if (! defined(HAVE_ISINF) && defined(HAVE_FP_CLASS) && defined(HAVE_FP_CLASS_H))
-#  define HAVE_ISINF 1
-#  define isinf(a) (fp_class(a) == FP_NEG_INF || fp_class(a) == FP_POS_INF)
-#endif
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-/* AIX */
-#if (! defined(HAVE_ISINF) && defined(HAVE_CLASS))
-#  define HAVE_ISINF 1
-#  define isinf(a) (class(a) == FP_MINUS_INF || class(a) == FP_PLUS_INF)
-#endif
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                                                        LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir"
+                          fi
+                        fi
+                        haveit=
+                        for x in $LDFLAGS $LTLIBINTL; do
 
-#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASSIFY) && defined(FP_PLUS_INF) && defined(FP_MINUS_INF))
-#  define HAVE_ISINF 1
-#  define isinf(a) (fpclassify(a) == FP_MINUS_INF || fpclassify(a) == FP_PLUS_INF)
-#endif
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASSIFY) && defined(FP_INFINITE))
-#  define HAVE_ISINF 1
-#  define isinf(a) (fpclassify(a) == FP_INFINITE)
-#endif
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                                                        LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir"
+                          fi
+                        fi
+                      fi
+                    fi
+                    ;;
+                  -R*)
+                    dir=`echo "X$dep" | sed -e 's/^X-R//'`
+                    if test "$enable_rpath" != no; then
+                                                                  haveit=
+                      for x in $rpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        rpathdirs="$rpathdirs $dir"
+                      fi
+                                                                  haveit=
+                      for x in $ltrpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        ltrpathdirs="$ltrpathdirs $dir"
+                      fi
+                    fi
+                    ;;
+                  -l*)
+                                        names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+                    ;;
+                  *.la)
+                                                                                names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+                    ;;
+                  *)
+                                        LIBINTL="${LIBINTL}${LIBINTL:+ }$dep"
+                    LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep"
+                    ;;
+                esac
+              done
+            fi
+          else
+                                                            LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name"
+            LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name"
+          fi
+        fi
+      fi
+    done
+  done
+  if test "X$rpathdirs" != "X"; then
+    if test -n "$hardcode_libdir_separator"; then
+                        alldirs=
+      for found_dir in $rpathdirs; do
+        alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
+      done
+            acl_save_libdir="$libdir"
+      libdir="$alldirs"
+      eval flag=\"$hardcode_libdir_flag_spec\"
+      libdir="$acl_save_libdir"
+      LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
+    else
+            for found_dir in $rpathdirs; do
+        acl_save_libdir="$libdir"
+        libdir="$found_dir"
+        eval flag=\"$hardcode_libdir_flag_spec\"
+        libdir="$acl_save_libdir"
+        LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
+      done
+    fi
+  fi
+  if test "X$ltrpathdirs" != "X"; then
+            for found_dir in $ltrpathdirs; do
+      LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir"
+    done
+  fi
 
-#include <stdio.h>
-int main(void){
-    double rrdnan,rrdinf,rrdc,rrdzero;
-    ;
-    /* some math to see if we get a floating point exception */
-    rrdzero=sin(0.0); /* don't let the compiler optimize us away */
-    rrdnan=0.0/rrdzero; /* especially here */
-    rrdinf=1.0/rrdzero; /* and here. I want to know if it can do the magic */
-                 /* at run time without sig fpe */
-    rrdc = rrdinf + rrdnan;
-    rrdc = rrdinf / rrdnan;
-    if (! isnan(rrdnan)) {printf ("not isnan(NaN) ... "); return 1;}
-    if (rrdnan == rrdnan) {printf ("nan == nan ... "); return 1;}
-    if (! isinf(rrdinf)) {printf ("not isinf(oo) ... "); return 1;}
-    if (! isinf(-rrdinf)) {printf ("not isinf(-oo) ... "); return 1;}
-    if (! rrdinf > 0) {printf ("not inf > 0 ... "); return 1;}
-    if (! -rrdinf < 0) {printf ("not -inf < 0 ... "); return 1;}
-    return 0;
- }
+          { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5
+$as_echo_n "checking for GNU gettext in libintl... " >&6; }
+if test "${gt_cv_func_gnugettext1_libintl+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  gt_save_CPPFLAGS="$CPPFLAGS"
+            CPPFLAGS="$CPPFLAGS $INCINTL"
+            gt_save_LIBS="$LIBS"
+            LIBS="$LIBS $LIBINTL"
+                        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <libintl.h>
+extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias (const char *);
+int
+main ()
+{
+bindtextdomain ("", "");
+return * gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias ("")
+  ;
+  return 0;
+}
 _ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  rd_cv_ieee_nofold=yes
+if ac_fn_c_try_link "$LINENO"; then :
+  gt_cv_func_gnugettext1_libintl=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-rd_cv_ieee_nofold=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+  gt_cv_func_gnugettext1_libintl=no
 fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+                        if test "$gt_cv_func_gnugettext1_libintl" != yes && test -n "$LIBICONV"; then
+              LIBS="$LIBS $LIBICONV"
+              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <libintl.h>
+extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias (const char *);
+int
+main ()
+{
+bindtextdomain ("", "");
+return * gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias ("")
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  LIBINTL="$LIBINTL $LIBICONV"
+                LTLIBINTL="$LTLIBINTL $LTLIBICONV"
+                gt_cv_func_gnugettext1_libintl=yes
 
-
 fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+            fi
+            CPPFLAGS="$gt_save_CPPFLAGS"
+            LIBS="$gt_save_LIBS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_gnugettext1_libintl" >&5
+$as_echo "$gt_cv_func_gnugettext1_libintl" >&6; }
+        fi
 
-if test x${rd_cv_ieee_nofold} = "xyes"; then
- { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
+                                        if test "$gt_cv_func_gnugettext1_libc" = "yes" \
+           || { test "$gt_cv_func_gnugettext1_libintl" = "yes" \
+                && test "$PACKAGE" != gettext-runtime \
+                && test "$PACKAGE" != gettext-tools; }; then
+          gt_use_preinstalled_gnugettext=yes
+        else
+                    LIBINTL=
+          LTLIBINTL=
+          INCINTL=
+        fi
 
-else
- { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$_cflags -w -qflttrap=enable:zerodivide"
 
-{ $as_echo "$as_me:$LINENO: checking if IEEE math works with the -w -qflttrap=enable:zerodivide" >&5
-$as_echo_n "checking if IEEE math works with the -w -qflttrap=enable:zerodivide... " >&6; }
-if test "${rd_cv_ieee_flttrap+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then
-  :
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
+        if test "$gt_use_preinstalled_gnugettext" != "yes"; then
+                              nls_cv_use_gnu_gettext=yes
+        fi
+      fi
 
+      if test "$nls_cv_use_gnu_gettext" = "yes"; then
+                BUILD_INCLUDED_LIBINTL=yes
+        USE_INCLUDED_LIBINTL=yes
+        LIBINTL="\${top_builddir}/intl/libintl.a $LIBICONV"
+        LTLIBINTL="\${top_builddir}/intl/libintl.a $LTLIBICONV"
+        LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
+      fi
 
-#if HAVE_MATH_H
-#  include <math.h>
-#endif
+      CATOBJEXT=
+      if test "$gt_use_preinstalled_gnugettext" = "yes" \
+         || test "$nls_cv_use_gnu_gettext" = "yes"; then
+                CATOBJEXT=.gmo
+      fi
 
-#if HAVE_FLOAT_H
-#  include <float.h>
-#endif
 
-#if HAVE_IEEEFP_H
-#  include <ieeefp.h>
-#endif
+    if test -n "$INTL_MACOSX_LIBS"; then
+      if test "$gt_use_preinstalled_gnugettext" = "yes" \
+         || test "$nls_cv_use_gnu_gettext" = "yes"; then
+                LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
+        LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
+      fi
+    fi
 
-#if HAVE_FP_CLASS_H
-#  include <fp_class.h>
-#endif
+    if test "$gt_use_preinstalled_gnugettext" = "yes" \
+       || test "$nls_cv_use_gnu_gettext" = "yes"; then
 
-/* Solaris */
-#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASS))
-#  define HAVE_ISINF 1
-#  define isinf(a) (fpclass(a) == FP_NINF || fpclass(a) == FP_PINF)
-#endif
+$as_echo "#define ENABLE_NLS 1" >>confdefs.h
 
-/* solaris 10 it defines isnan such that only forte can compile it ... bad bad  */
-#if (defined(HAVE_ISNAN) && defined(isnan) && defined(HAVE_FPCLASS))
-#  undef isnan
-#  define isnan(a) (fpclass(a) == FP_SNAN || fpclass(a) == FP_QNAN)
-#endif
+    else
+      USE_NLS=no
+    fi
+  fi
 
-/* Digital UNIX */
-#if (! defined(HAVE_ISINF) && defined(HAVE_FP_CLASS) && defined(HAVE_FP_CLASS_H))
-#  define HAVE_ISINF 1
-#  define isinf(a) (fp_class(a) == FP_NEG_INF || fp_class(a) == FP_POS_INF)
-#endif
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5
+$as_echo_n "checking whether to use NLS... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
+$as_echo "$USE_NLS" >&6; }
+  if test "$USE_NLS" = "yes"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5
+$as_echo_n "checking where the gettext function comes from... " >&6; }
+    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+      if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then
+        gt_source="external libintl"
+      else
+        gt_source="libc"
+      fi
+    else
+      gt_source="included intl directory"
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5
+$as_echo "$gt_source" >&6; }
+  fi
 
-/* AIX */
-#if (! defined(HAVE_ISINF) && defined(HAVE_CLASS))
-#  define HAVE_ISINF 1
-#  define isinf(a) (class(a) == FP_MINUS_INF || class(a) == FP_PLUS_INF)
-#endif
+  if test "$USE_NLS" = "yes"; then
 
-#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASSIFY) && defined(FP_PLUS_INF) && defined(FP_MINUS_INF))
-#  define HAVE_ISINF 1
-#  define isinf(a) (fpclassify(a) == FP_MINUS_INF || fpclassify(a) == FP_PLUS_INF)
-#endif
+    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+      if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5
+$as_echo_n "checking how to link with libintl... " >&6; }
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5
+$as_echo "$LIBINTL" >&6; }
 
-#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASSIFY) && defined(FP_INFINITE))
-#  define HAVE_ISINF 1
-#  define isinf(a) (fpclassify(a) == FP_INFINITE)
-#endif
+  for element in $INCINTL; do
+    haveit=
+    for x in $CPPFLAGS; do
 
-#include <stdio.h>
-int main(void){
-    double rrdnan,rrdinf,rrdc,rrdzero;
-    ;
-    /* some math to see if we get a floating point exception */
-    rrdzero=sin(0.0); /* don't let the compiler optimize us away */
-    rrdnan=0.0/rrdzero; /* especially here */
-    rrdinf=1.0/rrdzero; /* and here. I want to know if it can do the magic */
-                 /* at run time without sig fpe */
-    rrdc = rrdinf + rrdnan;
-    rrdc = rrdinf / rrdnan;
-    if (! isnan(rrdnan)) {printf ("not isnan(NaN) ... "); return 1;}
-    if (rrdnan == rrdnan) {printf ("nan == nan ... "); return 1;}
-    if (! isinf(rrdinf)) {printf ("not isinf(oo) ... "); return 1;}
-    if (! isinf(-rrdinf)) {printf ("not isinf(-oo) ... "); return 1;}
-    if (! rrdinf > 0) {printf ("not inf > 0 ... "); return 1;}
-    if (! -rrdinf < 0) {printf ("not -inf < 0 ... "); return 1;}
-    return 0;
- }
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  rd_cv_ieee_flttrap=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-( exit $ac_status )
-rd_cv_ieee_flttrap=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
+      if test "X$x" = "X$element"; then
+        haveit=yes
+        break
+      fi
+    done
+    if test -z "$haveit"; then
+      CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
+    fi
+  done
 
+      fi
 
-fi
 
-if test x${rd_cv_ieee_flttrap} = "xyes"; then
- { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
+$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h
 
-else
- { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$_cflags -mieee"
 
-{ $as_echo "$as_me:$LINENO: checking if IEEE math works with the -mieee switch" >&5
-$as_echo_n "checking if IEEE math works with the -mieee switch... " >&6; }
-if test "${rd_cv_ieee_mswitch+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then
-  :
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
+$as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h
 
+    fi
 
-#if HAVE_MATH_H
-#  include <math.h>
-#endif
+        POSUB=po
+  fi
 
-#if HAVE_FLOAT_H
-#  include <float.h>
-#endif
 
-#if HAVE_IEEEFP_H
-#  include <ieeefp.h>
-#endif
+            if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then
+      BUILD_INCLUDED_LIBINTL=yes
+    fi
 
-#if HAVE_FP_CLASS_H
-#  include <fp_class.h>
-#endif
 
-/* Solaris */
-#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASS))
-#  define HAVE_ISINF 1
-#  define isinf(a) (fpclass(a) == FP_NINF || fpclass(a) == FP_PINF)
-#endif
 
-/* solaris 10 it defines isnan such that only forte can compile it ... bad bad  */
-#if (defined(HAVE_ISNAN) && defined(isnan) && defined(HAVE_FPCLASS))
-#  undef isnan
-#  define isnan(a) (fpclass(a) == FP_SNAN || fpclass(a) == FP_QNAN)
-#endif
 
-/* Digital UNIX */
-#if (! defined(HAVE_ISINF) && defined(HAVE_FP_CLASS) && defined(HAVE_FP_CLASS_H))
-#  define HAVE_ISINF 1
-#  define isinf(a) (fp_class(a) == FP_NEG_INF || fp_class(a) == FP_POS_INF)
-#endif
 
-/* AIX */
-#if (! defined(HAVE_ISINF) && defined(HAVE_CLASS))
-#  define HAVE_ISINF 1
-#  define isinf(a) (class(a) == FP_MINUS_INF || class(a) == FP_PLUS_INF)
-#endif
+        nls_cv_header_intl=
+    nls_cv_header_libgt=
 
-#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASSIFY) && defined(FP_PLUS_INF) && defined(FP_MINUS_INF))
-#  define HAVE_ISINF 1
-#  define isinf(a) (fpclassify(a) == FP_MINUS_INF || fpclassify(a) == FP_PLUS_INF)
-#endif
+        DATADIRNAME=share
 
-#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASSIFY) && defined(FP_INFINITE))
-#  define HAVE_ISINF 1
-#  define isinf(a) (fpclassify(a) == FP_INFINITE)
-#endif
 
-#include <stdio.h>
-int main(void){
-    double rrdnan,rrdinf,rrdc,rrdzero;
-    ;
-    /* some math to see if we get a floating point exception */
-    rrdzero=sin(0.0); /* don't let the compiler optimize us away */
-    rrdnan=0.0/rrdzero; /* especially here */
-    rrdinf=1.0/rrdzero; /* and here. I want to know if it can do the magic */
-                 /* at run time without sig fpe */
-    rrdc = rrdinf + rrdnan;
-    rrdc = rrdinf / rrdnan;
-    if (! isnan(rrdnan)) {printf ("not isnan(NaN) ... "); return 1;}
-    if (rrdnan == rrdnan) {printf ("nan == nan ... "); return 1;}
-    if (! isinf(rrdinf)) {printf ("not isinf(oo) ... "); return 1;}
-    if (! isinf(-rrdinf)) {printf ("not isinf(-oo) ... "); return 1;}
-    if (! rrdinf > 0) {printf ("not inf > 0 ... "); return 1;}
-    if (! -rrdinf < 0) {printf ("not -inf < 0 ... "); return 1;}
-    return 0;
- }
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  rd_cv_ieee_mswitch=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+        INSTOBJEXT=.mo
 
-( exit $ac_status )
-rd_cv_ieee_mswitch=no
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
 
+        GENCAT=gencat
 
-fi
 
-if test x${rd_cv_ieee_mswitch} = "xyes"; then
- { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
+        INTLOBJS=
+    if test "$USE_INCLUDED_LIBINTL" = yes; then
+      INTLOBJS="\$(GETTOBJS)"
+    fi
 
-else
- { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$_cflags -q float=rndsngl"
 
-{ $as_echo "$as_me:$LINENO: checking if IEEE math works with the -q float=rndsngl switch" >&5
-$as_echo_n "checking if IEEE math works with the -q float=rndsngl switch... " >&6; }
-if test "${rd_cv_ieee_qswitch+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then
-  :
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
+        INTL_LIBTOOL_SUFFIX_PREFIX=
 
 
-#if HAVE_MATH_H
-#  include <math.h>
-#endif
 
-#if HAVE_FLOAT_H
-#  include <float.h>
-#endif
+    INTLLIBS="$LIBINTL"
 
-#if HAVE_IEEEFP_H
-#  include <ieeefp.h>
-#endif
 
-#if HAVE_FP_CLASS_H
-#  include <fp_class.h>
-#endif
 
-/* Solaris */
-#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASS))
-#  define HAVE_ISINF 1
-#  define isinf(a) (fpclass(a) == FP_NINF || fpclass(a) == FP_PINF)
-#endif
 
-/* solaris 10 it defines isnan such that only forte can compile it ... bad bad  */
-#if (defined(HAVE_ISNAN) && defined(isnan) && defined(HAVE_FPCLASS))
-#  undef isnan
-#  define isnan(a) (fpclass(a) == FP_SNAN || fpclass(a) == FP_QNAN)
-#endif
 
-/* Digital UNIX */
-#if (! defined(HAVE_ISINF) && defined(HAVE_FP_CLASS) && defined(HAVE_FP_CLASS_H))
-#  define HAVE_ISINF 1
-#  define isinf(a) (fp_class(a) == FP_NEG_INF || fp_class(a) == FP_POS_INF)
-#endif
 
-/* AIX */
-#if (! defined(HAVE_ISINF) && defined(HAVE_CLASS))
-#  define HAVE_ISINF 1
-#  define isinf(a) (class(a) == FP_MINUS_INF || class(a) == FP_PLUS_INF)
-#endif
 
-#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASSIFY) && defined(FP_PLUS_INF) && defined(FP_MINUS_INF))
-#  define HAVE_ISINF 1
-#  define isinf(a) (fpclassify(a) == FP_MINUS_INF || fpclassify(a) == FP_PLUS_INF)
-#endif
 
-#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASSIFY) && defined(FP_INFINITE))
-#  define HAVE_ISINF 1
-#  define isinf(a) (fpclassify(a) == FP_INFINITE)
-#endif
+case $TERM in
+       #   for the most important terminal types we directly know the sequences
+       xterm|xterm*|vt220|vt220*)
+               T_MD=`awk 'BEGIN { printf("%c%c%c%c", 27, 91, 49, 109); }' </dev/null 2>/dev/null`
+               T_ME=`awk 'BEGIN { printf("%c%c%c", 27, 91, 109); }' </dev/null 2>/dev/null`
+       ;;
+       vt100|vt100*|cygwin)
+               T_MD=`awk 'BEGIN { printf("%c%c%c%c%c%c", 27, 91, 49, 109, 0, 0); }' </dev/null 2>/dev/null`
+               T_ME=`awk 'BEGIN { printf("%c%c%c%c%c", 27, 91, 109, 0, 0); }' </dev/null 2>/dev/null`
+       ;;
+       *)
+               T_MD=''
+               T_ME=''
+       ;;
+esac
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
+$as_echo "" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${T_MD}IEEE Math Checks${T_ME}" >&5
+$as_echo "${T_MD}IEEE Math Checks${T_ME}" >&6; }
 
-#include <stdio.h>
-int main(void){
-    double rrdnan,rrdinf,rrdc,rrdzero;
-    ;
-    /* some math to see if we get a floating point exception */
-    rrdzero=sin(0.0); /* don't let the compiler optimize us away */
-    rrdnan=0.0/rrdzero; /* especially here */
-    rrdinf=1.0/rrdzero; /* and here. I want to know if it can do the magic */
-                 /* at run time without sig fpe */
-    rrdc = rrdinf + rrdnan;
-    rrdc = rrdinf / rrdnan;
-    if (! isnan(rrdnan)) {printf ("not isnan(NaN) ... "); return 1;}
-    if (rrdnan == rrdnan) {printf ("nan == nan ... "); return 1;}
-    if (! isinf(rrdinf)) {printf ("not isinf(oo) ... "); return 1;}
-    if (! isinf(-rrdinf)) {printf ("not isinf(-oo) ... "); return 1;}
-    if (! rrdinf > 0) {printf ("not inf > 0 ... "); return 1;}
-    if (! -rrdinf < 0) {printf ("not -inf < 0 ... "); return 1;}
-    return 0;
- }
+
+
+for ac_func in fpclassify
+do :
+  ac_fn_c_check_func "$LINENO" "fpclassify" "ac_cv_func_fpclassify"
+if test "x$ac_cv_func_fpclassify" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_FPCLASSIFY 1
 _ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  rd_cv_ieee_qswitch=yes
+
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fpclassify with <math.h>" >&5
+$as_echo_n "checking for fpclassify with <math.h>... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <math.h>
+volatile int x;volatile float f;
+int
+main ()
+{
+x = fpclassify(f)
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+      $as_echo "#define HAVE_FPCLASSIFY 1" >>confdefs.h
 
-( exit $ac_status )
-rd_cv_ieee_qswitch=no
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 fi
+done
 
 
-fi
+for ac_func in isinf
+do :
+  ac_fn_c_check_func "$LINENO" "isinf" "ac_cv_func_isinf"
+if test "x$ac_cv_func_isinf" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_ISINF 1
+_ACEOF
 
-if test x${rd_cv_ieee_qswitch} = "xyes"; then
- { $as_echo "$as_me:$LINENO: result: yes" >&5
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for isinf with <math.h>" >&5
+$as_echo_n "checking for isinf with <math.h>... " >&6; }
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <math.h>
+volatile int x;volatile float f;
+int
+main ()
+{
+x = isinf(f)
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
+      $as_echo "#define HAVE_ISINF 1" >>confdefs.h
 
 else
{ $as_echo "$as_me:$LINENO: result: no" >&5
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
- CFLAGS="$_cflags -OPT:IEEE_NaN_inf=ON"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+fi
+done
 
-{ $as_echo "$as_me:$LINENO: checking if IEEE math works with the -OPT:IEEE_NaN_inf=ON switch" >&5
-$as_echo_n "checking if IEEE math works with the -OPT:IEEE_NaN_inf=ON switch... " >&6; }
-if test "${rd_cv_ieee_ieeenaninfswitch+set}" = set; then
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether isfinite is broken" >&5
+$as_echo_n "checking whether isfinite is broken... " >&6; }
+if test "${ac_cv_have_broken_isfinite+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
-  :
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
+if test "$cross_compiling" = yes; then :
 
-#if HAVE_MATH_H
-#  include <math.h>
-#endif
+case "${target}" in
+  hppa*-*-hpux*) ac_cv_have_broken_isfinite=yes ;;
+  *-solaris2.8) ac_cv_have_broken_isfinite=yes ;;
+  *-solaris2.9) ac_cv_have_broken_isfinite=yes ;;
+  *) ac_cv_have_broken_isfinite=no ;;
+esac
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-#if HAVE_FLOAT_H
-#  include <float.h>
+#ifdef HAVE_MATH_H
+#include <math.h>
 #endif
-
-#if HAVE_IEEEFP_H
-#  include <ieeefp.h>
+#ifdef HAVE_FLOAT_H
+#include <float.h>
 #endif
-
-#if HAVE_FP_CLASS_H
-#  include <fp_class.h>
+int main ()
+{
+#ifdef isfinite
+#ifdef LDBL_MAX
+  if (!isfinite(LDBL_MAX)) return 1;
 #endif
-
-/* Solaris */
-#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASS))
-#  define HAVE_ISINF 1
-#  define isinf(a) (fpclass(a) == FP_NINF || fpclass(a) == FP_PINF)
+#ifdef DBL_MAX
+  if (!isfinite(DBL_MAX)) return 1;
 #endif
-
-/* solaris 10 it defines isnan such that only forte can compile it ... bad bad  */
-#if (defined(HAVE_ISNAN) && defined(isnan) && defined(HAVE_FPCLASS))
-#  undef isnan
-#  define isnan(a) (fpclass(a) == FP_SNAN || fpclass(a) == FP_QNAN)
 #endif
+return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  ac_cv_have_broken_isfinite=no
+else
+  ac_cv_have_broken_isfinite=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
 
-/* Digital UNIX */
-#if (! defined(HAVE_ISINF) && defined(HAVE_FP_CLASS) && defined(HAVE_FP_CLASS_H))
-#  define HAVE_ISINF 1
-#  define isinf(a) (fp_class(a) == FP_NEG_INF || fp_class(a) == FP_POS_INF)
-#endif
 
-/* AIX */
-#if (! defined(HAVE_ISINF) && defined(HAVE_CLASS))
-#  define HAVE_ISINF 1
-#  define isinf(a) (class(a) == FP_MINUS_INF || class(a) == FP_PLUS_INF)
-#endif
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_broken_isfinite" >&5
+$as_echo "$ac_cv_have_broken_isfinite" >&6; }
 
-#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASSIFY) && defined(FP_PLUS_INF) && defined(FP_MINUS_INF))
-#  define HAVE_ISINF 1
-#  define isinf(a) (fpclassify(a) == FP_MINUS_INF || fpclassify(a) == FP_PLUS_INF)
-#endif
+case "${target}" in
+  *-solaris2.8) ac_cv_have_broken_isfinite=yes ;;
+  *-solaris2.9) ac_cv_have_broken_isfinite=yes ;;
+esac
 
-#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASSIFY) && defined(FP_INFINITE))
-#  define HAVE_ISINF 1
-#  define isinf(a) (fpclassify(a) == FP_INFINITE)
-#endif
+if test "x$ac_cv_have_broken_isfinite" = "xno"; then
+  $as_echo "#define HAVE_ISFINITE 1" >>confdefs.h
 
-#include <stdio.h>
-int main(void){
-    double rrdnan,rrdinf,rrdc,rrdzero;
-    ;
-    /* some math to see if we get a floating point exception */
-    rrdzero=sin(0.0); /* don't let the compiler optimize us away */
-    rrdnan=0.0/rrdzero; /* especially here */
-    rrdinf=1.0/rrdzero; /* and here. I want to know if it can do the magic */
-                 /* at run time without sig fpe */
-    rrdc = rrdinf + rrdnan;
-    rrdc = rrdinf / rrdnan;
-    if (! isnan(rrdnan)) {printf ("not isnan(NaN) ... "); return 1;}
-    if (rrdnan == rrdnan) {printf ("nan == nan ... "); return 1;}
-    if (! isinf(rrdinf)) {printf ("not isinf(oo) ... "); return 1;}
-    if (! isinf(-rrdinf)) {printf ("not isinf(-oo) ... "); return 1;}
-    if (! rrdinf > 0) {printf ("not inf > 0 ... "); return 1;}
-    if (! -rrdinf < 0) {printf ("not -inf < 0 ... "); return 1;}
-    return 0;
- }
+else
+  for ac_func in finite
+do :
+  ac_fn_c_check_func "$LINENO" "finite" "ac_cv_func_finite"
+if test "x$ac_cv_func_finite" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_FINITE 1
 _ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  rd_cv_ieee_ieeenaninfswitch=yes
+
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  for ac_func in isfinite
+do :
+  ac_fn_c_check_func "$LINENO" "isfinite" "ac_cv_func_isfinite"
+if test "x$ac_cv_func_isfinite" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_ISFINITE 1
+_ACEOF
+
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for isfinite with <math.h>" >&5
+$as_echo_n "checking for isfinite with <math.h>... " >&6; }
+          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <math.h>
+volatile int x;volatile float f;
+int
+main ()
+{
+x = isfinite(f)
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+               $as_echo "#define HAVE_ISFINITE 1" >>confdefs.h
 
-( exit $ac_status )
-rd_cv_ieee_ieeenaninfswitch=no
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 fi
+done
 
+fi
+done
 
 fi
 
-if test x${rd_cv_ieee_ieeenaninfswitch} = "xyes"; then
- { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
 
-else
- { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$_cflags -OPT:IEEE_comparisons=ON"
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-{ $as_echo "$as_me:$LINENO: checking if IEEE math works with the -OPT:IEEE_comparisons=ON switch" >&5
-$as_echo_n "checking if IEEE math works with the -OPT:IEEE_comparisons=ON switch... " >&6; }
-if test "${rd_cv_ieee_ieeecmpswitch+set}" = set; then
+_cflags=${CFLAGS}
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if IEEE math works out of the box" >&5
+$as_echo_n "checking if IEEE math works out of the box... " >&6; }
+if test "${rd_cv_ieee_works+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
+  if test "$cross_compiling" = yes; then :
   :
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 
@@ -24694,13 +17024,13 @@ cat >>conftest.$ac_ext <<_ACEOF
 #endif
 
 /* solaris 10 it defines isnan such that only forte can compile it ... bad bad  */
-#if (defined(HAVE_ISNAN) && defined(isnan) && defined(HAVE_FPCLASS))
+#if (defined(HAVE_ISNAN) && defined(isnan) && defined(HAVE_FPCLASS) && defined(FP_SNAN) && defined(FP_QNAN))
 #  undef isnan
 #  define isnan(a) (fpclass(a) == FP_SNAN || fpclass(a) == FP_QNAN)
 #endif
 
 /* Digital UNIX */
-#if (! defined(HAVE_ISINF) && defined(HAVE_FP_CLASS) && defined(HAVE_FP_CLASS_H))
+#if (! defined(HAVE_ISINF) && defined(HAVE_FP_CLASS) && defined(HAVE_FP_CLASS_H) && defined(FP_NEG_INF) && defined( FP_POS_INF) )
 #  define HAVE_ISINF 1
 #  define isinf(a) (fp_class(a) == FP_NEG_INF || fp_class(a) == FP_POS_INF)
 #endif
@@ -24721,6 +17051,10 @@ cat >>conftest.$ac_ext <<_ACEOF
 #  define isinf(a) (fpclassify(a) == FP_INFINITE)
 #endif
 
+#if HAVE_MATH_H
+#include <math.h>
+#endif
+
 #include <stdio.h>
 int main(void){
     double rrdnan,rrdinf,rrdc,rrdzero;
@@ -24741,68 +17075,37 @@ int main(void){
     return 0;
  }
 _ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  rd_cv_ieee_ieeecmpswitch=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  rd_cv_ieee_works=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-rd_cv_ieee_ieeecmpswitch=no
+  rd_cv_ieee_works=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
 fi
 
-if test x${rd_cv_ieee_ieeecmpswitch} = "xyes"; then
- { $as_echo "$as_me:$LINENO: result: yes" >&5
+if test x${rd_cv_ieee_works} = "xyes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
 else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
- CFLAGS=$_cflags
+ CFLAGS="$_cflags -ieee"
 
-{ $as_echo "$as_me:$LINENO: checking if IEEE math works with fpsetmask(0)" >&5
-$as_echo_n "checking if IEEE math works with fpsetmask(0)... " >&6; }
-if test "${rd_cv_ieee_mask+set}" = set; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if IEEE math works with the -ieee switch" >&5
+$as_echo_n "checking if IEEE math works with the -ieee switch... " >&6; }
+if test "${rd_cv_ieee_switch+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
+  if test "$cross_compiling" = yes; then :
   :
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <floatingpoint.h>
+
 
 #if HAVE_MATH_H
 #  include <math.h>
@@ -24827,13 +17130,13 @@ cat >>conftest.$ac_ext <<_ACEOF
 #endif
 
 /* solaris 10 it defines isnan such that only forte can compile it ... bad bad  */
-#if (defined(HAVE_ISNAN) && defined(isnan) && defined(HAVE_FPCLASS))
+#if (defined(HAVE_ISNAN) && defined(isnan) && defined(HAVE_FPCLASS) && defined(FP_SNAN) && defined(FP_QNAN))
 #  undef isnan
 #  define isnan(a) (fpclass(a) == FP_SNAN || fpclass(a) == FP_QNAN)
 #endif
 
 /* Digital UNIX */
-#if (! defined(HAVE_ISINF) && defined(HAVE_FP_CLASS) && defined(HAVE_FP_CLASS_H))
+#if (! defined(HAVE_ISINF) && defined(HAVE_FP_CLASS) && defined(HAVE_FP_CLASS_H) && defined(FP_NEG_INF) && defined( FP_POS_INF) )
 #  define HAVE_ISINF 1
 #  define isinf(a) (fp_class(a) == FP_NEG_INF || fp_class(a) == FP_POS_INF)
 #endif
@@ -24854,10 +17157,14 @@ cat >>conftest.$ac_ext <<_ACEOF
 #  define isinf(a) (fpclassify(a) == FP_INFINITE)
 #endif
 
+#if HAVE_MATH_H
+#include <math.h>
+#endif
+
 #include <stdio.h>
 int main(void){
     double rrdnan,rrdinf,rrdc,rrdzero;
-    fpsetmask(0);
+    ;
     /* some math to see if we get a floating point exception */
     rrdzero=sin(0.0); /* don't let the compiler optimize us away */
     rrdnan=0.0/rrdzero; /* especially here */
@@ -24874,71 +17181,37 @@ int main(void){
     return 0;
  }
 _ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  rd_cv_ieee_mask=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  rd_cv_ieee_switch=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-rd_cv_ieee_mask=no
+  rd_cv_ieee_switch=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
 fi
 
-if test x${rd_cv_ieee_mask} = "xyes"; then
- { $as_echo "$as_me:$LINENO: result: yes" >&5
+if test x${rd_cv_ieee_switch} = "xyes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
- cat >>confdefs.h <<\_ACEOF
-#define MUST_DISABLE_FPMASK 1
-_ACEOF
 
-                PERLFLAGS="CCFLAGS=-DMUST_DISABLE_FPMASK"
 else
- { $as_echo "$as_me:$LINENO: result: no" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
+ CFLAGS="$_cflags -qfloat=nofold"
 
-{ $as_echo "$as_me:$LINENO: checking if IEEE math works with signal(SIGFPE,SIG_IGN)" >&5
-$as_echo_n "checking if IEEE math works with signal(SIGFPE,SIG_IGN)... " >&6; }
-if test "${rd_cv_ieee_sigfpe+set}" = set; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if IEEE math works with the -qfloat=nofold switch" >&5
+$as_echo_n "checking if IEEE math works with the -qfloat=nofold switch... " >&6; }
+if test "${rd_cv_ieee_nofold+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
+  if test "$cross_compiling" = yes; then :
   :
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <signal.h>
+
 
 #if HAVE_MATH_H
 #  include <math.h>
@@ -24963,13 +17236,13 @@ cat >>conftest.$ac_ext <<_ACEOF
 #endif
 
 /* solaris 10 it defines isnan such that only forte can compile it ... bad bad  */
-#if (defined(HAVE_ISNAN) && defined(isnan) && defined(HAVE_FPCLASS))
+#if (defined(HAVE_ISNAN) && defined(isnan) && defined(HAVE_FPCLASS) && defined(FP_SNAN) && defined(FP_QNAN))
 #  undef isnan
 #  define isnan(a) (fpclass(a) == FP_SNAN || fpclass(a) == FP_QNAN)
 #endif
 
 /* Digital UNIX */
-#if (! defined(HAVE_ISINF) && defined(HAVE_FP_CLASS) && defined(HAVE_FP_CLASS_H))
+#if (! defined(HAVE_ISINF) && defined(HAVE_FP_CLASS) && defined(HAVE_FP_CLASS_H) && defined(FP_NEG_INF) && defined( FP_POS_INF) )
 #  define HAVE_ISINF 1
 #  define isinf(a) (fp_class(a) == FP_NEG_INF || fp_class(a) == FP_POS_INF)
 #endif
@@ -24990,10 +17263,14 @@ cat >>conftest.$ac_ext <<_ACEOF
 #  define isinf(a) (fpclassify(a) == FP_INFINITE)
 #endif
 
+#if HAVE_MATH_H
+#include <math.h>
+#endif
+
 #include <stdio.h>
 int main(void){
     double rrdnan,rrdinf,rrdc,rrdzero;
-    signal(SIGFPE,SIG_IGN);
+    ;
     /* some math to see if we get a floating point exception */
     rrdzero=sin(0.0); /* don't let the compiler optimize us away */
     rrdnan=0.0/rrdzero; /* especially here */
@@ -25010,1913 +17287,1112 @@ int main(void){
     return 0;
  }
 _ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  rd_cv_ieee_sigfpe=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  rd_cv_ieee_nofold=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-rd_cv_ieee_sigfpe=no
+  rd_cv_ieee_nofold=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
 fi
 
-if test x${rd_cv_ieee_sigfpe} = "xyes"; then
- { $as_echo "$as_me:$LINENO: result: yes" >&5
+if test x${rd_cv_ieee_nofold} = "xyes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
- cat >>confdefs.h <<\_ACEOF
-#define MUST_DISABLE_SIGFPE 1
-_ACEOF
-
-                   PERLFLAGS="CCFLAGS=-DMUST_DISABLE_SIGFPE"
-else
- { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
- { { $as_echo "$as_me:$LINENO: error:
-Your Compiler does not do propper IEEE math ... Please find out how to
-make IEEE math work with your compiler and let me know (tobi@oetiker.ch).
-Check config.log to see what went wrong ...
-" >&5
-$as_echo "$as_me: error:
-Your Compiler does not do propper IEEE math ... Please find out how to
-make IEEE math work with your compiler and let me know (tobi@oetiker.ch).
-Check config.log to see what went wrong ...
-" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
 
-fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ CFLAGS="$_cflags -w -qflttrap=enable:zerodivide"
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if IEEE math works with the -w -qflttrap=enable:zerodivide" >&5
+$as_echo_n "checking if IEEE math works with the -w -qflttrap=enable:zerodivide... " >&6; }
+if test "${rd_cv_ieee_flttrap+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-fi
 
+#if HAVE_MATH_H
+#  include <math.h>
+#endif
 
+#if HAVE_FLOAT_H
+#  include <float.h>
+#endif
 
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+#if HAVE_IEEEFP_H
+#  include <ieeefp.h>
+#endif
 
+#if HAVE_FP_CLASS_H
+#  include <fp_class.h>
+#endif
 
+/* Solaris */
+#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASS))
+#  define HAVE_ISINF 1
+#  define isinf(a) (fpclass(a) == FP_NINF || fpclass(a) == FP_PINF)
+#endif
 
+/* solaris 10 it defines isnan such that only forte can compile it ... bad bad  */
+#if (defined(HAVE_ISNAN) && defined(isnan) && defined(HAVE_FPCLASS) && defined(FP_SNAN) && defined(FP_QNAN))
+#  undef isnan
+#  define isnan(a) (fpclass(a) == FP_SNAN || fpclass(a) == FP_QNAN)
+#endif
 
+/* Digital UNIX */
+#if (! defined(HAVE_ISINF) && defined(HAVE_FP_CLASS) && defined(HAVE_FP_CLASS_H) && defined(FP_NEG_INF) && defined( FP_POS_INF) )
+#  define HAVE_ISINF 1
+#  define isinf(a) (fp_class(a) == FP_NEG_INF || fp_class(a) == FP_POS_INF)
+#endif
 
-case $TERM in
-       #   for the most important terminal types we directly know the sequences
-       xterm|xterm*|vt220|vt220*)
-               T_MD=`awk 'BEGIN { printf("%c%c%c%c", 27, 91, 49, 109); }' </dev/null 2>/dev/null`
-               T_ME=`awk 'BEGIN { printf("%c%c%c", 27, 91, 109); }' </dev/null 2>/dev/null`
-       ;;
-       vt100|vt100*|cygwin)
-               T_MD=`awk 'BEGIN { printf("%c%c%c%c%c%c", 27, 91, 49, 109, 0, 0); }' </dev/null 2>/dev/null`
-               T_ME=`awk 'BEGIN { printf("%c%c%c%c%c", 27, 91, 109, 0, 0); }' </dev/null 2>/dev/null`
-       ;;
-       *)
-               T_MD=''
-               T_ME=''
-       ;;
-esac
-  { $as_echo "$as_me:$LINENO: result: " >&5
-$as_echo "" >&6; }
-  { $as_echo "$as_me:$LINENO: result: ${T_MD}Resolve Portability Issues${T_ME}" >&5
-$as_echo "${T_MD}Resolve Portability Issues${T_ME}" >&6; }
+/* AIX */
+#if (! defined(HAVE_ISINF) && defined(HAVE_CLASS))
+#  define HAVE_ISINF 1
+#  define isinf(a) (class(a) == FP_MINUS_INF || class(a) == FP_PLUS_INF)
+#endif
 
+#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASSIFY) && defined(FP_PLUS_INF) && defined(FP_MINUS_INF))
+#  define HAVE_ISINF 1
+#  define isinf(a) (fpclassify(a) == FP_MINUS_INF || fpclassify(a) == FP_PLUS_INF)
+#endif
 
+#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASSIFY) && defined(FP_INFINITE))
+#  define HAVE_ISINF 1
+#  define isinf(a) (fpclassify(a) == FP_INFINITE)
+#endif
 
-{ $as_echo "$as_me:$LINENO: checking if msync with MS_ASYNC updates the files mtime" >&5
-$as_echo_n "checking if msync with MS_ASYNC updates the files mtime... " >&6; }
-if test "${rd_cv_ms_async+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then
-  :
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
+#if HAVE_MATH_H
+#include <math.h>
+#endif
 
-#include <fcntl.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
 #include <stdio.h>
-#include <sys/mman.h>
-#include <stdlib.h>
-#include <utime.h>
 int main(void){
-        int fd;
-        struct stat stbuf;
-        char *addr;
-        int res;
-        char temp[] = "mmaptestXXXXXX";
-        struct utimbuf newtime;
-
-        time_t create_ts;
-        fd = mkstemp(temp);
-        if (fd == -1){
-            perror(temp);
-            return 1;
-        }
-        write(fd,"12345\n", 6);
-        stat(temp, &stbuf);
-        create_ts = stbuf.st_mtime;
-        newtime.actime = 0;
-        newtime.modtime = 0;
-        utime(temp,&newtime);
-        addr = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
-        if (addr == MAP_FAILED) {
-            perror("mmap");
-            goto bad_exit;
-        }
-        addr[0]='x';
-        res = msync(addr, 4, MS_ASYNC);
-        if (res == -1) {
-           perror("msync");
-           goto bad_exit;
-        }
-        res = close(fd);
-        if (res == -1) {
-           perror("close");
-           goto bad_exit;
-        }
-        /* The ASYNC means that we schedule the msync and return immediately.
-           Since we want to see if the modification time is updated upon
-           msync(), we have to make sure that our asynchronous request
-           completes before we stat below. In a real application, the
-           request would be completed at a random time in the future
-           but for this test we do not want to wait an arbitrary amount of
-           time, so force a commit now.  */
-        sync();
-        stat(temp, &stbuf);
-        if (create_ts > stbuf.st_mtime){
-           goto bad_exit;
-        }
-        unlink(temp);
-        return 0;
-     bad_exit:
-        unlink(temp);
-        return 1;
-}
-
+    double rrdnan,rrdinf,rrdc,rrdzero;
+    ;
+    /* some math to see if we get a floating point exception */
+    rrdzero=sin(0.0); /* don't let the compiler optimize us away */
+    rrdnan=0.0/rrdzero; /* especially here */
+    rrdinf=1.0/rrdzero; /* and here. I want to know if it can do the magic */
+                 /* at run time without sig fpe */
+    rrdc = rrdinf + rrdnan;
+    rrdc = rrdinf / rrdnan;
+    if (! isnan(rrdnan)) {printf ("not isnan(NaN) ... "); return 1;}
+    if (rrdnan == rrdnan) {printf ("nan == nan ... "); return 1;}
+    if (! isinf(rrdinf)) {printf ("not isinf(oo) ... "); return 1;}
+    if (! isinf(-rrdinf)) {printf ("not isinf(-oo) ... "); return 1;}
+    if (! rrdinf > 0) {printf ("not inf > 0 ... "); return 1;}
+    if (! -rrdinf < 0) {printf ("not -inf < 0 ... "); return 1;}
+    return 0;
+ }
 _ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  rd_cv_ms_async=ok
+if ac_fn_c_try_run "$LINENO"; then :
+  rd_cv_ieee_flttrap=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-rd_cv_ms_async=broken
+  rd_cv_ieee_flttrap=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
 fi
 
-
-
-if test "${rd_cv_ms_async}" = "ok"; then
- { $as_echo "$as_me:$LINENO: result: yes" >&5
+if test x${rd_cv_ieee_flttrap} = "xyes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-else
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_BROKEN_MS_ASYNC 1
-_ACEOF
 
- { $as_echo "$as_me:$LINENO: result: no" >&5
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
- { $as_echo "$as_me:$LINENO: WARNING: With mmap access, your platform fails to update the files" >&5
-$as_echo "$as_me: WARNING: With mmap access, your platform fails to update the files" >&2;}
- { $as_echo "$as_me:$LINENO: WARNING: mtime. RRDtool will work around this problem by calling utime on each" >&5
-$as_echo "$as_me: WARNING: mtime. RRDtool will work around this problem by calling utime on each" >&2;}
- { $as_echo "$as_me:$LINENO: WARNING: file it opens for rw access." >&5
-$as_echo "$as_me: WARNING: file it opens for rw access." >&2;}
- sleep 2
-fi
-
-
-
-
+ CFLAGS="$_cflags -mieee"
 
-{ $as_echo "$as_me:$LINENO: checking for opterr" >&5
-$as_echo_n "checking for opterr... " >&6; }
-if test "${rd_cv_var_int_opterr+set}" = set; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if IEEE math works with the -mieee switch" >&5
+$as_echo_n "checking if IEEE math works with the -mieee switch... " >&6; }
+if test "${rd_cv_ieee_mswitch+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <unistd.h>
-int
-main ()
-{
-extern int opterr; opterr = 1;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  rd_cv_var_int_opterr=yes
+  if test "$cross_compiling" = yes; then :
+  :
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-       rd_cv_var_int_opterr=no
-fi
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $rd_cv_var_int_opterr" >&5
-$as_echo "$rd_cv_var_int_opterr" >&6; }
-if test x"$rd_cv_var_int_opterr" = x"yes"; then
+#if HAVE_MATH_H
+#  include <math.h>
+#endif
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_INT_OPTERR 1
-_ACEOF
+#if HAVE_FLOAT_H
+#  include <float.h>
+#endif
 
-fi
+#if HAVE_IEEEFP_H
+#  include <ieeefp.h>
+#endif
 
-build_getopt=no
-RRD_GETOPT_LONG="LIBC_HAS_GETOPT_LONG"
-{ $as_echo "$as_me:$LINENO: checking for getopt_long" >&5
-$as_echo_n "checking for getopt_long... " >&6; }
-if test "${ac_cv_func_getopt_long+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define getopt_long to an innocuous variant, in case <limits.h> declares getopt_long.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define getopt_long innocuous_getopt_long
+#if HAVE_FP_CLASS_H
+#  include <fp_class.h>
+#endif
+
+/* Solaris */
+#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASS))
+#  define HAVE_ISINF 1
+#  define isinf(a) (fpclass(a) == FP_NINF || fpclass(a) == FP_PINF)
+#endif
 
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char getopt_long (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
+/* solaris 10 it defines isnan such that only forte can compile it ... bad bad  */
+#if (defined(HAVE_ISNAN) && defined(isnan) && defined(HAVE_FPCLASS) && defined(FP_SNAN) && defined(FP_QNAN))
+#  undef isnan
+#  define isnan(a) (fpclass(a) == FP_SNAN || fpclass(a) == FP_QNAN)
+#endif
 
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
+/* Digital UNIX */
+#if (! defined(HAVE_ISINF) && defined(HAVE_FP_CLASS) && defined(HAVE_FP_CLASS_H) && defined(FP_NEG_INF) && defined( FP_POS_INF) )
+#  define HAVE_ISINF 1
+#  define isinf(a) (fp_class(a) == FP_NEG_INF || fp_class(a) == FP_POS_INF)
 #endif
 
-#undef getopt_long
+/* AIX */
+#if (! defined(HAVE_ISINF) && defined(HAVE_CLASS))
+#  define HAVE_ISINF 1
+#  define isinf(a) (class(a) == FP_MINUS_INF || class(a) == FP_PLUS_INF)
+#endif
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
+#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASSIFY) && defined(FP_PLUS_INF) && defined(FP_MINUS_INF))
+#  define HAVE_ISINF 1
+#  define isinf(a) (fpclassify(a) == FP_MINUS_INF || fpclassify(a) == FP_PLUS_INF)
 #endif
-char getopt_long ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_getopt_long || defined __stub___getopt_long
-choke me
+
+#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASSIFY) && defined(FP_INFINITE))
+#  define HAVE_ISINF 1
+#  define isinf(a) (fpclassify(a) == FP_INFINITE)
 #endif
 
-int
-main ()
-{
-return getopt_long ();
-  ;
-  return 0;
-}
+#if HAVE_MATH_H
+#include <math.h>
+#endif
+
+#include <stdio.h>
+int main(void){
+    double rrdnan,rrdinf,rrdc,rrdzero;
+    ;
+    /* some math to see if we get a floating point exception */
+    rrdzero=sin(0.0); /* don't let the compiler optimize us away */
+    rrdnan=0.0/rrdzero; /* especially here */
+    rrdinf=1.0/rrdzero; /* and here. I want to know if it can do the magic */
+                 /* at run time without sig fpe */
+    rrdc = rrdinf + rrdnan;
+    rrdc = rrdinf / rrdnan;
+    if (! isnan(rrdnan)) {printf ("not isnan(NaN) ... "); return 1;}
+    if (rrdnan == rrdnan) {printf ("nan == nan ... "); return 1;}
+    if (! isinf(rrdinf)) {printf ("not isinf(oo) ... "); return 1;}
+    if (! isinf(-rrdinf)) {printf ("not isinf(-oo) ... "); return 1;}
+    if (! rrdinf > 0) {printf ("not inf > 0 ... "); return 1;}
+    if (! -rrdinf < 0) {printf ("not -inf < 0 ... "); return 1;}
+    return 0;
+ }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_func_getopt_long=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  rd_cv_ieee_mswitch=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_func_getopt_long=no
+  rd_cv_ieee_mswitch=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_getopt_long" >&5
-$as_echo "$ac_cv_func_getopt_long" >&6; }
-if test "x$ac_cv_func_getopt_long" = x""yes; then
-  :
-else
-
-RRD_GETOPT_LONG="getopt_long"
-build_getopt=yes
 
 fi
 
+if test x${rd_cv_ieee_mswitch} = "xyes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 
- if test $build_getopt = yes; then
-  BUILD_GETOPT_TRUE=
-  BUILD_GETOPT_FALSE='#'
 else
-  BUILD_GETOPT_TRUE='#'
-  BUILD_GETOPT_FALSE=
-fi
-
-
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ CFLAGS="$_cflags -q float=rndsngl"
 
-{ $as_echo "$as_me:$LINENO: checking if realloc can deal with NULL" >&5
-$as_echo_n "checking if realloc can deal with NULL... " >&6; }
-if test "${rd_cv_null_realloc+set}" = set; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if IEEE math works with the -q float=rndsngl switch" >&5
+$as_echo_n "checking if IEEE math works with the -q float=rndsngl switch... " >&6; }
+if test "${rd_cv_ieee_qswitch+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
+  if test "$cross_compiling" = yes; then :
   :
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <stdlib.h>
-             int main(void){
-              char *x = NULL;
-             x = realloc (x,10);
-             if (x==NULL) return 1;
-             return 0;
-             }
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  rd_cv_null_realloc=yes
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-rd_cv_null_realloc=nope
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
 
 
-fi
-{ $as_echo "$as_me:$LINENO: result: $rd_cv_null_realloc" >&5
-$as_echo "$rd_cv_null_realloc" >&6; }
-
-if test x"$rd_cv_null_realloc" = xnope; then
-cat >>confdefs.h <<\_ACEOF
-#define NO_NULL_REALLOC 1
-_ACEOF
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+#if HAVE_MATH_H
+#  include <math.h>
+#endif
 
-{ $as_echo "$as_me:$LINENO: checking if ctime_r need special care to act posixly correct" >&5
-$as_echo_n "checking if ctime_r need special care to act posixly correct... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <time.h>
-int
-main ()
-{
-ctime_r(NULL,NULL,0)
+#if HAVE_FLOAT_H
+#  include <float.h>
+#endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-   CPPFLAGS="$CPPFLAGS -D_POSIX_PTHREAD_SEMANTICS"
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <time.h>
-int
-main ()
-{
-ctime_r(NULL,NULL)
+#if HAVE_IEEEFP_H
+#  include <ieeefp.h>
+#endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  { $as_echo "$as_me:$LINENO: result: yes, this seems to be solaris style" >&5
-$as_echo "yes, this seems to be solaris style" >&6; }
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+#if HAVE_FP_CLASS_H
+#  include <fp_class.h>
+#endif
 
-       { { $as_echo "$as_me:$LINENO: error: Can't figure how to compile ctime_r" >&5
-$as_echo "$as_me: error: Can't figure how to compile ctime_r" >&2;}
-   { (exit 1); exit 1; }; }
+/* Solaris */
+#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASS))
+#  define HAVE_ISINF 1
+#  define isinf(a) (fpclass(a) == FP_NINF || fpclass(a) == FP_PINF)
+#endif
 
-fi
+/* solaris 10 it defines isnan such that only forte can compile it ... bad bad  */
+#if (defined(HAVE_ISNAN) && defined(isnan) && defined(HAVE_FPCLASS) && defined(FP_SNAN) && defined(FP_QNAN))
+#  undef isnan
+#  define isnan(a) (fpclass(a) == FP_SNAN || fpclass(a) == FP_QNAN)
+#endif
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+/* Digital UNIX */
+#if (! defined(HAVE_ISINF) && defined(HAVE_FP_CLASS) && defined(HAVE_FP_CLASS_H) && defined(FP_NEG_INF) && defined( FP_POS_INF) )
+#  define HAVE_ISINF 1
+#  define isinf(a) (fp_class(a) == FP_NEG_INF || fp_class(a) == FP_POS_INF)
+#endif
 
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+/* AIX */
+#if (! defined(HAVE_ISINF) && defined(HAVE_CLASS))
+#  define HAVE_ISINF 1
+#  define isinf(a) (class(a) == FP_MINUS_INF || class(a) == FP_PLUS_INF)
+#endif
 
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <time.h>
-int
-main ()
-{
-ctime_r(NULL,NULL)
+#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASSIFY) && defined(FP_PLUS_INF) && defined(FP_MINUS_INF))
+#  define HAVE_ISINF 1
+#  define isinf(a) (fpclassify(a) == FP_MINUS_INF || fpclassify(a) == FP_PLUS_INF)
+#endif
 
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASSIFY) && defined(FP_INFINITE))
+#  define HAVE_ISINF 1
+#  define isinf(a) (fpclassify(a) == FP_INFINITE)
+#endif
 
-       { { $as_echo "$as_me:$LINENO: error: Can't figure how to compile ctime_r" >&5
-$as_echo "$as_me: error: Can't figure how to compile ctime_r" >&2;}
-   { (exit 1); exit 1; }; }
+#if HAVE_MATH_H
+#include <math.h>
+#endif
 
+#include <stdio.h>
+int main(void){
+    double rrdnan,rrdinf,rrdc,rrdzero;
+    ;
+    /* some math to see if we get a floating point exception */
+    rrdzero=sin(0.0); /* don't let the compiler optimize us away */
+    rrdnan=0.0/rrdzero; /* especially here */
+    rrdinf=1.0/rrdzero; /* and here. I want to know if it can do the magic */
+                 /* at run time without sig fpe */
+    rrdc = rrdinf + rrdnan;
+    rrdc = rrdinf / rrdnan;
+    if (! isnan(rrdnan)) {printf ("not isnan(NaN) ... "); return 1;}
+    if (rrdnan == rrdnan) {printf ("nan == nan ... "); return 1;}
+    if (! isinf(rrdinf)) {printf ("not isinf(oo) ... "); return 1;}
+    if (! isinf(-rrdinf)) {printf ("not isinf(-oo) ... "); return 1;}
+    if (! rrdinf > 0) {printf ("not inf > 0 ... "); return 1;}
+    if (! -rrdinf < 0) {printf ("not -inf < 0 ... "); return 1;}
+    return 0;
+ }
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  rd_cv_ieee_qswitch=yes
+else
+  rd_cv_ieee_qswitch=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+fi
 
+if test x${rd_cv_ieee_qswitch} = "xyes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 
-fi
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ CFLAGS="$_cflags -OPT:IEEE_NaN_inf=ON"
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if IEEE math works with the -OPT:IEEE_NaN_inf=ON switch" >&5
+$as_echo_n "checking if IEEE math works with the -OPT:IEEE_NaN_inf=ON switch... " >&6; }
+if test "${rd_cv_ieee_ieeenaninfswitch+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
 
+#if HAVE_MATH_H
+#  include <math.h>
+#endif
 
+#if HAVE_FLOAT_H
+#  include <float.h>
+#endif
 
+#if HAVE_IEEEFP_H
+#  include <ieeefp.h>
+#endif
 
+#if HAVE_FP_CLASS_H
+#  include <fp_class.h>
+#endif
 
-if test $enable_pthread != no; then
+/* Solaris */
+#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASS))
+#  define HAVE_ISINF 1
+#  define isinf(a) (fpclass(a) == FP_NINF || fpclass(a) == FP_PINF)
+#endif
 
+/* solaris 10 it defines isnan such that only forte can compile it ... bad bad  */
+#if (defined(HAVE_ISNAN) && defined(isnan) && defined(HAVE_FPCLASS) && defined(FP_SNAN) && defined(FP_QNAN))
+#  undef isnan
+#  define isnan(a) (fpclass(a) == FP_SNAN || fpclass(a) == FP_QNAN)
+#endif
 
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+/* Digital UNIX */
+#if (! defined(HAVE_ISINF) && defined(HAVE_FP_CLASS) && defined(HAVE_FP_CLASS_H) && defined(FP_NEG_INF) && defined( FP_POS_INF) )
+#  define HAVE_ISINF 1
+#  define isinf(a) (fp_class(a) == FP_NEG_INF || fp_class(a) == FP_POS_INF)
+#endif
 
-acx_pthread_ok=no
+/* AIX */
+#if (! defined(HAVE_ISINF) && defined(HAVE_CLASS))
+#  define HAVE_ISINF 1
+#  define isinf(a) (class(a) == FP_MINUS_INF || class(a) == FP_PLUS_INF)
+#endif
 
-# We used to check for pthread.h first, but this fails if pthread.h
-# requires special compiler flags (e.g. on True64 or Sequent).
-# It gets checked for in the link test anyway.
+#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASSIFY) && defined(FP_PLUS_INF) && defined(FP_MINUS_INF))
+#  define HAVE_ISINF 1
+#  define isinf(a) (fpclassify(a) == FP_MINUS_INF || fpclassify(a) == FP_PLUS_INF)
+#endif
 
-# First of all, check if the user has set any of the PTHREAD_LIBS,
-# etcetera environment variables, and if threads linking works using
-# them:
-if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
-        save_CFLAGS="$CFLAGS"
-        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
-        save_LIBS="$LIBS"
-        LIBS="$PTHREAD_LIBS $LIBS"
-        { $as_echo "$as_me:$LINENO: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5
-$as_echo_n "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... " >&6; }
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
+#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASSIFY) && defined(FP_INFINITE))
+#  define HAVE_ISINF 1
+#  define isinf(a) (fpclassify(a) == FP_INFINITE)
+#endif
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
+#if HAVE_MATH_H
+#include <math.h>
 #endif
-char pthread_join ();
-int
-main ()
-{
-return pthread_join ();
-  ;
-  return 0;
-}
+
+#include <stdio.h>
+int main(void){
+    double rrdnan,rrdinf,rrdc,rrdzero;
+    ;
+    /* some math to see if we get a floating point exception */
+    rrdzero=sin(0.0); /* don't let the compiler optimize us away */
+    rrdnan=0.0/rrdzero; /* especially here */
+    rrdinf=1.0/rrdzero; /* and here. I want to know if it can do the magic */
+                 /* at run time without sig fpe */
+    rrdc = rrdinf + rrdnan;
+    rrdc = rrdinf / rrdnan;
+    if (! isnan(rrdnan)) {printf ("not isnan(NaN) ... "); return 1;}
+    if (rrdnan == rrdnan) {printf ("nan == nan ... "); return 1;}
+    if (! isinf(rrdinf)) {printf ("not isinf(oo) ... "); return 1;}
+    if (! isinf(-rrdinf)) {printf ("not isinf(-oo) ... "); return 1;}
+    if (! rrdinf > 0) {printf ("not inf > 0 ... "); return 1;}
+    if (! -rrdinf < 0) {printf ("not -inf < 0 ... "); return 1;}
+    return 0;
+ }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  acx_pthread_ok=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  rd_cv_ieee_ieeenaninfswitch=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
+  rd_cv_ieee_ieeenaninfswitch=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-        { $as_echo "$as_me:$LINENO: result: $acx_pthread_ok" >&5
-$as_echo "$acx_pthread_ok" >&6; }
-        if test x"$acx_pthread_ok" = xno; then
-                PTHREAD_LIBS=""
-                PTHREAD_CFLAGS=""
-        fi
-        LIBS="$save_LIBS"
-        CFLAGS="$save_CFLAGS"
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-# We must check for the threads library under a number of different
-# names; the ordering is very important because some systems
-# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
-# libraries is broken (non-POSIX).
-
-# Create a list of thread flags to try.  Items starting with a "-" are
-# C compiler flags, and other items are library names, except for "none"
-# which indicates that we try without any flags at all, and "pthread-config"
-# which is a program returning the flags for the Pth emulation library.
-
-acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
-
-# The ordering *is* (sometimes) important.  Some notes on the
-# individual items follow:
-
-# pthreads: AIX (must check this before -lpthread)
-# none: in case threads are in libc; should be tried before -Kthread and
-#       other compiler flags to prevent continual compiler warnings
-# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
-# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
-# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
-# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
-# -pthreads: Solaris/gcc
-# -mthreads: Mingw32/gcc, Lynx/gcc
-# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
-#      doesn't hurt to check since this sometimes defines pthreads too;
-#      also defines -D_REENTRANT)
-# pthread: Linux, etcetera
-# --thread-safe: KAI C++
-# pthread-config: use pthread-config program (for GNU Pth library)
-
-case "${host_cpu}-${host_os}" in
-        *solaris*)
-
-        # On Solaris (at least, for some versions), libc contains stubbed
-        # (non-functional) versions of the pthreads routines, so link-based
-        # tests will erroneously succeed.  (We need to link with -pthread or
-        # -lpthread.)  (The stubs are missing pthread_cleanup_push, or rather
-        # a function called by this macro, so we could check for that, but
-        # who knows whether they'll stub that too in a future libc.)  So,
-        # we'll just look for -pthreads and -lpthread first:
-
-        acx_pthread_flags="-pthread -pthreads pthread -mt $acx_pthread_flags"
-        ;;
-esac
-
-if test x"$acx_pthread_ok" = xno; then
-for flag in $acx_pthread_flags; do
+fi
 
-        case $flag in
-                none)
-                { $as_echo "$as_me:$LINENO: checking whether pthreads work without any flags" >&5
-$as_echo_n "checking whether pthreads work without any flags... " >&6; }
-                ;;
+if test x${rd_cv_ieee_ieeenaninfswitch} = "xyes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 
-                -*)
-                { $as_echo "$as_me:$LINENO: checking whether pthreads work with $flag" >&5
-$as_echo_n "checking whether pthreads work with $flag... " >&6; }
-                PTHREAD_CFLAGS="$flag"
-                ;;
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ CFLAGS="$_cflags -OPT:IEEE_comparisons=ON"
 
-               pthread-config)
-               # Extract the first word of "pthread-config", so it can be a program name with args.
-set dummy pthread-config; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_acx_pthread_config+set}" = set; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if IEEE math works with the -OPT:IEEE_comparisons=ON switch" >&5
+$as_echo_n "checking if IEEE math works with the -OPT:IEEE_comparisons=ON switch... " >&6; }
+if test "${rd_cv_ieee_ieeecmpswitch+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  if test -n "$acx_pthread_config"; then
-  ac_cv_prog_acx_pthread_config="$acx_pthread_config" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_acx_pthread_config="yes"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_prog_acx_pthread_config" && ac_cv_prog_acx_pthread_config="no"
-fi
-fi
-acx_pthread_config=$ac_cv_prog_acx_pthread_config
-if test -n "$acx_pthread_config"; then
-  { $as_echo "$as_me:$LINENO: result: $acx_pthread_config" >&5
-$as_echo "$acx_pthread_config" >&6; }
+  if test "$cross_compiling" = yes; then :
+  :
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
 
-               if test x"$acx_pthread_config" = xno; then continue; fi
-               PTHREAD_CFLAGS="`pthread-config --cflags`"
-               PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
-               ;;
+#if HAVE_MATH_H
+#  include <math.h>
+#endif
 
-                *)
-                { $as_echo "$as_me:$LINENO: checking for the pthreads library -l$flag" >&5
-$as_echo_n "checking for the pthreads library -l$flag... " >&6; }
-                PTHREAD_LIBS="-l$flag"
-                ;;
-        esac
+#if HAVE_FLOAT_H
+#  include <float.h>
+#endif
 
-        save_LIBS="$LIBS"
-        save_CFLAGS="$CFLAGS"
-        LIBS="$PTHREAD_LIBS $LIBS"
-        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+#if HAVE_IEEEFP_H
+#  include <ieeefp.h>
+#endif
 
-        # Check for various functions.  We must include pthread.h,
-        # since some functions may be macros.  (On the Sequent, we
-        # need a special flag -Kthread to make this header compile.)
-        # We check for pthread_join because it is in -lpthread on IRIX
-        # while pthread_create is in libc.  We check for pthread_attr_init
-        # due to DEC craziness with -lpthreads.  We check for
-        # pthread_cleanup_push because it is one of the few pthread
-        # functions on Solaris that doesn't have a non-functional libc stub.
-        # We try pthread_create on general principles.
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <pthread.h>
-int
-main ()
-{
-pthread_t th; pthread_join(th, 0);
-                     pthread_attr_init(0); pthread_cleanup_push(0, 0);
-                     pthread_create(0,0,0,0); pthread_cleanup_pop(0);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  acx_pthread_ok=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+#if HAVE_FP_CLASS_H
+#  include <fp_class.h>
+#endif
 
+/* Solaris */
+#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASS))
+#  define HAVE_ISINF 1
+#  define isinf(a) (fpclass(a) == FP_NINF || fpclass(a) == FP_PINF)
+#endif
 
-fi
+/* solaris 10 it defines isnan such that only forte can compile it ... bad bad  */
+#if (defined(HAVE_ISNAN) && defined(isnan) && defined(HAVE_FPCLASS) && defined(FP_SNAN) && defined(FP_QNAN))
+#  undef isnan
+#  define isnan(a) (fpclass(a) == FP_SNAN || fpclass(a) == FP_QNAN)
+#endif
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+/* Digital UNIX */
+#if (! defined(HAVE_ISINF) && defined(HAVE_FP_CLASS) && defined(HAVE_FP_CLASS_H) && defined(FP_NEG_INF) && defined( FP_POS_INF) )
+#  define HAVE_ISINF 1
+#  define isinf(a) (fp_class(a) == FP_NEG_INF || fp_class(a) == FP_POS_INF)
+#endif
 
-        LIBS="$save_LIBS"
-        CFLAGS="$save_CFLAGS"
+/* AIX */
+#if (! defined(HAVE_ISINF) && defined(HAVE_CLASS))
+#  define HAVE_ISINF 1
+#  define isinf(a) (class(a) == FP_MINUS_INF || class(a) == FP_PLUS_INF)
+#endif
 
-        { $as_echo "$as_me:$LINENO: result: $acx_pthread_ok" >&5
-$as_echo "$acx_pthread_ok" >&6; }
-        if test "x$acx_pthread_ok" = xyes; then
-                break;
-        fi
+#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASSIFY) && defined(FP_PLUS_INF) && defined(FP_MINUS_INF))
+#  define HAVE_ISINF 1
+#  define isinf(a) (fpclassify(a) == FP_MINUS_INF || fpclassify(a) == FP_PLUS_INF)
+#endif
 
-        PTHREAD_LIBS=""
-        PTHREAD_CFLAGS=""
-done
-fi
+#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASSIFY) && defined(FP_INFINITE))
+#  define HAVE_ISINF 1
+#  define isinf(a) (fpclassify(a) == FP_INFINITE)
+#endif
 
-# Various other checks:
-if test "x$acx_pthread_ok" = xyes; then
-        save_LIBS="$LIBS"
-        LIBS="$PTHREAD_LIBS $LIBS"
-        save_CFLAGS="$CFLAGS"
-        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+#if HAVE_MATH_H
+#include <math.h>
+#endif
 
-        # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
-       { $as_echo "$as_me:$LINENO: checking for joinable pthread attribute" >&5
-$as_echo_n "checking for joinable pthread attribute... " >&6; }
-       attr_name=unknown
-       for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
-           cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <pthread.h>
-int
-main ()
-{
-int attr=$attr;
-  ;
-  return 0;
-}
+#include <stdio.h>
+int main(void){
+    double rrdnan,rrdinf,rrdc,rrdzero;
+    ;
+    /* some math to see if we get a floating point exception */
+    rrdzero=sin(0.0); /* don't let the compiler optimize us away */
+    rrdnan=0.0/rrdzero; /* especially here */
+    rrdinf=1.0/rrdzero; /* and here. I want to know if it can do the magic */
+                 /* at run time without sig fpe */
+    rrdc = rrdinf + rrdnan;
+    rrdc = rrdinf / rrdnan;
+    if (! isnan(rrdnan)) {printf ("not isnan(NaN) ... "); return 1;}
+    if (rrdnan == rrdnan) {printf ("nan == nan ... "); return 1;}
+    if (! isinf(rrdinf)) {printf ("not isinf(oo) ... "); return 1;}
+    if (! isinf(-rrdinf)) {printf ("not isinf(-oo) ... "); return 1;}
+    if (! rrdinf > 0) {printf ("not inf > 0 ... "); return 1;}
+    if (! -rrdinf < 0) {printf ("not -inf < 0 ... "); return 1;}
+    return 0;
+ }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  attr_name=$attr; break
+if ac_fn_c_try_run "$LINENO"; then :
+  rd_cv_ieee_ieeecmpswitch=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
+  rd_cv_ieee_ieeecmpswitch=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-       done
-        { $as_echo "$as_me:$LINENO: result: $attr_name" >&5
-$as_echo "$attr_name" >&6; }
-        if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
-
-cat >>confdefs.h <<_ACEOF
-#define PTHREAD_CREATE_JOINABLE $attr_name
-_ACEOF
-
-        fi
+fi
 
-        { $as_echo "$as_me:$LINENO: checking if more special flags are required for pthreads" >&5
-$as_echo_n "checking if more special flags are required for pthreads... " >&6; }
-        x_rflag=no
-        case "${host_cpu}-${host_os}" in
-            *-aix* | *-freebsd* | *-darwin*) x_rflag="-D_THREAD_SAFE";;
-            *solaris* | *-osf* | *-hpux*) x_rflag="-D_REENTRANT";;
-            *-linux* | *-k*bsd*-gnu*)
-            if test x"$PTHREAD_CFLAGS" = "x-pthread"; then
-                # For Linux/gcc "-pthread" implies "-lpthread". We need, however, to make this explicit
-                # in PTHREAD_LIBS such that a shared library to be built properly depends on libpthread.
-                PTHREAD_LIBS="-lpthread $PTHREAD_LIBS"
-            fi;;
-        esac
-        { $as_echo "$as_me:$LINENO: result: ${x_rflag}" >&5
-$as_echo "${x_rflag}" >&6; }
-        if test "x$x_rflag" != xno; then
-            PTHREAD_CFLAGS="$x_rflag $PTHREAD_CFLAGS"
-        fi
+if test x${rd_cv_ieee_ieeecmpswitch} = "xyes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 
-        LIBS="$save_LIBS"
-        CFLAGS="$save_CFLAGS"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ CFLAGS=$_cflags
 
-        # More AIX lossage: must compile with cc_r
-        # Extract the first word of "cc_r", so it can be a program name with args.
-set dummy cc_r; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_PTHREAD_CC+set}" = set; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if IEEE math works with fpsetmask(0)" >&5
+$as_echo_n "checking if IEEE math works with fpsetmask(0)... " >&6; }
+if test "${rd_cv_ieee_mask+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  if test -n "$PTHREAD_CC"; then
-  ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test.
+  if test "$cross_compiling" = yes; then :
+  :
 else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_PTHREAD_CC="cc_r"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <floatingpoint.h>
 
-  test -z "$ac_cv_prog_PTHREAD_CC" && ac_cv_prog_PTHREAD_CC="${CC}"
-fi
-fi
-PTHREAD_CC=$ac_cv_prog_PTHREAD_CC
-if test -n "$PTHREAD_CC"; then
-  { $as_echo "$as_me:$LINENO: result: $PTHREAD_CC" >&5
-$as_echo "$PTHREAD_CC" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
+#if HAVE_MATH_H
+#  include <math.h>
+#endif
+
+#if HAVE_FLOAT_H
+#  include <float.h>
+#endif
 
+#if HAVE_IEEEFP_H
+#  include <ieeefp.h>
+#endif
 
-else
-        PTHREAD_CC="$CC"
-fi
+#if HAVE_FP_CLASS_H
+#  include <fp_class.h>
+#endif
+
+/* Solaris */
+#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASS))
+#  define HAVE_ISINF 1
+#  define isinf(a) (fpclass(a) == FP_NINF || fpclass(a) == FP_PINF)
+#endif
 
+/* solaris 10 it defines isnan such that only forte can compile it ... bad bad  */
+#if (defined(HAVE_ISNAN) && defined(isnan) && defined(HAVE_FPCLASS) && defined(FP_SNAN) && defined(FP_QNAN))
+#  undef isnan
+#  define isnan(a) (fpclass(a) == FP_SNAN || fpclass(a) == FP_QNAN)
+#endif
 
+/* Digital UNIX */
+#if (! defined(HAVE_ISINF) && defined(HAVE_FP_CLASS) && defined(HAVE_FP_CLASS_H) && defined(FP_NEG_INF) && defined( FP_POS_INF) )
+#  define HAVE_ISINF 1
+#  define isinf(a) (fp_class(a) == FP_NEG_INF || fp_class(a) == FP_POS_INF)
+#endif
 
+/* AIX */
+#if (! defined(HAVE_ISINF) && defined(HAVE_CLASS))
+#  define HAVE_ISINF 1
+#  define isinf(a) (class(a) == FP_MINUS_INF || class(a) == FP_PLUS_INF)
+#endif
 
+#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASSIFY) && defined(FP_PLUS_INF) && defined(FP_MINUS_INF))
+#  define HAVE_ISINF 1
+#  define isinf(a) (fpclassify(a) == FP_MINUS_INF || fpclassify(a) == FP_PLUS_INF)
+#endif
 
-# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
-if test x"$acx_pthread_ok" = xyes; then
+#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASSIFY) && defined(FP_INFINITE))
+#  define HAVE_ISINF 1
+#  define isinf(a) (fpclassify(a) == FP_INFINITE)
+#endif
 
-    MULTITHREAD_CFLAGS=$PTHREAD_CFLAGS
-    MULTITHREAD_LDFLAGS=$PTHREAD_LIBS
+#if HAVE_MATH_H
+#include <math.h>
+#endif
 
-        :
+#include <stdio.h>
+int main(void){
+    double rrdnan,rrdinf,rrdc,rrdzero;
+    fpsetmask(0);
+    /* some math to see if we get a floating point exception */
+    rrdzero=sin(0.0); /* don't let the compiler optimize us away */
+    rrdnan=0.0/rrdzero; /* especially here */
+    rrdinf=1.0/rrdzero; /* and here. I want to know if it can do the magic */
+                 /* at run time without sig fpe */
+    rrdc = rrdinf + rrdnan;
+    rrdc = rrdinf / rrdnan;
+    if (! isnan(rrdnan)) {printf ("not isnan(NaN) ... "); return 1;}
+    if (rrdnan == rrdnan) {printf ("nan == nan ... "); return 1;}
+    if (! isinf(rrdinf)) {printf ("not isinf(oo) ... "); return 1;}
+    if (! isinf(-rrdinf)) {printf ("not isinf(-oo) ... "); return 1;}
+    if (! rrdinf > 0) {printf ("not inf > 0 ... "); return 1;}
+    if (! -rrdinf < 0) {printf ("not -inf < 0 ... "); return 1;}
+    return 0;
+ }
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  rd_cv_ieee_mask=yes
 else
-        acx_pthread_ok=no
-
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
+  rd_cv_ieee_mask=no
 fi
-
-
-if test  "x$x_rflag" != "xno"; then
-   CPPFLAGS="$CPPFLAGS $x_rflag"
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
- if test $enable_pthread != no; then
-  BUILD_MULTITHREAD_TRUE=
-  BUILD_MULTITHREAD_FALSE='#'
-else
-  BUILD_MULTITHREAD_TRUE='#'
-  BUILD_MULTITHREAD_FALSE=
 fi
 
+if test x${rd_cv_ieee_mask} = "xyes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ $as_echo "#define MUST_DISABLE_FPMASK 1" >>confdefs.h
 
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-{ $as_echo "$as_me:$LINENO: checking do we need malloc/malloc.h" >&5
-$as_echo_n "checking do we need malloc/malloc.h... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <stdlib.h>
-int
-main ()
-{
-malloc(1)
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-   { $as_echo "$as_me:$LINENO: result: nope, works out of the box" >&5
-$as_echo "nope, works out of the box" >&6; }
+                PERLFLAGS="CCFLAGS=-DMUST_DISABLE_FPMASK"
 else
 $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if IEEE math works with signal(SIGFPE,SIG_IGN)" >&5
+$as_echo_n "checking if IEEE math works with signal(SIGFPE,SIG_IGN)... " >&6; }
+if test "${rd_cv_ieee_sigfpe+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <stdlib.h>
-                  #include <malloc/malloc.h>
-int
-main ()
-{
-malloc(1)
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-
-           cat >>confdefs.h <<\_ACEOF
-#define MUST_HAVE_MALLOC_MALLOC_H 1
-_ACEOF
+#include <signal.h>
 
-           { $as_echo "$as_me:$LINENO: result: yes we do" >&5
-$as_echo "yes we do" >&6; }
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+#if HAVE_MATH_H
+#  include <math.h>
+#endif
 
-       { { $as_echo "$as_me:$LINENO: error: Can not figure how to compile malloc" >&5
-$as_echo "$as_me: error: Can not figure how to compile malloc" >&2;}
-   { (exit 1); exit 1; }; }
+#if HAVE_FLOAT_H
+#  include <float.h>
+#endif
 
-fi
+#if HAVE_IEEEFP_H
+#  include <ieeefp.h>
+#endif
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+#if HAVE_FP_CLASS_H
+#  include <fp_class.h>
+#endif
 
+/* Solaris */
+#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASS))
+#  define HAVE_ISINF 1
+#  define isinf(a) (fpclass(a) == FP_NINF || fpclass(a) == FP_PINF)
+#endif
 
-fi
+/* solaris 10 it defines isnan such that only forte can compile it ... bad bad  */
+#if (defined(HAVE_ISNAN) && defined(isnan) && defined(HAVE_FPCLASS) && defined(FP_SNAN) && defined(FP_QNAN))
+#  undef isnan
+#  define isnan(a) (fpclass(a) == FP_SNAN || fpclass(a) == FP_QNAN)
+#endif
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+/* Digital UNIX */
+#if (! defined(HAVE_ISINF) && defined(HAVE_FP_CLASS) && defined(HAVE_FP_CLASS_H) && defined(FP_NEG_INF) && defined( FP_POS_INF) )
+#  define HAVE_ISINF 1
+#  define isinf(a) (fp_class(a) == FP_NEG_INF || fp_class(a) == FP_POS_INF)
+#endif
 
+/* AIX */
+#if (! defined(HAVE_ISINF) && defined(HAVE_CLASS))
+#  define HAVE_ISINF 1
+#  define isinf(a) (class(a) == FP_MINUS_INF || class(a) == FP_PLUS_INF)
+#endif
 
+#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASSIFY) && defined(FP_PLUS_INF) && defined(FP_MINUS_INF))
+#  define HAVE_ISINF 1
+#  define isinf(a) (fpclassify(a) == FP_MINUS_INF || fpclassify(a) == FP_PLUS_INF)
+#endif
 
-case $TERM in
-       #   for the most important terminal types we directly know the sequences
-       xterm|xterm*|vt220|vt220*)
-               T_MD=`awk 'BEGIN { printf("%c%c%c%c", 27, 91, 49, 109); }' </dev/null 2>/dev/null`
-               T_ME=`awk 'BEGIN { printf("%c%c%c", 27, 91, 109); }' </dev/null 2>/dev/null`
-       ;;
-       vt100|vt100*|cygwin)
-               T_MD=`awk 'BEGIN { printf("%c%c%c%c%c%c", 27, 91, 49, 109, 0, 0); }' </dev/null 2>/dev/null`
-               T_ME=`awk 'BEGIN { printf("%c%c%c%c%c", 27, 91, 109, 0, 0); }' </dev/null 2>/dev/null`
-       ;;
-       *)
-               T_MD=''
-               T_ME=''
-       ;;
-esac
-  { $as_echo "$as_me:$LINENO: result: " >&5
-$as_echo "" >&6; }
-  { $as_echo "$as_me:$LINENO: result: ${T_MD}Find 3rd-Party Libraries${T_ME}" >&5
-$as_echo "${T_MD}Find 3rd-Party Libraries${T_ME}" >&6; }
+#if (! defined(HAVE_ISINF) && defined(HAVE_FPCLASSIFY) && defined(FP_INFINITE))
+#  define HAVE_ISINF 1
+#  define isinf(a) (fpclassify(a) == FP_INFINITE)
+#endif
 
+#if HAVE_MATH_H
+#include <math.h>
+#endif
 
-# Check whether --enable-libdbi was given.
-if test "${enable_libdbi+set}" = set; then
-  enableval=$enable_libdbi; have_libdbi=no
+#include <stdio.h>
+int main(void){
+    double rrdnan,rrdinf,rrdc,rrdzero;
+    signal(SIGFPE,SIG_IGN);
+    /* some math to see if we get a floating point exception */
+    rrdzero=sin(0.0); /* don't let the compiler optimize us away */
+    rrdnan=0.0/rrdzero; /* especially here */
+    rrdinf=1.0/rrdzero; /* and here. I want to know if it can do the magic */
+                 /* at run time without sig fpe */
+    rrdc = rrdinf + rrdnan;
+    rrdc = rrdinf / rrdnan;
+    if (! isnan(rrdnan)) {printf ("not isnan(NaN) ... "); return 1;}
+    if (rrdnan == rrdnan) {printf ("nan == nan ... "); return 1;}
+    if (! isinf(rrdinf)) {printf ("not isinf(oo) ... "); return 1;}
+    if (! isinf(-rrdinf)) {printf ("not isinf(-oo) ... "); return 1;}
+    if (! rrdinf > 0) {printf ("not inf > 0 ... "); return 1;}
+    if (! -rrdinf < 0) {printf ("not -inf < 0 ... "); return 1;}
+    return 0;
+ }
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  rd_cv_ieee_sigfpe=yes
 else
+  rd_cv_ieee_sigfpe=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
 
-  XXX=$LIBS
-  LIBS="$LIBS -ldbi -ldl"
-  { $as_echo "$as_me:$LINENO: checking for libdbi" >&5
-$as_echo_n "checking for libdbi... " >&6; }
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <dbi/dbi.h>
-int
-main ()
-{
-dbi_initialize(NULL)
+fi
 
-  ;
-  return 0;
-}
+if test x${rd_cv_ieee_sigfpe} = "xyes"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ $as_echo "#define MUST_DISABLE_SIGFPE 1" >>confdefs.h
 
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+                   PERLFLAGS="CCFLAGS=-DMUST_DISABLE_SIGFPE"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ as_fn_error "
+Your Compiler does not do propper IEEE math ... Please find out how to
+make IEEE math work with your compiler and let me know (tobi@oetiker.ch).
+Check config.log to see what went wrong ...
+" "$LINENO" 5
+fi
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_LIBDBI 1
-_ACEOF
 
-       { $as_echo "$as_me:$LINENO: result: yes" >&5
-$as_echo "yes" >&6; }
-       have_libdbi=yes
+fi
 
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       LIBS=$XXX
-       { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-       have_libdbi=no
+fi
 
 
 fi
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
 
 fi
 
- if test $have_libdbi != no; then
-  BUILD_LIBDBI_TRUE=
-  BUILD_LIBDBI_FALSE='#'
-else
-  BUILD_LIBDBI_TRUE='#'
-  BUILD_LIBDBI_FALSE=
+
 fi
 
 
- if test $enable_rrdcgi != no; then
-  BUILD_RRDCGI_TRUE=
-  BUILD_RRDCGI_FALSE='#'
-else
-  BUILD_RRDCGI_TRUE='#'
-  BUILD_RRDCGI_FALSE=
 fi
 
 
+fi
 
-CORE_LIBS="$LIBS"
 
+fi
 
- ac_ext=c
+
+fi
+
+
+
+ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
- EX_CHECK_STATE=NO
- ex_check_save_LIBS=${LIBS}
- ex_check_save_CPPFLAGS=${CPPFLAGS}
- ex_check_save_LDFLAGS=${LDFLAGS}
- if test "x""" != "x"; then
-   CPPFLAGS="$CPPFLAGS -I"""
- fi
-  { $as_echo "$as_me:$LINENO: checking for cairo_font_options_create in -lcairo" >&5
-$as_echo_n "checking for cairo_font_options_create in -lcairo... " >&6; }
-if test "${ac_cv_lib_cairo_cairo_font_options_create+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lcairo  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char cairo_font_options_create ();
-int
-main ()
-{
-return cairo_font_options_create ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
+
+
+
+case $TERM in
+       #   for the most important terminal types we directly know the sequences
+       xterm|xterm*|vt220|vt220*)
+               T_MD=`awk 'BEGIN { printf("%c%c%c%c", 27, 91, 49, 109); }' </dev/null 2>/dev/null`
+               T_ME=`awk 'BEGIN { printf("%c%c%c", 27, 91, 109); }' </dev/null 2>/dev/null`
+       ;;
+       vt100|vt100*|cygwin)
+               T_MD=`awk 'BEGIN { printf("%c%c%c%c%c%c", 27, 91, 49, 109, 0, 0); }' </dev/null 2>/dev/null`
+               T_ME=`awk 'BEGIN { printf("%c%c%c%c%c", 27, 91, 109, 0, 0); }' </dev/null 2>/dev/null`
+       ;;
+       *)
+               T_MD=''
+               T_ME=''
+       ;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_lib_cairo_cairo_font_options_create=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
+$as_echo "" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${T_MD}Resolve Portability Issues${T_ME}" >&5
+$as_echo "${T_MD}Resolve Portability Issues${T_ME}" >&6; }
 
-       ac_cv_lib_cairo_cairo_font_options_create=no
-fi
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_cairo_cairo_font_options_create" >&5
-$as_echo "$ac_cv_lib_cairo_cairo_font_options_create" >&6; }
-if test "x$ac_cv_lib_cairo_cairo_font_options_create" = x""yes; then
 
-    if test "${ac_cv_header_cairo_h+set}" = set; then
-  { $as_echo "$as_me:$LINENO: checking for cairo.h" >&5
-$as_echo_n "checking for cairo.h... " >&6; }
-if test "${ac_cv_header_cairo_h+set}" = set; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if msync with MS_ASYNC updates the files mtime" >&5
+$as_echo_n "checking if msync with MS_ASYNC updates the files mtime... " >&6; }
+if test "${rd_cv_ms_async+set}" = set; then :
   $as_echo_n "(cached) " >&6
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_cairo_h" >&5
-$as_echo "$ac_cv_header_cairo_h" >&6; }
 else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking cairo.h usability" >&5
-$as_echo_n "checking cairo.h usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <cairo.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
+  if test "$cross_compiling" = yes; then :
+  :
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-       ac_header_compiler=no
-fi
+#include <fcntl.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <sys/mman.h>
+#include <stdlib.h>
+#include <utime.h>
+int main(void){
+        int fd;
+        struct stat stbuf;
+        char *addr;
+        int res;
+        char temp[] = "mmaptestXXXXXX";
+        struct utimbuf newtime;
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
+        time_t create_ts;
+        fd = mkstemp(temp);
+        if (fd == -1){
+            perror(temp);
+            return 1;
+        }
+        write(fd,"12345\n", 6);
+        stat(temp, &stbuf);
+        create_ts = stbuf.st_mtime;
+        newtime.actime = 0;
+        newtime.modtime = 0;
+        utime(temp,&newtime);
+        addr = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
+        if (addr == MAP_FAILED) {
+            perror("mmap");
+            goto bad_exit;
+        }
+        addr[0]='x';
+        res = msync(addr, 4, MS_ASYNC);
+        if (res == -1) {
+           perror("msync");
+           goto bad_exit;
+        }
+        res = close(fd);
+        if (res == -1) {
+           perror("close");
+           goto bad_exit;
+        }
+        /* The ASYNC means that we schedule the msync and return immediately.
+           Since we want to see if the modification time is updated upon
+           msync(), we have to make sure that our asynchronous request
+           completes before we stat below. In a real application, the
+           request would be completed at a random time in the future
+           but for this test we do not want to wait an arbitrary amount of
+           time, so force a commit now.  */
+        sync();
+        stat(temp, &stbuf);
+        if (create_ts > stbuf.st_mtime){
+           goto bad_exit;
+        }
+        unlink(temp);
+        return 0;
+     bad_exit:
+        unlink(temp);
+        return 1;
+}
 
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking cairo.h presence" >&5
-$as_echo_n "checking cairo.h presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <cairo.h>
 _ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  rd_cv_ms_async=ok
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
+  rd_cv_ms_async=broken
 fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: cairo.h: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: cairo.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo.h: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: cairo.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: cairo.h: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: cairo.h: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo.h:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: cairo.h:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo.h: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: cairo.h: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo.h:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: cairo.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo.h: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: cairo.h: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo.h: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: cairo.h: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for cairo.h" >&5
-$as_echo_n "checking for cairo.h... " >&6; }
-if test "${ac_cv_header_cairo_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_header_cairo_h=$ac_header_preproc
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_cairo_h" >&5
-$as_echo "$ac_cv_header_cairo_h" >&6; }
 
 fi
-if test "x$ac_cv_header_cairo_h" = x""yes; then
-  LIBS="-lcairo ${LIBS}";EX_CHECK_STATE=YES
-fi
 
 
-fi
 
- if test $EX_CHECK_STATE = NO; then
-        for ac_prog in pkg-config
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_PKGCONFIG+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$PKGCONFIG"; then
-  ac_cv_prog_PKGCONFIG="$PKGCONFIG" # Let the user override the test.
+if test "${rd_cv_ms_async}" = "ok"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_PKGCONFIG="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
 
-fi
-fi
-PKGCONFIG=$ac_cv_prog_PKGCONFIG
-if test -n "$PKGCONFIG"; then
-  { $as_echo "$as_me:$LINENO: result: $PKGCONFIG" >&5
-$as_echo "$PKGCONFIG" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+cat >>confdefs.h <<_ACEOF
+#define HAVE_BROKEN_MS_ASYNC 1
+_ACEOF
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: With mmap access, your platform fails to update the files" >&5
+$as_echo "$as_me: WARNING: With mmap access, your platform fails to update the files" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: mtime. RRDtool will work around this problem by calling utime on each" >&5
+$as_echo "$as_me: WARNING: mtime. RRDtool will work around this problem by calling utime on each" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: file it opens for rw access." >&5
+$as_echo "$as_me: WARNING: file it opens for rw access." >&2;}
+ sleep 2
 fi
 
 
-  test -n "$PKGCONFIG" && break
-done
-test -n "$PKGCONFIG" || PKGCONFIG="no"
 
-    if test "$PKGCONFIG" != "no"; then
-          if $PKGCONFIG --exists cairo-png; then
-             CPPFLAGS=${CPPFLAGS}" "`$PKGCONFIG --cflags cairo-png`
-             LDFLAGS=${LDFLAGS}" "`$PKGCONFIG --libs-only-L cairo-png`
-             LDFLAGS=${LDFLAGS}" "`$PKGCONFIG --libs-only-other cairo-png`
-             LIBS=${LIBS}" "`$PKGCONFIG --libs-only-l cairo-png`
-                            unset ac_cv_lib_`echo cairo | sed 's/[^_a-zA-Z0-9]/_/g;s/^[0-9]/_/'`_cairo_font_options_create
-             { $as_echo "$as_me:$LINENO: checking for cairo_font_options_create in -lcairo" >&5
-$as_echo_n "checking for cairo_font_options_create in -lcairo... " >&6; }
-if test "${ac_cv_lib_cairo_cairo_font_options_create+set}" = set; then
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for opterr" >&5
+$as_echo_n "checking for opterr... " >&6; }
+if test "${rd_cv_var_int_opterr+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lcairo  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char cairo_font_options_create ();
+#include <unistd.h>
 int
 main ()
 {
-return cairo_font_options_create ();
+extern int opterr; opterr = 1;
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_lib_cairo_cairo_font_options_create=yes
+if ac_fn_c_try_link "$LINENO"; then :
+  rd_cv_var_int_opterr=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_cairo_cairo_font_options_create=no
+  rd_cv_var_int_opterr=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_cairo_cairo_font_options_create" >&5
-$as_echo "$ac_cv_lib_cairo_cairo_font_options_create" >&6; }
-if test "x$ac_cv_lib_cairo_cairo_font_options_create" = x""yes; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $rd_cv_var_int_opterr" >&5
+$as_echo "$rd_cv_var_int_opterr" >&6; }
+if test x"$rd_cv_var_int_opterr" = x"yes"; then
+
+$as_echo "#define HAVE_INT_OPTERR 1" >>confdefs.h
 
-                unset ac_cv_header_`echo cairo.h | sed 's/[^_a-zA-Z0-9]/_/g;s/^[0-9]/_/'`
-                if test "${ac_cv_header_cairo_h+set}" = set; then
-  { $as_echo "$as_me:$LINENO: checking for cairo.h" >&5
-$as_echo_n "checking for cairo.h... " >&6; }
-if test "${ac_cv_header_cairo_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_cairo_h" >&5
-$as_echo "$ac_cv_header_cairo_h" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking cairo.h usability" >&5
-$as_echo_n "checking cairo.h usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <cairo.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
+
+build_getopt=no
+RRD_GETOPT_LONG="LIBC_HAS_GETOPT_LONG"
+ac_fn_c_check_func "$LINENO" "getopt_long" "ac_cv_func_getopt_long"
+if test "x$ac_cv_func_getopt_long" = x""yes; then :
+
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_header_compiler=no
+RRD_GETOPT_LONG="getopt_long"
+build_getopt=yes
+
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
 
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking cairo.h presence" >&5
-$as_echo_n "checking cairo.h presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <cairo.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
+ if test $build_getopt = yes; then
+  BUILD_GETOPT_TRUE=
+  BUILD_GETOPT_FALSE='#'
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
+  BUILD_GETOPT_TRUE='#'
+  BUILD_GETOPT_FALSE=
 fi
 
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
 
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: cairo.h: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: cairo.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo.h: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: cairo.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: cairo.h: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: cairo.h: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo.h:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: cairo.h:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo.h: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: cairo.h: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo.h:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: cairo.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo.h: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: cairo.h: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo.h: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: cairo.h: in the future, the compiler will take precedence" >&2;}
 
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for cairo.h" >&5
-$as_echo_n "checking for cairo.h... " >&6; }
-if test "${ac_cv_header_cairo_h+set}" = set; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if realloc can deal with NULL" >&5
+$as_echo_n "checking if realloc can deal with NULL... " >&6; }
+if test "${rd_cv_null_realloc+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  ac_cv_header_cairo_h=$ac_header_preproc
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_cairo_h" >&5
-$as_echo "$ac_cv_header_cairo_h" >&6; }
-
+  if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+             int main(void){
+              char *x = NULL;
+             x = realloc (x,10);
+             if (x==NULL) return 1;
+             return 0;
+             }
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  rd_cv_null_realloc=yes
+else
+  rd_cv_null_realloc=nope
 fi
-if test "x$ac_cv_header_cairo_h" = x""yes; then
-  EX_CHECK_STATE=YES
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
-
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $rd_cv_null_realloc" >&5
+$as_echo "$rd_cv_null_realloc" >&6; }
 
-          else
-             { $as_echo "$as_me:$LINENO: WARNING:
-----------------------------------------------------------------------------
-* I found a copy of pkgconfig, but there is no cairo-png.pc file around.
-  You may want to set the PKG_CONFIG_PATH variable to point to its
-  location.
-----------------------------------------------------------------------------
-                       " >&5
-$as_echo "$as_me: WARNING:
-----------------------------------------------------------------------------
-* I found a copy of pkgconfig, but there is no cairo-png.pc file around.
-  You may want to set the PKG_CONFIG_PATH variable to point to its
-  location.
-----------------------------------------------------------------------------
-                       " >&2;}
-           fi
-     fi
-  fi
-
-  if test ${EX_CHECK_STATE} = NO; then
-     { $as_echo "$as_me:$LINENO: WARNING:
-----------------------------------------------------------------------------
-* I could not find a working copy of cairo-png. Check config.log for hints on why
-  this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
-  so that compiler and the linker can find libcairo and its header files. If
-  you have not installed cairo-png, you can get it either from its original home on
-
-     http://cairographics.org/releases/
+if test x"$rd_cv_null_realloc" = xnope; then
+$as_echo "#define NO_NULL_REALLOC 1" >>confdefs.h
 
-  You can find also find an archive copy on
+fi
 
-     http://oss.oetiker.ch/rrdtool/pub/libs
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-  The last tested version of cairo-png is 1.4.6.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if ctime_r need special care to act posixly correct" >&5
+$as_echo_n "checking if ctime_r need special care to act posixly correct... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <time.h>
+int
+main ()
+{
+ctime_r(NULL,NULL,0)
 
-       LIBS=$LIBS
-   LDFLAGS=$LDFLAGS
-  CPPFLAGS=$CPPFLAGS
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+   CPPFLAGS="$CPPFLAGS -D_POSIX_PTHREAD_SEMANTICS"
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <time.h>
+int
+main ()
+{
+ctime_r(NULL,NULL)
 
-----------------------------------------------------------------------------
-                " >&5
-$as_echo "$as_me: WARNING:
-----------------------------------------------------------------------------
-* I could not find a working copy of cairo-png. Check config.log for hints on why
-  this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
-  so that compiler and the linker can find libcairo and its header files. If
-  you have not installed cairo-png, you can get it either from its original home on
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, this seems to be solaris style" >&5
+$as_echo "yes, this seems to be solaris style" >&6; }
+else
+  as_fn_error "Can't figure how to compile ctime_r" "$LINENO" 5
 
-     http://cairographics.org/releases/
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
-  You can find also find an archive copy on
+else
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <time.h>
+int
+main ()
+{
+ctime_r(NULL,NULL)
 
-     http://oss.oetiker.ch/rrdtool/pub/libs
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+else
+  as_fn_error "Can't figure how to compile ctime_r" "$LINENO" 5
 
-  The last tested version of cairo-png is 1.4.6.
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
-       LIBS=$LIBS
-   LDFLAGS=$LDFLAGS
-  CPPFLAGS=$CPPFLAGS
 
-----------------------------------------------------------------------------
-                " >&2;}
-       EX_CHECK_ALL_ERR=YES
-       LIBS="${ex_check_save_LIBS}"
-       CPPFLAGS="${ex_check_save_CPPFLAGS}"
-       LDFLAGS="${ex_check_save_LDFLAGS}"
-    fi
-    ac_ext=c
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
@@ -26925,31 +18401,34 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
- EX_CHECK_STATE=NO
- ex_check_save_LIBS=${LIBS}
- ex_check_save_CPPFLAGS=${CPPFLAGS}
- ex_check_save_LDFLAGS=${LDFLAGS}
- if test "x""" != "x"; then
-   CPPFLAGS="$CPPFLAGS -I"""
- fi
-  { $as_echo "$as_me:$LINENO: checking for cairo_svg_surface_create in -lcairo" >&5
-$as_echo_n "checking for cairo_svg_surface_create in -lcairo... " >&6; }
-if test "${ac_cv_lib_cairo_cairo_svg_surface_create+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lcairo  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+
+if test $enable_pthread != no; then
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+acx_pthread_ok=no
+
+# We used to check for pthread.h first, but this fails if pthread.h
+# requires special compiler flags (e.g. on True64 or Sequent).
+# It gets checked for in the link test anyway.
+
+# First of all, check if the user has set any of the PTHREAD_LIBS,
+# etcetera environment variables, and if threads linking works using
+# them:
+if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
+        save_CFLAGS="$CFLAGS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+        save_LIBS="$LIBS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5
+$as_echo_n "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... " >&6; }
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -26958,516 +18437,553 @@ cat >>conftest.$ac_ext <<_ACEOF
 #ifdef __cplusplus
 extern "C"
 #endif
-char cairo_svg_surface_create ();
+char pthread_join ();
 int
 main ()
 {
-return cairo_svg_surface_create ();
+return pthread_join ();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
+if ac_fn_c_try_link "$LINENO"; then :
+  acx_pthread_ok=yes
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_ok" >&5
+$as_echo "$acx_pthread_ok" >&6; }
+        if test x"$acx_pthread_ok" = xno; then
+                PTHREAD_LIBS=""
+                PTHREAD_CFLAGS=""
+        fi
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
+fi
+
+# We must check for the threads library under a number of different
+# names; the ordering is very important because some systems
+# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
+# libraries is broken (non-POSIX).
+
+# Create a list of thread flags to try.  Items starting with a "-" are
+# C compiler flags, and other items are library names, except for "none"
+# which indicates that we try without any flags at all, and "pthread-config"
+# which is a program returning the flags for the Pth emulation library.
+
+acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
+
+# The ordering *is* (sometimes) important.  Some notes on the
+# individual items follow:
+
+# pthreads: AIX (must check this before -lpthread)
+# none: in case threads are in libc; should be tried before -Kthread and
+#       other compiler flags to prevent continual compiler warnings
+# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
+# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
+# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
+# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
+# -pthreads: Solaris/gcc
+# -mthreads: Mingw32/gcc, Lynx/gcc
+# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
+#      doesn't hurt to check since this sometimes defines pthreads too;
+#      also defines -D_REENTRANT)
+# pthread: Linux, etcetera
+# --thread-safe: KAI C++
+# pthread-config: use pthread-config program (for GNU Pth library)
+
+case "${host_cpu}-${host_os}" in
+        *solaris*)
+
+        # On Solaris (at least, for some versions), libc contains stubbed
+        # (non-functional) versions of the pthreads routines, so link-based
+        # tests will erroneously succeed.  (We need to link with -pthread or
+        # -lpthread.)  (The stubs are missing pthread_cleanup_push, or rather
+        # a function called by this macro, so we could check for that, but
+        # who knows whether they'll stub that too in a future libc.)  So,
+        # we'll just look for -pthreads and -lpthread first:
+
+        acx_pthread_flags="-pthread -pthreads pthread -mt $acx_pthread_flags"
+        ;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_lib_cairo_cairo_svg_surface_create=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_cv_lib_cairo_cairo_svg_surface_create=no
-fi
+if test x"$acx_pthread_ok" = xno; then
+for flag in $acx_pthread_flags; do
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_cairo_cairo_svg_surface_create" >&5
-$as_echo "$ac_cv_lib_cairo_cairo_svg_surface_create" >&6; }
-if test "x$ac_cv_lib_cairo_cairo_svg_surface_create" = x""yes; then
+        case $flag in
+                none)
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5
+$as_echo_n "checking whether pthreads work without any flags... " >&6; }
+                ;;
+
+                -*)
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $flag" >&5
+$as_echo_n "checking whether pthreads work with $flag... " >&6; }
+                PTHREAD_CFLAGS="$flag"
+                ;;
 
-    if test "${ac_cv_header_cairo_svg_h+set}" = set; then
-  { $as_echo "$as_me:$LINENO: checking for cairo-svg.h" >&5
-$as_echo_n "checking for cairo-svg.h... " >&6; }
-if test "${ac_cv_header_cairo_svg_h+set}" = set; then
+               pthread-config)
+               # Extract the first word of "pthread-config", so it can be a program name with args.
+set dummy pthread-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_acx_pthread_config+set}" = set; then :
   $as_echo_n "(cached) " >&6
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_cairo_svg_h" >&5
-$as_echo "$ac_cv_header_cairo_svg_h" >&6; }
 else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking cairo-svg.h usability" >&5
-$as_echo_n "checking cairo-svg.h usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <cairo-svg.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
+  if test -n "$acx_pthread_config"; then
+  ac_cv_prog_acx_pthread_config="$acx_pthread_config" # Let the user override the test.
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_acx_pthread_config="yes"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
-       ac_header_compiler=no
+  test -z "$ac_cv_prog_acx_pthread_config" && ac_cv_prog_acx_pthread_config="no"
+fi
+fi
+acx_pthread_config=$ac_cv_prog_acx_pthread_config
+if test -n "$acx_pthread_config"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_config" >&5
+$as_echo "$acx_pthread_config" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
 
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking cairo-svg.h presence" >&5
-$as_echo_n "checking cairo-svg.h presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+               if test x"$acx_pthread_config" = xno; then continue; fi
+               PTHREAD_CFLAGS="`pthread-config --cflags`"
+               PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
+               ;;
+
+                *)
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$flag" >&5
+$as_echo_n "checking for the pthreads library -l$flag... " >&6; }
+                PTHREAD_LIBS="-l$flag"
+                ;;
+        esac
+
+        save_LIBS="$LIBS"
+        save_CFLAGS="$CFLAGS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+
+        # Check for various functions.  We must include pthread.h,
+        # since some functions may be macros.  (On the Sequent, we
+        # need a special flag -Kthread to make this header compile.)
+        # We check for pthread_join because it is in -lpthread on IRIX
+        # while pthread_create is in libc.  We check for pthread_attr_init
+        # due to DEC craziness with -lpthreads.  We check for
+        # pthread_cleanup_push because it is one of the few pthread
+        # functions on Solaris that doesn't have a non-functional libc stub.
+        # We try pthread_create on general principles.
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <cairo-svg.h>
+#include <pthread.h>
+int
+main ()
+{
+pthread_t th; pthread_join(th, 0);
+                     pthread_attr_init(0); pthread_cleanup_push(0, 0);
+                     pthread_create(0,0,0,0); pthread_cleanup_pop(0);
+  ;
+  return 0;
+}
 _ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
+if ac_fn_c_try_link "$LINENO"; then :
+  acx_pthread_ok=yes
 fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
 
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-svg.h: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: cairo-svg.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-svg.h: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: cairo-svg.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-svg.h: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: cairo-svg.h: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-svg.h:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: cairo-svg.h:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-svg.h: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: cairo-svg.h: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-svg.h:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: cairo-svg.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-svg.h: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: cairo-svg.h: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-svg.h: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: cairo-svg.h: in the future, the compiler will take precedence" >&2;}
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_ok" >&5
+$as_echo "$acx_pthread_ok" >&6; }
+        if test "x$acx_pthread_ok" = xyes; then
+                break;
+        fi
 
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for cairo-svg.h" >&5
-$as_echo_n "checking for cairo-svg.h... " >&6; }
-if test "${ac_cv_header_cairo_svg_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_header_cairo_svg_h=$ac_header_preproc
+        PTHREAD_LIBS=""
+        PTHREAD_CFLAGS=""
+done
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_cairo_svg_h" >&5
-$as_echo "$ac_cv_header_cairo_svg_h" >&6; }
 
+# Various other checks:
+if test "x$acx_pthread_ok" = xyes; then
+        save_LIBS="$LIBS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        save_CFLAGS="$CFLAGS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+
+        # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5
+$as_echo_n "checking for joinable pthread attribute... " >&6; }
+       attr_name=unknown
+       for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <pthread.h>
+int
+main ()
+{
+int attr=$attr;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  attr_name=$attr; break
 fi
-if test "x$ac_cv_header_cairo_svg_h" = x""yes; then
-  LIBS="-lcairo ${LIBS}";EX_CHECK_STATE=YES
-fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+       done
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $attr_name" >&5
+$as_echo "$attr_name" >&6; }
+        if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
+
+cat >>confdefs.h <<_ACEOF
+#define PTHREAD_CREATE_JOINABLE $attr_name
+_ACEOF
+
+        fi
 
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking if more special flags are required for pthreads" >&5
+$as_echo_n "checking if more special flags are required for pthreads... " >&6; }
+        x_rflag=no
+        case "${host_cpu}-${host_os}" in
+            *-aix* | *-freebsd* | *-darwin*) x_rflag="-D_THREAD_SAFE";;
+            *solaris* | *-osf* | *-hpux*) x_rflag="-D_REENTRANT";;
+            *-linux* | *-k*bsd*-gnu*)
+            if test x"$PTHREAD_CFLAGS" = "x-pthread"; then
+                # For Linux/gcc "-pthread" implies "-lpthread". We need, however, to make this explicit
+                # in PTHREAD_LIBS such that a shared library to be built properly depends on libpthread.
+                PTHREAD_LIBS="-lpthread $PTHREAD_LIBS"
+            fi;;
+        esac
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${x_rflag}" >&5
+$as_echo "${x_rflag}" >&6; }
+        if test "x$x_rflag" != xno; then
+            PTHREAD_CFLAGS="$x_rflag $PTHREAD_CFLAGS"
+        fi
 
-fi
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
 
- if test $EX_CHECK_STATE = NO; then
-        for ac_prog in pkg-config
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+        # More AIX lossage: must compile with cc_r
+        # Extract the first word of "cc_r", so it can be a program name with args.
+set dummy cc_r; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_PKGCONFIG+set}" = set; then
+if test "${ac_cv_prog_PTHREAD_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  if test -n "$PKGCONFIG"; then
-  ac_cv_prog_PKGCONFIG="$PKGCONFIG" # Let the user override the test.
+  if test -n "$PTHREAD_CC"; then
+  ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_PKGCONFIG="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    ac_cv_prog_PTHREAD_CC="cc_r"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
+  test -z "$ac_cv_prog_PTHREAD_CC" && ac_cv_prog_PTHREAD_CC="${CC}"
 fi
 fi
-PKGCONFIG=$ac_cv_prog_PKGCONFIG
-if test -n "$PKGCONFIG"; then
-  { $as_echo "$as_me:$LINENO: result: $PKGCONFIG" >&5
-$as_echo "$PKGCONFIG" >&6; }
+PTHREAD_CC=$ac_cv_prog_PTHREAD_CC
+if test -n "$PTHREAD_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5
+$as_echo "$PTHREAD_CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
-  test -n "$PKGCONFIG" && break
-done
-test -n "$PKGCONFIG" || PKGCONFIG="no"
+else
+        PTHREAD_CC="$CC"
+fi
 
-    if test "$PKGCONFIG" != "no"; then
-          if $PKGCONFIG --exists cairo-svg; then
-             CPPFLAGS=${CPPFLAGS}" "`$PKGCONFIG --cflags cairo-svg`
-             LDFLAGS=${LDFLAGS}" "`$PKGCONFIG --libs-only-L cairo-svg`
-             LDFLAGS=${LDFLAGS}" "`$PKGCONFIG --libs-only-other cairo-svg`
-             LIBS=${LIBS}" "`$PKGCONFIG --libs-only-l cairo-svg`
-                            unset ac_cv_lib_`echo cairo | sed 's/[^_a-zA-Z0-9]/_/g;s/^[0-9]/_/'`_cairo_svg_surface_create
-             { $as_echo "$as_me:$LINENO: checking for cairo_svg_surface_create in -lcairo" >&5
-$as_echo_n "checking for cairo_svg_surface_create in -lcairo... " >&6; }
-if test "${ac_cv_lib_cairo_cairo_svg_surface_create+set}" = set; then
-  $as_echo_n "(cached) " >&6
+
+
+
+
+# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
+if test x"$acx_pthread_ok" = xyes; then
+
+    MULTITHREAD_CFLAGS=$PTHREAD_CFLAGS
+    MULTITHREAD_LDFLAGS=$PTHREAD_LIBS
+
+        :
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lcairo  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+        acx_pthread_ok=no
+
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+fi
+
+
+if test  "x$x_rflag" != "xno"; then
+   CPPFLAGS="$CPPFLAGS $x_rflag"
+fi
+
+ if test $enable_pthread != no; then
+  BUILD_MULTITHREAD_TRUE=
+  BUILD_MULTITHREAD_FALSE='#'
+else
+  BUILD_MULTITHREAD_TRUE='#'
+  BUILD_MULTITHREAD_FALSE=
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking do we need malloc/malloc.h" >&5
+$as_echo_n "checking do we need malloc/malloc.h... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+#include <stdlib.h>
+int
+main ()
+{
+malloc(1)
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char cairo_svg_surface_create ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: nope, works out of the box" >&5
+$as_echo "nope, works out of the box" >&6; }
+else
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+                  #include <malloc/malloc.h>
 int
 main ()
 {
-return cairo_svg_surface_create ();
+malloc(1)
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_lib_cairo_cairo_svg_surface_create=yes
+if ac_fn_c_try_link "$LINENO"; then :
+
+           $as_echo "#define MUST_HAVE_MALLOC_MALLOC_H 1" >>confdefs.h
+
+           { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes we do" >&5
+$as_echo "yes we do" >&6; }
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  as_fn_error "Can not figure how to compile malloc" "$LINENO" 5
 
-       ac_cv_lib_cairo_cairo_svg_surface_create=no
 fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_cairo_cairo_svg_surface_create" >&5
-$as_echo "$ac_cv_lib_cairo_cairo_svg_surface_create" >&6; }
-if test "x$ac_cv_lib_cairo_cairo_svg_surface_create" = x""yes; then
 
-                unset ac_cv_header_`echo cairo-svg.h | sed 's/[^_a-zA-Z0-9]/_/g;s/^[0-9]/_/'`
-                if test "${ac_cv_header_cairo_svg_h+set}" = set; then
-  { $as_echo "$as_me:$LINENO: checking for cairo-svg.h" >&5
-$as_echo_n "checking for cairo-svg.h... " >&6; }
-if test "${ac_cv_header_cairo_svg_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_cairo_svg_h" >&5
-$as_echo "$ac_cv_header_cairo_svg_h" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking cairo-svg.h usability" >&5
-$as_echo_n "checking cairo-svg.h usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <cairo-svg.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
-       ac_header_compiler=no
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
+$as_echo "#define TIME_T_IS_LONG /**/" >>confdefs.h
 
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking cairo-svg.h presence" >&5
-$as_echo_n "checking cairo-svg.h presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+
+$as_echo "#define TIME_T_IS_LONG_LONG /**/" >>confdefs.h
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the type of time_t" >&5
+$as_echo_n "checking the type of time_t... " >&6; }
+if test "$cross_compiling" = yes; then :
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot run test program while cross compiling
+See \`config.log' for more details." "$LINENO" 5; }
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <cairo-svg.h>
+#include <time.h>
+int
+main ()
+{
+if (sizeof(long) != sizeof(time_t)) return 1;
+
+  ;
+  return 0;
+}
 _ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
+if ac_fn_c_try_run "$LINENO"; then :
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: time_t is long" >&5
+$as_echo "time_t is long" >&6; }
+      $as_echo "#define TIME_T_IS_LONG 1" >>confdefs.h
+
+
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+   if test "$cross_compiling" = yes; then :
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error "cannot run test program while cross compiling
+See \`config.log' for more details." "$LINENO" 5; }
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <time.h>
+int
+main ()
+{
+if (sizeof(long long) != sizeof(time_t)) return 1;
 
-  ac_header_preproc=no
-fi
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
 
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
+          { $as_echo "$as_me:${as_lineno-$LINENO}: result: time_t is long long" >&5
+$as_echo "time_t is long long" >&6; }
+          $as_echo "#define TIME_T_IS_LONG_LONG 1" >>confdefs.h
 
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-svg.h: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: cairo-svg.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-svg.h: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: cairo-svg.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-svg.h: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: cairo-svg.h: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-svg.h:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: cairo-svg.h:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-svg.h: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: cairo-svg.h: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-svg.h:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: cairo-svg.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-svg.h: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: cairo-svg.h: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-svg.h: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: cairo-svg.h: in the future, the compiler will take precedence" >&2;}
 
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for cairo-svg.h" >&5
-$as_echo_n "checking for cairo-svg.h... " >&6; }
-if test "${ac_cv_header_cairo_svg_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
 else
-  ac_cv_header_cairo_svg_h=$ac_header_preproc
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_cairo_svg_h" >&5
-$as_echo "$ac_cv_header_cairo_svg_h" >&6; }
+  as_fn_error "can not figure type of time_t" "$LINENO" 5
 
 fi
-if test "x$ac_cv_header_cairo_svg_h" = x""yes; then
-  EX_CHECK_STATE=YES
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
 
 
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-          else
-             { $as_echo "$as_me:$LINENO: WARNING:
-----------------------------------------------------------------------------
-* I found a copy of pkgconfig, but there is no cairo-svg.pc file around.
-  You may want to set the PKG_CONFIG_PATH variable to point to its
-  location.
-----------------------------------------------------------------------------
-                       " >&5
-$as_echo "$as_me: WARNING:
-----------------------------------------------------------------------------
-* I found a copy of pkgconfig, but there is no cairo-svg.pc file around.
-  You may want to set the PKG_CONFIG_PATH variable to point to its
-  location.
-----------------------------------------------------------------------------
-                       " >&2;}
-           fi
-     fi
-  fi
 
-  if test ${EX_CHECK_STATE} = NO; then
-     { $as_echo "$as_me:$LINENO: WARNING:
-----------------------------------------------------------------------------
-* I could not find a working copy of cairo-svg. Check config.log for hints on why
-  this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
-  so that compiler and the linker can find libcairo and its header files. If
-  you have not installed cairo-svg, you can get it either from its original home on
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+case $TERM in
+       #   for the most important terminal types we directly know the sequences
+       xterm|xterm*|vt220|vt220*)
+               T_MD=`awk 'BEGIN { printf("%c%c%c%c", 27, 91, 49, 109); }' </dev/null 2>/dev/null`
+               T_ME=`awk 'BEGIN { printf("%c%c%c", 27, 91, 109); }' </dev/null 2>/dev/null`
+       ;;
+       vt100|vt100*|cygwin)
+               T_MD=`awk 'BEGIN { printf("%c%c%c%c%c%c", 27, 91, 49, 109, 0, 0); }' </dev/null 2>/dev/null`
+               T_ME=`awk 'BEGIN { printf("%c%c%c%c%c", 27, 91, 109, 0, 0); }' </dev/null 2>/dev/null`
+       ;;
+       *)
+               T_MD=''
+               T_ME=''
+       ;;
+esac
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
+$as_echo "" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${T_MD}Find 3rd-Party Libraries${T_ME}" >&5
+$as_echo "${T_MD}Find 3rd-Party Libraries${T_ME}" >&6; }
+
 
-     http://cairographics.org/releases/
+# Check whether --enable-libdbi was given.
+if test "${enable_libdbi+set}" = set; then :
+  enableval=$enable_libdbi; have_libdbi=no
+else
 
-  You can find also find an archive copy on
+  XXX=$LIBS
+  LIBS="$LIBS -ldbi -ldl"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libdbi" >&5
+$as_echo_n "checking for libdbi... " >&6; }
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <dbi/dbi.h>
+int
+main ()
+{
+dbi_initialize(NULL)
 
-     http://oss.oetiker.ch/rrdtool/pub/libs
+  ;
+  return 0;
+}
 
-  The last tested version of cairo-svg is 1.4.6.
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
 
-       LIBS=$LIBS
-   LDFLAGS=$LDFLAGS
-  CPPFLAGS=$CPPFLAGS
+$as_echo "#define HAVE_LIBDBI 1" >>confdefs.h
 
-----------------------------------------------------------------------------
-                " >&5
-$as_echo "$as_me: WARNING:
-----------------------------------------------------------------------------
-* I could not find a working copy of cairo-svg. Check config.log for hints on why
-  this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
-  so that compiler and the linker can find libcairo and its header files. If
-  you have not installed cairo-svg, you can get it either from its original home on
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+       have_libdbi=yes
 
-     http://cairographics.org/releases/
+else
+  LIBS=$XXX
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       have_libdbi=no
 
-  You can find also find an archive copy on
 
-     http://oss.oetiker.ch/rrdtool/pub/libs
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
-  The last tested version of cairo-svg is 1.4.6.
+fi
 
-       LIBS=$LIBS
-   LDFLAGS=$LDFLAGS
-  CPPFLAGS=$CPPFLAGS
+ if test $have_libdbi != no; then
+  BUILD_LIBDBI_TRUE=
+  BUILD_LIBDBI_FALSE='#'
+else
+  BUILD_LIBDBI_TRUE='#'
+  BUILD_LIBDBI_FALSE=
+fi
 
-----------------------------------------------------------------------------
-                " >&2;}
-       EX_CHECK_ALL_ERR=YES
-       LIBS="${ex_check_save_LIBS}"
-       CPPFLAGS="${ex_check_save_CPPFLAGS}"
-       LDFLAGS="${ex_check_save_LDFLAGS}"
-    fi
-    ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ if test $enable_rrdcgi != no; then
+  BUILD_RRDCGI_TRUE=
+  BUILD_RRDCGI_FALSE='#'
+else
+  BUILD_RRDCGI_TRUE='#'
+  BUILD_RRDCGI_FALSE=
+fi
 
 
 
+CORE_LIBS="$LIBS"
+
 
  ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
@@ -27482,18 +18998,14 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
  if test "x""" != "x"; then
    CPPFLAGS="$CPPFLAGS -I"""
  fi
-  { $as_echo "$as_me:$LINENO: checking for cairo_pdf_surface_create in -lcairo" >&5
-$as_echo_n "checking for cairo_pdf_surface_create in -lcairo... " >&6; }
-if test "${ac_cv_lib_cairo_cairo_pdf_surface_create+set}" = set; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo_font_options_create in -lcairo" >&5
+$as_echo_n "checking for cairo_font_options_create in -lcairo... " >&6; }
+if test "${ac_cv_lib_cairo_cairo_font_options_create+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lcairo  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -27502,181 +19014,30 @@ cat >>conftest.$ac_ext <<_ACEOF
 #ifdef __cplusplus
 extern "C"
 #endif
-char cairo_pdf_surface_create ();
+char cairo_font_options_create ();
 int
 main ()
 {
-return cairo_pdf_surface_create ();
+return cairo_font_options_create ();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_lib_cairo_cairo_pdf_surface_create=yes
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_cairo_cairo_font_options_create=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_cairo_cairo_pdf_surface_create=no
+  ac_cv_lib_cairo_cairo_font_options_create=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_cairo_cairo_pdf_surface_create" >&5
-$as_echo "$ac_cv_lib_cairo_cairo_pdf_surface_create" >&6; }
-if test "x$ac_cv_lib_cairo_cairo_pdf_surface_create" = x""yes; then
-
-    if test "${ac_cv_header_cairo_pdf_h+set}" = set; then
-  { $as_echo "$as_me:$LINENO: checking for cairo-pdf.h" >&5
-$as_echo_n "checking for cairo-pdf.h... " >&6; }
-if test "${ac_cv_header_cairo_pdf_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_cairo_pdf_h" >&5
-$as_echo "$ac_cv_header_cairo_pdf_h" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking cairo-pdf.h usability" >&5
-$as_echo_n "checking cairo-pdf.h usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <cairo-pdf.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking cairo-pdf.h presence" >&5
-$as_echo_n "checking cairo-pdf.h presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <cairo-pdf.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-pdf.h: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: cairo-pdf.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-pdf.h: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: cairo-pdf.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-pdf.h: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: cairo-pdf.h: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-pdf.h:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: cairo-pdf.h:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-pdf.h: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: cairo-pdf.h: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-pdf.h:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: cairo-pdf.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-pdf.h: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: cairo-pdf.h: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-pdf.h: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: cairo-pdf.h: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for cairo-pdf.h" >&5
-$as_echo_n "checking for cairo-pdf.h... " >&6; }
-if test "${ac_cv_header_cairo_pdf_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_header_cairo_pdf_h=$ac_header_preproc
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_cairo_pdf_h" >&5
-$as_echo "$ac_cv_header_cairo_pdf_h" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cairo_cairo_font_options_create" >&5
+$as_echo "$ac_cv_lib_cairo_cairo_font_options_create" >&6; }
+if test "x$ac_cv_lib_cairo_cairo_font_options_create" = x""yes; then :
 
-fi
-if test "x$ac_cv_header_cairo_pdf_h" = x""yes; then
+    ac_fn_c_check_header_mongrel "$LINENO" "cairo.h" "ac_cv_header_cairo_h" "$ac_includes_default"
+if test "x$ac_cv_header_cairo_h" = x""yes; then :
   LIBS="-lcairo ${LIBS}";EX_CHECK_STATE=YES
 fi
 
@@ -27688,9 +19049,9 @@ fi
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_PKGCONFIG+set}" = set; then
+if test "${ac_cv_prog_PKGCONFIG+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$PKGCONFIG"; then
@@ -27701,24 +19062,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_PKGCONFIG="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 PKGCONFIG=$ac_cv_prog_PKGCONFIG
 if test -n "$PKGCONFIG"; then
-  { $as_echo "$as_me:$LINENO: result: $PKGCONFIG" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
 $as_echo "$PKGCONFIG" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -27728,24 +19089,20 @@ done
 test -n "$PKGCONFIG" || PKGCONFIG="no"
 
     if test "$PKGCONFIG" != "no"; then
-          if $PKGCONFIG --exists cairo-pdf; then
-             CPPFLAGS=${CPPFLAGS}" "`$PKGCONFIG --cflags cairo-pdf`
-             LDFLAGS=${LDFLAGS}" "`$PKGCONFIG --libs-only-L cairo-pdf`
-             LDFLAGS=${LDFLAGS}" "`$PKGCONFIG --libs-only-other cairo-pdf`
-             LIBS=${LIBS}" "`$PKGCONFIG --libs-only-l cairo-pdf`
-                            unset ac_cv_lib_`echo cairo | sed 's/[^_a-zA-Z0-9]/_/g;s/^[0-9]/_/'`_cairo_pdf_surface_create
-             { $as_echo "$as_me:$LINENO: checking for cairo_pdf_surface_create in -lcairo" >&5
-$as_echo_n "checking for cairo_pdf_surface_create in -lcairo... " >&6; }
-if test "${ac_cv_lib_cairo_cairo_pdf_surface_create+set}" = set; then
+          if $PKGCONFIG --exists cairo-png; then
+             CPPFLAGS=${CPPFLAGS}" "`$PKGCONFIG --cflags cairo-png`
+             LDFLAGS=${LDFLAGS}" "`$PKGCONFIG --libs-only-L cairo-png`
+             LDFLAGS=${LDFLAGS}" "`$PKGCONFIG --libs-only-other cairo-png`
+             LIBS=${LIBS}" "`$PKGCONFIG --libs-only-l cairo-png`
+                            unset ac_cv_lib_`echo cairo | sed 's/[^_a-zA-Z0-9]/_/g;s/^[0-9]/_/'`_cairo_font_options_create
+             { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo_font_options_create in -lcairo" >&5
+$as_echo_n "checking for cairo_font_options_create in -lcairo... " >&6; }
+if test "${ac_cv_lib_cairo_cairo_font_options_create+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lcairo  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -27754,182 +19111,31 @@ cat >>conftest.$ac_ext <<_ACEOF
 #ifdef __cplusplus
 extern "C"
 #endif
-char cairo_pdf_surface_create ();
+char cairo_font_options_create ();
 int
 main ()
 {
-return cairo_pdf_surface_create ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_lib_cairo_cairo_pdf_surface_create=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_cairo_cairo_pdf_surface_create=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_cairo_cairo_pdf_surface_create" >&5
-$as_echo "$ac_cv_lib_cairo_cairo_pdf_surface_create" >&6; }
-if test "x$ac_cv_lib_cairo_cairo_pdf_surface_create" = x""yes; then
-
-                unset ac_cv_header_`echo cairo-pdf.h | sed 's/[^_a-zA-Z0-9]/_/g;s/^[0-9]/_/'`
-                if test "${ac_cv_header_cairo_pdf_h+set}" = set; then
-  { $as_echo "$as_me:$LINENO: checking for cairo-pdf.h" >&5
-$as_echo_n "checking for cairo-pdf.h... " >&6; }
-if test "${ac_cv_header_cairo_pdf_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_cairo_pdf_h" >&5
-$as_echo "$ac_cv_header_cairo_pdf_h" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking cairo-pdf.h usability" >&5
-$as_echo_n "checking cairo-pdf.h usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <cairo-pdf.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking cairo-pdf.h presence" >&5
-$as_echo_n "checking cairo-pdf.h presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <cairo-pdf.h>
+return cairo_font_options_create ();
+  ;
+  return 0;
+}
 _ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_cairo_cairo_font_options_create=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
+  ac_cv_lib_cairo_cairo_font_options_create=no
 fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-pdf.h: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: cairo-pdf.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-pdf.h: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: cairo-pdf.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-pdf.h: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: cairo-pdf.h: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-pdf.h:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: cairo-pdf.h:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-pdf.h: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: cairo-pdf.h: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-pdf.h:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: cairo-pdf.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-pdf.h: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: cairo-pdf.h: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-pdf.h: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: cairo-pdf.h: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for cairo-pdf.h" >&5
-$as_echo_n "checking for cairo-pdf.h... " >&6; }
-if test "${ac_cv_header_cairo_pdf_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_header_cairo_pdf_h=$ac_header_preproc
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_cairo_pdf_h" >&5
-$as_echo "$ac_cv_header_cairo_pdf_h" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cairo_cairo_font_options_create" >&5
+$as_echo "$ac_cv_lib_cairo_cairo_font_options_create" >&6; }
+if test "x$ac_cv_lib_cairo_cairo_font_options_create" = x""yes; then :
 
-fi
-if test "x$ac_cv_header_cairo_pdf_h" = x""yes; then
+                unset ac_cv_header_`echo cairo.h | sed 's/[^_a-zA-Z0-9]/_/g;s/^[0-9]/_/'`
+                ac_fn_c_check_header_mongrel "$LINENO" "cairo.h" "ac_cv_header_cairo_h" "$ac_includes_default"
+if test "x$ac_cv_header_cairo_h" = x""yes; then :
   EX_CHECK_STATE=YES
 fi
 
 fi
 
           else
-             { $as_echo "$as_me:$LINENO: WARNING:
+             { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
 ----------------------------------------------------------------------------
-* I found a copy of pkgconfig, but there is no cairo-pdf.pc file around.
+* I found a copy of pkgconfig, but there is no cairo-png.pc file around.
   You may want to set the PKG_CONFIG_PATH variable to point to its
   location.
 ----------------------------------------------------------------------------
                        " >&5
 $as_echo "$as_me: WARNING:
 ----------------------------------------------------------------------------
-* I found a copy of pkgconfig, but there is no cairo-pdf.pc file around.
+* I found a copy of pkgconfig, but there is no cairo-png.pc file around.
   You may want to set the PKG_CONFIG_PATH variable to point to its
   location.
 ----------------------------------------------------------------------------
@@ -27957,12 +19163,12 @@ $as_echo "$as_me: WARNING:
   fi
 
   if test ${EX_CHECK_STATE} = NO; then
-     { $as_echo "$as_me:$LINENO: WARNING:
+     { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
 ----------------------------------------------------------------------------
-* I could not find a working copy of cairo-pdf. Check config.log for hints on why
+* I could not find a working copy of cairo-png. Check config.log for hints on why
   this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
   so that compiler and the linker can find libcairo and its header files. If
-  you have not installed cairo-pdf, you can get it either from its original home on
+  you have not installed cairo-png, you can get it either from its original home on
 
      http://cairographics.org/releases/
 
@@ -27970,7 +19176,7 @@ $as_echo "$as_me: WARNING:
 
      http://oss.oetiker.ch/rrdtool/pub/libs
 
-  The last tested version of cairo-pdf is 1.4.6.
+  The last tested version of cairo-png is 1.4.6.
 
        LIBS=$LIBS
    LDFLAGS=$LDFLAGS
@@ -27980,10 +19186,10 @@ $as_echo "$as_me: WARNING:
                 " >&5
 $as_echo "$as_me: WARNING:
 ----------------------------------------------------------------------------
-* I could not find a working copy of cairo-pdf. Check config.log for hints on why
+* I could not find a working copy of cairo-png. Check config.log for hints on why
   this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
   so that compiler and the linker can find libcairo and its header files. If
-  you have not installed cairo-pdf, you can get it either from its original home on
+  you have not installed cairo-png, you can get it either from its original home on
 
      http://cairographics.org/releases/
 
@@ -27991,7 +19197,7 @@ $as_echo "$as_me: WARNING:
 
      http://oss.oetiker.ch/rrdtool/pub/libs
 
-  The last tested version of cairo-pdf is 1.4.6.
+  The last tested version of cairo-png is 1.4.6.
 
        LIBS=$LIBS
    LDFLAGS=$LDFLAGS
@@ -28026,18 +19232,14 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
  if test "x""" != "x"; then
    CPPFLAGS="$CPPFLAGS -I"""
  fi
-  { $as_echo "$as_me:$LINENO: checking for cairo_ps_surface_create in -lcairo" >&5
-$as_echo_n "checking for cairo_ps_surface_create in -lcairo... " >&6; }
-if test "${ac_cv_lib_cairo_cairo_ps_surface_create+set}" = set; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo_svg_surface_create in -lcairo" >&5
+$as_echo_n "checking for cairo_svg_surface_create in -lcairo... " >&6; }
+if test "${ac_cv_lib_cairo_cairo_svg_surface_create+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lcairo  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -28046,181 +19248,30 @@ cat >>conftest.$ac_ext <<_ACEOF
 #ifdef __cplusplus
 extern "C"
 #endif
-char cairo_ps_surface_create ();
+char cairo_svg_surface_create ();
 int
 main ()
 {
-return cairo_ps_surface_create ();
+return cairo_svg_surface_create ();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_lib_cairo_cairo_ps_surface_create=yes
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_cairo_cairo_svg_surface_create=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_cairo_cairo_ps_surface_create=no
+  ac_cv_lib_cairo_cairo_svg_surface_create=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_cairo_cairo_ps_surface_create" >&5
-$as_echo "$ac_cv_lib_cairo_cairo_ps_surface_create" >&6; }
-if test "x$ac_cv_lib_cairo_cairo_ps_surface_create" = x""yes; then
-
-    if test "${ac_cv_header_cairo_ps_h+set}" = set; then
-  { $as_echo "$as_me:$LINENO: checking for cairo-ps.h" >&5
-$as_echo_n "checking for cairo-ps.h... " >&6; }
-if test "${ac_cv_header_cairo_ps_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_cairo_ps_h" >&5
-$as_echo "$ac_cv_header_cairo_ps_h" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking cairo-ps.h usability" >&5
-$as_echo_n "checking cairo-ps.h usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <cairo-ps.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking cairo-ps.h presence" >&5
-$as_echo_n "checking cairo-ps.h presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <cairo-ps.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-ps.h: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: cairo-ps.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-ps.h: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: cairo-ps.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-ps.h: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: cairo-ps.h: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-ps.h:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: cairo-ps.h:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-ps.h: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: cairo-ps.h: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-ps.h:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: cairo-ps.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-ps.h: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: cairo-ps.h: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-ps.h: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: cairo-ps.h: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for cairo-ps.h" >&5
-$as_echo_n "checking for cairo-ps.h... " >&6; }
-if test "${ac_cv_header_cairo_ps_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_header_cairo_ps_h=$ac_header_preproc
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_cairo_ps_h" >&5
-$as_echo "$ac_cv_header_cairo_ps_h" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cairo_cairo_svg_surface_create" >&5
+$as_echo "$ac_cv_lib_cairo_cairo_svg_surface_create" >&6; }
+if test "x$ac_cv_lib_cairo_cairo_svg_surface_create" = x""yes; then :
 
-fi
-if test "x$ac_cv_header_cairo_ps_h" = x""yes; then
+    ac_fn_c_check_header_mongrel "$LINENO" "cairo-svg.h" "ac_cv_header_cairo_svg_h" "$ac_includes_default"
+if test "x$ac_cv_header_cairo_svg_h" = x""yes; then :
   LIBS="-lcairo ${LIBS}";EX_CHECK_STATE=YES
 fi
 
@@ -28232,9 +19283,9 @@ fi
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_PKGCONFIG+set}" = set; then
+if test "${ac_cv_prog_PKGCONFIG+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$PKGCONFIG"; then
@@ -28244,236 +19295,81 @@ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_PKGCONFIG="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-PKGCONFIG=$ac_cv_prog_PKGCONFIG
-if test -n "$PKGCONFIG"; then
-  { $as_echo "$as_me:$LINENO: result: $PKGCONFIG" >&5
-$as_echo "$PKGCONFIG" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$PKGCONFIG" && break
-done
-test -n "$PKGCONFIG" || PKGCONFIG="no"
-
-    if test "$PKGCONFIG" != "no"; then
-          if $PKGCONFIG --exists cairo-ps; then
-             CPPFLAGS=${CPPFLAGS}" "`$PKGCONFIG --cflags cairo-ps`
-             LDFLAGS=${LDFLAGS}" "`$PKGCONFIG --libs-only-L cairo-ps`
-             LDFLAGS=${LDFLAGS}" "`$PKGCONFIG --libs-only-other cairo-ps`
-             LIBS=${LIBS}" "`$PKGCONFIG --libs-only-l cairo-ps`
-                            unset ac_cv_lib_`echo cairo | sed 's/[^_a-zA-Z0-9]/_/g;s/^[0-9]/_/'`_cairo_ps_surface_create
-             { $as_echo "$as_me:$LINENO: checking for cairo_ps_surface_create in -lcairo" >&5
-$as_echo_n "checking for cairo_ps_surface_create in -lcairo... " >&6; }
-if test "${ac_cv_lib_cairo_cairo_ps_surface_create+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lcairo  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char cairo_ps_surface_create ();
-int
-main ()
-{
-return cairo_ps_surface_create ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_lib_cairo_cairo_ps_surface_create=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_cairo_cairo_ps_surface_create=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_cairo_cairo_ps_surface_create" >&5
-$as_echo "$ac_cv_lib_cairo_cairo_ps_surface_create" >&6; }
-if test "x$ac_cv_lib_cairo_cairo_ps_surface_create" = x""yes; then
-
-                unset ac_cv_header_`echo cairo-ps.h | sed 's/[^_a-zA-Z0-9]/_/g;s/^[0-9]/_/'`
-                if test "${ac_cv_header_cairo_ps_h+set}" = set; then
-  { $as_echo "$as_me:$LINENO: checking for cairo-ps.h" >&5
-$as_echo_n "checking for cairo-ps.h... " >&6; }
-if test "${ac_cv_header_cairo_ps_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_cairo_ps_h" >&5
-$as_echo "$ac_cv_header_cairo_ps_h" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking cairo-ps.h usability" >&5
-$as_echo_n "checking cairo-ps.h usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <cairo-ps.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking cairo-ps.h presence" >&5
-$as_echo_n "checking cairo-ps.h presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <cairo-ps.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_PKGCONFIG="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
-  ac_header_preproc=no
+fi
+fi
+PKGCONFIG=$ac_cv_prog_PKGCONFIG
+if test -n "$PKGCONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
+$as_echo "$PKGCONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
 
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-ps.h: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: cairo-ps.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-ps.h: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: cairo-ps.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-ps.h: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: cairo-ps.h: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-ps.h:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: cairo-ps.h:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-ps.h: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: cairo-ps.h: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-ps.h:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: cairo-ps.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-ps.h: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: cairo-ps.h: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: cairo-ps.h: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: cairo-ps.h: in the future, the compiler will take precedence" >&2;}
+  test -n "$PKGCONFIG" && break
+done
+test -n "$PKGCONFIG" || PKGCONFIG="no"
 
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for cairo-ps.h" >&5
-$as_echo_n "checking for cairo-ps.h... " >&6; }
-if test "${ac_cv_header_cairo_ps_h+set}" = set; then
+    if test "$PKGCONFIG" != "no"; then
+          if $PKGCONFIG --exists cairo-svg; then
+             CPPFLAGS=${CPPFLAGS}" "`$PKGCONFIG --cflags cairo-svg`
+             LDFLAGS=${LDFLAGS}" "`$PKGCONFIG --libs-only-L cairo-svg`
+             LDFLAGS=${LDFLAGS}" "`$PKGCONFIG --libs-only-other cairo-svg`
+             LIBS=${LIBS}" "`$PKGCONFIG --libs-only-l cairo-svg`
+                            unset ac_cv_lib_`echo cairo | sed 's/[^_a-zA-Z0-9]/_/g;s/^[0-9]/_/'`_cairo_svg_surface_create
+             { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo_svg_surface_create in -lcairo" >&5
+$as_echo_n "checking for cairo_svg_surface_create in -lcairo... " >&6; }
+if test "${ac_cv_lib_cairo_cairo_svg_surface_create+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  ac_cv_header_cairo_ps_h=$ac_header_preproc
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_cairo_ps_h" >&5
-$as_echo "$ac_cv_header_cairo_ps_h" >&6; }
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lcairo  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char cairo_svg_surface_create ();
+int
+main ()
+{
+return cairo_svg_surface_create ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_cairo_cairo_svg_surface_create=yes
+else
+  ac_cv_lib_cairo_cairo_svg_surface_create=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-if test "x$ac_cv_header_cairo_ps_h" = x""yes; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cairo_cairo_svg_surface_create" >&5
+$as_echo "$ac_cv_lib_cairo_cairo_svg_surface_create" >&6; }
+if test "x$ac_cv_lib_cairo_cairo_svg_surface_create" = x""yes; then :
+
+                unset ac_cv_header_`echo cairo-svg.h | sed 's/[^_a-zA-Z0-9]/_/g;s/^[0-9]/_/'`
+                ac_fn_c_check_header_mongrel "$LINENO" "cairo-svg.h" "ac_cv_header_cairo_svg_h" "$ac_includes_default"
+if test "x$ac_cv_header_cairo_svg_h" = x""yes; then :
   EX_CHECK_STATE=YES
 fi
 
 fi
 
           else
-             { $as_echo "$as_me:$LINENO: WARNING:
+             { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
 ----------------------------------------------------------------------------
-* I found a copy of pkgconfig, but there is no cairo-ps.pc file around.
+* I found a copy of pkgconfig, but there is no cairo-svg.pc file around.
   You may want to set the PKG_CONFIG_PATH variable to point to its
   location.
 ----------------------------------------------------------------------------
                        " >&5
 $as_echo "$as_me: WARNING:
 ----------------------------------------------------------------------------
-* I found a copy of pkgconfig, but there is no cairo-ps.pc file around.
+* I found a copy of pkgconfig, but there is no cairo-svg.pc file around.
   You may want to set the PKG_CONFIG_PATH variable to point to its
   location.
 ----------------------------------------------------------------------------
@@ -28501,12 +19397,12 @@ $as_echo "$as_me: WARNING:
   fi
 
   if test ${EX_CHECK_STATE} = NO; then
-     { $as_echo "$as_me:$LINENO: WARNING:
+     { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
 ----------------------------------------------------------------------------
-* I could not find a working copy of cairo-ps. Check config.log for hints on why
+* I could not find a working copy of cairo-svg. Check config.log for hints on why
   this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
   so that compiler and the linker can find libcairo and its header files. If
-  you have not installed cairo-ps, you can get it either from its original home on
+  you have not installed cairo-svg, you can get it either from its original home on
 
      http://cairographics.org/releases/
 
@@ -28514,7 +19410,7 @@ $as_echo "$as_me: WARNING:
 
      http://oss.oetiker.ch/rrdtool/pub/libs
 
-  The last tested version of cairo-ps is 1.4.6.
+  The last tested version of cairo-svg is 1.4.6.
 
        LIBS=$LIBS
    LDFLAGS=$LDFLAGS
@@ -28524,10 +19420,10 @@ $as_echo "$as_me: WARNING:
                 " >&5
 $as_echo "$as_me: WARNING:
 ----------------------------------------------------------------------------
-* I could not find a working copy of cairo-ps. Check config.log for hints on why
+* I could not find a working copy of cairo-svg. Check config.log for hints on why
   this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
   so that compiler and the linker can find libcairo and its header files. If
-  you have not installed cairo-ps, you can get it either from its original home on
+  you have not installed cairo-svg, you can get it either from its original home on
 
      http://cairographics.org/releases/
 
@@ -28535,7 +19431,7 @@ $as_echo "$as_me: WARNING:
 
      http://oss.oetiker.ch/rrdtool/pub/libs
 
-  The last tested version of cairo-ps is 1.4.6.
+  The last tested version of cairo-svg is 1.4.6.
 
        LIBS=$LIBS
    LDFLAGS=$LDFLAGS
@@ -28570,18 +19466,14 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
  if test "x""" != "x"; then
    CPPFLAGS="$CPPFLAGS -I"""
  fi
-  { $as_echo "$as_me:$LINENO: checking for glib_check_version in -lglib-2.0" >&5
-$as_echo_n "checking for glib_check_version in -lglib-2.0... " >&6; }
-if test "${ac_cv_lib_glib_2_0_glib_check_version+set}" = set; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo_pdf_surface_create in -lcairo" >&5
+$as_echo_n "checking for cairo_pdf_surface_create in -lcairo... " >&6; }
+if test "${ac_cv_lib_cairo_cairo_pdf_surface_create+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
-LIBS="-lglib-2.0  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+LIBS="-lcairo  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -28590,182 +19482,31 @@ cat >>conftest.$ac_ext <<_ACEOF
 #ifdef __cplusplus
 extern "C"
 #endif
-char glib_check_version ();
+char cairo_pdf_surface_create ();
 int
 main ()
 {
-return glib_check_version ();
+return cairo_pdf_surface_create ();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_lib_glib_2_0_glib_check_version=yes
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_cairo_cairo_pdf_surface_create=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_glib_2_0_glib_check_version=no
+  ac_cv_lib_cairo_cairo_pdf_surface_create=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_glib_2_0_glib_check_version" >&5
-$as_echo "$ac_cv_lib_glib_2_0_glib_check_version" >&6; }
-if test "x$ac_cv_lib_glib_2_0_glib_check_version" = x""yes; then
-
-    if test "${ac_cv_header_glib_h+set}" = set; then
-  { $as_echo "$as_me:$LINENO: checking for glib.h" >&5
-$as_echo_n "checking for glib.h... " >&6; }
-if test "${ac_cv_header_glib_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_glib_h" >&5
-$as_echo "$ac_cv_header_glib_h" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking glib.h usability" >&5
-$as_echo_n "checking glib.h usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <glib.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking glib.h presence" >&5
-$as_echo_n "checking glib.h presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <glib.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: glib.h: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: glib.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: glib.h: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: glib.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: glib.h: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: glib.h: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: glib.h:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: glib.h:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: glib.h: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: glib.h: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: glib.h:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: glib.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: glib.h: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: glib.h: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: glib.h: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: glib.h: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for glib.h" >&5
-$as_echo_n "checking for glib.h... " >&6; }
-if test "${ac_cv_header_glib_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_header_glib_h=$ac_header_preproc
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_glib_h" >&5
-$as_echo "$ac_cv_header_glib_h" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cairo_cairo_pdf_surface_create" >&5
+$as_echo "$ac_cv_lib_cairo_cairo_pdf_surface_create" >&6; }
+if test "x$ac_cv_lib_cairo_cairo_pdf_surface_create" = x""yes; then :
 
-fi
-if test "x$ac_cv_header_glib_h" = x""yes; then
-  LIBS="-lglib-2.0 ${LIBS}";EX_CHECK_STATE=YES
+    ac_fn_c_check_header_mongrel "$LINENO" "cairo-pdf.h" "ac_cv_header_cairo_pdf_h" "$ac_includes_default"
+if test "x$ac_cv_header_cairo_pdf_h" = x""yes; then :
+  LIBS="-lcairo ${LIBS}";EX_CHECK_STATE=YES
 fi
 
 
@@ -28776,9 +19517,9 @@ fi
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_PKGCONFIG+set}" = set; then
+if test "${ac_cv_prog_PKGCONFIG+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$PKGCONFIG"; then
@@ -28789,24 +19530,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_PKGCONFIG="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 PKGCONFIG=$ac_cv_prog_PKGCONFIG
 if test -n "$PKGCONFIG"; then
-  { $as_echo "$as_me:$LINENO: result: $PKGCONFIG" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
 $as_echo "$PKGCONFIG" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -28816,24 +19557,20 @@ done
 test -n "$PKGCONFIG" || PKGCONFIG="no"
 
     if test "$PKGCONFIG" != "no"; then
-          if $PKGCONFIG --exists glib-2.0; then
-             CPPFLAGS=${CPPFLAGS}" "`$PKGCONFIG --cflags glib-2.0`
-             LDFLAGS=${LDFLAGS}" "`$PKGCONFIG --libs-only-L glib-2.0`
-             LDFLAGS=${LDFLAGS}" "`$PKGCONFIG --libs-only-other glib-2.0`
-             LIBS=${LIBS}" "`$PKGCONFIG --libs-only-l glib-2.0`
-                            unset ac_cv_lib_`echo glib-2.0 | sed 's/[^_a-zA-Z0-9]/_/g;s/^[0-9]/_/'`_glib_check_version
-             { $as_echo "$as_me:$LINENO: checking for glib_check_version in -lglib-2.0" >&5
-$as_echo_n "checking for glib_check_version in -lglib-2.0... " >&6; }
-if test "${ac_cv_lib_glib_2_0_glib_check_version+set}" = set; then
+          if $PKGCONFIG --exists cairo-pdf; then
+             CPPFLAGS=${CPPFLAGS}" "`$PKGCONFIG --cflags cairo-pdf`
+             LDFLAGS=${LDFLAGS}" "`$PKGCONFIG --libs-only-L cairo-pdf`
+             LDFLAGS=${LDFLAGS}" "`$PKGCONFIG --libs-only-other cairo-pdf`
+             LIBS=${LIBS}" "`$PKGCONFIG --libs-only-l cairo-pdf`
+                            unset ac_cv_lib_`echo cairo | sed 's/[^_a-zA-Z0-9]/_/g;s/^[0-9]/_/'`_cairo_pdf_surface_create
+             { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo_pdf_surface_create in -lcairo" >&5
+$as_echo_n "checking for cairo_pdf_surface_create in -lcairo... " >&6; }
+if test "${ac_cv_lib_cairo_cairo_pdf_surface_create+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
-LIBS="-lglib-2.0  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+LIBS="-lcairo  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -28842,182 +19579,31 @@ cat >>conftest.$ac_ext <<_ACEOF
 #ifdef __cplusplus
 extern "C"
 #endif
-char glib_check_version ();
+char cairo_pdf_surface_create ();
 int
 main ()
 {
-return glib_check_version ();
+return cairo_pdf_surface_create ();
   ;
   return 0;
 }
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_lib_glib_2_0_glib_check_version=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_glib_2_0_glib_check_version=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_glib_2_0_glib_check_version" >&5
-$as_echo "$ac_cv_lib_glib_2_0_glib_check_version" >&6; }
-if test "x$ac_cv_lib_glib_2_0_glib_check_version" = x""yes; then
-
-                unset ac_cv_header_`echo glib.h | sed 's/[^_a-zA-Z0-9]/_/g;s/^[0-9]/_/'`
-                if test "${ac_cv_header_glib_h+set}" = set; then
-  { $as_echo "$as_me:$LINENO: checking for glib.h" >&5
-$as_echo_n "checking for glib.h... " >&6; }
-if test "${ac_cv_header_glib_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_glib_h" >&5
-$as_echo "$ac_cv_header_glib_h" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking glib.h usability" >&5
-$as_echo_n "checking glib.h usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <glib.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking glib.h presence" >&5
-$as_echo_n "checking glib.h presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <glib.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_cairo_cairo_pdf_surface_create=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
+  ac_cv_lib_cairo_cairo_pdf_surface_create=no
 fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: glib.h: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: glib.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: glib.h: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: glib.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: glib.h: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: glib.h: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: glib.h:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: glib.h:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: glib.h: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: glib.h: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: glib.h:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: glib.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: glib.h: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: glib.h: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: glib.h: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: glib.h: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for glib.h" >&5
-$as_echo_n "checking for glib.h... " >&6; }
-if test "${ac_cv_header_glib_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_header_glib_h=$ac_header_preproc
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_glib_h" >&5
-$as_echo "$ac_cv_header_glib_h" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cairo_cairo_pdf_surface_create" >&5
+$as_echo "$ac_cv_lib_cairo_cairo_pdf_surface_create" >&6; }
+if test "x$ac_cv_lib_cairo_cairo_pdf_surface_create" = x""yes; then :
 
-fi
-if test "x$ac_cv_header_glib_h" = x""yes; then
+                unset ac_cv_header_`echo cairo-pdf.h | sed 's/[^_a-zA-Z0-9]/_/g;s/^[0-9]/_/'`
+                ac_fn_c_check_header_mongrel "$LINENO" "cairo-pdf.h" "ac_cv_header_cairo_pdf_h" "$ac_includes_default"
+if test "x$ac_cv_header_cairo_pdf_h" = x""yes; then :
   EX_CHECK_STATE=YES
 fi
 
 fi
 
           else
-             { $as_echo "$as_me:$LINENO: WARNING:
+             { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
 ----------------------------------------------------------------------------
-* I found a copy of pkgconfig, but there is no glib-2.0.pc file around.
+* I found a copy of pkgconfig, but there is no cairo-pdf.pc file around.
   You may want to set the PKG_CONFIG_PATH variable to point to its
   location.
 ----------------------------------------------------------------------------
                        " >&5
 $as_echo "$as_me: WARNING:
 ----------------------------------------------------------------------------
-* I found a copy of pkgconfig, but there is no glib-2.0.pc file around.
+* I found a copy of pkgconfig, but there is no cairo-pdf.pc file around.
   You may want to set the PKG_CONFIG_PATH variable to point to its
   location.
 ----------------------------------------------------------------------------
@@ -29045,20 +19631,20 @@ $as_echo "$as_me: WARNING:
   fi
 
   if test ${EX_CHECK_STATE} = NO; then
-     { $as_echo "$as_me:$LINENO: WARNING:
+     { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
 ----------------------------------------------------------------------------
-* I could not find a working copy of glib-2.0. Check config.log for hints on why
+* I could not find a working copy of cairo-pdf. Check config.log for hints on why
   this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
-  so that compiler and the linker can find libglib-2.0 and its header files. If
-  you have not installed glib-2.0, you can get it either from its original home on
+  so that compiler and the linker can find libcairo and its header files. If
+  you have not installed cairo-pdf, you can get it either from its original home on
 
-     ftp://ftp.gtk.org/pub/glib/2.12/
+     http://cairographics.org/releases/
 
   You can find also find an archive copy on
 
      http://oss.oetiker.ch/rrdtool/pub/libs
 
-  The last tested version of glib-2.0 is 2.12.12.
+  The last tested version of cairo-pdf is 1.4.6.
 
        LIBS=$LIBS
    LDFLAGS=$LDFLAGS
@@ -29068,18 +19654,18 @@ $as_echo "$as_me: WARNING:
                 " >&5
 $as_echo "$as_me: WARNING:
 ----------------------------------------------------------------------------
-* I could not find a working copy of glib-2.0. Check config.log for hints on why
+* I could not find a working copy of cairo-pdf. Check config.log for hints on why
   this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
-  so that compiler and the linker can find libglib-2.0 and its header files. If
-  you have not installed glib-2.0, you can get it either from its original home on
+  so that compiler and the linker can find libcairo and its header files. If
+  you have not installed cairo-pdf, you can get it either from its original home on
 
-     ftp://ftp.gtk.org/pub/glib/2.12/
+     http://cairographics.org/releases/
 
   You can find also find an archive copy on
 
      http://oss.oetiker.ch/rrdtool/pub/libs
 
-  The last tested version of glib-2.0 is 2.12.12.
+  The last tested version of cairo-pdf is 1.4.6.
 
        LIBS=$LIBS
    LDFLAGS=$LDFLAGS
@@ -29114,18 +19700,14 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
  if test "x""" != "x"; then
    CPPFLAGS="$CPPFLAGS -I"""
  fi
-  { $as_echo "$as_me:$LINENO: checking for pango_cairo_context_set_font_options in -lpango-1.0" >&5
-$as_echo_n "checking for pango_cairo_context_set_font_options in -lpango-1.0... " >&6; }
-if test "${ac_cv_lib_pango_1_0_pango_cairo_context_set_font_options+set}" = set; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo_ps_surface_create in -lcairo" >&5
+$as_echo_n "checking for cairo_ps_surface_create in -lcairo... " >&6; }
+if test "${ac_cv_lib_cairo_cairo_ps_surface_create+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpango-1.0  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+LIBS="-lcairo  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -29134,182 +19716,31 @@ cat >>conftest.$ac_ext <<_ACEOF
 #ifdef __cplusplus
 extern "C"
 #endif
-char pango_cairo_context_set_font_options ();
+char cairo_ps_surface_create ();
 int
 main ()
 {
-return pango_cairo_context_set_font_options ();
+return cairo_ps_surface_create ();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_lib_pango_1_0_pango_cairo_context_set_font_options=yes
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_cairo_cairo_ps_surface_create=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_pango_1_0_pango_cairo_context_set_font_options=no
+  ac_cv_lib_cairo_cairo_ps_surface_create=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_pango_1_0_pango_cairo_context_set_font_options" >&5
-$as_echo "$ac_cv_lib_pango_1_0_pango_cairo_context_set_font_options" >&6; }
-if test "x$ac_cv_lib_pango_1_0_pango_cairo_context_set_font_options" = x""yes; then
-
-    if test "${ac_cv_header_pango_pango_h+set}" = set; then
-  { $as_echo "$as_me:$LINENO: checking for pango/pango.h" >&5
-$as_echo_n "checking for pango/pango.h... " >&6; }
-if test "${ac_cv_header_pango_pango_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_pango_pango_h" >&5
-$as_echo "$ac_cv_header_pango_pango_h" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking pango/pango.h usability" >&5
-$as_echo_n "checking pango/pango.h usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <pango/pango.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking pango/pango.h presence" >&5
-$as_echo_n "checking pango/pango.h presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <pango/pango.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: pango/pango.h: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: pango/pango.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: pango/pango.h: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: pango/pango.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: pango/pango.h: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: pango/pango.h: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: pango/pango.h:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: pango/pango.h:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: pango/pango.h: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: pango/pango.h: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: pango/pango.h:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: pango/pango.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: pango/pango.h: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: pango/pango.h: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: pango/pango.h: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: pango/pango.h: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for pango/pango.h" >&5
-$as_echo_n "checking for pango/pango.h... " >&6; }
-if test "${ac_cv_header_pango_pango_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_header_pango_pango_h=$ac_header_preproc
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_pango_pango_h" >&5
-$as_echo "$ac_cv_header_pango_pango_h" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cairo_cairo_ps_surface_create" >&5
+$as_echo "$ac_cv_lib_cairo_cairo_ps_surface_create" >&6; }
+if test "x$ac_cv_lib_cairo_cairo_ps_surface_create" = x""yes; then :
 
-fi
-if test "x$ac_cv_header_pango_pango_h" = x""yes; then
-  LIBS="-lpango-1.0 ${LIBS}";EX_CHECK_STATE=YES
+    ac_fn_c_check_header_mongrel "$LINENO" "cairo-ps.h" "ac_cv_header_cairo_ps_h" "$ac_includes_default"
+if test "x$ac_cv_header_cairo_ps_h" = x""yes; then :
+  LIBS="-lcairo ${LIBS}";EX_CHECK_STATE=YES
 fi
 
 
@@ -29320,9 +19751,9 @@ fi
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_PKGCONFIG+set}" = set; then
+if test "${ac_cv_prog_PKGCONFIG+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$PKGCONFIG"; then
@@ -29333,235 +19764,80 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_PKGCONFIG="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-PKGCONFIG=$ac_cv_prog_PKGCONFIG
-if test -n "$PKGCONFIG"; then
-  { $as_echo "$as_me:$LINENO: result: $PKGCONFIG" >&5
-$as_echo "$PKGCONFIG" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$PKGCONFIG" && break
-done
-test -n "$PKGCONFIG" || PKGCONFIG="no"
-
-    if test "$PKGCONFIG" != "no"; then
-          if $PKGCONFIG --exists pangocairo; then
-             CPPFLAGS=${CPPFLAGS}" "`$PKGCONFIG --cflags pangocairo`
-             LDFLAGS=${LDFLAGS}" "`$PKGCONFIG --libs-only-L pangocairo`
-             LDFLAGS=${LDFLAGS}" "`$PKGCONFIG --libs-only-other pangocairo`
-             LIBS=${LIBS}" "`$PKGCONFIG --libs-only-l pangocairo`
-                            unset ac_cv_lib_`echo pango-1.0 | sed 's/[^_a-zA-Z0-9]/_/g;s/^[0-9]/_/'`_pango_cairo_context_set_font_options
-             { $as_echo "$as_me:$LINENO: checking for pango_cairo_context_set_font_options in -lpango-1.0" >&5
-$as_echo_n "checking for pango_cairo_context_set_font_options in -lpango-1.0... " >&6; }
-if test "${ac_cv_lib_pango_1_0_pango_cairo_context_set_font_options+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpango-1.0  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char pango_cairo_context_set_font_options ();
-int
-main ()
-{
-return pango_cairo_context_set_font_options ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_lib_pango_1_0_pango_cairo_context_set_font_options=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_pango_1_0_pango_cairo_context_set_font_options=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_pango_1_0_pango_cairo_context_set_font_options" >&5
-$as_echo "$ac_cv_lib_pango_1_0_pango_cairo_context_set_font_options" >&6; }
-if test "x$ac_cv_lib_pango_1_0_pango_cairo_context_set_font_options" = x""yes; then
-
-                unset ac_cv_header_`echo pango/pango.h | sed 's/[^_a-zA-Z0-9]/_/g;s/^[0-9]/_/'`
-                if test "${ac_cv_header_pango_pango_h+set}" = set; then
-  { $as_echo "$as_me:$LINENO: checking for pango/pango.h" >&5
-$as_echo_n "checking for pango/pango.h... " >&6; }
-if test "${ac_cv_header_pango_pango_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_pango_pango_h" >&5
-$as_echo "$ac_cv_header_pango_pango_h" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking pango/pango.h usability" >&5
-$as_echo_n "checking pango/pango.h usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <pango/pango.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking pango/pango.h presence" >&5
-$as_echo_n "checking pango/pango.h presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <pango/pango.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_PKGCONFIG="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
-  ac_header_preproc=no
+fi
+fi
+PKGCONFIG=$ac_cv_prog_PKGCONFIG
+if test -n "$PKGCONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
+$as_echo "$PKGCONFIG" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
 
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: pango/pango.h: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: pango/pango.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: pango/pango.h: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: pango/pango.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: pango/pango.h: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: pango/pango.h: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: pango/pango.h:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: pango/pango.h:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: pango/pango.h: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: pango/pango.h: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: pango/pango.h:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: pango/pango.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: pango/pango.h: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: pango/pango.h: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: pango/pango.h: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: pango/pango.h: in the future, the compiler will take precedence" >&2;}
+  test -n "$PKGCONFIG" && break
+done
+test -n "$PKGCONFIG" || PKGCONFIG="no"
 
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for pango/pango.h" >&5
-$as_echo_n "checking for pango/pango.h... " >&6; }
-if test "${ac_cv_header_pango_pango_h+set}" = set; then
+    if test "$PKGCONFIG" != "no"; then
+          if $PKGCONFIG --exists cairo-ps; then
+             CPPFLAGS=${CPPFLAGS}" "`$PKGCONFIG --cflags cairo-ps`
+             LDFLAGS=${LDFLAGS}" "`$PKGCONFIG --libs-only-L cairo-ps`
+             LDFLAGS=${LDFLAGS}" "`$PKGCONFIG --libs-only-other cairo-ps`
+             LIBS=${LIBS}" "`$PKGCONFIG --libs-only-l cairo-ps`
+                            unset ac_cv_lib_`echo cairo | sed 's/[^_a-zA-Z0-9]/_/g;s/^[0-9]/_/'`_cairo_ps_surface_create
+             { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo_ps_surface_create in -lcairo" >&5
+$as_echo_n "checking for cairo_ps_surface_create in -lcairo... " >&6; }
+if test "${ac_cv_lib_cairo_cairo_ps_surface_create+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  ac_cv_header_pango_pango_h=$ac_header_preproc
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_pango_pango_h" >&5
-$as_echo "$ac_cv_header_pango_pango_h" >&6; }
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lcairo  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char cairo_ps_surface_create ();
+int
+main ()
+{
+return cairo_ps_surface_create ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_cairo_cairo_ps_surface_create=yes
+else
+  ac_cv_lib_cairo_cairo_ps_surface_create=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-if test "x$ac_cv_header_pango_pango_h" = x""yes; then
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_cairo_cairo_ps_surface_create" >&5
+$as_echo "$ac_cv_lib_cairo_cairo_ps_surface_create" >&6; }
+if test "x$ac_cv_lib_cairo_cairo_ps_surface_create" = x""yes; then :
+
+                unset ac_cv_header_`echo cairo-ps.h | sed 's/[^_a-zA-Z0-9]/_/g;s/^[0-9]/_/'`
+                ac_fn_c_check_header_mongrel "$LINENO" "cairo-ps.h" "ac_cv_header_cairo_ps_h" "$ac_includes_default"
+if test "x$ac_cv_header_cairo_ps_h" = x""yes; then :
   EX_CHECK_STATE=YES
 fi
 
 fi
 
           else
-             { $as_echo "$as_me:$LINENO: WARNING:
+             { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
 ----------------------------------------------------------------------------
-* I found a copy of pkgconfig, but there is no pangocairo.pc file around.
+* I found a copy of pkgconfig, but there is no cairo-ps.pc file around.
   You may want to set the PKG_CONFIG_PATH variable to point to its
   location.
 ----------------------------------------------------------------------------
                        " >&5
 $as_echo "$as_me: WARNING:
 ----------------------------------------------------------------------------
-* I found a copy of pkgconfig, but there is no pangocairo.pc file around.
+* I found a copy of pkgconfig, but there is no cairo-ps.pc file around.
   You may want to set the PKG_CONFIG_PATH variable to point to its
   location.
 ----------------------------------------------------------------------------
@@ -29589,20 +19865,20 @@ $as_echo "$as_me: WARNING:
   fi
 
   if test ${EX_CHECK_STATE} = NO; then
-     { $as_echo "$as_me:$LINENO: WARNING:
+     { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
 ----------------------------------------------------------------------------
-* I could not find a working copy of pangocairo. Check config.log for hints on why
+* I could not find a working copy of cairo-ps. Check config.log for hints on why
   this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
-  so that compiler and the linker can find libpango-1.0 and its header files. If
-  you have not installed pangocairo, you can get it either from its original home on
+  so that compiler and the linker can find libcairo and its header files. If
+  you have not installed cairo-ps, you can get it either from its original home on
 
-     http://ftp.gnome.org/pub/GNOME/sources/pango/1.17
+     http://cairographics.org/releases/
 
   You can find also find an archive copy on
 
      http://oss.oetiker.ch/rrdtool/pub/libs
 
-  The last tested version of pangocairo is 1.17.
+  The last tested version of cairo-ps is 1.4.6.
 
        LIBS=$LIBS
    LDFLAGS=$LDFLAGS
@@ -29612,18 +19888,18 @@ $as_echo "$as_me: WARNING:
                 " >&5
 $as_echo "$as_me: WARNING:
 ----------------------------------------------------------------------------
-* I could not find a working copy of pangocairo. Check config.log for hints on why
+* I could not find a working copy of cairo-ps. Check config.log for hints on why
   this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
-  so that compiler and the linker can find libpango-1.0 and its header files. If
-  you have not installed pangocairo, you can get it either from its original home on
+  so that compiler and the linker can find libcairo and its header files. If
+  you have not installed cairo-ps, you can get it either from its original home on
 
-     http://ftp.gnome.org/pub/GNOME/sources/pango/1.17
+     http://cairographics.org/releases/
 
   You can find also find an archive copy on
 
      http://oss.oetiker.ch/rrdtool/pub/libs
 
-  The last tested version of pangocairo is 1.17.
+  The last tested version of cairo-ps is 1.4.6.
 
        LIBS=$LIBS
    LDFLAGS=$LDFLAGS
@@ -29655,21 +19931,17 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
  ex_check_save_LIBS=${LIBS}
  ex_check_save_CPPFLAGS=${CPPFLAGS}
  ex_check_save_LDFLAGS=${LDFLAGS}
- if test "x/usr/include/libxml2" != "x"; then
-   CPPFLAGS="$CPPFLAGS -I/usr/include/libxml2"
+ if test "x""" != "x"; then
+   CPPFLAGS="$CPPFLAGS -I"""
  fi
-  { $as_echo "$as_me:$LINENO: checking for xmlParseFile in -lxml2" >&5
-$as_echo_n "checking for xmlParseFile in -lxml2... " >&6; }
-if test "${ac_cv_lib_xml2_xmlParseFile+set}" = set; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for glib_check_version in -lglib-2.0" >&5
+$as_echo_n "checking for glib_check_version in -lglib-2.0... " >&6; }
+if test "${ac_cv_lib_glib_2_0_glib_check_version+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
-LIBS="-lxml2  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+LIBS="-lglib-2.0  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -29678,182 +19950,31 @@ cat >>conftest.$ac_ext <<_ACEOF
 #ifdef __cplusplus
 extern "C"
 #endif
-char xmlParseFile ();
+char glib_check_version ();
 int
 main ()
 {
-return xmlParseFile ();
+return glib_check_version ();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_lib_xml2_xmlParseFile=yes
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_glib_2_0_glib_check_version=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_xml2_xmlParseFile=no
+  ac_cv_lib_glib_2_0_glib_check_version=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_xml2_xmlParseFile" >&5
-$as_echo "$ac_cv_lib_xml2_xmlParseFile" >&6; }
-if test "x$ac_cv_lib_xml2_xmlParseFile" = x""yes; then
-
-    if test "${ac_cv_header_libxml_parser_h+set}" = set; then
-  { $as_echo "$as_me:$LINENO: checking for libxml/parser.h" >&5
-$as_echo_n "checking for libxml/parser.h... " >&6; }
-if test "${ac_cv_header_libxml_parser_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_libxml_parser_h" >&5
-$as_echo "$ac_cv_header_libxml_parser_h" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking libxml/parser.h usability" >&5
-$as_echo_n "checking libxml/parser.h usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <libxml/parser.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking libxml/parser.h presence" >&5
-$as_echo_n "checking libxml/parser.h presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <libxml/parser.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: libxml/parser.h: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: libxml/parser.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: libxml/parser.h: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: libxml/parser.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: libxml/parser.h: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: libxml/parser.h: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: libxml/parser.h:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: libxml/parser.h:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: libxml/parser.h: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: libxml/parser.h: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: libxml/parser.h:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: libxml/parser.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: libxml/parser.h: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: libxml/parser.h: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: libxml/parser.h: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: libxml/parser.h: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for libxml/parser.h" >&5
-$as_echo_n "checking for libxml/parser.h... " >&6; }
-if test "${ac_cv_header_libxml_parser_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_header_libxml_parser_h=$ac_header_preproc
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_libxml_parser_h" >&5
-$as_echo "$ac_cv_header_libxml_parser_h" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_glib_2_0_glib_check_version" >&5
+$as_echo "$ac_cv_lib_glib_2_0_glib_check_version" >&6; }
+if test "x$ac_cv_lib_glib_2_0_glib_check_version" = x""yes; then :
 
-fi
-if test "x$ac_cv_header_libxml_parser_h" = x""yes; then
-  LIBS="-lxml2 ${LIBS}";EX_CHECK_STATE=YES
+    ac_fn_c_check_header_mongrel "$LINENO" "glib.h" "ac_cv_header_glib_h" "$ac_includes_default"
+if test "x$ac_cv_header_glib_h" = x""yes; then :
+  LIBS="-lglib-2.0 ${LIBS}";EX_CHECK_STATE=YES
 fi
 
 
@@ -29864,9 +19985,9 @@ fi
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_PKGCONFIG+set}" = set; then
+if test "${ac_cv_prog_PKGCONFIG+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$PKGCONFIG"; then
@@ -29877,24 +19998,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_PKGCONFIG="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 PKGCONFIG=$ac_cv_prog_PKGCONFIG
 if test -n "$PKGCONFIG"; then
-  { $as_echo "$as_me:$LINENO: result: $PKGCONFIG" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
 $as_echo "$PKGCONFIG" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -29904,24 +20025,20 @@ done
 test -n "$PKGCONFIG" || PKGCONFIG="no"
 
     if test "$PKGCONFIG" != "no"; then
-          if $PKGCONFIG --exists libxml-2.0; then
-             CPPFLAGS=${CPPFLAGS}" "`$PKGCONFIG --cflags libxml-2.0`
-             LDFLAGS=${LDFLAGS}" "`$PKGCONFIG --libs-only-L libxml-2.0`
-             LDFLAGS=${LDFLAGS}" "`$PKGCONFIG --libs-only-other libxml-2.0`
-             LIBS=${LIBS}" "`$PKGCONFIG --libs-only-l libxml-2.0`
-                            unset ac_cv_lib_`echo xml2 | sed 's/[^_a-zA-Z0-9]/_/g;s/^[0-9]/_/'`_xmlParseFile
-             { $as_echo "$as_me:$LINENO: checking for xmlParseFile in -lxml2" >&5
-$as_echo_n "checking for xmlParseFile in -lxml2... " >&6; }
-if test "${ac_cv_lib_xml2_xmlParseFile+set}" = set; then
+          if $PKGCONFIG --exists glib-2.0; then
+             CPPFLAGS=${CPPFLAGS}" "`$PKGCONFIG --cflags glib-2.0`
+             LDFLAGS=${LDFLAGS}" "`$PKGCONFIG --libs-only-L glib-2.0`
+             LDFLAGS=${LDFLAGS}" "`$PKGCONFIG --libs-only-other glib-2.0`
+             LIBS=${LIBS}" "`$PKGCONFIG --libs-only-l glib-2.0`
+                            unset ac_cv_lib_`echo glib-2.0 | sed 's/[^_a-zA-Z0-9]/_/g;s/^[0-9]/_/'`_glib_check_version
+             { $as_echo "$as_me:${as_lineno-$LINENO}: checking for glib_check_version in -lglib-2.0" >&5
+$as_echo_n "checking for glib_check_version in -lglib-2.0... " >&6; }
+if test "${ac_cv_lib_glib_2_0_glib_check_version+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
-LIBS="-lxml2  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+LIBS="-lglib-2.0  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -29930,182 +20047,31 @@ cat >>conftest.$ac_ext <<_ACEOF
 #ifdef __cplusplus
 extern "C"
 #endif
-char xmlParseFile ();
+char glib_check_version ();
 int
 main ()
 {
-return xmlParseFile ();
+return glib_check_version ();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_lib_xml2_xmlParseFile=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_cv_lib_xml2_xmlParseFile=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_xml2_xmlParseFile" >&5
-$as_echo "$ac_cv_lib_xml2_xmlParseFile" >&6; }
-if test "x$ac_cv_lib_xml2_xmlParseFile" = x""yes; then
-
-                unset ac_cv_header_`echo libxml/parser.h | sed 's/[^_a-zA-Z0-9]/_/g;s/^[0-9]/_/'`
-                if test "${ac_cv_header_libxml_parser_h+set}" = set; then
-  { $as_echo "$as_me:$LINENO: checking for libxml/parser.h" >&5
-$as_echo_n "checking for libxml/parser.h... " >&6; }
-if test "${ac_cv_header_libxml_parser_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_libxml_parser_h" >&5
-$as_echo "$ac_cv_header_libxml_parser_h" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking libxml/parser.h usability" >&5
-$as_echo_n "checking libxml/parser.h usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <libxml/parser.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking libxml/parser.h presence" >&5
-$as_echo_n "checking libxml/parser.h presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <libxml/parser.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_glib_2_0_glib_check_version=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
+  ac_cv_lib_glib_2_0_glib_check_version=no
 fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: libxml/parser.h: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: libxml/parser.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: libxml/parser.h: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: libxml/parser.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: libxml/parser.h: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: libxml/parser.h: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: libxml/parser.h:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: libxml/parser.h:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: libxml/parser.h: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: libxml/parser.h: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: libxml/parser.h:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: libxml/parser.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: libxml/parser.h: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: libxml/parser.h: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: libxml/parser.h: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: libxml/parser.h: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for libxml/parser.h" >&5
-$as_echo_n "checking for libxml/parser.h... " >&6; }
-if test "${ac_cv_header_libxml_parser_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_header_libxml_parser_h=$ac_header_preproc
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_libxml_parser_h" >&5
-$as_echo "$ac_cv_header_libxml_parser_h" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_glib_2_0_glib_check_version" >&5
+$as_echo "$ac_cv_lib_glib_2_0_glib_check_version" >&6; }
+if test "x$ac_cv_lib_glib_2_0_glib_check_version" = x""yes; then :
 
-fi
-if test "x$ac_cv_header_libxml_parser_h" = x""yes; then
+                unset ac_cv_header_`echo glib.h | sed 's/[^_a-zA-Z0-9]/_/g;s/^[0-9]/_/'`
+                ac_fn_c_check_header_mongrel "$LINENO" "glib.h" "ac_cv_header_glib_h" "$ac_includes_default"
+if test "x$ac_cv_header_glib_h" = x""yes; then :
   EX_CHECK_STATE=YES
 fi
 
 fi
 
           else
-             { $as_echo "$as_me:$LINENO: WARNING:
+             { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
 ----------------------------------------------------------------------------
-* I found a copy of pkgconfig, but there is no libxml-2.0.pc file around.
+* I found a copy of pkgconfig, but there is no glib-2.0.pc file around.
   You may want to set the PKG_CONFIG_PATH variable to point to its
   location.
 ----------------------------------------------------------------------------
                        " >&5
 $as_echo "$as_me: WARNING:
 ----------------------------------------------------------------------------
-* I found a copy of pkgconfig, but there is no libxml-2.0.pc file around.
+* I found a copy of pkgconfig, but there is no glib-2.0.pc file around.
   You may want to set the PKG_CONFIG_PATH variable to point to its
   location.
 ----------------------------------------------------------------------------
@@ -30133,20 +20099,20 @@ $as_echo "$as_me: WARNING:
   fi
 
   if test ${EX_CHECK_STATE} = NO; then
-     { $as_echo "$as_me:$LINENO: WARNING:
+     { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
 ----------------------------------------------------------------------------
-* I could not find a working copy of libxml-2.0. Check config.log for hints on why
+* I could not find a working copy of glib-2.0. Check config.log for hints on why
   this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
-  so that compiler and the linker can find libxml2 and its header files. If
-  you have not installed libxml-2.0, you can get it either from its original home on
+  so that compiler and the linker can find libglib-2.0 and its header files. If
+  you have not installed glib-2.0, you can get it either from its original home on
 
-     http://xmlsoft.org/downloads.html
+     ftp://ftp.gtk.org/pub/glib/2.12/
 
   You can find also find an archive copy on
 
      http://oss.oetiker.ch/rrdtool/pub/libs
 
-  The last tested version of libxml-2.0 is 2.6.31.
+  The last tested version of glib-2.0 is 2.12.12.
 
        LIBS=$LIBS
    LDFLAGS=$LDFLAGS
@@ -30156,18 +20122,18 @@ $as_echo "$as_me: WARNING:
                 " >&5
 $as_echo "$as_me: WARNING:
 ----------------------------------------------------------------------------
-* I could not find a working copy of libxml-2.0. Check config.log for hints on why
+* I could not find a working copy of glib-2.0. Check config.log for hints on why
   this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
-  so that compiler and the linker can find libxml2 and its header files. If
-  you have not installed libxml-2.0, you can get it either from its original home on
+  so that compiler and the linker can find libglib-2.0 and its header files. If
+  you have not installed glib-2.0, you can get it either from its original home on
 
-     http://xmlsoft.org/downloads.html
+     ftp://ftp.gtk.org/pub/glib/2.12/
 
   You can find also find an archive copy on
 
      http://oss.oetiker.ch/rrdtool/pub/libs
 
-  The last tested version of libxml-2.0 is 2.6.31.
+  The last tested version of glib-2.0 is 2.12.12.
 
        LIBS=$LIBS
    LDFLAGS=$LDFLAGS
@@ -30189,1727 +20155,1009 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
-if test "$EX_CHECK_ALL_ERR" = "YES"; then
-  { { $as_echo "$as_me:$LINENO: error: Please fix the library issues listed above and try again." >&5
-$as_echo "$as_me: error: Please fix the library issues listed above and try again." >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-ALL_LIBS="$LIBS"
-LIBS=
-
-
-
-
-
-case $TERM in
-       #   for the most important terminal types we directly know the sequences
-       xterm|xterm*|vt220|vt220*)
-               T_MD=`awk 'BEGIN { printf("%c%c%c%c", 27, 91, 49, 109); }' </dev/null 2>/dev/null`
-               T_ME=`awk 'BEGIN { printf("%c%c%c", 27, 91, 109); }' </dev/null 2>/dev/null`
-       ;;
-       vt100|vt100*|cygwin)
-               T_MD=`awk 'BEGIN { printf("%c%c%c%c%c%c", 27, 91, 49, 109, 0, 0); }' </dev/null 2>/dev/null`
-               T_ME=`awk 'BEGIN { printf("%c%c%c%c%c", 27, 91, 109, 0, 0); }' </dev/null 2>/dev/null`
-       ;;
-       *)
-               T_MD=''
-               T_ME=''
-       ;;
-esac
-  { $as_echo "$as_me:$LINENO: result: " >&5
-$as_echo "" >&6; }
-  { $as_echo "$as_me:$LINENO: result: ${T_MD}Prep for Building Language Bindings${T_ME}" >&5
-$as_echo "${T_MD}Prep for Building Language Bindings${T_ME}" >&6; }
-
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-PATH=$PATH:/usr/perl5/bin
-export PATH
-# Extract the first word of "perl", so it can be a program name with args.
-set dummy perl; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PERL+set}" = set; then
+ EX_CHECK_STATE=NO
+ ex_check_save_LIBS=${LIBS}
+ ex_check_save_CPPFLAGS=${CPPFLAGS}
+ ex_check_save_LDFLAGS=${LDFLAGS}
+ if test "x""" != "x"; then
+   CPPFLAGS="$CPPFLAGS -I"""
+ fi
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pango_cairo_context_set_font_options in -lpango-1.0" >&5
+$as_echo_n "checking for pango_cairo_context_set_font_options in -lpango-1.0... " >&6; }
+if test "${ac_cv_lib_pango_1_0_pango_cairo_context_set_font_options+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  case $PERL in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpango-1.0  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-  test -z "$ac_cv_path_PERL" && ac_cv_path_PERL="no"
-  ;;
-esac
-fi
-PERL=$ac_cv_path_PERL
-if test -n "$PERL"; then
-  { $as_echo "$as_me:$LINENO: result: $PERL" >&5
-$as_echo "$PERL" >&6; }
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pango_cairo_context_set_font_options ();
+int
+main ()
+{
+return pango_cairo_context_set_font_options ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_pango_1_0_pango_cairo_context_set_font_options=yes
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
+  ac_cv_lib_pango_1_0_pango_cairo_context_set_font_options=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pango_1_0_pango_cairo_context_set_font_options" >&5
+$as_echo "$ac_cv_lib_pango_1_0_pango_cairo_context_set_font_options" >&6; }
+if test "x$ac_cv_lib_pango_1_0_pango_cairo_context_set_font_options" = x""yes; then :
 
+    ac_fn_c_check_header_mongrel "$LINENO" "pango/pango.h" "ac_cv_header_pango_pango_h" "$ac_includes_default"
+if test "x$ac_cv_header_pango_pango_h" = x""yes; then :
+  LIBS="-lpango-1.0 ${LIBS}";EX_CHECK_STATE=YES
+fi
 
-# Extract the first word of "pod2man", so it can be a program name with args.
-set dummy pod2man; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_POD2MAN+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  case $POD2MAN in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_POD2MAN="$POD2MAN" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_POD2MAN="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_POD2MAN" && ac_cv_path_POD2MAN="no"
-  ;;
-esac
-fi
-POD2MAN=$ac_cv_path_POD2MAN
-if test -n "$POD2MAN"; then
-  { $as_echo "$as_me:$LINENO: result: $POD2MAN" >&5
-$as_echo "$POD2MAN" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
 fi
 
-
-# Extract the first word of "pod2html", so it can be a program name with args.
-set dummy pod2html; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+ if test $EX_CHECK_STATE = NO; then
+        for ac_prog in pkg-config
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_POD2HTML+set}" = set; then
+if test "${ac_cv_prog_PKGCONFIG+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  case $POD2HTML in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_POD2HTML="$POD2HTML" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+  if test -n "$PKGCONFIG"; then
+  ac_cv_prog_PKGCONFIG="$PKGCONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_POD2HTML="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    ac_cv_prog_PKGCONFIG="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_POD2HTML" && ac_cv_path_POD2HTML="no"
-  ;;
-esac
 fi
-POD2HTML=$ac_cv_path_POD2HTML
-if test -n "$POD2HTML"; then
-  { $as_echo "$as_me:$LINENO: result: $POD2HTML" >&5
-$as_echo "$POD2HTML" >&6; }
+fi
+PKGCONFIG=$ac_cv_prog_PKGCONFIG
+if test -n "$PKGCONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
+$as_echo "$PKGCONFIG" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
+  test -n "$PKGCONFIG" && break
+done
+test -n "$PKGCONFIG" || PKGCONFIG="no"
 
+    if test "$PKGCONFIG" != "no"; then
+          if $PKGCONFIG --exists pangocairo; then
+             CPPFLAGS=${CPPFLAGS}" "`$PKGCONFIG --cflags pangocairo`
+             LDFLAGS=${LDFLAGS}" "`$PKGCONFIG --libs-only-L pangocairo`
+             LDFLAGS=${LDFLAGS}" "`$PKGCONFIG --libs-only-other pangocairo`
+             LIBS=${LIBS}" "`$PKGCONFIG --libs-only-l pangocairo`
+                            unset ac_cv_lib_`echo pango-1.0 | sed 's/[^_a-zA-Z0-9]/_/g;s/^[0-9]/_/'`_pango_cairo_context_set_font_options
+             { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pango_cairo_context_set_font_options in -lpango-1.0" >&5
+$as_echo_n "checking for pango_cairo_context_set_font_options in -lpango-1.0... " >&6; }
+if test "${ac_cv_lib_pango_1_0_pango_cairo_context_set_font_options+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lpango-1.0  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-# Check whether --enable-perl was given.
-if test "${enable_perl+set}" = set; then
-  enableval=$enable_perl;
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pango_cairo_context_set_font_options ();
+int
+main ()
+{
+return pango_cairo_context_set_font_options ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_pango_1_0_pango_cairo_context_set_font_options=yes
 else
-  enable_perl=yes
+  ac_cv_lib_pango_1_0_pango_cairo_context_set_font_options=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pango_1_0_pango_cairo_context_set_font_options" >&5
+$as_echo "$ac_cv_lib_pango_1_0_pango_cairo_context_set_font_options" >&6; }
+if test "x$ac_cv_lib_pango_1_0_pango_cairo_context_set_font_options" = x""yes; then :
+
+                unset ac_cv_header_`echo pango/pango.h | sed 's/[^_a-zA-Z0-9]/_/g;s/^[0-9]/_/'`
+                ac_fn_c_check_header_mongrel "$LINENO" "pango/pango.h" "ac_cv_header_pango_pango_h" "$ac_includes_default"
+if test "x$ac_cv_header_pango_pango_h" = x""yes; then :
+  EX_CHECK_STATE=YES
 fi
 
 
 
+fi
 
+          else
+             { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
+----------------------------------------------------------------------------
+* I found a copy of pkgconfig, but there is no pangocairo.pc file around.
+  You may want to set the PKG_CONFIG_PATH variable to point to its
+  location.
+----------------------------------------------------------------------------
+                       " >&5
+$as_echo "$as_me: WARNING:
+----------------------------------------------------------------------------
+* I found a copy of pkgconfig, but there is no pangocairo.pc file around.
+  You may want to set the PKG_CONFIG_PATH variable to point to its
+  location.
+----------------------------------------------------------------------------
+                       " >&2;}
+           fi
+     fi
+  fi
 
+  if test ${EX_CHECK_STATE} = NO; then
+     { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
+----------------------------------------------------------------------------
+* I could not find a working copy of pangocairo. Check config.log for hints on why
+  this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
+  so that compiler and the linker can find libpango-1.0 and its header files. If
+  you have not installed pangocairo, you can get it either from its original home on
 
+     http://ftp.gnome.org/pub/GNOME/sources/pango/1.17
 
+  You can find also find an archive copy on
 
-if test "x$PERL" = "xno" -o  x$enable_perl = xno; then
-       COMP_PERL=
-else
-       COMP_PERL="perl_piped perl_shared"
-        { $as_echo "$as_me:$LINENO: checking for the perl version you are running" >&5
-$as_echo_n "checking for the perl version you are running... " >&6; }
-       PERL_VERSION=`$PERL -MConfig -e 'print $Config{version}'`
-       { $as_echo "$as_me:$LINENO: result: $PERL_VERSION" >&5
-$as_echo "$PERL_VERSION" >&6; }
-        if test -z "$PERLCC"; then
-            { $as_echo "$as_me:$LINENO: checking for the C compiler perl wants to use to build its modules" >&5
-$as_echo_n "checking for the C compiler perl wants to use to build its modules... " >&6; }
-           perlcc=`$PERL -MConfig -e 'print $Config{cc}'`
-           { $as_echo "$as_me:$LINENO: result: $perlcc" >&5
-$as_echo "$perlcc" >&6; }
-           if test ! -x "$perlcc"; then
-               # Extract the first word of "${perlcc}", so it can be a program name with args.
-set dummy ${perlcc}; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PERL_CC+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  case $PERL_CC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_PERL_CC="$PERL_CC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_PERL_CC="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_PERL_CC" && ac_cv_path_PERL_CC="no"
-  ;;
-esac
-fi
-PERL_CC=$ac_cv_path_PERL_CC
-if test -n "$PERL_CC"; then
-  { $as_echo "$as_me:$LINENO: result: $PERL_CC" >&5
-$as_echo "$PERL_CC" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
+     http://oss.oetiker.ch/rrdtool/pub/libs
 
+  The last tested version of pangocairo is 1.17.
 
-               if test "$PERL_CC" = "no"; then
-                    { $as_echo "$as_me:$LINENO: WARNING:
-I would not find the Compiler ($perlcc) that was originally used to compile
-your perl binary. You should either make sure that this compiler is
-available on your system, pick an other compiler and set PERLCC
-appropriately, or use a different perl setup that was compiled locally.
+       LIBS=$LIBS
+   LDFLAGS=$LDFLAGS
+  CPPFLAGS=$CPPFLAGS
 
-I will disable the compilation of the RRDs perl module for now.
-" >&5
+----------------------------------------------------------------------------
+                " >&5
 $as_echo "$as_me: WARNING:
-I would not find the Compiler ($perlcc) that was originally used to compile
-your perl binary. You should either make sure that this compiler is
-available on your system, pick an other compiler and set PERLCC
-appropriately, or use a different perl setup that was compiled locally.
+----------------------------------------------------------------------------
+* I could not find a working copy of pangocairo. Check config.log for hints on why
+  this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
+  so that compiler and the linker can find libpango-1.0 and its header files. If
+  you have not installed pangocairo, you can get it either from its original home on
 
-I will disable the compilation of the RRDs perl module for now.
-" >&2;}
-                   COMP_PERL="perl_piped"
-               fi
-            fi
-        fi
-fi
+     http://ftp.gnome.org/pub/GNOME/sources/pango/1.17
 
-{ $as_echo "$as_me:$LINENO: checking Perl Modules to build" >&5
-$as_echo_n "checking Perl Modules to build... " >&6; }
-{ $as_echo "$as_me:$LINENO: result: ${COMP_PERL:-No Perl Modules will be built}" >&5
-$as_echo "${COMP_PERL:-No Perl Modules will be built}" >&6; }
+  You can find also find an archive copy on
 
-# Options to pass when configuring perl module
-langpref=$prefix
-test "$langpref" = '$(DESTDIR)NONE' && langpref='$(DESTDIR)'$ac_default_prefix
-test "$langpref" = "NONE" && langpref=$ac_default_prefix
+     http://oss.oetiker.ch/rrdtool/pub/libs
 
-PERL_MAKE_OPTIONS="PREFIX=$langpref LIB=$langpref/lib/perl/$PERL_VERSION"
+  The last tested version of pangocairo is 1.17.
 
-# Check whether --enable-perl-site-install was given.
-if test "${enable_perl_site_install+set}" = set; then
-  enableval=$enable_perl_site_install; PERL_MAKE_OPTIONS=
-fi
+       LIBS=$LIBS
+   LDFLAGS=$LDFLAGS
+  CPPFLAGS=$CPPFLAGS
 
+----------------------------------------------------------------------------
+                " >&2;}
+       EX_CHECK_ALL_ERR=YES
+       LIBS="${ex_check_save_LIBS}"
+       CPPFLAGS="${ex_check_save_CPPFLAGS}"
+       LDFLAGS="${ex_check_save_LDFLAGS}"
+    fi
+    ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-if test ! -z "$PERLCC"; then
-   PERL_MAKE_OPTIONS="$PERL_MAKE_OPTIONS CC=$PERLCC"
 
-   if test ! -z "$PERLCCFLAGS"; then
-       PERL_MAKE_OPTIONS="$PERL_MAKE_OPTIONS CCFLAGS=$PERLCCFLAGS"
-   fi
 
-   if test -z "$PERLLD"; then
-       PERLLD=$PERLCC
-   fi
-   PERL_MAKE_OPTIONS="$PERL_MAKE_OPTIONS LD=$PERLLD"
 
-   if test ! -z "$PERLLDFLAGS"; then
-       PERL_MAKE_OPTIONS="$PERL_MAKE_OPTIONS LDFLAGS=$PERLLDFLAGS"
-   fi
-fi
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
+ EX_CHECK_STATE=NO
+ ex_check_save_LIBS=${LIBS}
+ ex_check_save_CPPFLAGS=${CPPFLAGS}
+ ex_check_save_LDFLAGS=${LDFLAGS}
+ if test "x/usr/include/libxml2" != "x"; then
+   CPPFLAGS="$CPPFLAGS -I/usr/include/libxml2"
+ fi
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xmlParseFile in -lxml2" >&5
+$as_echo_n "checking for xmlParseFile in -lxml2... " >&6; }
+if test "${ac_cv_lib_xml2_xmlParseFile+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lxml2  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-# Check whether --with-perl-options was given.
-if test "${with_perl_options+set}" = set; then
-  withval=$with_perl_options; PERL_MAKE_OPTIONS=$withval
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char xmlParseFile ();
+int
+main ()
+{
+return xmlParseFile ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_xml2_xmlParseFile=yes
+else
+  ac_cv_lib_xml2_xmlParseFile=no
 fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_xml2_xmlParseFile" >&5
+$as_echo "$ac_cv_lib_xml2_xmlParseFile" >&6; }
+if test "x$ac_cv_lib_xml2_xmlParseFile" = x""yes; then :
 
+    ac_fn_c_check_header_mongrel "$LINENO" "libxml/parser.h" "ac_cv_header_libxml_parser_h" "$ac_includes_default"
+if test "x$ac_cv_header_libxml_parser_h" = x""yes; then :
+  LIBS="-lxml2 ${LIBS}";EX_CHECK_STATE=YES
+fi
 
 
+fi
 
-
-
-
-# Extract the first word of "ruby", so it can be a program name with args.
-set dummy ruby; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+ if test $EX_CHECK_STATE = NO; then
+        for ac_prog in pkg-config
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_RUBY+set}" = set; then
+if test "${ac_cv_prog_PKGCONFIG+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  case $RUBY in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_RUBY="$RUBY" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+  if test -n "$PKGCONFIG"; then
+  ac_cv_prog_PKGCONFIG="$PKGCONFIG" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_RUBY="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    ac_cv_prog_PKGCONFIG="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_RUBY" && ac_cv_path_RUBY="no"
-  ;;
-esac
 fi
-RUBY=$ac_cv_path_RUBY
-if test -n "$RUBY"; then
-  { $as_echo "$as_me:$LINENO: result: $RUBY" >&5
-$as_echo "$RUBY" >&6; }
+fi
+PKGCONFIG=$ac_cv_prog_PKGCONFIG
+if test -n "$PKGCONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5
+$as_echo "$PKGCONFIG" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
+  test -n "$PKGCONFIG" && break
+done
+test -n "$PKGCONFIG" || PKGCONFIG="no"
+
+    if test "$PKGCONFIG" != "no"; then
+          if $PKGCONFIG --exists libxml-2.0; then
+             CPPFLAGS=${CPPFLAGS}" "`$PKGCONFIG --cflags libxml-2.0`
+             LDFLAGS=${LDFLAGS}" "`$PKGCONFIG --libs-only-L libxml-2.0`
+             LDFLAGS=${LDFLAGS}" "`$PKGCONFIG --libs-only-other libxml-2.0`
+             LIBS=${LIBS}" "`$PKGCONFIG --libs-only-l libxml-2.0`
+                            unset ac_cv_lib_`echo xml2 | sed 's/[^_a-zA-Z0-9]/_/g;s/^[0-9]/_/'`_xmlParseFile
+             { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xmlParseFile in -lxml2" >&5
+$as_echo_n "checking for xmlParseFile in -lxml2... " >&6; }
+if test "${ac_cv_lib_xml2_xmlParseFile+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lxml2  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-# Check whether --enable-ruby was given.
-if test "${enable_ruby+set}" = set; then
-  enableval=$enable_ruby;
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char xmlParseFile ();
+int
+main ()
+{
+return xmlParseFile ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_xml2_xmlParseFile=yes
 else
-  enable_ruby=yes
+  ac_cv_lib_xml2_xmlParseFile=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_xml2_xmlParseFile" >&5
+$as_echo "$ac_cv_lib_xml2_xmlParseFile" >&6; }
+if test "x$ac_cv_lib_xml2_xmlParseFile" = x""yes; then :
 
+                unset ac_cv_header_`echo libxml/parser.h | sed 's/[^_a-zA-Z0-9]/_/g;s/^[0-9]/_/'`
+                ac_fn_c_check_header_mongrel "$LINENO" "libxml/parser.h" "ac_cv_header_libxml_parser_h" "$ac_includes_default"
+if test "x$ac_cv_header_libxml_parser_h" = x""yes; then :
+  EX_CHECK_STATE=YES
+fi
 
-{ $as_echo "$as_me:$LINENO: checking if ruby modules can be built" >&5
-$as_echo_n "checking if ruby modules can be built... " >&6; }
 
-if test "x$RUBY" = "xno" -o  x$enable_ruby = xno; then
-       COMP_RUBY=
-       { $as_echo "$as_me:$LINENO: result: No .. Ruby not found or disabled" >&5
-$as_echo "No .. Ruby not found or disabled" >&6; }
-else
-       if $RUBY -e 'require "mkmf"' >/dev/null 2>&1; then
-               COMP_RUBY="ruby"
-               { $as_echo "$as_me:$LINENO: result: YES" >&5
-$as_echo "YES" >&6; }
-       else
-               COMP_RUBY=
-               { $as_echo "$as_me:$LINENO: result: Ruby found but mkmf is missing! Install the -dev package" >&5
-$as_echo "Ruby found but mkmf is missing! Install the -dev package" >&6; }
-       fi
-fi
 
-# Check whether --enable-ruby-site-install was given.
-if test "${enable_ruby_site_install+set}" = set; then
-  enableval=$enable_ruby_site_install; RUBY_MAKE_OPTIONS=
-else
-  RUBY_MAKE_OPTIONS="sitedir=$langpref/lib/ruby"
 fi
 
+          else
+             { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
+----------------------------------------------------------------------------
+* I found a copy of pkgconfig, but there is no libxml-2.0.pc file around.
+  You may want to set the PKG_CONFIG_PATH variable to point to its
+  location.
+----------------------------------------------------------------------------
+                       " >&5
+$as_echo "$as_me: WARNING:
+----------------------------------------------------------------------------
+* I found a copy of pkgconfig, but there is no libxml-2.0.pc file around.
+  You may want to set the PKG_CONFIG_PATH variable to point to its
+  location.
+----------------------------------------------------------------------------
+                       " >&2;}
+           fi
+     fi
+  fi
 
+  if test ${EX_CHECK_STATE} = NO; then
+     { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
+----------------------------------------------------------------------------
+* I could not find a working copy of libxml-2.0. Check config.log for hints on why
+  this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
+  so that compiler and the linker can find libxml2 and its header files. If
+  you have not installed libxml-2.0, you can get it either from its original home on
 
+     http://xmlsoft.org/downloads.html
 
-# Check whether --with-ruby-options was given.
-if test "${with_ruby_options+set}" = set; then
-  withval=$with_ruby_options; RUBY_MAKE_OPTIONS=$withval
-fi
+  You can find also find an archive copy on
 
+     http://oss.oetiker.ch/rrdtool/pub/libs
 
+  The last tested version of libxml-2.0 is 2.6.31.
 
+       LIBS=$LIBS
+   LDFLAGS=$LDFLAGS
+  CPPFLAGS=$CPPFLAGS
 
+----------------------------------------------------------------------------
+                " >&5
+$as_echo "$as_me: WARNING:
+----------------------------------------------------------------------------
+* I could not find a working copy of libxml-2.0. Check config.log for hints on why
+  this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
+  so that compiler and the linker can find libxml2 and its header files. If
+  you have not installed libxml-2.0, you can get it either from its original home on
 
+     http://xmlsoft.org/downloads.html
 
-# Extract the first word of "lua", so it can be a program name with args.
-set dummy lua; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_LUA+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  case $LUA in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_LUA="$LUA" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_LUA="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
+  You can find also find an archive copy on
 
-  test -z "$ac_cv_path_LUA" && ac_cv_path_LUA="no"
-  ;;
-esac
-fi
-LUA=$ac_cv_path_LUA
-if test -n "$LUA"; then
-  { $as_echo "$as_me:$LINENO: result: $LUA" >&5
-$as_echo "$LUA" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
+     http://oss.oetiker.ch/rrdtool/pub/libs
 
+  The last tested version of libxml-2.0 is 2.6.31.
 
+       LIBS=$LIBS
+   LDFLAGS=$LDFLAGS
+  CPPFLAGS=$CPPFLAGS
 
-# Check whether --enable-lua was given.
-if test "${enable_lua+set}" = set; then
-  enableval=$enable_lua;
-else
-  enable_lua=yes
-fi
+----------------------------------------------------------------------------
+                " >&2;}
+       EX_CHECK_ALL_ERR=YES
+       LIBS="${ex_check_save_LIBS}"
+       CPPFLAGS="${ex_check_save_CPPFLAGS}"
+       LDFLAGS="${ex_check_save_LDFLAGS}"
+    fi
+    ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
-COMP_LUA=
-if test "$LUA" = "no" -o "$enable_lua" = "no"; then
-  enable_lua=no
-else
-  { $as_echo "$as_me:$LINENO: checking for lua >= 5.0" >&5
-$as_echo_n "checking for lua >= 5.0... " >&6; }
-  read LUA_MAJOR LUA_MINOR LUA_POINT <<LUA_EOF
-    $($LUA -v 2>&1 | cut -f2 -d' ' | sed -e 's/\./ /g')
-LUA_EOF
-  if test 0$LUA_MAJOR -lt 5; then
-    { $as_echo "$as_me:$LINENO: result: no, version found is $LUA_MAJOR.$LUA_MINOR" >&5
-$as_echo "no, version found is $LUA_MAJOR.$LUA_MINOR" >&6; }
-  else
-    { $as_echo "$as_me:$LINENO: result: $LUA_MAJOR.$LUA_MINOR found" >&5
-$as_echo "$LUA_MAJOR.$LUA_MINOR found" >&6; }
-    lua_vdot=$LUA_MAJOR.$LUA_MINOR
-    lua_vndot=$LUA_MAJOR$LUA_MINOR
-    lua_version=$LUA_MAJOR.$LUA_MINOR.$LUA_POINT
 
-for ac_header in lua$lua_vndot/lua.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_header_compiler=no
+if test "$EX_CHECK_ALL_ERR" = "YES"; then
+  as_fn_error "Please fix the library issues listed above and try again." "$LINENO" 5
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
+ALL_LIBS="$LIBS"
+LIBS=
 
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-  ac_header_preproc=no
-fi
 
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
 
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
 
-    ;;
+case $TERM in
+       #   for the most important terminal types we directly know the sequences
+       xterm|xterm*|vt220|vt220*)
+               T_MD=`awk 'BEGIN { printf("%c%c%c%c", 27, 91, 49, 109); }' </dev/null 2>/dev/null`
+               T_ME=`awk 'BEGIN { printf("%c%c%c", 27, 91, 109); }' </dev/null 2>/dev/null`
+       ;;
+       vt100|vt100*|cygwin)
+               T_MD=`awk 'BEGIN { printf("%c%c%c%c%c%c", 27, 91, 49, 109, 0, 0); }' </dev/null 2>/dev/null`
+               T_ME=`awk 'BEGIN { printf("%c%c%c%c%c", 27, 91, 109, 0, 0); }' </dev/null 2>/dev/null`
+       ;;
+       *)
+               T_MD=''
+               T_ME=''
+       ;;
 esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
+$as_echo "" >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${T_MD}Prep for Building Language Bindings${T_ME}" >&5
+$as_echo "${T_MD}Prep for Building Language Bindings${T_ME}" >&6; }
 
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
 
-for ac_header in lua$lua_vndot/lualib.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+PATH=$PATH:/usr/perl5/bin
+export PATH
+# Extract the first word of "perl", so it can be a program name with args.
+set dummy perl; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_PERL+set}" = set; then :
   $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
+  case $PERL in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
+  test -z "$ac_cv_path_PERL" && ac_cv_path_PERL="no"
+  ;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
+fi
+PERL=$ac_cv_path_PERL
+if test -n "$PERL"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5
+$as_echo "$PERL" >&6; }
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
 
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+# Extract the first word of "pod2man", so it can be a program name with args.
+set dummy pod2man; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_POD2MAN+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $POD2MAN in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_POD2MAN="$POD2MAN" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_POD2MAN="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
-    ;;
+  test -z "$ac_cv_path_POD2MAN" && ac_cv_path_POD2MAN="no"
+  ;;
 esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
+fi
+POD2MAN=$ac_cv_path_POD2MAN
+if test -n "$POD2MAN"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $POD2MAN" >&5
+$as_echo "$POD2MAN" >&6; }
 else
-  eval "$as_ac_Header=\$ac_header_preproc"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
 
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
- as_ac_Header=`$as_echo "ac_cv_header_lua$lua_vndot/lauxlib.h" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for lua$lua_vndot/lauxlib.h" >&5
-$as_echo_n "checking for lua$lua_vndot/lauxlib.h... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+
+# Extract the first word of "pod2html", so it can be a program name with args.
+set dummy pod2html; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_POD2HTML+set}" = set; then :
   $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
 else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking lua$lua_vndot/lauxlib.h usability" >&5
-$as_echo_n "checking lua$lua_vndot/lauxlib.h usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <lua$lua_vndot/lauxlib.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
+  case $POD2HTML in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_POD2HTML="$POD2HTML" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_POD2HTML="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_POD2HTML" && ac_cv_path_POD2HTML="no"
+  ;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
+fi
+POD2HTML=$ac_cv_path_POD2HTML
+if test -n "$POD2HTML"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $POD2HTML" >&5
+$as_echo "$POD2HTML" >&6; }
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
 
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking lua$lua_vndot/lauxlib.h presence" >&5
-$as_echo_n "checking lua$lua_vndot/lauxlib.h presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <lua$lua_vndot/lauxlib.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-  ac_header_preproc=no
+
+# Check whether --enable-perl was given.
+if test "${enable_perl+set}" = set; then :
+  enableval=$enable_perl;
+else
+  enable_perl=yes
 fi
 
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
 
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: lua$lua_vndot/lauxlib.h: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: lua$lua_vndot/lauxlib.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: lua$lua_vndot/lauxlib.h: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: lua$lua_vndot/lauxlib.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: lua$lua_vndot/lauxlib.h: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: lua$lua_vndot/lauxlib.h: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: lua$lua_vndot/lauxlib.h:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: lua$lua_vndot/lauxlib.h:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: lua$lua_vndot/lauxlib.h: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: lua$lua_vndot/lauxlib.h: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: lua$lua_vndot/lauxlib.h:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: lua$lua_vndot/lauxlib.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: lua$lua_vndot/lauxlib.h: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: lua$lua_vndot/lauxlib.h: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: lua$lua_vndot/lauxlib.h: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: lua$lua_vndot/lauxlib.h: in the future, the compiler will take precedence" >&2;}
 
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for lua$lua_vndot/lauxlib.h" >&5
-$as_echo_n "checking for lua$lua_vndot/lauxlib.h... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
 
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  lua_headerdir=lua$lua_vndot
-fi
 
 
-fi
 
-done
 
+if test "x$PERL" = "xno" -o  x$enable_perl = xno; then
+       COMP_PERL=
 else
-
-for ac_header in lua$lua_vdot/lua.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+       COMP_PERL="perl_piped perl_shared"
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the perl version you are running" >&5
+$as_echo_n "checking for the perl version you are running... " >&6; }
+       PERL_VERSION=`$PERL -MConfig -e 'print $Config{version}'`
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL_VERSION" >&5
+$as_echo "$PERL_VERSION" >&6; }
+        if test -z "$PERLCC"; then
+            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the C compiler perl wants to use to build its modules" >&5
+$as_echo_n "checking for the C compiler perl wants to use to build its modules... " >&6; }
+           perlcc=`$PERL -MConfig -e 'print $Config{cc}'`
+           { $as_echo "$as_me:${as_lineno-$LINENO}: result: $perlcc" >&5
+$as_echo "$perlcc" >&6; }
+           if test ! -x "$perlcc"; then
+               # Extract the first word of "${perlcc}", so it can be a program name with args.
+set dummy ${perlcc}; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_PERL_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
 else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
+  case $PERL_CC in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_PERL_CC="$PERL_CC" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_PERL_CC="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_PERL_CC" && ac_cv_path_PERL_CC="no"
+  ;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
+fi
+PERL_CC=$ac_cv_path_PERL_CC
+if test -n "$PERL_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL_CC" >&5
+$as_echo "$PERL_CC" >&6; }
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
 
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+               if test "$PERL_CC" = "no"; then
+                    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
+I would not find the Compiler ($perlcc) that was originally used to compile
+your perl binary. You should either make sure that this compiler is
+available on your system, pick an other compiler and set PERLCC
+appropriately, or use a different perl setup that was compiled locally.
 
-  ac_header_preproc=no
+I will disable the compilation of the RRDs perl module for now.
+" >&5
+$as_echo "$as_me: WARNING:
+I would not find the Compiler ($perlcc) that was originally used to compile
+your perl binary. You should either make sure that this compiler is
+available on your system, pick an other compiler and set PERLCC
+appropriately, or use a different perl setup that was compiled locally.
+
+I will disable the compilation of the RRDs perl module for now.
+" >&2;}
+                   COMP_PERL="perl_piped"
+               fi
+            fi
+        fi
 fi
 
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking Perl Modules to build" >&5
+$as_echo_n "checking Perl Modules to build... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${COMP_PERL:-No Perl Modules will be built}" >&5
+$as_echo "${COMP_PERL:-No Perl Modules will be built}" >&6; }
 
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+# Options to pass when configuring perl module
+langpref=$prefix
+test "$langpref" = '$(DESTDIR)NONE' && langpref='$(DESTDIR)'$ac_default_prefix
+test "$langpref" = "NONE" && langpref=$ac_default_prefix
 
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+PERL_MAKE_OPTIONS="PREFIX=$langpref LIB=$langpref/lib/perl/$PERL_VERSION"
 
+# Check whether --enable-perl-site-install was given.
+if test "${enable_perl_site_install+set}" = set; then :
+  enableval=$enable_perl_site_install; PERL_MAKE_OPTIONS=
 fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
 
-for ac_header in lua$lua_vdot/lualib.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
+
+if test ! -z "$PERLCC"; then
+   PERL_MAKE_OPTIONS="$PERL_MAKE_OPTIONS CC=$PERLCC"
+
+   if test ! -z "$PERLCCFLAGS"; then
+       PERL_MAKE_OPTIONS="$PERL_MAKE_OPTIONS CCFLAGS=$PERLCCFLAGS"
+   fi
+
+   if test -z "$PERLLD"; then
+       PERLLD=$PERLCC
+   fi
+   PERL_MAKE_OPTIONS="$PERL_MAKE_OPTIONS LD=$PERLLD"
+
+   if test ! -z "$PERLLDFLAGS"; then
+       PERL_MAKE_OPTIONS="$PERL_MAKE_OPTIONS LDFLAGS=$PERLLDFLAGS"
+   fi
 fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_header_compiler=no
+
+# Check whether --with-perl-options was given.
+if test "${with_perl_options+set}" = set; then :
+  withval=$with_perl_options; PERL_MAKE_OPTIONS=$withval
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
 
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-  ac_header_preproc=no
-fi
 
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
 
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
 
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
 
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
- as_ac_Header=`$as_echo "ac_cv_header_lua$lua_vdot/lauxlib.h" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for lua$lua_vdot/lauxlib.h" >&5
-$as_echo_n "checking for lua$lua_vdot/lauxlib.h... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+# Extract the first word of "ruby", so it can be a program name with args.
+set dummy ruby; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_RUBY+set}" = set; then :
   $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
 else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking lua$lua_vdot/lauxlib.h usability" >&5
-$as_echo_n "checking lua$lua_vdot/lauxlib.h usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <lua$lua_vdot/lauxlib.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
+  case $RUBY in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_RUBY="$RUBY" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_RUBY="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_RUBY" && ac_cv_path_RUBY="no"
+  ;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
+fi
+RUBY=$ac_cv_path_RUBY
+if test -n "$RUBY"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RUBY" >&5
+$as_echo "$RUBY" >&6; }
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
 
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking lua$lua_vdot/lauxlib.h presence" >&5
-$as_echo_n "checking lua$lua_vdot/lauxlib.h presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <lua$lua_vdot/lauxlib.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-  ac_header_preproc=no
+# Check whether --enable-ruby was given.
+if test "${enable_ruby+set}" = set; then :
+  enableval=$enable_ruby;
+else
+  enable_ruby=yes
 fi
 
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
 
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: lua$lua_vdot/lauxlib.h: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: lua$lua_vdot/lauxlib.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: lua$lua_vdot/lauxlib.h: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: lua$lua_vdot/lauxlib.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: lua$lua_vdot/lauxlib.h: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: lua$lua_vdot/lauxlib.h: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: lua$lua_vdot/lauxlib.h:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: lua$lua_vdot/lauxlib.h:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: lua$lua_vdot/lauxlib.h: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: lua$lua_vdot/lauxlib.h: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: lua$lua_vdot/lauxlib.h:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: lua$lua_vdot/lauxlib.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: lua$lua_vdot/lauxlib.h: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: lua$lua_vdot/lauxlib.h: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: lua$lua_vdot/lauxlib.h: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: lua$lua_vdot/lauxlib.h: in the future, the compiler will take precedence" >&2;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if ruby modules can be built" >&5
+$as_echo_n "checking if ruby modules can be built... " >&6; }
 
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for lua$lua_vdot/lauxlib.h" >&5
-$as_echo_n "checking for lua$lua_vdot/lauxlib.h... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
+if test "x$RUBY" = "xno" -o  x$enable_ruby = xno; then
+       COMP_RUBY=
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: No .. Ruby not found or disabled" >&5
+$as_echo "No .. Ruby not found or disabled" >&6; }
 else
-  eval "$as_ac_Header=\$ac_header_preproc"
+       if $RUBY -e 'require "mkmf"' >/dev/null 2>&1; then
+               COMP_RUBY="ruby"
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: YES" >&5
+$as_echo "YES" >&6; }
+       else
+               COMP_RUBY=
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: Ruby found but mkmf is missing! Install the -dev package" >&5
+$as_echo "Ruby found but mkmf is missing! Install the -dev package" >&6; }
+       fi
 fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
 
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  lua_headerdir=lua$lua_vdot
+# Check whether --enable-ruby-site-install was given.
+if test "${enable_ruby_site_install+set}" = set; then :
+  enableval=$enable_ruby_site_install; RUBY_MAKE_OPTIONS=
+else
+  RUBY_MAKE_OPTIONS="sitedir=$langpref/lib/ruby"
 fi
 
 
+
+
+# Check whether --with-ruby-options was given.
+if test "${with_ruby_options+set}" = set; then :
+  withval=$with_ruby_options; RUBY_MAKE_OPTIONS=$withval
 fi
 
-done
 
-else
 
-for ac_header in lua.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_header_compiler=no
-fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
 
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
+# Extract the first word of "lua", so it can be a program name with args.
+set dummy lua; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_path_LUA+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $LUA in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_LUA="$LUA" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_LUA="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_LUA" && ac_cv_path_LUA="no"
+  ;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
+fi
+LUA=$ac_cv_path_LUA
+if test -n "$LUA"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LUA" >&5
+$as_echo "$LUA" >&6; }
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
 
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
 
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
+# Check whether --enable-lua was given.
+if test "${enable_lua+set}" = set; then :
+  enableval=$enable_lua;
 else
-  eval "$as_ac_Header=\$ac_header_preproc"
+  enable_lua=yes
 fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
 
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
 
-for ac_header in lualib.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+COMP_LUA=
+if test "$LUA" = "no" -o "$enable_lua" = "no"; then
+  enable_lua=no
 else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lua >= 5.0" >&5
+$as_echo_n "checking for lua >= 5.0... " >&6; }
+  read LUA_MAJOR LUA_MINOR LUA_POINT <<LUA_EOF
+    $($LUA -v 2>&1 | cut -f2 -d' ' | sed -e 's/\./ /g')
+LUA_EOF
+  if test 0$LUA_MAJOR -lt 5; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, version found is $LUA_MAJOR.$LUA_MINOR" >&5
+$as_echo "no, version found is $LUA_MAJOR.$LUA_MINOR" >&6; }
+  else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LUA_MAJOR.$LUA_MINOR found" >&5
+$as_echo "$LUA_MAJOR.$LUA_MINOR found" >&6; }
+    lua_vdot=$LUA_MAJOR.$LUA_MINOR
+    lua_vndot=$LUA_MAJOR$LUA_MINOR
+    lua_version=$LUA_MAJOR.$LUA_MINOR.$LUA_POINT
+    for ac_header in lua$lua_vndot/lua.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
+ for ac_header in lua$lua_vndot/lualib.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
+ as_ac_Header=`$as_echo "ac_cv_header_lua$lua_vndot/lauxlib.h" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "lua$lua_vndot/lauxlib.h" "$as_ac_Header" "$ac_includes_default"
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
+  lua_headerdir=lua$lua_vndot
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-  ac_header_preproc=no
 fi
 
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+done
 
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
 else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-              { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-                $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+  for ac_header in lua$lua_vdot/lua.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
- if test "${ac_cv_header_lauxlib_h+set}" = set; then
-  { $as_echo "$as_me:$LINENO: checking for lauxlib.h" >&5
-$as_echo_n "checking for lauxlib.h... " >&6; }
-if test "${ac_cv_header_lauxlib_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_lauxlib_h" >&5
-$as_echo "$ac_cv_header_lauxlib_h" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking lauxlib.h usability" >&5
-$as_echo_n "checking lauxlib.h usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <lauxlib.h>
+ for ac_header in lua$lua_vdot/lualib.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_header_compiler=no
+ as_ac_Header=`$as_echo "ac_cv_header_lua$lua_vdot/lauxlib.h" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "lua$lua_vdot/lauxlib.h" "$as_ac_Header" "$ac_includes_default"
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
+  lua_headerdir=lua$lua_vdot
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking lauxlib.h presence" >&5
-$as_echo_n "checking lauxlib.h presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <lauxlib.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-  ac_header_preproc=no
 fi
 
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: lauxlib.h: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: lauxlib.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: lauxlib.h: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: lauxlib.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: lauxlib.h: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: lauxlib.h: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: lauxlib.h:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: lauxlib.h:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: lauxlib.h: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: lauxlib.h: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: lauxlib.h:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: lauxlib.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: lauxlib.h: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: lauxlib.h: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: lauxlib.h: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: lauxlib.h: in the future, the compiler will take precedence" >&2;}
+done
 
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for lauxlib.h" >&5
-$as_echo_n "checking for lauxlib.h... " >&6; }
-if test "${ac_cv_header_lauxlib_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
 else
-  ac_cv_header_lauxlib_h=$ac_header_preproc
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_lauxlib_h" >&5
-$as_echo "$ac_cv_header_lauxlib_h" >&6; }
-
-fi
-if test "x$ac_cv_header_lauxlib_h" = x""yes; then
+  for ac_header in lua.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "lua.h" "ac_cv_header_lua_h" "$ac_includes_default"
+if test "x$ac_cv_header_lua_h" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LUA_H 1
+_ACEOF
+ for ac_header in lualib.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "lualib.h" "ac_cv_header_lualib_h" "$ac_includes_default"
+if test "x$ac_cv_header_lualib_h" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_LUALIB_H 1
+_ACEOF
+ ac_fn_c_check_header_mongrel "$LINENO" "lauxlib.h" "ac_cv_header_lauxlib_h" "$ac_includes_default"
+if test "x$ac_cv_header_lauxlib_h" = x""yes; then :
   lua_headerdir=""
 else
   lua_headerdir="no"
@@ -31941,24 +21189,20 @@ done
 
     if test "$COMP_LUA" != "lua"; then
       enable_lua=no
-      { $as_echo "$as_me:$LINENO: WARNING: Lua $lua_vdot found but not lua.h, lualib.h and lauxlib.h! Please install the -dev packages for Lua $lua_vdot" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Lua $lua_vdot found but not lua.h, lualib.h and lauxlib.h! Please install the -dev packages for Lua $lua_vdot" >&5
 $as_echo "$as_me: WARNING: Lua $lua_vdot found but not lua.h, lualib.h and lauxlib.h! Please install the -dev packages for Lua $lua_vdot" >&2;}
     else
       # OK, headers found, let's check the libraries (LIBS is not used)
       LIBS=
       lua_havelib=no
       LUA_HAVE_COMPAT51=DONT_HAVE_COMPAT51
-      { $as_echo "$as_me:$LINENO: checking for library containing lua_call" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing lua_call" >&5
 $as_echo_n "checking for library containing lua_call... " >&6; }
-if test "${ac_cv_search_lua_call+set}" = set; then
+if test "${ac_cv_search_lua_call+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -31983,66 +21227,35 @@ for ac_lib in '' lua$lua_vdot lua$lua_vndot lua; do
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib -lm $ac_func_search_save_LIBS"
   fi
-  rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+  if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_search_lua_call=$ac_res
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext
-  if test "${ac_cv_search_lua_call+set}" = set; then
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if test "${ac_cv_search_lua_call+set}" = set; then :
   break
 fi
 done
-if test "${ac_cv_search_lua_call+set}" = set; then
-  :
+if test "${ac_cv_search_lua_call+set}" = set; then :
+
 else
   ac_cv_search_lua_call=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_lua_call" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_lua_call" >&5
 $as_echo "$ac_cv_search_lua_call" >&6; }
 ac_res=$ac_cv_search_lua_call
-if test "$ac_res" != no; then
+if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-  { $as_echo "$as_me:$LINENO: checking for library containing luaL_register" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing luaL_register" >&5
 $as_echo_n "checking for library containing luaL_register... " >&6; }
-if test "${ac_cv_search_luaL_register+set}" = set; then
+if test "${ac_cv_search_luaL_register+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -32067,68 +21280,37 @@ for ac_lib in '' lua$lua_vdot lua$lua_vndot lua; do
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib -lm $ac_func_search_save_LIBS"
   fi
-  rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+  if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_search_luaL_register=$ac_res
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext
-  if test "${ac_cv_search_luaL_register+set}" = set; then
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if test "${ac_cv_search_luaL_register+set}" = set; then :
   break
 fi
 done
-if test "${ac_cv_search_luaL_register+set}" = set; then
-  :
+if test "${ac_cv_search_luaL_register+set}" = set; then :
+
 else
   ac_cv_search_luaL_register=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_luaL_register" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_luaL_register" >&5
 $as_echo "$ac_cv_search_luaL_register" >&6; }
 ac_res=$ac_cv_search_luaL_register
-if test "$ac_res" != no; then
+if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
   lua_havelib=LUA$lua_vndot
 else
-  { $as_echo "$as_me:$LINENO: checking for library containing luaL_module" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing luaL_module" >&5
 $as_echo_n "checking for library containing luaL_module... " >&6; }
-if test "${ac_cv_search_luaL_module+set}" = set; then
+if test "${ac_cv_search_luaL_module+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -32153,69 +21335,38 @@ for ac_lib in '' lualib$lua_vndot lualib$lua_vdot lualib; do
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib -lm $ac_func_search_save_LIBS"
   fi
-  rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+  if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_search_luaL_module=$ac_res
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext
-  if test "${ac_cv_search_luaL_module+set}" = set; then
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if test "${ac_cv_search_luaL_module+set}" = set; then :
   break
 fi
 done
-if test "${ac_cv_search_luaL_module+set}" = set; then
-  :
+if test "${ac_cv_search_luaL_module+set}" = set; then :
+
 else
   ac_cv_search_luaL_module=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_luaL_module" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_luaL_module" >&5
 $as_echo "$ac_cv_search_luaL_module" >&6; }
 ac_res=$ac_cv_search_luaL_module
-if test "$ac_res" != no; then
+if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
   lua_havelib=$lua_vndot; $LUA -l compat-5.1 2>/dev/null;
              test "$?" = "0" && LUA_HAVE_COMPAT51=HAVE_COMPAT51
 else
-  { $as_echo "$as_me:$LINENO: checking for library containing luaL_openlib" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing luaL_openlib" >&5
 $as_echo_n "checking for library containing luaL_openlib... " >&6; }
-if test "${ac_cv_search_luaL_openlib+set}" = set; then
+if test "${ac_cv_search_luaL_openlib+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -32236,58 +21387,31 @@ _ACEOF
 for ac_lib in '' lualib$lua_vdot lualib$lua_vndot lualib; do
   if test -z "$ac_lib"; then
     ac_res="none required"
-  else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib -lm $ac_func_search_save_LIBS"
-  fi
-  rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-        test -z "$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-        test "$cross_compiling" = yes ||
-        $as_test_x conftest$ac_exeext
-       }; then
+  else
+    ac_res=-l$ac_lib
+    LIBS="-l$ac_lib -lm $ac_func_search_save_LIBS"
+  fi
+  if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_search_luaL_openlib=$ac_res
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext
-  if test "${ac_cv_search_luaL_openlib+set}" = set; then
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if test "${ac_cv_search_luaL_openlib+set}" = set; then :
   break
 fi
 done
-if test "${ac_cv_search_luaL_openlib+set}" = set; then
-  :
+if test "${ac_cv_search_luaL_openlib+set}" = set; then :
+
 else
   ac_cv_search_luaL_openlib=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_luaL_openlib" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_luaL_openlib" >&5
 $as_echo "$ac_cv_search_luaL_openlib" >&6; }
 ac_res=$ac_cv_search_luaL_openlib
-if test "$ac_res" != no; then
+if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
   lua_havelib=$lua_vndot
 else
@@ -32340,7 +21464,7 @@ fi
 
         # if not set with pkg-config, use default values in src packages compat-5.1, lua 5.1
         if test "$LUA_CFLAGS" = ""; then
-          { $as_echo "$as_me:$LINENO: WARNING: Setting Lua include and lib flags to defaults in compat-5.1 and lua 5.1 sources" >&5
+          { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Setting Lua include and lib flags to defaults in compat-5.1 and lua 5.1 sources" >&5
 $as_echo "$as_me: WARNING: Setting Lua include and lib flags to defaults in compat-5.1 and lua 5.1 sources" >&2;}
           LUA_CFLAGS="-I/usr/local/include -I/usr/local/include/lua -I/usr/local/include/lua/$lua_vdot"
           LUA_LFLAGS="-L/usr/local/lib -L/usr/local/lib/lua -L/usr/local/lib/lua/$lua_vdot $lua_libs"
@@ -32348,7 +21472,7 @@ $as_echo "$as_me: WARNING: Setting Lua include and lib flags to defaults in comp
         fi
 
                                 # Check whether --enable-lua-site-install was given.
-if test "${enable_lua_site_install+set}" = set; then
+if test "${enable_lua_site_install+set}" = set; then :
   enableval=$enable_lua_site_install;
 else
   LUA_INSTALL_CMOD="$LUA_RRD_LIBDIR"; LUA_INSTALL_LMOD="$LUA_RRD_LIBDIR"
@@ -32365,7 +21489,7 @@ fi
 
       else
         enable_lua=no
-        { $as_echo "$as_me:$LINENO: result: Lua headers found but not the libraries! Please reinstall the dev packages for Lua $LUA_MAJOR.$LUA_MINOR" >&5
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: Lua headers found but not the libraries! Please reinstall the dev packages for Lua $LUA_MAJOR.$LUA_MINOR" >&5
 $as_echo "Lua headers found but not the libraries! Please reinstall the dev packages for Lua $LUA_MAJOR.$LUA_MINOR" >&6; }
       fi
     fi
@@ -32415,7 +21539,7 @@ fi
 enable_tcl_site=no
 
 # Check whether --enable-tcl was given.
-if test "${enable_tcl+set}" = set; then
+if test "${enable_tcl+set}" = set; then :
   enableval=$enable_tcl;
 else
   enable_tcl=yes
@@ -32426,28 +21550,28 @@ if test  "$enable_tcl" = "yes"; then
     withval=""
 
 # Check whether --with-tcllib was given.
-if test "${with_tcllib+set}" = set; then
+if test "${with_tcllib+set}" = set; then :
   withval=$with_tcllib;
 fi
 
   enable_tcl=no
   for dir in $withval /usr/lib /usr/local/lib /usr/lib/tcl8.4 /usr/lib/tcl8.3 ; do
-    { $as_echo "$as_me:$LINENO: checking for tclConfig.sh in $dir" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tclConfig.sh in $dir" >&5
 $as_echo_n "checking for tclConfig.sh in $dir... " >&6; }
     if test -f "$dir/tclConfig.sh" ; then
        tcl_config=$dir/tclConfig.sh
         enable_tcl=yes
-        { $as_echo "$as_me:$LINENO: result: yes" >&5
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
         break
     else
-        { $as_echo "$as_me:$LINENO: result: no" >&5
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
     fi
   done
 
   if test "$enable_tcl" = "no"; then
-        { $as_echo "$as_me:$LINENO: WARNING: tclConfig.sh not found - Tcl interface will not be built" >&5
+        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: tclConfig.sh not found - Tcl interface will not be built" >&5
 $as_echo "$as_me: WARNING: tclConfig.sh not found - Tcl interface will not be built" >&2;}
   else
        . $tcl_config
@@ -32457,7 +21581,7 @@ $as_echo "$as_me: WARNING: tclConfig.sh not found - Tcl interface will not be bu
        fi
   fi
   # Check whether --enable-tcl was given.
-if test "${enable_tcl+set}" = set; then
+if test "${enable_tcl+set}" = set; then :
   enableval=$enable_tcl;
 else
   enable_tcl_site=yes
@@ -32496,7 +21620,7 @@ fi
 
 
 # Check whether --enable-python was given.
-if test "${enable_python+set}" = set; then
+if test "${enable_python+set}" = set; then :
   enableval=$enable_python;
 else
   enable_python=yes
@@ -32510,7 +21634,7 @@ if test  "$enable_python" = "yes"; then
 
         if test -n "$PYTHON"; then
       # If the user set $PYTHON, use it and don't search something else.
-      { $as_echo "$as_me:$LINENO: checking whether $PYTHON version >= 2.3" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $PYTHON version >= 2.3" >&5
 $as_echo_n "checking whether $PYTHON version >= 2.3... " >&6; }
       prog="import sys
 # split strings by '.' and convert to numeric.  Append some zeros
@@ -32525,22 +21649,19 @@ sys.exit(sys.hexversion < minverhex)"
    ($PYTHON -c "$prog") >&5 2>&5
    ac_status=$?
    echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; then
-  { $as_echo "$as_me:$LINENO: result: yes" >&5
+   (exit $ac_status); }; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 else
-  { { $as_echo "$as_me:$LINENO: error: too old" >&5
-$as_echo "$as_me: error: too old" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "too old" "$LINENO" 5
 fi
-
       am_display_PYTHON=$PYTHON
     else
       # Otherwise, try each interpreter until we find one that satisfies
       # VERSION.
-      { $as_echo "$as_me:$LINENO: checking for a Python interpreter with version >= 2.3" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a Python interpreter with version >= 2.3" >&5
 $as_echo_n "checking for a Python interpreter with version >= 2.3... " >&6; }
-if test "${am_cv_pathless_PYTHON+set}" = set; then
+if test "${am_cv_pathless_PYTHON+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -32559,13 +21680,12 @@ sys.exit(sys.hexversion < minverhex)"
    ($am_cv_pathless_PYTHON -c "$prog") >&5 2>&5
    ac_status=$?
    echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; then
+   (exit $ac_status); }; then :
   break
 fi
-
        done
 fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_pathless_PYTHON" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_pathless_PYTHON" >&5
 $as_echo "$am_cv_pathless_PYTHON" >&6; }
       # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
       if test "$am_cv_pathless_PYTHON" = none; then
@@ -32573,9 +21693,9 @@ $as_echo "$am_cv_pathless_PYTHON" >&6; }
       else
         # Extract the first word of "$am_cv_pathless_PYTHON", so it can be a program name with args.
 set dummy $am_cv_pathless_PYTHON; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PYTHON+set}" = set; then
+if test "${ac_cv_path_PYTHON+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $PYTHON in
@@ -32588,14 +21708,14 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
   ;;
@@ -32603,10 +21723,10 @@ esac
 fi
 PYTHON=$ac_cv_path_PYTHON
 if test -n "$PYTHON"; then
-  { $as_echo "$as_me:$LINENO: result: $PYTHON" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
 $as_echo "$PYTHON" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
   else
 
 
-  { $as_echo "$as_me:$LINENO: checking for $am_display_PYTHON version" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON version" >&5
 $as_echo_n "checking for $am_display_PYTHON version... " >&6; }
-if test "${am_cv_python_version+set}" = set; then
+if test "${am_cv_python_version+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   am_cv_python_version=`$PYTHON -c "import sys; sys.stdout.write(sys.version[:3])"`
 fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_python_version" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_version" >&5
 $as_echo "$am_cv_python_version" >&6; }
   PYTHON_VERSION=$am_cv_python_version
 
@@ -32640,23 +21760,23 @@ $as_echo "$am_cv_python_version" >&6; }
 
 
 
-  { $as_echo "$as_me:$LINENO: checking for $am_display_PYTHON platform" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON platform" >&5
 $as_echo_n "checking for $am_display_PYTHON platform... " >&6; }
-if test "${am_cv_python_platform+set}" = set; then
+if test "${am_cv_python_platform+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`
 fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_python_platform" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_platform" >&5
 $as_echo "$am_cv_python_platform" >&6; }
   PYTHON_PLATFORM=$am_cv_python_platform
 
 
 
 
-                { $as_echo "$as_me:$LINENO: checking for $am_display_PYTHON script directory" >&5
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5
 $as_echo_n "checking for $am_display_PYTHON script directory... " >&6; }
-if test "${am_cv_python_pythondir+set}" = set; then
+if test "${am_cv_python_pythondir+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test "x$prefix" = xNONE
@@ -32675,7 +21795,7 @@ else
      esac
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_python_pythondir" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pythondir" >&5
 $as_echo "$am_cv_python_pythondir" >&6; }
   pythondir=$am_cv_python_pythondir
 
@@ -32684,9 +21804,9 @@ $as_echo "$am_cv_python_pythondir" >&6; }
   pkgpythondir=\${pythondir}/$PACKAGE
 
 
-            { $as_echo "$as_me:$LINENO: checking for $am_display_PYTHON extension module directory" >&5
+            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON extension module directory" >&5
 $as_echo_n "checking for $am_display_PYTHON extension module directory... " >&6; }
-if test "${am_cv_python_pyexecdir+set}" = set; then
+if test "${am_cv_python_pyexecdir+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test "x$exec_prefix" = xNONE
@@ -32705,7 +21825,7 @@ else
      esac
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_python_pyexecdir" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_python_pyexecdir" >&5
 $as_echo "$am_cv_python_pyexecdir" >&6; }
   pyexecdir=$am_cv_python_pyexecdir
 
@@ -32719,7 +21839,7 @@ $as_echo "$am_cv_python_pyexecdir" >&6; }
 
 
 
-{ $as_echo "$as_me:$LINENO: checking for headers required to compile python extensions" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for headers required to compile python extensions" >&5
 $as_echo_n "checking for headers required to compile python extensions... " >&6; }
 py_prefix=`$PYTHON -c "import sys; print sys.prefix"`
 py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"`
 
 save_CPPFLAGS="$CPPFLAGS"
 CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <Python.h>
 _ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-        test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-        test ! -s conftest.err
-       }; then
-  { $as_echo "$as_me:$LINENO: result: found" >&5
+if ac_fn_c_try_cpp "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
 $as_echo "found" >&6; }
 
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  { $as_echo "$as_me:$LINENO: result: not found" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
 $as_echo "not found" >&6; }
-enable_python=no;{ $as_echo "$as_me:$LINENO: WARNING: could not find Python headers" >&5
+enable_python=no;{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: could not find Python headers" >&5
 $as_echo "$as_me: WARNING: could not find Python headers" >&2;}
 fi
-
 rm -f conftest.err conftest.$ac_ext
 CPPFLAGS="$save_CPPFLAGS"
 
@@ -32785,9 +21881,9 @@ for ac_prog in gnroff nroff
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_NROFF+set}" = set; then
+if test "${ac_cv_path_NROFF+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $NROFF in
@@ -32800,14 +21896,14 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_NROFF="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
   ;;
@@ -32815,10 +21911,10 @@ esac
 fi
 NROFF=$ac_cv_path_NROFF
 if test -n "$NROFF"; then
-  { $as_echo "$as_me:$LINENO: result: $NROFF" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NROFF" >&5
 $as_echo "$NROFF" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -32830,9 +21926,9 @@ for ac_prog in groff troff
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_TROFF+set}" = set; then
+if test "${ac_cv_path_TROFF+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $TROFF in
@@ -32845,14 +21941,14 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_TROFF="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
   ;;
@@ -32860,10 +21956,10 @@ esac
 fi
 TROFF=$ac_cv_path_TROFF
 if test -n "$TROFF"; then
-  { $as_echo "$as_me:$LINENO: result: $TROFF" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TROFF" >&5
 $as_echo "$TROFF" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -32893,9 +21989,9 @@ case $TERM in
                T_ME=''
        ;;
 esac
-  { $as_echo "$as_me:$LINENO: result: " >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
 $as_echo "" >&6; }
-  { $as_echo "$as_me:$LINENO: result: ${T_MD}Apply Configuration Information${T_ME}" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${T_MD}Apply Configuration Information${T_ME}" >&5
 $as_echo "${T_MD}Apply Configuration Information${T_ME}" >&6; }
 
 
@@ -32972,13 +22068,13 @@ _ACEOF
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       esac
       case $ac_var in #(
       _ | IFS | as_nl) ;; #(
       BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) $as_unset $ac_var ;;
+      *) { eval $ac_var=; unset $ac_var;} ;;
       esac ;;
     esac
   done
@@ -32986,8 +22082,8 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
   (set) 2>&1 |
     case $as_nl`(ac_space=' '; set) 2>&1` in #(
     *${as_nl}ac_space=\ *)
-      # `set' does not quote correctly, so add quotes (double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \).
+      # `set' does not quote correctly, so add quotesdouble-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \.
       sed -n \
        "s/'/'\\\\''/g;
          s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
@@ -33010,11 +22106,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
 if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
   if test -w "$cache_file"; then
     test "x$cache_file" != "x/dev/null" &&
-      { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
 $as_echo "$as_me: updating cache $cache_file" >&6;}
     cat confcache >$cache_file
   else
-    { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
   fi
 fi
@@ -33034,8 +22130,8 @@ for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
   ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
   # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
   #    will be set to the directory where LIBOBJS objects are built.
-  ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
-  ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
+  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
 done
 LIBOBJS=$ac_libobjs
 
@@ -33043,18 +22139,12 @@ LTLIBOBJS=$ac_ltlibobjs
 
 
 if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
  if test -n "$EXEEXT"; then
   am__EXEEXT_TRUE=
@@ -33065,105 +22155,67 @@ else
 fi
 
 if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"MAINTAINER_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${STATIC_PROGRAMS_TRUE}" && test -z "${STATIC_PROGRAMS_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"STATIC_PROGRAMS\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"STATIC_PROGRAMS\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"STATIC_PROGRAMS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 
 if test -z "${BUILD_GETOPT_TRUE}" && test -z "${BUILD_GETOPT_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"BUILD_GETOPT\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"BUILD_GETOPT\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"BUILD_GETOPT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${BUILD_MULTITHREAD_TRUE}" && test -z "${BUILD_MULTITHREAD_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"BUILD_MULTITHREAD\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"BUILD_MULTITHREAD\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"BUILD_MULTITHREAD\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${BUILD_LIBDBI_TRUE}" && test -z "${BUILD_LIBDBI_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"BUILD_LIBDBI\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"BUILD_LIBDBI\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"BUILD_LIBDBI\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${BUILD_RRDCGI_TRUE}" && test -z "${BUILD_RRDCGI_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"BUILD_RRDCGI\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"BUILD_RRDCGI\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"BUILD_RRDCGI\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${LUA_NEED_OUR_COMPAT51_TRUE}" && test -z "${LUA_NEED_OUR_COMPAT51_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"LUA_NEED_OUR_COMPAT51\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"LUA_NEED_OUR_COMPAT51\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"LUA_NEED_OUR_COMPAT51\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${LUA_SITE_CINSTALL_TRUE}" && test -z "${LUA_SITE_CINSTALL_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"LUA_SITE_CINSTALL\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"LUA_SITE_CINSTALL\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"LUA_SITE_CINSTALL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${LUA_SITE_LINSTALL_TRUE}" && test -z "${LUA_SITE_LINSTALL_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"LUA_SITE_LINSTALL\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"LUA_SITE_LINSTALL\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"LUA_SITE_LINSTALL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${LUA50_TRUE}" && test -z "${LUA50_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"LUA50\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"LUA50\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"LUA50\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${BUILD_LUA_TRUE}" && test -z "${BUILD_LUA_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"BUILD_LUA\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"BUILD_LUA\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"BUILD_LUA\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${BUILD_TCL_TRUE}" && test -z "${BUILD_TCL_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"BUILD_TCL\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"BUILD_TCL\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"BUILD_TCL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${BUILD_TCL_SITE_TRUE}" && test -z "${BUILD_TCL_SITE_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"BUILD_TCL_SITE\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"BUILD_TCL_SITE\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"BUILD_TCL_SITE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 
 : ${CONFIG_STATUS=./config.status}
 ac_write_fail=0
 ac_clean_files_save=$ac_clean_files
 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
 #! $SHELL
 # Generated by $as_me.
 # Run this file to recreate the current configuration.
@@ -33173,17 +22225,18 @@ cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 debug=false
 ac_cs_recheck=false
 ac_cs_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
 
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
 
 # Be more Bourne compatible
 DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
@@ -33191,23 +22244,15 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
 else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
 esac
-
 fi
 
 
-
-
-# PATH needs CR
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
 as_nl='
 '
 export as_nl
@@ -33215,7 +22260,13 @@ export as_nl
 as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
   as_echo='printf %s\n'
   as_echo_n='printf %s'
 else
@@ -33226,7 +22277,7 @@ else
     as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
     as_echo_n_body='eval
       arg=$1;
-      case $arg in
+      case $arg in #(
       *"$as_nl"*)
        expr "X$arg" : "X\\(.*\\)$as_nl";
        arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
@@ -33249,13 +22300,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
   }
 fi
 
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
 
 # IFS
 # We need space, tab and new line, in precisely that order.  Quoting is
 IFS=" ""       $as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
-case $0 in
+case $0 in #((
   *[\\/]* ) as_myself=$0 ;;
   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
 IFS=$as_save_IFS
 
      ;;
@@ -33285,12 +22329,16 @@ if test "x$as_myself" = x; then
 fi
 if test ! -f "$as_myself"; then
   $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  { (exit 1); exit 1; }
+  exit 1
 fi
 
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
 done
 PS1='$ '
 PS2='> '
@@ -33302,7 +22350,89 @@ export LC_ALL
 LANGUAGE=C
 export LANGUAGE
 
-# Required to use basename.
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error ERROR [LINENO LOG_FD]
+# ---------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with status $?, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$?; test $as_status -eq 0 && as_status=1
+  if test "$3"; then
+    as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+  fi
+  $as_echo "$as_me: error: $1" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
 if expr a : '\(a\)' >/dev/null 2>&1 &&
    test "X`expr 00001 : '.*\(...\)'`" = X001; then
   as_expr=expr
@@ -33316,8 +22446,12 @@ else
   as_basename=false
 fi
 
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
 
-# Name of the executable.
 as_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
         X"$0" : 'X\(//\)$' \| \
@@ -33337,76 +22471,25 @@ $as_echo X/"$0" |
          }
          s/.*/./; q'`
 
-# CDPATH.
-$as_unset CDPATH
-
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line after each line using $LINENO; the second 'sed'
-  # does the real work.  The second script uses 'N' to pair each
-  # line-number line with the line containing $LINENO, and appends
-  # trailing '-' during substitution so that $LINENO is not a special
-  # case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # scripts with optimization help from Paolo Bonzini.  Blame Lee
-  # E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
-    sed '
-      s/[$]LINENO.*/&-/
-      t lineno
-      b
-      :lineno
-      N
-      :loop
-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
-      t loop
-      s/-\n.*//
-    ' >$as_me.lineno &&
-  chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensitive to this).
-  . "./$as_me.lineno"
-  # Exit status is that of the last command.
-  exit
-}
-
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
 
 ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
+case `echo -n x` in #(((((
 -n*)
-  case `echo 'x\c'` in
+  case `echo 'xy\c'` in
   *c*) ECHO_T='        ';;     # ECHO_T is single tab character.
-  *)   ECHO_C='\c';;
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='        ';;
   esac;;
 *)
   ECHO_N='-n';;
 esac
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
 
 rm -f conf$$ conf$$.exe conf$$.file
 if test -d conf$$.dir; then
 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
 rmdir conf$$.dir 2>/dev/null
 
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+        X"$as_dir" : 'X\(//\)[^/]' \| \
+        X"$as_dir" : 'X\(//\)$' \| \
+        X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)[^/].*/{
+           s//\1/
+           q
+         }
+         /^X\(\/\/\)$/{
+           s//\1/
+           q
+         }
+         /^X\(\/\).*/{
+           s//\1/
+           q
+         }
+         s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
 if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
+  as_mkdir_p='mkdir -p "$as_dir"'
 else
   test -d ./-p && rmdir ./-p
   as_mkdir_p=false
@@ -33455,10 +22586,10 @@ else
       if test -d "$1"; then
        test -d "$1/.";
       else
-       case $1 in
+       case $1 in #(
        -*)set "./$1";;
        esac;
-       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
+       case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
        ???[sx]*):;;*)false;;esac;fi
     '\'' sh
   '
@@ -33473,13 +22604,19 @@ as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
 
 exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
 
-# Save the log message, to keep $[0] and so on meaningful, and to
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by rrdtool $as_me 1.3.99909060808, which was
-generated by GNU Autoconf 2.63.  Invocation command line was
+This file was extended by rrdtool $as_me 1.3.999, which was
+generated by GNU Autoconf 2.64.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -33511,10 +22648,11 @@ _ACEOF
 
 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration.  Unless the files
+and actions are specified as TAGs, all are instantiated by default.
 
-Usage: $0 [OPTION]... [FILE]...
+Usage: $0 [OPTION]... [TAG]...
 
   -h, --help       print this help, then exit
   -V, --version    print version number and configuration settings, then exit
@@ -33536,16 +22674,16 @@ $config_headers
 Configuration commands:
 $config_commands
 
-Report bugs to <bug-autoconf@gnu.org>."
+Report bugs to the package provider."
 
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
-rrdtool config.status 1.3.99909060808
-configured by $0, generated by GNU Autoconf 2.63,
+rrdtool config.status 1.3.999
+configured by $0, generated by GNU Autoconf 2.64,
   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
-Copyright (C) 2008 Free Software Foundation, Inc.
+Copyright (C) 2009 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
 
     case $ac_optarg in
     *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
     esac
-    CONFIG_FILES="$CONFIG_FILES '$ac_optarg'"
+    as_fn_append CONFIG_FILES " '$ac_optarg'"
     ac_need_defaults=false;;
   --header | --heade | --head | --hea )
     $ac_shift
     case $ac_optarg in
     *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
     esac
-    CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'"
+    as_fn_append CONFIG_HEADERS " '$ac_optarg'"
     ac_need_defaults=false;;
   --he | --h)
     # Conflict between --help and --header
-    { $as_echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; };;
+    as_fn_error "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
   --help | --hel | -h )
     $as_echo "$ac_cs_usage"; exit ;;
   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
@@ -33609,11 +22746,10 @@ Try \`$0 --help' for more information." >&2
     ac_cs_silent=: ;;
 
   # This is an error.
-  -*) { $as_echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; } ;;
+  -*) as_fn_error "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
 
-  *) ac_config_targets="$ac_config_targets $1"
+  *) as_fn_append ac_config_targets " $1"
      ac_need_defaults=false ;;
 
   esac
@@ -33953,9 +23089,7 @@ do
     "bindings/lua/Makefile") CONFIG_FILES="$CONFIG_FILES bindings/lua/Makefile" ;;
     "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
 
-  *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
-   { (exit 1); exit 1; }; };;
+  *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
   esac
 done
 
@@ -33982,7 +23116,7 @@ $debug ||
   trap 'exit_status=$?
   { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
 ' 0
-  trap '{ (exit 1); exit 1; }' 1 2 13 15
+  trap 'as_fn_exit 1' 1 2 13 15
 }
 # Create a (secure) tmp directory for tmp files.
 
@@ -33993,11 +23127,7 @@ $debug ||
 {
   tmp=./conf$$-$RANDOM
   (umask 077 && mkdir "$tmp")
-} ||
-{
-   $as_echo "$as_me: cannot create a temporary directory in ." >&2
-   { (exit 1); exit 1; }
-}
+} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
 
 # Set up the scripts for CONFIG_FILES section.
 # No need to generate them if there are no CONFIG_FILES.
@@ -34005,10 +23135,16 @@ $debug ||
 if test -n "$CONFIG_FILES"; then
 
 
-ac_cr='\r'
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+  eval ac_cr=\$\'\\r\'
+fi
 ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
 if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
-  ac_cs_awk_cr='\\r'
+  ac_cs_awk_cr='\r'
 else
   ac_cs_awk_cr=$ac_cr
 fi
@@ -34022,24 +23158,18 @@ _ACEOF
   echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
   echo "_ACEOF"
 } >conf$$subs.sh ||
-  { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
 ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   . ./conf$$subs.sh ||
-    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
 
   ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
   if test $ac_delim_n = $ac_delim_num; then
     break
   elif $ac_last_try; then
-    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
   else
     ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
   fi
@@ -34128,9 +23258,7 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
 else
   cat
 fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
-  || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5
-$as_echo "$as_me: error: could not setup config files machinery" >&2;}
-   { (exit 1); exit 1; }; }
+  || as_fn_error "could not setup config files machinery" "$LINENO" 5
 _ACEOF
 
 # VPATH may cause trouble with some makes, so we remove $(srcdir),
@@ -34171,9 +23299,7 @@ for ac_last_try in false false :; do
   if test -z "$ac_t"; then
     break
   elif $ac_last_try; then
-    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5
-$as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
   else
     ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
   fi
@@ -34258,9 +23384,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 _ACAWK
 _ACEOF
 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-  { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5
-$as_echo "$as_me: error: could not setup config headers machinery" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "could not setup config headers machinery" "$LINENO" 5
 fi # test -n "$CONFIG_HEADERS"
 
 
@@ -34273,9 +23397,7 @@ do
   esac
   case $ac_mode$ac_tag in
   :[FHL]*:*);;
-  :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5
-$as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
-   { (exit 1); exit 1; }; };;
+  :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
   :[FH]-) ac_tag=-:-;;
   :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
   esac
@@ -34303,12 +23425,10 @@ $as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
           [\\/$]*) false;;
           *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
           esac ||
-          { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
-$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;}
-   { (exit 1); exit 1; }; };;
+          as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
       esac
       case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
-      ac_file_inputs="$ac_file_inputs '$ac_f'"
+      as_fn_append ac_file_inputs " '$ac_f'"
     done
 
     # Let's still pretend it is `configure' which instantiates (i.e., don't
@@ -34319,7 +23439,7 @@ $as_echo "$as_me: error: cannot find input file: $ac_f" >&2;}
        `' by configure.'
     if test x"$ac_file" != x-; then
       configure_input="$ac_file.  $configure_input"
-      { $as_echo "$as_me:$LINENO: creating $ac_file" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
 $as_echo "$as_me: creating $ac_file" >&6;}
     fi
     # Neutralize special characters interpreted by sed in replacement strings.
@@ -34332,9 +23452,7 @@ $as_echo "$as_me: creating $ac_file" >&6;}
 
     case $ac_tag in
     *:-:* | *:-) cat >"$tmp/stdin" \
-      || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
-   { (exit 1); exit 1; }; } ;;
+      || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
     esac
     ;;
   esac
@@ -34362,47 +23480,7 @@ $as_echo X"$ac_file" |
            q
          }
          s/.*/./; q'`
-  { as_dir="$ac_dir"
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-        X"$as_dir" : 'X\(//\)[^/]' \| \
-        X"$as_dir" : 'X\(//\)$' \| \
-        X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)[^/].*/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\).*/{
-           s//\1/
-           q
-         }
-         s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
-   { (exit 1); exit 1; }; }; }
+  as_dir="$ac_dir"; as_fn_mkdir_p
   ac_builddir=.
 
 case "$ac_dir" in
@@ -34459,7 +23537,6 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # If the template does not know about datarootdir, expand it.
 # FIXME: This hack should be removed a few years after 2.60.
 ac_datarootdir_hack=; ac_datarootdir_seen=
-
 ac_sed_dataroot='
 /datarootdir/ {
   p
@@ -34469,12 +23546,11 @@ ac_sed_dataroot='
 /@docdir@/p
 /@infodir@/p
 /@localedir@/p
-/@mandir@/p
-'
+/@mandir@/p'
 case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
 *datarootdir*) ac_datarootdir_seen=yes;;
 *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
-  { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
@@ -34484,7 +23560,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
   s&@infodir@&$infodir&g
   s&@localedir@&$localedir&g
   s&@mandir@&$mandir&g
-    s&\\\${datarootdir}&$datarootdir&g' ;;
+  s&\\\${datarootdir}&$datarootdir&g' ;;
 esac
 _ACEOF
 
@@ -34513,14 +23589,12 @@ s&@MKDIR_P@&$ac_MKDIR_P&;t t
 $ac_datarootdir_hack
 "
 eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
-  || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
-   { (exit 1); exit 1; }; }
+  || as_fn_error "could not create $ac_file" "$LINENO" 5
 
 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
   { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
   { ac_out=`sed -n '/^[         ]*datarootdir[  ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
-  { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined." >&5
 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined." >&2;}
@@ -34530,9 +23604,7 @@ which seems to be undefined.  Please make sure it is defined." >&2;}
   -) cat "$tmp/out" && rm -f "$tmp/out";;
   *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
   esac \
-  || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
-   { (exit 1); exit 1; }; }
+  || as_fn_error "could not create $ac_file" "$LINENO" 5
  ;;
   :H)
   #
@@ -34543,25 +23615,19 @@ $as_echo "$as_me: error: could not create $ac_file" >&2;}
       $as_echo "/* $configure_input  */" \
       && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
     } >"$tmp/config.h" \
-      || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
-   { (exit 1); exit 1; }; }
+      || as_fn_error "could not create $ac_file" "$LINENO" 5
     if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
-      { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
 $as_echo "$as_me: $ac_file is unchanged" >&6;}
     else
       rm -f "$ac_file"
       mv "$tmp/config.h" "$ac_file" \
-       || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
-   { (exit 1); exit 1; }; }
+       || as_fn_error "could not create $ac_file" "$LINENO" 5
     fi
   else
     $as_echo "/* $configure_input  */" \
       && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
-      || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5
-$as_echo "$as_me: error: could not create -" >&2;}
-   { (exit 1); exit 1; }; }
+      || as_fn_error "could not create -" "$LINENO" 5
   fi
 # Compute "$ac_file"'s index in $config_headers.
 _am_arg="$ac_file"
@@ -34599,7 +23665,7 @@ $as_echo X"$_am_arg" |
          s/.*/./; q'`/stamp-h$_am_stamp_count
  ;;
 
-  :C)  { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5
+  :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
 $as_echo "$as_me: executing $ac_file commands" >&6;}
  ;;
   esac
@@ -34694,47 +23760,7 @@ $as_echo X"$file" |
            q
          }
          s/.*/./; q'`
-      { as_dir=$dirpart/$fdir
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-        X"$as_dir" : 'X\(//\)[^/]' \| \
-        X"$as_dir" : 'X\(//\)$' \| \
-        X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)[^/].*/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\).*/{
-           s//\1/
-           q
-         }
-         s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
-   { (exit 1); exit 1; }; }; }
+      as_dir=$dirpart/$fdir; as_fn_mkdir_p
       # echo "creating $dirpart/$file"
       echo '# dummy' > "$dirpart/$file"
     done
@@ -35494,15 +24520,12 @@ _LT_EOF
 done # for ac_tag
 
 
-{ (exit 0); exit 0; }
+as_fn_exit 0
 _ACEOF
-chmod +x $CONFIG_STATUS
 ac_clean_files=$ac_clean_files_save
 
 test $ac_write_fail = 0 ||
-  { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
 
  test -f config.h || ln -s rrd_config.h config.h
 
@@ -35524,17 +24547,17 @@ if test "$no_create" != yes; then
   exec 5>>config.log
   # Use ||, not &&, to avoid exiting from the if with $? = 1, which
   # would make configure fail if this is the last instruction.
-  $ac_cs_success || { (exit 1); exit 1; }
+  $ac_cs_success || as_fn_exit $?
 fi
 if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
-  { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
 fi
 
 
-{ $as_echo "$as_me:$LINENO: checking in" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking in" >&5
 $as_echo_n "checking in... " >&6; }
-{ $as_echo "$as_me:$LINENO: result: and out again" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: and out again" >&5
 $as_echo "and out again" >&6; }
 
 echo $ECHO_N "ordering CD from http://tobi.oetiker.ch/wish $ECHO_C" 1>&6
@@ -35547,7 +24570,7 @@ echo $ECHO_N ".$ECHO_C" 1>&6
 sleep 1
 echo $ECHO_N ".$ECHO_C" 1>&6
 sleep 1
-{ $as_echo "$as_me:$LINENO: result:  just kidding ;-)" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result:  just kidding ;-)" >&5
 $as_echo " just kidding ;-)" >&6; }
 echo
 echo "----------------------------------------------------------------"
index 38a703a6327e71c2d758cde971e8d00f9d0290d4..65aa310ca36e16e9e44c862f3a67989550412da4 100644 (file)
@@ -1,6 +1,6 @@
 dnl RRDtool AutoConf script ... 
 dnl ---------------------------
-dnl $Id: configure.ac 1857 2009-06-08 05:12:26Z oetiker $
+dnl $Id$
 dnl
 dnl Created by Jeff Allen, Tobi Oetiker, Blair Zajac
 dnl
@@ -13,14 +13,14 @@ AC_PREREQ(2.59)
 
 dnl the official version number is
 dnl a.b.c
-AC_INIT([rrdtool],[1.3.99909060808])
+AC_INIT([rrdtool],[1.3.999])
 
 dnl for testing a numberical version number comes handy
 dnl the released version are
 dnl a.bccc
 dnl the devel versions will be something like
 dnl a.b999yymmddhh 
-NUMVERS=1.399909060808
+NUMVERS=1.3999
 AC_SUBST(NUMVERS)
 
 dnl for the linker to understand which versions the library are compatible with
@@ -36,9 +36,12 @@ AC_SUBST(LIBVERS)
 
 AC_CANONICAL_TARGET
 m4_version_prereq(2.60, [AC_USE_SYSTEM_EXTENSIONS], [#])
-AM_INIT_AUTOMAKE(m4_version_prereq(2.63, [silent-rules], [[]]))
+AM_INIT_AUTOMAKE
 AM_MAINTAINER_MODE
-m4_version_prereq(2.63, [AM_SILENT_RULES([yes])], [#])
+# Enable silent build rules by default, requires at least
+# Automake-1.11. Disable by either passing --disable-silent-rules to
+# configure or passing V=1 to make
+m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
 AC_CONFIG_HEADERS([rrd_config.h])
 AC_CONFIG_MACRO_DIR([m4])
 
@@ -179,7 +182,7 @@ CONFIGURE_PART(Checking for Header Files)
 dnl Checks for header files.
 AC_HEADER_STDC
 AC_HEADER_DIRENT
-AC_CHECK_HEADERS(libgen.h features.h sys/stat.h sys/types.h fcntl.h locale.h fp_class.h malloc.h unistd.h ieeefp.h math.h sys/times.h sys/param.h sys/resource.h signal.h float.h stdio.h stdlib.h errno.h string.h ctype.h)
+AC_CHECK_HEADERS(stdint.h inttypes.h libgen.h features.h sys/stat.h sys/types.h fcntl.h locale.h fp_class.h malloc.h unistd.h ieeefp.h math.h sys/times.h sys/param.h sys/resource.h signal.h float.h stdio.h stdlib.h errno.h string.h ctype.h)
 
 dnl Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
@@ -449,6 +452,33 @@ AC_LINK_IFELSE(
       )
     ]  
 )
+
+dnl is time_t long or long long ?
+AC_DEFINE([TIME_T_IS_LONG], [], [time_t is long])
+AC_DEFINE([TIME_T_IS_LONG_LONG], [], [time_t is long long])
+AC_MSG_CHECKING([the type of time_t])
+AC_RUN_IFELSE(
+    AC_LANG_PROGRAM(
+        [[#include <time.h>]],
+        [[if (sizeof(long) != sizeof(time_t)) return 1; ]]
+        ),
+    [ AC_MSG_RESULT([time_t is long])
+      AC_DEFINE([TIME_T_IS_LONG])
+    ],
+    [ AC_RUN_IFELSE(
+        AC_LANG_PROGRAM(
+        [[#include <time.h>]],
+        [[if (sizeof(long long) != sizeof(time_t)) return 1; ]]
+        ),
+        [
+          AC_MSG_RESULT([time_t is long long])
+          AC_DEFINE([TIME_T_IS_LONG_LONG])
+        ],
+        [AC_MSG_ERROR([can not figure type of time_t])]
+      )
+    ]  
+)
+
 AC_LANG_POP(C)
 
 CONFIGURE_PART(Find 3rd-Party Libraries)
@@ -513,10 +543,10 @@ AC_ARG_ENABLE(perl,AS_HELP_STRING([--disable-perl],[do not build the perl module
 [],[enable_perl=yes])
 
 
-AC_ARG_VAR(PERLCC, [[] C compiler for Perl modules])
-AC_ARG_VAR(PERLCCFLAGS, [[] CC flags for Perl modules])
-AC_ARG_VAR(PERLLD, [[same as PERLCC] Linker for Perl modules])
-AC_ARG_VAR(PERLLDFLAGS, [[] LD flags for Perl modules])
+AC_ARG_VAR(PERLCC, [C compiler for Perl modules])
+AC_ARG_VAR(PERLCCFLAGS, [CC flags for Perl modules])
+AC_ARG_VAR(PERLLD, [Linker for Perl modules])
+AC_ARG_VAR(PERLLDFLAGS, [LD flags for Perl modules])
 
 if test "x$PERL" = "xno" -o  x$enable_perl = xno; then
        COMP_PERL=
index 617beb3625f3a71b7bf4b4761005a4668099ea1a..c80574052876b7e0bf64e04a18850ee30c3d9e87 100644 (file)
@@ -1,19 +1,19 @@
 ## Process this file with automake to produce Makefile.in
 
-SUFFIXES = .pod .1 .man .html .txt .pm .pdf .inc
+SUFFIXES = .pod .pl .1 .3 .man .html .txt .pm .pdf .inc
 
-#AUTOMAKE_OPTIONS        =  foreign
+AUTOMAKE_OPTIONS        =  foreign
 
 #ACLOCAL_M4 = $(top_srcdir)/config/aclocal.m4
 
-CLEANFILES = *.1 *.html *.txt *-dircache RRD?.pod *.pdf *~ core *itemcache *.rej *.orig *.tmp
+CLEANFILES = *.1 *.3 *.html *.txt *-dircache RRD?.pod *.pdf *~ core *itemcache *.rej *.orig *.tmp
 
 POD = bin_dec_hex.pod        rrddump.pod            rrdgraph_examples.pod  rrdrestore.pod         rrdupdate.pod  \
       cdeftutorial.pod       rrdfetch.pod           rrdgraph_graph.pod     rrdthreads.pod         rrdxport.pod   \
       rpntutorial.pod        rrdfirst.pod           rrdgraph_rpn.pod       rrdtool.pod            rrdcached.pod  \
       rrd-beginners.pod      rrdinfo.pod            rrdtune.pod            rrdbuild.pod           rrdflushcached.pod   \
       rrdcgi.pod             rrdgraph.pod           rrdlast.pod            rrdlastupdate.pod                     \
-      rrdcreate.pod          rrdgraph_data.pod      rrdresize.pod          rrdtutorial.pod        librrd.pod
+      rrdcreate.pod          rrdgraph_data.pod      rrdresize.pod          rrdtutorial.pod
 
 if BUILD_LIBDBI
   POD += rrdgraph_libdbi.pod
@@ -23,15 +23,18 @@ if BUILD_LUA
   POD += rrdlua.pod
 endif
 
+POD3 = librrd.pod
+
 PMP = RRDs.pod RRDp.pod
 
 MAN = $(POD:.pod=.1)
-TXT = $(MAN:.1=.txt)
-HTML = $(POD:.pod=.html) $(PMP:.pod=.html)
-PDF = $(MAN:.1=.pdf)
+MAN3 = $(POD3:.pod=.3)
+TXT = $(MAN:.1=.txt) $(MAN3:.3=.txt)
+HTML = $(POD:.pod=.html) $(POD3:.pod=.html) $(PMP:.pod=.html)
+PDF = $(MAN:.1=.pdf) $(MAN3:.3=.pdf)
 
 # what should go into the distribution
-EXTRA_DIST= $(POD) $(HTML) $(MAN) $(TXT) rrdtool-dump.dtd rrdtool-xport.dtd rrdgraph_libdbi.pod rrdlua.pod
+EXTRA_DIST= $(POD) $(POD3) $(HTML) $(MAN) $(MAN3) $(TXT) rrdtool-dump.dtd rrdtool-xport.dtd rrdgraph_libdbi.pod rrdlua.pod
 
 idocdir = $(RRDDOCDIR)/txt
 idoc_DATA = $(POD) $(TXT)
@@ -39,8 +42,10 @@ ihtmldir = $(RRDDOCDIR)/html
 ihtml_DATA = $(HTML)
 imandir = $(mandir)/man1
 iman_DATA = $(MAN)
+iman3dir = $(mandir)/man3
+iman3_DATA = $(MAN3)
 
-all-local: link txt man html-local
+all-local: link man txt html-local
 
 .src.pod:
        perl -n -e 'if (/^=include\s+(\S+)/){open F,"$$1.inc" || die $$?;print <F>; close F} else {print}'  $<  > $@
@@ -48,10 +53,13 @@ all-local: link txt man html-local
 .pod.1 .pm.1 .pl.1:
        $(AM_V_GEN)@POD2MAN@ --release=$(VERSION) --center=rrdtool $<  > $@
 
-.1.txt:
+.pod.3:
+       $(AM_V_GEN)@POD2MAN@ --release=$(VERSION) --center=rrdtool --section=3 $< > $@
+
+.1.txt .3.txt:
        $(AM_V_GEN)GROFF_NO_SGR=1 @NROFF@ -man -Tlp $< > $@
 
-.1.pdf:
+.1.pdf .3.pdf:
        $(AM_V_GEN)@TROFF@ -man $< | ps2pdf - $@
 
 .pm.html .pod.html .pl.html:
@@ -65,7 +73,7 @@ RRDp.pod:
 
 link: RRDp.pod RRDs.pod
 
-man: $(MAN)
+man: $(MAN) $(MAN3)
 
 html-local: $(HTML)
 
@@ -73,7 +81,7 @@ txt: $(TXT)
 
 pdf-local: $(PDF)
 
-pod: $(POD)
+pod: $(POD) $(POD3)
 
 install-data-hook:
        $(AM_V_GEN)cd $(DESTDIR)$(ihtmldir) && rm -f index.html && $(LN_S) rrdtool.html index.html
index fe4852eee9d9b4c235fa76d89d3163a353adfae1..f3b743667ef33776bd9efdeac3068e739d131ea2 100644 (file)
@@ -95,8 +95,8 @@ am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__installdirs = "$(DESTDIR)$(idocdir)" "$(DESTDIR)$(ihtmldir)" \
-       "$(DESTDIR)$(imandir)"
-DATA = $(idoc_DATA) $(ihtml_DATA) $(iman_DATA)
+       "$(DESTDIR)$(imandir)" "$(DESTDIR)$(iman3dir)"
+DATA = $(idoc_DATA) $(ihtml_DATA) $(iman_DATA) $(iman3_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ALLOCA = @ALLOCA@
@@ -192,6 +192,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
@@ -304,12 +305,11 @@ target_vendor = @target_vendor@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-SUFFIXES = .pod .1 .man .html .txt .pm .pdf .inc
-
-#AUTOMAKE_OPTIONS        =  foreign
+SUFFIXES = .pod .pl .1 .3 .man .html .txt .pm .pdf .inc
+AUTOMAKE_OPTIONS = foreign
 
 #ACLOCAL_M4 = $(top_srcdir)/config/aclocal.m4
-CLEANFILES = *.1 *.html *.txt *-dircache RRD?.pod *.pdf *~ core *itemcache *.rej *.orig *.tmp
+CLEANFILES = *.1 *.3 *.html *.txt *-dircache RRD?.pod *.pdf *~ core *itemcache *.rej *.orig *.tmp
 POD = bin_dec_hex.pod rrddump.pod rrdgraph_examples.pod rrdrestore.pod \
        rrdupdate.pod cdeftutorial.pod rrdfetch.pod rrdgraph_graph.pod \
        rrdthreads.pod rrdxport.pod rpntutorial.pod rrdfirst.pod \
@@ -317,25 +317,29 @@ POD = bin_dec_hex.pod rrddump.pod rrdgraph_examples.pod rrdrestore.pod \
        rrdinfo.pod rrdtune.pod rrdbuild.pod rrdflushcached.pod \
        rrdcgi.pod rrdgraph.pod rrdlast.pod rrdlastupdate.pod \
        rrdcreate.pod rrdgraph_data.pod rrdresize.pod rrdtutorial.pod \
-       librrd.pod $(am__append_1) $(am__append_2)
+       $(am__append_1) $(am__append_2)
+POD3 = librrd.pod
 PMP = RRDs.pod RRDp.pod
 MAN = $(POD:.pod=.1)
-TXT = $(MAN:.1=.txt)
-HTML = $(POD:.pod=.html) $(PMP:.pod=.html)
-PDF = $(MAN:.1=.pdf)
+MAN3 = $(POD3:.pod=.3)
+TXT = $(MAN:.1=.txt) $(MAN3:.3=.txt)
+HTML = $(POD:.pod=.html) $(POD3:.pod=.html) $(PMP:.pod=.html)
+PDF = $(MAN:.1=.pdf) $(MAN3:.3=.pdf)
 
 # what should go into the distribution
-EXTRA_DIST = $(POD) $(HTML) $(MAN) $(TXT) rrdtool-dump.dtd rrdtool-xport.dtd rrdgraph_libdbi.pod rrdlua.pod
+EXTRA_DIST = $(POD) $(POD3) $(HTML) $(MAN) $(MAN3) $(TXT) rrdtool-dump.dtd rrdtool-xport.dtd rrdgraph_libdbi.pod rrdlua.pod
 idocdir = $(RRDDOCDIR)/txt
 idoc_DATA = $(POD) $(TXT)
 ihtmldir = $(RRDDOCDIR)/html
 ihtml_DATA = $(HTML)
 imandir = $(mandir)/man1
 iman_DATA = $(MAN)
+iman3dir = $(mandir)/man3
+iman3_DATA = $(MAN3)
 all: all-am
 
 .SUFFIXES:
-.SUFFIXES: .pod .1 .man .html .txt .pm .pdf .inc .pl .src
+.SUFFIXES: .pod .pl .1 .3 .man .html .txt .pm .pdf .inc .src
 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
        @for dep in $?; do \
          case '$(am__configure_deps)' in \
@@ -345,9 +349,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile'; \
        $(am__cd) $(top_srcdir) && \
-         $(AUTOMAKE) --gnu doc/Makefile
+         $(AUTOMAKE) --foreign doc/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
@@ -432,6 +436,26 @@ uninstall-imanDATA:
        test -n "$$files" || exit 0; \
        echo " ( cd '$(DESTDIR)$(imandir)' && rm -f" $$files ")"; \
        cd "$(DESTDIR)$(imandir)" && rm -f $$files
+install-iman3DATA: $(iman3_DATA)
+       @$(NORMAL_INSTALL)
+       test -z "$(iman3dir)" || $(MKDIR_P) "$(DESTDIR)$(iman3dir)"
+       @list='$(iman3_DATA)'; test -n "$(iman3dir)" || list=; \
+       for p in $$list; do \
+         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+         echo "$$d$$p"; \
+       done | $(am__base_list) | \
+       while read files; do \
+         echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(iman3dir)'"; \
+         $(INSTALL_DATA) $$files "$(DESTDIR)$(iman3dir)" || exit $$?; \
+       done
+
+uninstall-iman3DATA:
+       @$(NORMAL_UNINSTALL)
+       @list='$(iman3_DATA)'; test -n "$(iman3dir)" || list=; \
+       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+       test -n "$$files" || exit 0; \
+       echo " ( cd '$(DESTDIR)$(iman3dir)' && rm -f" $$files ")"; \
+       cd "$(DESTDIR)$(iman3dir)" && rm -f $$files
 tags: TAGS
 TAGS:
 
@@ -473,7 +497,7 @@ check-am: all-am
 check: check-am
 all-am: Makefile $(DATA) all-local
 installdirs:
-       for dir in "$(DESTDIR)$(idocdir)" "$(DESTDIR)$(ihtmldir)" "$(DESTDIR)$(imandir)"; do \
+       for dir in "$(DESTDIR)$(idocdir)" "$(DESTDIR)$(ihtmldir)" "$(DESTDIR)$(imandir)" "$(DESTDIR)$(iman3dir)"; do \
          test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: install-am
@@ -522,7 +546,8 @@ info: info-am
 
 info-am:
 
-install-data-am: install-idocDATA install-ihtmlDATA install-imanDATA
+install-data-am: install-idocDATA install-ihtmlDATA install-iman3DATA \
+       install-imanDATA
        @$(NORMAL_INSTALL)
        $(MAKE) $(AM_MAKEFLAGS) install-data-hook
 install-dvi: install-dvi-am
@@ -568,7 +593,7 @@ ps: ps-am
 ps-am:
 
 uninstall-am: uninstall-idocDATA uninstall-ihtmlDATA \
-       uninstall-imanDATA
+       uninstall-iman3DATA uninstall-imanDATA
 
 .MAKE: install-am install-data-am install-strip
 
@@ -578,17 +603,17 @@ uninstall-am: uninstall-idocDATA uninstall-ihtmlDATA \
        install install-am install-data install-data-am \
        install-data-hook install-dvi install-dvi-am install-exec \
        install-exec-am install-html install-html-am install-idocDATA \
-       install-ihtmlDATA install-imanDATA install-info \
-       install-info-am install-man install-pdf install-pdf-am \
-       install-ps install-ps-am install-strip installcheck \
-       installcheck-am installdirs maintainer-clean \
+       install-ihtmlDATA install-iman3DATA install-imanDATA \
+       install-info install-info-am install-man install-pdf \
+       install-pdf-am install-ps install-ps-am install-strip \
+       installcheck installcheck-am installdirs maintainer-clean \
        maintainer-clean-generic mostlyclean mostlyclean-generic \
        mostlyclean-libtool pdf pdf-am pdf-local ps ps-am uninstall \
        uninstall-am uninstall-idocDATA uninstall-ihtmlDATA \
-       uninstall-imanDATA
+       uninstall-iman3DATA uninstall-imanDATA
 
 
-all-local: link txt man html-local
+all-local: link man txt html-local
 
 .src.pod:
        perl -n -e 'if (/^=include\s+(\S+)/){open F,"$$1.inc" || die $$?;print <F>; close F} else {print}'  $<  > $@
@@ -596,10 +621,13 @@ all-local: link txt man html-local
 .pod.1 .pm.1 .pl.1:
        $(AM_V_GEN)@POD2MAN@ --release=$(VERSION) --center=rrdtool $<  > $@
 
-.1.txt:
+.pod.3:
+       $(AM_V_GEN)@POD2MAN@ --release=$(VERSION) --center=rrdtool --section=3 $< > $@
+
+.1.txt .3.txt:
        $(AM_V_GEN)GROFF_NO_SGR=1 @NROFF@ -man -Tlp $< > $@
 
-.1.pdf:
+.1.pdf .3.pdf:
        $(AM_V_GEN)@TROFF@ -man $< | ps2pdf - $@
 
 .pm.html .pod.html .pl.html:
@@ -613,7 +641,7 @@ RRDp.pod:
 
 link: RRDp.pod RRDs.pod
 
-man: $(MAN)
+man: $(MAN) $(MAN3)
 
 html-local: $(HTML)
 
@@ -621,7 +649,7 @@ txt: $(TXT)
 
 pdf-local: $(PDF)
 
-pod: $(POD)
+pod: $(POD) $(POD3)
 
 install-data-hook:
        $(AM_V_GEN)cd $(DESTDIR)$(ihtmldir) && rm -f index.html && $(LN_S) rrdtool.html index.html
index 295e62f84617902c668b4d9530c792d9de3b3798..a27a2118bf508afe0d8654c06f20aea3c534c92d 100644 (file)
@@ -1,14 +1,18 @@
+<?xml version="1.0" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>RRDp</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <link rev="made" href="mailto:root@localhost" />
 </head>
 
 <body style="background-color: white">
 
-<p><a name="__index__"></a></p>
+
 <!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
 <!--
 
 <ul>
        <li><a href="#see_also">SEE ALSO</a></li>
        <li><a href="#author">AUTHOR</a></li>
 </ul>
+
 -->
+
+
+</div>
 <!-- INDEX END -->
 
 <p>
@@ -49,74 +57,62 @@ data, <strong>RRDp::read</strong> will return an undefined variable.</p>
 <p>If you import the PERFORMANCE variables into your namespace, 
 you can access RRDtool's internal performance measurements.</p>
 <dl>
-<dt><strong><a name="item_use_rrdp">use <strong>RRDp</strong></a></strong><br />
-</dt>
-<dd>
-Load the RRDp::pipe module.
-</dd>
-<p></p>
-<dt><strong><a name="item_rrdp_3a_3astart_path_to_rrdtool_executable"><strong>RRDp::start</strong> <em>path to RRDtool executable</em></a></strong><br />
-</dt>
+<dt><strong><a name="use_rrdp" class="item">use <strong>RRDp</strong></a></strong></dt>
+
 <dd>
-start RRDtool. The argument must be the path to the RRDtool executable
+<p>Load the RRDp::pipe module.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_rrdp_3a_3acmd_rrdtool_commandline"><strong>RRDp::cmd</strong> <em>rrdtool commandline</em></a></strong><br />
-</dt>
+<dt><strong><a name="rrdp_start_path_to_rrdtool_executable" class="item"><strong>RRDp::start</strong> <em>path to RRDtool executable</em></a></strong></dt>
+
 <dd>
-pass commands on to RRDtool. check the RRDtool documentation for
-more info on the RRDtool commands.
+<p>start RRDtool. The argument must be the path to the RRDtool executable</p>
 </dd>
+<dt><strong><a name="rrdp_cmd_rrdtool_commandline" class="item"><strong>RRDp::cmd</strong> <em>rrdtool commandline</em></a></strong></dt>
+
 <dd>
+<p>pass commands on to RRDtool. check the RRDtool documentation for
+more info on the RRDtool commands.</p>
 <p><strong>Note</strong>: Due to design limitations, <strong>RRDp::cmd</strong> does not support the
 <code>graph -</code> command - use <code>graphv -</code> instead.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__24answer__3d_rrdp_3a_3aread">$answer = <strong>RRDp::read</strong></a></strong><br />
-</dt>
+<dt><strong><a name="_answer" class="item">$answer = <strong>RRDp::read</strong></a></strong></dt>
+
 <dd>
-read RRDtool's response to your command. Note that the $answer variable will
+<p>read RRDtool's response to your command. Note that the $answer variable will
 only contain a pointer to the returned data. The reason for this is, that
 RRDtool can potentially return quite excessive amounts of data
 and we don't want to copy this around in memory. So when you want to 
 access the contents of $answer you have to use $$answer which dereferences
-the variable.
+the variable.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__24status__3d_rrdp_3a_3aend">$status = <strong>RRDp::end</strong></a></strong><br />
-</dt>
+<dt><strong><a name="_status" class="item">$status = <strong>RRDp::end</strong></a></strong></dt>
+
 <dd>
-terminates RRDtool and returns RRDtool's status ...
+<p>terminates RRDtool and returns RRDtool's status ...</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__24rrdp_3a_3auser_2c__24rrdp_3a_3asys_2c__24rrdp_3"><strong>$RRDp::user</strong>,  <strong>$RRDp::sys</strong>, <strong>$RRDp::real</strong></a></strong><br />
-</dt>
+<dt><strong><a name="_rrdp__user_" class="item"><strong>$RRDp::user</strong>,  <strong>$RRDp::sys</strong>, <strong>$RRDp::real</strong></a></strong></dt>
+
 <dd>
-these variables will contain totals of the user time, system time and
+<p>these variables will contain totals of the user time, system time and
 real time as seen by RRDtool.  User time is the time RRDtool is
 running, System time is the time spend in system calls and real time
-is the total time RRDtool has been running.
-</dd>
-<dd>
+is the total time RRDtool has been running.</p>
 <p>The difference between user + system and real is the time spent
 waiting for things like the hard disk and new input from the perl
 script.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__24rrdp_3a_3aerror_mode_and__24rrdp_3a_3aerror"><strong>$RRDp::error_mode</strong> and <strong>$RRDp::error</strong></a></strong><br />
-</dt>
+<dt><strong><a name="_rrdp__error_mode" class="item"><strong>$RRDp::error_mode</strong> and <strong>$RRDp::error</strong></a></strong></dt>
+
 <dd>
-If you set the variable $RRDp::error_mode to the value 'catch' before you run RRDp::read a potential
+<p>If you set the variable $RRDp::error_mode to the value 'catch' before you run RRDp::read a potential
 ERROR message will not cause the program to abort but will be returned in this variable. If no error
-occurs the variable will be empty.
-</dd>
-<dd>
+occurs the variable will be empty.</p>
 <pre>
  $RRDp::error_mode = 'catch';
  RRDp::cmd qw(info file.rrd);
  print $RRDp::error if $RRDp::error;</pre>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <hr />
index 45da6e7a27278bf3ae8e16a762301c6e57beb559..71b6a68bbefe76abd93df66469f793f8219d6ba0 100644 (file)
@@ -1,14 +1,18 @@
+<?xml version="1.0" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>RRDs</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <link rev="made" href="mailto:root@localhost" />
 </head>
 
 <body style="background-color: white">
 
-<p><a name="__index__"></a></p>
+
 <!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
 <!--
 
 <ul>
        <li><a href="#note">NOTE</a></li>
        <li><a href="#author">AUTHOR</a></li>
 </ul>
+
 -->
+
+
+</div>
 <!-- INDEX END -->
 
 <p>
@@ -71,7 +79,7 @@ RRDtool documentation. The command line call</p>
 <pre>
  --template=in:out</pre>
 <p>is also valid.</p>
-<p>The RRDs::times function takes two parameters:  a ``start'' and ``end'' time.
+<p>The RRDs::times function takes two parameters:  a &quot;start&quot; and &quot;end&quot; time.
 These should be specified in the <strong>AT-STYLE TIME SPECIFICATION</strong> format
 used by RRDtool.  See the <strong>rrdfetch</strong> documentation for a detailed
 explanation on how to specify time.</p>
@@ -138,7 +146,7 @@ integers, a pointer to an array and a pointer to a array of pointers.</p>
     print &quot;\n&quot;;
   }</pre>
 <p><strong>RRDs::times</strong> returns two integers which are the number of seconds since
-epoch (1970-01-01) for the supplied ``start'' and ``end'' arguments, respectively.</p>
+epoch (1970-01-01) for the supplied &quot;start&quot; and &quot;end&quot; arguments, respectively.</p>
 <p>See the examples directory for more ways to use this extension.</p>
 <p>
 </p>
index f6aef5be917be0ddf121fa7591e19d043bacbc20..a811a736b2c86b835abe34cc687aea19220f17e2 100644 (file)
@@ -1,15 +1,7 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.08)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
 .de Sp \" Vertical space (when we can't use .PP)
 .if t .sp .5v
 .if n .sp
 ..
 .\" Set up some character translations and predefined strings.  \*(-- will
 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
 .ie n \{\
 .    ds -- \(*W-
 .    ds R" ''
 'br\}
 .\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
 .\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
 .\" entries marked with X<> in POD.  Of course, you'll have to process the
 .\" output yourself in some meaningful fashion.
-.if \nF \{\
+.ie \nF \{\
 .    de IX
 .    tm Index:\\$1\t\\n%\t"\\$2"
 ..
 .    nr % 0
 .    rr F
 .\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
+.el \{\
+.    de IX
+..
+.\}
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
 .\" ========================================================================
 .\"
 .IX Title "BIN_DEC_HEX 1"
-.TH BIN_DEC_HEX 1 "2009-02-21" "1.3.99909060808" "rrdtool"
+.TH BIN_DEC_HEX 1 "2009-07-12" "1.3.999" "rrdtool"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
 .SH "NAME"
 bin_dec_hex \- How to use binary, decimal, and hexadecimal notation.
 .SH "DESCRIPTION"
@@ -142,7 +141,7 @@ it is not the first one.
 .PP
 If this sounds cryptic to you, this is what I've just said in numbers:
 .PP
-.Vb 14
+.Vb 10
 \&     0
 \&     1
 \&     2
@@ -179,7 +178,7 @@ digits. They only use two different symbols, namely \*(L"0\*(R" and \*(L"1\*(R".
 the same rules to this set of digits and you get the binary numbering
 system:
 .PP
-.Vb 14
+.Vb 10
 \&     0
 \&     1
 \&    10
@@ -246,9 +245,7 @@ representations, but with eight different symbols.
 \& Octal       (8)
 \& Decimal     (10)
 \& Hexadecimal (16)
-.Ve
-.PP
-.Vb 23
+\&
 \& (2)    (8) (10) (16)
 \& 00000   0    0    0
 \& 00001   1    1    1
@@ -357,7 +354,7 @@ It is the same in all other representations:
 This example can not be done for binary as that system only uses two
 symbols. Another example:
 .PP
-%1010 would be
+\&\f(CW%1010\fR would be
 .PP
 .Vb 4
 \& 1 * 2^3
@@ -413,8 +410,8 @@ The other method builds up the number from the right. Let's try 41'029
 again.  Divide by 16 and do not use fractions (only whole numbers).
 .PP
 .Vb 4
-\& 41'029 / 16 is 2'564 with a remainder of 5. Write down 5.
-\& 2'564 / 16 is 160 with a remainder of 4. Write the 4 before the 5.
+\& 41\*(Aq029 / 16 is 2\*(Aq564 with a remainder of 5. Write down 5.
+\& 2\*(Aq564 / 16 is 160 with a remainder of 4. Write the 4 before the 5.
 \& 160 / 16 is 10 with no remainder. Prepend 45 with 0.
 \& 10 / 16 is below one. End here and prepend 0xA. End up with 0xA045.
 .Ve
@@ -432,7 +429,7 @@ has the advantage that you can see very easily if you should write down
 a zero or a one: if you divide by two the remainder will be zero if it
 is an even number and one if it is an odd number:
 .PP
-.Vb 16
+.Vb 10
 \& 41029 / 2 = 20514 remainder 1
 \& 20514 / 2 = 10257 remainder 0
 \& 10257 / 2 =  5128 remainder 1
@@ -475,9 +472,7 @@ Group \f(CW%1010000001000101\fR by three and convert into octal:
 \& %1 010 000 001 000 101
 \& %001 010 000 001 000 101
 \&    1   2   0   1   0   5 \-\-> 0120105
-.Ve
-.PP
-.Vb 3
+\&
 \& So: %1010000001000101 = 0120105 = 0xA045 = 41029
 \& Or: 1010000001000101(2) = 120105(8) = A045(16) = 41029(10)
 \& Or: 1010000001000101(2) = 120105(8) = A045(16) = 41029
index 7296b1c3a7f274c59759497aff774ac463f93098..22dc60e1e6cae2f7f9f5d16c3cef08e4ca0d6929 100644 (file)
@@ -1,14 +1,18 @@
+<?xml version="1.0" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>bin_dec_hex</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <link rev="made" href="mailto:root@localhost" />
 </head>
 
 <body style="background-color: white">
 
-<p><a name="__index__"></a></p>
+
 <!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
 <!--
 
 <ul>
        <li><a href="#description">DESCRIPTION</a></li>
        <li><a href="#author">AUTHOR</a></li>
 </ul>
+
 -->
+
+
+</div>
 <!-- INDEX END -->
 
 <p>
 </p>
 <h1><a name="name">NAME</a></h1>
 <p>bin_dec_hex - How to use binary, decimal, and hexadecimal notation.</p>
-<div align="right"><a href="bin_dec_hex.pdf">PDF</a> version.</div><p>
+<p>
 </p>
 <hr />
 <h1><a name="description">DESCRIPTION</a></h1>
@@ -52,16 +60,16 @@ it is not the first one.</p>
 <p>and so on.</p>
 <p>Each time the digit nine is incremented, it is reset to 0 and the
 position before (to the left) is incremented (from 0 to 1). Then
-number 9 can be seen as ``00009'' and when we should increment 9, we
+number 9 can be seen as &quot;00009&quot; and when we should increment 9, we
 reset it to zero and increment the digit just before the 9 so the
-number becomes ``00010''. Leading zeros we don't write except if it is
+number becomes &quot;00010&quot;. Leading zeros we don't write except if it is
 the only digit (number 0). And of course, we write zeros if they occur
 anywhere inside or at the end of a number:</p>
 <pre>
  &quot;00010&quot; -&gt; &quot; 0010&quot; -&gt; &quot; 010&quot; -&gt; &quot;  10&quot;, but not &quot;  1 &quot;.</pre>
 <p>This was pretty basic, you already knew this. Why did I tell it?
 Well, computers usually do not represent numbers with 10 different
-digits. They only use two different symbols, namely ``0'' and ``1''. Apply
+digits. They only use two different symbols, namely &quot;0&quot; and &quot;1&quot;. Apply
 the same rules to this set of digits and you get the binary numbering
 system:</p>
 <pre>
@@ -88,7 +96,7 @@ numbering system or base.  Normally, if we do not explicitly specify
 the numbering system used, we implicitly use the decimal system. If we
 want to use any other numbering system, we'll have to make that
 clear. There are a few widely adopted methods to do so. One common
-form is to write <code>1010(2)</code> which means that you wrote down a number in
+form is to write 1010(2) which means that you wrote down a number in
 its binary representation. It is the number ten. If you would write
 1010 without specifying the base, the number is interpreted as one
 thousand and ten using base 10.</p>
@@ -105,7 +113,7 @@ on the context.</p>
 (...programming...), but the numbers will have large
 representations. The number 65'535 (often in the decimal system a ' is
 used to separate blocks of three digits for readability) would be
-written down as <code>1111111111111111(2)</code> which is 16 times the digit 1.
+written down as 1111111111111111(2) which is 16 times the digit 1.
 This is difficult and prone to errors. Therefore, we usually would use
 another base, called hexadecimal. It uses 16 different symbols. First
 the symbols from the decimal system are used, thereafter we continue
@@ -164,14 +172,14 @@ each digit, write down its binary equivalent.</p>
 <p>Computers (or rather the parsers running on them) would have a hard
 time converting a number like 1234(16). Therefore hexadecimal numbers
 are specified with a prefix. This prefix depends on the language
-you're writing in. Some of the prefixes are ``0x'' for C, ``$'' for
-Pascal, ``#'' for HTML.  It is common to assume that if a number starts
+you're writing in. Some of the prefixes are &quot;0x&quot; for C, &quot;$&quot; for
+Pascal, &quot;#&quot; for HTML.  It is common to assume that if a number starts
 with a zero, it is octal. It does not matter what is used as long as
-you know what it is. I will use ``0x'' for hexadecimal, ``%'' for binary
-and ``0'' for octal.  The following numbers are all the same, just their
+you know what it is. I will use &quot;0x&quot; for hexadecimal, &quot;%&quot; for binary
+and &quot;0&quot; for octal.  The following numbers are all the same, just their
 representation (base) is different: 021 0x11 17 %00010001</p>
 <p>To do arithmetics and conversions you need to understand one more thing.
-It is something you already know but perhaps you do not ``see'' it yet:</p>
+It is something you already know but perhaps you do not &quot;see&quot; it yet:</p>
 <p>If you write down 1234, (no prefix, so it is decimal) you are talking
 about the number one thousand, two hundred and thirty four. In sort of
 a formula:</p>
@@ -186,7 +194,7 @@ a formula:</p>
  2 * 10^2
  3 * 10^1
  4 * 10^0</pre>
-<p>where ^ means ``to the power of''.</p>
+<p>where ^ means &quot;to the power of&quot;.</p>
 <p>We are using the base 10, and the positions 0,1,2 and 3.
 The right-most position should NOT be multiplied with 10. The second
 from the right should be multiplied one time with 10. The third from
@@ -223,8 +231,8 @@ yet another way afterwards.</p>
 <p>First you need to know how many positions will be used in the other
 system. To do so, you need to know the maximum numbers you'll be
 using. Well, that's not as hard as it looks. In decimal, the maximum
-number that you can form with two digits is ``99''. The maximum for
-three: ``999''. The next number would need an extra position. Reverse
+number that you can form with two digits is &quot;99&quot;. The maximum for
+three: &quot;999&quot;. The next number would need an extra position. Reverse
 this idea and you will see that the number can be found by taking 10^3
 (10*10*10 is 1000) minus 1 or 10^2 minus one.</p>
 <p>This can be done for hexadecimal as well:</p>
@@ -241,12 +249,12 @@ from 1 to 15 (0x1 to 0xF). Do the same for the other positions.</p>
 <p>Let's try with 41'029. It is smaller than 16^4 but bigger than 16^3-1. This
 means that we have to use four positions.
 We can subtract 16^3 from 41'029 ten times without going below zero.
-The left-most digit will therefore be ``A'', so we have 0xA????.
+The left-most digit will therefore be &quot;A&quot;, so we have 0xA????.
 The number is reduced to 41'029 - 10*4'096 = 41'029-40'960 = 69.
 69 is smaller than 16^3 but not bigger than 16^2-1. The second digit
-is therefore ``0'' and we now have 0xA0??.
+is therefore &quot;0&quot; and we now have 0xA0??.
 69 is smaller than 16^2 and bigger than 16^1-1. We can subtract 16^1
-(which is just plain 16) four times and write down ``4'' to get 0xA04?.
+(which is just plain 16) four times and write down &quot;4&quot; to get 0xA04?.
 Subtract 64 from 69 (69 - 4*16) and the last digit is 5 --&gt; 0xA045.</p>
 <p>The other method builds up the number from the right. Let's try 41'029
 again.  Divide by 16 and do not use fractions (only whole numbers).</p>
@@ -333,7 +341,7 @@ find that you didn't make mistakes. In the end, you'll do calculi in
 other bases as easily as you do them in decimal.</p>
 <p>When the numbers get bigger, you'll have to realize that a computer is
 not called a computer just to have a nice name. There are many
-different calculators available, use them. For Unix you could use ``bc''
+different calculators available, use them. For Unix you could use &quot;bc&quot;
 which is short for Binary Calculator. It calculates not only in
 decimal, but in all bases you'll ever want to use (among them Binary).</p>
 <p>For people on Windows:
index 5d3d925c879a075f5c8fe9241265745da2a77eeb..e52f200f841fe662bb4e16c35421f66b8bdd63f5 100644 (file)
@@ -2,8 +2,6 @@
 
 bin_dec_hex - How to use binary, decimal, and hexadecimal notation.
 
-=for html <div align="right"><a href="bin_dec_hex.pdf">PDF</a> version.</div>
-
 =head1 DESCRIPTION
 
 Most people use the decimal numbering system. This system uses ten
index 55607153de9f46f9bbb1bdfb981131511845b4e7..ca4cc46874bbb5d7364601fca20eb8673aefc88c 100644 (file)
@@ -6,8 +6,8 @@ N\bNA\bAM\bME\bE
        bin_dec_hex - How to use binary, decimal, and hexadecimal notation.
 
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
-       Most people use the decimal numbering system. This system uses ten sym-
-       bols to represent numbers. When those ten symbols are used up, they
+       Most people use the decimal numbering system. This system uses ten
+       symbols to represent numbers. When those ten symbols are used up, they
        start all over again and increment the position to the left. The digit
        0 is only shown if it is the only symbol in the sequence, or if it is
        not the first one.
@@ -31,9 +31,9 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
 
        and so on.
 
-       Each time the digit nine is incremented, it is reset to 0 and the posi-
-       tion before (to the left) is incremented (from 0 to 1). Then number 9
-       can be seen as "00009" and when we should increment 9, we reset it to
+       Each time the digit nine is incremented, it is reset to 0 and the
+       position before (to the left) is incremented (from 0 to 1). Then number
+       can be seen as "00009" and when we should increment 9, we reset it to
        zero and increment the digit just before the 9 so the number becomes
        "00010". Leading zeros we don't write except if it is the only digit
        (number 0). And of course, we write zeros if they occur anywhere inside
@@ -66,39 +66,39 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        If you count the number of rows, you'll see that these are again 14
        different numbers. The numbers are the same and mean the same as in the
        first list, we just used a different representation. This means that
-       you have to know the representation used, or as it is called the num-
-       bering system or base.  Normally, if we do not explicitly specify the
-       numbering system used, we implicitly use the decimal system. If we want
-       to use any other numbering system, we'll have to make that clear. There
-       are a few widely adopted methods to do so. One common form is to write
-       1010(2) which means that you wrote down a number in its binary repre-
-       sentation. It is the number ten. If you would write 1010 without speci-
-       fying the base, the number is interpreted as one thousand and ten using
-       base 10.
-
-       In books, another form is common. It uses subscripts (little charac-
-       ters, more or less in between two rows). You can leave out the paren-
-       theses in that case and write down the number in normal characters fol-
-       lowed by a little two just behind it.
+       you have to know the representation used, or as it is called the
+       numbering system or base.  Normally, if we do not explicitly specify
+       the numbering system used, we implicitly use the decimal system. If we
+       want to use any other numbering system, we'll have to make that clear.
+       There are a few widely adopted methods to do so. One common form is to
+       write 1010(2) which means that you wrote down a number in its binary
+       representation. It is the number ten. If you would write 1010 without
+       specifying the base, the number is interpreted as one thousand and ten
+       using base 10.
+
+       In books, another form is common. It uses subscripts (little
+       characters, more or less in between two rows). You can leave out the
+       parentheses in that case and write down the number in normal characters
+       followed by a little two just behind it.
 
        As the numbering system used is also called the base, we talk of the
        number 1100 base 2, the number 12 base 10.
 
-       Within the binary system, it is common to write leading zeros. The num-
-       bers are written down in series of four, eight or sixteen depending on
-       the context.
+       Within the binary system, it is common to write leading zeros. The
+       numbers are written down in series of four, eight or sixteen depending
+       on the context.
 
-       We can use the binary form when talking to computers (...program-
-       ming...), but the numbers will have large representations. The number
-       65'535 (often in the decimal system a ' is used to separate blocks of
-       three digits for readability) would be written down as
+       We can use the binary form when talking to computers
+       (...programming...), but the numbers will have large representations.
+       The number 65'535 (often in the decimal system a ' is used to separate
+       blocks of three digits for readability) would be written down as
        1111111111111111(2) which is 16 times the digit 1.  This is difficult
        and prone to errors. Therefore, we usually would use another base,
        called hexadecimal. It uses 16 different symbols. First the symbols
-       from the decimal system are used, thereafter we continue with alpha-
-       betic characters. We get 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E
-       and F. This system is chosen because the hexadecimal form can be con-
-       verted into the binary system very easily (and back).
+       from the decimal system are used, thereafter we continue with
+       alphabetic characters. We get 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D,
+       E and F. This system is chosen because the hexadecimal form can be
+       converted into the binary system very easily (and back).
 
        There is yet another system in use, called the octal system. This was
        more common in the old days, but is not used very often anymore. As you
@@ -137,10 +137,11 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
 
        Most computers used nowadays are using bytes of eight bits. This means
        that they store eight bits at a time. You can see why the octal system
-       is not the most practical for that: You'd need three digits to repre-
-       sent the eight bits and this means that you'd have to use one complete
-       digit to represent only two bits (2+3+3=8). This is a waste. For hex-
-       adecimal digits, you need only two digits which are used completely:
+       is not the most practical for that: You'd need three digits to
+       represent the eight bits and this means that you'd have to use one
+       complete digit to represent only two bits (2+3+3=8). This is a waste.
+       For hexadecimal digits, you need only two digits which are used
+       completely:
 
         (2)      (8)  (10) (16)
         11111111 377  255   FF
@@ -159,8 +160,8 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        for HTML.  It is common to assume that if a number starts with a zero,
        it is octal. It does not matter what is used as long as you know what
        it is. I will use "0x" for hexadecimal, "%" for binary and "0" for
-       octal.  The following numbers are all the same, just their representa-
-       tion (base) is different: 021 0x11 17 %00010001
+       octal.  The following numbers are all the same, just their
+       representation (base) is different: 021 0x11 17 %00010001
 
        To do arithmetics and conversions you need to understand one more
        thing.  It is something you already know but perhaps you do not "see"
@@ -269,9 +270,9 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        Which method to use is up to you. Use whatever works for you.  I use
        them both without being able to tell what method I use in each case, it
        just depends on the number, I think. Fact is, some numbers will occur
-       frequently while programming. If the number is close to one I am famil-
-       iar with, then I will use the first method (like 32'770 which is into
-       32'768 + 2 and I just know that it is 0x8000 + 0x2 = 0x8002).
+       frequently while programming. If the number is close to one I am
+       familiar with, then I will use the first method (like 32'770 which is
+       into 32'768 + 2 and I just know that it is 0x8000 + 0x2 = 0x8002).
 
        For binary the same approach can be used. The base is 2 and not 16, and
        the number of positions will grow rapidly. Using the second method has
@@ -348,18 +349,19 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
 
        For low values, try to do the calculations yourself, then check them
        with a calculator. The more you do the calculations yourself, the more
-       you'll find that you didn't make mistakes. In the end, you'll do cal-
-       culi in other bases as easily as you do them in decimal.
+       you'll find that you didn't make mistakes. In the end, you'll do
+       calculi in other bases as easily as you do them in decimal.
 
        When the numbers get bigger, you'll have to realize that a computer is
-       not called a computer just to have a nice name. There are many differ-
-       ent calculators available, use them. For Unix you could use "bc" which
-       is short for Binary Calculator. It calculates not only in decimal, but
-       in all bases you'll ever want to use (among them Binary).
+       not called a computer just to have a nice name. There are many
+       different calculators available, use them. For Unix you could use "bc"
+       which is short for Binary Calculator. It calculates not only in
+       decimal, but in all bases you'll ever want to use (among them Binary).
 
-       For people on Windows: Start the calculator (start->programs->acces-
-       sories->calculator) and if necessary click view->scientific. You now
-       have a scientific calculator and can compute in binary or hexadecimal.
+       For people on Windows: Start the calculator
+       (start->programs->accessories->calculator) and if necessary click
+       view->scientific. You now have a scientific calculator and can compute
+       in binary or hexadecimal.
 
 A\bAU\bUT\bTH\bHO\bOR\bR
        I hope you enjoyed the examples and their descriptions. If you do, help
@@ -371,4 +373,4 @@ A\bAU\bUT\bTH\bHO\bOR\bR
 
 
 
-1.3.99909060808                   2009-02-21                    BIN_DEC_HEX(1)
+1.3.999                           2009-07-12                    BIN_DEC_HEX(1)
index 937d629264eb550559ab0b59622dc583917b92ca..f0a973d4314d540c8f639c3bd1e44334d942af7e 100644 (file)
@@ -1,15 +1,7 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.08)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
 .de Sp \" Vertical space (when we can't use .PP)
 .if t .sp .5v
 .if n .sp
 ..
 .\" Set up some character translations and predefined strings.  \*(-- will
 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
 .ie n \{\
 .    ds -- \(*W-
 .    ds R" ''
 'br\}
 .\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
 .\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
 .\" entries marked with X<> in POD.  Of course, you'll have to process the
 .\" output yourself in some meaningful fashion.
-.if \nF \{\
+.ie \nF \{\
 .    de IX
 .    tm Index:\\$1\t\\n%\t"\\$2"
 ..
 .    nr % 0
 .    rr F
 .\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
+.el \{\
+.    de IX
+..
+.\}
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
 .\" ========================================================================
 .\"
 .IX Title "CDEFTUTORIAL 1"
-.TH CDEFTUTORIAL 1 "2009-02-21" "1.3.99909060808" "rrdtool"
+.TH CDEFTUTORIAL 1 "2009-06-09" "1.3.999" "rrdtool"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
 .SH "NAME"
 cdeftutorial \- Alex van den Bogaerdt's CDEF tutorial
 .SH "DESCRIPTION"
@@ -143,7 +142,7 @@ to add it.  I will then try to provide an answer in the next release
 of this tutorial.  No feedback equals no changes! Additions to
 this document are also welcome.  \*(-- Alex van den Bogaerdt
 <alex@vandenbogaerdt.nl>
-.Sh "Why this tutorial?"
+.SS "Why this tutorial?"
 .IX Subsection "Why this tutorial?"
 One of the powerful parts of RRDtool is its ability to do all sorts
 of calculations on the data retrieved from its databases. However,
@@ -156,7 +155,7 @@ If you are happy with the official documentation, you may find this
 document too simple or even boring. If you do choose to read this
 tutorial, I also expect you to have read and fully understand my
 other tutorial.
-.Sh "More reading"
+.SS "More reading"
 .IX Subsection "More reading"
 If you have difficulties with the way I try to explain it please read
 Steve Rader's rpntutorial. It may help you understand how this all works.
@@ -205,7 +204,7 @@ same as the variable named in the \s-1DEF\s0 (inbytes)!
 .IX Header "RPN-expressions"
 \&\s-1RPN\s0 is short-hand for Reverse Polish Notation. It works as follows.
 You put the variables or numbers on a stack. You also put operations
-(things\-to\-do) on the stack and this stack is then processed. The result
+(things-to-do) on the stack and this stack is then processed. The result
 will be placed on the stack. At the end, there should be exactly one
 number left: the outcome of the series of operations. If there is not
 exactly one number left, RRDtool will complain loudly.
@@ -329,7 +328,7 @@ add b to c and then add a to the result. This makes it possible to
 rewrite the \s-1RPN\s0 into \f(CW\*(C`CDEF:result=a,b,c,d,e,+,+,+,+\*(C'\fR which is
 evaluated differently:
 .PP
-.Vb 13
+.Vb 10
 \&   push value of variable a on the stack: a
 \&   push value of variable b on the stack: a b
 \&   push value of variable c on the stack: a b c
@@ -377,7 +376,7 @@ Just do all the math by hand to see what happens, I'm sure this will
 solve most, if not all, problems you encounter.
 .SH "Some special numbers"
 .IX Header "Some special numbers"
-.Sh "The unknown value"
+.SS "The unknown value"
 .IX Subsection "The unknown value"
 Sometimes collecting your data will fail. This can be very common,
 especially when querying over busy links. RRDtool can be configured
@@ -404,12 +403,12 @@ every minute:
 .PP
 .Vb 7
 \&   counter value    resulting rate
-\&   10'000
-\&   10'060            1; (10'060\-10'000)/60 == 1
-\&   10'120            1; (10'120\-10'060)/60 == 1
-\&   unknown           unknown; you don't know the last value
-\&   10'240            unknown; you don't know the previous value
-\&   10'300            1; (10'300\-10'240)/60 == 1
+\&   10\*(Aq000
+\&   10\*(Aq060            1; (10\*(Aq060\-10\*(Aq000)/60 == 1
+\&   10\*(Aq120            1; (10\*(Aq120\-10\*(Aq060)/60 == 1
+\&   unknown           unknown; you don\*(Aqt know the last value
+\&   10\*(Aq240            unknown; you don\*(Aqt know the previous value
+\&   10\*(Aq300            1; (10\*(Aq300\-10\*(Aq240)/60 == 1
 .Ve
 .PP
 If the \s-1CDP\s0 was to be calculated from the last five updates, it would get
@@ -421,7 +420,7 @@ would be unknown.
 You have to decide the proper values for heartbeat, number of PDPs per
 \&\s-1CDP\s0 and the xff factor. As you can see from the previous text they define
 the behavior of your \s-1RRA\s0.
-.Sh "Working with unknown data in your database"
+.SS "Working with unknown data in your database"
 .IX Subsection "Working with unknown data in your database"
 As you have read in the previous chapter, entries in an \s-1RRA\s0 can be
 set to the unknown value. If you do calculations with this type of
@@ -446,7 +445,7 @@ wasn't installed yet!) but you know that the data rate through the device
 had to be zero (because of the same reason: it was not installed).
 .PP
 There are some examples below that make this change.
-.Sh "Infinity"
+.SS "Infinity"
 .IX Subsection "Infinity"
 Infinite data is another form of a special number. It cannot be
 graphed because by definition you would never reach the infinite
@@ -462,7 +461,7 @@ vertical dimensions. You can think of it as drawing an \s-1AREA\s0 with an
 infinite height and displaying only the part that is visible in the
 current graph. This is probably a good way to approximate infinity
 and it sure allows for some neat tricks. See below for examples.
-.Sh "Working with unknown data and infinity"
+.SS "Working with unknown data and infinity"
 .IX Subsection "Working with unknown data and infinity"
 Sometimes you would like to discard unknown data and pretend it is zero
 (or any other value for that matter) and sometimes you would like to
@@ -471,7 +470,7 @@ This is why CDEFs have support for unknown data. There are also examples
 available that show unknown data by using infinity.
 .SH "Some examples"
 .IX Header "Some examples"
-.Sh "Example: using a recently created \s-1RRD\s0"
+.SS "Example: using a recently created \s-1RRD\s0"
 .IX Subsection "Example: using a recently created RRD"
 You are keeping statistics on your router for over a year now. Recently
 you installed an extra router and you would like to show the combined
@@ -531,9 +530,7 @@ If you want to check this \s-1RPN\s0 expression, just mimic RRDtool behavior:
 \&   CDEF:result=value,UN,0,value,IF  (value,UN) is not true so it becomes 0
 \&   CDEF:result=0,0,value,IF         "IF" will return the 3rd value
 \&   CDEF:result=value                The known value is returned
-.Ve
-.PP
-.Vb 4
+\&
 \&   For the unknown value, this happens:
 \&   CDEF:result=value,UN,0,value,IF  (value,UN) is true so it becomes 1
 \&   CDEF:result=1,0,value,IF         "IF" sees 1 and returns the 2nd value
@@ -545,7 +542,7 @@ can use that other value.
 .PP
 Eventually, when all unknown data is removed from the \s-1RRD\s0, you may want
 to remove this rule so that unknown data is properly displayed.
-.Sh "Example: better handling of unknown data, by using time"
+.SS "Example: better handling of unknown data, by using time"
 .IX Subsection "Example: better handling of unknown data, by using time"
 The above example has one drawback. If you do log unknown data in
 your database after installing your new equipment, it will also be
@@ -615,13 +612,9 @@ so lets do it quick:
 \&      where x represents "time>937521357"
 \&      where a represents the original value
 \&      where b represents the outcome of the previous example
-.Ve
-.PP
-.Vb 1
+\&
 \&   time>937521357       \-\-> TIME,937521357,GT
-.Ve
-.PP
-.Vb 4
+\&
 \&   if (x) then a else b \-\-> x,a,b,IF
 \&   substitute x         \-\-> TIME,937521357,GT,a,b,IF
 \&   substitute a         \-\-> TIME,937521357,GT,value,b,IF
@@ -633,7 +626,7 @@ We end up with:
 .PP
 This looks very complex, however, as you can see, it was not too hard to
 come up with.
-.Sh "Example: Pretending weird data isn't there"
+.SS "Example: Pretending weird data isn't there"
 .IX Subsection "Example: Pretending weird data isn't there"
 Suppose you have a problem that shows up as huge spikes in your graph.
 You know this happens and why, so you decide to work around the problem.
@@ -670,7 +663,7 @@ The two \s-1CDEF\s0 expressions would be:
 \&    CDEF:result=number,100000,GT,UNKN,number,IF
 \&    CDEF:result=number,100000,GT,100000,number,IF
 .Ve
-.Sh "Example: working on a certain time span"
+.SS "Example: working on a certain time span"
 .IX Subsection "Example: working on a certain time span"
 If you want a graph that spans a few weeks, but would only want to
 see some routers' data for one week, you need to \*(L"hide\*(R" the rest of
@@ -714,7 +707,7 @@ could also do it the other way around:
 .Ve
 .PP
 This will return an \s-1UNKNOWN\s0 if either comparison returns true.
-.Sh "Example: You suspect to have problems and want to see unknown data."
+.SS "Example: You suspect to have problems and want to see unknown data."
 .IX Subsection "Example: You suspect to have problems and want to see unknown data."
 Suppose you add up the number of active users on several terminal servers.
 If one of them doesn't give an answer (or an incorrect one) you get \*(L"NaN\*(R"
@@ -760,7 +753,7 @@ be filled in on the graph at that particular time.
 \&   AREA:allusers#0000FF:combined user count
 \&   AREA:wrongdata#FF0000:unknown data
 .Ve
-.Sh "Same example useful with STACKed data:"
+.SS "Same example useful with STACKed data:"
 .IX Subsection "Same example useful with STACKed data:"
 If you use stack in the previous example (as I would do) then you don't
 add up the values. Therefore, there is no relationship between the
@@ -813,7 +806,7 @@ If you do so, you won't be able to use these next GPRINTs:
 .Ve
 .SH "The examples from the RRD graph manual page"
 .IX Header "The examples from the RRD graph manual page"
-.Sh "Degrees Celsius vs. Degrees Fahrenheit"
+.SS "Degrees Celsius vs. Degrees Fahrenheit"
 .IX Subsection "Degrees Celsius vs. Degrees Fahrenheit"
 To convert Celsius into Fahrenheit use the formula
 F=9/5*C+32
@@ -842,7 +835,7 @@ as follows:
 \&   6. push function "plus" and process it
 \&      the stack contains now the temperature in Fahrenheit
 .Ve
-.Sh "Changing unknown into zero"
+.SS "Changing unknown into zero"
 .IX Subsection "Changing unknown into zero"
 .Vb 9
 \&   rrdtool graph demo.png \-\-title="Demo Graph" \e
@@ -878,9 +871,9 @@ easy to see that we add \*(L"d\*(R" and \*(L"h\*(R", and multiply the result wit
 The end result is that we have added \*(L"idat1\*(R" and \*(L"idat2\*(R" and in the
 process we effectively ignored unknown values. The result is multiplied
 by eight, most likely to convert bytes/s to bits/s.
-.Sh "Infinity demo"
+.SS "Infinity demo"
 .IX Subsection "Infinity demo"
-.Vb 13
+.Vb 10
 \&   rrdtool graph example.png \-\-title="INF demo" \e
 \&      DEF:val1=some.rrd:ds0:AVERAGE \e
 \&      DEF:val2=some.rrd:ds1:AVERAGE \e
@@ -941,36 +934,31 @@ If your data can also have negative values you also need to overwrite
 the other half of your graph. This can be done in a relatively simple
 way: what you need is the \*(L"wipeout\*(R" variable and place a negative
 sign before it:  \*(L"CDEF:wipeout2=wipeout,\-1,*\*(R"
-.Sh "Filtering data"
+.SS "Filtering data"
 .IX Subsection "Filtering data"
 You may do some complex data filtering:
 .PP
 .Vb 1
 \&  MEDIAN FILTER: filters shot noise
-.Ve
-.PP
-.Vb 7
+\&
 \&    DEF:var=database.rrd:traffic:AVERAGE
 \&    CDEF:prev1=PREV(var)
 \&    CDEF:prev2=PREV(prev1)
 \&    CDEF:prev3=PREV(prev2)
 \&    CDEF:median=prev1,prev2,prev3,+,+,3,/
 \&    LINE3:median#000077:filtered
-\&    LINE1:prev2#007700:'raw data'
-.Ve
-.PP
-.Vb 1
+\&    LINE1:prev2#007700:\*(Aqraw data\*(Aq
+\&
+\&
 \&  DERIVATE:
-.Ve
-.PP
-.Vb 7
+\&
 \&    DEF:var=database.rrd:traffic:AVERAGE
 \&    CDEF:prev1=PREV(var)
 \&    CDEF:time=TIME
 \&    CDEF:prevtime=PREV(time)
 \&    CDEF:derivate=var,prev1,\-,time,prevtime,\-,/
 \&    LINE3:derivate#000077:derivate
-\&    LINE1:var#007700:'raw data'
+\&    LINE1:var#007700:\*(Aqraw data\*(Aq
 .Ve
 .SH "Out of ideas for now"
 .IX Header "Out of ideas for now"
index 167ed46e2ad3e6f09a92ea827b3c41365489f332..63c40b6185cfcd77997249afb8183cedb85f8c75 100644 (file)
@@ -1,14 +1,18 @@
+<?xml version="1.0" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>cdeftutorial</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <link rev="made" href="mailto:root@localhost" />
 </head>
 
 <body style="background-color: white">
 
-<p><a name="__index__"></a></p>
+
 <!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
 <!--
 
 <ul>
@@ -23,7 +27,7 @@
 
        <li><a href="#what_are_cdefs">What are CDEFs?</a></li>
        <li><a href="#syntax">Syntax</a></li>
-       <li><a href="#rpnexpressions">RPN-expressions</a></li>
+       <li><a href="#rpn_expressions">RPN-expressions</a></li>
        <li><a href="#converting_your_wishes_to_rpn">Converting your wishes to RPN</a></li>
        <li><a href="#some_special_numbers">Some special numbers</a></li>
        <ul>
        <li><a href="#see_also">SEE ALSO</a></li>
        <li><a href="#author">AUTHOR</a></li>
 </ul>
+
 -->
+
+
+</div>
 <!-- INDEX END -->
 
 <p>
@@ -100,7 +108,7 @@ Steve Rader's <a href="././rpntutorial.html">the rpntutorial manpage</a>. It may
 </p>
 <hr />
 <h1><a name="what_are_cdefs">What are CDEFs?</a></h1>
-<p>When retrieving data from an RRD, you are using a ``DEF'' to work with
+<p>When retrieving data from an RRD, you are using a &quot;DEF&quot; to work with
 that data. Think of it as a variable that changes over time (where
 time is the x-axis). The value of this variable is what is found in
 the database at that particular time and you can't do any
@@ -113,16 +121,16 @@ from DEFs and perform calculations on them.</p>
 <pre>
    DEF:var_name_1=some.rrd:ds_name:CF
    CDEF:var_name_2=RPN_expression</pre>
-<p>You first define ``var_name_1'' to be data collected from data source
-``ds_name'' found in RRD ``some.rrd'' with consolidation function ``CF''.</p>
-<p>Assume the ifInOctets SNMP counter is saved in mrtg.rrd as the DS ``in''.
+<p>You first define &quot;var_name_1&quot; to be data collected from data source
+&quot;ds_name&quot; found in RRD &quot;some.rrd&quot; with consolidation function &quot;CF&quot;.</p>
+<p>Assume the ifInOctets SNMP counter is saved in mrtg.rrd as the DS &quot;in&quot;.
 Then the following DEF defines a variable for the average of that
 data source:</p>
 <pre>
    DEF:inbytes=mrtg.rrd:in:AVERAGE</pre>
 <p>Say you want to display bits per second (instead of bytes per second
 as stored in the database.)  You have to define a calculation
-(hence ``CDEF'') on variable ``inbytes'' and use that variable (inbits)
+(hence &quot;CDEF&quot;) on variable &quot;inbytes&quot; and use that variable (inbits)
 instead of the original:</p>
 <pre>
    CDEF:inbits=inbytes,8,*</pre>
@@ -134,7 +142,7 @@ same as the variable named in the DEF (inbytes)!</p>
 <p>
 </p>
 <hr />
-<h1><a name="rpnexpressions">RPN-expressions</a></h1>
+<h1><a name="rpn_expressions">RPN-expressions</a></h1>
 <p>RPN is short-hand for Reverse Polish Notation. It works as follows.
 You put the variables or numbers on a stack. You also put operations
 (things-to-do) on the stack and this stack is then processed. The result
@@ -143,45 +151,47 @@ number left: the outcome of the series of operations. If there is not
 exactly one number left, RRDtool will complain loudly.</p>
 <p>Above multiplication by eight will look like:</p>
 <ol>
-<li></li>
-Start with an empty stack
-<p></p>
-<li></li>
-Put the content of variable inbytes on the stack
-<p></p>
-<li></li>
-Put the number eight on the stack
-<p></p>
-<li></li>
-Put the operation multiply on the stack
-<p></p>
-<li></li>
-Process the stack
-<p></p>
-<li></li>
-Retrieve the value from the stack and put it in variable inbits
-<p></p></ol>
+<li>
+<p>Start with an empty stack</p>
+</li>
+<li>
+<p>Put the content of variable inbytes on the stack</p>
+</li>
+<li>
+<p>Put the number eight on the stack</p>
+</li>
+<li>
+<p>Put the operation multiply on the stack</p>
+</li>
+<li>
+<p>Process the stack</p>
+</li>
+<li>
+<p>Retrieve the value from the stack and put it in variable inbits</p>
+</li>
+</ol>
 <p>We will now do an example with real numbers. Suppose the variable
 inbytes would have value 10, the stack would be:</p>
 <ol>
-<li></li>
-||
-<p></p>
-<li></li>
-|10|
-<p></p>
-<li></li>
-|10|8|
-<p></p>
-<li></li>
-|10|8|*|
-<p></p>
-<li></li>
-|80|
-<p></p>
-<li></li>
-||
-<p></p></ol>
+<li>
+<p>||</p>
+</li>
+<li>
+<p>|10|</p>
+</li>
+<li>
+<p>|10|8|</p>
+</li>
+<li>
+<p>|10|8|*|</p>
+</li>
+<li>
+<p>|80|</p>
+</li>
+<li>
+<p>||</p>
+</li>
+</ol>
 <p>Processing the stack (step 5) will retrieve one value from the stack
 (from the right at step 4). This is the operation multiply and this
 takes two values off the stack as input. The result is put back on the
@@ -191,7 +201,7 @@ Generally speaking you have the following order:</p>
 <pre>
    y = A - B  --&gt;  y=minus(A,B)  --&gt;  CDEF:y=A,B,-</pre>
 <p>This is not very intuitive (at least most people don't think so). For
-the function <code>f(A,B)</code> you reverse the position of ``f'', but you do not
+the function f(A,B) you reverse the position of &quot;f&quot;, but you do not
 reverse the order of the variables.</p>
 <p>
 </p>
@@ -210,7 +220,7 @@ are monitoring.</p>
    router3.rrd with link1in link2in</pre>
 <p>Suppose you would like to add up all these counters, except for link2in
 inside router2.rrd. You need to do:</p>
-<p>(in this example, ``router1.rrd:link1in'' means the DS link1in inside the
+<p>(in this example, &quot;router1.rrd:link1in&quot; means the DS link1in inside the
 RRD router1.rrd)</p>
 <pre>
    router1.rrd:link1in
@@ -273,10 +283,10 @@ choose the order yourself, you have to start with the multiplication
 and then add a to it. You may alter the position of b and c, you must
 not alter the position of a and b.</p>
 <p>You have to take this in consideration when converting this expression
-into RPN. Read it as: ``Add the outcome of b*c to a'' and then it is
+into RPN. Read it as: &quot;Add the outcome of b*c to a&quot; and then it is
 easy to write the RPN expression: <code>result=a,b,c,*,+</code>
 Another expression that would return the same: <code>result=b,c,*,a,+</code></p>
-<p>In normal math, you may encounter something like ``a*(b+c)'' and this
+<p>In normal math, you may encounter something like &quot;a*(b+c)&quot; and this
 can also be converted into RPN. The parenthesis just tell you to first
 add b and c, and then multiply a with the result. Again, now it is
 easy to write it in RPN: <code>result=a,b,c,+,*</code>. Note that this is very
@@ -296,20 +306,21 @@ solve most, if not all, problems you encounter.</p>
 <h2><a name="the_unknown_value">The unknown value</a></h2>
 <p>Sometimes collecting your data will fail. This can be very common,
 especially when querying over busy links. RRDtool can be configured
-to allow for one (or even more) unknown <code>value(s)</code> and calculate the missing
+to allow for one (or even more) unknown value(s) and calculate the missing
 update. You can, for instance, query your device every minute. This is
 creating one so called PDP or primary data point per minute. If you
 defined your RRD to contain an RRA that stores 5-minute values, you need
 five of those PDPs to create one CDP (consolidated data point).
 These PDPs can become unknown in two cases:</p>
 <ol>
-<li></li>
-The updates are too far apart. This is tuned using the ``heartbeat'' setting.
-<p></p>
-<li></li>
-The update was set to unknown on purpose by inserting no value (using the
-template option) or by using ``U'' as the value to insert.
-<p></p></ol>
+<li>
+<p>The updates are too far apart. This is tuned using the &quot;heartbeat&quot; setting.</p>
+</li>
+<li>
+<p>The update was set to unknown on purpose by inserting no value (using the
+template option) or by using &quot;U&quot; as the value to insert.</p>
+</li>
+</ol>
 <p>When a CDP is calculated, another mechanism determines if this CDP is valid
 or not. If there are too many PDPs unknown, the CDP is unknown as well.
 This is determined by the xff factor. Please note that one unknown counter
@@ -341,7 +352,7 @@ set to the unknown value. If you do calculations with this type of
 value, the result has to be unknown too. This means that an expression
 such as <code>result=a,b,+</code> will be unknown if either a or b is unknown.
 It would be wrong to just ignore the unknown value and return the value
-of the other parameter. By doing so, you would assume ``unknown'' means ``zero''
+of the other parameter. By doing so, you would assume &quot;unknown&quot; means &quot;zero&quot;
 and this is not true.</p>
 <p>There has been a case where somebody was collecting data for over a year.
 A new piece of equipment was installed, a new RRD was created and the
@@ -393,37 +404,38 @@ throughput for these two devices.</p>
 will add known data (from router.rrd) to unknown data (from router2.rrd) for
 the bigger part of your stats. You could solve this in a few ways:</p>
 <ul>
-<li></li>
-While creating the new database, fill it with zeros from the start to now.
+<li>
+<p>While creating the new database, fill it with zeros from the start to now.
 You have to make the database start at or before the least recent time in
-the other database.
-<p></p>
-<li></li>
-Alternatively, you could use CDEF and alter unknown data to zero.
-<p></p></ul>
+the other database.</p>
+</li>
+<li>
+<p>Alternatively, you could use CDEF and alter unknown data to zero.</p>
+</li>
+</ul>
 <p>Both methods have their pros and cons. The first method is troublesome and
 if you want to do that you have to figure it out yourself. It is not
 possible to create a database filled with zeros, you have to put them in
 manually. Implementing the second method is described next:</p>
-<p>What we want is: ``if the value is unknown, replace it with zero''. This
+<p>What we want is: &quot;if the value is unknown, replace it with zero&quot;. This
 could be written in pseudo-code as:  if (value is unknown) then (zero)
-else (value). When reading the <a href="././rrdgraph.html">the rrdgraph manpage</a> manual you notice the ``UN''
-function that returns zero or one. You also notice the ``IF'' function
+else (value). When reading the <a href="././rrdgraph.html">the rrdgraph manpage</a> manual you notice the &quot;UN&quot;
+function that returns zero or one. You also notice the &quot;IF&quot; function
 that takes zero or one as input.</p>
-<p>First look at the ``IF'' function. It takes three values from the stack,
+<p>First look at the &quot;IF&quot; function. It takes three values from the stack,
 the first value is the decision point, the second value is returned to
-the stack if the evaluation is ``true'' and if not, the third value is
-returned to the stack. We want the ``UN'' function to decide what happens
+the stack if the evaluation is &quot;true&quot; and if not, the third value is
+returned to the stack. We want the &quot;UN&quot; function to decide what happens
 so we combine those two functions in one CDEF.</p>
-<p>Lets write down the two possible paths for the ``IF'' function:</p>
+<p>Lets write down the two possible paths for the &quot;IF&quot; function:</p>
 <pre>
    if true  return a
    if false return b</pre>
-<p>In RPN:  <code>result=x,a,b,IF</code> where ``x'' is either true or false.</p>
-<p>Now we have to fill in ``x'', this should be the ``(value is unknown)'' part
+<p>In RPN:  <code>result=x,a,b,IF</code> where &quot;x&quot; is either true or false.</p>
+<p>Now we have to fill in &quot;x&quot;, this should be the &quot;(value is unknown)&quot; part
 and this is in RPN:  <code>result=value,UN</code></p>
 <p>We now combine them: <code>result=value,UN,a,b,IF</code> and when we fill in the
-appropriate things for ``a'' and ``b'' we're finished:</p>
+appropriate things for &quot;a&quot; and &quot;b&quot; we're finished:</p>
 <p><code>CDEF:result=value,UN,0,value,IF</code></p>
 <p>You may want to read Steve Rader's RPN guide if you have difficulties
 with the way I explained this last example.</p>
@@ -450,21 +462,22 @@ your database after installing your new equipment, it will also be
 translated into zero and therefore you won't see that there was a
 problem. This is not good and what you really want to do is:</p>
 <ul>
-<li></li>
-If there is unknown data, look at the time that this sample was taken.
-<p></p>
-<li></li>
-If the unknown value is before time xxx, make it zero.
-<p></p>
-<li></li>
-If it is after time xxx, leave it as unknown data.
-<p></p></ul>
+<li>
+<p>If there is unknown data, look at the time that this sample was taken.</p>
+</li>
+<li>
+<p>If the unknown value is before time xxx, make it zero.</p>
+</li>
+<li>
+<p>If it is after time xxx, leave it as unknown data.</p>
+</li>
+</ul>
 <p>This is doable: you can compare the time that the sample was taken
 to some known time. Assuming you started to monitor your device on
 Friday September 17, 1999, 00:35:57 MET DST. Translate this time in seconds
 since 1970-01-01 and it becomes 937'521'357. If you process unknown values
 that were received after this time, you want to leave them unknown and
-if they were ``received'' before this time, you want to translate them
+if they were &quot;received&quot; before this time, you want to translate them
 into zero (so you can effectively ignore them while adding them to your
 other routers counters).</p>
 <p>Translating Friday September 17, 1999, 00:35:57 MET DST into 937'521'357 can
@@ -477,15 +490,16 @@ known. There are several other ways of doing this, just pick one.</p>
 values different depending on the time that the sample was taken.
 This is a three step process:</p>
 <ol>
-<li></li>
-If the timestamp of the value is after 937'521'357, leave it as is.
-<p></p>
-<li></li>
-If the value is a known value, leave it as is.
-<p></p>
-<li></li>
-Change the unknown value into zero.
-<p></p></ol>
+<li>
+<p>If the timestamp of the value is after 937'521'357, leave it as is.</p>
+</li>
+<li>
+<p>If the value is a known value, leave it as is.</p>
+</li>
+<li>
+<p>Change the unknown value into zero.</p>
+</li>
+</ol>
 <p>Lets look at part one:</p>
 <pre>
     if (true) return the original value</pre>
@@ -495,10 +509,10 @@ Change the unknown value into zero.
     if (false) return &quot;b&quot;</pre>
 <p>We need to calculate true or false from step 1. There is a function
 available that returns the timestamp for the current sample. It is
-called, how surprisingly, ``TIME''. This time has to be compared to
-a constant number, we need ``GT''. The output of ``GT'' is true or false
-and this is good input to ``IF''. We want ``if (time &gt; 937521357) then
-(return a) else (return b)''.</p>
+called, how surprisingly, &quot;TIME&quot;. This time has to be compared to
+a constant number, we need &quot;GT&quot;. The output of &quot;GT&quot; is true or false
+and this is good input to &quot;IF&quot;. We want &quot;if (time &gt; 937521357) then
+(return a) else (return b)&quot;.</p>
 <p>This process was already described thoroughly in the previous chapter
 so lets do it quick:</p>
 <pre>
@@ -527,26 +541,27 @@ so you get almost 10mb/s while the rest of your network activity does
 not produce numbers higher than 100kb/s.</p>
 <p>There are two options:</p>
 <ol>
-<li></li>
-If the number exceeds 100kb/s it is wrong and you want it masked out
-by changing it into unknown.
-<p></p>
-<li></li>
-You don't want the graph to show more than 100kb/s.
-<p></p></ol>
+<li>
+<p>If the number exceeds 100kb/s it is wrong and you want it masked out
+by changing it into unknown.</p>
+</li>
+<li>
+<p>You don't want the graph to show more than 100kb/s.</p>
+</li>
+</ol>
 <p>Pseudo code: if (number &gt; 100) then unknown else number
 or
 Pseudo code: if (number &gt; 100) then 100 else number.</p>
-<p>The second ``problem'' may also be solved by using the rigid option of
+<p>The second &quot;problem&quot; may also be solved by using the rigid option of
 RRDtool graph, however this has not the same result. In this example
 you can end up with a graph that does autoscaling. Also, if you use
 the numbers to display maxima they will be set to 100kb/s.</p>
-<p>We use ``IF'' and ``GT'' again. ``if (x) then (y) else (z)'' is written
-down as ``CDEF:result=x,y,z,IF''; now fill in x, y and z.
-For x you fill in ``number greater than 100kb/s'' becoming
-``number,100000,GT'' (kilo is 1'000 and b/s is what we measure!).
-The ``z'' part is ``number'' in both cases and the ``y'' part is either
-``UNKN'' for unknown or ``100000'' for 100kb/s.</p>
+<p>We use &quot;IF&quot; and &quot;GT&quot; again. &quot;if (x) then (y) else (z)&quot; is written
+down as &quot;CDEF:result=x,y,z,IF&quot;; now fill in x, y and z.
+For x you fill in &quot;number greater than 100kb/s&quot; becoming
+&quot;number,100000,GT&quot; (kilo is 1'000 and b/s is what we measure!).
+The &quot;z&quot; part is &quot;number&quot; in both cases and the &quot;y&quot; part is either
+&quot;UNKN&quot; for unknown or &quot;100000&quot; for 100kb/s.</p>
 <p>The two CDEF expressions would be:</p>
 <pre>
     CDEF:result=number,100000,GT,UNKN,number,IF
@@ -555,7 +570,7 @@ The ``z'' part is ``number'' in both cases and the ``y'' part is either
 </p>
 <h2><a name="example__working_on_a_certain_time_span">Example: working on a certain time span</a></h2>
 <p>If you want a graph that spans a few weeks, but would only want to
-see some routers' data for one week, you need to ``hide'' the rest of
+see some routers' data for one week, you need to &quot;hide&quot; the rest of
 the time frame. Don't ask me when this would be useful, it's just
 here for the example :)</p>
 <p>We need to compare the time stamp to a begin date and an end date.
@@ -565,14 +580,14 @@ Comparing isn't difficult:</p>
         TIME,endtime,LE</pre>
 <p>These two parts of the CDEF produce either 0 for false or 1 for true.
 We can now check if they are both 0 (or 1) using a few IF statements
-but, as Wataru Satoh pointed out, we can use the ``*'' or ``+'' functions
+but, as Wataru Satoh pointed out, we can use the &quot;*&quot; or &quot;+&quot; functions
 as logical AND and logical OR.</p>
-<p>For ``*'', the result will be zero (false) if either one of the two
-operators is zero.  For ``+'', the result will only be false (0) when
+<p>For &quot;*&quot;, the result will be zero (false) if either one of the two
+operators is zero.  For &quot;+&quot;, the result will only be false (0) when
 two false (0) operators will be added.  Warning: *any* number not
-equal to 0 will be considered ``true''. This means that, for instance,
-``-1,1,+'' (which should be ``true or true'') will become FALSE ...
-In other words, use ``+'' only if you know for sure that you have positive
+equal to 0 will be considered &quot;true&quot;. This means that, for instance,
+&quot;-1,1,+&quot; (which should be &quot;true or true&quot;) will become FALSE ...
+In other words, use &quot;+&quot; only if you know for sure that you have positive
 numbers (or zero) only.</p>
 <p>Let's compile the complete CDEF:</p>
 <pre>
@@ -588,8 +603,8 @@ could also do it the other way around:</p>
 </p>
 <h2><a name="example__you_suspect_to_have_problems_and_want_to_see_unknown_data_">Example: You suspect to have problems and want to see unknown data.</a></h2>
 <p>Suppose you add up the number of active users on several terminal servers.
-If one of them doesn't give an answer (or an incorrect one) you get ``NaN''
-in the database (``Not a Number'') and NaN is evaluated as Unknown.</p>
+If one of them doesn't give an answer (or an incorrect one) you get &quot;NaN&quot;
+in the database (&quot;Not a Number&quot;) and NaN is evaluated as Unknown.</p>
 <p>In this case, you would like to be alerted to it and the sum of the
 remaining values is of no value to you.</p>
 <p>It would be something like:</p>
@@ -606,12 +621,12 @@ bright red line, not a gap.</p>
 there is an unknown value:</p>
 <pre>
     CDEF:wrongdata=allusers,UN,INF,UNKN,IF</pre>
-<p>``allusers,UN'' will evaluate to either true or false, it is the (x) part
-of the ``IF'' function and it checks if allusers is unknown.
-The (y) part of the ``IF'' function is set to ``INF'' (which means infinity)
-and the (z) part of the function returns ``UNKN''.</p>
+<p>&quot;allusers,UN&quot; will evaluate to either true or false, it is the (x) part
+of the &quot;IF&quot; function and it checks if allusers is unknown.
+The (y) part of the &quot;IF&quot; function is set to &quot;INF&quot; (which means infinity)
+and the (z) part of the function returns &quot;UNKN&quot;.</p>
 <p>The logic is: if (allusers == unknown) then return INF else return UNKN.</p>
-<p>You can now use AREA to display this ``wrongdata'' in bright red. If it
+<p>You can now use AREA to display this &quot;wrongdata&quot; in bright red. If it
 is unknown (because allusers is known) then the red AREA won't show up.
 If the value is INF (because allusers is unknown) then the red AREA will
 be filled in on the graph at that particular time.</p>
@@ -627,7 +642,7 @@ four values and you don't get a single value to test.
 Suppose users3 would be unknown at one point in time: users1 is plotted,
 users2 is stacked on top of users1, users3 is unknown and therefore
 nothing happens, users4 is stacked on top of users2.
-Add the extra CDEFs anyway and use them to overlay the ``normal'' graph:</p>
+Add the extra CDEFs anyway and use them to overlay the &quot;normal&quot; graph:</p>
 <pre>
    DEF:users1=location1.rrd:onlineTS1:LAST
    DEF:users2=location1.rrd:onlineTS2:LAST
@@ -640,19 +655,20 @@ Add the extra CDEFs anyway and use them to overlay the ``normal'' graph:</p>
    STACK:users3#00FFFF:users at ts3
    STACK:users4#FFFF00:users at ts4
    AREA:wrongdata#FF0000:unknown data</pre>
-<p>If there is unknown data in one of users1..users4, the ``wrongdata'' AREA
+<p>If there is unknown data in one of users1..users4, the &quot;wrongdata&quot; AREA
 will be drawn and because it starts at the X-axis and has infinite height
 it will effectively overwrite the STACKed parts.</p>
-<p>You could combine the two CDEF lines into one (we don't use ``allusers'')
+<p>You could combine the two CDEF lines into one (we don't use &quot;allusers&quot;)
 if you like.  But there are good reasons for writing two CDEFS:</p>
 <ul>
-<li></li>
-It improves the readability of the script.
-<p></p>
-<li></li>
-It can be used inside GPRINT to display the total number of users.
-<p></p></ul>
-<p>If you choose to combine them, you can substitute the ``allusers'' in the
+<li>
+<p>It improves the readability of the script.</p>
+</li>
+<li>
+<p>It can be used inside GPRINT to display the total number of users.</p>
+</li>
+</ul>
+<p>If you choose to combine them, you can substitute the &quot;allusers&quot; in the
 second CDEF with the part after the equal sign from the first line:</p>
 <pre>
    CDEF:wrongdata=users1,users2,users3,users4,+,+,+,UN,INF,UNKN,IF</pre>
@@ -678,8 +694,8 @@ F=9/5*C+32</p>
       CDEF:far=9,5,/,cel,*,32,+ \
       LINE2:cel#00a000:&quot;D. Celsius&quot; \
       LINE2:far#ff0000:&quot;D. Fahrenheit\c&quot;</pre>
-<p>This example gets the DS called ``exhaust'' from database ``demo.rrd''
-and puts the values in variable ``cel''. The CDEF used is evaluated
+<p>This example gets the DS called &quot;exhaust&quot; from database &quot;demo.rrd&quot;
+and puts the values in variable &quot;cel&quot;. The CDEF used is evaluated
 as follows:</p>
 <pre>
    CDEF:far=9,5,/,cel,*,32,+
@@ -713,14 +729,14 @@ get:</p>
  0        --&gt; b
  idat1    --&gt; c
  if (a) then (b) else (c)</pre>
-<p>The result is therefore ``0'' if it is true that ``idat1'' equals ``UN''.
-If not, the original value of ``idat1'' is put back on the stack.
-Lets call this answer ``d''. The process is repeated for the next
+<p>The result is therefore &quot;0&quot; if it is true that &quot;idat1&quot; equals &quot;UN&quot;.
+If not, the original value of &quot;idat1&quot; is put back on the stack.
+Lets call this answer &quot;d&quot;. The process is repeated for the next
 five items on the stack, it is done the same and will return answer
-``h''. The resulting stack is therefore ``d,h''.
-The expression has been simplified to ``d,h,+,8,*'' and it will now be
-easy to see that we add ``d'' and ``h'', and multiply the result with eight.</p>
-<p>The end result is that we have added ``idat1'' and ``idat2'' and in the
+&quot;h&quot;. The resulting stack is therefore &quot;d,h&quot;.
+The expression has been simplified to &quot;d,h,+,8,*&quot; and it will now be
+easy to see that we add &quot;d&quot; and &quot;h&quot;, and multiply the result with eight.</p>
+<p>The end result is that we have added &quot;idat1&quot; and &quot;idat2&quot; and in the
 process we effectively ignored unknown values. The result is multiplied
 by eight, most likely to convert bytes/s to bits/s.</p>
 <p>
@@ -741,25 +757,25 @@ by eight, most likely to convert bytes/s to bits/s.</p>
       STACK:val4#FFC000:Value4 \
       AREA:whipeout#FF0000:Unknown</pre>
 <p>This demo demonstrates two ways to use infinity. It is a bit tricky
-to see what happens in the ``background'' CDEF.</p>
+to see what happens in the &quot;background&quot; CDEF.</p>
 <pre>
    &quot;val4,POP,TIME,7200,%,3600,LE,INF,UNKN,IF&quot;</pre>
-<p>This RPN takes the value of ``val4'' as input and then immediately
-removes it from the stack using ``POP''. The stack is now empty but
+<p>This RPN takes the value of &quot;val4&quot; as input and then immediately
+removes it from the stack using &quot;POP&quot;. The stack is now empty but
 as a side effect we now know the time that this sample was taken.
-This time is put on the stack by the ``TIME'' function.</p>
-<p>``TIME,7200,%'' takes the modulo of time and 7'200 (which is two hours).
+This time is put on the stack by the &quot;TIME&quot; function.</p>
+<p>&quot;TIME,7200,%&quot; takes the modulo of time and 7'200 (which is two hours).
 The resulting value on the stack will be a number in the range from
 0 to 7199.</p>
 <p>For people who don't know the modulo function: it is the remainder
 after an integer division. If you divide 16 by 3, the answer would
-be 5 and the remainder would be 1. So, ``16,3,%'' returns 1.</p>
-<p>We have the result of ``TIME,7200,%'' on the stack, lets call this
-``a''. The start of the RPN has become ``a,3600,LE'' and this checks
-if ``a'' is less or equal than ``3600''. It is true half of the time.
+be 5 and the remainder would be 1. So, &quot;16,3,%&quot; returns 1.</p>
+<p>We have the result of &quot;TIME,7200,%&quot; on the stack, lets call this
+&quot;a&quot;. The start of the RPN has become &quot;a,3600,LE&quot; and this checks
+if &quot;a&quot; is less or equal than &quot;3600&quot;. It is true half of the time.
 We now have to process the rest of the RPN and this is only a simple
-``IF'' function that returns either ``INF'' or ``UNKN'' depending on the
-time. This is returned to variable ``background''.</p>
+&quot;IF&quot; function that returns either &quot;INF&quot; or &quot;UNKN&quot; depending on the
+time. This is returned to variable &quot;background&quot;.</p>
 <p>The second CDEF has been discussed earlier in this document so we
 won't do that here.</p>
 <p>Now you can draw the different layers. Start with the background
@@ -773,8 +789,8 @@ four variables are valid. This is why you use the second CDEF, it
 will overlay the data with an AREA so the data cannot be seen anymore.</p>
 <p>If your data can also have negative values you also need to overwrite
 the other half of your graph. This can be done in a relatively simple
-way: what you need is the ``wipeout'' variable and place a negative
-sign before it:  ``CDEF:wipeout2=wipeout,-1,*''</p>
+way: what you need is the &quot;wipeout&quot; variable and place a negative
+sign before it:  &quot;CDEF:wipeout2=wipeout,-1,*&quot;</p>
 <p>
 </p>
 <h2><a name="filtering_data">Filtering data</a></h2>
index c67ecaa0998a6884d6402220d829536dda137a0b..cab147dfa4c32b44e4e76a9962a881e327506b74 100644 (file)
@@ -12,25 +12,23 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        If you think some important feature is not explained properly, and if
        adding it to this document would benefit most users, please do ask me
        to add it.  I will then try to provide an answer in the next release of
-       this tutorial.  No feedback equals no changes! Additions to this docu-
-       ment are also welcome.  -- Alex van den Bogaerdt <alex@vandenbo-
-       gaerdt.nl>
-
-       W\bWh\bhy\by t\bth\bhi\bis\bs t\btu\but\bto\bor\bri\bia\bal\bl?\b?
+       this tutorial.  No feedback equals no changes! Additions to this
+       document are also welcome.  -- Alex van den Bogaerdt
+       <alex@vandenbogaerdt.nl>
 
+   W\bWh\bhy\by t\bth\bhi\bis\bs t\btu\but\bto\bor\bri\bia\bal\bl?\b?
        One of the powerful parts of RRDtool is its ability to do all sorts of
-       calculations on the data retrieved from its databases. However, RRD-
-       tool's many options and syntax make it difficult for the average user
-       to understand. The manuals are good at explaining what these options
-       do; however they do not (and should not) explain in detail why they are
-       useful. As with my RRDtool tutorial: if you want a simple document in
-       simple language you should read this tutorial.  If you are happy with
-       the official documentation, you may find this document too simple or
-       even boring. If you do choose to read this tutorial, I also expect you
-       to have read and fully understand my other tutorial.
-
-       M\bMo\bor\bre\be r\bre\bea\bad\bdi\bin\bng\bg
-
+       calculations on the data retrieved from its databases. However,
+       RRDtool's many options and syntax make it difficult for the average
+       user to understand. The manuals are good at explaining what these
+       options do; however they do not (and should not) explain in detail why
+       they are useful. As with my RRDtool tutorial: if you want a simple
+       document in simple language you should read this tutorial.  If you are
+       happy with the official documentation, you may find this document too
+       simple or even boring. If you do choose to read this tutorial, I also
+       expect you to have read and fully understand my other tutorial.
+
+   M\bMo\bor\bre\be r\bre\bea\bad\bdi\bin\bng\bg
        If you have difficulties with the way I try to explain it please read
        Steve Rader's rpntutorial. It may help you understand how this all
        works.
@@ -121,9 +119,9 @@ R\bRP\bPN\bN-\b-e\bex\bxp\bpr\bre\bes\bss\bsi\bio\bon\bns\bs
        reverse the order of the variables.
 
 C\bCo\bon\bnv\bve\ber\brt\bti\bin\bng\bg y\byo\bou\bur\br w\bwi\bis\bsh\bhe\bes\bs t\bto\bo R\bRP\bPN\bN
-       First, get a clear picture of what you want to do. Break down the prob-
-       lem in smaller portions until they cannot be split anymore. Then it is
-       rather simple to convert your ideas into RPN.
+       First, get a clear picture of what you want to do. Break down the
+       problem in smaller portions until they cannot be split anymore. Then it
+       is rather simple to convert your ideas into RPN.
 
        Suppose you have several RRDs and would like to add up some counters in
        them. These could be, for instance, the counters for every WAN link you
@@ -183,8 +181,8 @@ C\bCo\bon\bnv\bve\ber\brt\bti\bin\bng\bg y\byo\bou\bur\br w\bwi\bis\bsh\bhe\bes\bs t\bto\bo R\bRP\bPN\bN
        This is correct but it can be made more clear to humans. It does not
        matter if you add a to b and then add c to the result or first add b to
        c and then add a to the result. This makes it possible to rewrite the
-       RPN into "CDEF:result=a,b,c,d,e,+,+,+,+" which is evaluated differ-
-       ently:
+       RPN into "CDEF:result=a,b,c,d,e,+,+,+,+" which is evaluated
+       differently:
 
           push value of variable a on the stack: a
           push value of variable b on the stack: a b
@@ -222,8 +220,8 @@ C\bCo\bon\bnv\bve\ber\brt\bti\bin\bng\bg y\byo\bou\bur\br w\bwi\bis\bsh\bhe\bes\bs t\bto\bo R\bRP\bPN\bN
        also be converted into RPN. The parenthesis just tell you to first add
        b and c, and then multiply a with the result. Again, now it is easy to
        write it in RPN: "result=a,b,c,+,*". Note that this is very similar to
-       one of the expressions in the previous paragraph, only the multiplica-
-       tion and the addition changed places.
+       one of the expressions in the previous paragraph, only the
+       multiplication and the addition changed places.
 
        When you have problems with RPN or when RRDtool is complaining, it's
        usually a good thing to write down the stack on a piece of paper and
@@ -232,8 +230,7 @@ C\bCo\bon\bnv\bve\ber\brt\bti\bin\bng\bg y\byo\bou\bur\br w\bwi\bis\bsh\bhe\bes\bs t\bto\bo R\bRP\bPN\bN
        solve most, if not all, problems you encounter.
 
 S\bSo\bom\bme\be s\bsp\bpe\bec\bci\bia\bal\bl n\bnu\bum\bmb\bbe\ber\brs\bs
-       T\bTh\bhe\be u\bun\bnk\bkn\bno\bow\bwn\bn v\bva\bal\blu\bue\be
-
+   T\bTh\bhe\be u\bun\bnk\bkn\bno\bow\bwn\bn v\bva\bal\blu\bue\be
        Sometimes collecting your data will fail. This can be very common,
        especially when querying over busy links. RRDtool can be configured to
        allow for one (or even more) unknown value(s) and calculate the missing
@@ -276,8 +273,7 @@ S\bSo\bom\bme\be s\bsp\bpe\bec\bci\bia\bal\bl n\bnu\bum\bmb\bbe\ber\brs\bs
        CDP and the xff factor. As you can see from the previous text they
        define the behavior of your RRA.
 
-       W\bWo\bor\brk\bki\bin\bng\bg w\bwi\bit\bth\bh u\bun\bnk\bkn\bno\bow\bwn\bn d\bda\bat\bta\ba i\bin\bn y\byo\bou\bur\br d\bda\bat\bta\bab\bba\bas\bse\be
-
+   W\bWo\bor\brk\bki\bin\bng\bg w\bwi\bit\bth\bh u\bun\bnk\bkn\bno\bow\bwn\bn d\bda\bat\bta\ba i\bin\bn y\byo\bou\bur\br d\bda\bat\bta\bab\bba\bas\bse\be
        As you have read in the previous chapter, entries in an RRA can be set
        to the unknown value. If you do calculations with this type of value,
        the result has to be unknown too. This means that an expression such as
@@ -303,15 +299,14 @@ S\bSo\bom\bme\be s\bsp\bpe\bec\bci\bia\bal\bl n\bnu\bum\bmb\bbe\ber\brs\bs
 
        There are some examples below that make this change.
 
-       I\bIn\bnf\bfi\bin\bni\bit\bty\by
-
+   I\bIn\bnf\bfi\bin\bni\bit\bty\by
        Infinite data is another form of a special number. It cannot be graphed
        because by definition you would never reach the infinite value. You can
-       think of positive and negative infinity depending on the position rela-
-       tive to zero.
+       think of positive and negative infinity depending on the position
+       relative to zero.
 
-       RRDtool is capable of representing (-not- graphing!) infinity by stop-
-       ping at its current maximum (for positive infinity) or minimum (for
+       RRDtool is capable of representing (-not- graphing!) infinity by
+       stopping at its current maximum (for positive infinity) or minimum (for
        negative infinity) without knowing this maximum (minimum).
 
        Infinity in RRDtool is mostly used to draw an AREA without knowing its
@@ -320,17 +315,15 @@ S\bSo\bom\bme\be s\bsp\bpe\bec\bci\bia\bal\bl n\bnu\bum\bmb\bbe\ber\brs\bs
        current graph. This is probably a good way to approximate infinity and
        it sure allows for some neat tricks. See below for examples.
 
-       W\bWo\bor\brk\bki\bin\bng\bg w\bwi\bit\bth\bh u\bun\bnk\bkn\bno\bow\bwn\bn d\bda\bat\bta\ba a\ban\bnd\bd i\bin\bnf\bfi\bin\bni\bit\bty\by
-
+   W\bWo\bor\brk\bki\bin\bng\bg w\bwi\bit\bth\bh u\bun\bnk\bkn\bno\bow\bwn\bn d\bda\bat\bta\ba a\ban\bnd\bd i\bin\bnf\bfi\bin\bni\bit\bty\by
        Sometimes you would like to discard unknown data and pretend it is zero
        (or any other value for that matter) and sometimes you would like to
        pretend that known data is unknown (to discard known-to-be-wrong data).
-       This is why CDEFs have support for unknown data. There are also exam-
-       ples available that show unknown data by using infinity.
+       This is why CDEFs have support for unknown data. There are also
+       examples available that show unknown data by using infinity.
 
 S\bSo\bom\bme\be e\bex\bxa\bam\bmp\bpl\ble\bes\bs
-       E\bEx\bxa\bam\bmp\bpl\ble\be:\b: u\bus\bsi\bin\bng\bg a\ba r\bre\bec\bce\ben\bnt\btl\bly\by c\bcr\bre\bea\bat\bte\bed\bd R\bRR\bRD\bD
-
+   E\bEx\bxa\bam\bmp\bpl\ble\be:\b: u\bus\bsi\bin\bng\bg a\ba r\bre\bec\bce\ben\bnt\btl\bly\by c\bcr\bre\bea\bat\bte\bed\bd R\bRR\bRD\bD
        You are keeping statistics on your router for over a year now. Recently
        you installed an extra router and you would like to show the combined
        throughput for these two devices.
@@ -340,11 +333,11 @@ S\bSo\bom\bme\be e\bex\bxa\bam\bmp\bpl\ble\bes\bs
        router2.rrd) for the bigger part of your stats. You could solve this in
        a few ways:
 
-       Â·   While creating the new database, fill it with zeros from the start
+       Ã‚·   While creating the new database, fill it with zeros from the start
            to now.  You have to make the database start at or before the least
            recent time in the other database.
 
-       Â·   Alternatively, you could use CDEF and alter unknown data to zero.
+       Ã‚·   Alternatively, you could use CDEF and alter unknown data to zero.
 
        Both methods have their pros and cons. The first method is troublesome
        and if you want to do that you have to figure it out yourself. It is
@@ -399,19 +392,18 @@ S\bSo\bom\bme\be e\bex\bxa\bam\bmp\bpl\ble\bes\bs
        Eventually, when all unknown data is removed from the RRD, you may want
        to remove this rule so that unknown data is properly displayed.
 
-       E\bEx\bxa\bam\bmp\bpl\ble\be:\b: b\bbe\bet\btt\bte\ber\br h\bha\ban\bnd\bdl\bli\bin\bng\bg o\bof\bf u\bun\bnk\bkn\bno\bow\bwn\bn d\bda\bat\bta\ba,\b, b\bby\by u\bus\bsi\bin\bng\bg t\bti\bim\bme\be
-
+   E\bEx\bxa\bam\bmp\bpl\ble\be:\b: b\bbe\bet\btt\bte\ber\br h\bha\ban\bnd\bdl\bli\bin\bng\bg o\bof\bf u\bun\bnk\bkn\bno\bow\bwn\bn d\bda\bat\bta\ba,\b, b\bby\by u\bus\bsi\bin\bng\bg t\bti\bim\bme\be
        The above example has one drawback. If you do log unknown data in your
-       database after installing your new equipment, it will also be trans-
-       lated into zero and therefore you won't see that there was a problem.
-       This is not good and what you really want to do is:
+       database after installing your new equipment, it will also be
+       translated into zero and therefore you won't see that there was a
+       problem. This is not good and what you really want to do is:
 
-       Â·   If there is unknown data, look at the time that this sample was
+       Ã‚·   If there is unknown data, look at the time that this sample was
            taken.
 
-       Â·   If the unknown value is before time xxx, make it zero.
+       Ã‚·   If the unknown value is before time xxx, make it zero.
 
-       Â·   If it is after time xxx, leave it as unknown data.
+       Ã‚·   If it is after time xxx, leave it as unknown data.
 
        This is doable: you can compare the time that the sample was taken to
        some known time. Assuming you started to monitor your device on Friday
@@ -430,9 +422,9 @@ S\bSo\bom\bme\be e\bex\bxa\bam\bmp\bpl\ble\bes\bs
        You could also dump the database and see where the data starts to be
        known. There are several other ways of doing this, just pick one.
 
-       Now we have to create the magic that allows us to process unknown val-
-       ues different depending on the time that the sample was taken.  This is
-       a three step process:
+       Now we have to create the magic that allows us to process unknown
+       values different depending on the time that the sample was taken.  This
+       is a three step process:
 
        1.  If the timestamp of the value is after 937'521'357, leave it as is.
 
@@ -477,13 +469,12 @@ S\bSo\bom\bme\be e\bex\bxa\bam\bmp\bpl\ble\bes\bs
        This looks very complex, however, as you can see, it was not too hard
        to come up with.
 
-       E\bEx\bxa\bam\bmp\bpl\ble\be:\b: P\bPr\bre\bet\bte\ben\bnd\bdi\bin\bng\bg w\bwe\bei\bir\brd\bd d\bda\bat\bta\ba i\bis\bsn\bn'\b't\bt t\bth\bhe\ber\bre\be
-
+   E\bEx\bxa\bam\bmp\bpl\ble\be:\b: P\bPr\bre\bet\bte\ben\bnd\bdi\bin\bng\bg w\bwe\bei\bir\brd\bd d\bda\bat\bta\ba i\bis\bsn\bn'\b't\bt t\bth\bhe\ber\bre\be
        Suppose you have a problem that shows up as huge spikes in your graph.
-       You know this happens and why, so you decide to work around the prob-
-       lem.  Perhaps you're using your network to do a backup at night and by
-       doing so you get almost 10mb/s while the rest of your network activity
-       does not produce numbers higher than 100kb/s.
+       You know this happens and why, so you decide to work around the
+       problem.  Perhaps you're using your network to do a backup at night and
+       by doing so you get almost 10mb/s while the rest of your network
+       activity does not produce numbers higher than 100kb/s.
 
        There are two options:
 
@@ -512,8 +503,7 @@ S\bSo\bom\bme\be e\bex\bxa\bam\bmp\bpl\ble\bes\bs
            CDEF:result=number,100000,GT,UNKN,number,IF
            CDEF:result=number,100000,GT,100000,number,IF
 
-       E\bEx\bxa\bam\bmp\bpl\ble\be:\b: w\bwo\bor\brk\bki\bin\bng\bg o\bon\bn a\ba c\bce\ber\brt\bta\bai\bin\bn t\bti\bim\bme\be s\bsp\bpa\ban\bn
-
+   E\bEx\bxa\bam\bmp\bpl\ble\be:\b: w\bwo\bor\brk\bki\bin\bng\bg o\bon\bn a\ba c\bce\ber\brt\bta\bai\bin\bn t\bti\bim\bme\be s\bsp\bpa\ban\bn
        If you want a graph that spans a few weeks, but would only want to see
        some routers' data for one week, you need to "hide" the rest of the
        time frame. Don't ask me when this would be useful, it's just here for
@@ -530,8 +520,8 @@ S\bSo\bom\bme\be e\bex\bxa\bam\bmp\bpl\ble\bes\bs
        but, as Wataru Satoh pointed out, we can use the "*" or "+" functions
        as logical AND and logical OR.
 
-       For "*", the result will be zero (false) if either one of the two oper-
-       ators is zero.  For "+", the result will only be false (0) when two
+       For "*", the result will be zero (false) if either one of the two
+       operators is zero.  For "+", the result will only be false (0) when two
        false (0) operators will be added.  Warning: *any* number not equal to
        0 will be considered "true". This means that, for instance, "-1,1,+"
        (which should be "true or true") will become FALSE ...  In other words,
@@ -551,8 +541,7 @@ S\bSo\bom\bme\be e\bex\bxa\bam\bmp\bpl\ble\bes\bs
 
        This will return an UNKNOWN if either comparison returns true.
 
-       E\bEx\bxa\bam\bmp\bpl\ble\be:\b: Y\bYo\bou\bu s\bsu\bus\bsp\bpe\bec\bct\bt t\bto\bo h\bha\bav\bve\be p\bpr\bro\bob\bbl\ble\bem\bms\bs a\ban\bnd\bd w\bwa\ban\bnt\bt t\bto\bo s\bse\bee\be u\bun\bnk\bkn\bno\bow\bwn\bn d\bda\bat\bta\ba.\b.
-
+   E\bEx\bxa\bam\bmp\bpl\ble\be:\b: Y\bYo\bou\bu s\bsu\bus\bsp\bpe\bec\bct\bt t\bto\bo h\bha\bav\bve\be p\bpr\bro\bob\bbl\ble\bem\bms\bs a\ban\bnd\bd w\bwa\ban\bnt\bt t\bto\bo s\bse\bee\be u\bun\bnk\bkn\bno\bow\bwn\bn d\bda\bat\bta\ba.\b.
        Suppose you add up the number of active users on several terminal
        servers.  If one of them doesn't give an answer (or an incorrect one)
        you get "NaN" in the database ("Not a Number") and NaN is evaluated as
@@ -594,8 +583,7 @@ S\bSo\bom\bme\be e\bex\bxa\bam\bmp\bpl\ble\bes\bs
           AREA:allusers#0000FF:combined user count
           AREA:wrongdata#FF0000:unknown data
 
-       S\bSa\bam\bme\be e\bex\bxa\bam\bmp\bpl\ble\be u\bus\bse\bef\bfu\bul\bl w\bwi\bit\bth\bh S\bST\bTA\bAC\bCK\bKe\bed\bd d\bda\bat\bta\ba:\b:
-
+   S\bSa\bam\bme\be e\bex\bxa\bam\bmp\bpl\ble\be u\bus\bse\bef\bfu\bul\bl w\bwi\bit\bth\bh S\bST\bTA\bAC\bCK\bKe\bed\bd d\bda\bat\bta\ba:\b:
        If you use stack in the previous example (as I would do) then you don't
        add up the values. Therefore, there is no relationship between the four
        values and you don't get a single value to test.  Suppose users3 would
@@ -623,9 +611,9 @@ S\bSo\bom\bme\be e\bex\bxa\bam\bmp\bpl\ble\bes\bs
        You could combine the two CDEF lines into one (we don't use "allusers")
        if you like.  But there are good reasons for writing two CDEFS:
 
-       Â·   It improves the readability of the script.
+       Ã‚·   It improves the readability of the script.
 
-       Â·   It can be used inside GPRINT to display the total number of users.
+       Ã‚·   It can be used inside GPRINT to display the total number of users.
 
        If you choose to combine them, you can substitute the "allusers" in the
        second CDEF with the part after the equal sign from the first line:
@@ -641,8 +629,7 @@ S\bSo\bom\bme\be e\bex\bxa\bam\bmp\bpl\ble\bes\bs
           GPRINT:allusers:LAST:"Current: %6.0lf\n"
 
 T\bTh\bhe\be e\bex\bxa\bam\bmp\bpl\ble\bes\bs f\bfr\bro\bom\bm t\bth\bhe\be R\bRR\bRD\bD g\bgr\bra\bap\bph\bh m\bma\ban\bnu\bua\bal\bl p\bpa\bag\bge\be
-       D\bDe\beg\bgr\bre\bee\bes\bs C\bCe\bel\bls\bsi\biu\bus\bs v\bvs\bs.\b. D\bDe\beg\bgr\bre\bee\bes\bs F\bFa\bah\bhr\bre\ben\bnh\bhe\bei\bit\bt
-
+   D\bDe\beg\bgr\bre\bee\bes\bs C\bCe\bel\bls\bsi\biu\bus\bs v\bvs\bs.\b. D\bDe\beg\bgr\bre\bee\bes\bs F\bFa\bah\bhr\bre\ben\bnh\bhe\bei\bit\bt
        To convert Celsius into Fahrenheit use the formula F=9/5*C+32
 
           rrdtool graph demo.png --title="Demo Graph" \
@@ -652,8 +639,8 @@ T\bTh\bhe\be e\bex\bxa\bam\bmp\bpl\ble\bes\bs f\bfr\bro\bom\bm t\bth\bhe\be R\bRR\bRD\bD g\bgr\bra\bap\bp
              LINE2:far#ff0000:"D. Fahrenheit\c"
 
        This example gets the DS called "exhaust" from database "demo.rrd" and
-       puts the values in variable "cel". The CDEF used is evaluated as fol-
-       lows:
+       puts the values in variable "cel". The CDEF used is evaluated as
+       follows:
 
           CDEF:far=9,5,/,cel,*,32,+
           1. push 9, push 5
@@ -666,8 +653,7 @@ T\bTh\bhe\be e\bex\bxa\bam\bmp\bpl\ble\bes\bs f\bfr\bro\bom\bm t\bth\bhe\be R\bRR\bRD\bD g\bgr\bra\bap\bp
           6. push function "plus" and process it
              the stack contains now the temperature in Fahrenheit
 
-       C\bCh\bha\ban\bng\bgi\bin\bng\bg u\bun\bnk\bkn\bno\bow\bwn\bn i\bin\bnt\bto\bo z\bze\ber\bro\bo
-
+   C\bCh\bha\ban\bng\bgi\bin\bng\bg u\bun\bnk\bkn\bno\bow\bwn\bn i\bin\bnt\bto\bo z\bze\ber\bro\bo
           rrdtool graph demo.png --title="Demo Graph" \
              DEF:idat1=interface1.rrd:ds0:AVERAGE \
              DEF:idat2=interface2.rrd:ds0:AVERAGE \
@@ -699,8 +685,7 @@ T\bTh\bhe\be e\bex\bxa\bam\bmp\bpl\ble\bes\bs f\bfr\bro\bom\bm t\bth\bhe\be R\bRR\bRD\bD g\bgr\bra\bap\bp
        process we effectively ignored unknown values. The result is multiplied
        by eight, most likely to convert bytes/s to bits/s.
 
-       I\bIn\bnf\bfi\bin\bni\bit\bty\by d\bde\bem\bmo\bo
-
+   I\bIn\bnf\bfi\bin\bni\bit\bty\by d\bde\bem\bmo\bo
           rrdtool graph example.png --title="INF demo" \
              DEF:val1=some.rrd:ds0:AVERAGE \
              DEF:val2=some.rrd:ds1:AVERAGE \
@@ -751,16 +736,15 @@ T\bTh\bhe\be e\bex\bxa\bam\bmp\bpl\ble\bes\bs f\bfr\bro\bom\bm t\bth\bhe\be R\bRR\bRD\bD g\bgr\bra\bap\bp
        background. Suppose one of val1..val4 would be unknown, in that case
        you end up with only three bars stacked on top of each other.  You
        don't want to see this because the data is only valid when all four
-       variables are valid. This is why you use the second CDEF, it will over-
-       lay the data with an AREA so the data cannot be seen anymore.
+       variables are valid. This is why you use the second CDEF, it will
+       overlay the data with an AREA so the data cannot be seen anymore.
 
        If your data can also have negative values you also need to overwrite
        the other half of your graph. This can be done in a relatively simple
        way: what you need is the "wipeout" variable and place a negative sign
        before it:  "CDEF:wipeout2=wipeout,-1,*"
 
-       F\bFi\bil\blt\bte\ber\bri\bin\bng\bg d\bda\bat\bta\ba
-
+   F\bFi\bil\blt\bte\ber\bri\bin\bng\bg d\bda\bat\bta\ba
        You may do some complex data filtering:
 
          MEDIAN FILTER: filters shot noise
@@ -773,6 +757,7 @@ T\bTh\bhe\be e\bex\bxa\bam\bmp\bpl\ble\bes\bs f\bfr\bro\bom\bm t\bth\bhe\be R\bRR\bRD\bD g\bgr\bra\bap\bp
            LINE3:median#000077:filtered
            LINE1:prev2#007700:'raw data'
 
+
          DERIVATE:
 
            DEF:var=database.rrd:traffic:AVERAGE
@@ -799,4 +784,4 @@ A\bAU\bUT\bTH\bHO\bOR\bR
 
 
 
-1.3.99909060808                   2009-02-21                   CDEFTUTORIAL(1)
+1.3.999                           2009-06-09                   CDEFTUTORIAL(1)
diff --git a/doc/librrd.1 b/doc/librrd.1
deleted file mode 100644 (file)
index 277bff9..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` ""
-.    ds C' ""
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
-..
-.    nr % 0
-.    rr F
-.\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "LIBRRD 1"
-.TH LIBRRD 1 "2009-04-20" "1.3.99909060808" "rrdtool"
-.SH "NAME"
-librrd \- RRD library functions
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\fBlibrrd\fR contains most of the functionality in \fBRRDTool\fR.  The command
-line utilities and language bindings are often just wrappers around the
-code contained in \fBlibrrd\fR.
-.PP
-This manual page documents the \fBlibrrd\fR \s-1API\s0.
-.PP
-\&\fB\s-1NOTE:\s0\fR This document is a work in progress, and should be considered
-incomplete as long as this warning persists.  For more information about
-the \fBlibrrd\fR functions, always consult the source code.
-.SH "UTILITY FUNCTIONS"
-.IX Header "UTILITY FUNCTIONS"
-.IP "\fB\f(BIrrd_random()\fB\fR" 4
-.IX Item "rrd_random()"
-Generates random numbers just like \fIrandom()\fR.  This further ensures that
-the random number generator is seeded exactly once per process.
-.IP "\fBrrd_add_ptr(void ***dest, size_t *dest_size, void *src)\fR" 4
-.IX Item "rrd_add_ptr(void ***dest, size_t *dest_size, void *src)"
-Dynamically resize the array pointed to by \f(CW\*(C`dest\*(C'\fR.  \f(CW\*(C`dest_size\*(C'\fR is a
-pointer to the current size of \f(CW\*(C`dest\*(C'\fR.  Upon successful \fIrealloc()\fR, the
-\&\f(CW\*(C`dest_size\*(C'\fR is incremented by 1 and the \f(CW\*(C`src\*(C'\fR pointer is stored at the
-end of the new \f(CW\*(C`dest\*(C'\fR.  Returns 1 on success, 0 on failure.
-.Sp
-.Vb 5
-\&    type **arr = NULL;
-\&    type *elem = "whatever";
-\&    size_t arr_size = 0;
-\&    if (!rrd_add_ptr(&arr, &arr_size, elem))
-\&        handle_failure();
-.Ve
-.IP "\fBrrd_add_strdup(char ***dest, size_t *dest_size, char *src)\fR" 4
-.IX Item "rrd_add_strdup(char ***dest, size_t *dest_size, char *src)"
-Like \f(CW\*(C`rrd_add_ptr\*(C'\fR, except adds a \f(CW\*(C`strdup\*(C'\fR of the source string.
-.Sp
-.Vb 5
-\&    char **arr = NULL;
-\&    size_t arr_size = NULL;
-\&    char *str  = "example text";
-\&    if (!rrd_add_strdup(&arr, &arr_size, str))
-\&        handle_failure();
-.Ve
-.IP "\fBrrd_free_ptrs(void ***src, size_t *cnt)\fR" 4
-.IX Item "rrd_free_ptrs(void ***src, size_t *cnt)"
-Free an array of pointers allocated by \f(CW\*(C`rrd_add_ptr\*(C'\fR or
-\&\f(CW\*(C`rrd_add_strdup\*(C'\fR.  Also frees the array pointer itself.  On return, the
-source pointer will be \s-1NULL\s0 and the count will be zero.
-.Sp
-.Vb 3
-\&    /* created as above */
-\&    rrd_free_ptrs(&arr, &arr_size);
-\&    /* here, arr == NULL && arr_size == 0 */
-.Ve
diff --git a/doc/librrd.3 b/doc/librrd.3
new file mode 100644 (file)
index 0000000..1fe5fa2
--- /dev/null
@@ -0,0 +1,253 @@
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.08)
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings.  \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+.    ds -- \(*W-
+.    ds PI pi
+.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
+.    ds L" ""
+.    ds R" ""
+.    ds C` ""
+.    ds C' ""
+'br\}
+.el\{\
+.    ds -- \|\(em\|
+.    ds PI \(*p
+.    ds L" ``
+.    ds R" ''
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD.  Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.ie \nF \{\
+.    de IX
+.    tm Index:\\$1\t\\n%\t"\\$2"
+..
+.    nr % 0
+.    rr F
+.\}
+.el \{\
+.    de IX
+..
+.\}
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
+.    \" fudge factors for nroff and troff
+.if n \{\
+.    ds #H 0
+.    ds #V .8m
+.    ds #F .3m
+.    ds #[ \f1
+.    ds #] \fP
+.\}
+.if t \{\
+.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+.    ds #V .6m
+.    ds #F 0
+.    ds #[ \&
+.    ds #] \&
+.\}
+.    \" simple accents for nroff and troff
+.if n \{\
+.    ds ' \&
+.    ds ` \&
+.    ds ^ \&
+.    ds , \&
+.    ds ~ ~
+.    ds /
+.\}
+.if t \{\
+.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+.    \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+.    \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+.    \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+.    ds : e
+.    ds 8 ss
+.    ds o a
+.    ds d- d\h'-1'\(ga
+.    ds D- D\h'-1'\(hy
+.    ds th \o'bp'
+.    ds Th \o'LP'
+.    ds ae ae
+.    ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "librrd 3"
+.TH librrd 3 "2009-09-30" "1.3.999" "rrdtool"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH "NAME"
+librrd \- RRD library functions
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+\&\fBlibrrd\fR contains most of the functionality in \fBRRDTool\fR.  The command
+line utilities and language bindings are often just wrappers around the
+code contained in \fBlibrrd\fR.
+.PP
+This manual page documents the \fBlibrrd\fR \s-1API\s0.
+.PP
+\&\fB\s-1NOTE:\s0\fR This document is a work in progress, and should be considered
+incomplete as long as this warning persists.  For more information about
+the \fBlibrrd\fR functions, always consult the source code.
+.SH "CORE FUNCTIONS"
+.IX Header "CORE FUNCTIONS"
+.IP "\fBrrd_dump_cb_r(char *filename, int opt_header, rrd_output_callback_t cb, void *user)\fR" 4
+.IX Item "rrd_dump_cb_r(char *filename, int opt_header, rrd_output_callback_t cb, void *user)"
+In some situations it is necessary to get the output of \f(CW\*(C`rrd_dump\*(C'\fR without
+writing it to a file or the standard output. In such cases an application
+can ask \fBrrd_dump_cb_r\fR to call an user-defined function each time there
+is output to be stored somewhere. This can be used, to e.g. directly feed
+an \s-1XML\s0 parser with the dumped output or transfer the resulting string
+in memory.
+.Sp
+The arguments for \fBrrd_dump_cb_r\fR are the same as for \fBrrd_dump_opt_r\fR
+except that the output filename parameter is replaced by the user-defined
+callback function and an additional parameter for the callback function
+that is passed untouched, i.e. to store information about the callback state
+needed for the user-defined callback to function properly.
+.Sp
+Recent versions of \fBrrd_dump_opt_r\fR internally use this callback mechanism
+to write their output to the file provided by the user.
+.Sp
+.Vb 7
+\&    size_t rrd_dump_opt_cb_fileout(
+\&        const void *data,
+\&        size_t len,
+\&        void *user)
+\&    {
+\&        return fwrite(data, 1, len, (FILE *)user);
+\&    }
+.Ve
+.Sp
+The associated call for \fBrrd_dump_cb_r\fR looks like
+.Sp
+.Vb 2
+\&    res = rrd_dump_cb_r(filename, opt_header,
+\&        rrd_dump_opt_cb_fileout, (void *)out_file);
+.Ve
+.Sp
+where the last parameter specifies the file handle \fBrrd_dump_opt_cb_fileout\fR
+should write to. There's no specific condition for the callback to detect
+when it is called for the first time, nor for the last time. If you require
+this for initialization and cleanup you should do those tasks before and
+after calling \fBrrd_dump_cr_r\fR respectively.
+.SH "UTILITY FUNCTIONS"
+.IX Header "UTILITY FUNCTIONS"
+.IP "\fB\f(BIrrd_random()\fB\fR" 4
+.IX Item "rrd_random()"
+Generates random numbers just like \fIrandom()\fR.  This further ensures that
+the random number generator is seeded exactly once per process.
+.IP "\fBrrd_add_ptr(void ***dest, size_t *dest_size, void *src)\fR" 4
+.IX Item "rrd_add_ptr(void ***dest, size_t *dest_size, void *src)"
+Dynamically resize the array pointed to by \f(CW\*(C`dest\*(C'\fR.  \f(CW\*(C`dest_size\*(C'\fR is a
+pointer to the current size of \f(CW\*(C`dest\*(C'\fR.  Upon successful \fIrealloc()\fR, the
+\&\f(CW\*(C`dest_size\*(C'\fR is incremented by 1 and the \f(CW\*(C`src\*(C'\fR pointer is stored at the
+end of the new \f(CW\*(C`dest\*(C'\fR.  Returns 1 on success, 0 on failure.
+.Sp
+.Vb 5
+\&    type **arr = NULL;
+\&    type *elem = "whatever";
+\&    size_t arr_size = 0;
+\&    if (!rrd_add_ptr(&arr, &arr_size, elem))
+\&        handle_failure();
+.Ve
+.IP "\fBrrd_add_strdup(char ***dest, size_t *dest_size, char *src)\fR" 4
+.IX Item "rrd_add_strdup(char ***dest, size_t *dest_size, char *src)"
+Like \f(CW\*(C`rrd_add_ptr\*(C'\fR, except adds a \f(CW\*(C`strdup\*(C'\fR of the source string.
+.Sp
+.Vb 5
+\&    char **arr = NULL;
+\&    size_t arr_size = NULL;
+\&    char *str  = "example text";
+\&    if (!rrd_add_strdup(&arr, &arr_size, str))
+\&        handle_failure();
+.Ve
+.IP "\fBrrd_free_ptrs(void ***src, size_t *cnt)\fR" 4
+.IX Item "rrd_free_ptrs(void ***src, size_t *cnt)"
+Free an array of pointers allocated by \f(CW\*(C`rrd_add_ptr\*(C'\fR or
+\&\f(CW\*(C`rrd_add_strdup\*(C'\fR.  Also frees the array pointer itself.  On return, the
+source pointer will be \s-1NULL\s0 and the count will be zero.
+.Sp
+.Vb 3
+\&    /* created as above */
+\&    rrd_free_ptrs(&arr, &arr_size);
+\&    /* here, arr == NULL && arr_size == 0 */
+.Ve
+.IP "\fBrrd_mkdir_p(const char *pathname, mode_t mode)\fR" 4
+.IX Item "rrd_mkdir_p(const char *pathname, mode_t mode)"
+Create the directory named \f(CW\*(C`pathname\*(C'\fR including all of its parent
+directories (similar to \f(CW\*(C`mkdir \-p\*(C'\fR on the command line \- see \fImkdir\fR\|(1) for
+more information). The argument \f(CW\*(C`mode\*(C'\fR specifies the permissions to use. It
+is modified by the process's \f(CW\*(C`umask\*(C'\fR. See \fImkdir\fR\|(2) for more details.
+.Sp
+The function returns 0 on success, a negative value else. In case of an error,
+\&\f(CW\*(C`errno\*(C'\fR is set accordingly. Aside from the errors documented in \fImkdir\fR\|(2),
+the function may fail with the following errors:
+.RS 4
+.IP "\fB\s-1EINVAL\s0\fR" 4
+.IX Item "EINVAL"
+\&\f(CW\*(C`pathname\*(C'\fR is \f(CW\*(C`NULL\*(C'\fR or the empty string.
+.IP "\fB\s-1ENOMEM\s0\fR" 4
+.IX Item "ENOMEM"
+Insufficient memory was available.
+.IP "\fBany error returned by \f(BIstat\fB\|(2)\fR" 4
+.IX Item "any error returned by stat"
+.RE
+.RS 4
+.Sp
+In contrast to \fImkdir\fR\|(2), the function does \fBnot\fR fail if \f(CW\*(C`pathname\*(C'\fR
+already exists and is a directory.
+.RE
index 471e6f3d664ed8fb2effa5c707a10b66ee313fba..882c061b901ab3dac0b2130429ac94dc7131f71d 100644 (file)
@@ -1,23 +1,32 @@
+<?xml version="1.0" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>librrd</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <link rev="made" href="mailto:root@localhost" />
 </head>
 
 <body style="background-color: white">
 
-<p><a name="__index__"></a></p>
+
 <!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
 <!--
 
 <ul>
 
        <li><a href="#name">NAME</a></li>
        <li><a href="#description">DESCRIPTION</a></li>
+       <li><a href="#core_functions">CORE FUNCTIONS</a></li>
        <li><a href="#utility_functions">UTILITY FUNCTIONS</a></li>
 </ul>
+
 -->
+
+
+</div>
 <!-- INDEX END -->
 
 <p>
@@ -39,24 +48,61 @@ the <strong>librrd</strong> functions, always consult the source code.</p>
 <p>
 </p>
 <hr />
-<h1><a name="utility_functions">UTILITY FUNCTIONS</a></h1>
+<h1><a name="core_functions">CORE FUNCTIONS</a></h1>
 <dl>
-<dt><strong><a name="item_rrd_random"><strong>rrd_random()</strong></a></strong><br />
-</dt>
+<dt><strong><a name="rrd_dump_cb_r" class="item"><strong>rrd_dump_cb_r(char *filename, int opt_header, rrd_output_callback_t cb, void *user)</strong></a></strong></dt>
+
 <dd>
-Generates random numbers just like random().  This further ensures that
-the random number generator is seeded exactly once per process.
+<p>In some situations it is necessary to get the output of <code>rrd_dump</code> without
+writing it to a file or the standard output. In such cases an application
+can ask <strong>rrd_dump_cb_r</strong> to call an user-defined function each time there
+is output to be stored somewhere. This can be used, to e.g. directly feed
+an XML parser with the dumped output or transfer the resulting string
+in memory.</p>
+<p>The arguments for <strong>rrd_dump_cb_r</strong> are the same as for <strong>rrd_dump_opt_r</strong>
+except that the output filename parameter is replaced by the user-defined
+callback function and an additional parameter for the callback function
+that is passed untouched, i.e. to store information about the callback state
+needed for the user-defined callback to function properly.</p>
+<p>Recent versions of <strong>rrd_dump_opt_r</strong> internally use this callback mechanism
+to write their output to the file provided by the user.</p>
+<pre>
+    size_t rrd_dump_opt_cb_fileout(
+        const void *data,
+        size_t len,
+        void *user)
+    {
+        return fwrite(data, 1, len, (FILE *)user);
+    }</pre>
+<p>The associated call for <strong>rrd_dump_cb_r</strong> looks like</p>
+<pre>
+    res = rrd_dump_cb_r(filename, opt_header,
+        rrd_dump_opt_cb_fileout, (void *)out_file);</pre>
+<p>where the last parameter specifies the file handle <strong>rrd_dump_opt_cb_fileout</strong>
+should write to. There's no specific condition for the callback to detect
+when it is called for the first time, nor for the last time. If you require
+this for initialization and cleanup you should do those tasks before and
+after calling <strong>rrd_dump_cr_r</strong> respectively.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_rrd_add_ptr"><strong>rrd_add_ptr(void ***dest, size_t *dest_size, void *src)</strong></a></strong><br />
-</dt>
+</dl>
+<p>
+</p>
+<hr />
+<h1><a name="utility_functions">UTILITY FUNCTIONS</a></h1>
+<dl>
+<dt><strong><a name="rrd_random" class="item"><strong>rrd_random()</strong></a></strong></dt>
+
 <dd>
-Dynamically resize the array pointed to by <code>dest</code>.  <code>dest_size</code> is a
-pointer to the current size of <code>dest</code>.  Upon successful realloc(), the
-<code>dest_size</code> is incremented by 1 and the <code>src</code> pointer is stored at the
-end of the new <code>dest</code>.  Returns 1 on success, 0 on failure.
+<p>Generates random numbers just like <code>random()</code>.  This further ensures that
+the random number generator is seeded exactly once per process.</p>
 </dd>
+<dt><strong><a name="rrd_add_ptr" class="item"><strong>rrd_add_ptr(void ***dest, size_t *dest_size, void *src)</strong></a></strong></dt>
+
 <dd>
+<p>Dynamically resize the array pointed to by <code>dest</code>.  <code>dest_size</code> is a
+pointer to the current size of <code>dest</code>.  Upon successful <code>realloc()</code>, the
+<code>dest_size</code> is incremented by 1 and the <code>src</code> pointer is stored at the
+end of the new <code>dest</code>.  Returns 1 on success, 0 on failure.</p>
 <pre>
     type **arr = NULL;
     type *elem = &quot;whatever&quot;;
@@ -64,13 +110,10 @@ end of the new <code>dest</code>.  Returns 1 on success, 0 on failure.
     if (!rrd_add_ptr(&amp;arr, &amp;arr_size, elem))
         handle_failure();</pre>
 </dd>
-<p></p>
-<dt><strong><a name="item_rrd_add_strdup"><strong>rrd_add_strdup(char ***dest, size_t *dest_size, char *src)</strong></a></strong><br />
-</dt>
-<dd>
-Like <a href="#item_rrd_add_ptr"><code>rrd_add_ptr</code></a>, except adds a <code>strdup</code> of the source string.
-</dd>
+<dt><strong><a name="rrd_add_strdup" class="item"><strong>rrd_add_strdup(char ***dest, size_t *dest_size, char *src)</strong></a></strong></dt>
+
 <dd>
+<p>Like <a href="#rrd_add_ptr"><code>rrd_add_ptr</code></a>, except adds a <code>strdup</code> of the source string.</p>
 <pre>
     char **arr = NULL;
     size_t arr_size = NULL;
@@ -78,21 +121,45 @@ Like <a href="#item_rrd_add_ptr"><code>rrd_add_ptr</code></a>, except adds a <co
     if (!rrd_add_strdup(&amp;arr, &amp;arr_size, str))
         handle_failure();</pre>
 </dd>
-<p></p>
-<dt><strong><a name="item_rrd_free_ptrs"><strong>rrd_free_ptrs(void ***src, size_t *cnt)</strong></a></strong><br />
-</dt>
-<dd>
-Free an array of pointers allocated by <a href="#item_rrd_add_ptr"><code>rrd_add_ptr</code></a> or
-<a href="#item_rrd_add_strdup"><code>rrd_add_strdup</code></a>.  Also frees the array pointer itself.  On return, the
-source pointer will be NULL and the count will be zero.
-</dd>
+<dt><strong><a name="rrd_free_ptrs" class="item"><strong>rrd_free_ptrs(void ***src, size_t *cnt)</strong></a></strong></dt>
+
 <dd>
+<p>Free an array of pointers allocated by <a href="#rrd_add_ptr"><code>rrd_add_ptr</code></a> or
+<a href="#rrd_add_strdup"><code>rrd_add_strdup</code></a>.  Also frees the array pointer itself.  On return, the
+source pointer will be NULL and the count will be zero.</p>
 <pre>
     /* created as above */
     rrd_free_ptrs(&amp;arr, &amp;arr_size);
     /* here, arr == NULL &amp;&amp; arr_size == 0 */</pre>
 </dd>
-<p></p></dl>
+<dt><strong><a name="rrd_mkdir_p" class="item"><strong>rrd_mkdir_p(const char *pathname, mode_t mode)</strong></a></strong></dt>
+
+<dd>
+<p>Create the directory named <code>pathname</code> including all of its parent
+directories (similar to <code>mkdir -p</code> on the command line - see <em>mkdir(1)</em> for
+more information). The argument <code>mode</code> specifies the permissions to use. It
+is modified by the process's <code>umask</code>. See <em>mkdir(2)</em> for more details.</p>
+<p>The function returns 0 on success, a negative value else. In case of an error,
+<code>errno</code> is set accordingly. Aside from the errors documented in <em>mkdir(2)</em>,
+the function may fail with the following errors:</p>
+<dl>
+<dt><strong><a name="einval" class="item"><strong>EINVAL</strong></a></strong></dt>
+
+<dd>
+<p><code>pathname</code> is <code>NULL</code> or the empty string.</p>
+</dd>
+<dt><strong><a name="enomem" class="item"><strong>ENOMEM</strong></a></strong></dt>
+
+<dd>
+<p>Insufficient memory was available.</p>
+</dd>
+<dt><strong><a name="stat" class="item"><strong>any error returned by <a href="#stat">stat(2)</a></strong></a></strong></dt>
+
+</dl>
+<p>In contrast to <em>mkdir(2)</em>, the function does <strong>not</strong> fail if <code>pathname</code>
+already exists and is a directory.</p>
+</dd>
+</dl>
 
 </body>
 
index 52cf18e4d50d9be425635d5a0ce90b133b8699a7..038746c47a3220a38f6a5cd7f18aa038f74e9412 100644 (file)
@@ -16,9 +16,52 @@ B<NOTE:> This document is a work in progress, and should be considered
 incomplete as long as this warning persists.  For more information about
 the B<librrd> functions, always consult the source code.
 
+=head1 CORE FUNCTIONS
+
+=over 4
+
+=item B<rrd_dump_cb_r(char *filename, int opt_header, rrd_output_callback_t cb, void *user)>
+
+In some situations it is necessary to get the output of C<rrd_dump> without
+writing it to a file or the standard output. In such cases an application
+can ask B<rrd_dump_cb_r> to call an user-defined function each time there
+is output to be stored somewhere. This can be used, to e.g. directly feed
+an XML parser with the dumped output or transfer the resulting string
+in memory.
+
+The arguments for B<rrd_dump_cb_r> are the same as for B<rrd_dump_opt_r>
+except that the output filename parameter is replaced by the user-defined
+callback function and an additional parameter for the callback function
+that is passed untouched, i.e. to store information about the callback state
+needed for the user-defined callback to function properly.
+
+Recent versions of B<rrd_dump_opt_r> internally use this callback mechanism
+to write their output to the file provided by the user.
+
+    size_t rrd_dump_opt_cb_fileout(
+        const void *data,
+        size_t len,
+        void *user)
+    {
+        return fwrite(data, 1, len, (FILE *)user);
+    }
+
+The associated call for B<rrd_dump_cb_r> looks like
+
+    res = rrd_dump_cb_r(filename, opt_header,
+        rrd_dump_opt_cb_fileout, (void *)out_file);
+
+where the last parameter specifies the file handle B<rrd_dump_opt_cb_fileout>
+should write to. There's no specific condition for the callback to detect
+when it is called for the first time, nor for the last time. If you require
+this for initialization and cleanup you should do those tasks before and
+after calling B<rrd_dump_cr_r> respectively.
+
+=back
+
 =head1 UTILITY FUNCTIONS
 
-=over
+=over 4
 
 =item B<rrd_random()>
 
@@ -58,4 +101,32 @@ source pointer will be NULL and the count will be zero.
     rrd_free_ptrs(&arr, &arr_size);
     /* here, arr == NULL && arr_size == 0 */
 
+=item B<rrd_mkdir_p(const char *pathname, mode_t mode)>
+
+Create the directory named C<pathname> including all of its parent
+directories (similar to C<mkdir -p> on the command line - see L<mkdir(1)> for
+more information). The argument C<mode> specifies the permissions to use. It
+is modified by the process's C<umask>. See L<mkdir(2)> for more details.
+
+The function returns 0 on success, a negative value else. In case of an error,
+C<errno> is set accordingly. Aside from the errors documented in L<mkdir(2)>,
+the function may fail with the following errors:
+
+=over 4
+
+=item B<EINVAL>
+
+C<pathname> is C<NULL> or the empty string.
+
+=item B<ENOMEM>
+
+Insufficient memory was available.
+
+=item B<any error returned by L<stat(2)>>
+
+=back
+
+In contrast to L<mkdir(2)>, the function does B<not> fail if C<pathname>
+already exists and is a directory.
+
 =back
index da82e48b203be609ca879f356535ee5fb5517412..bfc23cbc5d73b90f3fb514a145705eeb4973805f 100644 (file)
@@ -1,4 +1,4 @@
-LIBRRD(1)                           rrdtool                          LIBRRD(1)
+librrd(3)                           rrdtool                          librrd(3)
 
 
 
@@ -16,18 +16,58 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        incomplete as long as this warning persists.  For more information
        about the l\bli\bib\bbr\brr\brd\bd functions, always consult the source code.
 
+C\bCO\bOR\bRE\bE F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS
+       r\brr\brd\bd_\b_d\bdu\bum\bmp\bp_\b_c\bcb\bb_\b_r\br(\b(c\bch\bha\bar\br *\b*f\bfi\bil\ble\ben\bna\bam\bme\be,\b, i\bin\bnt\bt o\bop\bpt\bt_\b_h\bhe\bea\bad\bde\ber\br,\b, r\brr\brd\bd_\b_o\bou\but\btp\bpu\but\bt_\b_c\bca\bal\bll\blb\bba\bac\bck\bk_\b_t\bt c\bcb\bb,\b,
+       v\bvo\boi\bid\bd *\b*u\bus\bse\ber\br)\b)
+           In some situations it is necessary to get the output of "rrd_dump"
+           without writing it to a file or the standard output. In such cases
+           an application can ask r\brr\brd\bd_\b_d\bdu\bum\bmp\bp_\b_c\bcb\bb_\b_r\br to call an user-defined
+           function each time there is output to be stored somewhere. This can
+           be used, to e.g. directly feed an XML parser with the dumped output
+           or transfer the resulting string in memory.
+
+           The arguments for r\brr\brd\bd_\b_d\bdu\bum\bmp\bp_\b_c\bcb\bb_\b_r\br are the same as for r\brr\brd\bd_\b_d\bdu\bum\bmp\bp_\b_o\bop\bpt\bt_\b_r\br
+           except that the output filename parameter is replaced by the user-
+           defined callback function and an additional parameter for the
+           callback function that is passed untouched, i.e. to store
+           information about the callback state needed for the user-defined
+           callback to function properly.
+
+           Recent versions of r\brr\brd\bd_\b_d\bdu\bum\bmp\bp_\b_o\bop\bpt\bt_\b_r\br internally use this callback
+           mechanism to write their output to the file provided by the user.
+
+               size_t rrd_dump_opt_cb_fileout(
+                   const void *data,
+                   size_t len,
+                   void *user)
+               {
+                   return fwrite(data, 1, len, (FILE *)user);
+               }
+
+           The associated call for r\brr\brd\bd_\b_d\bdu\bum\bmp\bp_\b_c\bcb\bb_\b_r\br looks like
+
+               res = rrd_dump_cb_r(filename, opt_header,
+                   rrd_dump_opt_cb_fileout, (void *)out_file);
+
+           where the last parameter specifies the file handle
+           r\brr\brd\bd_\b_d\bdu\bum\bmp\bp_\b_o\bop\bpt\bt_\b_c\bcb\bb_\b_f\bfi\bil\ble\beo\bou\but\bt should write to. There's no specific
+           condition for the callback to detect when it is called for the
+           first time, nor for the last time. If you require this for
+           initialization and cleanup you should do those tasks before and
+           after calling r\brr\brd\bd_\b_d\bdu\bum\bmp\bp_\b_c\bcr\br_\b_r\br respectively.
+
 U\bUT\bTI\bIL\bLI\bIT\bTY\bY F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS
        _\br\br_\br\br_\bd\bd_\b_\b__\br\br_\ba\ba_\bn\bn_\bd\bd_\bo\bo_\bm\bm_\b(\b(_\b)\b)
            Generates random numbers just like _\br_\ba_\bn_\bd_\bo_\bm_\b(_\b).  This further ensures
-           that the random number generator is seeded exactly once per pro-
-           cess.
+           that the random number generator is seeded exactly once per
+           process.
 
        r\brr\brd\bd_\b_a\bad\bdd\bd_\b_p\bpt\btr\br(\b(v\bvo\boi\bid\bd *\b**\b**\b*d\bde\bes\bst\bt,\b, s\bsi\biz\bze\be_\b_t\bt *\b*d\bde\bes\bst\bt_\b_s\bsi\biz\bze\be,\b, v\bvo\boi\bid\bd *\b*s\bsr\brc\bc)\b)
            Dynamically resize the array pointed to by "dest".  "dest_size" is
-           a pointer to the current size of "dest".  Upon successful _\br_\be_\ba_\bl_\b-
-           _\bl_\bo_\bc_\b(_\b), the "dest_size" is incremented by 1 and the "src" pointer is
-           stored at the end of the new "dest".  Returns 1 on success, 0 on
-           failure.
+           a pointer to the current size of "dest".  Upon successful
+           _\br_\be_\ba_\bl_\bl_\bo_\bc_\b(_\b), the "dest_size" is incremented by 1 and the "src"
+           pointer is stored at the end of the new "dest".  Returns 1 on
+           success, 0 on failure.
 
                type **arr = NULL;
                type *elem = "whatever";
@@ -53,6 +93,29 @@ U\bUT\bTI\bIL\bLI\bIT\bTY\bY F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS
                rrd_free_ptrs(&arr, &arr_size);
                /* here, arr == NULL && arr_size == 0 */
 
+       r\brr\brd\bd_\b_m\bmk\bkd\bdi\bir\br_\b_p\bp(\b(c\bco\bon\bns\bst\bt c\bch\bha\bar\br *\b*p\bpa\bat\bth\bhn\bna\bam\bme\be,\b, m\bmo\bod\bde\be_\b_t\bt m\bmo\bod\bde\be)\b)
+           Create the directory named "pathname" including all of its parent
+           directories (similar to "mkdir -p" on the command line - see
+           _\bm_\bk_\bd_\bi_\br(1) for more information). The argument "mode" specifies the
+           permissions to use. It is modified by the process's "umask". See
+           _\bm_\bk_\bd_\bi_\br(2) for more details.
+
+           The function returns 0 on success, a negative value else. In case
+           of an error, "errno" is set accordingly. Aside from the errors
+           documented in _\bm_\bk_\bd_\bi_\br(2), the function may fail with the following
+           errors:
+
+           E\bEI\bIN\bNV\bVA\bAL\bL
+               "pathname" is "NULL" or the empty string.
+
+           E\bEN\bNO\bOM\bME\bEM\bM
+               Insufficient memory was available.
+
+           a\ban\bny\by e\ber\brr\bro\bor\br r\bre\bet\btu\bur\brn\bne\bed\bd b\bby\by _\bs\bs_\bt\bt_\ba\ba_\bt\bt(\b(2\b2)\b)
+
+           In contrast to _\bm_\bk_\bd_\bi_\br(2), the function does n\bno\bot\bt fail if "pathname"
+           already exists and is a directory.
+
 
 
-1.3.99909060808                   2009-04-20                         LIBRRD(1)
+1.3.999                           2009-09-30                         librrd(3)
index 5a74d62c0f4faccadd12a7bf3c05aa193a35512f..de053bd6e65e92948e23b9b481c307bddc7da7fa 100644 (file)
@@ -1,15 +1,7 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.08)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
 .de Sp \" Vertical space (when we can't use .PP)
 .if t .sp .5v
 .if n .sp
 ..
 .\" Set up some character translations and predefined strings.  \*(-- will
 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
 .ie n \{\
 .    ds -- \(*W-
 .    ds R" ''
 'br\}
 .\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
 .\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
 .\" entries marked with X<> in POD.  Of course, you'll have to process the
 .\" output yourself in some meaningful fashion.
-.if \nF \{\
+.ie \nF \{\
 .    de IX
 .    tm Index:\\$1\t\\n%\t"\\$2"
 ..
 .    nr % 0
 .    rr F
 .\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
+.el \{\
+.    de IX
+..
+.\}
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
 .\" ========================================================================
 .\"
 .IX Title "RPNTUTORIAL 1"
-.TH RPNTUTORIAL 1 "2008-12-22" "1.3.99909060808" "rrdtool"
+.TH RPNTUTORIAL 1 "2009-05-10" "1.3.999" "rrdtool"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
 .SH "NAME"
 rpntutorial \- Reading RRDtool RPN Expressions by Steve Rader
 .SH "DESCRIPTION"
index b5dd26e3ebca2d656acbf7a7a42c05b0ad646f1a..74d8754758e5d3e75038ba02525a22973e4ae005 100644 (file)
@@ -1,14 +1,18 @@
+<?xml version="1.0" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>rpntutorial</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <link rev="made" href="mailto:root@localhost" />
 </head>
 
 <body style="background-color: white">
 
-<p><a name="__index__"></a></p>
+
 <!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
 <!--
 
 <ul>
        <li><a href="#exercises">Exercises</a></li>
        <li><a href="#author">AUTHOR</a></li>
 </ul>
+
 -->
+
+
+</div>
 <!-- INDEX END -->
 
 <p>
@@ -43,14 +51,14 @@ they appear.  These operators act on the two values on the stack
 preceding them (to the left).  Read these two values on the stack
 from left to right inserting the operator in the middle.  If the
 resulting statement is true, then replace the three values from the
-stack with ``1''.  If the statement if false, replace the three values
-with ``0''.</p>
-<p>For example, think about ``2,1,GT''.  This RPN expression could be
-read as ``is two greater than one?''  The answer to that question is
-``true''.  So the three values should be replaced with ``1''.  Thus the
+stack with &quot;1&quot;.  If the statement if false, replace the three values
+with &quot;0&quot;.</p>
+<p>For example, think about &quot;2,1,GT&quot;.  This RPN expression could be
+read as &quot;is two greater than one?&quot;  The answer to that question is
+&quot;true&quot;.  So the three values should be replaced with &quot;1&quot;.  Thus the
 RPN expression 2,1,GT evaluates to 1.</p>
-<p>Now consider ``2,1,LE''.  This RPN expression could be read as ``is
-two less than or equal to one?''.   The natural response is ``no''
+<p>Now consider &quot;2,1,LE&quot;.  This RPN expression could be read as &quot;is
+two less than or equal to one?&quot;.   The natural response is &quot;no&quot;
 and thus the RPN expression 2,1,LE evaluates to 0.</p>
 <p>
 </p>
@@ -58,21 +66,21 @@ and thus the RPN expression 2,1,LE evaluates to 0.</p>
 <h1><a name="reading_the_if_operator">Reading the IF Operator</a></h1>
 <p>The IF RPN logic operator can be straightforward also.  The key
 to reading IF operators is to understand that the condition part
-of the traditional ``if X than Y else Z'' notation has *already*
+of the traditional &quot;if X than Y else Z&quot; notation has *already*
 been evaluated.  So the IF operator acts on only one value on the
 stack: the third value to the left of the IF value.  The second
-value to the left of the IF corresponds to the true (``Y'') branch.
+value to the left of the IF corresponds to the true (&quot;Y&quot;) branch.
 And the first value to the left of the IF corresponds to the false
-(``Z'') branch.  Read the RPN expression ``X,Y,Z,IF'' from left to
-right like so: ``if X then Y else Z''.</p>
-<p>For example, consider ``1,10,100,IF''.  It looks bizarre to me.
-But when I read ``if 1 then 10 else 100'' it's crystal clear: 1 is true
+(&quot;Z&quot;) branch.  Read the RPN expression &quot;X,Y,Z,IF&quot; from left to
+right like so: &quot;if X then Y else Z&quot;.</p>
+<p>For example, consider &quot;1,10,100,IF&quot;.  It looks bizarre to me.
+But when I read &quot;if 1 then 10 else 100&quot; it's crystal clear: 1 is true
 so the answer is 10.  Note that only zero is false; all other values
-are true.  ``2,20,200,IF'' (``if 2 then 20 else 200'') evaluates to 20.
-And ``0,1,2,IF'' (``if 0 then 1 else 2) evaluates to 2.</p>
+are true.  &quot;2,20,200,IF&quot; (&quot;if 2 then 20 else 200&quot;) evaluates to 20.
+And &quot;0,1,2,IF&quot; (&quot;if 0 then 1 else 2) evaluates to 2.</p>
 <p>Notice that none of the above examples really simulate the whole
-``if X then Y else Z'' statement.  This is because computer programmers
-read this statement as ``if Some Condition then Y else Z''.  So it's
+&quot;if X then Y else Z&quot; statement.  This is because computer programmers
+read this statement as &quot;if Some Condition then Y else Z&quot;.  So it's
 important to be able to read IF operators along with the LT, LE,
 GT, GE and EQ operators.</p>
 <p>
@@ -85,9 +93,9 @@ you must know the algorithm for evaluating RPN expressions:
 iterate searches from the left to the right looking for an operator.
 When it's found, apply that operator by popping the operator and some
 number of values (and by definition, not operators) off the stack.</p>
-<p>For example, the stack ``1,2,3,+,+'' gets ``2,3,+'' evaluated (as ``2+3'')
+<p>For example, the stack &quot;1,2,3,+,+&quot; gets &quot;2,3,+&quot; evaluated (as &quot;2+3&quot;)
 during the first iteration and is replaced by 5.  This results in
-the stack ``1,5,+''.  Finally, ``1,5,+'' is evaluated resulting in the
+the stack &quot;1,5,+&quot;.  Finally, &quot;1,5,+&quot; is evaluated resulting in the
 answer 6.  For convenience, it's useful to write this set of
 operations as:</p>
 <pre>
@@ -98,10 +106,10 @@ operations as:</p>
 with multiple logic operators:</p>
 <pre>
  1) 20,10,GT,10,20,IF  eval is 20,10,GT = 1     result is 1,10,20,IF</pre>
-<p>read the eval as pop ``20 is greater than 10'' so push 1</p>
+<p>read the eval as pop &quot;20 is greater than 10&quot; so push 1</p>
 <pre>
  2) 1,10,20,IF         eval is 1,10,20,IF = 10  result is 10</pre>
-<p>read pop ``if 1 then 10 else 20'' so push 10.  Only 10 is left so
+<p>read pop &quot;if 1 then 10 else 20&quot; so push 10.  Only 10 is left so
 10 is the answer.</p>
 <p>Let's read a complex RPN expression that also has the traditional
 multiplication operator:</p>
@@ -111,29 +119,29 @@ multiplication operator:</p>
  3) 0,128,8,*,IF                     eval 128,8,*       result is 1024
  4) 0,7000,1024,IF                                      result is 1024</pre>
 <p>Now let's go back to the first example of multiple logic operators,
-but replace the value 20 with the variable ``input'':</p>
+but replace the value 20 with the variable &quot;input&quot;:</p>
 <pre>
  1) input,10,GT,10,input,IF  eval is input,10,GT  ( lets call this A )</pre>
-<p>Read eval as ``if input &gt; 10 then true'' and replace ``input,10,GT''
-with ``A'':</p>
+<p>Read eval as &quot;if input &gt; 10 then true&quot; and replace &quot;input,10,GT&quot;
+with &quot;A&quot;:</p>
 <pre>
  2) A,10,input,IF            eval is A,10,input,IF</pre>
-<p>read ``if A then 10 else input''.  Now replace A with it's verbose
+<p>read &quot;if A then 10 else input&quot;.  Now replace A with it's verbose
 description again and--voila!--you have a easily readable description
 of the expression:</p>
 <pre>
  if input &gt; 10 then 10 else input</pre>
 <p>Finally, let's go back to the first most complex example and replace
-the value 128 with ``input'':</p>
+the value 128 with &quot;input&quot;:</p>
 <pre>
  1) input,8,*,7000,GT,7000,input,8,*,IF  eval input,8,*     result is A</pre>
-<p>where A is ``input * 8''</p>
+<p>where A is &quot;input * 8&quot;</p>
 <pre>
  2) A,7000,GT,7000,input,8,*,IF          eval is A,7000,GT  result is B</pre>
-<p>where B is ``if ((input * 8) &gt; 7000) then true''</p>
+<p>where B is &quot;if ((input * 8) &gt; 7000) then true&quot;</p>
 <pre>
  3) B,7000,input,8,*,IF                  eval is input,8,*  result is C</pre>
-<p>where C is ``input * 8''</p>
+<p>where C is &quot;input * 8&quot;</p>
 <pre>
  4) B,7000,C,IF</pre>
 <p>At last we have a readable decoding of the complex RPN expression with
@@ -145,7 +153,7 @@ a variable:</p>
 <hr />
 <h1><a name="exercises">Exercises</a></h1>
 <p>Exercise 1:</p>
-<p>Compute ``3,2,*,1,+ and ''3,2,1,+,*`` by hand.  Rewrite them in
+<p>Compute &quot;3,2,*,1,+ and &quot;3,2,1,+,*&quot; by hand.  Rewrite them in
 traditional notation.  Explain why they have different answers.</p>
 <p>Answer 1:</p>
 <pre>
@@ -156,7 +164,7 @@ traditional notation.  Explain why they have different answers.</p>
 <p>One may be tempted to shorten the expression</p>
 <pre>
  input,8,*,56000,GT,56000,input,*,8,IF</pre>
-<p>by removing the redundant use of ``input,8,*'' like so:</p>
+<p>by removing the redundant use of &quot;input,8,*&quot; like so:</p>
 <pre>
  input,56000,GT,56000,input,IF,8,*</pre>
 <p>Use traditional notation to show these expressions are not the same.
index aa95f7b51e2f11abd5b0a05607d92c52f3c56af6..a99fa431c101a0122b8431884239c0144440ea80 100644 (file)
@@ -19,8 +19,8 @@ R\bRe\bea\bad\bdi\bin\bng\bg C\bCo\bom\bmp\bpa\bar\bri\bis\bso\bon\bn O\bOp\bpe\ber\bra\bat\bto\bor\brs\bs
 
        For example, think about "2,1,GT".  This RPN expression could be read
        as "is two greater than one?"  The answer to that question is "true".
-       So the three values should be replaced with "1".  Thus the RPN expres-
-       sion 2,1,GT evaluates to 1.
+       So the three values should be replaced with "1".  Thus the RPN
+       expression 2,1,GT evaluates to 1.
 
        Now consider "2,1,LE".  This RPN expression could be read as "is two
        less than or equal to one?".   The natural response is "no" and thus
@@ -33,8 +33,8 @@ R\bRe\bea\bad\bdi\bin\bng\bg t\bth\bhe\be I\bIF\bF O\bOp\bpe\ber\bra\bat\bto\bor\br
        So the IF operator acts on only one value on the stack: the third value
        to the left of the IF value.  The second value to the left of the IF
        corresponds to the true ("Y") branch.  And the first value to the left
-       of the IF corresponds to the false ("Z") branch.  Read the RPN expres-
-       sion "X,Y,Z,IF" from left to right like so: "if X then Y else Z".
+       of the IF corresponds to the false ("Z") branch.  Read the RPN
+       expression "X,Y,Z,IF" from left to right like so: "if X then Y else Z".
 
        For example, consider "1,10,100,IF".  It looks bizarre to me.  But when
        I read "if 1 then 10 else 100" it's crystal clear: 1 is true so the
@@ -49,12 +49,12 @@ R\bRe\bea\bad\bdi\bin\bng\bg t\bth\bhe\be I\bIF\bF O\bOp\bpe\ber\bra\bat\bto\bor\br
        operators.
 
 S\bSo\bom\bme\be E\bEx\bxa\bam\bmp\bpl\ble\bes\bs
-       While compound expressions can look overly complex, they can be consid-
-       ered elegantly simple.  To quickly comprehend RPN expressions, you must
-       know the algorithm for evaluating RPN expressions: iterate searches
-       from the left to the right looking for an operator.  When it's found,
-       apply that operator by popping the operator and some number of values
-       (and by definition, not operators) off the stack.
+       While compound expressions can look overly complex, they can be
+       considered elegantly simple.  To quickly comprehend RPN expressions,
+       you must know the algorithm for evaluating RPN expressions: iterate
+       searches from the left to the right looking for an operator.  When it's
+       found, apply that operator by popping the operator and some number of
+       values (and by definition, not operators) off the stack.
 
        For example, the stack "1,2,3,+,+" gets "2,3,+" evaluated (as "2+3")
        during the first iteration and is replaced by 5.  This results in the
@@ -65,8 +65,8 @@ S\bSo\bom\bme\be E\bEx\bxa\bam\bmp\bpl\ble\bes\bs
         2) 1,5,+        eval is 1,5,+ = 6    result is 6
         3) 6
 
-       Let's use that notation to conveniently solve some complex RPN expres-
-       sions with multiple logic operators:
+       Let's use that notation to conveniently solve some complex RPN
+       expressions with multiple logic operators:
 
         1) 20,10,GT,10,20,IF  eval is 20,10,GT = 1     result is 1,10,20,IF
 
@@ -77,8 +77,8 @@ S\bSo\bom\bme\be E\bEx\bxa\bam\bmp\bpl\ble\bes\bs
        read pop "if 1 then 10 else 20" so push 10.  Only 10 is left so 10 is
        the answer.
 
-       Let's read a complex RPN expression that also has the traditional mul-
-       tiplication operator:
+       Let's read a complex RPN expression that also has the traditional
+       multiplication operator:
 
         1) 128,8,*,7000,GT,7000,128,8,*,IF  eval 128,8,*       result is 1024
         2) 1024,7000,GT,7000,128,8,*,IF     eval 1024,7000,GT  result is 0
@@ -126,8 +126,8 @@ S\bSo\bom\bme\be E\bEx\bxa\bam\bmp\bpl\ble\bes\bs
 E\bEx\bxe\ber\brc\bci\bis\bse\bes\bs
        Exercise 1:
 
-       Compute "3,2,*,1,+ and "3,2,1,+,*" by hand.  Rewrite them in tradi-
-       tional notation.  Explain why they have different answers.
+       Compute "3,2,*,1,+ and "3,2,1,+,*" by hand.  Rewrite them in
+       traditional notation.  Explain why they have different answers.
 
        Answer 1:
 
@@ -187,4 +187,4 @@ A\bAU\bUT\bTH\bHO\bOR\bR
 
 
 
-1.3.99909060808                   2008-12-22                    RPNTUTORIAL(1)
+1.3.999                           2009-05-10                    RPNTUTORIAL(1)
index 5c10b1008aa6e55042af6db52b9f432c18778e97..a5d52458fa668f2e28476672ae5c49705723e0f6 100644 (file)
@@ -1,15 +1,7 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.08)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
 .de Sp \" Vertical space (when we can't use .PP)
 .if t .sp .5v
 .if n .sp
 ..
 .\" Set up some character translations and predefined strings.  \*(-- will
 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
 .ie n \{\
 .    ds -- \(*W-
 .    ds R" ''
 'br\}
 .\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
 .\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
 .\" entries marked with X<> in POD.  Of course, you'll have to process the
 .\" output yourself in some meaningful fashion.
-.if \nF \{\
+.ie \nF \{\
 .    de IX
 .    tm Index:\\$1\t\\n%\t"\\$2"
 ..
 .    nr % 0
 .    rr F
 .\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
+.el \{\
+.    de IX
+..
+.\}
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
 .\" ========================================================================
 .\"
 .IX Title "RRD-BEGINNERS 1"
-.TH RRD-BEGINNERS 1 "2008-03-15" "1.3.99909060808" "rrdtool"
+.TH RRD-BEGINNERS 1 "2009-09-24" "1.3.999" "rrdtool"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
 .SH "NAME"
 rrd\-beginners \- RRDtool Beginners' Guide
 .SH "SYNOPSIS"
@@ -143,7 +142,7 @@ databases. With help of an example, it explains the structure of RRDtool
 database. This is followed by an overview of the \*(L"graph\*(R" feature of RRDtool.
 At the end, it has sample scripts that illustrate the
 usage/wrapping of RRDtool within Shell or Perl scripts.
-.Sh "What makes RRDtool so special?"
+.SS "What makes RRDtool so special?"
 .IX Subsection "What makes RRDtool so special?"
 RRDtool is \s-1GNU\s0 licensed software developed by Tobias Oetiker, a system
 manager at the Swiss Federal Institute of Technology. Though it is a
@@ -181,7 +180,7 @@ various operations on \s-1RRD\s0 databases. This command set can be accessed
 from the command line, as well as from Shell or Perl scripts. The
 scripts act as wrappers for accessing data stored in RRDtool
 databases.
-.Sh "Understanding by an example"
+.SS "Understanding by an example"
 .IX Subsection "Understanding by an example"
 The structure of an \s-1RRD\s0 database is different than other linear databases.
 Other databases define tables with columns, and many other parameters. These
@@ -307,7 +306,7 @@ individual \s-1RRA\s0 will save data for all the DSs in the database. For
 example, if a database has 3 DSs and daily, weekly, monthly, and
 yearly RRAs are declared, then each \s-1RRA\s0 will hold data from all 3 data
 sources.
-.Sh "Graphical Magic"
+.SS "Graphical Magic"
 .IX Subsection "Graphical Magic"
 Another important feature of RRDtool is its ability to create
 graphs. The \*(L"graph\*(R" command uses the \*(L"fetch\*(R" command internally to
@@ -343,7 +342,7 @@ plotted in the order they are defined in the graph command. Therefore
 care must be taken to define \s-1STACK\s0 only after defining \s-1AREA/LINE\s0. It
 is also possible to put formatted comments within the graph.  Detailed
 instructions can be found in the graph manual.
-.Sh "Wrapping RRDtool within Shell/Perl script"
+.SS "Wrapping RRDtool within Shell/Perl script"
 .IX Subsection "Wrapping RRDtool within Shell/Perl script"
 After understanding RRDtool it is now a time to actually use RRDtool
 in scripts. Tasks involved in network management are data collection,
@@ -355,20 +354,20 @@ generation is done using Perl scripts. These scripts are shown below:
 \fIShell script (collects data, updates database)\fR
 .IX Subsection "Shell script (collects data, updates database)"
 .PP
-.Vb 14
+.Vb 10
 \& #!/bin/sh
 \& a=0
 \& while [ "$a" == 0 ]; do
 \& snmpwalk \-c public 192.168.1.250 hrSWRunPerfMem > snmp_reply
-\&     total_mem=`awk 'BEGIN {tot_mem=0}
+\&     total_mem=\`awk \*(AqBEGIN {tot_mem=0}
 \&                           { if ($NF == "KBytes")
 \&                             {tot_mem=tot_mem+$(NF\-1)}
 \&                           }
-\&                     END {print tot_mem}' snmp_reply`
+\&                     END {print tot_mem}\*(Aq snmp_reply\`
 \&     # I can use N as a replacement for the current time
 \&     rrdtool update target.rrd N:$total_mem
 \&     # sleep until the next 300 seconds are full
-\&     perl \-e 'sleep 300 \- time % 300'
+\&     perl \-e \*(Aqsleep 300 \- time % 300\*(Aq
 \& done # end of while loop
 .Ve
 .PP
@@ -379,18 +378,14 @@ generation is done using Perl scripts. These scripts are shown below:
 \& #!/usr/bin/perl \-w
 \& # This script fetches data from target.rrd, creates a graph of memory
 \& # consumption on the target (Dual P3 Processor 1 GHz, 656 MB RAM)
-.Ve
-.PP
-.Vb 6
+\&
 \& # call the RRD perl module
 \& use lib qw( /usr/local/rrdtool\-1.0.41/lib/perl ../lib/perl );
 \& use RRDs;
 \& my $cur_time = time();                # set current time
 \& my $end_time = $cur_time \- 86400;     # set end time to 24 hours ago
 \& my $start_time = $end_time \- 2592000; # set start 30 days in the past
-.Ve
-.PP
-.Vb 58
+\&
 \& # fetch average values from the RRD database between start and end time
 \& my ($start,$step,$ds_names,$data) =
 \&     RRDs::fetch("target.rrd", "AVERAGE",
@@ -422,26 +417,26 @@ generation is done using Perl scripts. These scripts are shown below:
 \& # calculate the average of the array
 \& my $tot_mem_ave = $tot_mem_sum/($count);
 \& # create the graph
-\& RRDs::graph ("/images/mem_$count.png",   \e
-\&             "\-\-title= Memory Usage",    \e
-\&             "\-\-vertical\-label=Memory Consumption (MB)", \e
-\&             "\-\-start=$start_time",      \e
-\&             "\-\-end=$end_time",          \e
-\&             "\-\-color=BACK#CCCCCC",      \e
-\&             "\-\-color=CANVAS#CCFFFF",    \e
-\&             "\-\-color=SHADEB#9999CC",    \e
-\&             "\-\-height=125",             \e
-\&             "\-\-upper\-limit=656",        \e
-\&             "\-\-lower\-limit=0",          \e
-\&             "\-\-rigid",                  \e
-\&             "\-\-base=1024",              \e
-\&             "DEF:tot_mem=target.rrd:mem:AVERAGE", \e
-\&             "CDEF:tot_mem_cor=tot_mem,0,671744,LIMIT,UN,0,tot_mem,IF,1024,/",\e
-\&             "CDEF:machine_mem=tot_mem,656,+,tot_mem,\-",\e
-\&             "COMMENT:Memory Consumption between $start_time",\e
-\&             "COMMENT:    and $end_time                     ",\e
-\&             "HRULE:656#000000:Maximum Available Memory \- 656 MB",\e
-\&             "AREA:machine_mem#CCFFFF:Memory Unused",   \e
+\& RRDs::graph ("/images/mem_$count.png",   
+\&             "\-\-title= Memory Usage",    
+\&             "\-\-vertical\-label=Memory Consumption (MB)", 
+\&             "\-\-start=$start_time",      
+\&             "\-\-end=$end_time",          
+\&             "\-\-color=BACK#CCCCCC",      
+\&             "\-\-color=CANVAS#CCFFFF",    
+\&             "\-\-color=SHADEB#9999CC",    
+\&             "\-\-height=125",             
+\&             "\-\-upper\-limit=656",        
+\&             "\-\-lower\-limit=0",          
+\&             "\-\-rigid",                  
+\&             "\-\-base=1024",              
+\&             "DEF:tot_mem=target.rrd:mem:AVERAGE", 
+\&             "CDEF:tot_mem_cor=tot_mem,0,671744,LIMIT,UN,0,tot_mem,IF,1024,/",
+\&             "CDEF:machine_mem=tot_mem,656,+,tot_mem,\-",
+\&             "COMMENT:Memory Consumption between $start_time",
+\&             "COMMENT:    and $end_time                     ",
+\&             "HRULE:656#000000:Maximum Available Memory \- 656 MB",
+\&             "AREA:machine_mem#CCFFFF:Memory Unused",   
 \&             "AREA:tot_mem_cor#6699CC:Total memory consumed in MB");
 \& my $err=RRDs::error;
 \& if ($err) {print "problem generating the graph: $err\en";}
index fde0164e1e02d164a4bbcd8239e60f11727b510f..bd5d2a85c23f95634dd9e3c10def4d796e17c386 100644 (file)
@@ -1,14 +1,18 @@
+<?xml version="1.0" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>rrd-beginners</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <link rev="made" href="mailto:root@localhost" />
 </head>
 
 <body style="background-color: white">
 
-<p><a name="__index__"></a></p>
+
 <!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
 <!--
 
 <ul>
 
        <li><a href="#author">AUTHOR</a></li>
 </ul>
+
 -->
+
+
+</div>
 <!-- INDEX END -->
 
 <p>
@@ -51,7 +59,7 @@
 <p>This manual is an attempt to assist beginners in understanding the concepts
 of RRDtool. It sheds a light on differences between RRDtool and other
 databases. With help of an example, it explains the structure of RRDtool
-database. This is followed by an overview of the ``graph'' feature of RRDtool.
+database. This is followed by an overview of the &quot;graph&quot; feature of RRDtool.
 At the end, it has sample scripts that illustrate the
 usage/wrapping of RRDtool within Shell or Perl scripts.</p>
 <p>
@@ -62,33 +70,34 @@ manager at the Swiss Federal Institute of Technology. Though it is a
 database, there are distinct differences between RRDtool databases and other
 databases as listed below:</p>
 <ul>
-<li></li>
-RRDtool stores data; that makes it a back-end tool. The RRDtool command set
+<li>
+<p>RRDtool stores data; that makes it a back-end tool. The RRDtool command set
 allows the creation of graphs; that makes it a front-end tool as well. Other
-databases just store data and can not create graphs.
-<p></p>
-<li></li>
-In case of linear databases, new data gets appended at the bottom of
+databases just store data and can not create graphs.</p>
+</li>
+<li>
+<p>In case of linear databases, new data gets appended at the bottom of
 the database table. Thus its size keeps on increasing, whereas the size of
 an RRDtool database is determined at creation time. Imagine an RRDtool
 database as the perimeter of a circle. Data is added along the
 perimeter. When new data reaches the starting point, it overwrites
 existing data. This way, the size of an RRDtool database always
-remains constant. The name ``Round Robin'' stems from this behavior.
-<p></p>
-<li></li>
-Other databases store the values as supplied. RRDtool can be configured to
+remains constant. The name &quot;Round Robin&quot; stems from this behavior.</p>
+</li>
+<li>
+<p>Other databases store the values as supplied. RRDtool can be configured to
 calculate the rate of change from the previous to the current value and
-store this information instead.
-<p></p>
-<li></li>
-Other databases get updated when values are supplied. The RRDtool database
+store this information instead.</p>
+</li>
+<li>
+<p>Other databases get updated when values are supplied. The RRDtool database
 is structured in such a way that it needs data at predefined time
 intervals. If it does not get a new value during the interval, it stores an
 UNKNOWN value for that interval. So, when using the RRDtool database, it is
 imperative to use scripts that run at regular intervals to ensure a constant
-data flow to update the RRDtool database.
-<p></p></ul>
+data flow to update the RRDtool database.</p>
+</li>
+</ul>
 <p>RRDtool is designed to store time series of data. With every data
 update, an associated time stamp is stored. Time is always expressed
 in seconds passed since epoch (01-01-1970). RRDtool can be installed
@@ -121,7 +130,7 @@ best explained with an example.</p>
          DS:mem:GAUGE:600:0:671744 \
          RRA:AVERAGE:0.5:12:24 \
          RRA:AVERAGE:0.5:288:31</pre>
-<p>This example creates a database named <em>target.rrd</em>. Start time
+<p>This example creates a database named <em class="file">target.rrd</em>. Start time
 (1'023'654'125) is specified in total number of seconds since epoch
 (time in seconds since 01-01-1970). While updating the database, the
 update time is also specified.  This update time MUST be large (later)
@@ -208,7 +217,7 @@ sources.</p>
 </p>
 <h2><a name="graphical_magic">Graphical Magic</a></h2>
 <p>Another important feature of RRDtool is its ability to create
-graphs. The ``graph'' command uses the ``fetch'' command internally to
+graphs. The &quot;graph&quot; command uses the &quot;fetch&quot; command internally to
 retrieve values from the database. With the retrieved values it draws
 graphs as defined by the parameters supplied on the command line. A
 single graph can show different DS (Data Sources) from a database. It
@@ -227,14 +236,14 @@ for retrieving the values? RRDtool looks at several things when making
 its choice. First it makes sure that the RRA covers as much of the
 graphing time frame as possible. Second it looks at the resolution of
 the RRA compared to the resolution of the graph. It tries to find one
-which has the same or higher better resolution. With the ``-r'' option
+which has the same or higher better resolution. With the &quot;-r&quot; option
 you can force RRDtool to assume a different resolution than the one
 calculated from the pixel width of the graph.</p>
 <p>Values of different variables can be presented in 5 different shapes
 in a graph - AREA, LINE1, LINE2, LINE3, and STACK. AREA is represented
 by a solid colored area with values as the boundary of this
 area. LINE1/2/3 (increasing width) are just plain lines representing
-the values. STACK is also an area but it is ``stack''ed on top AREA or
+the values. STACK is also an area but it is &quot;stack&quot;ed on top AREA or
 LINE1/2/3. Another important thing to note is that variables are
 plotted in the order they are defined in the graph command. Therefore
 care must be taken to define STACK only after defining AREA/LINE. It
@@ -313,26 +322,26 @@ generation is done using Perl scripts. These scripts are shown below:</p>
  # calculate the average of the array
  my $tot_mem_ave = $tot_mem_sum/($count);
  # create the graph
- RRDs::graph (&quot;/images/mem_$count.png&quot;,   \
-             &quot;--title= Memory Usage&quot;,    \
-             &quot;--vertical-label=Memory Consumption (MB)&quot;, \
-             &quot;--start=$start_time&quot;,      \
-             &quot;--end=$end_time&quot;,          \
-             &quot;--color=BACK#CCCCCC&quot;,      \
-             &quot;--color=CANVAS#CCFFFF&quot;,    \
-             &quot;--color=SHADEB#9999CC&quot;,    \
-             &quot;--height=125&quot;,             \
-             &quot;--upper-limit=656&quot;,        \
-             &quot;--lower-limit=0&quot;,          \
-             &quot;--rigid&quot;,                  \
-             &quot;--base=1024&quot;,              \
-             &quot;DEF:tot_mem=target.rrd:mem:AVERAGE&quot;, \
-             &quot;CDEF:tot_mem_cor=tot_mem,0,671744,LIMIT,UN,0,tot_mem,IF,1024,/&quot;,\
-             &quot;CDEF:machine_mem=tot_mem,656,+,tot_mem,-&quot;,\
-             &quot;COMMENT:Memory Consumption between $start_time&quot;,\
-             &quot;COMMENT:    and $end_time                     &quot;,\
-             &quot;HRULE:656#000000:Maximum Available Memory - 656 MB&quot;,\
-             &quot;AREA:machine_mem#CCFFFF:Memory Unused&quot;,   \
+ RRDs::graph (&quot;/images/mem_$count.png&quot;,   
+             &quot;--title= Memory Usage&quot;,    
+             &quot;--vertical-label=Memory Consumption (MB)&quot;, 
+             &quot;--start=$start_time&quot;,      
+             &quot;--end=$end_time&quot;,          
+             &quot;--color=BACK#CCCCCC&quot;,      
+             &quot;--color=CANVAS#CCFFFF&quot;,    
+             &quot;--color=SHADEB#9999CC&quot;,    
+             &quot;--height=125&quot;,             
+             &quot;--upper-limit=656&quot;,        
+             &quot;--lower-limit=0&quot;,          
+             &quot;--rigid&quot;,                  
+             &quot;--base=1024&quot;,              
+             &quot;DEF:tot_mem=target.rrd:mem:AVERAGE&quot;, 
+             &quot;CDEF:tot_mem_cor=tot_mem,0,671744,LIMIT,UN,0,tot_mem,IF,1024,/&quot;,
+             &quot;CDEF:machine_mem=tot_mem,656,+,tot_mem,-&quot;,
+             &quot;COMMENT:Memory Consumption between $start_time&quot;,
+             &quot;COMMENT:    and $end_time                     &quot;,
+             &quot;HRULE:656#000000:Maximum Available Memory - 656 MB&quot;,
+             &quot;AREA:machine_mem#CCFFFF:Memory Unused&quot;,   
              &quot;AREA:tot_mem_cor#6699CC:Total memory consumed in MB&quot;);
  my $err=RRDs::error;
  if ($err) {print &quot;problem generating the graph: $err\n&quot;;}
index 5ac79973f6d728864867c30dedb3f53289667cfe..1c285157b70bbd84808c70e9506fd7e26fd4ab8a 100644 (file)
@@ -292,26 +292,26 @@ generation is done using Perl scripts. These scripts are shown below:
  # calculate the average of the array
  my $tot_mem_ave = $tot_mem_sum/($count);
  # create the graph
- RRDs::graph ("/images/mem_$count.png",   \
-             "--title= Memory Usage",    \
-             "--vertical-label=Memory Consumption (MB)", \
-             "--start=$start_time",      \
-             "--end=$end_time",          \
-             "--color=BACK#CCCCCC",      \
-             "--color=CANVAS#CCFFFF",    \
-             "--color=SHADEB#9999CC",    \
-             "--height=125",             \
-             "--upper-limit=656",       \
-             "--lower-limit=0",          \
-             "--rigid",                  \
-             "--base=1024",              \
-             "DEF:tot_mem=target.rrd:mem:AVERAGE", \
-             "CDEF:tot_mem_cor=tot_mem,0,671744,LIMIT,UN,0,tot_mem,IF,1024,/",\
-             "CDEF:machine_mem=tot_mem,656,+,tot_mem,-",\
-             "COMMENT:Memory Consumption between $start_time",\
-             "COMMENT:    and $end_time                     ",\
-             "HRULE:656#000000:Maximum Available Memory - 656 MB",\
-             "AREA:machine_mem#CCFFFF:Memory Unused",   \
+ RRDs::graph ("/images/mem_$count.png",   
+             "--title= Memory Usage",    
+             "--vertical-label=Memory Consumption (MB)", 
+             "--start=$start_time",      
+             "--end=$end_time",          
+             "--color=BACK#CCCCCC",      
+             "--color=CANVAS#CCFFFF",    
+             "--color=SHADEB#9999CC",    
+             "--height=125",             
+             "--upper-limit=656",       
+             "--lower-limit=0",          
+             "--rigid",                  
+             "--base=1024",              
+             "DEF:tot_mem=target.rrd:mem:AVERAGE", 
+             "CDEF:tot_mem_cor=tot_mem,0,671744,LIMIT,UN,0,tot_mem,IF,1024,/",
+             "CDEF:machine_mem=tot_mem,656,+,tot_mem,-",
+             "COMMENT:Memory Consumption between $start_time",
+             "COMMENT:    and $end_time                     ",
+             "HRULE:656#000000:Maximum Available Memory - 656 MB",
+             "AREA:machine_mem#CCFFFF:Memory Unused",   
              "AREA:tot_mem_cor#6699CC:Total memory consumed in MB");
  my $err=RRDs::error;
  if ($err) {print "problem generating the graph: $err\n";}
index 1db47e3d14350aec61c5802226b82ba5a2e16e83..474912a99bfd1c14366262532a59bbc33fcebdd8 100644 (file)
@@ -9,56 +9,54 @@ S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
        Helping new RRDtool users to understand the basics of RRDtool
 
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
-       This manual is an attempt to assist beginners in understanding the con-
-       cepts of RRDtool. It sheds a light on differences between RRDtool and
-       other databases. With help of an example, it explains the structure of
-       RRDtool database. This is followed by an overview of the "graph" fea-
-       ture of RRDtool.  At the end, it has sample scripts that illustrate the
-       usage/wrapping of RRDtool within Shell or Perl scripts.
-
-       W\bWh\bha\bat\bt m\bma\bak\bke\bes\bs R\bRR\bRD\bDt\bto\boo\bol\bl s\bso\bo s\bsp\bpe\bec\bci\bia\bal\bl?\b?
-
+       This manual is an attempt to assist beginners in understanding the
+       concepts of RRDtool. It sheds a light on differences between RRDtool
+       and other databases. With help of an example, it explains the structure
+       of RRDtool database. This is followed by an overview of the "graph"
+       feature of RRDtool.  At the end, it has sample scripts that illustrate
+       the usage/wrapping of RRDtool within Shell or Perl scripts.
+
+   W\bWh\bha\bat\bt m\bma\bak\bke\bes\bs R\bRR\bRD\bDt\bto\boo\bol\bl s\bso\bo s\bsp\bpe\bec\bci\bia\bal\bl?\b?
        RRDtool is GNU licensed software developed by Tobias Oetiker, a system
        manager at the Swiss Federal Institute of Technology. Though it is a
        database, there are distinct differences between RRDtool databases and
        other databases as listed below:
 
-       Â·   RRDtool stores data; that makes it a back-end tool. The RRDtool
+       Ã‚·   RRDtool stores data; that makes it a back-end tool. The RRDtool
            command set allows the creation of graphs; that makes it a front-
-           end tool as well. Other databases just store data and can not cre-
-           ate graphs.
+           end tool as well. Other databases just store data and can not
+           create graphs.
 
-       Â·   In case of linear databases, new data gets appended at the bottom
+       Ã‚·   In case of linear databases, new data gets appended at the bottom
            of the database table. Thus its size keeps on increasing, whereas
            the size of an RRDtool database is determined at creation time.
            Imagine an RRDtool database as the perimeter of a circle. Data is
            added along the perimeter. When new data reaches the starting
-           point, it overwrites existing data. This way, the size of an RRD-
-           tool database always remains constant. The name "Round Robin" stems
-           from this behavior.
+           point, it overwrites existing data. This way, the size of an
+           RRDtool database always remains constant. The name "Round Robin"
+           stems from this behavior.
 
-       Â·   Other databases store the values as supplied. RRDtool can be con-
-           figured to calculate the rate of change from the previous to the
+       Â·   Other databases store the values as supplied. RRDtool can be
+           configured to calculate the rate of change from the previous to the
            current value and store this information instead.
 
-       Â·   Other databases get updated when values are supplied. The RRDtool
-           database is structured in such a way that it needs data at prede-
-           fined time intervals. If it does not get a new value during the
-           interval, it stores an UNKNOWN value for that interval. So, when
-           using the RRDtool database, it is imperative to use scripts that
-           run at regular intervals to ensure a constant data flow to update
-           the RRDtool database.
+       Ã‚·   Other databases get updated when values are supplied. The RRDtool
+           database is structured in such a way that it needs data at
+           predefined time intervals. If it does not get a new value during
+           the interval, it stores an UNKNOWN value for that interval. So,
+           when using the RRDtool database, it is imperative to use scripts
+           that run at regular intervals to ensure a constant data flow to
+           update the RRDtool database.
 
        RRDtool is designed to store time series of data. With every data
        update, an associated time stamp is stored. Time is always expressed in
        seconds passed since epoch (01-01-1970). RRDtool can be installed on
-       Unix as well as Windows. It comes with a command set to carry out vari-
-       ous operations on RRD databases. This command set can be accessed from
-       the command line, as well as from Shell or Perl scripts. The scripts
-       act as wrappers for accessing data stored in RRDtool databases.
-
-       U\bUn\bnd\bde\ber\brs\bst\bta\ban\bnd\bdi\bin\bng\bg b\bby\by a\ban\bn e\bex\bxa\bam\bmp\bpl\ble\be
+       Unix as well as Windows. It comes with a command set to carry out
+       various operations on RRD databases. This command set can be accessed
+       from the command line, as well as from Shell or Perl scripts. The
+       scripts act as wrappers for accessing data stored in RRDtool databases.
 
+   U\bUn\bnd\bde\ber\brs\bst\bta\ban\bnd\bdi\bin\bng\bg b\bby\by a\ban\bn e\bex\bxa\bam\bmp\bpl\ble\be
        The structure of an RRD database is different than other linear
        databases.  Other databases define tables with columns, and many other
        parameters. These definitions sometimes are very complex, especially in
@@ -69,8 +67,9 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        also defined. Because of its structure, the definition of an RRDtool
        database also includes a provision to specify specific actions to take
        in the absence of update values. Data Source (DS), heartbeat, Date
-       Source Type (DST), Round Robin Archive (RRA), and Consolidation Func-
-       tion (CF) are some of the terminologies related to RRDtool databases.
+       Source Type (DST), Round Robin Archive (RRA), and Consolidation
+       Function (CF) are some of the terminologies related to RRDtool
+       databases.
 
        The structure of a database and the terminology associated with it can
        be best explained with an example.
@@ -104,9 +103,9 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        (\b(P\bPD\bDP\bP)\b). In our example mentioned above, a new PDP is generated every 300
        seconds.
 
-       Note, that if you do NOT supply new datapoints exactly every 300 sec-
-       onds, this is not a problem, RRDtool will interpolate the data accord-
-       ingly.
+       Note, that if you do NOT supply new datapoints exactly every 300
+       seconds, this is not a problem, RRDtool will interpolate the data
+       accordingly.
 
        D\bDS\bST\bT (Data Source Type) defines the type of the DS. It can be COUNTER,
        DERIVE, ABSOLUTE, GAUGE. A DS declared as COUNTER will save the rate of
@@ -122,9 +121,9 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        Thus it just stores the current value divided by the step interval (300
        seconds in our example). GAUGE does not save the rate of change. It
        saves the actual value itself. There are no divisions or calculations.
-       Memory consumption in a server is a typical example of gauge. The dif-
-       ference between the different types DSTs can be explained better with
-       the following example:
+       Memory consumption in a server is a typical example of gauge. The
+       difference between the different types DSTs can be explained better
+       with the following example:
 
         Values       = 300, 600, 900, 1200
         Step         = 300 seconds
@@ -133,23 +132,23 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
         ABSOLUTE DS  =    1,  2,   3,    4
         GAUGE DS     = 300, 600, 900, 1200
 
-       The next parameter is h\bhe\bea\bar\brt\btb\bbe\bea\bat\bt. In our example, heartbeat is 600 sec-
-       onds. If the database does not get a new PDP within 300 seconds, it
+       The next parameter is h\bhe\bea\bar\brt\btb\bbe\bea\bat\bt. In our example, heartbeat is 600
+       seconds. If the database does not get a new PDP within 300 seconds, it
        will wait for another 300 seconds (total 600 seconds).  If it doesn't
        receive any PDP within 600 seconds, it will save an UNKNOWN value into
        the database. This UNKNOWN value is a special feature of RRDtool - it
        is much better than to assume a missing value was 0 (zero) or any other
-       number which might also be a valid data value.  For example, the traf-
-       fic flow counter on a router keeps increasing. Lets say, a value is
+       number which might also be a valid data value.  For example, the
+       traffic flow counter on a router keeps increasing. Lets say, a value is
        missed for an interval and 0 is stored instead of UNKNOWN. Now when the
        next value becomes available, it will calculate the difference between
        the current value and the previous value (0) which is not correct. So,
        inserting the value UNKNOWN makes much more sense here.
 
-       The next two parameters are the minimum and maximum value, respec-
-       tively. If the variable to be stored has predictable maximum and mini-
-       mum values, this should be specified here. Any update value falling out
-       of this range will be stored as UNKNOWN.
+       The next two parameters are the minimum and maximum value,
+       respectively. If the variable to be stored has predictable maximum and
+       minimum values, this should be specified here. Any update value falling
+       out of this range will be stored as UNKNOWN.
 
        The next line declares a round robin archive (RRA). The syntax for
        declaring an RRA is
@@ -164,58 +163,56 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
 
        Lets have a look at the example above. For the first RRA, 12 (steps)
        PDPs (DS variables) are AVERAGEed (CF) to form one CDP. 24 (rows) of
-       theses CDPs are archived. Each PDP occurs at 300 seconds. 12 PDPs rep-
-       resent 12 times 300 seconds which is 1 hour. It means 1 CDP (which is
-       equal to 12 PDPs) represents data worth 1 hour. 24 such CDPs represent
-       1 day (1 hour times 24 CDPs). This means, this RRA is an archive for
-       one day. After 24 CDPs, CDP number 25 will replace the 1st CDP. The
-       second RRA saves 31 CDPs; each CPD represents an AVERAGE value for a
-       day (288 PDPs, each covering 300 seconds = 24 hours). Therefore this
-       RRA is an archive for one month. A single database can have many RRAs.
-       If there are multiple DSs, each individual RRA will save data for all
-       the DSs in the database. For example, if a database has 3 DSs and
+       theses CDPs are archived. Each PDP occurs at 300 seconds. 12 PDPs
+       represent 12 times 300 seconds which is 1 hour. It means 1 CDP (which
+       is equal to 12 PDPs) represents data worth 1 hour. 24 such CDPs
+       represent 1 day (1 hour times 24 CDPs). This means, this RRA is an
+       archive for one day. After 24 CDPs, CDP number 25 will replace the 1st
+       CDP. The second RRA saves 31 CDPs; each CPD represents an AVERAGE value
+       for a day (288 PDPs, each covering 300 seconds = 24 hours). Therefore
+       this RRA is an archive for one month. A single database can have many
+       RRAs. If there are multiple DSs, each individual RRA will save data for
+       all the DSs in the database. For example, if a database has 3 DSs and
        daily, weekly, monthly, and yearly RRAs are declared, then each RRA
        will hold data from all 3 data sources.
 
-       G\bGr\bra\bap\bph\bhi\bic\bca\bal\bl M\bMa\bag\bgi\bic\bc
-
+   G\bGr\bra\bap\bph\bhi\bic\bca\bal\bl M\bMa\bag\bgi\bic\bc
        Another important feature of RRDtool is its ability to create graphs.
        The "graph" command uses the "fetch" command internally to retrieve
        values from the database. With the retrieved values it draws graphs as
        defined by the parameters supplied on the command line. A single graph
-       can show different DS (Data Sources) from a database. It is also possi-
-       ble to show the values from more than one database in a single graph.
-       Often, it is necessary to perform some math on the values retrieved
-       from the database before plotting them. For example, in SNMP replies,
-       memory consumption values are usually specified in KBytes and traffic
-       flow on interfaces is specified in Bytes. Graphs for these values will
-       be more meaningful if values are represented in MBytes and mbps. The
-       RRDtool graph command allows to define such conversions. Apart from
-       mathematical calculations, it is also possible to perform logical oper-
-       ations such as greater than, less than, and if/then/else. If a database
-       contains more than one RRA archive, then a question may arise - how
-       does RRDtool decide which RRA archive to use for retrieving the values?
-       RRDtool looks at several things when making its choice. First it makes
-       sure that the RRA covers as much of the graphing time frame as possi-
-       ble. Second it looks at the resolution of the RRA compared to the reso-
-       lution of the graph. It tries to find one which has the same or higher
-       better resolution. With the "-r" option you can force RRDtool to assume
-       a different resolution than the one calculated from the pixel width of
-       the graph.
+       can show different DS (Data Sources) from a database. It is also
+       possible to show the values from more than one database in a single
+       graph. Often, it is necessary to perform some math on the values
+       retrieved from the database before plotting them. For example, in SNMP
+       replies, memory consumption values are usually specified in KBytes and
+       traffic flow on interfaces is specified in Bytes. Graphs for these
+       values will be more meaningful if values are represented in MBytes and
+       mbps. The RRDtool graph command allows to define such conversions.
+       Apart from mathematical calculations, it is also possible to perform
+       logical operations such as greater than, less than, and if/then/else.
+       If a database contains more than one RRA archive, then a question may
+       arise - how does RRDtool decide which RRA archive to use for retrieving
+       the values? RRDtool looks at several things when making its choice.
+       First it makes sure that the RRA covers as much of the graphing time
+       frame as possible. Second it looks at the resolution of the RRA
+       compared to the resolution of the graph. It tries to find one which has
+       the same or higher better resolution. With the "-r" option you can
+       force RRDtool to assume a different resolution than the one calculated
+       from the pixel width of the graph.
 
        Values of different variables can be presented in 5 different shapes in
        a graph - AREA, LINE1, LINE2, LINE3, and STACK. AREA is represented by
        a solid colored area with values as the boundary of this area.
-       LINE1/2/3 (increasing width) are just plain lines representing the val-
-       ues. STACK is also an area but it is "stack"ed on top AREA or
-       LINE1/2/3. Another important thing to note is that variables are plot-
-       ted in the order they are defined in the graph command. Therefore care
-       must be taken to define STACK only after defining AREA/LINE. It is also
-       possible to put formatted comments within the graph.  Detailed instruc-
-       tions can be found in the graph manual.
-
-       W\bWr\bra\bap\bpp\bpi\bin\bng\bg R\bRR\bRD\bDt\bto\boo\bol\bl w\bwi\bit\bth\bhi\bin\bn S\bSh\bhe\bel\bll\bl/\b/P\bPe\ber\brl\bl s\bsc\bcr\bri\bip\bpt\bt
-
+       LINE1/2/3 (increasing width) are just plain lines representing the
+       values. STACK is also an area but it is "stack"ed on top AREA or
+       LINE1/2/3. Another important thing to note is that variables are
+       plotted in the order they are defined in the graph command. Therefore
+       care must be taken to define STACK only after defining AREA/LINE. It is
+       also possible to put formatted comments within the graph.  Detailed
+       instructions can be found in the graph manual.
+
+   W\bWr\bra\bap\bpp\bpi\bin\bng\bg R\bRR\bRD\bDt\bto\boo\bol\bl w\bwi\bit\bth\bhi\bin\bn S\bSh\bhe\bel\bll\bl/\b/P\bPe\ber\brl\bl s\bsc\bcr\bri\bip\bpt\bt
        After understanding RRDtool it is now a time to actually use RRDtool in
        scripts. Tasks involved in network management are data collection, data
        storage, and data retrieval. In the following example, the previously
@@ -285,26 +282,26 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
         # calculate the average of the array
         my $tot_mem_ave = $tot_mem_sum/($count);
         # create the graph
-        RRDs::graph ("/images/mem_$count.png",   \
-                    "--title= Memory Usage",    \
-                    "--vertical-label=Memory Consumption (MB)", \
-                    "--start=$start_time",      \
-                    "--end=$end_time",          \
-                    "--color=BACK#CCCCCC",      \
-                    "--color=CANVAS#CCFFFF",    \
-                    "--color=SHADEB#9999CC",    \
-                    "--height=125",             \
-                    "--upper-limit=656",        \
-                    "--lower-limit=0",          \
-                    "--rigid",                  \
-                    "--base=1024",              \
-                    "DEF:tot_mem=target.rrd:mem:AVERAGE", \
-                    "CDEF:tot_mem_cor=tot_mem,0,671744,LIMIT,UN,0,tot_mem,IF,1024,/",\
-                    "CDEF:machine_mem=tot_mem,656,+,tot_mem,-",\
-                    "COMMENT:Memory Consumption between $start_time",\
-                    "COMMENT:    and $end_time                     ",\
-                    "HRULE:656#000000:Maximum Available Memory - 656 MB",\
-                    "AREA:machine_mem#CCFFFF:Memory Unused",   \
+        RRDs::graph ("/images/mem_$count.png",
+                    "--title= Memory Usage",
+                    "--vertical-label=Memory Consumption (MB)",
+                    "--start=$start_time",
+                    "--end=$end_time",
+                    "--color=BACK#CCCCCC",
+                    "--color=CANVAS#CCFFFF",
+                    "--color=SHADEB#9999CC",
+                    "--height=125",
+                    "--upper-limit=656",
+                    "--lower-limit=0",
+                    "--rigid",
+                    "--base=1024",
+                    "DEF:tot_mem=target.rrd:mem:AVERAGE",
+                    "CDEF:tot_mem_cor=tot_mem,0,671744,LIMIT,UN,0,tot_mem,IF,1024,/",
+                    "CDEF:machine_mem=tot_mem,656,+,tot_mem,-",
+                    "COMMENT:Memory Consumption between $start_time",
+                    "COMMENT:    and $end_time                     ",
+                    "HRULE:656#000000:Maximum Available Memory - 656 MB",
+                    "AREA:machine_mem#CCFFFF:Memory Unused",
                     "AREA:tot_mem_cor#6699CC:Total memory consumed in MB");
         my $err=RRDs::error;
         if ($err) {print "problem generating the graph: $err\n";}
@@ -318,4 +315,4 @@ A\bAU\bUT\bTH\bHO\bOR\bR
 
 
 
-1.3.99909060808                   2008-03-15                  RRD-BEGINNERS(1)
+1.3.999                           2009-09-24                  RRD-BEGINNERS(1)
index cc01820f627e9774248d0ea0b032b2f2ca650604..05fdc80951170005ed6413f3bda8db445c29d5d1 100644 (file)
@@ -1,15 +1,7 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.08)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
 .de Sp \" Vertical space (when we can't use .PP)
 .if t .sp .5v
 .if n .sp
 ..
 .\" Set up some character translations and predefined strings.  \*(-- will
 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
 .ie n \{\
 .    ds -- \(*W-
 .    ds R" ''
 'br\}
 .\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
 .\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
 .\" entries marked with X<> in POD.  Of course, you'll have to process the
 .\" output yourself in some meaningful fashion.
-.if \nF \{\
+.ie \nF \{\
 .    de IX
 .    tm Index:\\$1\t\\n%\t"\\$2"
 ..
 .    nr % 0
 .    rr F
 .\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
+.el \{\
+.    de IX
+..
+.\}
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
 .\" ========================================================================
 .\"
 .IX Title "RRDBUILD 1"
-.TH RRDBUILD 1 "2008-12-26" "1.3.99909060808" "rrdtool"
+.TH RRDBUILD 1 "2009-06-09" "1.3.999" "rrdtool"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
 .SH "NAME"
 rrdbuild \- Instructions for building RRDtool
 .SH "OVERVIEW"
@@ -177,7 +176,7 @@ Now make sure the \s-1BUILD_DIR\s0 exists and go there:
 .Ve
 .PP
 Lets first assume you already have all the necessary libraries
-pre\-installed. 
+pre-installed.
 .PP
 .Vb 4
 \& wget http://oss.oetiker.ch/rrdtool/pub/rrdtool\-1.3.2.tar.gz
@@ -193,12 +192,12 @@ Ok, this was very optimistic. This try will probably have ended with
 If your \s-1OS\s0 lets you install additional packages from a software repository,
 you may get away with installing the missing packages. When the packages are
 installed, run configure again and try to compile again. Below you find some
-hints on getting your \s-1OS\s0 ready for the rrdtool compilation. 
+hints on getting your \s-1OS\s0 ready for the rrdtool compilation.
 .PP
 Additions to this list are welcome. In general rrdtool should work with the
 latest versions of the libraries. The versions listed here are just what was
 current when I tested this.
-.Sh "OpenSolaris 2008.05"
+.SS "OpenSolaris 2008.05"
 .IX Subsection "OpenSolaris 2008.05"
 Just add a compiler and the gnome development package:
 .PP
@@ -213,7 +212,7 @@ bad since OpenSolaris does not include an \fIxrender.pc\fR file. Use Perl to
 fix this:
 .PP
 .Vb 1
-\& perl \-i~ \-p \-e 's/(Requires.*?)\es*xrender.*/$1/' /usr/lib/pkgconfig/cairo.pc
+\& perl \-i~ \-p \-e \*(Aqs/(Requires.*?)\es*xrender.*/$1/\*(Aq /usr/lib/pkgconfig/cairo.pc
 .Ve
 .PP
 Make sure rrdtool finds your new compiler
@@ -230,7 +229,7 @@ of installing it yourself). You have to call configure with the
 .Ve
 .PP
 option.
-.Sh "Debian / Ubuntu"
+.SS "Debian / Ubuntu"
 .IX Subsection "Debian / Ubuntu"
 Use apt-get to make sure you have all that is required. A number
 of packages will get added through dependencies.
@@ -238,7 +237,7 @@ of packages will get added through dependencies.
 .Vb 1
 \& apt\-get install libpango1.0\-dev libxml2\-dev
 .Ve
-.Sh "Gentoo"
+.SS "Gentoo"
 .IX Subsection "Gentoo"
 In Gentoo installing rrdtool is really simple you just need to \fBemerge
 rrdtool\fR. All dependencies will be handled automatically by the portage
@@ -273,7 +272,7 @@ libpng and zlib are pretty standard so you will probably have them on your
 system anyway. Freetype, Fontinst, Cairo, Pango may be installed, but it is
 possible that they are pretty old and thus don't live up to our
 expectations, so you may want to compile their latest versions.
-.Sh "General build tips for \s-1AIX\s0"
+.SS "General build tips for \s-1AIX\s0"
 .IX Subsection "General build tips for AIX"
 If you are working with \s-1AIX\s0, you may find the \fB\-\-disable\-shared\fR option
 will cause things to break for you. In that case you may have to install the
@@ -288,7 +287,7 @@ Another hint to get rrdtool working on \s-1AIX\s0 is to use the \s-1IBM\s0 \s-1X
 .Ve
 .PP
 (Better instructions for \s-1AIX\s0 welcome!)
-.Sh "Build Instructions"
+.SS "Build Instructions"
 .IX Subsection "Build Instructions"
 Some libraries want to know where other libraries are. For this to work,
 set the following environment variable
@@ -372,7 +371,7 @@ environment variable will be helpful.
 \fIBuilding zlib\fR
 .IX Subsection "Building zlib"
 .PP
-Chances are very high that you already have that on your system ... 
+Chances are very high that you already have that on your system ...
 .PP
 .Vb 7
 \& cd $BUILD_DIR
@@ -508,7 +507,7 @@ config file.
 \& $MAKE
 \& $MAKE install
 .Ve
-.Sh "Building rrdtool (second try)"
+.SS "Building rrdtool (second try)"
 .IX Subsection "Building rrdtool (second try)"
 Now all the dependent libraries are built and you can try again. This time
 you tell configure where it should be looking for libraries and include
@@ -533,7 +532,7 @@ one shipping with Solaris) you will need the Sun Forte compiler installed on
 your box or you have to hand-tune bindings/perl\-shared/Makefile while
 building!
 .PP
-Now go to \fI$INSTALL_DIR\fR\fB/share/rrdtool/examples/\fR and run them to see if
+Now go to \fI\f(CI$INSTALL_DIR\fI\fR\fB/share/rrdtool/examples/\fR and run them to see if
 your build has been successful.
 .SH "AUTHOR"
 .IX Header "AUTHOR"
index 563623a12651f6a322c0ed556fec11686b7ca168..cfd5565e8bbdbbb7ecfe0638893a41f139886a2d 100644 (file)
@@ -1,14 +1,18 @@
+<?xml version="1.0" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>rrdbuild</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <link rev="made" href="mailto:root@localhost" />
 </head>
 
 <body style="background-color: white">
 
-<p><a name="__index__"></a></p>
+
 <!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
 <!--
 
 <ul>
 
        <li><a href="#author">AUTHOR</a></li>
 </ul>
+
 -->
+
+
+</div>
 <!-- INDEX END -->
 
 <p>
@@ -66,7 +74,7 @@ may already be installed on your system. You have to compile copies of the other
 ones before you can build RRDtool.</p>
 <p>This document will tell you about all the necessary steps to get going.</p>
 <p>These instructions assume you are using a <strong>bash</strong> shell. If you use csh/tcsh,
-then you can either type <em>bash</em> to switch to bash for the compilation or if
+then you can either type <em class="file">bash</em> to switch to bash for the compilation or if
 you know what you are doing just replace the export bits with
 setenv.</p>
 <p>We further assume that your copies of <strong>tar</strong> and <strong>make</strong> are actually <strong>GNU
@@ -78,17 +86,18 @@ tar</strong> and <strong>GNU make</strong> respectively. It could be that they a
 <h1><a name="optimistic_build">OPTIMISTIC BUILD</a></h1>
 <p>Before you start to build RRDtool, you have to decide two things:</p>
 <ol>
-<li></li>
-In which directory you want to build the software.
-<p></p>
-<li></li>
-Where you want to install the software.
-<p></p></ol>
+<li>
+<p>In which directory you want to build the software.</p>
+</li>
+<li>
+<p>Where you want to install the software.</p>
+</li>
+</ol>
 <p>Once you have decided. Save the two locations into environment variables.</p>
 <pre>
  BUILD_DIR=/tmp/rrdbuild
  INSTALL_DIR=/usr/local/rrdtool-1.3.2</pre>
-<p>If your <em>/tmp</em> is mounted with the option noexec (RHEL seems todo that) you have to choose
+<p>If your <em class="file">/tmp</em> is mounted with the option noexec (RHEL seems todo that) you have to choose
 a different directory!</p>
 <p>Now make sure the BUILD_DIR exists and go there:</p>
 <pre>
@@ -121,9 +130,9 @@ current when I tested this.</p>
 <pre>
  pkg install sunstudioexpress
  pkg install SUNWgnome-common-devel</pre>
-<p>There is a problem with <em>cairo.pc</em> on OpenSolaris. It suggests that
+<p>There is a problem with <em class="file">cairo.pc</em> on OpenSolaris. It suggests that
 xrender is required for compilation with cairo. This is not true and also
-bad since OpenSolaris does not include an <em>xrender.pc</em> file. Use Perl to
+bad since OpenSolaris does not include an <em class="file">xrender.pc</em> file. Use Perl to
 fix this:</p>
 <pre>
  perl -i~ -p -e 's/(Requires.*?)\s*xrender.*/$1/' /usr/lib/pkgconfig/cairo.pc</pre>
@@ -159,7 +168,7 @@ flags are available:</p>
  tcl    - build and install tcl language bindings
  rrdcgi - build and install rrdcgi</pre>
 <p>After you've decided which USE flags you need, set them either in
-<em>make.conf</em> or <em>/etc/portage/package.use</em> and finally run:</p>
+<em class="file">make.conf</em> or <em class="file">/etc/portage/package.use</em> and finally run:</p>
 <pre>
  # emerge -va rrdtool</pre>
 <p>Take a look at Gentoo handbook for further details on how to manage USE
@@ -194,40 +203,36 @@ set the following environment variable</p>
 <pre>
  export PKG_CONFIG_PATH=${INSTALL_DIR}/lib/pkgconfig
  export PATH=$INSTALL_DIR/bin:$PATH</pre>
-<p>The above relies on the presence of the <em>pkgconfig</em> program. Below you find instructions
+<p>The above relies on the presence of the <em class="file">pkgconfig</em> program. Below you find instructions
 on how to compile pkgconfig.</p>
 <p>Since we are compiling libraries dynamically, they must know where to find
 each other. This is done by setting an appropriate LDFLAGS. Unfortunately,
 the syntax again differs from system to system:</p>
 <dl>
-<dt><strong><a name="item_solaris">Solaris</a></strong><br />
-</dt>
+<dt><strong><a name="solaris" class="item">Solaris</a></strong></dt>
+
 <dd>
 <pre>
  export LDFLAGS=-R${INSTALL_DIR}/lib</pre>
-</dd>
-<dd>
 <p>if you are using the Sun Studio/Forte compiler, you may also want to set</p>
-</dd>
-<dd>
 <pre>
  CFLAGS=&quot;-xO3 -xcode=pic13&quot;   (SPARC)
  CFLAGS=&quot;-xO3 -Kpic&quot;          (x86)</pre>
 </dd>
-<dt><strong><a name="item_linux">Linux</a></strong><br />
-</dt>
+<dt><strong><a name="linux" class="item">Linux</a></strong></dt>
+
 <dd>
 <pre>
  export LDFLAGS=&quot;-Wl,--rpath -Wl,${INSTALL_DIR}/lib&quot;</pre>
 </dd>
-<dt><strong><a name="item_hpux">HPUX</a></strong><br />
-</dt>
+<dt><strong><a name="hpux" class="item">HPUX</a></strong></dt>
+
 <dd>
 <pre>
  export LDFLAGS=&quot;+b${INSTALL_DIR}/lib&quot;</pre>
 </dd>
-<dt><strong><a name="item_aix">AIX</a></strong><br />
-</dt>
+<dt><strong><a name="aix" class="item">AIX</a></strong></dt>
+
 <dd>
 <pre>
  export LDFLAGS=&quot;-Wl,-blibpath:${INSTALL_DIR}/lib&quot;</pre>
index b284bde7db59541718ee2b177b3241f3100e7abb..772b259a265833ef252bdda4debf66211bcadb4e 100644 (file)
@@ -16,9 +16,9 @@ O\bOV\bVE\bER\bRV\bVI\bIE\bEW\bW
        This document will tell you about all the necessary steps to get going.
 
        These instructions assume you are using a b\bba\bas\bsh\bh shell. If you use
-       csh/tcsh, then you can either type _\bb_\ba_\bs_\bh to switch to bash for the com-
-       pilation or if you know what you are doing just replace the export bits
-       with setenv.
+       csh/tcsh, then you can either type _\bb_\ba_\bs_\bh to switch to bash for the
+       compilation or if you know what you are doing just replace the export
+       bits with setenv.
 
        We further assume that your copies of t\bta\bar\br and m\bma\bak\bke\be are actually G\bGN\bNU\bU t\bta\bar\br
        and G\bGN\bNU\bU m\bma\bak\bke\be respectively. It could be that they are installed as g\bgt\bta\bar\br
@@ -31,8 +31,8 @@ O\bOP\bPT\bTI\bIM\bMI\bIS\bST\bTI\bIC\bC B\bBU\bUI\bIL\bLD\bD
 
        2.  Where you want to install the software.
 
-       Once you have decided. Save the two locations into environment vari-
-       ables.
+       Once you have decided. Save the two locations into environment
+       variables.
 
         BUILD_DIR=/tmp/rrdbuild
         INSTALL_DIR=/usr/local/rrdtool-1.3.2
@@ -45,8 +45,8 @@ O\bOP\bPT\bTI\bIM\bMI\bIS\bST\bTI\bIC\bC B\bBU\bUI\bIL\bLD\bD
         mkdir -p $BUILD_DIR
         cd $BUILD_DIR
 
-       Lets first assume you already have all the necessary libraries
-       pre-installed.
+       Lets first assume you already have all the necessary libraries pre-
+       installed.
 
         wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.3.2.tar.gz
         gunzip -c rrdtool-1.3.2.tar.gz | tar xf -
@@ -57,27 +57,26 @@ O\bOP\bPT\bTI\bIM\bMI\bIS\bST\bTI\bIC\bC B\bBU\bUI\bIL\bLD\bD
        c\bco\bon\bnf\bfi\big\bgu\bur\bre\be complaining about several missing libraries.
 
 I\bIN\bNS\bST\bTA\bAL\bLL\bLI\bIN\bNG\bG D\bDE\bEP\bPE\bEN\bND\bDE\bEN\bNC\bCI\bIE\bES\bS
-       If your OS lets you install additional packages from a software reposi-
-       tory, you may get away with installing the missing packages. When the
-       packages are installed, run configure again and try to compile again.
-       Below you find some hints on getting your OS ready for the rrdtool com-
-       pilation.
+       If your OS lets you install additional packages from a software
+       repository, you may get away with installing the missing packages. When
+       the packages are installed, run configure again and try to compile
+       again. Below you find some hints on getting your OS ready for the
+       rrdtool compilation.
 
        Additions to this list are welcome. In general rrdtool should work with
        the latest versions of the libraries. The versions listed here are just
        what was current when I tested this.
 
-       O\bOp\bpe\ben\bnS\bSo\bol\bla\bar\bri\bis\bs 2\b20\b00\b08\b8.\b.0\b05\b5
-
+   O\bOp\bpe\ben\bnS\bSo\bol\bla\bar\bri\bis\bs 2\b20\b00\b08\b8.\b.0\b05\b5
        Just add a compiler and the gnome development package:
 
         pkg install sunstudioexpress
         pkg install SUNWgnome-common-devel
 
-       There is a problem with _\bc_\ba_\bi_\br_\bo_\b._\bp_\bc on OpenSolaris. It suggests that xren-
-       der is required for compilation with cairo. This is not true and also
-       bad since OpenSolaris does not include an _\bx_\br_\be_\bn_\bd_\be_\br_\b._\bp_\bc file. Use Perl to
-       fix this:
+       There is a problem with _\bc_\ba_\bi_\br_\bo_\b._\bp_\bc on OpenSolaris. It suggests that
+       xrender is required for compilation with cairo. This is not true and
+       also bad since OpenSolaris does not include an _\bx_\br_\be_\bn_\bd_\be_\br_\b._\bp_\bc file. Use
+       Perl to fix this:
 
         perl -i~ -p -e 's/(Requires.*?)\s*xrender.*/$1/' /usr/lib/pkgconfig/cairo.pc
 
@@ -92,20 +91,18 @@ I\bIN\bNS\bST\bTA\bAL\bLL\bLI\bIN\bNG\bG D\bDE\bEP\bPE\bEN\bND\bDE\bEN\bNC\bCI\bIE\bES\bS
 
        option.
 
-       D\bDe\beb\bbi\bia\ban\bn /\b/ U\bUb\bbu\bun\bnt\btu\bu
-
+   D\bDe\beb\bbi\bia\ban\bn /\b/ U\bUb\bbu\bun\bnt\btu\bu
        Use apt-get to make sure you have all that is required. A number of
        packages will get added through dependencies.
 
         apt-get install libpango1.0-dev libxml2-dev
 
-       G\bGe\ben\bnt\bto\boo\bo
-
+   G\bGe\ben\bnt\bto\boo\bo
        In Gentoo installing rrdtool is really simple you just need to e\bem\bme\ber\brg\bge\be
        r\brr\brd\bdt\bto\boo\bol\bl. All dependencies will be handled automatically by the portage
        system. The only thing you should care about are USE flags, which allow
-       you fine tune features rrdtool will be built with. Currently the fol-
-       lowing USE flags are available:
+       you fine tune features rrdtool will be built with. Currently the
+       following USE flags are available:
 
         doc    - install .html and .txt documentation
                  into /usr/share/doc/rrdtool-1.x.xx/
@@ -132,23 +129,21 @@ B\bBU\bUI\bIL\bLD\bDI\bIN\bNG\bG D\bDE\bEP\bPE\bEN\bND\bDE\bEN\bNC\bCI\bIE\bES\bS
        don't live up to our expectations, so you may want to compile their
        latest versions.
 
-       G\bGe\ben\bne\ber\bra\bal\bl b\bbu\bui\bil\bld\bd t\bti\bip\bps\bs f\bfo\bor\br A\bAI\bIX\bX
-
+   G\bGe\ben\bne\ber\bra\bal\bl b\bbu\bui\bil\bld\bd t\bti\bip\bps\bs f\bfo\bor\br A\bAI\bIX\bX
        If you are working with AIX, you may find the -\b--\b-d\bdi\bis\bsa\bab\bbl\ble\be-\b-s\bsh\bha\bar\bre\bed\bd option
        will cause things to break for you. In that case you may have to
        install the shared libraries into the rrdtool PREFIX and work with
        -\b--\b-d\bdi\bis\bsa\bab\bbl\ble\be-\b-s\bst\bta\bat\bti\bic\bc instead.
 
-       Another hint to get rrdtool working on AIX is to use the IBM XL C Com-
-       piler:
+       Another hint to get rrdtool working on AIX is to use the IBM XL C
+       Compiler:
 
         export CC=/usr/vac/bin/cc
         export PERLCC=$CC
 
        (Better instructions for AIX welcome!)
 
-       B\bBu\bui\bil\bld\bd I\bIn\bns\bst\btr\bru\buc\bct\bti\bio\bon\bns\bs
-
+   B\bBu\bui\bil\bld\bd I\bIn\bns\bst\btr\bru\buc\bct\bti\bio\bon\bns\bs
        Some libraries want to know where other libraries are. For this to
        work, set the following environment variable
 
@@ -159,8 +154,8 @@ B\bBU\bUI\bIL\bLD\bDI\bIN\bNG\bG D\bDE\bEP\bPE\bEN\bND\bDE\bEN\bNC\bCI\bIE\bES\bS
        find instructions on how to compile pkgconfig.
 
        Since we are compiling libraries dynamically, they must know where to
-       find each other. This is done by setting an appropriate LDFLAGS. Unfor-
-       tunately, the syntax again differs from system to system:
+       find each other. This is done by setting an appropriate LDFLAGS.
+       Unfortunately, the syntax again differs from system to system:
 
        Solaris
             export LDFLAGS=-R${INSTALL_DIR}/lib
@@ -192,8 +187,8 @@ B\bBU\bUI\bIL\bLD\bDI\bIN\bNG\bG D\bDE\bEP\bPE\bEN\bND\bDE\bEN\bNC\bCI\bIE\bES\bS
        _\bB_\bu_\bi_\bl_\bd_\bi_\bn_\bg _\bp_\bk_\bg_\bc_\bo_\bn_\bf_\bi_\bg
 
        As mentioned above, without pkgconfig the whole build process will be
-       lots of pain and suffering, so make sure you have a copy on your sys-
-       tem. If it is not available natively, here is how to compile it.
+       lots of pain and suffering, so make sure you have a copy on your
+       system. If it is not available natively, here is how to compile it.
 
         wget http://pkgconfig.freedesktop.org/releases/pkg-config-0.23.tar.gz
         gunzip -c pkg-config-0.23.tar.gz | tar xf -
@@ -202,8 +197,8 @@ B\bBU\bUI\bIL\bLD\bDI\bIN\bNG\bG D\bDE\bEP\bPE\bEN\bND\bDE\bEN\bNC\bCI\bIE\bES\bS
         $MAKE
         $MAKE install
 
-       After installing pkgconfig in a custom directory, setting up the corre-
-       sponding environment variable will be helpful.
+       After installing pkgconfig in a custom directory, setting up the
+       corresponding environment variable will be helpful.
 
         export PKG_CONFIG=$INSTALL_DIR/bin/pkg-config
 
@@ -263,8 +258,8 @@ B\bBU\bUI\bIL\bLD\bDI\bIN\bNG\bG D\bDE\bEP\bPE\bEN\bND\bDE\bEN\bNC\bCI\bIE\bES\bS
 
        Note that fontconfig has a run time configuration file in
        INSTALL_DIR/etc you may want to adjust that so that fontconfig finds
-       the fonts on your system.  Run the fc-cache program to build the font-
-       config cache after changing the config file.
+       the fonts on your system.  Run the fc-cache program to build the
+       fontconfig cache after changing the config file.
 
         cd $BUILD_DIR
         wget http://oss.oetiker.ch/rrdtool/pub/libs/fontconfig-2.4.2.tar.gz
@@ -318,8 +313,7 @@ B\bBU\bUI\bIL\bLD\bDI\bIN\bNG\bG D\bDE\bEP\bPE\bEN\bND\bDE\bEN\bNC\bCI\bIE\bES\bS
         $MAKE
         $MAKE install
 
-       B\bBu\bui\bil\bld\bdi\bin\bng\bg r\brr\brd\bdt\bto\boo\bol\bl (\b(s\bse\bec\bco\bon\bnd\bd t\btr\bry\by)\b)
-
+   B\bBu\bui\bil\bld\bdi\bin\bng\bg r\brr\brd\bdt\bto\boo\bol\bl (\b(s\bse\bec\bco\bon\bnd\bd t\btr\bry\by)\b)
        Now all the dependent libraries are built and you can try again. This
        time you tell configure where it should be looking for libraries and
        include files. This is done via environment variables. Depending on the
@@ -339,8 +333,8 @@ B\bBU\bUI\bIL\bLD\bDI\bIN\bNG\bG D\bDE\bEP\bPE\bEN\bND\bDE\bEN\bNC\bCI\bIE\bES\bS
 
        SOLARIS HINT: if you want to build  the Perl module for the native Perl
        (the one shipping with Solaris) you will need the Sun Forte compiler
-       installed on your box or you have to hand-tune bind-
-       ings/perl-shared/Makefile while building!
+       installed on your box or you have to hand-tune
+       bindings/perl-shared/Makefile while building!
 
        Now go to _\b$_\bI_\bN_\bS_\bT_\bA_\bL_\bL_\b__\bD_\bI_\bR/\b/s\bsh\bha\bar\bre\be/\b/r\brr\brd\bdt\bto\boo\bol\bl/\b/e\bex\bxa\bam\bmp\bpl\ble\bes\bs/\b/ and run them to see if
        your build has been successful.
@@ -350,4 +344,4 @@ A\bAU\bUT\bTH\bHO\bOR\bR
 
 
 
-1.3.99909060808                   2008-12-26                       RRDBUILD(1)
+1.3.999                           2009-06-09                       RRDBUILD(1)
index 70ba28eac2d2b368bfc674844b4611f366f10e36..2a111870cee0a5c655bd48ed221ab5072be33315 100644 (file)
@@ -1,15 +1,7 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.08)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
 .de Sp \" Vertical space (when we can't use .PP)
 .if t .sp .5v
 .if n .sp
 ..
 .\" Set up some character translations and predefined strings.  \*(-- will
 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
 .ie n \{\
 .    ds -- \(*W-
 .    ds R" ''
 'br\}
 .\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
 .\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
 .\" entries marked with X<> in POD.  Of course, you'll have to process the
 .\" output yourself in some meaningful fashion.
-.if \nF \{\
+.ie \nF \{\
 .    de IX
 .    tm Index:\\$1\t\\n%\t"\\$2"
 ..
 .    nr % 0
 .    rr F
 .\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
+.el \{\
+.    de IX
+..
+.\}
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
 .\" ========================================================================
 .\"
 .IX Title "RRDCACHED 1"
-.TH RRDCACHED 1 "2009-04-09" "1.3.99909060808" "rrdtool"
+.TH RRDCACHED 1 "2009-09-24" "1.3.999" "rrdtool"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
 .SH "NAME"
 rrdcached \- Data caching daemon for rrdtool
 .SH "SYNOPSIS"
 .IX Header "SYNOPSIS"
 \&\fBrrdcached\fR
-[\fB\-l/\-L\fR\ \fIaddress\fR]
+[\fB\-P\fR\ \fIpermissions\fR]
+[\fB\-l\fR\ \fIaddress\fR]
 [\fB\-w\fR\ \fItimeout\fR]
 [\fB\-z\fR\ \fIdelay\fR]
 [\fB\-f\fR\ \fItimeout\fR]
@@ -172,7 +172,9 @@ For network sockets, a port may be specified by using the form
 \&\f(CW\*(C`\f(CB[\f(CW\f(CIaddress\f(CW\f(CB]:\f(CW\f(CIport\f(CW\*(C'\fR. If the address is an IPv4 address or a fully
 qualified domain name (i.\ e. the address contains at least one dot
 (\f(CW\*(C`.\*(C'\fR)), the square brackets can be omitted, resulting in the (simpler)
-\&\f(CW\*(C`\f(CIaddress\f(CW\f(CB:\f(CW\f(CIport\f(CW\*(C'\fR pattern.. The default port is \fB42217/udp\fR.
+\&\f(CW\*(C`\f(CIaddress\f(CW\f(CB:\f(CW\f(CIport\f(CW\*(C'\fR pattern. The default port is \fB42217/udp\fR. If you
+specify a network socket, it is mandatory to read the
+\&\*(L"\s-1SECURITY\s0 \s-1CONSIDERATIONS\s0\*(R" section.
 .Sp
 The following formats are accepted. Please note that the address of the \s-1UNIX\s0
 domain socket \fBmust\fR start with a slash in the second case!
@@ -187,10 +189,40 @@ domain socket \fBmust\fR start with a slash in the second case!
 .Sp
 If the \fB\-l\fR option is not specified the default address,
 \&\f(CW\*(C`unix:/tmp/rrdcached.sock\*(C'\fR, will be used.
-.IP "\fB\-L\fR \fIaddress\fR" 4
-.IX Item "-L address"
-Same as \fB\-l\fR, except creates a low-privilege socket.  See \fB\s-1SECURITY\s0
-\&\s-1CONSIDERATIONS\s0\fR for more information.
+.IP "\fB\-P\fR \fIcommand\fR[,\fIcommand\fR[,...]]" 4
+.IX Item "-P command[,command[,...]]"
+Specifies the commands accepted via a network socket. This allows
+administrators of \fIRRDCacheD\fR to control the actions accepted from various
+sources.
+.Sp
+The arguments given to the \fB\-P\fR option is a comma separated list of commands.
+For example, to allow the \f(CW\*(C`FLUSH\*(C'\fR and \f(CW\*(C`PENDING\*(C'\fR commands one could specify:
+.Sp
+.Vb 1
+\&  rrdcached \-P FLUSH,PENDING $MORE_ARGUMENTS
+.Ve
+.Sp
+The \fB\-P\fR option effects the \fIfollowing\fR socket addresses (the following \fB\-l\fR
+options). In the following example, only the IPv4 network socket (address
+\&\f(CW10.0.0.1\fR) will be restricted to the \f(CW\*(C`FLUSH\*(C'\fR and \f(CW\*(C`PENDING\*(C'\fR commands:
+.Sp
+.Vb 1
+\&  rrdcached \-l unix:/some/path \-P FLUSH,PENDING \-l 10.0.0.1
+.Ve
+.Sp
+A complete list of available commands can be found in the section
+\&\*(L"Valid Commands\*(R" below. There are two minor special exceptions:
+.RS 4
+.IP "\(bu" 4
+The \f(CW\*(C`HELP\*(C'\fR and \f(CW\*(C`QUIT\*(C'\fR commands are always allowed.
+.IP "\(bu" 4
+If the \f(CW\*(C`BATCH\*(C'\fR command is accepted, the \fB.\fR\ command will automatically
+be accepted, too.
+.RE
+.RS 4
+.Sp
+Please also read \*(L"\s-1SECURITY\s0 \s-1CONSIDERATIONS\s0\*(R" below.
+.RE
 .IP "\fB\-w\fR \fItimeout\fR" 4
 .IX Item "-w timeout"
 Data is written to disk every \fItimeout\fR seconds. If this option is not
@@ -209,7 +241,7 @@ setting this to a high value, such as 3600\ seconds, is acceptable in most
 cases. This timeout defaults to 3600\ seconds.
 .IP "\fB\-p\fR \fIfile\fR" 4
 .IX Item "-p file"
-Sets the name and location of the PID\-file. If not specified, the default,
+Sets the name and location of the PID-file. If not specified, the default,
 \&\f(CW\*(C`\f(CI$localststedir\f(CW/run/rrdcached.pid\*(C'\fR will be used.
 .IP "\fB\-t\fR \fIwrite_threads\fR" 4
 .IX Item "-t write_threads"
@@ -233,7 +265,7 @@ given by \fB\-f\fR.
 When journaling is enabled, the daemon will use a fast shutdown procedure.
 Rather than flushing all files to disk, it will make sure the journal is
 properly written and exit immediately.  Although the \s-1RRD\s0 data files are
-not fully up\-to\-date, no information is lost; all pending updates will be
+not fully up-to-date, no information is lost; all pending updates will be
 replayed from the journal next time the daemon starts up.
 .Sp
 To disable fast shutdown, use the \fB\-F\fR option.
@@ -282,7 +314,7 @@ specified as:
 .IP "\fB\-B\fR" 4
 .IX Item "-B"
 Only permit writes into the base directory specified in \fB\-b\fR (and any
-sub\-directories).  This does \fB\s-1NOT\s0\fR detect symbolic links.  Paths
+sub-directories).  This does \fB\s-1NOT\s0\fR detect symbolic links.  Paths
 containing \f(CW\*(C`../\*(C'\fR will also be blocked.
 .SH "AFFECTED RRDTOOL COMMANDS"
 .IX Header "AFFECTED RRDTOOL COMMANDS"
@@ -361,15 +393,15 @@ command\*(R" to flush specific files. This means that the file is inserted at th
 command will return only after the file's pending updates have been written
 to disk.
 .PP
-.Vb 25
+.Vb 10
 \& +\-\-\-\-\-\-+   +\-\-\-\-\-\-+                               +\-\-\-\-\-\-+
 \& ! head !   ! root !                               ! tail !
 \& +\-\-\-+\-\-+   +\-\-\-+\-\-+                               +\-\-\-+\-\-+
 \&     !         /\e                                      !
 \&     !        /  \e                                     !
 \&     !       /\e  /\e                                    !
-\&     !      /\e/\e \e `\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- ... \-\-\-\-\-\-\-\-,    !
-\&     V     /      `\-\-\-\-\-\-\-,                       !    V
+\&     !      /\e/\e \e \`\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\- ... \-\-\-\-\-\-\-\-,    !
+\&     V     /      \`\-\-\-\-\-\-\-,                       !    V
 \& +\-\-\-+\-\-\-\-+\-\-\-+    +\-\-\-\-\-\-+\-\-\-\-\-+             +\-\-\-+\-\-\-\-+\-\-\-+
 \& ! File:  foo !    ! File:  bar !             ! File:  qux !
 \& ! First: 101 !    ! First: 119 !             ! First: 180 !
@@ -395,7 +427,7 @@ Files/values are stored in a (balanced) tree.
 .IP "\(bu" 4
 Tree nodes and entries in the update queue are the same data structure.
 .IP "\(bu" 4
-The local time (\*(L"First\*(R") and the time specified in updates (\*(L"Time\*(R") may differ.  
+The local time (\*(L"First\*(R") and the time specified in updates (\*(L"Time\*(R") may differ.
 .IP "\(bu" 4
 Timed out values are inserted at the \*(L"tail\*(R".
 .IP "\(bu" 4
@@ -404,37 +436,53 @@ Explicitly flushed values are inserted at the \*(L"head\*(R".
 \&\s-1ASCII\s0 art rocks.
 .SH "SECURITY CONSIDERATIONS"
 .IX Header "SECURITY CONSIDERATIONS"
-The client/server protocol does not have any authentication or
-authorization mechanism.  Therefore, take care to restrict which users can
-connect to the daemon.
+.SS "Authentication"
+.IX Subsection "Authentication"
+There is no authentication.
+.PP
+The client/server protocol does not yet have any authentication mechanism. It
+is likely that authentication and encryption will be added in a future version,
+but for the time being it is the administrator's responsibility to secure the
+traffic from/to the daemon!
 .PP
-Control sockets are divided into high-privilege (\fB\-l\fR) and low-privilege
-(\fB\-L\fR) sockets.  High-privilege sockets accept all commands, whereas
-low-privilege sockets accept only \fB\s-1FLUSH\s0\fR, \fB\s-1STATS\s0\fR, and \fB\s-1HELP\s0\fR.
+It is highly recommended to install a packet filter or similar mechanism to
+prevent unauthorized connections. Unless you have a dedicated \s-1VLAN\s0 or \s-1VPN\s0 for
+this, using network sockets is probably a bad idea!
+.SS "Authorization"
+.IX Subsection "Authorization"
+There is minimal per-socket authorization.
 .PP
-For a multi-user environment where only certain users require read/write
-access, the recommended configuration uses two sockets as follows:
-.IP "\fB\-l\fR \fI/protected/dir/rrd.sock\fR" 4
-.IX Item "-l /protected/dir/rrd.sock"
-Create a high-privilege unix-domain socket.  This should be protected with
-the same Unix permissions that are used to protect the \s-1RRD\s0 files.  Updates
-should be directed to this socket.
-.IP "\fB\-L\fR \fI127.0.0.1\fR" 4
-.IX Item "-L 127.0.0.1"
-Create a low-privilege \s-1TCP\s0 socket listening on localhost.  All users on
-the local system may use this to trigger \s-1FLUSH\s0 of individual files.  Users
-with read-only access should be directed to this socket.
+Authorization is currently done on a per-socket basis. That means each socket
+has a list of commands it will accept and it will accept. It will accept only
+those commands explicitly listed but it will (currently) accept these commands
+from anyone reaching the socket.
 .PP
-If you (want to) use the network capability, i.\ e. let the daemon bind to
-an IPv4 or IPv6 socket, it is \fByour\fR job to install a packet filter or similar
-mechanism to prevent unauthorized connections. Unless you have a dedicated \s-1VLAN\s0
-or \s-1VPN\s0 for this, using the network option is probably a bad idea!
+If the networking sockets are to be used, it is necessary to restrict the
+accepted commands to those needed by external clients. If, for example,
+external clients want to draw graphs of the cached data, they should only be
+allowed to use the \f(CW\*(C`FLUSH\*(C'\fR command.
+.SS "Encryption"
+.IX Subsection "Encryption"
+There is no encryption.
+.PP
+Again, this may be added in the future, but for the time being it is your job
+to keep your private data private. Install a \s-1VPN\s0 or an encrypted tunnel if you
+statistics are confidential!
+.SS "Sanity checking"
+.IX Subsection "Sanity checking"
+There is no sanity checking.
 .PP
 The daemon will blindly write to any file it gets told, so you really should
 create a separate user just for this daemon. Also it does not do any sanity
 checks, so if it gets told to write values for a time far in the future, your
 files will be messed up good!
-.PP
+.SS "Conclusion"
+.IX Subsection "Conclusion"
+.IP "\(bu" 4
+Security is the job of the administrator.
+.IP "\(bu" 4
+We recommend to allow write access via \s-1UNIX\s0 domain sockets only.
+.IP "\(bu" 4
 You have been warned.
 .SH "PROTOCOL"
 .IX Header "PROTOCOL"
@@ -469,14 +517,12 @@ Examples:
 .PP
 .Vb 1
 \& 0 Success<LF>
-.Ve
-.PP
-.Vb 3
+\&
 \& 2 Two lines follow<LF>
 \& This is the first line<LF>
 \& And this is the second line<LF>
 .Ve
-.Sh "Valid Commands"
+.SS "Valid Commands"
 .IX Subsection "Valid Commands"
 The following commands are understood by the daemon:
 .IP "\fB\s-1FLUSH\s0\fR \fIfilename\fR" 4
@@ -568,7 +614,7 @@ message itself.  The first user command after \fB\s-1BATCH\s0\fR is command numb
 .Sp
 .Vb 9
 \&    client:  BATCH
-\&    server:  0 Go ahead.  End with dot '.' on its own line.
+\&    server:  0 Go ahead.  End with dot \*(Aq.\*(Aq on its own line.
 \&    client:  UPDATE x.rrd 1223661439:1:2:3            <\-\-\- command #1
 \&    client:  UPDATE y.rrd 1223661440:3:4:5            <\-\-\- command #2
 \&    client:  and so on...
@@ -580,7 +626,7 @@ message itself.  The first user command after \fB\s-1BATCH\s0\fR is command numb
 .IP "\fB\s-1QUIT\s0\fR" 4
 .IX Item "QUIT"
 Disconnect from rrdcached.
-.Sh "Performance Values"
+.SS "Performance Values"
 .IX Subsection "Performance Values"
 The following counters are returned by the \fB\s-1STATS\s0\fR command:
 .IP "\fBQueueLength\fR \fI(unsigned 64bit integer)\fR" 4
index 6bd0a37b83688856d9eff85d63bd4d4f0ea297f8..717be17ef38ce967e2c5f135a3527a9264351b43 100644 (file)
@@ -1,14 +1,18 @@
+<?xml version="1.0" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>rrdcached</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <link rev="made" href="mailto:root@localhost" />
 </head>
 
 <body style="background-color: white">
 
-<p><a name="__index__"></a></p>
+
 <!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
 <!--
 
 <ul>
        <li><a href="#error_reporting">ERROR REPORTING</a></li>
        <li><a href="#how_it_works">HOW IT WORKS</a></li>
        <li><a href="#security_considerations">SECURITY CONSIDERATIONS</a></li>
+       <ul>
+
+               <li><a href="#authentication">Authentication</a></li>
+               <li><a href="#authorization">Authorization</a></li>
+               <li><a href="#encryption">Encryption</a></li>
+               <li><a href="#sanity_checking">Sanity checking</a></li>
+               <li><a href="#conclusion">Conclusion</a></li>
+       </ul>
+
        <li><a href="#protocol">PROTOCOL</a></li>
        <ul>
 
        <li><a href="#author">AUTHOR</a></li>
        <li><a href="#contributors">CONTRIBUTORS</a></li>
 </ul>
+
 -->
+
+
+</div>
 <!-- INDEX END -->
 
 <p>
@@ -47,7 +64,8 @@
 <hr />
 <h1><a name="synopsis">SYNOPSIS</a></h1>
 <p><strong>rrdcached</strong>
-[<strong>-l/-L</strong>&nbsp;<em>address</em>]
+[<strong>-P</strong>&nbsp;<em>permissions</em>]
+[<strong>-l</strong>&nbsp;<em>address</em>]
 [<strong>-w</strong>&nbsp;<em>timeout</em>]
 [<strong>-z</strong>&nbsp;<em>delay</em>]
 [<strong>-f</strong>&nbsp;<em>timeout</em>]
@@ -77,135 +95,131 @@ section below.</p>
 <hr />
 <h1><a name="options">OPTIONS</a></h1>
 <dl>
-<dt><strong><a name="item__2dl_address"><strong>-l</strong> <em>address</em></a></strong><br />
-</dt>
+<dt><strong><a name="l_address" class="item"><strong>-l</strong> <em>address</em></a></strong></dt>
+
 <dd>
-Tells the daemon to bind to <em>address</em> and accept incoming connections on that
+<p>Tells the daemon to bind to <em>address</em> and accept incoming connections on that
 socket. If <em>address</em> begins with <code>unix:</code>, everything following that prefix is
 interpreted as the path to a UNIX domain socket. Otherwise the address or node
-name are resolved using <em>getaddrinfo</em>.
-</dd>
-<dd>
+name are resolved using <em>getaddrinfo</em>.</p>
 <p>For network sockets, a port may be specified by using the form
 <code>[address]:port</code>. If the address is an IPv4 address or a fully
 qualified domain name (i.&nbsp;e. the address contains at least one dot
 (<code>.</code>)), the square brackets can be omitted, resulting in the (simpler)
-<code>address:port</code> pattern.. The default port is <strong>42217/udp</strong>.</p>
-</dd>
-<dd>
+<code>address:port</code> pattern. The default port is <strong>42217/udp</strong>. If you
+specify a network socket, it is mandatory to read the
+<a href="#security_considerations">SECURITY CONSIDERATIONS</a> section.</p>
 <p>The following formats are accepted. Please note that the address of the UNIX
 domain socket <strong>must</strong> start with a slash in the second case!</p>
-</dd>
-<dd>
 <pre>
    unix:&lt;/path/to/unix.sock&gt;
    /&lt;path/to/unix.sock&gt;
    &lt;hostname-or-ip&gt;
    [&lt;hostname-or-ip&gt;]:&lt;port&gt;
    &lt;hostname-or-ipv4&gt;:&lt;port&gt;</pre>
-</dd>
-<dd>
 <p>If the <strong>-l</strong> option is not specified the default address,
 <code>unix:/tmp/rrdcached.sock</code>, will be used.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2dl_address"><strong>-L</strong> <em>address</em></a></strong><br />
-</dt>
+<dt><strong><a name="p_command_command" class="item"><strong>-P</strong> <em>command</em>[,<em>command</em>[,...]]</a></strong></dt>
+
 <dd>
-Same as <strong>-l</strong>, except creates a low-privilege socket.  See <strong>SECURITY
-CONSIDERATIONS</strong> for more information.
+<p>Specifies the commands accepted via a network socket. This allows
+administrators of <em>RRDCacheD</em> to control the actions accepted from various
+sources.</p>
+<p>The arguments given to the <strong>-P</strong> option is a comma separated list of commands.
+For example, to allow the <code>FLUSH</code> and <code>PENDING</code> commands one could specify:</p>
+<pre>
+  rrdcached -P FLUSH,PENDING $MORE_ARGUMENTS</pre>
+<p>The <strong>-P</strong> option effects the <em>following</em> socket addresses (the following <strong>-l</strong>
+options). In the following example, only the IPv4 network socket (address
+<code>10.0.0.1</code>) will be restricted to the <code>FLUSH</code> and <code>PENDING</code> commands:</p>
+<pre>
+  rrdcached -l unix:/some/path -P FLUSH,PENDING -l 10.0.0.1</pre>
+<p>A complete list of available commands can be found in the section
+<a href="#valid_commands">Valid Commands</a> below. There are two minor special exceptions:</p>
+<ul>
+<li>
+<p>The <code>HELP</code> and <a href="#quit"><code>QUIT</code></a> commands are always allowed.</p>
+</li>
+<li>
+<p>If the <a href="#batch"><code>BATCH</code></a> command is accepted, the <strong>.</strong>&nbsp;command will automatically
+be accepted, too.</p>
+</li>
+</ul>
+<p>Please also read <a href="#security_considerations">SECURITY CONSIDERATIONS</a> below.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2dw_timeout"><strong>-w</strong> <em>timeout</em></a></strong><br />
-</dt>
+<dt><strong><a name="w_timeout" class="item"><strong>-w</strong> <em>timeout</em></a></strong></dt>
+
 <dd>
-Data is written to disk every <em>timeout</em> seconds. If this option is not
-specified the default interval of 300&nbsp;seconds will be used.
+<p>Data is written to disk every <em>timeout</em> seconds. If this option is not
+specified the default interval of 300&nbsp;seconds will be used.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2dz_delay"><strong>-z</strong> <em>delay</em></a></strong><br />
-</dt>
+<dt><strong><a name="z_delay" class="item"><strong>-z</strong> <em>delay</em></a></strong></dt>
+
 <dd>
-If specified, rrdcached will delay writing of each RRD for a random number
+<p>If specified, rrdcached will delay writing of each RRD for a random number
 of seconds in the range&nbsp;[0,<em>delay</em>).  This will avoid too many
 writes being queued simultaneously.  This value should be no greater than
-the value specified in <strong>-w</strong>.  By default, there is no delay.
+the value specified in <strong>-w</strong>.  By default, there is no delay.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2df_timeout"><strong>-f</strong> <em>timeout</em></a></strong><br />
-</dt>
+<dt><strong><a name="f_timeout" class="item"><strong>-f</strong> <em>timeout</em></a></strong></dt>
+
 <dd>
-Every <em>timeout</em> seconds the entire cache is searched for old values which are
+<p>Every <em>timeout</em> seconds the entire cache is searched for old values which are
 written to disk. This only concerns files to which updates have stopped, so
 setting this to a high value, such as 3600&nbsp;seconds, is acceptable in most
-cases. This timeout defaults to 3600&nbsp;seconds.
+cases. This timeout defaults to 3600&nbsp;seconds.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2dp_file"><strong>-p</strong> <em>file</em></a></strong><br />
-</dt>
+<dt><strong><a name="p_file" class="item"><strong>-p</strong> <em>file</em></a></strong></dt>
+
 <dd>
-Sets the name and location of the PID-file. If not specified, the default,
-<code>$localststedir/run/rrdcached.pid</code> will be used.
+<p>Sets the name and location of the PID-file. If not specified, the default,
+<code>$localststedir/run/rrdcached.pid</code> will be used.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2dt_write_threads"><strong>-t</strong> <em>write_threads</em></a></strong><br />
-</dt>
+<dt><strong><a name="t_write_threads" class="item"><strong>-t</strong> <em>write_threads</em></a></strong></dt>
+
 <dd>
-Specifies the number of threads used for writing RRD files.  The default
+<p>Specifies the number of threads used for writing RRD files.  The default
 is&nbsp;4.  Increasing this number will allow rrdcached to have more
 simultaneous I/O requests into the kernel.  This may allow the kernel to
-re-order disk writes, resulting in better disk throughput.
+re-order disk writes, resulting in better disk throughput.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2dj_dir"><strong>-j</strong> <em>dir</em></a></strong><br />
-</dt>
+<dt><strong><a name="j_dir" class="item"><strong>-j</strong> <em>dir</em></a></strong></dt>
+
 <dd>
-Write updates to a journal in <em>dir</em>.  In the event of a program or system
+<p>Write updates to a journal in <em>dir</em>.  In the event of a program or system
 crash, this will allow the daemon to write any updates that were pending
-at the time of the crash.
-</dd>
-<dd>
+at the time of the crash.</p>
 <p>On startup, the daemon will check for journal files in this directory.  If
 found, all updates therein will be read into memory before the daemon
 starts accepting new connections.</p>
-</dd>
-<dd>
 <p>The journal will be rotated with the same frequency as the flush timer
 given by <strong>-f</strong>.</p>
-</dd>
-<dd>
 <p>When journaling is enabled, the daemon will use a fast shutdown procedure.
 Rather than flushing all files to disk, it will make sure the journal is
 properly written and exit immediately.  Although the RRD data files are
 not fully up-to-date, no information is lost; all pending updates will be
 replayed from the journal next time the daemon starts up.</p>
-</dd>
-<dd>
 <p>To disable fast shutdown, use the <strong>-F</strong> option.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2df"><strong>-F</strong></a></strong><br />
-</dt>
+<dt><strong><a name="f" class="item"><strong>-F</strong></a></strong></dt>
+
 <dd>
-ALWAYS flush all updates to the RRD data files when the daemon is shut
-down, regardless of journal setting.
+<p>ALWAYS flush all updates to the RRD data files when the daemon is shut
+down, regardless of journal setting.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2dg"><strong>-g</strong></a></strong><br />
-</dt>
+<dt><strong><a name="g" class="item"><strong>-g</strong></a></strong></dt>
+
 <dd>
-Run in the foreground.  The daemon will not fork().
+<p>Run in the foreground.  The daemon will not <code>fork()</code>.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2db_dir"><strong>-b</strong> <em>dir</em></a></strong><br />
-</dt>
+<dt><strong><a name="b_dir" class="item"><strong>-b</strong> <em>dir</em></a></strong></dt>
+
 <dd>
-The daemon will change into a specific directory at startup. All files passed
+<p>The daemon will change into a specific directory at startup. All files passed
 to the daemon, that are specified by a <strong>relative</strong> path, will be interpreted
 to be relative to this directory. If not given the default, <code>/tmp</code>, will be
-used.
-</dd>
-<dd>
+used.</p>
 <pre>
   +------------------------+------------------------+
   ! Command line           ! File updated           !
@@ -217,34 +231,25 @@ used.
   Paths given on the command  line and paths actually
   updated by the daemon,  assuming the base directory
   &quot;/tmp&quot;.</pre>
-</dd>
-<dd>
 <p><strong>WARNING:</strong> The paths up to and including the base directory <strong>MUST NOT BE</strong>
 symbolic links.  In other words, if the base directory is
 specified as:</p>
-</dd>
-<dd>
 <pre>
     -b /base/dir/somewhere</pre>
-</dd>
-<dd>
 <p>... then <strong>NONE</strong> of the following should be symbolic links:</p>
-</dd>
-<dd>
 <pre>
     /base
     /base/dir
     /base/dir/somewhere</pre>
 </dd>
-<p></p>
-<dt><strong><a name="item__2db"><strong>-B</strong></a></strong><br />
-</dt>
+<dt><strong><a name="b" class="item"><strong>-B</strong></a></strong></dt>
+
 <dd>
-Only permit writes into the base directory specified in <strong>-b</strong> (and any
+<p>Only permit writes into the base directory specified in <strong>-b</strong> (and any
 sub-directories).  This does <strong>NOT</strong> detect symbolic links.  Paths
-containing <code>../</code> will also be blocked.
+containing <code>../</code> will also be blocked.</p>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <hr />
@@ -252,26 +257,26 @@ containing <code>../</code> will also be blocked.
 <p>The following commands may be made aware of the <strong>rrdcached</strong> using the command
 line argument <strong>--daemon</strong> or the environment variable <strong>RRDCACHED_ADDRESS</strong>:</p>
 <dl>
-<dt><strong><a name="item_dump"><strong>dump</strong></a></strong><br />
-</dt>
-<dt><strong><a name="item_fetch"><strong>fetch</strong></a></strong><br />
-</dt>
-<dt><strong><a name="item_flush"><strong>flush</strong></a></strong><br />
-</dt>
-<dt><strong><a name="item_graph"><strong>graph</strong></a></strong><br />
-</dt>
-<dt><strong><a name="item_graphv"><strong>graphv</strong></a></strong><br />
-</dt>
-<dt><strong><a name="item_info"><strong>info</strong></a></strong><br />
-</dt>
-<dt><strong><a name="item_last"><strong>last</strong></a></strong><br />
-</dt>
-<dt><strong><a name="item_lastupdate"><strong>lastupdate</strong></a></strong><br />
-</dt>
-<dt><strong><a name="item_update"><strong>update</strong></a></strong><br />
-</dt>
-<dt><strong><a name="item_xport"><strong>xport</strong></a></strong><br />
-</dt>
+<dt><strong><a name="dump" class="item"><strong>dump</strong></a></strong></dt>
+
+<dt><strong><a name="fetch" class="item"><strong>fetch</strong></a></strong></dt>
+
+<dt><strong><a name="flush" class="item"><strong>flush</strong></a></strong></dt>
+
+<dt><strong><a name="graph" class="item"><strong>graph</strong></a></strong></dt>
+
+<dt><strong><a name="graphv" class="item"><strong>graphv</strong></a></strong></dt>
+
+<dt><strong><a name="info" class="item"><strong>info</strong></a></strong></dt>
+
+<dt><strong><a name="last" class="item"><strong>last</strong></a></strong></dt>
+
+<dt><strong><a name="lastupdate" class="item"><strong>lastupdate</strong></a></strong></dt>
+
+<dt><strong><a name="update" class="item"><strong>update</strong></a></strong></dt>
+
+<dt><strong><a name="xport" class="item"><strong>xport</strong></a></strong></dt>
+
 </dl>
 <p>The <strong>update</strong> command can send values to the daemon instead of writing them to
 the disk itself. All other commands can send a <strong>FLUSH</strong> command (see below) to
@@ -293,32 +298,32 @@ to the system logging daemon using <em>syslog(3)</em>. The facility used is
 <h1><a name="how_it_works">HOW IT WORKS</a></h1>
 <p>When receiving an update, <strong>rrdcached</strong> does not write to disk but looks for an
 entry for that file in its internal tree. If not found, an entry is created
-including the current time (called ``First'' in the diagram below). This time is
+including the current time (called &quot;First&quot; in the diagram below). This time is
 <strong>not</strong> the time specified on the command line but the time the operating system
-considers to be ``now''. The value and time of the value (called ``Time'' in the
+considers to be &quot;now&quot;. The value and time of the value (called &quot;Time&quot; in the
 diagram below) are appended to the tree node.</p>
 <p>When appending a value to a tree node, it is checked whether it's time to write
 the values to disk. Values are written to disk if
 <code>now()&nbsp;-&nbsp;First&nbsp;&gt;=&nbsp;timeout</code>, where <code>timeout</code> is the timeout specified
-using the <strong>-w</strong> option, see <em>OPTIONS</em>. If the values are ``old enough'' they
-will be enqueued in the ``update queue'', i.&nbsp;e. they will be appended to
+using the <strong>-w</strong> option, see <em>OPTIONS</em>. If the values are &quot;old enough&quot; they
+will be enqueued in the &quot;update queue&quot;, i.&nbsp;e. they will be appended to
 the linked list shown below.  Because the tree nodes and the elements of the
 linked list are the same data structures in memory, any update to a file that
 has already been enqueued will be written with the next write to the RRD file,
 too.</p>
-<p>A separate ``update thread'' constantly dequeues the first element in the update
+<p>A separate &quot;update thread&quot; constantly dequeues the first element in the update
 queue and writes all its values to the appropriate file. So as long as the
 update queue is not empty files are written at the highest possible rate.</p>
 <p>Since the timeout of files is checked only when new values are added to the
-file, ``dead'' files, i.&nbsp;e. files that are not updated anymore, would never
+file, &quot;dead&quot; files, i.&nbsp;e. files that are not updated anymore, would never
 be written to disk. Therefore, every now and then, controlled by the <strong>-f</strong>
-option, the entire tree is walked and all ``old'' values are enqueued. Since this
-only affects ``dead'' files and walking the tree is relatively expensive, you
-should set the ``flush interval'' to a reasonably high value. The default is
+option, the entire tree is walked and all &quot;old&quot; values are enqueued. Since this
+only affects &quot;dead&quot; files and walking the tree is relatively expensive, you
+should set the &quot;flush interval&quot; to a reasonably high value. The default is
 3600&nbsp;seconds (one hour).</p>
 <p>The downside of caching values is that they won't show up in graphs generated
-from the RRD&nbsp;files. To get around this, the daemon provides the ``flush
-command'' to flush specific files. This means that the file is inserted at the
+from the RRD&nbsp;files. To get around this, the daemon provides the &quot;flush
+command&quot; to flush specific files. This means that the file is inserted at the
 <strong>head</strong> of the update queue or moved there if it is already enqueued. The flush
 command will return only after the file's pending updates have been written
 to disk.</p>
@@ -350,62 +355,81 @@ to disk.</p>
  +------------+    +------------+             +------------+</pre>
 <p>The above diagram demonstrates:</p>
 <ul>
-<li></li>
-Files/values are stored in a (balanced) tree.
-<p></p>
-<li></li>
-Tree nodes and entries in the update queue are the same data structure.
-<p></p>
-<li></li>
-The local time (``First'') and the time specified in updates (``Time'') may differ.
-<p></p>
-<li></li>
-Timed out values are inserted at the ``tail''.
-<p></p>
-<li></li>
-Explicitly flushed values are inserted at the ``head''.
-<p></p>
-<li></li>
-ASCII art rocks.
-<p></p></ul>
+<li>
+<p>Files/values are stored in a (balanced) tree.</p>
+</li>
+<li>
+<p>Tree nodes and entries in the update queue are the same data structure.</p>
+</li>
+<li>
+<p>The local time (&quot;First&quot;) and the time specified in updates (&quot;Time&quot;) may differ.</p>
+</li>
+<li>
+<p>Timed out values are inserted at the &quot;tail&quot;.</p>
+</li>
+<li>
+<p>Explicitly flushed values are inserted at the &quot;head&quot;.</p>
+</li>
+<li>
+<p>ASCII art rocks.</p>
+</li>
+</ul>
 <p>
 </p>
 <hr />
 <h1><a name="security_considerations">SECURITY CONSIDERATIONS</a></h1>
-<p>The client/server protocol does not have any authentication or
-authorization mechanism.  Therefore, take care to restrict which users can
-connect to the daemon.</p>
-<p>Control sockets are divided into high-privilege (<strong>-l</strong>) and low-privilege
-(<strong>-L</strong>) sockets.  High-privilege sockets accept all commands, whereas
-low-privilege sockets accept only <strong>FLUSH</strong>, <strong>STATS</strong>, and <strong>HELP</strong>.</p>
-<p>For a multi-user environment where only certain users require read/write
-access, the recommended configuration uses two sockets as follows:</p>
-<dl>
-<dt><strong><a name="item__2dl__2fprotected_2fdir_2frrd_2esock"><strong>-l</strong> <em>/protected/dir/rrd.sock</em></a></strong><br />
-</dt>
-<dd>
-Create a high-privilege unix-domain socket.  This should be protected with
-the same Unix permissions that are used to protect the RRD files.  Updates
-should be directed to this socket.
-</dd>
-<p></p>
-<dt><strong><a name="item__2dl_127_2e0_2e0_2e1"><strong>-L</strong> <em>127.0.0.1</em></a></strong><br />
-</dt>
-<dd>
-Create a low-privilege TCP socket listening on localhost.  All users on
-the local system may use this to trigger FLUSH of individual files.  Users
-with read-only access should be directed to this socket.
-</dd>
-<p></p></dl>
-<p>If you (want to) use the network capability, i.&nbsp;e. let the daemon bind to
-an IPv4 or IPv6 socket, it is <strong>your</strong> job to install a packet filter or similar
-mechanism to prevent unauthorized connections. Unless you have a dedicated VLAN
-or VPN for this, using the network option is probably a bad idea!</p>
+<p>
+</p>
+<h2><a name="authentication">Authentication</a></h2>
+<p>There is no authentication.</p>
+<p>The client/server protocol does not yet have any authentication mechanism. It
+is likely that authentication and encryption will be added in a future version,
+but for the time being it is the administrator's responsibility to secure the
+traffic from/to the daemon!</p>
+<p>It is highly recommended to install a packet filter or similar mechanism to
+prevent unauthorized connections. Unless you have a dedicated VLAN or VPN for
+this, using network sockets is probably a bad idea!</p>
+<p>
+</p>
+<h2><a name="authorization">Authorization</a></h2>
+<p>There is minimal per-socket authorization.</p>
+<p>Authorization is currently done on a per-socket basis. That means each socket
+has a list of commands it will accept and it will accept. It will accept only
+those commands explicitly listed but it will (currently) accept these commands
+from anyone reaching the socket.</p>
+<p>If the networking sockets are to be used, it is necessary to restrict the
+accepted commands to those needed by external clients. If, for example,
+external clients want to draw graphs of the cached data, they should only be
+allowed to use the <code>FLUSH</code> command.</p>
+<p>
+</p>
+<h2><a name="encryption">Encryption</a></h2>
+<p>There is no encryption.</p>
+<p>Again, this may be added in the future, but for the time being it is your job
+to keep your private data private. Install a VPN or an encrypted tunnel if you
+statistics are confidential!</p>
+<p>
+</p>
+<h2><a name="sanity_checking">Sanity checking</a></h2>
+<p>There is no sanity checking.</p>
 <p>The daemon will blindly write to any file it gets told, so you really should
 create a separate user just for this daemon. Also it does not do any sanity
 checks, so if it gets told to write values for a time far in the future, your
 files will be messed up good!</p>
+<p>
+</p>
+<h2><a name="conclusion">Conclusion</a></h2>
+<ul>
+<li>
+<p>Security is the job of the administrator.</p>
+</li>
+<li>
+<p>We recommend to allow write access via UNIX domain sockets only.</p>
+</li>
+<li>
 <p>You have been warned.</p>
+</li>
+</ul>
 <p>
 </p>
 <hr />
@@ -413,13 +437,13 @@ files will be messed up good!</p>
 <p>The daemon communicates with clients using a line based ASCII protocol which is
 easy to read and easy to type. This makes it easy for scripts to implement the
 protocol and possible for users to use <em>telnet</em> to connect to the daemon
-and test stuff ``by hand''.</p>
+and test stuff &quot;by hand&quot;.</p>
 <p>The protocol is line based, this means that each record consists of one or more
 lines. A line is terminated by the line feed character <code>0x0A</code>, commonly
 written as <code>\n</code>. In the examples below, this character will be written as
-<code>&lt;LF&gt;</code> (``line feed'').</p>
+<code>&lt;LF&gt;</code> (&quot;line feed&quot;).</p>
 <p>After the connection has been established, the client is expected to send a
-``command''. A command consists of the command keyword, possibly some arguments,
+&quot;command&quot;. A command consists of the command keyword, possibly some arguments,
 and a terminating newline character. For a list of commands, see
 <a href="#valid_commands">Valid Commands</a> below.</p>
 <p>Example:</p>
@@ -442,72 +466,58 @@ status line.</p>
 <h2><a name="valid_commands">Valid Commands</a></h2>
 <p>The following commands are understood by the daemon:</p>
 <dl>
-<dt><strong><a name="item_flush_filename"><strong>FLUSH</strong> <em>filename</em></a></strong><br />
-</dt>
+<dt><strong><a name="flush_filename" class="item"><strong>FLUSH</strong> <em>filename</em></a></strong></dt>
+
 <dd>
-Causes the daemon to put <em>filename</em> to the <strong>head</strong> of the update queue
+<p>Causes the daemon to put <em>filename</em> to the <strong>head</strong> of the update queue
 (possibly moving it there if the node is already enqueued). The answer will be
-sent <strong>after</strong> the node has been dequeued.
+sent <strong>after</strong> the node has been dequeued.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_flushall"><strong>FLUSHALL</strong></a></strong><br />
-</dt>
+<dt><strong><a name="flushall" class="item"><strong>FLUSHALL</strong></a></strong></dt>
+
 <dd>
-Causes the daemon to start flushing ALL pending values to disk.  This
-returns immediately, even though the writes may take a long time.
+<p>Causes the daemon to start flushing ALL pending values to disk.  This
+returns immediately, even though the writes may take a long time.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_pending_filename"><strong>PENDING</strong> <em>filename</em></a></strong><br />
-</dt>
+<dt><strong><a name="pending_filename" class="item"><strong>PENDING</strong> <em>filename</em></a></strong></dt>
+
 <dd>
-Shows any ``pending'' updates for a file, in order.  The updates shown have
-not yet been written to the underlying RRD file.
+<p>Shows any &quot;pending&quot; updates for a file, in order.  The updates shown have
+not yet been written to the underlying RRD file.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_forget_filename"><strong>FORGET</strong> <em>filename</em></a></strong><br />
-</dt>
+<dt><strong><a name="forget_filename" class="item"><strong>FORGET</strong> <em>filename</em></a></strong></dt>
+
 <dd>
-Removes <em>filename</em> from the cache.  Any pending updates <strong>WILL BE LOST</strong>.
+<p>Removes <em>filename</em> from the cache.  Any pending updates <strong>WILL BE LOST</strong>.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_queue"><strong>QUEUE</strong></a></strong><br />
-</dt>
+<dt><strong><a name="queue" class="item"><strong>QUEUE</strong></a></strong></dt>
+
 <dd>
-Shows the files that are on the output queue.  Returns zero or more lines
+<p>Shows the files that are on the output queue.  Returns zero or more lines
 in the following format, where &lt;num_vals&gt; is the number of values
-to be written for the &lt;file&gt;:
-</dd>
-<dd>
+to be written for the &lt;file&gt;:</p>
 <pre>
     &lt;num_vals&gt; &lt;file&gt;</pre>
 </dd>
-<p></p>
-<dt><strong><a name="item_help__5bcommand_5d"><strong>HELP</strong> [<em>command</em>]</a></strong><br />
-</dt>
+<dt><strong><a name="help_command" class="item"><strong>HELP</strong> [<em>command</em>]</a></strong></dt>
+
 <dd>
-Returns a short usage message. If no command is given, or <em>command</em> is
+<p>Returns a short usage message. If no command is given, or <em>command</em> is
 <strong>HELP</strong>, a list of commands supported by the daemon is returned. Otherwise a
 short description, possibly containing a pointer to a manual page, is returned.
 Obviously, this is meant for interactive usage and the format in which the
-commands and usage summaries are returned is not well defined.
+commands and usage summaries are returned is not well defined.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_stats"><strong>STATS</strong></a></strong><br />
-</dt>
+<dt><strong><a name="stats" class="item"><strong>STATS</strong></a></strong></dt>
+
 <dd>
-Returns a list of metrics which can be used to measure the daemons performance
+<p>Returns a list of metrics which can be used to measure the daemons performance
 and check its status. For a description of the values returned, see
-<a href="#performance_values">Performance Values</a> below.
-</dd>
-<dd>
+<a href="#performance_values">Performance Values</a> below.</p>
 <p>The format in which the values are returned is similar to many other line based
 protocols: Each value is printed on a separate line, each consisting of the
 name of the value, a colon, one or more spaces and the actual value.</p>
-</dd>
-<dd>
 <p>Example:</p>
-</dd>
-<dd>
 <pre>
  9 Statistics follow
  QueueLength: 0
@@ -520,49 +530,38 @@ name of the value, a colon, one or more spaces and the actual value.</p>
  JournalBytes: 190
  JournalRotate: 0</pre>
 </dd>
-<p></p>
-<dt><strong><a name="item_update_filename_values__5bvalues__2e_2e_2e_5d"><strong>UPDATE</strong> <em>filename</em> <em>values</em> [<em>values</em> ...]</a></strong><br />
-</dt>
+<dt><strong><a name="update_filename_values_values" class="item"><strong>UPDATE</strong> <em>filename</em> <em>values</em> [<em>values</em> ...]</a></strong></dt>
+
 <dd>
-Adds more data to a filename. This is <strong>the</strong> operation the daemon was designed
+<p>Adds more data to a filename. This is <strong>the</strong> operation the daemon was designed
 for, so describing the mechanism again is unnecessary. Read <a href="#how_it_works">HOW IT WORKS</a>
-above for a detailed explanation.
-</dd>
-<dd>
+above for a detailed explanation.</p>
 <p>Note that rrdcached only accepts absolute timestamps in the update values.
-Updates strings like ``N:1:2:3'' are automatically converted to absolute
+Updates strings like &quot;N:1:2:3&quot; are automatically converted to absolute
 time by the RRD client library before sending to rrdcached.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_wrote_filename"><strong>WROTE</strong> <em>filename</em></a></strong><br />
-</dt>
+<dt><strong><a name="wrote_filename" class="item"><strong>WROTE</strong> <em>filename</em></a></strong></dt>
+
 <dd>
-This command is written to the journal after a file is successfully
+<p>This command is written to the journal after a file is successfully
 written out to disk.  It is used during journal replay to determine which
 updates have already been applied.  It is <em>only</em> valid in the journal; it
-is not accepted from the other command channels.
+is not accepted from the other command channels.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_batch"><strong>BATCH</strong></a></strong><br />
-</dt>
+<dt><strong><a name="batch" class="item"><strong>BATCH</strong></a></strong></dt>
+
 <dd>
-This command initiates the bulk load of multiple commands.  This is
+<p>This command initiates the bulk load of multiple commands.  This is
 designed for installations with extremely high update rates, since it
-permits more than one command to be issued per <code>read()</code> and write().
-</dd>
-<dd>
+permits more than one command to be issued per <code>read()</code> and <code>write()</code>.</p>
 <p>All commands are executed just as they would be if given individually,
 except for output to the user.  Messages indicating success are
 suppressed, and error messages are delayed until the client is finished.</p>
-</dd>
-<dd>
-<p>Command processing is finished when the client sends a dot (``.'') on its
+<p>Command processing is finished when the client sends a dot (&quot;.&quot;) on its
 own line.  After the client has finished, the server responds with an
 error count and the list of error messages (if any).  Each error messages
 indicates the number of the command to which it corresponds, and the error
 message itself.  The first user command after <strong>BATCH</strong> is command number one.</p>
-</dd>
-<dd>
 <pre>
     client:  BATCH
     server:  0 Go ahead.  End with dot '.' on its own line.
@@ -574,105 +573,94 @@ message itself.  The first user command after <strong>BATCH</strong> is command
     server:  1 message for command 1
     server:  12 message for command 12</pre>
 </dd>
-<p></p>
-<dt><strong><a name="item_quit"><strong>QUIT</strong></a></strong><br />
-</dt>
+<dt><strong><a name="quit" class="item"><strong>QUIT</strong></a></strong></dt>
+
 <dd>
-Disconnect from rrdcached.
+<p>Disconnect from rrdcached.</p>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <h2><a name="performance_values">Performance Values</a></h2>
 <p>The following counters are returned by the <strong>STATS</strong> command:</p>
 <dl>
-<dt><strong><a name="item_queuelength"><strong>QueueLength</strong> <em>(unsigned 64bit integer)</em></a></strong><br />
-</dt>
+<dt><strong><a name="queuelength" class="item"><strong>QueueLength</strong> <em>(unsigned 64bit integer)</em></a></strong></dt>
+
 <dd>
-Number of nodes currently enqueued in the update queue.
+<p>Number of nodes currently enqueued in the update queue.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_updatesreceived"><strong>UpdatesReceived</strong> <em>(unsigned 64bit integer)</em></a></strong><br />
-</dt>
+<dt><strong><a name="updatesreceived" class="item"><strong>UpdatesReceived</strong> <em>(unsigned 64bit integer)</em></a></strong></dt>
+
 <dd>
-Number of UPDATE commands received.
+<p>Number of UPDATE commands received.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_flushesreceived"><strong>FlushesReceived</strong> <em>(unsigned 64bit integer)</em></a></strong><br />
-</dt>
+<dt><strong><a name="flushesreceived" class="item"><strong>FlushesReceived</strong> <em>(unsigned 64bit integer)</em></a></strong></dt>
+
 <dd>
-Number of FLUSH commands received.
+<p>Number of FLUSH commands received.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_updateswritten"><strong>UpdatesWritten</strong> <em>(unsigned 64bit integer)</em></a></strong><br />
-</dt>
+<dt><strong><a name="updateswritten" class="item"><strong>UpdatesWritten</strong> <em>(unsigned 64bit integer)</em></a></strong></dt>
+
 <dd>
-Total number of updates, i.&nbsp;e. calls to <code>rrd_update_r</code>, since the
-daemon was started.
+<p>Total number of updates, i.&nbsp;e. calls to <code>rrd_update_r</code>, since the
+daemon was started.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_datasetswritten"><strong>DataSetsWritten</strong> <em>(unsigned 64bit integer)</em></a></strong><br />
-</dt>
+<dt><strong><a name="datasetswritten" class="item"><strong>DataSetsWritten</strong> <em>(unsigned 64bit integer)</em></a></strong></dt>
+
 <dd>
-Total number of ``data sets'' written to disk since the daemon was
+<p>Total number of &quot;data sets&quot; written to disk since the daemon was
 started. A data set is one or more values passed to the <strong>UPDATE</strong>
 command. For example: <code>1223661439:123:456</code> is one data set with two
-values. The term ``data set'' is used to prevent confusion whether
-individual values or groups of values are counted.
+values. The term &quot;data set&quot; is used to prevent confusion whether
+individual values or groups of values are counted.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_treenodesnumber"><strong>TreeNodesNumber</strong> <em>(unsigned 64bit integer)</em></a></strong><br />
-</dt>
+<dt><strong><a name="treenodesnumber" class="item"><strong>TreeNodesNumber</strong> <em>(unsigned 64bit integer)</em></a></strong></dt>
+
 <dd>
-Number of nodes in the cache.
+<p>Number of nodes in the cache.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_treedepth"><strong>TreeDepth</strong> <em>(unsigned 64bit integer)</em></a></strong><br />
-</dt>
+<dt><strong><a name="treedepth" class="item"><strong>TreeDepth</strong> <em>(unsigned 64bit integer)</em></a></strong></dt>
+
 <dd>
-Depth of the tree used for fast key lookup.
+<p>Depth of the tree used for fast key lookup.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_journalbytes"><strong>JournalBytes</strong> <em>(unsigned 64bit integer)</em></a></strong><br />
-</dt>
+<dt><strong><a name="journalbytes" class="item"><strong>JournalBytes</strong> <em>(unsigned 64bit integer)</em></a></strong></dt>
+
 <dd>
-Total number of bytes written to the journal since startup.
+<p>Total number of bytes written to the journal since startup.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_journalrotate"><strong>JournalRotate</strong> <em>(unsigned 64bit integer)</em></a></strong><br />
-</dt>
+<dt><strong><a name="journalrotate" class="item"><strong>JournalRotate</strong> <em>(unsigned 64bit integer)</em></a></strong></dt>
+
 <dd>
-Number of times the journal has been rotated since startup.
+<p>Number of times the journal has been rotated since startup.</p>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <hr />
 <h1><a name="signals">SIGNALS</a></h1>
 <dl>
-<dt><strong><a name="item_sigint_and_sigterm">SIGINT and SIGTERM</a></strong><br />
-</dt>
+<dt><strong><a name="sigint_and_sigterm" class="item">SIGINT and SIGTERM</a></strong></dt>
+
 <dd>
-The daemon exits normally on receipt of either of these signals.  Pending
-updates are handled in accordance with the <strong>-j</strong> and <strong>-F</strong> options.
+<p>The daemon exits normally on receipt of either of these signals.  Pending
+updates are handled in accordance with the <strong>-j</strong> and <strong>-F</strong> options.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_sigusr1">SIGUSR1</a></strong><br />
-</dt>
+<dt><strong><a name="sigusr1" class="item">SIGUSR1</a></strong></dt>
+
 <dd>
-The daemon exits AFTER flushing all updates out to disk.  This may take a
-while.
+<p>The daemon exits AFTER flushing all updates out to disk.  This may take a
+while.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_sigusr2">SIGUSR2</a></strong><br />
-</dt>
+<dt><strong><a name="sigusr2" class="item">SIGUSR2</a></strong></dt>
+
 <dd>
-The daemon exits immediately, without flushing updates out to disk.
+<p>The daemon exits immediately, without flushing updates out to disk.
 Pending updates will be replayed from the journal when the daemon starts
 up again.  <strong>WARNING: if journaling (-j) is NOT enabled, any pending
-updates WILL BE LOST</strong>.
+updates WILL BE LOST</strong>.</p>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <hr />
index 5113c2d521e9f7767a7221c4cb58cde834231dea..460899c0df22086c3a913e7d783006000af87947 100644 (file)
@@ -7,7 +7,8 @@ rrdcached - Data caching daemon for rrdtool
 =head1 SYNOPSIS
 
 B<rrdcached>
-[B<-l/-L>E<nbsp>I<address>]
+[B<-P>E<nbsp>I<permissions>]
+[B<-l>E<nbsp>I<address>]
 [B<-w>E<nbsp>I<timeout>]
 [B<-z>E<nbsp>I<delay>]
 [B<-f>E<nbsp>I<timeout>]
@@ -48,7 +49,9 @@ For network sockets, a port may be specified by using the form
 C<B<[>I<address>B<]:>I<port>>. If the address is an IPv4 address or a fully
 qualified domain name (i.E<nbsp>e. the address contains at least one dot
 (C<.>)), the square brackets can be omitted, resulting in the (simpler)
-C<I<address>B<:>I<port>> pattern.. The default port is B<42217/udp>.
+C<I<address>B<:>I<port>> pattern. The default port is B<42217/udp>. If you
+specify a network socket, it is mandatory to read the
+L</"SECURITY CONSIDERATIONS"> section.
 
 The following formats are accepted. Please note that the address of the UNIX
 domain socket B<must> start with a slash in the second case!
@@ -62,10 +65,40 @@ domain socket B<must> start with a slash in the second case!
 If the B<-l> option is not specified the default address,
 C<unix:/tmp/rrdcached.sock>, will be used.
 
-=item B<-L> I<address>
+=item B<-P> I<command>[,I<command>[,...]]
 
-Same as B<-l>, except creates a low-privilege socket.  See B<SECURITY
-CONSIDERATIONS> for more information.
+Specifies the commands accepted via a network socket. This allows
+administrators of I<RRDCacheD> to control the actions accepted from various
+sources.
+
+The arguments given to the B<-P> option is a comma separated list of commands.
+For example, to allow the C<FLUSH> and C<PENDING> commands one could specify:
+
+  rrdcached -P FLUSH,PENDING $MORE_ARGUMENTS
+
+The B<-P> option effects the I<following> socket addresses (the following B<-l>
+options). In the following example, only the IPv4 network socket (address
+C<10.0.0.1>) will be restricted to the C<FLUSH> and C<PENDING> commands:
+
+  rrdcached -l unix:/some/path -P FLUSH,PENDING -l 10.0.0.1
+
+A complete list of available commands can be found in the section
+L</"Valid Commands"> below. There are two minor special exceptions:
+
+=over 4
+
+=item *
+
+The C<HELP> and C<QUIT> commands are always allowed.
+
+=item *
+
+If the C<BATCH> command is accepted, the B<.>E<nbsp>command will automatically
+be accepted, too.
+
+=back
+
+Please also read L</"SECURITY CONSIDERATIONS"> below.
 
 =item B<-w> I<timeout>
 
@@ -305,45 +338,68 @@ ASCII art rocks.
 
 =head1 SECURITY CONSIDERATIONS
 
-The client/server protocol does not have any authentication or
-authorization mechanism.  Therefore, take care to restrict which users can
-connect to the daemon.
+=head2 Authentication
 
-Control sockets are divided into high-privilege (B<-l>) and low-privilege
-(B<-L>) sockets.  High-privilege sockets accept all commands, whereas
-low-privilege sockets accept only B<FLUSH>, B<STATS>, and B<HELP>.
+There is no authentication.
 
-For a multi-user environment where only certain users require read/write
-access, the recommended configuration uses two sockets as follows:
+The client/server protocol does not yet have any authentication mechanism. It
+is likely that authentication and encryption will be added in a future version,
+but for the time being it is the administrator's responsibility to secure the
+traffic from/to the daemon!
 
-=over
+It is highly recommended to install a packet filter or similar mechanism to
+prevent unauthorized connections. Unless you have a dedicated VLAN or VPN for
+this, using network sockets is probably a bad idea!
 
-=item B<-l> I</protected/dir/rrd.sock>
+=head2 Authorization
 
-Create a high-privilege unix-domain socket.  This should be protected with
-the same Unix permissions that are used to protect the RRD files.  Updates
-should be directed to this socket.
+There is minimal per-socket authorization.
 
-=item B<-L> I<127.0.0.1>
+Authorization is currently done on a per-socket basis. That means each socket
+has a list of commands it will accept and it will accept. It will accept only
+those commands explicitly listed but it will (currently) accept these commands
+from anyone reaching the socket.
 
-Create a low-privilege TCP socket listening on localhost.  All users on
-the local system may use this to trigger FLUSH of individual files.  Users
-with read-only access should be directed to this socket.
+If the networking sockets are to be used, it is necessary to restrict the
+accepted commands to those needed by external clients. If, for example,
+external clients want to draw graphs of the cached data, they should only be
+allowed to use the C<FLUSH> command.
 
-=back
+=head2 Encryption
+
+There is no encryption.
+
+Again, this may be added in the future, but for the time being it is your job
+to keep your private data private. Install a VPN or an encrypted tunnel if you
+statistics are confidential!
 
-If you (want to) use the network capability, i.E<nbsp>e. let the daemon bind to
-an IPv4 or IPv6 socket, it is B<your> job to install a packet filter or similar
-mechanism to prevent unauthorized connections. Unless you have a dedicated VLAN
-or VPN for this, using the network option is probably a bad idea!
+=head2 Sanity checking
+
+There is no sanity checking.
 
 The daemon will blindly write to any file it gets told, so you really should
 create a separate user just for this daemon. Also it does not do any sanity
 checks, so if it gets told to write values for a time far in the future, your
 files will be messed up good!
 
+=head2 Conclusion
+
+=over 4
+
+=item *
+
+Security is the job of the administrator.
+
+=item *
+
+We recommend to allow write access via UNIX domain sockets only.
+
+=item *
+
 You have been warned.
 
+=back
+
 =head1 PROTOCOL
 
 The daemon communicates with clients using a line based ASCII protocol which is
index 32d3674e88fa98cff6d2d2f279d2d7f04da50203..fdacd186880328a23acaf738bed73492233e0f1e 100644 (file)
@@ -6,9 +6,9 @@ N\bNA\bAM\bME\bE
        rrdcached - Data caching daemon for rrdtool
 
 S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
-       r\brr\brd\bdc\bca\bac\bch\bhe\bed\bd [-\b-l\bl/\b/-\b-L\bL _\ba_\bd_\bd_\br_\be_\bs_\bs] [-\b-w\bw _\bt_\bi_\bm_\be_\bo_\bu_\bt] [-\b-z\bz _\bd_\be_\bl_\ba_\by] [-\b-f\bf _\bt_\bi_\bm_\be_\bo_\bu_\bt]
-       [-\b-p\bp _\bp_\bi_\bd_\b__\bf_\bi_\bl_\be] [-\b-t\bt _\bw_\br_\bi_\bt_\be_\b__\bt_\bh_\br_\be_\ba_\bd_\bs] [-\b-j\bj _\bj_\bo_\bu_\br_\bn_\ba_\bl_\b__\bd_\bi_\br] [-F] [-g]
-       [-\b-b\bb _\bb_\ba_\bs_\be_\b__\bd_\bi_\br [-\b-B\bB]]
+       r\brr\brd\bdc\bca\bac\bch\bhe\bed\bd [-\b-P\bP _\bp_\be_\br_\bm_\bi_\bs_\bs_\bi_\bo_\bn_\bs] [-\b-l\bl _\ba_\bd_\bd_\br_\be_\bs_\bs] [-\b-w\bw _\bt_\bi_\bm_\be_\bo_\bu_\bt] [-\b-z\bz _\bd_\be_\bl_\ba_\by]
+       [-\b-f\bf _\bt_\bi_\bm_\be_\bo_\bu_\bt] [-\b-p\bp _\bp_\bi_\bd_\b__\bf_\bi_\bl_\be] [-\b-t\bt _\bw_\br_\bi_\bt_\be_\b__\bt_\bh_\br_\be_\ba_\bd_\bs] [-\b-j\bj _\bj_\bo_\bu_\br_\bn_\ba_\bl_\b__\bd_\bi_\br] [-F]
+       [-g] [-\b-b\bb _\bb_\ba_\bs_\be_\b__\bd_\bi_\br [-\b-B\bB]]
 
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        r\brr\brd\bdc\bca\bac\bch\bhe\bed\bd is a daemon that receives updates to existing RRD files,
@@ -19,23 +19,26 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
 
        The daemon was written with big setups in mind. Those setups usually
        run into IO related problems sooner or later for reasons that are
-       beyond the scope of this document. Check the wiki at the RRDTool home-
-       page for details. Also check "SECURITY CONSIDERATIONS" below before
+       beyond the scope of this document. Check the wiki at the RRDTool
+       homepage for details. Also check "SECURITY CONSIDERATIONS" below before
        using this daemon! A detailed description of how the daemon operates
        can be found in the "HOW IT WORKS" section below.
 
 O\bOP\bPT\bTI\bIO\bON\bNS\bS
        -\b-l\bl _\ba_\bd_\bd_\br_\be_\bs_\bs
            Tells the daemon to bind to _\ba_\bd_\bd_\br_\be_\bs_\bs and accept incoming connections
-           on that socket. If _\ba_\bd_\bd_\br_\be_\bs_\bs begins with "unix:", everything follow-
-           ing that prefix is interpreted as the path to a UNIX domain socket.
-           Otherwise the address or node name are resolved using getaddrinfo.
+           on that socket. If _\ba_\bd_\bd_\br_\be_\bs_\bs begins with "unix:", everything
+           following that prefix is interpreted as the path to a UNIX domain
+           socket. Otherwise the address or node name are resolved using
+           getaddrinfo.
 
            For network sockets, a port may be specified by using the form
-           "[address]:port". If the address is an IPv4 address or a fully
+           "[\b[_\ba_\bd_\bd_\br_\be_\bs_\bs]\b]:\b:_\bp_\bo_\br_\bt_\b". If the address is an IPv4 address or a fully
            qualified domain name (i. e. the address contains at least one dot
-           (".")), the square brackets can be omitted, resulting in the (sim-
-           pler) "address:port" pattern.. The default port is 4\b42\b22\b21\b17\b7/\b/u\bud\bdp\bp.
+           (".")), the square brackets can be omitted, resulting in the
+           (simpler) "_\ba_\bd_\bd_\br_\be_\bs_\bs:\b:_\bp_\bo_\br_\bt_\b" pattern. The default port is 4\b42\b22\b21\b17\b7/\b/u\bud\bdp\bp. If
+           you specify a network socket, it is mandatory to read the "SECURITY
+           CONSIDERATIONS" section.
 
            The following formats are accepted. Please note that the address of
            the UNIX domain socket m\bmu\bus\bst\bt start with a slash in the second case!
@@ -49,9 +52,33 @@ O\bOP\bPT\bTI\bIO\bON\bNS\bS
            If the -\b-l\bl option is not specified the default address,
            "unix:/tmp/rrdcached.sock", will be used.
 
-       -\b-L\bL _\ba_\bd_\bd_\br_\be_\bs_\bs
-           Same as -\b-l\bl, except creates a low-privilege socket.  See S\bSE\bEC\bCU\bUR\bRI\bIT\bTY\bY
-           C\bCO\bON\bNS\bSI\bID\bDE\bER\bRA\bAT\bTI\bIO\bON\bNS\bS for more information.
+       -\b-P\bP _\bc_\bo_\bm_\bm_\ba_\bn_\bd[,_\bc_\bo_\bm_\bm_\ba_\bn_\bd[,...]]
+           Specifies the commands accepted via a network socket. This allows
+           administrators of _\bR_\bR_\bD_\bC_\ba_\bc_\bh_\be_\bD to control the actions accepted from
+           various sources.
+
+           The arguments given to the -\b-P\bP option is a comma separated list of
+           commands.  For example, to allow the "FLUSH" and "PENDING" commands
+           one could specify:
+
+             rrdcached -P FLUSH,PENDING $MORE_ARGUMENTS
+
+           The -\b-P\bP option effects the _\bf_\bo_\bl_\bl_\bo_\bw_\bi_\bn_\bg socket addresses (the following
+           -\b-l\bl options). In the following example, only the IPv4 network socket
+           (address 10.0.0.1) will be restricted to the "FLUSH" and "PENDING"
+           commands:
+
+             rrdcached -l unix:/some/path -P FLUSH,PENDING -l 10.0.0.1
+
+           A complete list of available commands can be found in the section
+           "Valid Commands" below. There are two minor special exceptions:
+
+           Â·   The "HELP" and "QUIT" commands are always allowed.
+
+           Â·   If the "BATCH" command is accepted, the .\b. command will
+               automatically be accepted, too.
+
+           Please also read "SECURITY CONSIDERATIONS" below.
 
        -\b-w\bw _\bt_\bi_\bm_\be_\bo_\bu_\bt
            Data is written to disk every _\bt_\bi_\bm_\be_\bo_\bu_\bt seconds. If this option is
@@ -73,22 +100,22 @@ O\bOP\bPT\bTI\bIO\bON\bNS\bS
 
        -\b-p\bp _\bf_\bi_\bl_\be
            Sets the name and location of the PID-file. If not specified, the
-           default, "$localststedir/run/rrdcached.pid" will be used.
+           default, "_\b$_\bl_\bo_\bc_\ba_\bl_\bs_\bt_\bs_\bt_\be_\bd_\bi_\br_\b/_\br_\bu_\bn_\b/_\br_\br_\bd_\bc_\ba_\bc_\bh_\be_\bd_\b._\bp_\bi_\bd_\b" will be used.
 
        -\b-t\bt _\bw_\br_\bi_\bt_\be_\b__\bt_\bh_\br_\be_\ba_\bd_\bs
            Specifies the number of threads used for writing RRD files.  The
            default is 4.  Increasing this number will allow rrdcached to have
            more simultaneous I/O requests into the kernel.  This may allow the
-           kernel to re-order disk writes, resulting in better disk through-
-           put.
+           kernel to re-order disk writes, resulting in better disk
+           throughput.
 
        -\b-j\bj _\bd_\bi_\br
            Write updates to a journal in _\bd_\bi_\br.  In the event of a program or
            system crash, this will allow the daemon to write any updates that
            were pending at the time of the crash.
 
-           On startup, the daemon will check for journal files in this direc-
-           tory.  If found, all updates therein will be read into memory
+           On startup, the daemon will check for journal files in this
+           directory.  If found, all updates therein will be read into memory
            before the daemon starts accepting new connections.
 
            The journal will be rotated with the same frequency as the flush
@@ -97,9 +124,9 @@ O\bOP\bPT\bTI\bIO\bON\bNS\bS
            When journaling is enabled, the daemon will use a fast shutdown
            procedure.  Rather than flushing all files to disk, it will make
            sure the journal is properly written and exit immediately.
-           Although the RRD data files are not fully up-to-date, no informa-
-           tion is lost; all pending updates will be replayed from the journal
-           next time the daemon starts up.
+           Although the RRD data files are not fully up-to-date, no
+           information is lost; all pending updates will be replayed from the
+           journal next time the daemon starts up.
 
            To disable fast shutdown, use the -\b-F\bF option.
 
@@ -126,8 +153,8 @@ O\bOP\bPT\bTI\bIO\bON\bNS\bS
              "/tmp".
 
            W\bWA\bAR\bRN\bNI\bIN\bNG\bG:\b: The paths up to and including the base directory M\bMU\bUS\bST\bT N\bNO\bOT\bT
-           B\bBE\bE symbolic links.  In other words, if the base directory is speci-
-           fied as:
+           B\bBE\bE symbolic links.  In other words, if the base directory is
+           specified as:
 
                -b /base/dir/somewhere
 
@@ -138,13 +165,13 @@ O\bOP\bPT\bTI\bIO\bON\bNS\bS
                /base/dir/somewhere
 
        -\b-B\bB  Only permit writes into the base directory specified in -\b-b\bb (and any
-           sub-directories).  This does N\bNO\bOT\bT detect symbolic links.  Paths con-
-           taining "../" will also be blocked.
+           sub-directories).  This does N\bNO\bOT\bT detect symbolic links.  Paths
+           containing "../" will also be blocked.
 
 A\bAF\bFF\bFE\bEC\bCT\bTE\bED\bD R\bRR\bRD\bDT\bTO\bOO\bOL\bL C\bCO\bOM\bMM\bMA\bAN\bND\bDS\bS
        The following commands may be made aware of the r\brr\brd\bdc\bca\bac\bch\bhe\bed\bd using the
-       command line argument -\b--\b-d\bda\bae\bem\bmo\bon\bn or the environment variable R\bRR\bRD\bD-\b-
-       C\bCA\bAC\bCH\bHE\bED\bD_\b_A\bAD\bDD\bDR\bRE\bES\bSS\bS:
+       command line argument -\b--\b-d\bda\bae\bem\bmo\bon\bn or the environment variable
+       R\bRR\bRD\bDC\bCA\bAC\bCH\bHE\bED\bD_\b_A\bAD\bDD\bDR\bRE\bES\bSS\bS:
 
        d\bdu\bum\bmp\bp
        f\bfe\bet\btc\bch\bh
@@ -167,8 +194,8 @@ E\bER\bRR\bRO\bOR\bR R\bRE\bEP\bPO\bOR\bRT\bTI\bIN\bNG\bG
        messages are printed to "STDERR". One of the steps when starting up is
        to fork to the background and closing "STDERR" - after this writing
        directly to the user is no longer possible. Once this has happened, the
-       daemon will send log messages to the system logging daemon using _\bs_\by_\bs_\b-
-       _\bl_\bo_\bg(3). The facility used is "LOG_DAEMON".
+       daemon will send log messages to the system logging daemon using
+       _\bs_\by_\bs_\bl_\bo_\bg(3). The facility used is "LOG_DAEMON".
 
 H\bHO\bOW\bW I\bIT\bT W\bWO\bOR\bRK\bKS\bS
        When receiving an update, r\brr\brd\bdc\bca\bac\bch\bhe\bed\bd does not write to disk but looks
@@ -199,8 +226,8 @@ H\bHO\bOW\bW I\bIT\bT W\bWO\bOR\bRK\bKS\bS
        never be written to disk. Therefore, every now and then, controlled by
        the -\b-f\bf option, the entire tree is walked and all "old" values are
        enqueued. Since this only affects "dead" files and walking the tree is
-       relatively expensive, you should set the "flush interval" to a reason-
-       ably high value. The default is 3600 seconds (one hour).
+       relatively expensive, you should set the "flush interval" to a
+       reasonably high value. The default is 3600 seconds (one hour).
 
        The downside of caching values is that they won't show up in graphs
        generated from the RRD files. To get around this, the daemon provides
@@ -237,62 +264,75 @@ H\bHO\bOW\bW I\bIT\bT W\bWO\bOR\bRK\bKS\bS
 
        The above diagram demonstrates:
 
-       Â·   Files/values are stored in a (balanced) tree.
+       Ã‚·   Files/values are stored in a (balanced) tree.
 
-       Â·   Tree nodes and entries in the update queue are the same data struc-
-           ture.
+       Â·   Tree nodes and entries in the update queue are the same data
+           structure.
 
-       Â·   The local time ("First") and the time specified in updates ("Time")
+       Ã‚·   The local time ("First") and the time specified in updates ("Time")
            may differ.
 
-       Â·   Timed out values are inserted at the "tail".
+       Ã‚·   Timed out values are inserted at the "tail".
 
-       Â·   Explicitly flushed values are inserted at the "head".
+       Ã‚·   Explicitly flushed values are inserted at the "head".
 
-       Â·   ASCII art rocks.
+       Ã‚·   ASCII art rocks.
 
 S\bSE\bEC\bCU\bUR\bRI\bIT\bTY\bY C\bCO\bON\bNS\bSI\bID\bDE\bER\bRA\bAT\bTI\bIO\bON\bNS\bS
-       The client/server protocol does not have any authentication or autho-
-       rization mechanism.  Therefore, take care to restrict which users can
-       connect to the daemon.
-
-       Control sockets are divided into high-privilege (-\b-l\bl) and low-privilege
-       (-\b-L\bL) sockets.  High-privilege sockets accept all commands, whereas low-
-       privilege sockets accept only F\bFL\bLU\bUS\bSH\bH, S\bST\bTA\bAT\bTS\bS, and H\bHE\bEL\bLP\bP.
-
-       For a multi-user environment where only certain users require
-       read/write access, the recommended configuration uses two sockets as
-       follows:
-
-       -\b-l\bl _\b/_\bp_\br_\bo_\bt_\be_\bc_\bt_\be_\bd_\b/_\bd_\bi_\br_\b/_\br_\br_\bd_\b._\bs_\bo_\bc_\bk
-           Create a high-privilege unix-domain socket.  This should be pro-
-           tected with the same Unix permissions that are used to protect the
-           RRD files.  Updates should be directed to this socket.
-
-       -\b-L\bL _\b1_\b2_\b7_\b._\b0_\b._\b0_\b._\b1
-           Create a low-privilege TCP socket listening on localhost.  All
-           users on the local system may use this to trigger FLUSH of individ-
-           ual files.  Users with read-only access should be directed to this
-           socket.
-
-       If you (want to) use the network capability, i. e. let the daemon bind
-       to an IPv4 or IPv6 socket, it is y\byo\bou\bur\br job to install a packet filter or
-       similar mechanism to prevent unauthorized connections. Unless you have
-       a dedicated VLAN or VPN for this, using the network option is probably
-       a bad idea!
+   A\bAu\but\bth\bhe\ben\bnt\bti\bic\bca\bat\bti\bio\bon\bn
+       There is no authentication.
+
+       The client/server protocol does not yet have any authentication
+       mechanism. It is likely that authentication and encryption will be
+       added in a future version, but for the time being it is the
+       administrator's responsibility to secure the traffic from/to the
+       daemon!
+
+       It is highly recommended to install a packet filter or similar
+       mechanism to prevent unauthorized connections. Unless you have a
+       dedicated VLAN or VPN for this, using network sockets is probably a bad
+       idea!
+
+   A\bAu\but\bth\bho\bor\bri\biz\bza\bat\bti\bio\bon\bn
+       There is minimal per-socket authorization.
+
+       Authorization is currently done on a per-socket basis. That means each
+       socket has a list of commands it will accept and it will accept. It
+       will accept only those commands explicitly listed but it will
+       (currently) accept these commands from anyone reaching the socket.
+
+       If the networking sockets are to be used, it is necessary to restrict
+       the accepted commands to those needed by external clients. If, for
+       example, external clients want to draw graphs of the cached data, they
+       should only be allowed to use the "FLUSH" command.
+
+   E\bEn\bnc\bcr\bry\byp\bpt\bti\bio\bon\bn
+       There is no encryption.
+
+       Again, this may be added in the future, but for the time being it is
+       your job to keep your private data private. Install a VPN or an
+       encrypted tunnel if you statistics are confidential!
+
+   S\bSa\ban\bni\bit\bty\by c\bch\bhe\bec\bck\bki\bin\bng\bg
+       There is no sanity checking.
 
        The daemon will blindly write to any file it gets told, so you really
        should create a separate user just for this daemon. Also it does not do
        any sanity checks, so if it gets told to write values for a time far in
        the future, your files will be messed up good!
 
-       You have been warned.
+   C\bCo\bon\bnc\bcl\blu\bus\bsi\bio\bon\bn
+       Â·   Security is the job of the administrator.
+
+       Â·   We recommend to allow write access via UNIX domain sockets only.
+
+       Â·   You have been warned.
 
 P\bPR\bRO\bOT\bTO\bOC\bCO\bOL\bL
        The daemon communicates with clients using a line based ASCII protocol
        which is easy to read and easy to type. This makes it easy for scripts
-       to implement the protocol and possible for users to use telnet to con-
-       nect to the daemon and test stuff "by hand".
+       to implement the protocol and possible for users to use telnet to
+       connect to the daemon and test stuff "by hand".
 
        The protocol is line based, this means that each record consists of one
        or more lines. A line is terminated by the line feed character 0x0A,
@@ -301,8 +341,8 @@ P\bPR\bRO\bOT\bTO\bOC\bCO\bOL\bL
 
        After the connection has been established, the client is expected to
        send a "command". A command consists of the command keyword, possibly
-       some arguments, and a terminating newline character. For a list of com-
-       mands, see "Valid Commands" below.
+       some arguments, and a terminating newline character. For a list of
+       commands, see "Valid Commands" below.
 
        Example:
 
@@ -311,8 +351,8 @@ P\bPR\bRO\bOT\bTO\bOC\bCO\bOL\bL
        The daemon answers with a line consisting of a status code and a short
        status message, separated by one or more space characters. A negative
        status code signals an error, a positive status code or zero signal
-       success. If the status code is greater than zero, it indicates the num-
-       ber of lines that follow the status line.
+       success. If the status code is greater than zero, it indicates the
+       number of lines that follow the status line.
 
        Examples:
 
@@ -322,8 +362,7 @@ P\bPR\bRO\bOT\bTO\bOC\bCO\bOL\bL
         This is the first line<LF>
         And this is the second line<LF>
 
-       V\bVa\bal\bli\bid\bd C\bCo\bom\bmm\bma\ban\bnd\bds\bs
-
+   V\bVa\bal\bli\bid\bd C\bCo\bom\bmm\bma\ban\bnd\bds\bs
        The following commands are understood by the daemon:
 
        F\bFL\bLU\bUS\bSH\bH _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
@@ -388,8 +427,8 @@ P\bPR\bRO\bOT\bTO\bOC\bCO\bOL\bL
 
            Note that rrdcached only accepts absolute timestamps in the update
            values.  Updates strings like "N:1:2:3" are automatically converted
-           to absolute time by the RRD client library before sending to rrd-
-           cached.
+           to absolute time by the RRD client library before sending to
+           rrdcached.
 
        W\bWR\bRO\bOT\bTE\bE _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
            This command is written to the journal after a file is successfully
@@ -403,16 +442,16 @@ P\bPR\bRO\bOT\bTO\bOC\bCO\bOL\bL
            it permits more than one command to be issued per _\br_\be_\ba_\bd_\b(_\b) and
            _\bw_\br_\bi_\bt_\be_\b(_\b).
 
-           All commands are executed just as they would be if given individu-
-           ally, except for output to the user.  Messages indicating success
-           are suppressed, and error messages are delayed until the client is
-           finished.
+           All commands are executed just as they would be if given
+           individually, except for output to the user.  Messages indicating
+           success are suppressed, and error messages are delayed until the
+           client is finished.
 
            Command processing is finished when the client sends a dot (".") on
            its own line.  After the client has finished, the server responds
            with an error count and the list of error messages (if any).  Each
-           error messages indicates the number of the command to which it cor-
-           responds, and the error message itself.  The first user command
+           error messages indicates the number of the command to which it
+           corresponds, and the error message itself.  The first user command
            after B\bBA\bAT\bTC\bCH\bH is command number one.
 
                client:  BATCH
@@ -428,8 +467,7 @@ P\bPR\bRO\bOT\bTO\bOC\bCO\bOL\bL
        Q\bQU\bUI\bIT\bT
            Disconnect from rrdcached.
 
-       P\bPe\ber\brf\bfo\bor\brm\bma\ban\bnc\bce\be V\bVa\bal\blu\bue\bes\bs
-
+   P\bPe\ber\brf\bfo\bor\brm\bma\ban\bnc\bce\be V\bVa\bal\blu\bue\bes\bs
        The following counters are returned by the S\bST\bTA\bAT\bTS\bS command:
 
        Q\bQu\bue\beu\bue\beL\bLe\ben\bng\bgt\bth\bh _\b(_\bu_\bn_\bs_\bi_\bg_\bn_\be_\bd _\b6_\b4_\bb_\bi_\bt _\bi_\bn_\bt_\be_\bg_\be_\br_\b)
@@ -447,8 +485,8 @@ P\bPR\bRO\bOT\bTO\bOC\bCO\bOL\bL
 
        D\bDa\bat\bta\baS\bSe\bet\bts\bsW\bWr\bri\bit\btt\bte\ben\bn _\b(_\bu_\bn_\bs_\bi_\bg_\bn_\be_\bd _\b6_\b4_\bb_\bi_\bt _\bi_\bn_\bt_\be_\bg_\be_\br_\b)
            Total number of "data sets" written to disk since the daemon was
-           started. A data set is one or more values passed to the U\bUP\bPD\bDA\bAT\bTE\bE com-
-           mand. For example: "1223661439:123:456" is one data set with two
+           started. A data set is one or more values passed to the U\bUP\bPD\bDA\bAT\bTE\bE
+           command. For example: "1223661439:123:456" is one data set with two
            values. The term "data set" is used to prevent confusion whether
            individual values or groups of values are counted.
 
@@ -495,4 +533,4 @@ C\bCO\bON\bNT\bTR\bRI\bIB\bBU\bUT\bTO\bOR\bRS\bS
 
 
 
-1.3.99909060808                   2009-04-09                      RRDCACHED(1)
+1.3.999                           2009-09-24                      RRDCACHED(1)
index 4b740106b2954843dbb6080e7d59ed110071e6a4..8f73e782fce94146cb0cc495fef8dc044f3b0a82 100644 (file)
@@ -1,15 +1,7 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.08)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
 .de Sp \" Vertical space (when we can't use .PP)
 .if t .sp .5v
 .if n .sp
 ..
 .\" Set up some character translations and predefined strings.  \*(-- will
 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
 .ie n \{\
 .    ds -- \(*W-
 .    ds R" ''
 'br\}
 .\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
 .\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
 .\" entries marked with X<> in POD.  Of course, you'll have to process the
 .\" output yourself in some meaningful fashion.
-.if \nF \{\
+.ie \nF \{\
 .    de IX
 .    tm Index:\\$1\t\\n%\t"\\$2"
 ..
 .    nr % 0
 .    rr F
 .\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
+.el \{\
+.    de IX
+..
+.\}
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
 .\" ========================================================================
 .\"
 .IX Title "RRDCGI 1"
-.TH RRDCGI 1 "2008-12-22" "1.3.99909060808" "rrdtool"
+.TH RRDCGI 1 "2009-05-10" "1.3.999" "rrdtool"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
 .SH "NAME"
 rrdcgi \- Create web pages containing RRD graphs based on templates
 .SH "SYNOPSIS"
@@ -149,7 +148,7 @@ The argument parser uses the same semantics as you are used from your C\-shell.
 .IP "\fB\-\-filter\fR" 8
 .IX Item "--filter"
 Assume that rrdcgi is run as a filter and not as a cgi.
-.Sh "Keywords"
+.SS "Keywords"
 .IX Subsection "Keywords"
 .IP "\s-1RRD::CV\s0 \fIname\fR" 8
 .IX Item "RRD::CV name"
@@ -178,7 +177,7 @@ some sort of access control on the directory.
 .IP "\s-1RRD::GOODFOR\s0 \fIseconds\fR" 8
 .IX Item "RRD::GOODFOR seconds"
 Specify the number of seconds this page should remain valid. This will prompt
-the rrdcgi to output a Last\-Modified, an Expire and if the number of
+the rrdcgi to output a Last-Modified, an Expire and if the number of
 seconds is \fInegative\fR a Refresh header.
 .IP "\s-1RRD::INCLUDE\s0 \fIfilename\fR" 8
 .IX Item "RRD::INCLUDE filename"
@@ -254,7 +253,7 @@ number of the \fB\s-1PRINT\s0\fR argument. This first \fB\s-1PRINT\s0\fR has \fI
 .IX Item "RRD::INTERNAL <var>"
 This tag gets replaced by an internal var. Currently these vars are known:
 \&\s-1VERSION\s0, \s-1COMPILETIME\s0.
-These vars represent the compiled-in values. 
+These vars represent the compiled-in values.
 .SH "EXAMPLE 1"
 .IX Header "EXAMPLE 1"
 The example below creates a web pages with a single \s-1RRD\s0 graph.
@@ -269,9 +268,7 @@ The example below creates a web pages with a single \s-1RRD\s0 graph.
 \& <RRD::GRAPH demo.png \-\-lazy \-\-title="Temperatures"
 \&          DEF:cel=demo.rrd:exhaust:AVERAGE
 \&          LINE2:cel#00a000:"D. Celsius">
-.Ve
-.PP
-.Vb 3
+\&
 \& </P>
 \& </BODY>
 \& </HTML>
@@ -282,7 +279,7 @@ This script is slightly more elaborate, it allows you to run it from
 a form which sets \s-1RRD_NAME\s0. \s-1RRD_NAME\s0 is then used to select which \s-1RRD\s0
 you want to use as source for your graph.
 .PP
-.Vb 15
+.Vb 10
 \& #!/usr/local/bin/rrdcgi
 \& <HTML>
 \& <HEAD><TITLE>RRDCGI Demo</TITLE></HEAD>
@@ -298,9 +295,7 @@ you want to use as source for your graph.
 \&          \-\-title "Temperatures for "<RRD::CV::QUOTE RRD_NAME>
 \&          DEF:cel=<RRD::CV::PATH RRD_NAME>.rrd:exhaust:AVERAGE
 \&          LINE2:cel#00a000:"D. Celsius">
-.Ve
-.PP
-.Vb 3
+\&
 \& </P>
 \& </BODY>
 \& </HTML>
@@ -310,7 +305,7 @@ you want to use as source for your graph.
 This example shows how to handle the case where the \s-1RRD\s0, graphs and
 cgi-bins are separate directories
 .PP
-.Vb 14
+.Vb 10
 \& #!/.../bin/rrdcgi
 \& <HTML>
 \& <HEAD><TITLE>RRDCGI Demo</TITLE></HEAD>
@@ -318,7 +313,7 @@ cgi-bins are separate directories
 \& <H1>RRDCGI test Page</H1>
 \& <RRD::GRAPH
 \&  /.../web/pngs/testhvt.png
-\&  \-\-imginfo '<IMG SRC=/.../pngs/%s WIDTH=%lu HEIGHT=%lu >'
+\&  \-\-imginfo \*(Aq<IMG SRC=/.../pngs/%s WIDTH=%lu HEIGHT=%lu >\*(Aq
 \&  \-\-lazy \-\-start \-1d \-\-end now
 \&  DEF:http_src=/.../rrds/test.rrd:http_src:AVERAGE
 \&  AREA:http_src#00ff00:http_src
index 67831b1a2c593ec5803c3b1ba23acfe4329f89fd..359a6200a88a09e05dfa5758c670d71c5e6fdfd9 100644 (file)
@@ -1,14 +1,18 @@
+<?xml version="1.0" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>rrdcgi</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <link rev="made" href="mailto:root@localhost" />
 </head>
 
 <body style="background-color: white">
 
-<p><a name="__index__"></a></p>
+
 <!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
 <!--
 
 <ul>
        <li><a href="#example_3">EXAMPLE 3</a></li>
        <li><a href="#author">AUTHOR</a></li>
 </ul>
+
 -->
+
+
+</div>
 <!-- INDEX END -->
 
 <p>
@@ -50,172 +58,138 @@ In the end it will printout a web page including the necessary CGI headers.</p>
 only for a subset of tags. This allows nesting of tags.</p>
 <p>The argument parser uses the same semantics as you are used from your C-shell.</p>
 <dl>
-<dt><strong><a name="item__2d_2dfilter"><strong>--filter</strong></a></strong><br />
-</dt>
+<dt><strong><a name="filter" class="item"><strong>--filter</strong></a></strong></dt>
+
 <dd>
-Assume that rrdcgi is run as a filter and not as a cgi.
+<p>Assume that rrdcgi is run as a filter and not as a cgi.</p>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <h2><a name="keywords">Keywords</a></h2>
 <dl>
-<dt><strong><a name="item_rrd_3a_3acv_name">RRD::CV <em>name</em></a></strong><br />
-</dt>
+<dt><strong><a name="rrd_cv_name" class="item">RRD::CV <em>name</em></a></strong></dt>
+
 <dd>
-Inserts the CGI variable of the given name.
+<p>Inserts the CGI variable of the given name.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_rrd_3a_3acv_3a_3aquote_name">RRD::CV::QUOTE <em>name</em></a></strong><br />
-</dt>
+<dt><strong><a name="rrd_cv_quote_name" class="item">RRD::CV::QUOTE <em>name</em></a></strong></dt>
+
 <dd>
-Inserts the CGI variable of the given name but quotes it, ready for
+<p>Inserts the CGI variable of the given name but quotes it, ready for
 use as an argument in another RRD:: tag. So even when there are spaces in the
-value of the CGI variable it will still be considered to be one argument.
+value of the CGI variable it will still be considered to be one argument.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_rrd_3a_3acv_3a_3apath_name">RRD::CV::PATH <em>name</em></a></strong><br />
-</dt>
+<dt><strong><a name="rrd_cv_path_name" class="item">RRD::CV::PATH <em>name</em></a></strong></dt>
+
 <dd>
-Inserts the CGI variable of the given name, quotes it and makes sure
+<p>Inserts the CGI variable of the given name, quotes it and makes sure
 it starts neither with a '/' nor contains '..'. This is to make
 sure that no problematic pathnames can be introduced through the
-CGI interface.
-</dd>
-<p></p>
-<dt><strong><a name="item_rrd_3a_3agetenv_variable">RRD::GETENV <em>variable</em></a></strong><br />
-</dt>
-<dd>
-Get the value of an environment variable.
+CGI interface.</p>
 </dd>
+<dt><strong><a name="rrd_getenv_variable" class="item">RRD::GETENV <em>variable</em></a></strong></dt>
+
 <dd>
+<p>Get the value of an environment variable.</p>
 <pre>
  &lt;RRD::GETENV REMOTE_USER&gt;</pre>
-</dd>
-<dd>
 <p>might give you the name of the remote user given you are using
 some sort of access control on the directory.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_rrd_3a_3agoodfor_seconds">RRD::GOODFOR <em>seconds</em></a></strong><br />
-</dt>
+<dt><strong><a name="rrd_goodfor_seconds" class="item">RRD::GOODFOR <em>seconds</em></a></strong></dt>
+
 <dd>
-Specify the number of seconds this page should remain valid. This will prompt
+<p>Specify the number of seconds this page should remain valid. This will prompt
 the rrdcgi to output a Last-Modified, an Expire and if the number of
-seconds is <em>negative</em> a Refresh header.
+seconds is <em>negative</em> a Refresh header.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_rrd_3a_3ainclude_filename">RRD::INCLUDE <em>filename</em></a></strong><br />
-</dt>
-<dd>
-Include the contents of the specified file into the page returned from the cgi.
-</dd>
-<p></p>
-<dt><strong><a name="item_rrd_3a_3asetenv_variable_value">RRD::SETENV <em>variable</em> <em>value</em></a></strong><br />
-</dt>
+<dt><strong><a name="rrd_include_filename" class="item">RRD::INCLUDE <em>filename</em></a></strong></dt>
+
 <dd>
-If you want to present your graphs in another time zone than your own, you
-could use
+<p>Include the contents of the specified file into the page returned from the cgi.</p>
 </dd>
+<dt><strong><a name="rrd_setenv_variable_value" class="item">RRD::SETENV <em>variable</em> <em>value</em></a></strong></dt>
+
 <dd>
+<p>If you want to present your graphs in another time zone than your own, you
+could use</p>
 <pre>
  &lt;RRD::SETENV TZ UTC&gt;</pre>
-</dd>
-<dd>
 <p>to make sure everything is presented in Universal Time. Note that the
 values permitted to TZ depend on your OS.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_rrd_3a_3asetvar_variable_value">RRD::SETVAR <em>variable</em> <em>value</em></a></strong><br />
-</dt>
-<dd>
-Analog to SETENV but for local variables.
-</dd>
-<p></p>
-<dt><strong><a name="item_rrd_3a_3agetvar_variable">RRD::GETVAR <em>variable</em></a></strong><br />
-</dt>
+<dt><strong><a name="rrd_setvar_variable_value" class="item">RRD::SETVAR <em>variable</em> <em>value</em></a></strong></dt>
+
 <dd>
-Analog to GETENV but for local variables.
+<p>Analog to SETENV but for local variables.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_rrd_3a_3atime_3a_3alast_rrd_2dfile_strftime_2dform">RRD::TIME::LAST <em>rrd-file</em> <em>strftime-format</em></a></strong><br />
-</dt>
+<dt><strong><a name="rrd_getvar_variable" class="item">RRD::GETVAR <em>variable</em></a></strong></dt>
+
 <dd>
-This gets replaced by the last modification time of the selected RRD. The
-time is <em>strftime</em>-formatted with the string specified in the second argument.
+<p>Analog to GETENV but for local variables.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_rrd_3a_3atime_3a_3anow_strftime_2dformat">RRD::TIME::NOW <em>strftime-format</em></a></strong><br />
-</dt>
+<dt><strong><a name="rrd_time_last_rrd_file_strftime_format" class="item">RRD::TIME::LAST <em>rrd-file</em> <em>strftime-format</em></a></strong></dt>
+
 <dd>
-This gets replaced by the current time of day. The time is
-<em>strftime</em>-formatted with the string specified in the argument.
+<p>This gets replaced by the last modification time of the selected RRD. The
+time is <em>strftime</em>-formatted with the string specified in the second argument.</p>
 </dd>
+<dt><strong><a name="rrd_time_now_strftime_format" class="item">RRD::TIME::NOW <em>strftime-format</em></a></strong></dt>
+
 <dd>
+<p>This gets replaced by the current time of day. The time is
+<em>strftime</em>-formatted with the string specified in the argument.</p>
 <p>Note that if you return : (colons) from your strftime format you may
 have to escape them using \ if the time is to be used as an argument
 to a GRAPH command.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_rrd_3a_3atime_3a_3astrftime_start_7cend_start_2dsp">RRD::TIME::STRFTIME <em>START|END</em> <em>start-spec</em> <em>end-spec</em> <em>strftime-format</em></a></strong><br />
-</dt>
+<dt><strong><a name="rrd_time_strftime_start_end_start_spec_end_spec_strftime_format" class="item">RRD::TIME::STRFTIME <em>START|END</em> <em>start-spec</em> <em>end-spec</em> <em>strftime-format</em></a></strong></dt>
+
 <dd>
-This gets replaced by a strftime-formatted time using the format
+<p>This gets replaced by a strftime-formatted time using the format
 <em>strftime-format</em> on either <em>start-spec</em> or <em>end-spec</em> depending on
 whether <em>START</em> or <em>END</em> is specified.  Both <em>start-spec</em> and <em>end-spec</em>
 must be supplied as either could be relative to the other.  This is intended
 to allow pretty titles on graphs with times that are easier for non RRDtool
-folks to figure out than ``-2weeks''.
-</dd>
-<dd>
+folks to figure out than &quot;-2weeks&quot;.</p>
 <p>Note that again, if you return : (colon) from your strftime format,
 you may have to escape them using \ if the time is to be used as an
 argument to a GRAPH command.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_rrd_3a_3agraph_rrdgraph_arguments">RRD::GRAPH <em>rrdgraph arguments</em></a></strong><br />
-</dt>
+<dt><strong><a name="rrd_graph_rrdgraph_arguments" class="item">RRD::GRAPH <em>rrdgraph arguments</em></a></strong></dt>
+
 <dd>
-This tag creates the RRD graph defined by its argument and then is
+<p>This tag creates the RRD graph defined by its argument and then is
 replaced by an appropriate &lt;IMG ... &gt; tag referring to the graph.
 The <strong>--lazy</strong> option in RRD graph can be used to make sure that graphs
 are only regenerated when they are out of date. The arguments
-to the <strong>RRD::GRAPH</strong> tag work as described in the <strong>rrdgraph</strong> manual page.
-</dd>
-<dd>
+to the <strong>RRD::GRAPH</strong> tag work as described in the <strong>rrdgraph</strong> manual page.</p>
 <p>Use the <strong>--lazy</strong> option in your RRD::GRAPH tags, to reduce the load
 on your server. This option makes sure that graphs are only regenerated when
 the old ones are out of date.</p>
-</dd>
-<dd>
 <p>If you do not specify your own <strong>--imginfo</strong> format, the following will
 be used:</p>
-</dd>
-<dd>
 <pre>
  &lt;IMG SRC=&quot;%s&quot; WIDTH=&quot;%lu&quot; HEIGHT=&quot;%lu&quot;&gt;</pre>
-</dd>
-<dd>
 <p>Note that %s stands for the filename part of the graph generated, all
 directories given in the PNG file argument will get dropped.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_rrd_3a_3aprint_number">RRD::PRINT <em>number</em></a></strong><br />
-</dt>
+<dt><strong><a name="rrd_print_number" class="item">RRD::PRINT <em>number</em></a></strong></dt>
+
 <dd>
-If the preceding  <strong>RRD::GRAPH</strong> tag contained and <strong>PRINT</strong> arguments,
+<p>If the preceding  <strong>RRD::GRAPH</strong> tag contained and <strong>PRINT</strong> arguments,
 then you can access their output with this tag. The <em>number</em> argument refers to the
-number of the <strong>PRINT</strong> argument. This first <strong>PRINT</strong> has <em>number</em> 0.
+number of the <strong>PRINT</strong> argument. This first <strong>PRINT</strong> has <em>number</em> 0.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_rrd_3a_3ainternal__3cvar_3e">RRD::INTERNAL &lt;var&gt;</a></strong><br />
-</dt>
+<dt><strong><a name="rrd_internal_var" class="item">RRD::INTERNAL &lt;var&gt;</a></strong></dt>
+
 <dd>
-This tag gets replaced by an internal var. Currently these vars are known:
+<p>This tag gets replaced by an internal var. Currently these vars are known:
 VERSION, COMPILETIME.
-These vars represent the compiled-in values.
+These vars represent the compiled-in values.</p>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <hr />
index ee0ba0a50d57f14e7c77df77585bf53df5e0c171..579e925eb3f7498c7cb176c4a425d0f08899c9b6 100644 (file)
@@ -12,8 +12,8 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        r\brr\brd\bdc\bcg\bgi\bi is a sort of very limited script interpreter. Its purpose is to
        run as a cgi-program and parse a web page template containing special
        <RRD:: tags. r\brr\brd\bdc\bcg\bgi\bi will interpret and act according to these tags.  In
-       the end it will printout a web page including the necessary CGI head-
-       ers.
+       the end it will printout a web page including the necessary CGI
+       headers.
 
        r\brr\brd\bdc\bcg\bgi\bi parses the contents of the template in 3 steps. In each step it
        looks only for a subset of tags. This allows nesting of tags.
@@ -24,9 +24,7 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        -\b--\b-f\bfi\bil\blt\bte\ber\br
                Assume that rrdcgi is run as a filter and not as a cgi.
 
-       K\bKe\bey\byw\bwo\bor\brd\bds\bs
-
-
+   K\bKe\bey\byw\bwo\bor\brd\bds\bs
        RRD::CV _\bn_\ba_\bm_\be
                Inserts the CGI variable of the given name.
 
@@ -89,13 +87,13 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
                as an argument to a GRAPH command.
 
        RRD::TIME::STRFTIME _\bS_\bT_\bA_\bR_\bT_\b|_\bE_\bN_\bD _\bs_\bt_\ba_\br_\bt_\b-_\bs_\bp_\be_\bc _\be_\bn_\bd_\b-_\bs_\bp_\be_\bc _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be_\b-_\bf_\bo_\br_\bm_\ba_\bt
-               This gets replaced by a strftime-formatted time using the for-
-               mat _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be_\b-_\bf_\bo_\br_\bm_\ba_\bt on either _\bs_\bt_\ba_\br_\bt_\b-_\bs_\bp_\be_\bc or _\be_\bn_\bd_\b-_\bs_\bp_\be_\bc depending
-               on whether _\bS_\bT_\bA_\bR_\bT or _\bE_\bN_\bD is specified.  Both _\bs_\bt_\ba_\br_\bt_\b-_\bs_\bp_\be_\bc and _\be_\bn_\bd_\b-
-               _\bs_\bp_\be_\bmust be supplied as either could be relative to the other.
-               This is intended to allow pretty titles on graphs with times
-               that are easier for non RRDtool folks to figure out than
-               "-2weeks".
+               This gets replaced by a strftime-formatted time using the
+               format _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be_\b-_\bf_\bo_\br_\bm_\ba_\bt on either _\bs_\bt_\ba_\br_\bt_\b-_\bs_\bp_\be_\bc or _\be_\bn_\bd_\b-_\bs_\bp_\be_\bc
+               depending on whether _\bS_\bT_\bA_\bR_\bT or _\bE_\bN_\bD is specified.  Both _\bs_\bt_\ba_\br_\bt_\b-
+               _\bs_\bp_\be_\band _\be_\bn_\bd_\b-_\bs_\bp_\be_\bc must be supplied as either could be relative
+               to the other.  This is intended to allow pretty titles on
+               graphs with times that are easier for non RRDtool folks to
+               figure out than "-2weeks".
 
                Note that again, if you return : (colon) from your strftime
                format, you may have to escape them using \ if the time is to
@@ -106,8 +104,8 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
                is replaced by an appropriate <IMG ... > tag referring to the
                graph.  The -\b--\b-l\bla\baz\bzy\by option in RRD graph can be used to make sure
                that graphs are only regenerated when they are out of date. The
-               arguments to the R\bRR\bRD\bD:\b::\b:G\bGR\bRA\bAP\bPH\bH tag work as described in the r\brr\brd\bd-\b-
-               g\bgr\bra\bap\bph\bh manual page.
+               arguments to the R\bRR\bRD\bD:\b::\b:G\bGR\bRA\bAP\bPH\bH tag work as described in the
+               r\brr\brd\bdg\bgr\bra\bap\bph\bh manual page.
 
                Use the -\b--\b-l\bla\baz\bzy\by option in your RRD::GRAPH tags, to reduce the
                load on your server. This option makes sure that graphs are
@@ -118,9 +116,9 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
 
                 <IMG SRC="%s" WIDTH="%lu" HEIGHT="%lu">
 
-               Note that %s stands for the filename part of the graph gener-
-               ated, all directories given in the PNG file argument will get
-               dropped.
+               Note that %s stands for the filename part of the graph
+               generated, all directories given in the PNG file argument will
+               get dropped.
 
        RRD::PRINT _\bn_\bu_\bm_\bb_\be_\br
                If the preceding  R\bRR\bRD\bD:\b::\b:G\bGR\bRA\bAP\bPH\bH tag contained and P\bPR\bRI\bIN\bNT\bT arguments,
@@ -196,12 +194,12 @@ E\bEX\bXA\bAM\bMP\bPL\bLE\bE 3\b3
 
        Note 1: Replace /.../ with the relevant directories
 
-       Note 2: The SRC=/.../pngs should be paths from the view of the web-
-       server/browser
+       Note 2: The SRC=/.../pngs should be paths from the view of the
+       webserver/browser
 
 A\bAU\bUT\bTH\bHO\bOR\bR
        Tobias Oetiker <tobi@oetiker.ch>
 
 
 
-1.3.99909060808                   2008-12-22                         RRDCGI(1)
+1.3.999                           2009-05-10                         RRDCGI(1)
index 501076229000429631893465defb0ec60613d6ff..67d49102b568c118bb1a5f9a15b7c760b1720490 100644 (file)
@@ -1,15 +1,7 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.08)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
 .de Sp \" Vertical space (when we can't use .PP)
 .if t .sp .5v
 .if n .sp
 ..
 .\" Set up some character translations and predefined strings.  \*(-- will
 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
 .ie n \{\
 .    ds -- \(*W-
 .    ds R" ''
 'br\}
 .\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
 .\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
 .\" entries marked with X<> in POD.  Of course, you'll have to process the
 .\" output yourself in some meaningful fashion.
-.if \nF \{\
+.ie \nF \{\
 .    de IX
 .    tm Index:\\$1\t\\n%\t"\\$2"
 ..
 .    nr % 0
 .    rr F
 .\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
+.el \{\
+.    de IX
+..
+.\}
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
 .\" ========================================================================
 .\"
 .IX Title "RRDCREATE 1"
-.TH RRDCREATE 1 "2008-06-11" "1.3.99909060808" "rrdtool"
+.TH RRDCREATE 1 "2009-04-19" "1.3.999" "rrdtool"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
 .SH "NAME"
 rrdcreate \- Set up a new Round Robin Database
 .SH "SYNOPSIS"
@@ -144,12 +143,12 @@ rrdcreate \- Set up a new Round Robin Database
 The create function of RRDtool lets you set up new Round Robin
 Database (\fB\s-1RRD\s0\fR) files.  The file is created at its final, full size
 and filled with \fI*UNKNOWN*\fR data.
-.Sh "\fIfilename\fP"
+.SS "\fIfilename\fP"
 .IX Subsection "filename"
 The name of the \fB\s-1RRD\s0\fR you want to create. \fB\s-1RRD\s0\fR files should end
 with the extension \fI.rrd\fR. However, \fBRRDtool\fR will accept any
 filename.
-.Sh "\fB\-\-start\fP|\fB\-b\fP \fIstart time\fP (default: now \- 10s)"
+.SS "\fB\-\-start\fP|\fB\-b\fP \fIstart time\fP (default: now \- 10s)"
 .IX Subsection "--start|-b start time (default: now - 10s)"
 Specifies the time in seconds since 1970\-01\-01 \s-1UTC\s0 when the first
 value should be added to the \fB\s-1RRD\s0\fR. \fBRRDtool\fR will not accept
@@ -157,11 +156,11 @@ any data timed before or at the time specified.
 .PP
 See also AT-STYLE \s-1TIME\s0 \s-1SPECIFICATION\s0 section in the
 \&\fIrrdfetch\fR documentation for other ways to specify time.
-.Sh "\fB\-\-step\fP|\fB\-s\fP \fIstep\fP (default: 300 seconds)"
+.SS "\fB\-\-step\fP|\fB\-s\fP \fIstep\fP (default: 300 seconds)"
 .IX Subsection "--step|-s step (default: 300 seconds)"
 Specifies the base interval in seconds with which data will be fed
 into the \fB\s-1RRD\s0\fR.
-.Sh "\fB\s-1DS:\s0\fP\fIds-name\fP\fB:\fP\fI\s-1DST\s0\fP\fB:\fP\fIdst arguments\fP"
+.SS "\fB\s-1DS:\s0\fP\fIds-name\fP\fB:\fP\fI\s-1DST\s0\fP\fB:\fP\fIdst arguments\fP"
 .IX Subsection "DS:ds-name:DST:dst arguments"
 A single \fB\s-1RRD\s0\fR can accept input from several data sources (\fB\s-1DS\s0\fR),
 for example incoming and outgoing traffic on a specific communication
@@ -268,7 +267,7 @@ the \s-1RPN\s0 expression, the \s-1COMPUTE\s0 data source may only refer to the
 names of data source listed previously in the create command. This is
 similar to the restriction that \fB\s-1CDEF\s0\fRs must refer only to \fB\s-1DEF\s0\fRs
 and \fB\s-1CDEF\s0\fRs previously defined in the same graph command.
-.Sh "\fB\s-1RRA:\s0\fP\fI\s-1CF\s0\fP\fB:\fP\fIcf arguments\fP"
+.SS "\fB\s-1RRA:\s0\fP\fI\s-1CF\s0\fP\fB:\fP\fIcf arguments\fP"
 .IX Subsection "RRA:CF:cf arguments"
 The purpose of an \fB\s-1RRD\s0\fR is to store data in the round robin archives
 (\fB\s-1RRA\s0\fR). An archive consists of a number of data values or statistics for
@@ -281,7 +280,7 @@ data point\fR.
 The data is also processed with the consolidation function (\fI\s-1CF\s0\fR) of
 the archive. There are several consolidation functions that
 consolidate primary data points via an aggregate function: \fB\s-1AVERAGE\s0\fR,
-\&\fB\s-1MIN\s0\fR, \fB\s-1MAX\s0\fR, \fB\s-1LAST\s0\fR. 
+\&\fB\s-1MIN\s0\fR, \fB\s-1MAX\s0\fR, \fB\s-1LAST\s0\fR.
 .IP "\s-1AVERAGE\s0" 4
 .IX Item "AVERAGE"
 the average of the data points is stored.
@@ -493,10 +492,10 @@ sample. An extreme example of this might be a \*(L"step\*(R" of 5 minutes and a
 result in all the PDPs for that entire day period being set to the
 same average rate. \fI\-\- Don Baarda <don.baarda@baesystems.com>\fR
 .PP
-.Vb 35
+.Vb 10
 \&       time|
 \&       axis|
-\& begin__|00|
+\& begin_\|_|00|
 \&        |01|
 \&       u|02|\-\-\-\-* sample1, restart "hb"\-timer
 \&       u|03|   /
@@ -524,7 +523,7 @@ same average rate. \fI\-\- Don Baarda <don.baarda@baesystems.com>\fR
 \&        |25|   /
 \&        |26|  /
 \&        |27|\-\-\-\-* sample7, restart "hb"
-\& step2__|28|   /
+\& step2_\|_|28|   /
 \&        |22|  /
 \&        |23|\-\-\-\-* sample8, restart "hb", create "pdp" for step1, create "cdp" 
 \&        |24|   /
@@ -564,7 +563,7 @@ plots continuous data, and as such is not appropriate for plotting
 absolute amounts as for example \*(L"total bytes\*(R" sent and received in a
 router. What you probably want is plot rates that you can scale to
 bytes/hour, for example, or plot absolute amounts with another tool
-that draws bar\-plots, where the delta-time is clear on the plot for
+that draws bar-plots, where the delta-time is clear on the plot for
 each point (such that when you read the graph you see for example \s-1GB\s0
 on the y axis, days on the x axis and one bar for each day).
 .SH "EXAMPLE"
index 42f0aa4210b5ca9d214f0031913811772cf58365..adc0755016ed333275f93346144a3470fcd96ee6 100644 (file)
@@ -1,14 +1,18 @@
+<?xml version="1.0" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>rrdcreate</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <link rev="made" href="mailto:root@localhost" />
 </head>
 
 <body style="background-color: white">
 
-<p><a name="__index__"></a></p>
+
 <!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
 <!--
 
 <ul>
        <ul>
 
                <li><a href="#filename"><em>filename</em></a></li>
-               <li><a href="#start_b_start_time__default__now__10s_"><strong>-start</strong>|<strong>-b</strong> <em>start time</em> (default: now - 10s)</a></li>
-               <li><a href="#step_s_step__default__300_seconds_"><strong>-step</strong>|<strong>-s</strong> <em>step</em> (default: 300 seconds)</a></li>
-               <li><a href="#ds_dsname_dst_dst_arguments"><strong>DS:</strong><em>ds-name</em><strong>:</strong><em>DST</em><strong>:</strong><em>dst arguments</em></a></li>
+               <li><a href="#__start__b_start_time__default__now___10s_"><strong>-start</strong>|<strong>-b</strong> <em>start time</em> (default: now - 10s)</a></li>
+               <li><a href="#__step__s_step__default__300_seconds_"><strong>-step</strong>|<strong>-s</strong> <em>step</em> (default: 300 seconds)</a></li>
+               <li><a href="#ds_ds_name_dst_dst_arguments"><strong>DS:</strong><em>ds-name</em><strong>:</strong><em>DST</em><strong>:</strong><em>dst arguments</em></a></li>
                <li><a href="#rra_cf_cf_arguments"><strong>RRA:</strong><em>CF</em><strong>:</strong><em>cf arguments</em></a></li>
        </ul>
 
-       <li><a href="#aberrant_behavior_detection_with_holtwinters_forecasting">Aberrant Behavior Detection with Holt-Winters Forecasting</a></li>
+       <li><a href="#aberrant_behavior_detection_with_holt_winters_forecasting">Aberrant Behavior Detection with Holt-Winters Forecasting</a></li>
        <li><a href="#the_heartbeat_and_the_step">The HEARTBEAT and the STEP</a></li>
        <li><a href="#how_to_measure">HOW TO MEASURE</a></li>
        <li><a href="#example">EXAMPLE</a></li>
        <li><a href="#example_3">EXAMPLE 3</a></li>
        <li><a href="#author">AUTHOR</a></li>
 </ul>
+
 -->
+
+
+</div>
 <!-- INDEX END -->
 
 <p>
@@ -60,11 +68,11 @@ and filled with <em>*UNKNOWN*</em> data.</p>
 </p>
 <h2><a name="filename"><em>filename</em></a></h2>
 <p>The name of the <strong>RRD</strong> you want to create. <strong>RRD</strong> files should end
-with the extension <em>.rrd</em>. However, <strong>RRDtool</strong> will accept any
+with the extension <em class="file">.rrd</em>. However, <strong>RRDtool</strong> will accept any
 filename.</p>
 <p>
 </p>
-<h2><a name="start_b_start_time__default__now__10s_"><strong>--start</strong>|<strong>-b</strong> <em>start time</em> (default: now - 10s)</a></h2>
+<h2><a name="__start__b_start_time__default__now___10s_"><strong>--start</strong>|<strong>-b</strong> <em>start time</em> (default: now - 10s)</a></h2>
 <p>Specifies the time in seconds since 1970-01-01 UTC when the first
 value should be added to the <strong>RRD</strong>. <strong>RRDtool</strong> will not accept
 any data timed before or at the time specified.</p>
@@ -72,12 +80,12 @@ any data timed before or at the time specified.</p>
 <em>rrdfetch</em> documentation for other ways to specify time.</p>
 <p>
 </p>
-<h2><a name="step_s_step__default__300_seconds_"><strong>--step</strong>|<strong>-s</strong> <em>step</em> (default: 300 seconds)</a></h2>
+<h2><a name="__step__s_step__default__300_seconds_"><strong>--step</strong>|<strong>-s</strong> <em>step</em> (default: 300 seconds)</a></h2>
 <p>Specifies the base interval in seconds with which data will be fed
 into the <strong>RRD</strong>.</p>
 <p>
 </p>
-<h2><a name="ds_dsname_dst_dst_arguments"><strong>DS:</strong><em>ds-name</em><strong>:</strong><em>DST</em><strong>:</strong><em>dst arguments</em></a></h2>
+<h2><a name="ds_ds_name_dst_dst_arguments"><strong>DS:</strong><em>ds-name</em><strong>:</strong><em>DST</em><strong>:</strong><em>dst arguments</em></a></h2>
 <p>A single <strong>RRD</strong> can accept input from several data sources (<strong>DS</strong>),
 for example incoming and outgoing traffic on a specific communication
 line. With the <strong>DS</strong> configuration option you must define some basic
@@ -92,53 +100,43 @@ DERIVE, and ABSOLUTE the format for a data source entry is:</p>
 <p>For COMPUTE data sources, the format is:</p>
 <p><strong>DS:</strong><em>ds-name</em><strong>:</strong><em>COMPUTE</em><strong>:</strong><em>rpn-expression</em></p>
 <p>In order to decide which data source type to use, review the
-definitions that follow. Also consult the section on ``HOW TO MEASURE''
+definitions that follow. Also consult the section on &quot;HOW TO MEASURE&quot;
 for further insight.</p>
 <dl>
-<dt><strong><a name="item_gauge"><strong>GAUGE</strong></a></strong><br />
-</dt>
+<dt><strong><a name="gauge" class="item"><strong>GAUGE</strong></a></strong></dt>
+
 <dd>
-is for things like temperatures or number of people in a room or the
-value of a RedHat share.
+<p>is for things like temperatures or number of people in a room or the
+value of a RedHat share.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_counter"><strong>COUNTER</strong></a></strong><br />
-</dt>
+<dt><strong><a name="counter" class="item"><strong>COUNTER</strong></a></strong></dt>
+
 <dd>
-is for continuous incrementing counters like the ifInOctets counter in
+<p>is for continuous incrementing counters like the ifInOctets counter in
 a router. The <strong>COUNTER</strong> data source assumes that the counter never
 decreases, except when a counter overflows.  The update function takes
 the overflow into account.  The counter is stored as a per-second
 rate. When the counter overflows, RRDtool checks if the overflow
 happened at the 32bit or 64bit border and acts accordingly by adding
-an appropriate value to the result.
+an appropriate value to the result.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_derive"><strong>DERIVE</strong></a></strong><br />
-</dt>
+<dt><strong><a name="derive" class="item"><strong>DERIVE</strong></a></strong></dt>
+
 <dd>
-will store the derivative of the line going from the last to the
+<p>will store the derivative of the line going from the last to the
 current value of the data source. This can be useful for gauges, for
 example, to measure the rate of people entering or leaving a
 room. Internally, derive works exactly like COUNTER but without
 overflow checks. So if your counter does not reset at 32 or 64 bit you
-might want to use DERIVE and combine it with a MIN value of 0.
-</dd>
-<dd>
+might want to use DERIVE and combine it with a MIN value of 0.</p>
 <p><strong>NOTE on COUNTER vs DERIVE</strong></p>
-</dd>
-<dd>
 <p>by Don Baarda &lt;<a href="mailto:don.baarda@baesystems.com">don.baarda@baesystems.com</a>&gt;</p>
-</dd>
-<dd>
 <p>If you cannot tolerate ever mistaking the occasional counter reset for a
-legitimate counter wrap, and would prefer ``Unknowns'' for all legitimate
+legitimate counter wrap, and would prefer &quot;Unknowns&quot; for all legitimate
 counter wraps and resets, always use DERIVE with min=0. Otherwise, using
 COUNTER with a suitable max will return correct values for all legitimate
-counter wraps, mark some counter resets as ``Unknown'', but can mistake some
+counter wraps, mark some counter resets as &quot;Unknown&quot;, but can mistake some
 counter resets for a legitimate counter wrap.</p>
-</dd>
-<dd>
 <p>For a 5 minute step and 32-bit counter, the probability of mistaking a
 counter reset for a legitimate wrap is arguably about 0.8% per 1Mbps of
 maximum bandwidth. Note that this equates to 80% for 100Mbps interfaces, so
@@ -147,30 +145,28 @@ probably preferable. If you are using a 64bit counter, just about any max
 setting will eliminate the possibility of mistaking a reset for a counter
 wrap.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_absolute"><strong>ABSOLUTE</strong></a></strong><br />
-</dt>
+<dt><strong><a name="absolute" class="item"><strong>ABSOLUTE</strong></a></strong></dt>
+
 <dd>
-is for counters which get reset upon reading. This is used for fast counters
+<p>is for counters which get reset upon reading. This is used for fast counters
 which tend to overflow. So instead of reading them normally you reset them
 after every read to make sure you have a maximum time available before the
 next overflow. Another usage is for things you count like number of messages
-since the last update.
+since the last update.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_compute"><strong>COMPUTE</strong></a></strong><br />
-</dt>
+<dt><strong><a name="compute" class="item"><strong>COMPUTE</strong></a></strong></dt>
+
 <dd>
-is for storing the result of a formula applied to other data sources
+<p>is for storing the result of a formula applied to other data sources
 in the <strong>RRD</strong>. This data source is not supplied a value on update, but
 rather its Primary Data Points (PDPs) are computed from the PDPs of
 the data sources according to the rpn-expression that defines the
 formula. Consolidation functions are then applied normally to the PDPs
 of the COMPUTE data source (that is the rpn-expression is only applied
 to generate PDPs). In database software, such data sets are referred
-to as ``virtual'' or ``computed'' columns.
+to as &quot;virtual&quot; or &quot;computed&quot; columns.</p>
 </dd>
-<p></p></dl>
+</dl>
 <p><em>heartbeat</em> defines the maximum number of seconds that may pass
 between two updates of this data source before the value of the
 data source is assumed to be <em>*UNKNOWN*</em>.</p>
@@ -207,30 +203,27 @@ the archive. There are several consolidation functions that
 consolidate primary data points via an aggregate function: <strong>AVERAGE</strong>,
 <strong>MIN</strong>, <strong>MAX</strong>, <strong>LAST</strong>.</p>
 <dl>
-<dt><strong><a name="item_average">AVERAGE</a></strong><br />
-</dt>
+<dt><strong><a name="average" class="item">AVERAGE</a></strong></dt>
+
 <dd>
-the average of the data points is stored.
+<p>the average of the data points is stored.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_min">MIN</a></strong><br />
-</dt>
+<dt><strong><a name="min" class="item">MIN</a></strong></dt>
+
 <dd>
-the smallest of the data points is stored.
+<p>the smallest of the data points is stored.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_max">MAX</a></strong><br />
-</dt>
+<dt><strong><a name="max" class="item">MAX</a></strong></dt>
+
 <dd>
-the largest of the data points is stored.
+<p>the largest of the data points is stored.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_last">LAST</a></strong><br />
-</dt>
+<dt><strong><a name="last" class="item">LAST</a></strong></dt>
+
 <dd>
-the last data points is used.
+<p>the last data points is used.</p>
 </dd>
-<p></p></dl>
+</dl>
 <p>Note that data aggregation inevitably leads to loss of precision and
 information. The trick is to pick the aggregate function such that the
 <em>interesting</em> properties of your data is kept across the aggregation
@@ -249,30 +242,31 @@ Obviously, this has to be greater than zero.</p>
 <p>
 </p>
 <hr />
-<h1><a name="aberrant_behavior_detection_with_holtwinters_forecasting">Aberrant Behavior Detection with Holt-Winters Forecasting</a></h1>
+<h1><a name="aberrant_behavior_detection_with_holt_winters_forecasting">Aberrant Behavior Detection with Holt-Winters Forecasting</a></h1>
 <p>In addition to the aggregate functions, there are a set of specialized
 functions that enable <strong>RRDtool</strong> to provide data smoothing (via the
 Holt-Winters forecasting algorithm), confidence bands, and the
 flagging aberrant behavior in the data source time series:</p>
 <ul>
-<li></li>
-<strong>RRA:</strong><em>HWPREDICT</em><strong>:</strong><em>rows</em><strong>:</strong><em>alpha</em><strong>:</strong><em>beta</em><strong>:</strong><em>seasonal period</em>[<strong>:</strong><em>rra-num</em>]
-<p></p>
-<li></li>
-<strong>RRA:</strong><em>MHWPREDICT</em><strong>:</strong><em>rows</em><strong>:</strong><em>alpha</em><strong>:</strong><em>beta</em><strong>:</strong><em>seasonal period</em>[<strong>:</strong><em>rra-num</em>]
-<p></p>
-<li></li>
-<strong>RRA:</strong><em>SEASONAL</em><strong>:</strong><em>seasonal period</em><strong>:</strong><em>gamma</em><strong>:</strong><em>rra-num</em>[<strong>:smoothing-window=</strong><em>fraction</em>]
-<p></p>
-<li></li>
-<strong>RRA:</strong><em>DEVSEASONAL</em><strong>:</strong><em>seasonal period</em><strong>:</strong><em>gamma</em><strong>:</strong><em>rra-num</em>[<strong>:smoothing-window=</strong><em>fraction</em>]
-<p></p>
-<li></li>
-<strong>RRA:</strong><em>DEVPREDICT</em><strong>:</strong><em>rows</em><strong>:</strong><em>rra-num</em>
-<p></p>
-<li></li>
-<strong>RRA:</strong><em>FAILURES</em><strong>:</strong><em>rows</em><strong>:</strong><em>threshold</em><strong>:</strong><em>window length</em><strong>:</strong><em>rra-num</em>
-<p></p></ul>
+<li>
+<p><strong>RRA:</strong><em>HWPREDICT</em><strong>:</strong><em>rows</em><strong>:</strong><em>alpha</em><strong>:</strong><em>beta</em><strong>:</strong><em>seasonal period</em>[<strong>:</strong><em>rra-num</em>]</p>
+</li>
+<li>
+<p><strong>RRA:</strong><em>MHWPREDICT</em><strong>:</strong><em>rows</em><strong>:</strong><em>alpha</em><strong>:</strong><em>beta</em><strong>:</strong><em>seasonal period</em>[<strong>:</strong><em>rra-num</em>]</p>
+</li>
+<li>
+<p><strong>RRA:</strong><em>SEASONAL</em><strong>:</strong><em>seasonal period</em><strong>:</strong><em>gamma</em><strong>:</strong><em>rra-num</em>[<strong>:smoothing-window=</strong><em>fraction</em>]</p>
+</li>
+<li>
+<p><strong>RRA:</strong><em>DEVSEASONAL</em><strong>:</strong><em>seasonal period</em><strong>:</strong><em>gamma</em><strong>:</strong><em>rra-num</em>[<strong>:smoothing-window=</strong><em>fraction</em>]</p>
+</li>
+<li>
+<p><strong>RRA:</strong><em>DEVPREDICT</em><strong>:</strong><em>rows</em><strong>:</strong><em>rra-num</em></p>
+</li>
+<li>
+<p><strong>RRA:</strong><em>FAILURES</em><strong>:</strong><em>rows</em><strong>:</strong><em>threshold</em><strong>:</strong><em>window length</em><strong>:</strong><em>rra-num</em></p>
+</li>
+</ul>
 <p>These <strong>RRAs</strong> differ from the true consolidation functions in several ways.
 First, each of the <strong>RRA</strong>s is updated once for every primary data point.
 Second, these <strong>RRAs</strong> are interdependent. To generate real-time confidence
@@ -366,21 +360,22 @@ index in the order of <strong>RRA</strong> creation (that is, the order they app
 in the <em>create</em> command). The dependent <strong>RRA</strong> for each <strong>RRA</strong>
 requiring the <em>rra-num</em> argument is listed here:</p>
 <ul>
-<li></li>
-HWPREDICT <em>rra-num</em> is the index of the SEASONAL <strong>RRA</strong>.
-<p></p>
-<li></li>
-SEASONAL <em>rra-num</em> is the index of the HWPREDICT <strong>RRA</strong>.
-<p></p>
-<li></li>
-DEVPREDICT <em>rra-num</em> is the index of the DEVSEASONAL <strong>RRA</strong>.
-<p></p>
-<li></li>
-DEVSEASONAL <em>rra-num</em> is the index of the HWPREDICT <strong>RRA</strong>.
-<p></p>
-<li></li>
-FAILURES <em>rra-num</em> is the index of the DEVSEASONAL <strong>RRA</strong>.
-<p></p></ul>
+<li>
+<p>HWPREDICT <em>rra-num</em> is the index of the SEASONAL <strong>RRA</strong>.</p>
+</li>
+<li>
+<p>SEASONAL <em>rra-num</em> is the index of the HWPREDICT <strong>RRA</strong>.</p>
+</li>
+<li>
+<p>DEVPREDICT <em>rra-num</em> is the index of the DEVSEASONAL <strong>RRA</strong>.</p>
+</li>
+<li>
+<p>DEVSEASONAL <em>rra-num</em> is the index of the HWPREDICT <strong>RRA</strong>.</p>
+</li>
+<li>
+<p>FAILURES <em>rra-num</em> is the index of the DEVSEASONAL <strong>RRA</strong>.</p>
+</li>
+</ul>
 <p><em>threshold</em> is the minimum number of violations (observed values outside
 the confidence bounds) within a window that constitutes a failure. If the
 FAILURES <strong>RRA</strong> is implicitly created, the default value is 7.</p>
@@ -397,28 +392,28 @@ default value is 9.</p>
 It may help you to sort out why all this *UNKNOWN* data is popping
 up in your databases:</p>
 <p>RRDtool gets fed samples/updates at arbitrary times. From these it builds Primary
-Data Points (PDPs) on every ``step'' interval. The PDPs are
+Data Points (PDPs) on every &quot;step&quot; interval. The PDPs are
 then accumulated into the RRAs.</p>
-<p>The ``heartbeat'' defines the maximum acceptable interval between
-samples/updates. If the interval between samples is less than ``heartbeat'',
+<p>The &quot;heartbeat&quot; defines the maximum acceptable interval between
+samples/updates. If the interval between samples is less than &quot;heartbeat&quot;,
 then an average rate is calculated and applied for that interval. If
-the interval between samples is longer than ``heartbeat'', then that
-entire interval is considered ``unknown''. Note that there are other
-things that can make a sample interval ``unknown'', such as the rate
+the interval between samples is longer than &quot;heartbeat&quot;, then that
+entire interval is considered &quot;unknown&quot;. Note that there are other
+things that can make a sample interval &quot;unknown&quot;, such as the rate
 exceeding limits, or a sample that was explicitly marked as unknown.</p>
-<p>The known rates during a PDP's ``step'' interval are used to calculate
-an average rate for that PDP. If the total ``unknown'' time accounts for
-more than <strong>half</strong> the ``step'', the entire PDP is marked
-as ``unknown''. This means that a mixture of known and ``unknown'' sample
-times in a single PDP ``step'' may or may not add up to enough ``known''
+<p>The known rates during a PDP's &quot;step&quot; interval are used to calculate
+an average rate for that PDP. If the total &quot;unknown&quot; time accounts for
+more than <strong>half</strong> the &quot;step&quot;, the entire PDP is marked
+as &quot;unknown&quot;. This means that a mixture of known and &quot;unknown&quot; sample
+times in a single PDP &quot;step&quot; may or may not add up to enough &quot;known&quot;
 time to warrent for a known PDP.</p>
-<p>The ``heartbeat'' can be short (unusual) or long (typical) relative to
-the ``step'' interval between PDPs. A short ``heartbeat'' means you
+<p>The &quot;heartbeat&quot; can be short (unusual) or long (typical) relative to
+the &quot;step&quot; interval between PDPs. A short &quot;heartbeat&quot; means you
 require multiple samples per PDP, and if you don't get them mark the
-PDP unknown. A long heartbeat can span multiple ``steps'', which means
+PDP unknown. A long heartbeat can span multiple &quot;steps&quot;, which means
 it is acceptable to have multiple PDPs calculated from a single
-sample. An extreme example of this might be a ``step'' of 5 minutes and a
-``heartbeat'' of one day, in which case a single sample every day will
+sample. An extreme example of this might be a &quot;step&quot; of 5 minutes and a
+&quot;heartbeat&quot; of one day, in which case a single sample every day will
 result in all the PDPs for that entire day period being set to the
 same average rate. <em>-- Don Baarda &lt;<a href="mailto:don.baarda@baesystems.com">don.baarda@baesystems.com</a>&gt;</em></p>
 <pre>
@@ -464,20 +459,19 @@ same average rate. <em>-- Don Baarda &lt;<a href="mailto:don.baarda@baesystems.c
 <h1><a name="how_to_measure">HOW TO MEASURE</a></h1>
 <p>Here are a few hints on how to measure:</p>
 <dl>
-<dt><strong><a name="item_temperature">Temperature</a></strong><br />
-</dt>
+<dt><strong><a name="temperature" class="item">Temperature</a></strong></dt>
+
 <dd>
-Usually you have some type of meter you can read to get the temperature.
+<p>Usually you have some type of meter you can read to get the temperature.
 The temperature is not really connected with a time. The only connection is
 that the temperature reading happened at a certain time. You can use the
 <strong>GAUGE</strong> data source type for this. RRDtool will then record your reading
-together with the time.
+together with the time.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_mail_messages">Mail Messages</a></strong><br />
-</dt>
+<dt><strong><a name="mail_messages" class="item">Mail Messages</a></strong></dt>
+
 <dd>
-Assume you have a method to count the number of messages transported by
+<p>Assume you have a method to count the number of messages transported by
 your mailserver in a certain amount of time, giving you data like '5
 messages in the last 65 seconds'. If you look at the count of 5 like an
 <strong>ABSOLUTE</strong> data type you can simply update the RRD with the number 5 and the
@@ -486,25 +480,24 @@ messages per second. If at some later stage you want to know the number of
 messages transported in a day, you can get the average messages per second
 from RRDtool for the day in question and multiply this number with the
 number of seconds in a day. Because all math is run with Doubles, the
-precision should be acceptable.
+precision should be acceptable.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_it_27s_always_a_rate">It's always a Rate</a></strong><br />
-</dt>
+<dt><strong><a name="it_s_always_a_rate" class="item">It's always a Rate</a></strong></dt>
+
 <dd>
-RRDtool stores rates in amount/second for COUNTER, DERIVE and ABSOLUTE
+<p>RRDtool stores rates in amount/second for COUNTER, DERIVE and ABSOLUTE
 data.  When you plot the data, you will get on the y axis
 amount/second which you might be tempted to convert to an absolute
 amount by multiplying by the delta-time between the points. RRDtool
 plots continuous data, and as such is not appropriate for plotting
-absolute amounts as for example ``total bytes'' sent and received in a
+absolute amounts as for example &quot;total bytes&quot; sent and received in a
 router. What you probably want is plot rates that you can scale to
 bytes/hour, for example, or plot absolute amounts with another tool
 that draws bar-plots, where the delta-time is clear on the plot for
 each point (such that when you read the graph you see for example GB
-on the y axis, days on the x axis and one bar for each day).
+on the y axis, days on the x axis and one bar for each day).</p>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <hr />
@@ -516,7 +509,7 @@ on the y axis, days on the x axis and one bar for each day).
   RRA:MIN:0.5:12:2400 \
   RRA:MAX:0.5:12:2400 \
   RRA:AVERAGE:0.5:12:2400</pre>
-<p>This sets up an <strong>RRD</strong> called <em>temperature.rrd</em> which accepts one
+<p>This sets up an <strong>RRD</strong> called <em class="file">temperature.rrd</em> which accepts one
 temperature value every 300 seconds. If no new data is supplied for
 more than 600 seconds, the temperature becomes <em>*UNKNOWN*</em>.  The
 minimum acceptable value is -273 and the maximum is 5'000.</p>
index 18647ec9b4c7a110b12840e20aff2bd8dbf7a8e7..64d1633d675ef91b5dd4324d8466d828b2c061e7 100644 (file)
@@ -14,29 +14,25 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        (R\bRR\bRD\bD) files.  The file is created at its final, full size and filled
        with _\b*_\bU_\bN_\bK_\bN_\bO_\bW_\bN_\b* data.
 
-       _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
-
+   _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
        The name of the R\bRR\bRD\bD you want to create. R\bRR\bRD\bD files should end with the
        extension _\b._\br_\br_\bd. However, R\bRR\bRD\bDt\bto\boo\bol\bl will accept any filename.
 
-       -\b--\b-s\bst\bta\bar\brt\bt|\b|-\b-b\bb _\bs_\bt_\ba_\br_\bt _\bt_\bi_\bm_\be (\b(d\bde\bef\bfa\bau\bul\blt\bt:\b: n\bno\bow\bw -\b- 1\b10\b0s\bs)\b)
-
+   -\b--\b-s\bst\bta\bar\brt\bt|\b|-\b-b\bb _\bs_\bt_\ba_\br_\bt _\bt_\bi_\bm_\be (\b(d\bde\bef\bfa\bau\bul\blt\bt:\b: n\bno\bow\bw -\b- 1\b10\b0s\bs)\b)
        Specifies the time in seconds since 1970-01-01 UTC when the first value
        should be added to the R\bRR\bRD\bD. R\bRR\bRD\bDt\bto\boo\bol\bl will not accept any data timed
        before or at the time specified.
 
-       See also AT-STYLE TIME SPECIFICATION section in the _\br_\br_\bd_\bf_\be_\bt_\bc_\bh documenta-
-       tion for other ways to specify time.
-
-       -\b--\b-s\bst\bte\bep\bp|\b|-\b-s\bs _\bs_\bt_\be_\bp (\b(d\bde\bef\bfa\bau\bul\blt\bt:\b: 3\b30\b00\b0 s\bse\bec\bco\bon\bnd\bds\bs)\b)
+       See also AT-STYLE TIME SPECIFICATION section in the _\br_\br_\bd_\bf_\be_\bt_\bc_\bh
+       documentation for other ways to specify time.
 
+   -\b--\b-s\bst\bte\bep\bp|\b|-\b-s\bs _\bs_\bt_\be_\bp (\b(d\bde\bef\bfa\bau\bul\blt\bt:\b: 3\b30\b00\b0 s\bse\bec\bco\bon\bnd\bds\bs)\b)
        Specifies the base interval in seconds with which data will be fed into
        the R\bRR\bRD\bD.
 
-       D\bDS\bS:\b:_\bd_\bs_\b-_\bn_\ba_\bm_\be:\b:_\bD_\bS_\bT:\b:_\bd_\bs_\bt _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs
-
-       A single R\bRR\bRD\bD can accept input from several data sources (D\bDS\bS), for exam-
-       ple incoming and outgoing traffic on a specific communication line.
+   D\bDS\bS:\b:_\bd_\bs_\b-_\bn_\ba_\bm_\be:\b:_\bD_\bS_\bT:\b:_\bd_\bs_\bt _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs
+       A single R\bRR\bRD\bD can accept input from several data sources (D\bDS\bS), for
+       example incoming and outgoing traffic on a specific communication line.
        With the D\bDS\bS configuration option you must define some basic properties
        of each data source you want to store in the R\bRR\bRD\bD.
 
@@ -54,9 +50,9 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
 
        D\bDS\bS:\b:_\bd_\bs_\b-_\bn_\ba_\bm_\be:\b:_\bC_\bO_\bM_\bP_\bU_\bT_\bE:\b:_\br_\bp_\bn_\b-_\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn
 
-       In order to decide which data source type to use, review the defini-
-       tions that follow. Also consult the section on "HOW TO MEASURE" for
-       further insight.
+       In order to decide which data source type to use, review the
+       definitions that follow. Also consult the section on "HOW TO MEASURE"
+       for further insight.
 
        G\bGA\bAU\bUG\bGE\bE
            is for things like temperatures or number of people in a room or
@@ -91,28 +87,28 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
            as "Unknown", but can mistake some counter resets for a legitimate
            counter wrap.
 
-           For a 5 minute step and 32-bit counter, the probability of mistak-
-           ing a counter reset for a legitimate wrap is arguably about 0.8%
-           per 1Mbps of maximum bandwidth. Note that this equates to 80% for
-           100Mbps interfaces, so for high bandwidth interfaces and a 32bit
-           counter, DERIVE with min=0 is probably preferable. If you are using
-           a 64bit counter, just about any max setting will eliminate the pos-
-           sibility of mistaking a reset for a counter wrap.
+           For a 5 minute step and 32-bit counter, the probability of
+           mistaking a counter reset for a legitimate wrap is arguably about
+           0.8% per 1Mbps of maximum bandwidth. Note that this equates to 80%
+           for 100Mbps interfaces, so for high bandwidth interfaces and a
+           32bit counter, DERIVE with min=0 is probably preferable. If you are
+           using a 64bit counter, just about any max setting will eliminate
+           the possibility of mistaking a reset for a counter wrap.
 
        A\bAB\bBS\bSO\bOL\bLU\bUT\bTE\bE
            is for counters which get reset upon reading. This is used for fast
-           counters which tend to overflow. So instead of reading them nor-
-           mally you reset them after every read to make sure you have a maxi-
-           mum time available before the next overflow. Another usage is for
-           things you count like number of messages since the last update.
+           counters which tend to overflow. So instead of reading them
+           normally you reset them after every read to make sure you have a
+           maximum time available before the next overflow. Another usage is
+           for things you count like number of messages since the last update.
 
        C\bCO\bOM\bMP\bPU\bUT\bTE\bE
            is for storing the result of a formula applied to other data
            sources in the R\bRR\bRD\bD. This data source is not supplied a value on
            update, but rather its Primary Data Points (PDPs) are computed from
            the PDPs of the data sources according to the rpn-expression that
-           defines the formula. Consolidation functions are then applied nor-
-           mally to the PDPs of the COMPUTE data source (that is the rpn-
+           defines the formula. Consolidation functions are then applied
+           normally to the PDPs of the COMPUTE data source (that is the rpn-
            expression is only applied to generate PDPs). In database software,
            such data sets are referred to as "virtual" or "computed" columns.
 
@@ -134,16 +130,15 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        _\br_\bp_\bn_\b-_\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn defines the formula used to compute the PDPs of a
        COMPUTE data source from other data sources in the same <RRD>. It is
        similar to defining a C\bCD\bDE\bEF\bF argument for the graph command. Please refer
-       to that manual page for a list and description of RPN operations sup-
-       ported. For COMPUTE data sources, the following RPN operations are not
-       supported: COUNT, PREV, TIME, and LTIME. In addition, in defining the
-       RPN expression, the COMPUTE data source may only refer to the names of
-       data source listed previously in the create command. This is similar to
-       the restriction that C\bCD\bDE\bEF\bFs must refer only to D\bDE\bEF\bFs and C\bCD\bDE\bEF\bFs previously
-       defined in the same graph command.
-
-       R\bRR\bRA\bA:\b:_\bC_\bF:\b:_\bc_\bf _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs
-
+       to that manual page for a list and description of RPN operations
+       supported. For COMPUTE data sources, the following RPN operations are
+       not supported: COUNT, PREV, TIME, and LTIME. In addition, in defining
+       the RPN expression, the COMPUTE data source may only refer to the names
+       of data source listed previously in the create command. This is similar
+       to the restriction that C\bCD\bDE\bEF\bFs must refer only to D\bDE\bEF\bFs and C\bCD\bDE\bEF\bFs
+       previously defined in the same graph command.
+
+   R\bRR\bRA\bA:\b:_\bC_\bF:\b:_\bc_\bf _\ba_\br_\bg_\bu_\bm_\be_\bn_\bt_\bs
        The purpose of an R\bRR\bRD\bD is to store data in the round robin archives
        (R\bRR\bRA\bA). An archive consists of a number of data values or statistics for
        each of the defined data-sources (D\bDS\bS) and is defined with an R\bRR\bRA\bA line.
@@ -168,8 +163,8 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
 
        Note that data aggregation inevitably leads to loss of precision and
        information. The trick is to pick the aggregate function such that the
-       _\bi_\bn_\bt_\be_\br_\be_\bs_\bt_\bi_\bn_\bg properties of your data is kept across the aggregation pro-
-       cess.
+       _\bi_\bn_\bt_\be_\br_\be_\bs_\bt_\bi_\bn_\bg properties of your data is kept across the aggregation
+       process.
 
        The format of R\bRR\bRA\bA line for these consolidation functions is:
 
@@ -193,43 +188,43 @@ A\bAb\bbe\ber\brr\bra\ban\bnt\bt B\bBe\beh\bha\bav\bvi\bio\bor\br D\bDe\bet\bte\bec\bct\bti\bio\bon\bn w\b
        Winters forecasting algorithm), confidence bands, and the flagging
        aberrant behavior in the data source time series:
 
-       Â·   R\bRR\bRA\bA:\b:_\bH_\bW_\bP_\bR_\bE_\bD_\bI_\bC_\bT:\b:_\br_\bo_\bw_\bs:\b:_\ba_\bl_\bp_\bh_\ba:\b:_\bb_\be_\bt_\ba:\b:_\bs_\be_\ba_\bs_\bo_\bn_\ba_\bl _\bp_\be_\br_\bi_\bo_\bd[:\b:_\br_\br_\ba_\b-_\bn_\bu_\bm]
+       Ã‚·   R\bRR\bRA\bA:\b:_\bH_\bW_\bP_\bR_\bE_\bD_\bI_\bC_\bT:\b:_\br_\bo_\bw_\bs:\b:_\ba_\bl_\bp_\bh_\ba:\b:_\bb_\be_\bt_\ba:\b:_\bs_\be_\ba_\bs_\bo_\bn_\ba_\bl _\bp_\be_\br_\bi_\bo_\bd[:\b:_\br_\br_\ba_\b-_\bn_\bu_\bm]
 
-       Â·   R\bRR\bRA\bA:\b:_\bM_\bH_\bW_\bP_\bR_\bE_\bD_\bI_\bC_\bT:\b:_\br_\bo_\bw_\bs:\b:_\ba_\bl_\bp_\bh_\ba:\b:_\bb_\be_\bt_\ba:\b:_\bs_\be_\ba_\bs_\bo_\bn_\ba_\bl _\bp_\be_\br_\bi_\bo_\bd[:\b:_\br_\br_\ba_\b-_\bn_\bu_\bm]
+       Ã‚·   R\bRR\bRA\bA:\b:_\bM_\bH_\bW_\bP_\bR_\bE_\bD_\bI_\bC_\bT:\b:_\br_\bo_\bw_\bs:\b:_\ba_\bl_\bp_\bh_\ba:\b:_\bb_\be_\bt_\ba:\b:_\bs_\be_\ba_\bs_\bo_\bn_\ba_\bl _\bp_\be_\br_\bi_\bo_\bd[:\b:_\br_\br_\ba_\b-_\bn_\bu_\bm]
 
-       Â·   R\bRR\bRA\bA:\b:_\bS_\bE_\bA_\bS_\bO_\bN_\bA_\bL:\b:_\bs_\be_\ba_\bs_\bo_\bn_\ba_\bl _\bp_\be_\br_\bi_\bo_\bd:\b:_\bg_\ba_\bm_\bm_\ba:\b:_\br_\br_\ba_\b-_\bn_\bu_\bm[:\b:s\bsm\bmo\boo\bot\bth\bhi\bin\bng\bg-\b-w\bwi\bin\bnd\bdo\bow\bw=\b=_\bf_\br_\ba_\bc_\b-
-           _\bt_\bi_\bo_\bn]
+       Â·   R\bRR\bRA\bA:\b:_\bS_\bE_\bA_\bS_\bO_\bN_\bA_\bL:\b:_\bs_\be_\ba_\bs_\bo_\bn_\ba_\bl _\bp_\be_\br_\bi_\bo_\bd:\b:_\bg_\ba_\bm_\bm_\ba:\b:_\br_\br_\ba_\b-
+           _\bn_\bu_\bm[:\b:s\bsm\bmo\boo\bot\bth\bhi\bin\bng\bg-\b-w\bwi\bin\bnd\bdo\bow\bw=\b=_\bf_\br_\ba_\bc_\bt_\bi_\bo_\bn]
 
-       Â·   R\bRR\bRA\bA:\b:_\bD_\bE_\bV_\bS_\bE_\bA_\bS_\bO_\bN_\bA_\bL:\b:_\bs_\be_\ba_\bs_\bo_\bn_\ba_\bl _\bp_\be_\br_\bi_\bo_\bd:\b:_\bg_\ba_\bm_\bm_\ba:\b:_\br_\br_\ba_\b-_\bn_\bu_\bm[:\b:s\bsm\bmo\boo\bot\bth\bhi\bin\bng\bg-\b-w\bwi\bin\bn-\b-
-           d\bdo\bow\bw=\b=_\bf_\br_\ba_\bc_\bt_\bi_\bo_\bn]
+       Â·   R\bRR\bRA\bA:\b:_\bD_\bE_\bV_\bS_\bE_\bA_\bS_\bO_\bN_\bA_\bL:\b:_\bs_\be_\ba_\bs_\bo_\bn_\ba_\bl _\bp_\be_\br_\bi_\bo_\bd:\b:_\bg_\ba_\bm_\bm_\ba:\b:_\br_\br_\ba_\b-
+           _\bn_\bu_\bm[:\b:s\bsm\bmo\boo\bot\bth\bhi\bin\bng\bg-\b-w\bwi\bin\bnd\bdo\bow\bw=\b=_\bf_\br_\ba_\bc_\bt_\bi_\bo_\bn]
 
-       Â·   R\bRR\bRA\bA:\b:_\bD_\bE_\bV_\bP_\bR_\bE_\bD_\bI_\bC_\bT:\b:_\br_\bo_\bw_\bs:\b:_\br_\br_\ba_\b-_\bn_\bu_\bm
+       Ã‚·   R\bRR\bRA\bA:\b:_\bD_\bE_\bV_\bP_\bR_\bE_\bD_\bI_\bC_\bT:\b:_\br_\bo_\bw_\bs:\b:_\br_\br_\ba_\b-_\bn_\bu_\bm
 
-       Â·   R\bRR\bRA\bA:\b:_\bF_\bA_\bI_\bL_\bU_\bR_\bE_\bS:\b:_\br_\bo_\bw_\bs:\b:_\bt_\bh_\br_\be_\bs_\bh_\bo_\bl_\bd:\b:_\bw_\bi_\bn_\bd_\bo_\bw _\bl_\be_\bn_\bg_\bt_\bh:\b:_\br_\br_\ba_\b-_\bn_\bu_\bm
+       Ã‚·   R\bRR\bRA\bA:\b:_\bF_\bA_\bI_\bL_\bU_\bR_\bE_\bS:\b:_\br_\bo_\bw_\bs:\b:_\bt_\bh_\br_\be_\bs_\bh_\bo_\bl_\bd:\b:_\bw_\bi_\bn_\bd_\bo_\bw _\bl_\be_\bn_\bg_\bt_\bh:\b:_\br_\br_\ba_\b-_\bn_\bu_\bm
 
        These R\bRR\bRA\bAs\bs differ from the true consolidation functions in several
        ways.  First, each of the R\bRR\bRA\bAs is updated once for every primary data
        point.  Second, these R\bRR\bRA\bAs\bs are interdependent. To generate real-time
        confidence bounds, a matched set of SEASONAL, DEVSEASONAL, DEVPREDICT,
-       and either HWPREDICT or MHWPREDICT must exist. Generating smoothed val-
-       ues of the primary data points requires a SEASONAL R\bRR\bRA\bA and either an
-       HWPREDICT or MHWPREDICT R\bRR\bRA\bA. Aberrant behavior detection requires FAIL-
-       URES, DEVSEASONAL, SEASONAL, and either HWPREDICT or MHWPREDICT.
+       and either HWPREDICT or MHWPREDICT must exist. Generating smoothed
+       values of the primary data points requires a SEASONAL R\bRR\bRA\bA and either an
+       HWPREDICT or MHWPREDICT R\bRR\bRA\bA. Aberrant behavior detection requires
+       FAILURES, DEVSEASONAL, SEASONAL, and either HWPREDICT or MHWPREDICT.
 
-       The predicted, or smoothed, values are stored in the HWPREDICT or MHW-
-       PREDICT R\bRR\bRA\bA. HWPREDICT and MHWPREDICT are actually two variations on
+       The predicted, or smoothed, values are stored in the HWPREDICT or
+       MHWPREDICT R\bRR\bRA\bA. HWPREDICT and MHWPREDICT are actually two variations on
        the Holt-Winters method. They are interchangeable. Both attempt to
-       decompose data into three components: a baseline, a trend, and a sea-
-       sonal coefficient.  HWPREDICT adds its seasonal coefficient to the
-       baseline to form a prediction, whereas MHWPREDICT multiplies its sea-
-       sonal coefficient by the baseline to form a prediction. The difference
-       is noticeable when the baseline changes significantly in the course of
-       a season; HWPREDICT will predict the seasonality to stay constant as
-       the baseline changes, but MHWPREDICT will predict the seasonality to
-       grow or shrink in proportion to the baseline. The proper choice of
-       method depends on the thing being modeled. For simplicity, the rest of
-       this discussion will refer to HWPREDICT, but MHWPREDICT may be substi-
-       tuted in its place.
+       decompose data into three components: a baseline, a trend, and a
+       seasonal coefficient.  HWPREDICT adds its seasonal coefficient to the
+       baseline to form a prediction, whereas MHWPREDICT multiplies its
+       seasonal coefficient by the baseline to form a prediction. The
+       difference is noticeable when the baseline changes significantly in the
+       course of a season; HWPREDICT will predict the seasonality to stay
+       constant as the baseline changes, but MHWPREDICT will predict the
+       seasonality to grow or shrink in proportion to the baseline. The proper
+       choice of method depends on the thing being modeled. For simplicity,
+       the rest of this discussion will refer to HWPREDICT, but MHWPREDICT may
+       be substituted in its place.
 
        The predicted deviations are stored in DEVPREDICT (think a standard
        deviation which can be scaled to yield a confidence band). The FAILURES
@@ -243,8 +238,8 @@ A\bAb\bbe\ber\brr\bra\ban\bnt\bt B\bBe\beh\bha\bav\bvi\bio\bor\br D\bDe\bet\bte\bec\bct\bti\bio\bon\bn w\b
        the Holt-Winters forecasting algorithm and the seasonal deviations,
        respectively.  There is one entry per observation time point in the
        seasonal cycle. For example, if primary data points are generated every
-       five minutes and the seasonal cycle is 1 day, both SEASONAL and DEVSEA-
-       SONAL will have 288 rows.
+       five minutes and the seasonal cycle is 1 day, both SEASONAL and
+       DEVSEASONAL will have 288 rows.
 
        In order to simplify the creation for the novice user, in addition to
        supporting explicit creation of the HWPREDICT, SEASONAL, DEVPREDICT,
@@ -257,46 +252,46 @@ A\bAb\bbe\ber\brr\bra\ban\bnt\bt B\bBe\beh\bha\bav\bvi\bio\bor\br D\bDe\bet\bte\bec\bct\bti\bio\bon\bn w\b
        and entries in these RRAs. For the HWPREDICT CF, _\br_\bo_\bw_\bs should be larger
        than the _\bs_\be_\ba_\bs_\bo_\bn_\ba_\bl _\bp_\be_\br_\bi_\bo_\bd. If the DEVPREDICT R\bRR\bRA\bA is implicitly created,
        the default number of rows is the same as the HWPREDICT _\br_\bo_\bw_\bs argument.
-       If the FAILURES R\bRR\bRA\bA is implicitly created, _\br_\bo_\bw_\bs will be set to the _\bs_\be_\ba_\b-
-       _\bs_\bo_\bn_\ba_\bl _\bp_\be_\br_\bi_\bo_\bd argument of the HWPREDICT R\bRR\bRA\bA. Of course, the R\bRR\bRD\bDt\bto\boo\bol\bl
+       If the FAILURES R\bRR\bRA\bA is implicitly created, _\br_\bo_\bw_\bs will be set to the
+       _\bs_\be_\ba_\bs_\bo_\bn_\ba_\bl _\bp_\be_\br_\bi_\bo_\bd argument of the HWPREDICT R\bRR\bRA\bA. Of course, the R\bRR\bRD\bDt\bto\boo\bol\bl
        _\br_\be_\bs_\bi_\bz_\be command is available if these defaults are not sufficient and
        the creator wishes to avoid explicit creations of the other specialized
        function R\bRR\bRA\bAs\bs.
 
-       _\bs_\be_\ba_\bs_\bo_\bn_\ba_\bl _\bp_\be_\br_\bi_\bo_\bd specifies the number of primary data points in a sea-
-       sonal cycle. If SEASONAL and DEVSEASONAL are implicitly created, this
-       argument for those R\bRR\bRA\bAs\bs is set automatically to the value specified by
-       HWPREDICT. If they are explicitly created, the creator should verify
-       that all three _\bs_\be_\ba_\bs_\bo_\bn_\ba_\bl _\bp_\be_\br_\bi_\bo_\bd arguments agree.
-
-       _\ba_\bl_\bp_\bh_\ba is the adaption parameter of the intercept (or baseline) coeffi-
-       cient in the Holt-Winters forecasting algorithm. See rrdtool for a
-       description of this algorithm. _\ba_\bl_\bp_\bh_\ba must lie between 0 and 1. A value
-       closer to 1 means that more recent observations carry greater weight in
-       predicting the baseline component of the forecast. A value closer to 0
-       means that past history carries greater weight in predicting the base-
-       line component.
-
-       _\bb_\be_\bt_\ba is the adaption parameter of the slope (or linear trend) coeffi-
-       cient in the Holt-Winters forecasting algorithm. _\bb_\be_\bt_\ba must lie between
-       0 and 1 and plays the same role as _\ba_\bl_\bp_\bh_\ba with respect to the predicted
-       linear trend.
+       _\bs_\be_\ba_\bs_\bo_\bn_\ba_\bl _\bp_\be_\br_\bi_\bo_\bd specifies the number of primary data points in a
+       seasonal cycle. If SEASONAL and DEVSEASONAL are implicitly created,
+       this argument for those R\bRR\bRA\bAs\bs is set automatically to the value
+       specified by HWPREDICT. If they are explicitly created, the creator
+       should verify that all three _\bs_\be_\ba_\bs_\bo_\bn_\ba_\bl _\bp_\be_\br_\bi_\bo_\bd arguments agree.
+
+       _\ba_\bl_\bp_\bh_\ba is the adaption parameter of the intercept (or baseline)
+       coefficient in the Holt-Winters forecasting algorithm. See rrdtool for
+       a description of this algorithm. _\ba_\bl_\bp_\bh_\ba must lie between 0 and 1. A
+       value closer to 1 means that more recent observations carry greater
+       weight in predicting the baseline component of the forecast. A value
+       closer to 0 means that past history carries greater weight in
+       predicting the baseline component.
+
+       _\bb_\be_\bt_\ba is the adaption parameter of the slope (or linear trend)
+       coefficient in the Holt-Winters forecasting algorithm. _\bb_\be_\bt_\ba must lie
+       between 0 and 1 and plays the same role as _\ba_\bl_\bp_\bh_\ba with respect to the
+       predicted linear trend.
 
        _\bg_\ba_\bm_\bm_\ba is the adaption parameter of the seasonal coefficients in the
-       Holt-Winters forecasting algorithm (HWPREDICT) or the adaption parame-
-       ter in the exponential smoothing update of the seasonal deviations. It
-       must lie between 0 and 1. If the SEASONAL and DEVSEASONAL R\bRR\bRA\bAs\bs are cre-
-       ated implicitly, they will both have the same value for _\bg_\ba_\bm_\bm_\ba: the
-       value specified for the HWPREDICT _\ba_\bl_\bp_\bh_\ba argument. Note that because
-       there is one seasonal coefficient (or deviation) for each time point
-       during the seasonal cycle, the adaptation rate is much slower than the
-       baseline. Each seasonal coefficient is only updated (or adapts) when
-       the observed value occurs at the offset in the seasonal cycle corre-
-       sponding to that coefficient.
+       Holt-Winters forecasting algorithm (HWPREDICT) or the adaption
+       parameter in the exponential smoothing update of the seasonal
+       deviations. It must lie between 0 and 1. If the SEASONAL and
+       DEVSEASONAL R\bRR\bRA\bAs\bs are created implicitly, they will both have the same
+       value for _\bg_\ba_\bm_\bm_\ba: the value specified for the HWPREDICT _\ba_\bl_\bp_\bh_\ba argument.
+       Note that because there is one seasonal coefficient (or deviation) for
+       each time point during the seasonal cycle, the adaptation rate is much
+       slower than the baseline. Each seasonal coefficient is only updated (or
+       adapts) when the observed value occurs at the offset in the seasonal
+       cycle corresponding to that coefficient.
 
        If SEASONAL and DEVSEASONAL R\bRR\bRA\bAs\bs are created explicitly, _\bg_\ba_\bm_\bm_\ba need not
-       be the same for both. Note that _\bg_\ba_\bm_\bm_\ba can also be changed via the R\bRR\bRD\bD-\b-
-       t\bto\boo\bol\bl _\bt_\bu_\bn_\be command.
+       be the same for both. Note that _\bg_\ba_\bm_\bm_\ba can also be changed via the
+       R\bRR\bRD\bDt\bto\boo\bol\bl _\bt_\bu_\bn_\be command.
 
        _\bs_\bm_\bo_\bo_\bt_\bh_\bi_\bn_\bg_\b-_\bw_\bi_\bn_\bd_\bo_\bw specifies the fraction of a season that should be
        averaged around each point. By default, the value of _\bs_\bm_\bo_\bo_\bt_\bh_\bi_\bn_\bg_\b-_\bw_\bi_\bn_\bd_\bo_\bw
@@ -305,24 +300,25 @@ A\bAb\bbe\ber\brr\bra\ban\bnt\bt B\bBe\beh\bha\bav\bvi\bio\bor\br D\bDe\bet\bte\bec\bct\bti\bio\bon\bn w\b
        nearest neighbors.  Setting _\bs_\bm_\bo_\bo_\bt_\bh_\bi_\bn_\bg_\b-_\bw_\bi_\bn_\bd_\bo_\bw to zero will disable the
        running-average smoother altogether.
 
-       _\br_\br_\ba_\b-_\bn_\bu_\bm provides the links between related R\bRR\bRA\bAs\bs. If HWPREDICT is speci-
-       fied alone and the other R\bRR\bRA\bAs\bs are created implicitly, then there is no
-       need to worry about this argument. If R\bRR\bRA\bAs\bs are created explicitly, then
-       carefully pay attention to this argument. For each R\bRR\bRA\bA which includes
-       this argument, there is a dependency between that R\bRR\bRA\bA and another R\bRR\bRA\bA.
-       The _\br_\br_\ba_\b-_\bn_\bu_\bm argument is the 1-based index in the order of R\bRR\bRA\bA creation
-       (that is, the order they appear in the _\bc_\br_\be_\ba_\bt_\be command). The dependent
-       R\bRR\bRA\bA for each R\bRR\bRA\bA requiring the _\br_\br_\ba_\b-_\bn_\bu_\bm argument is listed here:
+       _\br_\br_\ba_\b-_\bn_\bu_\bm provides the links between related R\bRR\bRA\bAs\bs. If HWPREDICT is
+       specified alone and the other R\bRR\bRA\bAs\bs are created implicitly, then there
+       is no need to worry about this argument. If R\bRR\bRA\bAs\bs are created
+       explicitly, then carefully pay attention to this argument. For each R\bRR\bRA\bA
+       which includes this argument, there is a dependency between that R\bRR\bRA\bA
+       and another R\bRR\bRA\bA. The _\br_\br_\ba_\b-_\bn_\bu_\bm argument is the 1-based index in the order
+       of R\bRR\bRA\bA creation (that is, the order they appear in the _\bc_\br_\be_\ba_\bt_\be command).
+       The dependent R\bRR\bRA\bA for each R\bRR\bRA\bA requiring the _\br_\br_\ba_\b-_\bn_\bu_\bm argument is listed
+       here:
 
-       Â·   HWPREDICT _\br_\br_\ba_\b-_\bn_\bu_\bm is the index of the SEASONAL R\bRR\bRA\bA.
+       Ã‚·   HWPREDICT _\br_\br_\ba_\b-_\bn_\bu_\bm is the index of the SEASONAL R\bRR\bRA\bA.
 
-       Â·   SEASONAL _\br_\br_\ba_\b-_\bn_\bu_\bm is the index of the HWPREDICT R\bRR\bRA\bA.
+       Ã‚·   SEASONAL _\br_\br_\ba_\b-_\bn_\bu_\bm is the index of the HWPREDICT R\bRR\bRA\bA.
 
-       Â·   DEVPREDICT _\br_\br_\ba_\b-_\bn_\bu_\bm is the index of the DEVSEASONAL R\bRR\bRA\bA.
+       Ã‚·   DEVPREDICT _\br_\br_\ba_\b-_\bn_\bu_\bm is the index of the DEVSEASONAL R\bRR\bRA\bA.
 
-       Â·   DEVSEASONAL _\br_\br_\ba_\b-_\bn_\bu_\bm is the index of the HWPREDICT R\bRR\bRA\bA.
+       Ã‚·   DEVSEASONAL _\br_\br_\ba_\b-_\bn_\bu_\bm is the index of the HWPREDICT R\bRR\bRA\bA.
 
-       Â·   FAILURES _\br_\br_\ba_\b-_\bn_\bu_\bm is the index of the DEVSEASONAL R\bRR\bRA\bA.
+       Ã‚·   FAILURES _\br_\br_\ba_\b-_\bn_\bu_\bm is the index of the DEVSEASONAL R\bRR\bRA\bA.
 
        _\bt_\bh_\br_\be_\bs_\bh_\bo_\bl_\bd is the minimum number of violations (observed values outside
        the confidence bounds) within a window that constitutes a failure. If
@@ -330,9 +326,9 @@ A\bAb\bbe\ber\brr\bra\ban\bnt\bt B\bBe\beh\bha\bav\bvi\bio\bor\br D\bDe\bet\bte\bec\bct\bti\bio\bon\bn w\b
 
        _\bw_\bi_\bn_\bd_\bo_\bw _\bl_\be_\bn_\bg_\bt_\bh is the number of time points in the window. Specify an
        integer greater than or equal to the threshold and less than or equal
-       to 28.  The time interval this window represents depends on the inter-
-       val between primary data points. If the FAILURES R\bRR\bRA\bA is implicitly cre-
-       ated, the default value is 9.
+       to 28.  The time interval this window represents depends on the
+       interval between primary data points. If the FAILURES R\bRR\bRA\bA is implicitly
+       created, the default value is 9.
 
 T\bTh\bhe\be H\bHE\bEA\bAR\bRT\bTB\bBE\bEA\bAT\bT a\ban\bnd\bd t\bth\bhe\be S\bST\bTE\bEP\bP
        Here is an explanation by Don Baarda on the inner workings of RRDtool.
@@ -343,13 +339,14 @@ T\bTh\bhe\be H\bHE\bEA\bAR\bRT\bTB\bBE\bEA\bAT\bT a\ban\bnd\bd t\bth\bhe\be S\bST\bTE\bEP\bP
        builds Primary Data Points (PDPs) on every "step" interval. The PDPs
        are then accumulated into the RRAs.
 
-       The "heartbeat" defines the maximum acceptable interval between sam-
-       ples/updates. If the interval between samples is less than "heartbeat",
-       then an average rate is calculated and applied for that interval. If
-       the interval between samples is longer than "heartbeat", then that
-       entire interval is considered "unknown". Note that there are other
-       things that can make a sample interval "unknown", such as the rate
-       exceeding limits, or a sample that was explicitly marked as unknown.
+       The "heartbeat" defines the maximum acceptable interval between
+       samples/updates. If the interval between samples is less than
+       "heartbeat", then an average rate is calculated and applied for that
+       interval. If the interval between samples is longer than "heartbeat",
+       then that entire interval is considered "unknown". Note that there are
+       other things that can make a sample interval "unknown", such as the
+       rate exceeding limits, or a sample that was explicitly marked as
+       unknown.
 
        The known rates during a PDP's "step" interval are used to calculate an
        average rate for that PDP. If the total "unknown" time accounts for
@@ -363,10 +360,10 @@ T\bTh\bhe\be H\bHE\bEA\bAR\bRT\bTB\bBE\bEA\bAT\bT a\ban\bnd\bd t\bth\bhe\be S\bST\bTE\bEP\bP
        multiple samples per PDP, and if you don't get them mark the PDP
        unknown. A long heartbeat can span multiple "steps", which means it is
        acceptable to have multiple PDPs calculated from a single sample. An
-       extreme example of this might be a "step" of 5 minutes and a "heart-
-       beat" of one day, in which case a single sample every day will result
-       in all the PDPs for that entire day period being set to the same aver-
-       age rate. _\b-_\b- _\bD_\bo_\bn _\bB_\ba_\ba_\br_\bd_\ba _\b<_\bd_\bo_\bn_\b._\bb_\ba_\ba_\br_\bd_\ba_\b@_\bb_\ba_\be_\bs_\by_\bs_\bt_\be_\bm_\bs_\b._\bc_\bo_\bm_\b>
+       extreme example of this might be a "step" of 5 minutes and a
+       "heartbeat" of one day, in which case a single sample every day will
+       result in all the PDPs for that entire day period being set to the same
+       average rate. _\b-_\b- _\bD_\bo_\bn _\bB_\ba_\ba_\br_\bd_\ba _\b<_\bd_\bo_\bn_\b._\bb_\ba_\ba_\br_\bd_\ba_\b@_\bb_\ba_\be_\bs_\by_\bs_\bt_\be_\bm_\bs_\b._\bc_\bo_\bm_\b>
 
               time|
               axis|
@@ -410,28 +407,28 @@ H\bHO\bOW\bW T\bTO\bO M\bME\bEA\bAS\bSU\bUR\bRE\bE
        Here are a few hints on how to measure:
 
        Temperature
-           Usually you have some type of meter you can read to get the temper-
-           ature.  The temperature is not really connected with a time. The
-           only connection is that the temperature reading happened at a cer-
-           tain time. You can use the G\bGA\bAU\bUG\bGE\bE data source type for this. RRDtool
-           will then record your reading together with the time.
+           Usually you have some type of meter you can read to get the
+           temperature.  The temperature is not really connected with a time.
+           The only connection is that the temperature reading happened at a
+           certain time. You can use the G\bGA\bAU\bUG\bGE\bE data source type for this.
+           RRDtool will then record your reading together with the time.
 
        Mail Messages
-           Assume you have a method to count the number of messages trans-
-           ported by your mailserver in a certain amount of time, giving you
-           data like '5 messages in the last 65 seconds'. If you look at the
-           count of 5 like an A\bAB\bBS\bSO\bOL\bLU\bUT\bTE\bE data type you can simply update the RRD
-           with the number 5 and the end time of your monitoring period. RRD-
-           tool will then record the number of messages per second. If at some
-           later stage you want to know the number of messages transported in
-           a day, you can get the average messages per second from RRDtool for
-           the day in question and multiply this number with the number of
-           seconds in a day. Because all math is run with Doubles, the preci-
-           sion should be acceptable.
+           Assume you have a method to count the number of messages
+           transported by your mailserver in a certain amount of time, giving
+           you data like '5 messages in the last 65 seconds'. If you look at
+           the count of 5 like an A\bAB\bBS\bSO\bOL\bLU\bUT\bTE\bE data type you can simply update the
+           RRD with the number 5 and the end time of your monitoring period.
+           RRDtool will then record the number of messages per second. If at
+           some later stage you want to know the number of messages
+           transported in a day, you can get the average messages per second
+           from RRDtool for the day in question and multiply this number with
+           the number of seconds in a day. Because all math is run with
+           Doubles, the precision should be acceptable.
 
        It's always a Rate
-           RRDtool stores rates in amount/second for COUNTER, DERIVE and ABSO-
-           LUTE data.  When you plot the data, you will get on the y axis
+           RRDtool stores rates in amount/second for COUNTER, DERIVE and
+           ABSOLUTE data.  When you plot the data, you will get on the y axis
            amount/second which you might be tempted to convert to an absolute
            amount by multiplying by the delta-time between the points. RRDtool
            plots continuous data, and as such is not appropriate for plotting
@@ -451,17 +448,17 @@ E\bEX\bXA\bAM\bMP\bPL\bLE\bE
          RRA:MAX:0.5:12:2400 \
          RRA:AVERAGE:0.5:12:2400
 
-       This sets up an R\bRR\bRD\bD called _\bt_\be_\bm_\bp_\be_\br_\ba_\bt_\bu_\br_\be_\b._\br_\br_\bd which accepts one tempera-
-       ture value every 300 seconds. If no new data is supplied for more than
-       600 seconds, the temperature becomes _\b*_\bU_\bN_\bK_\bN_\bO_\bW_\bN_\b*.  The minimum acceptable
-       value is -273 and the maximum is 5'000.
+       This sets up an R\bRR\bRD\bD called _\bt_\be_\bm_\bp_\be_\br_\ba_\bt_\bu_\br_\be_\b._\br_\br_\bd which accepts one
+       temperature value every 300 seconds. If no new data is supplied for
+       more than 600 seconds, the temperature becomes _\b*_\bU_\bN_\bK_\bN_\bO_\bW_\bN_\b*.  The minimum
+       acceptable value is -273 and the maximum is 5'000.
 
        A few archive areas are also defined. The first stores the temperatures
        supplied for 100 hours (1'200 * 300 seconds = 100 hours). The second
        RRA stores the minimum temperature recorded over every hour (12 * 300
        seconds = 1 hour), for 100 days (2'400 hours). The third and the fourth
-       RRA's do the same for the maximum and average temperature, respec-
-       tively.
+       RRA's do the same for the maximum and average temperature,
+       respectively.
 
 E\bEX\bXA\bAM\bMP\bPL\bLE\bE 2\b2
         rrdtool create monitor.rrd --step 300        \
@@ -475,18 +472,18 @@ E\bEX\bXA\bAM\bMP\bPL\bLE\bE 2\b2
        argument of HWPREDICT is missing, so the other R\bRR\bRA\bAs\bs will implicitly be
        created with default parameter values. In this example, the forecasting
        algorithm baseline adapts quickly; in fact the most recent one hour of
-       observations (each at 5 minute intervals) accounts for 75% of the base-
-       line prediction. The linear trend forecast adapts much more slowly.
+       observations (each at 5 minute intervals) accounts for 75% of the
+       baseline prediction. The linear trend forecast adapts much more slowly.
        Observations made during the last day (at 288 observations per day)
-       account for only 65% of the predicted linear trend. Note: these compu-
-       tations rely on an exponential smoothing formula described in the LISA
-       2000 paper.
+       account for only 65% of the predicted linear trend. Note: these
+       computations rely on an exponential smoothing formula described in the
+       LISA 2000 paper.
 
-       The seasonal cycle is one day (288 data points at 300 second inter-
-       vals), and the seasonal adaption parameter will be set to 0.1. The RRD
-       file will store 5 days (1'440 data points) of forecasts and deviation
-       predictions before wrap around. The file will store 1 day (a seasonal
-       cycle) of 0-1 indicators in the FAILURES R\bRR\bRA\bA.
+       The seasonal cycle is one day (288 data points at 300 second
+       intervals), and the seasonal adaption parameter will be set to 0.1. The
+       RRD file will store 5 days (1'440 data points) of forecasts and
+       deviation predictions before wrap around. The file will store 1 day (a
+       seasonal cycle) of 0-1 indicators in the FAILURES R\bRR\bRA\bA.
 
        The same RRD file and R\bRR\bRA\bAs\bs are created with the following command,
        which explicitly creates all specialized function R\bRR\bRA\bAs\bs.
@@ -500,8 +497,8 @@ E\bEX\bXA\bAM\bMP\bPL\bLE\bE 2\b2
           RRA:DEVSEASONAL:288:0.1:2 \
           RRA:FAILURES:288:7:9:5
 
-       Of course, explicit creation need not replicate implicit create, a num-
-       ber of arguments could be changed.
+       Of course, explicit creation need not replicate implicit create, a
+       number of arguments could be changed.
 
 E\bEX\bXA\bAM\bMP\bPL\bLE\bE 3\b3
         rrdtool create proxy.rrd --step 300 \
@@ -520,14 +517,15 @@ E\bEX\bXA\bAM\bMP\bPL\bLE\bE 3\b3
 
        In the R\bRR\bRD\bD, the first data source stores the requests per second rate
        during the interval. The second data source stores the total duration
-       of all requests processed during the interval divided by 300. The COM-
-       PUTE data source divides each PDP of the AccumDuration by the corre-
-       sponding PDP of TotalRequests and stores the average request duration.
-       The remainder of the RPN expression handles the divide by zero case.
+       of all requests processed during the interval divided by 300. The
+       COMPUTE data source divides each PDP of the AccumDuration by the
+       corresponding PDP of TotalRequests and stores the average request
+       duration. The remainder of the RPN expression handles the divide by
+       zero case.
 
 A\bAU\bUT\bTH\bHO\bOR\bR
        Tobias Oetiker <tobi@oetiker.ch>
 
 
 
-1.3.99909060808                   2008-06-11                      RRDCREATE(1)
+1.3.999                           2009-04-19                      RRDCREATE(1)
index b1d5fe40757efed5e2bfe6d3dd3281d24044bb02..2d89cf8723251298015fc27541c102e27fd49a22 100644 (file)
@@ -1,15 +1,7 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.08)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
 .de Sp \" Vertical space (when we can't use .PP)
 .if t .sp .5v
 .if n .sp
 ..
 .\" Set up some character translations and predefined strings.  \*(-- will
 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
 .ie n \{\
 .    ds -- \(*W-
 .    ds R" ''
 'br\}
 .\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
 .\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
 .\" entries marked with X<> in POD.  Of course, you'll have to process the
 .\" output yourself in some meaningful fashion.
-.if \nF \{\
+.ie \nF \{\
 .    de IX
 .    tm Index:\\$1\t\\n%\t"\\$2"
 ..
 .    nr % 0
 .    rr F
 .\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
+.el \{\
+.    de IX
+..
+.\}
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
 .\" ========================================================================
 .\"
 .IX Title "RRDDUMP 1"
-.TH RRDDUMP 1 "2008-12-10" "1.3.99909060808" "rrdtool"
+.TH RRDDUMP 1 "2009-06-09" "1.3.999" "rrdtool"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
 .SH "NAME"
 rrddump \- dump the contents of an RRD to XML format
 .SH "SYNOPSIS"
index 10818075b466d5f47445f846abfce5d83989d4ab..036780eb0c8bae1bc99947a4df280233c1106ae0 100644 (file)
@@ -1,14 +1,18 @@
+<?xml version="1.0" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>rrddump</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <link rev="made" href="mailto:root@localhost" />
 </head>
 
 <body style="background-color: white">
 
-<p><a name="__index__"></a></p>
+
 <!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
 <!--
 
 <ul>
        <li><a href="#environment_variables">ENVIRONMENT VARIABLES</a></li>
        <li><a href="#author">AUTHOR</a></li>
 </ul>
+
 -->
+
+
+</div>
 <!-- INDEX END -->
 
 <p>
@@ -47,66 +55,59 @@ files from one computer architecture to another as well to
 manipulate the contents of an <strong>RRD</strong> file in a somewhat more
 convenient manner.</p>
 <dl>
-<dt><strong><a name="item_filename_2errd"><em>filename.rrd</em></a></strong><br />
-</dt>
-<dd>
-The name of the <strong>RRD</strong> you want to dump.
-</dd>
-<p></p>
-<dt><strong><a name="item_filename_2exml"><em>filename.xml</em></a></strong><br />
-</dt>
+<dt><strong><a name="filename_rrd" class="item"><em>filename.rrd</em></a></strong></dt>
+
 <dd>
-The (optional) filename that you want to write the XML output to.
-If not specified, the XML will be printed to stdout.
+<p>The name of the <strong>RRD</strong> you want to dump.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2d_2dheader_7c_2dh__7bnone_2cxsd_2cdtd_7d"><strong>--header</strong>|<strong>-h</strong> {none,xsd,dtd}</a></strong><br />
-</dt>
+<dt><strong><a name="filename_xml" class="item"><em>filename.xml</em></a></strong></dt>
+
 <dd>
-By default rrdtool will add a dtd header to the xml file. Here
-you can customize this to and xsd header or no header at all.
+<p>The (optional) filename that you want to write the XML output to.
+If not specified, the XML will be printed to stdout.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2d_2dno_2dheader"><strong>--no-header</strong></a></strong><br />
-</dt>
+<dt><strong><a name="header_h_none_xsd_dtd" class="item"><strong>--header</strong>|<strong>-h</strong> {none,xsd,dtd}</a></strong></dt>
+
 <dd>
-A shortcut for --header=none.
+<p>By default rrdtool will add a dtd header to the xml file. Here
+you can customize this to and xsd header or no header at all.</p>
 </dd>
+<dt><strong><a name="no_header" class="item"><strong>--no-header</strong></a></strong></dt>
+
 <dd>
+<p>A shortcut for --header=none.</p>
 <p>If you want to restore the dump with rrdtool 1.2 you should use the
 --no-header option since 1.2 can not deal with xml headers.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2d_2ddaemon_address"><strong>--daemon</strong> <em>address</em></a></strong><br />
-</dt>
+<dt><strong><a name="daemon_address" class="item"><strong>--daemon</strong> <em>address</em></a></strong></dt>
+
 <dd>
-Address of the <a href="././rrdcached.html">the rrdcached manpage</a> daemon. If specified, a <code>flush</code> command is sent
+<p>Address of the <a href="././rrdcached.html">the rrdcached manpage</a> daemon. If specified, a <code>flush</code> command is sent
 to the server before reading the RRD files. This allows <strong>rrdtool</strong> to return
 fresh data even if the daemon is configured to cache values for a long time.
-For a list of accepted formats, see the <strong>-l</strong> option in the <a href="././rrdcached.html">the rrdcached manpage</a> manual.
-</dd>
-<dd>
+For a list of accepted formats, see the <strong>-l</strong> option in the <a href="././rrdcached.html">the rrdcached manpage</a> manual.</p>
 <pre>
  rrdtool dump --daemon unix:/var/run/rrdcached.sock /var/lib/rrd/foo.rrd</pre>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <hr />
 <h1><a name="examples">EXAMPLES</a></h1>
 <p>To transfer an RRD between architectures, follow these steps:</p>
 <ol>
-<li></li>
-On the same system where the RRD was created, use <strong>rrdtool</strong> <strong>dump</strong>
-to export the data to XML format.
-<p></p>
-<li></li>
-Transfer the XML dump to the target system.
-<p></p>
-<li></li>
-Run <strong>rrdtool</strong> <strong>restore</strong> to create a new RRD from the XML dump. See
-<strong>rrdrestore</strong> for details.
-<p></p></ol>
+<li>
+<p>On the same system where the RRD was created, use <strong>rrdtool</strong> <strong>dump</strong>
+to export the data to XML format.</p>
+</li>
+<li>
+<p>Transfer the XML dump to the target system.</p>
+</li>
+<li>
+<p>Run <strong>rrdtool</strong> <strong>restore</strong> to create a new RRD from the XML dump. See
+<strong>rrdrestore</strong> for details.</p>
+</li>
+</ol>
 <p>
 </p>
 <hr />
@@ -114,14 +115,14 @@ Run <strong>rrdtool</strong> <strong>restore</strong> to create a new RRD from t
 <p>The following environment variables may be used to change the behavior of
 <code>rrdtooldump</code>:</p>
 <dl>
-<dt><strong><a name="item_rrdcached_address"><strong>RRDCACHED_ADDRESS</strong></a></strong><br />
-</dt>
+<dt><strong><a name="rrdcached_address" class="item"><strong>RRDCACHED_ADDRESS</strong></a></strong></dt>
+
 <dd>
-If this environment variable is set it will have the same effect as specifying
+<p>If this environment variable is set it will have the same effect as specifying
 the <code>--daemon</code> option on the command line. If both are present, the command
-line argument takes precedence.
+line argument takes precedence.</p>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <hr />
index 1fe1735c06b10449af09c551e05fd6e83e9057c9..143e655b22fbb4504f8fd4d5bbae8fa8e93426d4 100644 (file)
@@ -34,10 +34,10 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
                the --no-header option since 1.2 can not deal with xml headers.
 
        -\b--\b-d\bda\bae\bem\bmo\bon\bn _\ba_\bd_\bd_\br_\be_\bs_\bs
-               Address of the rrdcached daemon. If specified, a "flush" com-
-               mand is sent to the server before reading the RRD files. This
-               allows r\brr\brd\bdt\bto\boo\bol\bl to return fresh data even if the daemon is con-
-               figured to cache values for a long time.  For a list of
+               Address of the rrdcached daemon. If specified, a "flush"
+               command is sent to the server before reading the RRD files.
+               This allows r\brr\brd\bdt\bto\boo\bol\bl to return fresh data even if the daemon is
+               configured to cache values for a long time.  For a list of
                accepted formats, see the -\b-l\bl option in the rrdcached manual.
 
                 rrdtool dump --daemon unix:/var/run/rrdcached.sock /var/lib/rrd/foo.rrd
@@ -67,4 +67,4 @@ A\bAU\bUT\bTH\bHO\bOR\bR
 
 
 
-1.3.99909060808                   2008-12-10                        RRDDUMP(1)
+1.3.999                           2009-06-09                        RRDDUMP(1)
index 96e21af5dae018dc863372c9aa37310142e6ec33..c555c132d9c173db373fe1b9a3042d2a6341cc47 100644 (file)
@@ -1,15 +1,7 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.08)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
 .de Sp \" Vertical space (when we can't use .PP)
 .if t .sp .5v
 .if n .sp
 ..
 .\" Set up some character translations and predefined strings.  \*(-- will
 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
 .ie n \{\
 .    ds -- \(*W-
 .    ds R" ''
 'br\}
 .\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
 .\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
 .\" entries marked with X<> in POD.  Of course, you'll have to process the
 .\" output yourself in some meaningful fashion.
-.if \nF \{\
+.ie \nF \{\
 .    de IX
 .    tm Index:\\$1\t\\n%\t"\\$2"
 ..
 .    nr % 0
 .    rr F
 .\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
+.el \{\
+.    de IX
+..
+.\}
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
 .\" ========================================================================
 .\"
 .IX Title "RRDFETCH 1"
-.TH RRDFETCH 1 "2008-09-25" "1.3.99909060808" "rrdtool"
+.TH RRDFETCH 1 "2009-06-09" "1.3.999" "rrdtool"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
 .SH "NAME"
 rrdfetch \- Fetch data from an RRD.
 .SH "SYNOPSIS"
@@ -180,7 +179,7 @@ For a list of accepted formats, see the \fB\-l\fR option in the rrdcached manual
 .Vb 1
 \& rrdtool fetch \-\-daemon unix:/var/run/rrdcached.sock /var/lib/rrd/foo.rrd AVERAGE
 .Ve
-.Sh "\s-1RESOLUTION\s0 \s-1INTERVAL\s0"
+.SS "\s-1RESOLUTION\s0 \s-1INTERVAL\s0"
 .IX Subsection "RESOLUTION INTERVAL"
 In order to get RRDtool to fetch anything other than the finest resolution \s-1RRA\s0
 \&\fBboth\fR the start and end time must be specified on boundaries that are
@@ -238,19 +237,19 @@ Using the bash shell, this could look be:
 Or in Perl:
 .PP
 .Vb 3
-\& perl \-e '$ctime = time; $rrdres = 900; \e
+\& perl \-e \*(Aq$ctime = time; $rrdres = 900; \e
 \&          system "rrdtool fetch subdata.rrd AVERAGE \e
-\&                  \-r $rrdres \-e @{[int($ctime/$rrdres)*$rrdres]} \-s e\-1h"'
+\&                  \-r $rrdres \-e @{[int($ctime/$rrdres)*$rrdres]} \-s e\-1h"\*(Aq
 .Ve
-.Sh "AT-STYLE \s-1TIME\s0 \s-1SPECIFICATION\s0"
+.SS "AT-STYLE \s-1TIME\s0 \s-1SPECIFICATION\s0"
 .IX Subsection "AT-STYLE TIME SPECIFICATION"
 Apart from the traditional \fISeconds since epoch\fR, RRDtool does also
 understand at-style time specification. The specification is called
-\&\*(L"at\-style\*(R" after the Unix command \fIat\fR\|(1) that has moderately complex
+\&\*(L"at-style\*(R" after the Unix command \fIat\fR\|(1) that has moderately complex
 ways to specify time to run your job at a certain date and time. The
 at-style specification consists of two parts: the \fB\s-1TIME\s0 \s-1REFERENCE\s0\fR
 specification and the \fB\s-1TIME\s0 \s-1OFFSET\s0\fR specification.
-.Sh "\s-1TIME\s0 \s-1REFERENCE\s0 \s-1SPECIFICATION\s0"
+.SS "\s-1TIME\s0 \s-1REFERENCE\s0 \s-1SPECIFICATION\s0"
 .IX Subsection "TIME REFERENCE SPECIFICATION"
 The time reference specification is used, well, to establish a reference
 moment in time (to which the time offset is then applied to). When present,
@@ -286,7 +285,7 @@ categories (\fBrrdfetch\fR, rrdgraph).
 Month and day of the week names can be used in their naturally
 abbreviated form (e.g., Dec for December, Sun for Sunday, etc.). The
 words \fBnow\fR, \fBstart\fR, \fBend\fR can be abbreviated as \fBn\fR, \fBs\fR, \fBe\fR.
-.Sh "\s-1TIME\s0 \s-1OFFSET\s0 \s-1SPECIFICATION\s0"
+.SS "\s-1TIME\s0 \s-1OFFSET\s0 \s-1SPECIFICATION\s0"
 .IX Subsection "TIME OFFSET SPECIFICATION"
 The time offset specification is used to add/subtract certain time
 intervals to/from the time reference moment. It consists of a \fIsign\fR
@@ -326,29 +325,27 @@ equals 47 hours; on the other hand, '8:00\ Mar\ 27\ 1999\ +48\ hours' =
 \&\fI\s-1NOTE4\s0\fR: The single-letter abbreviation for both \fBmonths\fR and \fBminutes\fR
 is \fBm\fR. To disambiguate them, the parser tries to read your mind\ :)
 by applying the following two heuristics:
-.IP "1" 3
-.IX Item "1"
+.IP "1." 3
 If \fBm\fR is used in context of (i.e. right after the) years,
 months, weeks, or days it is assumed to mean \fBmonths\fR, while
 in the context of hours, minutes, and seconds it means minutes.
 (e.g., in \-1y6m or +3w1m \fBm\fR is interpreted as \fBmonths\fR, while in
 \&\-3h20m or +5s2m \fBm\fR the parser decides for \fBminutes\fR).
-.IP "2" 3
-.IX Item "2"
+.IP "2." 3
 Out of context (i.e. right after the \fB+\fR or \fB\-\fR sign) the
 meaning of \fBm\fR is guessed from the number it directly follows.
 Currently, if the number's absolute value is below 25 it is assumed
 that \fBm\fR means \fBmonths\fR, otherwise it is treated as \fBminutes\fR.
 (e.g., \-25m == \-25 minutes, while +24m == +24 months)
 .PP
-\&\fIFinal \s-1NOTES\s0\fR: Time specification is case\-insensitive.
+\&\fIFinal \s-1NOTES\s0\fR: Time specification is case-insensitive.
 Whitespace can be inserted freely or omitted altogether.
 There are, however, cases when whitespace is required
 (e.g., 'midnight\ Thu'). In this case you should either quote the
 whole phrase to prevent it from being taken apart by your shell or use
 \&'_' (underscore) or ',' (comma) which also count as whitespace
 (e.g., midnight_Thu or midnight,Thu).
-.Sh "\s-1TIME\s0 \s-1SPECIFICATION\s0 \s-1EXAMPLES\s0"
+.SS "\s-1TIME\s0 \s-1SPECIFICATION\s0 \s-1EXAMPLES\s0"
 .IX Subsection "TIME SPECIFICATION EXAMPLES"
 \&\fIOct 12\fR \*(-- October 12 this year
 .PP
index c8b21d3e661156e51eed130ceb4cd08d89b3d810..97e72da1e13a359c6094bdc218980516720dcb96 100644 (file)
@@ -1,14 +1,18 @@
+<?xml version="1.0" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>rrdfetch</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <link rev="made" href="mailto:root@localhost" />
 </head>
 
 <body style="background-color: white">
 
-<p><a name="__index__"></a></p>
+
 <!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
 <!--
 
 <ul>
@@ -19,7 +23,7 @@
        <ul>
 
                <li><a href="#resolution_interval">RESOLUTION INTERVAL</a></li>
-               <li><a href="#atstyle_time_specification">AT-STYLE TIME SPECIFICATION</a></li>
+               <li><a href="#at_style_time_specification">AT-STYLE TIME SPECIFICATION</a></li>
                <li><a href="#time_reference_specification">TIME REFERENCE SPECIFICATION</a></li>
                <li><a href="#time_offset_specification">TIME OFFSET SPECIFICATION</a></li>
                <li><a href="#time_specification_examples">TIME SPECIFICATION EXAMPLES</a></li>
        <li><a href="#environment_variables">ENVIRONMENT VARIABLES</a></li>
        <li><a href="#author">AUTHOR</a></li>
 </ul>
+
 -->
+
+
+</div>
 <!-- INDEX END -->
 
 <p>
 function to get data from <strong>RRD</strong>s. <strong>fetch</strong> will analyze the <strong>RRD</strong>
 and try to retrieve the data in the resolution requested.
 The data fetched is printed to stdout. <em>*UNKNOWN*</em> data is often
-represented by the string ``NaN'' depending on your OS's printf
+represented by the string &quot;NaN&quot; depending on your OS's printf
 function.</p>
 <dl>
-<dt><strong><a name="item_filename"><em>filename</em></a></strong><br />
-</dt>
+<dt><strong><a name="filename" class="item"><em>filename</em></a></strong></dt>
+
 <dd>
-the name of the <strong>RRD</strong> you want to fetch the data from.
+<p>the name of the <strong>RRD</strong> you want to fetch the data from.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_cf"><em>CF</em></a></strong><br />
-</dt>
+<dt><strong><a name="cf" class="item"><em>CF</em></a></strong></dt>
+
 <dd>
-the consolidation function that is applied to the data you
-want to fetch (AVERAGE,MIN,MAX,LAST)
+<p>the consolidation function that is applied to the data you
+want to fetch (AVERAGE,MIN,MAX,LAST)</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_resolution"><strong>--resolution</strong>|<strong>-r</strong> <em>resolution</em> (default is the highest resolution)</a></strong><br />
-</dt>
+<dt><strong><a name="resolution" class="item"><strong>--resolution</strong>|<strong>-r</strong> <em>resolution</em> (default is the highest resolution)</a></strong></dt>
+
 <dd>
-the interval you want the values to have (seconds per
+<p>the interval you want the values to have (seconds per
 value). <strong>rrdfetch</strong> will try to match your request, but it will return
-data even if no absolute match is possible. <strong>NB.</strong> See note below.
+data even if no absolute match is possible. <strong>NB.</strong> See note below.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_start"><strong>--start</strong>|<strong>-s</strong> <em>start</em> (default end-1day)</a></strong><br />
-</dt>
+<dt><strong><a name="start" class="item"><strong>--start</strong>|<strong>-s</strong> <em>start</em> (default end-1day)</a></strong></dt>
+
 <dd>
-start of the time series. A time in seconds since epoch (1970-01-01)
+<p>start of the time series. A time in seconds since epoch (1970-01-01)
 is required. Negative numbers are relative to the current time. By default,
 one day worth of data will be fetched. See also AT-STYLE TIME SPECIFICATION
-section for a detailed explanation on  ways to specify the start time.
+section for a detailed explanation on  ways to specify the start time.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_end"><strong>--end</strong>|<strong>-e</strong> <em>end</em> (default now)</a></strong><br />
-</dt>
+<dt><strong><a name="end" class="item"><strong>--end</strong>|<strong>-e</strong> <em>end</em> (default now)</a></strong></dt>
+
 <dd>
-the end of the time series in seconds since epoch. See also AT-STYLE
+<p>the end of the time series in seconds since epoch. See also AT-STYLE
 TIME SPECIFICATION section for a detailed explanation of how to
-specify the end time.
+specify the end time.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2d_2ddaemon_address"><strong>--daemon</strong> <em>address</em></a></strong><br />
-</dt>
+<dt><strong><a name="daemon_address" class="item"><strong>--daemon</strong> <em>address</em></a></strong></dt>
+
 <dd>
-Address of the <a href="././rrdcached.html">the rrdcached manpage</a> daemon. If specified, a <code>flush</code> command is sent
+<p>Address of the <a href="././rrdcached.html">the rrdcached manpage</a> daemon. If specified, a <code>flush</code> command is sent
 to the server before reading the RRD files. This allows <strong>rrdtool</strong> to return
 fresh data even if the daemon is configured to cache values for a long time.
-For a list of accepted formats, see the <strong>-l</strong> option in the <a href="././rrdcached.html">the rrdcached manpage</a> manual.
-</dd>
-<dd>
+For a list of accepted formats, see the <strong>-l</strong> option in the <a href="././rrdcached.html">the rrdcached manpage</a> manual.</p>
 <pre>
  rrdtool fetch --daemon unix:/var/run/rrdcached.sock /var/lib/rrd/foo.rrd AVERAGE</pre>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <h2><a name="resolution_interval">RESOLUTION INTERVAL</a></h2>
@@ -133,13 +134,14 @@ i.e. 5 minute averages, will be chosen which in this case is not
 what you want.</p>
 <p>Hence, make sure that</p>
 <ol>
-<li></li>
-both start and end time are a multiple of 900
-<p></p>
-<li></li>
-both start and end time are within the desired RRA
-<p></p></ol>
-<p>So, if time now is called ``t'', do</p>
+<li>
+<p>both start and end time are a multiple of 900</p>
+</li>
+<li>
+<p>both start and end time are within the desired RRA</p>
+</li>
+</ol>
+<p>So, if time now is called &quot;t&quot;, do</p>
 <pre>
  end time == int(t/900)*900,
  start time == end time - 1hour,
@@ -157,10 +159,10 @@ both start and end time are within the desired RRA
                   -r $rrdres -e @{[int($ctime/$rrdres)*$rrdres]} -s e-1h&quot;'</pre>
 <p>
 </p>
-<h2><a name="atstyle_time_specification">AT-STYLE TIME SPECIFICATION</a></h2>
+<h2><a name="at_style_time_specification">AT-STYLE TIME SPECIFICATION</a></h2>
 <p>Apart from the traditional <em>Seconds since epoch</em>, RRDtool does also
 understand at-style time specification. The specification is called
-``at-style'' after the Unix command <code>at(1)</code> that has moderately complex
+&quot;at-style&quot; after the Unix command <code>at(1)</code> that has moderately complex
 ways to specify time to run your job at a certain date and time. The
 at-style specification consists of two parts: the <strong>TIME REFERENCE</strong>
 specification and the <strong>TIME OFFSET</strong> specification.</p>
@@ -235,20 +237,21 @@ equals 47 hours; on the other hand, '8:00&nbsp;Mar&nbsp;27&nbsp;1999&nbsp;+48&nb
 is <strong>m</strong>. To disambiguate them, the parser tries to read your mind&nbsp;:)
 by applying the following two heuristics:</p>
 <ol>
-<li></li>
-If <strong>m</strong> is used in context of (i.e. right after the) years,
+<li>
+<p>If <strong>m</strong> is used in context of (i.e. right after the) years,
 months, weeks, or days it is assumed to mean <strong>months</strong>, while
 in the context of hours, minutes, and seconds it means minutes.
 (e.g., in -1y6m or +3w1m <strong>m</strong> is interpreted as <strong>months</strong>, while in
--3h20m or +5s2m <strong>m</strong> the parser decides for <strong>minutes</strong>).
-<p></p>
-<li></li>
-Out of context (i.e. right after the <strong>+</strong> or <strong>-</strong> sign) the
+-3h20m or +5s2m <strong>m</strong> the parser decides for <strong>minutes</strong>).</p>
+</li>
+<li>
+<p>Out of context (i.e. right after the <strong>+</strong> or <strong>-</strong> sign) the
 meaning of <strong>m</strong> is guessed from the number it directly follows.
 Currently, if the number's absolute value is below 25 it is assumed
 that <strong>m</strong> means <strong>months</strong>, otherwise it is treated as <strong>minutes</strong>.
-(e.g., -25m == -25 minutes, while +24m == +24 months)
-<p></p></ol>
+(e.g., -25m == -25 minutes, while +24m == +24 months)</p>
+</li>
+</ol>
 <p><em>Final NOTES</em>: Time specification is case-insensitive.
 Whitespace can be inserted freely or omitted altogether.
 There are, however, cases when whitespace is required
@@ -282,14 +285,14 @@ as <em>9am-1day</em>.</p>
 <p>The following environment variables may be used to change the behavior of
 <code>rrdtoolfetch</code>:</p>
 <dl>
-<dt><strong><a name="item_rrdcached_address"><strong>RRDCACHED_ADDRESS</strong></a></strong><br />
-</dt>
+<dt><strong><a name="rrdcached_address" class="item"><strong>RRDCACHED_ADDRESS</strong></a></strong></dt>
+
 <dd>
-If this environment variable is set it will have the same effect as specifying
+<p>If this environment variable is set it will have the same effect as specifying
 the <code>--daemon</code> option on the command line. If both are present, the command
-line argument takes precedence.
+line argument takes precedence.</p>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <hr />
index 8717403342736e385d4dd2cdc07eb111cd91fa2d..b6f3f2c51c9ff7102faf3660d7ff4d20560bd659 100644 (file)
@@ -12,9 +12,9 @@ S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        The f\bfe\bet\btc\bch\bh function is normally used internally by the graph function to
        get data from R\bRR\bRD\bDs. f\bfe\bet\btc\bch\bh will analyze the R\bRR\bRD\bD and try to retrieve the
-       data in the resolution requested.  The data fetched is printed to std-
-       out. _\b*_\bU_\bN_\bK_\bN_\bO_\bW_\bN_\b* data is often represented by the string "NaN" depending
-       on your OS's printf function.
+       data in the resolution requested.  The data fetched is printed to
+       stdout. _\b*_\bU_\bN_\bK_\bN_\bO_\bW_\bN_\b* data is often represented by the string "NaN"
+       depending on your OS's printf function.
 
        _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
                the name of the R\bRR\bRD\bD you want to fetch the data from.
@@ -40,20 +40,19 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
                how to specify the end time.
 
        -\b--\b-d\bda\bae\bem\bmo\bon\bn _\ba_\bd_\bd_\br_\be_\bs_\bs
-               Address of the rrdcached daemon. If specified, a "flush" com-
-               mand is sent to the server before reading the RRD files. This
-               allows r\brr\brd\bdt\bto\boo\bol\bl to return fresh data even if the daemon is con-
-               figured to cache values for a long time.  For a list of
+               Address of the rrdcached daemon. If specified, a "flush"
+               command is sent to the server before reading the RRD files.
+               This allows r\brr\brd\bdt\bto\boo\bol\bl to return fresh data even if the daemon is
+               configured to cache values for a long time.  For a list of
                accepted formats, see the -\b-l\bl option in the rrdcached manual.
 
                 rrdtool fetch --daemon unix:/var/run/rrdcached.sock /var/lib/rrd/foo.rrd AVERAGE
 
-       R\bRE\bES\bSO\bOL\bLU\bUT\bTI\bIO\bON\bN I\bIN\bNT\bTE\bER\bRV\bVA\bAL\bL
-
-       In order to get RRDtool to fetch anything other than the finest resolu-
-       tion RRA b\bbo\bot\bth\bh the start and end time must be specified on boundaries
-       that are multiples of the desired resolution. Consider the following
-       example:
+   R\bRE\bES\bSO\bOL\bLU\bUT\bTI\bIO\bON\bN I\bIN\bNT\bTE\bER\bRV\bVA\bAL\bL
+       In order to get RRDtool to fetch anything other than the finest
+       resolution RRA b\bbo\bot\bth\bh the start and end time must be specified on
+       boundaries that are multiples of the desired resolution. Consider the
+       following example:
 
         rrdtool create subdata.rrd -s 10 DS:ds0:GAUGE:300:0:U \
          RRA:AVERAGE:0.5:30:3600 \
@@ -101,22 +100,20 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
                  system "rrdtool fetch subdata.rrd AVERAGE \
                          -r $rrdres -e @{[int($ctime/$rrdres)*$rrdres]} -s e-1h"'
 
-       A\bAT\bT-\b-S\bST\bTY\bYL\bLE\bE T\bTI\bIM\bME\bE S\bSP\bPE\bEC\bCI\bIF\bFI\bIC\bCA\bAT\bTI\bIO\bON\bN
-
+   A\bAT\bT-\b-S\bST\bTY\bYL\bLE\bE T\bTI\bIM\bME\bE S\bSP\bPE\bEC\bCI\bIF\bFI\bIC\bCA\bAT\bTI\bIO\bON\bN
        Apart from the traditional _\bS_\be_\bc_\bo_\bn_\bd_\bs _\bs_\bi_\bn_\bc_\be _\be_\bp_\bo_\bc_\bh, RRDtool does also
        understand at-style time specification. The specification is called
        "at-style" after the Unix command _\ba_\bt(1) that has moderately complex
        ways to specify time to run your job at a certain date and time. The
-       at-style specification consists of two parts: the T\bTI\bIM\bME\bE R\bRE\bEF\bFE\bER\bRE\bEN\bNC\bCE\bE speci-
-       fication and the T\bTI\bIM\bME\bE O\bOF\bFF\bFS\bSE\bET\bT specification.
-
-       T\bTI\bIM\bME\bE R\bRE\bEF\bFE\bER\bRE\bEN\bNC\bCE\bE S\bSP\bPE\bEC\bCI\bIF\bFI\bIC\bCA\bAT\bTI\bIO\bON\bN
+       at-style specification consists of two parts: the T\bTI\bIM\bME\bE R\bRE\bEF\bFE\bER\bRE\bEN\bNC\bCE\bE
+       specification and the T\bTI\bIM\bME\bE O\bOF\bFF\bFS\bSE\bET\bT specification.
 
-       The time reference specification is used, well, to establish a refer-
-       ence moment in time (to which the time offset is then applied to). When
-       present, it should come first, when omitted, it defaults to n\bno\bow\bw. On its
-       own part, time reference consists of a _\bt_\bi_\bm_\be_\b-_\bo_\bf_\b-_\bd_\ba_\by reference (which
-       should come first, if present) and a _\bd_\ba_\by reference.
+   T\bTI\bIM\bME\bE R\bRE\bEF\bFE\bER\bRE\bEN\bNC\bCE\bE S\bSP\bPE\bEC\bCI\bIF\bFI\bIC\bCA\bAT\bTI\bIO\bON\bN
+       The time reference specification is used, well, to establish a
+       reference moment in time (to which the time offset is then applied to).
+       When present, it should come first, when omitted, it defaults to n\bno\bow\bw.
+       On its own part, time reference consists of a _\bt_\bi_\bm_\be_\b-_\bo_\bf_\b-_\bd_\ba_\by reference
+       (which should come first, if present) and a _\bd_\ba_\by reference.
 
        The _\bt_\bi_\bm_\be_\b-_\bo_\bf_\b-_\bd_\ba_\by can be specified as H\bHH\bH:\b:M\bMM\bM, H\bHH\bH.\b.M\bMM\bM, or just H\bHH\bH. You can
        suffix it with a\bam\bm or p\bpm\bm or use 24-hours clock. Some special times of
@@ -135,18 +132,17 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        _\bN_\bO_\bT_\bE_\b2: if you specify the _\bd_\ba_\by in this way, the _\bt_\bi_\bm_\be_\b-_\bo_\bf_\b-_\bd_\ba_\by is REQUIRED
        as well.
 
-       Finally, you can use the words n\bno\bow\bw, s\bst\bta\bar\brt\bt, or e\ben\bnd\bd as your time refer-
-       ence. N\bNo\bow\bw refers to the current moment (and is also the default time
-       reference). S\bSt\bta\bar\brt\bt (e\ben\bnd\bd) can be used to specify a time relative to the
-       start (end) time for those tools that use these categories (r\brr\brd\bdf\bfe\bet\btc\bch\bh,
-       rrdgraph).
+       Finally, you can use the words n\bno\bow\bw, s\bst\bta\bar\brt\bt, or e\ben\bnd\bd as your time
+       reference. N\bNo\bow\bw refers to the current moment (and is also the default
+       time reference). S\bSt\bta\bar\brt\bt (e\ben\bnd\bd) can be used to specify a time relative to
+       the start (end) time for those tools that use these categories
+       (r\brr\brd\bdf\bfe\bet\btc\bch\bh, rrdgraph).
 
-       Month and day of the week names can be used in their naturally abbrevi-
-       ated form (e.g., Dec for December, Sun for Sunday, etc.). The words
-       n\bno\bow\bw, s\bst\bta\bar\brt\bt, e\ben\bnd\bd can be abbreviated as n\bn, s\bs, e\be.
-
-       T\bTI\bIM\bME\bE O\bOF\bFF\bFS\bSE\bET\bT S\bSP\bPE\bEC\bCI\bIF\bFI\bIC\bCA\bAT\bTI\bIO\bON\bN
+       Month and day of the week names can be used in their naturally
+       abbreviated form (e.g., Dec for December, Sun for Sunday, etc.). The
+       words n\bno\bow\bw, s\bst\bta\bar\brt\bt, e\ben\bnd\bd can be abbreviated as n\bn, s\bs, e\be.
 
+   T\bTI\bIM\bME\bE O\bOF\bFF\bFS\bSE\bET\bT S\bSP\bPE\bEC\bCI\bIF\bFI\bIC\bCA\bAT\bTI\bIO\bON\bN
        The time offset specification is used to add/subtract certain time
        intervals to/from the time reference moment. It consists of a _\bs_\bi_\bg_\bn
        (+\b+ or -\b-) and an _\ba_\bm_\bo_\bu_\bn_\bt. The following time units can be used to specify
@@ -157,10 +153,10 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        = -5h-45min = -6h+15min = -7h+1h30m-15min, etc.)
 
        _\bN_\bO_\bT_\bE_\b3: If you specify time offset in days, weeks, months, or years, you
-       will end with the time offset that may vary depending on your time ref-
-       erence, because all those time units have no single well defined time
-       interval value (1 year contains either 365 or 366 days, 1 month is 28
-       to 31 days long, and even 1 day may be not equal to 24 hours twice a
+       will end with the time offset that may vary depending on your time
+       reference, because all those time units have no single well defined
+       time interval value (1 year contains either 365 or 366 days, 1 month is
+       28 to 31 days long, and even 1 day may be not equal to 24 hours twice a
        year, when DST-related clock adjustments take place).  To cope with
        this, when you use days, weeks, months, or years as your time offset
        units your time reference date is adjusted accordingly without too much
@@ -172,30 +168,30 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        invalid time/date combination (because of 3am -> 4am DST forward clock
        adjustment, see the below example).
 
-       In contrast, hours, minutes, and seconds are well defined time inter-
-       vals, and these are guaranteed to always produce time offsets exactly
-       as specified (e.g. for EET timezone, '8:00 Mar 27 1999 +2 days' =
-       '8:00 Mar 29 1999', but since there is 1-hour DST forward clock adjust-
-       ment that occurs around 3:00 Mar 28 1999, the actual time interval
-       between 8:00 Mar 27 1999 and 8:00 Mar 29 1999 equals 47 hours; on the
-       other hand, '8:00 Mar 27 1999 +48 hours' = '9:00 Mar 29 1999', as
-       expected)
+       In contrast, hours, minutes, and seconds are well defined time
+       intervals, and these are guaranteed to always produce time offsets
+       exactly as specified (e.g. for EET timezone, '8:00 Mar 27 1999 +2 days'
+       = '8:00 Mar 29 1999', but since there is 1-hour DST forward clock
+       adjustment that occurs around 3:00 Mar 28 1999, the actual time
+       interval between 8:00 Mar 27 1999 and 8:00 Mar 29 1999 equals 47 hours;
+       on the other hand, '8:00 Mar 27 1999 +48 hours' = '9:00 Mar 29 1999',
+       as expected)
 
        _\bN_\bO_\bT_\bE_\b4: The single-letter abbreviation for both m\bmo\bon\bnt\bth\bhs\bs and m\bmi\bin\bnu\but\bte\bes\bs is m\bm.
        To disambiguate them, the parser tries to read your mind :) by applying
        the following two heuristics:
 
-       1  If m\bm is used in context of (i.e. right after the) years, months,
+       1. If m\bm is used in context of (i.e. right after the) years, months,
           weeks, or days it is assumed to mean m\bmo\bon\bnt\bth\bhs\bs, while in the context of
           hours, minutes, and seconds it means minutes.  (e.g., in -1y6m or
           +3w1m m\bm is interpreted as m\bmo\bon\bnt\bth\bhs\bs, while in -3h20m or +5s2m m\bm the
           parser decides for m\bmi\bin\bnu\but\bte\bes\bs).
 
-       2  Out of context (i.e. right after the +\b+ or -\b- sign) the meaning of m\bm
+       2. Out of context (i.e. right after the +\b+ or -\b- sign) the meaning of m\bm
           is guessed from the number it directly follows.  Currently, if the
           number's absolute value is below 25 it is assumed that m\bm means
-          m\bmo\bon\bnt\bth\bhs\bs, otherwise it is treated as m\bmi\bin\bnu\but\bte\bes\bs.  (e.g., -25m == -25 min-
-          utes, while +24m == +24 months)
+          m\bmo\bon\bnt\bth\bhs\bs, otherwise it is treated as m\bmi\bin\bnu\but\bte\bes\bs.  (e.g., -25m == -25
+          minutes, while +24m == +24 months)
 
        _\bF_\bi_\bn_\ba_\bl _\bN_\bO_\bT_\bE_\bS: Time specification is case-insensitive.  Whitespace can be
        inserted freely or omitted altogether.  There are, however, cases when
@@ -204,8 +200,7 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        your shell or use '_' (underscore) or ',' (comma) which also count as
        whitespace (e.g., midnight_Thu or midnight,Thu).
 
-       T\bTI\bIM\bME\bE S\bSP\bPE\bEC\bCI\bIF\bFI\bIC\bCA\bAT\bTI\bIO\bON\bN E\bEX\bXA\bAM\bMP\bPL\bLE\bES\bS
-
+   T\bTI\bIM\bME\bE S\bSP\bPE\bEC\bCI\bIF\bFI\bIC\bCA\bAT\bTI\bIO\bON\bN E\bEX\bXA\bAM\bMP\bPL\bLE\bES\bS
        _\bO_\bc_\bt _\b1_\b2 -- October 12 this year
 
        _\b-_\b1_\bm_\bo_\bn_\bt_\bh or _\b-_\b1_\bm -- current time of day, only a month before (may yield
@@ -246,4 +241,4 @@ A\bAU\bUT\bTH\bHO\bOR\bR
 
 
 
-1.3.99909060808                   2008-09-25                       RRDFETCH(1)
+1.3.999                           2009-06-09                       RRDFETCH(1)
index 3d3cb9d289bbfc12bbd3480b1a20ecf4a59ee48f..62c0131f643457e4d8f9461c2ec8b03d7da8e586 100644 (file)
@@ -1,15 +1,7 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.08)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
 .de Sp \" Vertical space (when we can't use .PP)
 .if t .sp .5v
 .if n .sp
 ..
 .\" Set up some character translations and predefined strings.  \*(-- will
 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
 .ie n \{\
 .    ds -- \(*W-
 .    ds R" ''
 'br\}
 .\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
 .\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
 .\" entries marked with X<> in POD.  Of course, you'll have to process the
 .\" output yourself in some meaningful fashion.
-.if \nF \{\
+.ie \nF \{\
 .    de IX
 .    tm Index:\\$1\t\\n%\t"\\$2"
 ..
 .    nr % 0
 .    rr F
 .\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
+.el \{\
+.    de IX
+..
+.\}
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
 .\" ========================================================================
 .\"
 .IX Title "RRDFIRST 1"
-.TH RRDFIRST 1 "2008-03-15" "1.3.99909060808" "rrdtool"
+.TH RRDFIRST 1 "2009-04-19" "1.3.999" "rrdtool"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
 .SH "NAME"
 rrdfirst \- Return the date of the first data sample in an RRA within an RRD
 .SH "SYNOPSIS"
index 94a68d4d2f1bdf777dc4b3cf547e2d28cdbe6e3a..ea7f43d76566cfdda55c9117c9ea0339a969f3b6 100644 (file)
@@ -1,14 +1,18 @@
+<?xml version="1.0" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>rrdfirst</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <link rev="made" href="mailto:root@localhost" />
 </head>
 
 <body style="background-color: white">
 
-<p><a name="__index__"></a></p>
+
 <!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
 <!--
 
 <ul>
        <li><a href="#description">DESCRIPTION</a></li>
        <li><a href="#author">AUTHOR</a></li>
 </ul>
+
 -->
+
+
+</div>
 <!-- INDEX END -->
 
 <p>
 <p>The <strong>first</strong> function returns the UNIX timestamp of the first data
 sample entered into the specified RRA of the RRD file.</p>
 <dl>
-<dt><strong><a name="item_filename"><em>filename</em></a></strong><br />
-</dt>
+<dt><strong><a name="filename" class="item"><em>filename</em></a></strong></dt>
+
 <dd>
-The name of the <strong>RRD</strong> that contains the data.
+<p>The name of the <strong>RRD</strong> that contains the data.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2d_2drraindex_number"><em>--rraindex number</em></a></strong><br />
-</dt>
+<dt><strong><a name="rraindex_number" class="item"><em>--rraindex number</em></a></strong></dt>
+
 <dd>
-The index number of the <strong>RRA</strong> that is to be examined. If not specified, the
+<p>The index number of the <strong>RRA</strong> that is to be examined. If not specified, the
 index defaults to zero. <strong>RRA</strong> index numbers can be determined through
-<strong>rrdtool info</strong>.
+<strong>rrdtool info</strong>.</p>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <hr />
index 7d669015a69250a8fa311ce4b0492c8b7f040ec6..3cd99221250689ff0d8110a99031d292c76073c4 100644 (file)
@@ -26,4 +26,4 @@ A\bAU\bUT\bTH\bHO\bOR\bR
 
 
 
-1.3.99909060808                   2008-03-15                       RRDFIRST(1)
+1.3.999                           2009-04-19                       RRDFIRST(1)
index 8a066de78b2d5f221644898f50b7d79f20587e5b..b14b9b771b7c590e3ca60b41f64c39c4cb4adda2 100644 (file)
@@ -1,15 +1,7 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.08)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
 .de Sp \" Vertical space (when we can't use .PP)
 .if t .sp .5v
 .if n .sp
 ..
 .\" Set up some character translations and predefined strings.  \*(-- will
 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
 .ie n \{\
 .    ds -- \(*W-
 .    ds R" ''
 'br\}
 .\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
 .\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
 .\" entries marked with X<> in POD.  Of course, you'll have to process the
 .\" output yourself in some meaningful fashion.
-.if \nF \{\
+.ie \nF \{\
 .    de IX
 .    tm Index:\\$1\t\\n%\t"\\$2"
 ..
 .    nr % 0
 .    rr F
 .\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
+.el \{\
+.    de IX
+..
+.\}
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
 .\" ========================================================================
 .\"
 .IX Title "RRDFLUSHCACHED 1"
-.TH RRDFLUSHCACHED 1 "2009-05-26" "1.3.99909060808" "rrdtool"
+.TH RRDFLUSHCACHED 1 "2009-06-09" "1.3.999" "rrdtool"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
 .SH "NAME"
 rrdflush \- Flush the values for a spcific RRD file from memory.
 .SH "SYNOPSIS"
index ba633d8e9dcf3ed284870632b6f5b52ddc8c7a5a..b14525e49c2dd8228389e91509cecd19333b618d 100644 (file)
@@ -1,14 +1,18 @@
+<?xml version="1.0" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>rrdflushcached</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <link rev="made" href="mailto:root@localhost" />
 </head>
 
 <body style="background-color: white">
 
-<p><a name="__index__"></a></p>
+
 <!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
 <!--
 
 <ul>
        <li><a href="#environment_variables">ENVIRONMENT VARIABLES</a></li>
        <li><a href="#author">AUTHOR</a></li>
 </ul>
+
 -->
+
+
+</div>
 <!-- INDEX END -->
 
 <p>
 <hr />
 <h1><a name="description">DESCRIPTION</a></h1>
 <p>The <strong>flushcached</strong> function connects to <a href="././rrdcached.html">the rrdcached manpage</a>, the RRD caching daemon,
-and issues a ``flush'' command for the given files. The daemon will put the
-files to the head of the update queue so they are written ``soon''. The
+and issues a &quot;flush&quot; command for the given files. The daemon will put the
+files to the head of the update queue so they are written &quot;soon&quot;. The
 status will be returned only after the files' pending updates have been
 written to disk.</p>
 <dl>
-<dt><strong><a name="item_filename"><em>filename</em></a></strong><br />
-</dt>
+<dt><strong><a name="filename" class="item"><em>filename</em></a></strong></dt>
+
 <dd>
-The <code>name(s)</code> of the <strong>RRD</strong> <code>file(s)</code> that are to be written to disk.
+<p>The name(s) of the <strong>RRD</strong> file(s) that are to be written to disk.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2d_2ddaemon_address"><strong>--daemon</strong> <em>address</em></a></strong><br />
-</dt>
+<dt><strong><a name="daemon_address" class="item"><strong>--daemon</strong> <em>address</em></a></strong></dt>
+
 <dd>
-Address of the <a href="././rrdcached.html">the rrdcached manpage</a> daemon. If not specified, the
+<p>Address of the <a href="././rrdcached.html">the rrdcached manpage</a> daemon. If not specified, the
 RRDCACHED_ADDRESS environment variable must be set (see below).  For a
 list of accepted formats, see the <strong>-l</strong> option in the <a href="././rrdcached.html">the rrdcached manpage</a>
-manual.
-</dd>
-<dd>
+manual.</p>
 <pre>
  rrdtool flush --daemon unix:/var/run/rrdcached.sock /var/lib/rrd/foo.rrd</pre>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <hr />
@@ -69,14 +74,14 @@ manual.
 <p>The following environment variables may be used to change the behavior of
 <code>rrdtoolflushcached</code>:</p>
 <dl>
-<dt><strong><a name="item_rrdcached_address"><strong>RRDCACHED_ADDRESS</strong></a></strong><br />
-</dt>
+<dt><strong><a name="rrdcached_address" class="item"><strong>RRDCACHED_ADDRESS</strong></a></strong></dt>
+
 <dd>
-If this environment variable is set it will have the same effect as specifying
+<p>If this environment variable is set it will have the same effect as specifying
 the <code>--daemon</code> option on the command line. If both are present, the command
-line argument takes precedence.
+line argument takes precedence.</p>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <hr />
index ef7be78b294739a5538e59a40a6ec76fde8216b7..d4b67867636fdc2c0d76f54855f69114897b49d6 100644 (file)
@@ -19,10 +19,10 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
                The name(s) of the R\bRR\bRD\bD file(s) that are to be written to disk.
 
        -\b--\b-d\bda\bae\bem\bmo\bon\bn _\ba_\bd_\bd_\br_\be_\bs_\bs
-               Address of the rrdcached daemon. If not specified, the RRD-
-               CACHED_ADDRESS environment variable must be set (see below).
-               For a list of accepted formats, see the -\b-l\bl option in the rrd-
-               cached manual.
+               Address of the rrdcached daemon. If not specified, the
+               RRDCACHED_ADDRESS environment variable must be set (see below).
+               For a list of accepted formats, see the -\b-l\bl option in the
+               rrdcached manual.
 
                 rrdtool flush --daemon unix:/var/run/rrdcached.sock /var/lib/rrd/foo.rrd
 
@@ -40,4 +40,4 @@ A\bAU\bUT\bTH\bHO\bOR\bR
 
 
 
-1.3.99909060808                   2009-05-26                 RRDFLUSHCACHED(1)
+1.3.999                           2009-06-09                 RRDFLUSHCACHED(1)
index e3f81d4c1e995824edf8848eeaece047dac7dd24..5a9451a80ad7f61e8c42020b5ac4885635d5e099 100644 (file)
@@ -1,15 +1,7 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.08)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
 .de Sp \" Vertical space (when we can't use .PP)
 .if t .sp .5v
 .if n .sp
 ..
 .\" Set up some character translations and predefined strings.  \*(-- will
 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
 .ie n \{\
 .    ds -- \(*W-
 .    ds R" ''
 'br\}
 .\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
 .\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
 .\" entries marked with X<> in POD.  Of course, you'll have to process the
 .\" output yourself in some meaningful fashion.
-.if \nF \{\
+.ie \nF \{\
 .    de IX
 .    tm Index:\\$1\t\\n%\t"\\$2"
 ..
 .    nr % 0
 .    rr F
 .\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
+.el \{\
+.    de IX
+..
+.\}
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
 .\" ========================================================================
 .\"
 .IX Title "RRDGRAPH 1"
-.TH RRDGRAPH 1 "2009-05-21" "1.3.99909060808" "rrdtool"
+.TH RRDGRAPH 1 "2009-09-24" "1.3.999" "rrdtool"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
 .SH "NAME"
 rrdgraph \- Round Robin Database tool grapher functions
 .SH "SYNOPSIS"
@@ -168,7 +167,8 @@ well become unknown!
 .PP
 Sometimes data is not exactly in the format you would like to display
 it. For instance, you might be collecting \fBbytes\fR per second, but
-want to display \fBbits\fR per second. This is what the \fBdata calculation\fR command is designed for. After
+want to display \fBbits\fR per second. This is what the \fBdata
+calculation\fR command is designed for. After
 \&\fBconsolidating\fR the data, a copy is made and this copy is modified
 using a rather powerful \fB\s-1RPN\s0\fR command set.
 .PP
@@ -180,14 +180,14 @@ graph geometry and data once it is drawn. See the bottom of the document for
 more information.
 .SH "OPTIONS"
 .IX Header "OPTIONS"
-.Sh "\fIfilename\fP"
+.SS "\fIfilename\fP"
 .IX Subsection "filename"
 The name and path of the graph to generate. It is recommended to
 end this in \f(CW\*(C`.png\*(C'\fR, \f(CW\*(C`.svg\*(C'\fR or \f(CW\*(C`.eps\*(C'\fR, but \fBRRDtool\fR does not enforce this.
 .PP
 \&\fIfilename\fR can be '\f(CW\*(C`\-\*(C'\fR' to send the image to \f(CW\*(C`stdout\*(C'\fR. In
 this case, no other output is generated.
-.Sh "Time range"
+.SS "Time range"
 .IX Subsection "Time range"
 [\fB\-s\fR|\fB\-\-start\fR \fItime\fR]
 [\fB\-e\fR|\fB\-\-end\fR \fItime\fR]
@@ -204,14 +204,14 @@ resolution.  With the \fBstep\fR option you can alter this behaviour.
 If you want \fBrrdtool graph\fR to get data at a one-hour resolution
 from the \fB\s-1RRD\s0\fR, set \fBstep\fR to 3'600. Note: a step smaller than
 one pixel will silently be ignored.
-.Sh "Labels"
+.SS "Labels"
 .IX Subsection "Labels"
 [\fB\-t\fR|\fB\-\-title\fR \fIstring\fR]
 [\fB\-v\fR|\fB\-\-vertical\-label\fR \fIstring\fR]
 .PP
 A horizontal string at the top of the graph and/or a vertically
 placed string at the left hand side of the graph.
-.Sh "Size"
+.SS "Size"
 .IX Subsection "Size"
 [\fB\-w\fR|\fB\-\-width\fR \fIpixels\fR]
 [\fB\-h\fR|\fB\-\-height\fR \fIpixels\fR]
@@ -229,7 +229,7 @@ If you specify the \fB\-\-only\-graph\fR option and set the height < 32
 pixels you will get a tiny graph image (thumbnail) to use as an icon
 for use in an overview, for example. All labeling will be stripped off
 the graph.
-.Sh "Limits"
+.SS "Limits"
 .IX Subsection "Limits"
 [\fB\-u\fR|\fB\-\-upper\-limit\fR \fIvalue\fR]
 [\fB\-l\fR|\fB\-\-lower\-limit\fR \fIvalue\fR]
@@ -276,7 +276,7 @@ appearance. If this is not to your liking, you can use this switch
 to turn this behaviour off.
 .PP
 Gridfitting is turned off for \s-1PDF\s0, \s-1EPS\s0, \s-1SVG\s0 output by default.
-.Sh "X\-Axis"
+.SS "X\-Axis"
 .IX Subsection "X-Axis"
 [\fB\-x\fR|\fB\-\-x\-grid\fR \fI\s-1GTM\s0\fR\fB:\fR\fI\s-1GST\s0\fR\fB:\fR\fI\s-1MTM\s0\fR\fB:\fR\fI\s-1MST\s0\fR\fB:\fR\fI\s-1LTM\s0\fR\fB:\fR\fI\s-1LST\s0\fR\fB:\fR\fI\s-1LPR\s0\fR\fB:\fR\fI\s-1LFM\s0\fR]
 .PP
@@ -314,7 +314,7 @@ lines as they specify exactly that time.
 This places grid lines every 8 hours, major grid lines and labels
 each day. The labels are placed exactly between two major grid lines
 as they specify the complete day and not just midnight.
-.Sh "Y\-Axis"
+.SS "Y\-Axis"
 .IX Subsection "Y-Axis"
 [\fB\-y\fR|\fB\-\-y\-grid\fR \fIgrid step\fR\fB:\fR\fIlabel factor\fR]
 .PP
@@ -370,7 +370,7 @@ fiddling with the y\-axis labeling.
 With this option y\-axis values on logarithmic graphs will be scaled to 
 the appropriate units (k, M, etc.) instead of using exponential notation.
 Note that for linear graphs, \s-1SI\s0 notation is used by default.
-.Sh "Right Y Axis"
+.SS "Right Y Axis"
 .IX Subsection "Right Y Axis"
 [\fB\-\-right\-axis\fR \fIscale\fR\fB:\fR\fIshift\fR]
 [\fB\-\-right\-axis\-label\fR \fIlabel\fR]
@@ -384,7 +384,7 @@ for the right axis.
 By default the format of the axis lables gets determined automatically. If
 you want todo this your self, use this option with the same \f(CW%lf\fR arguments
 you know from the \s-1PRING\s0 and \s-1GPRINT\s0 commands.
-.Sh "Legend"
+.SS "Legend"
 .IX Subsection "Legend"
 [\fB\-g\fR|\fB\-\-no\-legend\fR]
 .PP
@@ -406,7 +406,7 @@ In west or east position it is necessary to add line breaks manually.
 Place the legend items in the given vertical order. The default is topdown.
 Using bottomup the legend items appear in the same vertical order as a
 stack of lines or areas.
-.Sh "Miscellaneous"
+.SS "Miscellaneous"
 .IX Subsection "Miscellaneous"
 [\fB\-z\fR|\fB\-\-lazy\fR]
 .PP
@@ -416,7 +416,7 @@ Note, that all the calculations will happen regardless so that the output of
 lazy in this regard has seen several changes over time. The only thing you
 can realy rely on before rrdtool 1.3.7 is that lazy will not generate the
 graph when it is already there and up to date, and also that it will output
-the size of the graph. 
+the size of the graph.
 .PP
 [\fB\-\-daemon\fR \fIaddress\fR]
 .PP
@@ -439,7 +439,7 @@ suitable for including the graph into a web page, the command line
 would look like this:
 .PP
 .Vb 1
-\& \-\-imginfo '<IMG SRC="/img/%s" WIDTH="%lu" HEIGHT="%lu" ALT="Demo">'
+\& \-\-imginfo \*(Aq<IMG SRC="/img/%s" WIDTH="%lu" HEIGHT="%lu" ALT="Demo">\*(Aq
 .Ve
 .PP
 [\fB\-c\fR|\fB\-\-color\fR \fI\s-1COLORTAG\s0\fR#\fIrrggbb\fR[\fIaa\fR]]
@@ -458,6 +458,12 @@ multiple defaults.
 .PP
 A green arrow is made by: \f(CW\*(C`\-\-color ARROW#00FF00\*(C'\fR
 .PP
+[\fB\-\-border\fR \fIwidth\fR]]
+.PP
+Width in pixels for the 3d border drawn around the image. Default 2, 0
+disables the border. See \f(CW\*(C`SHADEA\*(C'\fR and \f(CW\*(C`SHADEB\*(C'\fR above for setting the border
+color.
+.PP
 [\fB\-\-zoom\fR \fIfactor\fR]
 .PP
 Zoom the graphics by the given amount. The factor must be > 0
@@ -472,6 +478,10 @@ edge of the graph.
 .PP
 Use Times for the title: \f(CW\*(C`\-\-font TITLE:13:Times\*(C'\fR
 .PP
+Note that you need to quote the argument to \fB\-\-font\fR if the font-name
+contains whitespace:
+\&\-\-font \*(L"TITLE:13:Some Font\*(R"
+.PP
 If you do not give a font string you can modify just the size of the default font:
 \&\f(CW\*(C`\-\-font TITLE:13:\*(C'\fR.
 .PP
@@ -515,7 +525,7 @@ no text is rendered bitmapped.
 .PP
 All text in rrdtool is rendered using Pango. With the \fB\-\-pango\-markup\fR option, all
 text will be processed by pango markup. This allows to embed some simple html
-like markup tags using 
+like markup tags using
 .PP
 .Vb 1
 \& <span key="value">text</span>
@@ -554,10 +564,10 @@ for their graphs even though it is not all that true.
 [\fB\-a\fR|\fB\-\-imgformat\fR \fB\s-1PNG\s0\fR|\fB\s-1SVG\s0\fR|\fB\s-1EPS\s0\fR|\fB\s-1PDF\s0\fR]
 .PP
 Image format for the generated graph. For the vector formats you can
-choose among the standard Postscript fonts Courier\-Bold,
-Courier\-BoldOblique, Courier\-Oblique, Courier, Helvetica\-Bold,
-Helvetica\-BoldOblique, Helvetica\-Oblique, Helvetica, Symbol,
-Times\-Bold, Times\-BoldItalic, Times\-Italic, Times\-Roman, and ZapfDingbats.
+choose among the standard Postscript fonts Courier-Bold,
+Courier-BoldOblique, Courier-Oblique, Courier, Helvetica-Bold,
+Helvetica-BoldOblique, Helvetica-Oblique, Helvetica, Symbol,
+Times-Bold, Times-BoldItalic, Times-Italic, Times-Roman, and ZapfDingbats.
 .PP
 [\fB\-i\fR|\fB\-\-interlaced\fR]
 .PP
@@ -579,7 +589,7 @@ measurement, 1 kb/s is 1000 b/s.
 .PP
 Adds the given string as a watermark, horizontally centered, at the bottom 
 of the graph.
-.Sh "Data and variables"
+.SS "Data and variables"
 .IX Subsection "Data and variables"
 \&\fB\s-1DEF:\s0\fR\fIvname\fR\fB=\fR\fIrrdfile\fR\fB:\fR\fIds-name\fR\fB:\fR\fI\s-1CF\s0\fR[\fB:step=\fR\fIstep\fR][\fB:start=\fR\fItime\fR][\fB:end=\fR\fItime\fR]
 .PP
@@ -596,7 +606,7 @@ See rrdgraph_data and rrdgraph_rpn for the exact format.
 You need at least one graph element to generate an image and/or
 at least one print statement to generate a report.
 See rrdgraph_graph for the exact format.
-.Sh "graphv"
+.SS "graphv"
 .IX Subsection "graphv"
 Calling rrdtool with the graphv option will return information in the
 rrdtool info format. On the command line this means that all output will be
@@ -607,7 +617,7 @@ When the filename '\-' is given, the contents of the graph itself will also
 be returned through this interface (hash key 'image'). On the command line
 the output will look like this:
 .PP
-.Vb 14
+.Vb 10
 \& print[0] = "0.020833"
 \& print[1] = "0.0440833"
 \& graph_left = 51
index b3063d8d6afd14b98c917ad3a917338d61117780..e7b3fb0870d7e9aaf4a93faee1532702c64cb16b 100644 (file)
@@ -1,14 +1,18 @@
+<?xml version="1.0" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>rrdgraph</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <link rev="made" href="mailto:root@localhost" />
 </head>
 
 <body style="background-color: white">
 
-<p><a name="__index__"></a></p>
+
 <!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
 <!--
 
 <ul>
@@ -25,8 +29,8 @@
                <li><a href="#labels">Labels</a></li>
                <li><a href="#size">Size</a></li>
                <li><a href="#limits">Limits</a></li>
-               <li><a href="#xaxis">X-Axis</a></li>
-               <li><a href="#yaxis">Y-Axis</a></li>
+               <li><a href="#x_axis">X-Axis</a></li>
+               <li><a href="#y_axis">Y-Axis</a></li>
                <li><a href="#right_y_axis">Right Y Axis</a></li>
                <li><a href="#legend">Legend</a></li>
                <li><a href="#miscellaneous">Miscellaneous</a></li>
        <li><a href="#see_also">SEE ALSO</a></li>
        <li><a href="#author">AUTHOR</a></li>
 </ul>
+
 -->
+
+
+</div>
 <!-- INDEX END -->
 
 <p>
@@ -183,7 +191,7 @@ to turn this behaviour off.</p>
 <p>Gridfitting is turned off for PDF, EPS, SVG output by default.</p>
 <p>
 </p>
-<h2><a name="xaxis">X-Axis</a></h2>
+<h2><a name="x_axis">X-Axis</a></h2>
 <p>[<strong>-x</strong>|<strong>--x-grid</strong> <em>GTM</em><strong>:</strong><em>GST</em><strong>:</strong><em>MTM</em><strong>:</strong><em>MST</em><strong>:</strong><em>LTM</em><strong>:</strong><em>LST</em><strong>:</strong><em>LPR</em><strong>:</strong><em>LFM</em>]</p>
 <p>[<strong>-x</strong>|<strong>--x-grid</strong> <strong>none</strong>]</p>
 <p>The x-axis label is quite complex to configure. If you don't have
@@ -213,7 +221,7 @@ each day. The labels are placed exactly between two major grid lines
 as they specify the complete day and not just midnight.</p>
 <p>
 </p>
-<h2><a name="yaxis">Y-Axis</a></h2>
+<h2><a name="y_axis">Y-Axis</a></h2>
 <p>[<strong>-y</strong>|<strong>--y-grid</strong> <em>grid step</em><strong>:</strong><em>label factor</em>]</p>
 <p>[<strong>-y</strong>|<strong>--y-grid</strong> <strong>none</strong>]</p>
 <p>Y-axis grid lines appear at each <em>grid step</em> interval.  Labels are
@@ -322,6 +330,10 @@ and blue. Optionally you may add another hexadecimal number specifying the
 transparency (FF is solid). You may set this option several times to alter
 multiple defaults.</p>
 <p>A green arrow is made by: <code>--color ARROW#00FF00</code></p>
+<p>[<strong>--border</strong> <em>width</em>]]</p>
+<p>Width in pixels for the 3d border drawn around the image. Default 2, 0
+disables the border. See <code>SHADEA</code> and <code>SHADEB</code> above for setting the border
+color.</p>
 <p>[<strong>--zoom</strong> <em>factor</em>]</p>
 <p>Zoom the graphics by the given amount. The factor must be &gt; 0</p>
 <p>[<strong>-n</strong>|<strong>--font</strong> <em>FONTTAG</em><strong>:</strong><em>size</em><strong>:</strong>[<em>font</em>]]</p>
@@ -331,6 +343,9 @@ for the title, <code>AXIS</code> for the axis labels, <code>UNIT</code> for the
 label, <code>LEGEND</code> for the graph legend, <code>WATERMARK</code> for the watermark on the
 edge of the graph.</p>
 <p>Use Times for the title: <code>--font TITLE:13:Times</code></p>
+<p>Note that you need to quote the argument to <strong>--font</strong> if the font-name
+contains whitespace:
+--font &quot;TITLE:13:Some Font&quot;</p>
 <p>If you do not give a font string you can modify just the size of the default font:
 <code>--font TITLE:13:</code>.</p>
 <p>If you specify the size 0 then you can modify just the font without touching
@@ -340,12 +355,12 @@ resetting the default fontsizes: <code>--font DEFAULT:0:Courier</code>.</p>
 variable <code>RRD_DEFAULT_FONT</code> if you want to change this.</p>
 <p>RRDtool uses Pango for its font handling. This means you can to use
 the full Pango syntax when selecting your font:</p>
-<p>The font name has the form ``[<em>FAMILY-LIST</em>] [<em>STYLE-OPTIONS</em>] [<em>SIZE</em>]'',
+<p>The font name has the form &quot;[<em>FAMILY-LIST</em>] [<em>STYLE-OPTIONS</em>] [<em>SIZE</em>]&quot;,
 where <em>FAMILY-LIST</em> is a comma separated list of families optionally
 terminated by a comma, <em>STYLE_OPTIONS</em> is a whitespace separated list of
 words where each WORD describes one of style, variant, weight, stretch, or
 gravity, and <em>SIZE</em> is a decimal number (size in points) or optionally
-followed by the unit modifier ``px'' for absolute size. Any one of the options
+followed by the unit modifier &quot;px&quot; for absolute size. Any one of the options
 may be absent.</p>
 <p>[<strong>-R</strong>|<strong>--font-render-mode</strong> {<strong>normal</strong>,<strong>light</strong>,<strong>mono</strong>}]</p>
 <p>There are 3 font render modes:</p>
@@ -449,14 +464,14 @@ know what is where on the graph.</p>
 <p>The following environment variables may be used to change the behavior of
 <code>rrdtoolgraph</code>:</p>
 <dl>
-<dt><strong><a name="item_rrdcached_address"><strong>RRDCACHED_ADDRESS</strong></a></strong><br />
-</dt>
+<dt><strong><a name="rrdcached_address" class="item"><strong>RRDCACHED_ADDRESS</strong></a></strong></dt>
+
 <dd>
-If this environment variable is set it will have the same effect as specifying
+<p>If this environment variable is set it will have the same effect as specifying
 the <code>--daemon</code> option on the command line. If both are present, the command
-line argument takes precedence.
+line argument takes precedence.</p>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <hr />
index 091940341409fb0b38a451a5bdfd0b465f911946..dc8081f2b131e637ac4bd615a40ebc3ff49b31dc 100644 (file)
@@ -336,6 +336,12 @@ multiple defaults.
 
 A green arrow is made by: C<--color ARROW#00FF00>
 
+[B<--border> I<width>]]
+
+Width in pixels for the 3d border drawn around the image. Default 2, 0
+disables the border. See C<SHADEA> and C<SHADEB> above for setting the border
+color.
+
 [B<--zoom> I<factor>]
 
 Zoom the graphics by the given amount. The factor must be E<gt> 0
@@ -350,6 +356,10 @@ edge of the graph.
 
 Use Times for the title: C<--font TITLE:13:Times>
 
+Note that you need to quote the argument to B<--font> if the font-name
+contains whitespace:
+--font "TITLE:13:Some Font"
+
 If you do not give a font string you can modify just the size of the default font:
 C<--font TITLE:13:>.
 
index 6bb25bc92343feb5e3251312887bd6c0fa1ef545..8c7717da9689d68f1e8177b692c585770454eb9c 100644 (file)
@@ -12,8 +12,8 @@ S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
 
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        The g\bgr\bra\bap\bph\bh function of R\bRR\bRD\bDt\bto\boo\bol\bl is used to present the data from an R\bRR\bRD\bD
-       to a human viewer.  Its main purpose is to create a nice graphical rep-
-       resentation, but it can also generate a numerical report.
+       to a human viewer.  Its main purpose is to create a nice graphical
+       representation, but it can also generate a numerical report.
 
 O\bOV\bVE\bER\bRV\bVI\bIE\bEW\bW
        r\brr\brd\bdt\bto\boo\bol\bl g\bgr\bra\bap\bph\bh needs data to work with, so you must use one or more d\bda\bat\bta\ba
@@ -22,9 +22,9 @@ O\bOV\bVE\bER\bRV\bVI\bIE\bEW\bW
        databases (one per statement, though).
 
        If you want to display averages, maxima, percentiles, etcetera it is
-       best to collect them now using the v\bva\bar\bri\bia\bab\bbl\ble\be d\bde\bef\bfi\bin\bni\bit\bti\bio\bon\bn statement.  Cur-
-       rently this makes no difference, but in a future version of rrdtool you
-       may want to collect these values before consolidation.
+       best to collect them now using the v\bva\bar\bri\bia\bab\bbl\ble\be d\bde\bef\bfi\bin\bni\bit\bti\bio\bon\bn statement.
+       Currently this makes no difference, but in a future version of rrdtool
+       you may want to collect these values before consolidation.
 
        The data fetched from the R\bRR\bRA\bA is then c\bco\bon\bns\bso\bol\bli\bid\bda\bat\bte\bed\bd so that there is
        exactly one datapoint per pixel in the graph. If you do not take care
@@ -45,54 +45,50 @@ O\bOV\bVE\bER\bRV\bVI\bIE\bEW\bW
        more information.
 
 O\bOP\bPT\bTI\bIO\bON\bNS\bS
-       _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
-
+   _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
        The name and path of the graph to generate. It is recommended to end
        this in ".png", ".svg" or ".eps", but R\bRR\bRD\bDt\bto\boo\bol\bl does not enforce this.
 
        _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be can be '"-"' to send the image to "stdout". In this case, no
        other output is generated.
 
-       T\bTi\bim\bme\be r\bra\ban\bng\bge\be
-
+   T\bTi\bim\bme\be r\bra\ban\bng\bge\be
        [-\b-s\bs|-\b--\b-s\bst\bta\bar\brt\bt _\bt_\bi_\bm_\be] [-\b-e\be|-\b--\b-e\ben\bnd\bd _\bt_\bi_\bm_\be] [-\b-S\bS|-\b--\b-s\bst\bte\bep\bp _\bs_\be_\bc_\bo_\bn_\bd_\bs]
 
        The start and end of the time series you would like to display, and
        which R\bRR\bRA\bA the data should come from.  Defaults are: 1 day ago until
        now, with the best possible resolution. S\bSt\bta\bar\brt\bt and e\ben\bnd\bd can be specified
-       in several formats, see AT-STYLE TIME SPECIFICATION and rrdgraph_exam-
-       ples.  By default, r\brr\brd\bdt\bto\boo\bol\bl g\bgr\bra\bap\bph\bh calculates the width of one pixel in
-       the time domain and tries to get data from an R\bRR\bRA\bA with that resolution.
-       With the s\bst\bte\bep\bp option you can alter this behaviour.  If you want r\brr\brd\bdt\bto\boo\bol\bl
-       g\bgr\bra\bap\bph\bh to get data at a one-hour resolution from the R\bRR\bRD\bD, set s\bst\bte\bep\bp to
-       3'600. Note: a step smaller than one pixel will silently be ignored.
-
-       L\bLa\bab\bbe\bel\bls\bs
-
+       in several formats, see AT-STYLE TIME SPECIFICATION and
+       rrdgraph_examples.  By default, r\brr\brd\bdt\bto\boo\bol\bl g\bgr\bra\bap\bph\bh calculates the width of
+       one pixel in the time domain and tries to get data from an R\bRR\bRA\bA with
+       that resolution.  With the s\bst\bte\bep\bp option you can alter this behaviour.
+       If you want r\brr\brd\bdt\bto\boo\bol\bl g\bgr\bra\bap\bph\bh to get data at a one-hour resolution from the
+       R\bRR\bRD\bD, set s\bst\bte\bep\bp to 3'600. Note: a step smaller than one pixel will
+       silently be ignored.
+
+   L\bLa\bab\bbe\bel\bls\bs
        [-\b-t\bt|-\b--\b-t\bti\bit\btl\ble\be _\bs_\bt_\br_\bi_\bn_\bg] [-\b-v\bv|-\b--\b-v\bve\ber\brt\bti\bic\bca\bal\bl-\b-l\bla\bab\bbe\bel\bl _\bs_\bt_\br_\bi_\bn_\bg]
 
        A horizontal string at the top of the graph and/or a vertically placed
        string at the left hand side of the graph.
 
-       S\bSi\biz\bze\be
-
+   S\bSi\biz\bze\be
        [-\b-w\bw|-\b--\b-w\bwi\bid\bdt\bth\bh _\bp_\bi_\bx_\be_\bl_\bs] [-\b-h\bh|-\b--\b-h\bhe\bei\big\bgh\bht\bt _\bp_\bi_\bx_\be_\bl_\bs] [-\b-j\bj|-\b--\b-o\bon\bnl\bly\by-\b-g\bgr\bra\bap\bph\bh]
        [-\b-D\bD|-\b--\b-f\bfu\bul\bll\bl-\b-s\bsi\biz\bze\be-\b-m\bmo\bod\bde\be]
 
        By default, the width and height of the c\bca\ban\bnv\bva\bas\bs (the part with the
        actual data and such). This defaults to 400 pixels by 100 pixels.
 
-       If you specify the -\b--\b-f\bfu\bul\bll\bl-\b-s\bsi\biz\bze\be-\b-m\bmo\bod\bde\be option, the width and height spec-
-       ify the final dimensions of the output image and the canvas is automat-
-       ically resized to fit.
+       If you specify the -\b--\b-f\bfu\bul\bll\bl-\b-s\bsi\biz\bze\be-\b-m\bmo\bod\bde\be option, the width and height
+       specify the final dimensions of the output image and the canvas is
+       automatically resized to fit.
 
        If you specify the -\b--\b-o\bon\bnl\bly\by-\b-g\bgr\bra\bap\bph\bh option and set the height < 32 pixels
        you will get a tiny graph image (thumbnail) to use as an icon for use
        in an overview, for example. All labeling will be stripped off the
        graph.
 
-       L\bLi\bim\bmi\bit\bts\bs
-
+   L\bLi\bim\bmi\bit\bts\bs
        [-\b-u\bu|-\b--\b-u\bup\bpp\bpe\ber\br-\b-l\bli\bim\bmi\bit\bt _\bv_\ba_\bl_\bu_\be] [-\b-l\bl|-\b--\b-l\blo\bow\bwe\ber\br-\b-l\bli\bim\bmi\bit\bt _\bv_\ba_\bl_\bu_\be] [-\b-r\br|-\b--\b-r\bri\big\bgi\bid\bd]
 
        By default the graph will be autoscaling so that it will adjust the
@@ -113,19 +109,21 @@ O\bOP\bPT\bTI\bIO\bON\bNS\bS
 
        [-\b-J\bJ|-\b--\b-a\bal\blt\bt-\b-a\bau\but\bto\bos\bsc\bca\bal\ble\be-\b-m\bmi\bin\bn]
 
-       Where "--alt-autoscale" will modify both the absolute maximum AND mini-
-       mum values, this option will only affect the minimum value. The maximum
-       value, if not defined on the command line, will be 0. This option can
-       be useful when graphing router traffic when the WAN line uses compres-
-       sion, and thus the throughput may be higher than the WAN line speed.
+       Where "--alt-autoscale" will modify both the absolute maximum AND
+       minimum values, this option will only affect the minimum value. The
+       maximum value, if not defined on the command line, will be 0. This
+       option can be useful when graphing router traffic when the WAN line
+       uses compression, and thus the throughput may be higher than the WAN
+       line speed.
 
        [-\b-M\bM|-\b--\b-a\bal\blt\bt-\b-a\bau\but\bto\bos\bsc\bca\bal\ble\be-\b-m\bma\bax\bx]
 
-       Where "--alt-autoscale" will modify both the absolute maximum AND mini-
-       mum values, this option will only affect the maximum value. The minimum
-       value, if not defined on the command line, will be 0. This option can
-       be useful when graphing router traffic when the WAN line uses compres-
-       sion, and thus the throughput may be higher than the WAN line speed.
+       Where "--alt-autoscale" will modify both the absolute maximum AND
+       minimum values, this option will only affect the maximum value. The
+       minimum value, if not defined on the command line, will be 0. This
+       option can be useful when graphing router traffic when the WAN line
+       uses compression, and thus the throughput may be higher than the WAN
+       line speed.
 
        [-\b-N\bN|-\b--\b-n\bno\bo-\b-g\bgr\bri\bid\bdf\bfi\bit\bt]
 
@@ -136,8 +134,7 @@ O\bOP\bPT\bTI\bIO\bON\bNS\bS
 
        Gridfitting is turned off for PDF, EPS, SVG output by default.
 
-       X\bX-\b-A\bAx\bxi\bis\bs
-
+   X\bX-\b-A\bAx\bxi\bis\bs
        [-\b-x\bx|-\b--\b-x\bx-\b-g\bgr\bri\bid\bd _\bG_\bT_\bM:\b:_\bG_\bS_\bT:\b:_\bM_\bT_\bM:\b:_\bM_\bS_\bT:\b:_\bL_\bT_\bM:\b:_\bL_\bS_\bT:\b:_\bL_\bP_\bR:\b:_\bL_\bF_\bM]
 
        [-\b-x\bx|-\b--\b-x\bx-\b-g\bgr\bri\bid\bd n\bno\bon\bne\be]
@@ -150,13 +147,13 @@ O\bOP\bPT\bTI\bIO\bON\bNS\bS
        The grid is defined by specifying a certain amount of time in the _\b?_\bT_\bM
        positions. You can choose from "SECOND", "MINUTE", "HOUR", "DAY",
        "WEEK", "MONTH" or "YEAR". Then you define how many of these should
-       pass between each line or label.  This pair (_\b?_\bT_\bM_\b:_\b?_\bS_\bT) needs to be spec-
-       ified for the base grid (_\bG_\b?_\b?), the major grid (_\bM_\b?_\b?) and the labels
+       pass between each line or label.  This pair (_\b?_\bT_\bM_\b:_\b?_\bS_\bT) needs to be
+       specified for the base grid (_\bG_\b?_\b?), the major grid (_\bM_\b?_\b?) and the labels
        (_\bL_\b?_\b?). For the labels you also must define a precision in _\bL_\bP_\bR and a
        _\bs_\bt_\br_\bf_\bt_\bi_\bm_\be format string in _\bL_\bF_\bM.  _\bL_\bP_\bR defines where each label will be
-       placed. If it is zero, the label will be placed right under the corre-
-       sponding line (useful for hours, dates etcetera).  If you specify a
-       number of seconds here the label is centered on this interval (useful
+       placed. If it is zero, the label will be placed right under the
+       corresponding line (useful for hours, dates etcetera).  If you specify
+       number of seconds here the label is centered on this interval (useful
        for Monday, January etcetera).
 
         --x-grid MINUTE:10:HOUR:1:HOUR:4:0:%X
@@ -171,16 +168,15 @@ O\bOP\bPT\bTI\bIO\bON\bNS\bS
        day. The labels are placed exactly between two major grid lines as they
        specify the complete day and not just midnight.
 
-       Y\bY-\b-A\bAx\bxi\bis\bs
-
+   Y\bY-\b-A\bAx\bxi\bis\bs
        [-\b-y\by|-\b--\b-y\by-\b-g\bgr\bri\bid\bd _\bg_\br_\bi_\bd _\bs_\bt_\be_\bp:\b:_\bl_\ba_\bb_\be_\bl _\bf_\ba_\bc_\bt_\bo_\br]
 
        [-\b-y\by|-\b--\b-y\by-\b-g\bgr\bri\bid\bd n\bno\bon\bne\be]
 
        Y-axis grid lines appear at each _\bg_\br_\bi_\bd _\bs_\bt_\be_\bp interval.  Labels are placed
        every _\bl_\ba_\bb_\be_\bl _\bf_\ba_\bc_\bt_\bo_\br lines.  You can specify "-y none" to suppress the
-       grid and labels altogether.  The default for this option is to automat-
-       ically select sensible values.
+       grid and labels altogether.  The default for this option is to
+       automatically select sensible values.
 
        If you have set --y-grid to 'none' not only the labels get suppressed,
        also the space reserved for the labels is removed. You can still add
@@ -189,12 +185,12 @@ O\bOP\bPT\bTI\bIO\bON\bNS\bS
 
        [-\b-Y\bY|-\b--\b-a\bal\blt\bt-\b-y\by-\b-g\bgr\bri\bid\bd]
 
-       Place the Y grid dynamically based on the graph's Y range. The algo-
-       rithm ensures that you always have a grid, that there are enough but
-       not too many grid lines, and that the grid is metric. That is the grid
-       lines are placed every 1, 2, 5 or 10 units. This parameter will also
-       ensure that you get enough decimals displayed even if your graph goes
-       from 69.998 to 70.001.  (contributed by Sasha Mikheev).
+       Place the Y grid dynamically based on the graph's Y range. The
+       algorithm ensures that you always have a grid, that there are enough
+       but not too many grid lines, and that the grid is metric. That is the
+       grid lines are placed every 1, 2, 5 or 10 units. This parameter will
+       also ensure that you get enough decimals displayed even if your graph
+       goes from 69.998 to 70.001.  (contributed by Sasha Mikheev).
 
        [-\b-o\bo|-\b--\b-l\blo\bog\bga\bar\bri\bit\bth\bhm\bmi\bic\bc]
 
@@ -202,15 +198,15 @@ O\bOP\bPT\bTI\bIO\bON\bNS\bS
 
        [-\b-X\bX|-\b--\b-u\bun\bni\bit\bts\bs-\b-e\bex\bxp\bpo\bon\bne\ben\bnt\bt _\bv_\ba_\bl_\bu_\be]
 
-       This sets the 10**exponent scaling of the y-axis values. Normally, val-
-       ues will be scaled to the appropriate units (k, M, etc.).  However, you
-       may wish to display units always in k (Kilo, 10e3) even if the data is
-       in the M (Mega, 10e6) range, for instance. Value should be an integer
-       which is a multiple of 3 between -18 and 18 inclusively.  It is the
-       exponent on the units you wish to use. For example, use 3 to display
-       the y-axis values in k (Kilo, 10e3, thousands), use -6 to display the
-       y-axis values in u (Micro, 10e-6, millionths).  Use a value of 0 to
-       prevent any scaling of the y-axis values.
+       This sets the 10**exponent scaling of the y-axis values. Normally,
+       values will be scaled to the appropriate units (k, M, etc.).  However,
+       you may wish to display units always in k (Kilo, 10e3) even if the data
+       is in the M (Mega, 10e6) range, for instance. Value should be an
+       integer which is a multiple of 3 between -18 and 18 inclusively.  It is
+       the exponent on the units you wish to use. For example, use 3 to
+       display the y-axis values in k (Kilo, 10e3, thousands), use -6 to
+       display the y-axis values in u (Micro, 10e-6, millionths).  Use a value
+       of 0 to prevent any scaling of the y-axis values.
 
        This option is very effective at confusing the heck out of the default
        rrdtool autoscaler and grid painter. If rrdtool detects that it is not
@@ -226,11 +222,10 @@ O\bOP\bPT\bTI\bIO\bON\bNS\bS
        [-\b--\b-u\bun\bni\bit\bts\bs=\b=s\bsi\bi]
 
        With this option y-axis values on logarithmic graphs will be scaled to
-       the appropriate units (k, M, etc.) instead of using exponential nota-
-       tion.  Note that for linear graphs, SI notation is used by default.
-
-       R\bRi\big\bgh\bht\bt Y\bY A\bAx\bxi\bis\bs
+       the appropriate units (k, M, etc.) instead of using exponential
+       notation.  Note that for linear graphs, SI notation is used by default.
 
+   R\bRi\big\bgh\bht\bt Y\bY A\bAx\bxi\bis\bs
        [-\b--\b-r\bri\big\bgh\bht\bt-\b-a\bax\bxi\bis\bs _\bs_\bc_\ba_\bl_\be:\b:_\bs_\bh_\bi_\bf_\bt] [-\b--\b-r\bri\big\bgh\bht\bt-\b-a\bax\bxi\bis\bs-\b-l\bla\bab\bbe\bel\bl _\bl_\ba_\bb_\be_\bl]
 
        A second axis will be drawn to the right of the graph. It is tied to
@@ -243,8 +238,7 @@ O\bOP\bPT\bTI\bIO\bON\bNS\bS
        If you want todo this your self, use this option with the same %lf
        arguments you know from the PRING and GPRINT commands.
 
-       L\bLe\beg\bge\ben\bnd\bd
-
+   L\bLe\beg\bge\ben\bnd\bd
        [-\b-g\bg|-\b--\b-n\bno\bo-\b-l\ble\beg\bge\ben\bnd\bd]
 
        Suppress generation of the legend; only render the graph.
@@ -262,12 +256,11 @@ O\bOP\bPT\bTI\bIO\bON\bNS\bS
 
        [-\b--\b-l\ble\beg\bge\ben\bnd\bd-\b-d\bdi\bir\bre\bec\bct\bti\bio\bon\bn=(topdown|bottomup)]
 
-       Place the legend items in the given vertical order. The default is top-
-       down.  Using bottomup the legend items appear in the same vertical
+       Place the legend items in the given vertical order. The default is
+       topdown.  Using bottomup the legend items appear in the same vertical
        order as a stack of lines or areas.
 
-       M\bMi\bis\bsc\bce\bel\bll\bla\ban\bne\beo\bou\bus\bs
-
+   M\bMi\bis\bsc\bce\bel\bll\bla\ban\bne\beo\bou\bus\bs
        [-\b-z\bz|-\b--\b-l\bla\baz\bzy\by]
 
        Only generate the graph if the current graph is out of date or not
@@ -307,14 +300,20 @@ O\bOP\bPT\bTI\bIO\bON\bNS\bS
        the right and bottom border, "GRID", "MGRID" for the major grid, "FONT"
        for the color of the font, "AXIS" for the axis of the graph, "FRAME"
        for the line around the color spots, and finally "ARROW" for the arrow
-       head pointing up and forward. Each color is composed out of three hex-
-       adecimal numbers specifying its rgb color component (00 is off, FF is
-       maximum) of red, green and blue. Optionally you may add another hex-
-       adecimal number specifying the transparency (FF is solid). You may set
-       this option several times to alter multiple defaults.
+       head pointing up and forward. Each color is composed out of three
+       hexadecimal numbers specifying its rgb color component (00 is off, FF
+       is maximum) of red, green and blue. Optionally you may add another
+       hexadecimal number specifying the transparency (FF is solid). You may
+       set this option several times to alter multiple defaults.
 
        A green arrow is made by: "--color ARROW#00FF00"
 
+       [-\b--\b-b\bbo\bor\brd\bde\ber\br _\bw_\bi_\bd_\bt_\bh]]
+
+       Width in pixels for the 3d border drawn around the image. Default 2, 0
+       disables the border. See "SHADEA" and "SHADEB" above for setting the
+       border color.
+
        [-\b--\b-z\bzo\boo\bom\bm _\bf_\ba_\bc_\bt_\bo_\br]
 
        Zoom the graphics by the given amount. The factor must be > 0
@@ -323,12 +322,15 @@ O\bOP\bPT\bTI\bIO\bON\bNS\bS
 
        This lets you customize which font to use for the various text elements
        on the RRD graphs. "DEFAULT" sets the default value for all elements,
-       "TITLE" for the title, "AXIS" for the axis labels, "UNIT" for the ver-
-       tical unit label, "LEGEND" for the graph legend, "WATERMARK" for the
+       "TITLE" for the title, "AXIS" for the axis labels, "UNIT" for the
+       vertical unit label, "LEGEND" for the graph legend, "WATERMARK" for the
        watermark on the edge of the graph.
 
        Use Times for the title: "--font TITLE:13:Times"
 
+       Note that you need to quote the argument to -\b--\b-f\bfo\bon\bnt\bt if the font-name
+       contains whitespace: --font "TITLE:13:Some Font"
+
        If you do not give a font string you can modify just the size of the
        default font: "--font TITLE:13:".
 
@@ -344,8 +346,8 @@ O\bOP\bPT\bTI\bIO\bON\bNS\bS
        full Pango syntax when selecting your font:
 
        The font name has the form "[_\bF_\bA_\bM_\bI_\bL_\bY_\b-_\bL_\bI_\bS_\bT] [_\bS_\bT_\bY_\bL_\bE_\b-_\bO_\bP_\bT_\bI_\bO_\bN_\bS] [_\bS_\bI_\bZ_\bE]",
-       where _\bF_\bA_\bM_\bI_\bL_\bY_\b-_\bL_\bI_\bS_\bT is a comma separated list of families optionally ter-
-       minated by a comma, _\bS_\bT_\bY_\bL_\bE_\b__\bO_\bP_\bT_\bI_\bO_\bN_\bS is a whitespace separated list of
+       where _\bF_\bA_\bM_\bI_\bL_\bY_\b-_\bL_\bI_\bS_\bT is a comma separated list of families optionally
+       terminated by a comma, _\bS_\bT_\bY_\bL_\bE_\b__\bO_\bP_\bT_\bI_\bO_\bN_\bS is a whitespace separated list of
        words where each WORD describes one of style, variant, weight, stretch,
        or gravity, and _\bS_\bI_\bZ_\bE is a decimal number (size in points) or optionally
        followed by the unit modifier "px" for absolute size. Any one of the
@@ -390,8 +392,8 @@ O\bOP\bPT\bTI\bIO\bON\bNS\bS
         tt    Monospace font
         u     Underline
 
-       More details on <http://developer.gnome.org/doc/API/2.0/pango/Pango-
-       MarkupFormat.html>.
+       More details on
+       <http://developer.gnome.org/doc/API/2.0/pango/PangoMarkupFormat.html>.
 
        [-\b-G\bG|-\b--\b-g\bgr\bra\bap\bph\bh-\b-r\bre\ben\bnd\bde\ber\br-\b-m\bmo\bod\bde\be {n\bno\bor\brm\bma\bal\bl,m\bmo\bon\bno\bo}]
 
@@ -410,10 +412,10 @@ O\bOP\bPT\bTI\bIO\bON\bNS\bS
        [-\b-a\ba|-\b--\b-i\bim\bmg\bgf\bfo\bor\brm\bma\bat\bt P\bPN\bNG\bG|S\bSV\bVG\bG|E\bEP\bPS\bS|P\bPD\bDF\bF]
 
        Image format for the generated graph. For the vector formats you can
-       choose among the standard Postscript fonts Courier-Bold,
-       Courier-BoldOblique, Courier-Oblique, Courier, Helvetica-Bold, Hel-
-       vetica-BoldOblique, Helvetica-Oblique, Helvetica, Symbol, Times-Bold,
-       Times-BoldItalic, Times-Italic, Times-Roman, and ZapfDingbats.
+       choose among the standard Postscript fonts Courier-Bold, Courier-
+       BoldOblique, Courier-Oblique, Courier, Helvetica-Bold, Helvetica-
+       BoldOblique, Helvetica-Oblique, Helvetica, Symbol, Times-Bold, Times-
+       BoldItalic, Times-Italic, Times-Roman, and ZapfDingbats.
 
        [-\b-i\bi|-\b--\b-i\bin\bnt\bte\ber\brl\bla\bac\bce\bed\bd]
 
@@ -436,8 +438,7 @@ O\bOP\bPT\bTI\bIO\bON\bNS\bS
        Adds the given string as a watermark, horizontally centered, at the
        bottom of the graph.
 
-       D\bDa\bat\bta\ba a\ban\bnd\bd v\bva\bar\bri\bia\bab\bbl\ble\bes\bs
-
+   D\bDa\bat\bta\ba a\ban\bnd\bd v\bva\bar\bri\bia\bab\bbl\ble\bes\bs
        D\bDE\bEF\bF:\b:_\bv_\bn_\ba_\bm_\be=\b=_\br_\br_\bd_\bf_\bi_\bl_\be:\b:_\bd_\bs_\b-_\bn_\ba_\bm_\be:\b:_\bC_\bF[:\b:s\bst\bte\bep\bp=\b=_\bs_\bt_\be_\bp][:\b:s\bst\bta\bar\brt\bt=\b=_\bt_\bi_\bm_\be][:\b:e\ben\bnd\bd=\b=_\bt_\bi_\bm_\be]
 
        C\bCD\bDE\bEF\bF:\b:_\bv_\bn_\ba_\bm_\be=\b=_\bR_\bP_\bN _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn
@@ -454,16 +455,15 @@ O\bOP\bPT\bTI\bIO\bON\bNS\bS
        least one print statement to generate a report.  See rrdgraph_graph for
        the exact format.
 
-       g\bgr\bra\bap\bph\bhv\bv
-
+   g\bgr\bra\bap\bph\bhv\bv
        Calling rrdtool with the graphv option will return information in the
        rrdtool info format. On the command line this means that all output
        will be in key=value format. When used from the Perl and Ruby bindings
        a hash pointer will be returned from the call.
 
        When the filename '-' is given, the contents of the graph itself will
-       also be returned through this interface (hash key 'image'). On the com-
-       mand line the output will look like this:
+       also be returned through this interface (hash key 'image'). On the
+       command line the output will look like this:
 
         print[0] = "0.020833"
         print[1] = "0.0440833"
@@ -509,4 +509,4 @@ A\bAU\bUT\bTH\bHO\bOR\bR
 
 
 
-1.3.99909060808                   2009-05-21                       RRDGRAPH(1)
+1.3.999                           2009-09-24                       RRDGRAPH(1)
index 7c9538c3a739a24c1ae1ec94379edd830329d823..60e63d672c77a0c1791afe3e404d94ca0958eda2 100644 (file)
@@ -1,15 +1,7 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.08)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
 .de Sp \" Vertical space (when we can't use .PP)
 .if t .sp .5v
 .if n .sp
 ..
 .\" Set up some character translations and predefined strings.  \*(-- will
 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
 .ie n \{\
 .    ds -- \(*W-
 .    ds R" ''
 'br\}
 .\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
 .\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
 .\" entries marked with X<> in POD.  Of course, you'll have to process the
 .\" output yourself in some meaningful fashion.
-.if \nF \{\
+.ie \nF \{\
 .    de IX
 .    tm Index:\\$1\t\\n%\t"\\$2"
 ..
 .    nr % 0
 .    rr F
 .\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
+.el \{\
+.    de IX
+..
+.\}
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
 .\" ========================================================================
 .\"
 .IX Title "RRDGRAPH_DATA 1"
-.TH RRDGRAPH_DATA 1 "2009-04-29" "1.3.99909060808" "rrdtool"
+.TH RRDGRAPH_DATA 1 "2009-06-01" "1.3.999" "rrdtool"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
 .SH "NAME"
 rrdgraph_data \- preparing data for graphing in rrdtool graph
 .SH "SYNOPSIS"
 .IX Header "SYNOPSIS"
-\&\fB\s-1DEF:\s0\fR\fI<vname>\fR=\fI<rrdfile>\fR:\fI<ds-name>\fR:\fI<\s-1CF\s0>\fR[:step=\fI<step>\fR][:start=\fI<time>\fR][:end=\fI<time>\fR][:reduce=\fI<\f(BI\s-1CF\s0\fI>\fR]
+\&\fB\s-1DEF:\s0\fR\fI<vname>\fR=\fI<rrdfile>\fR:\fI<ds\-name>\fR:\fI<\s-1CF\s0>\fR[:step=\fI<step>\fR][:start=\fI<time>\fR][:end=\fI<time>\fR][:reduce=\fI<\f(BI\s-1CF\s0\fI>\fR]
 .PP
 \&\fB\s-1VDEF\s0\fR:\fIvname\fR=\fI\s-1RPN\s0 expression\fR
 .PP
@@ -156,7 +155,7 @@ already taken by an \s-1RPN\s0 operator. A safe bet it to use lowercase or
 mixedcase names for variables since operators will always be in uppercase.
 .SH "DEF"
 .IX Header "DEF"
-\&\fB\s-1DEF:\s0\fR\fI<vname>\fR=\fI<rrdfile>\fR:\fI<ds-name>\fR:\fI<\s-1CF\s0>\fR[:step=\fI<step>\fR][:start=\fI<time>\fR][:end=\fI<time>\fR][:reduce=\fI<\f(BI\s-1CF\s0\fI>\fR]
+\&\fB\s-1DEF:\s0\fR\fI<vname>\fR=\fI<rrdfile>\fR:\fI<ds\-name>\fR:\fI<\s-1CF\s0>\fR[:step=\fI<step>\fR][:start=\fI<time>\fR][:end=\fI<time>\fR][:reduce=\fI<\f(BI\s-1CF\s0\fI>\fR]
 .PP
 This command fetches data from an \fB\s-1RRD\s0\fR file.  The virtual name
 \&\fIvname\fR can then be used throughout the rest of the script. By
@@ -179,7 +178,7 @@ start and end times, such as \f(CW\*(C`\-\-start end\-8days8hours\*(C'\fR).
 .PP
 If consolidation needs to be done, the \fB\s-1CF\s0\fR of the \fB\s-1RRA\s0\fR specified in the
 \&\fB\s-1DEF\s0\fR itself will be used to reduce the data density. This behaviour can
-be changed using \f(CW\*(C`:reduce=\f(CI<\f(CB\s-1CF\s0\f(CI>\f(CW\*(C'\fR.  This optional parameter
+be changed using \f(CW\*(C`:reduce=\f(CI<\f(CBCF\f(CI>\f(CW\*(C'\fR.  This optional parameter
 specifies the \fB\s-1CF\s0\fR to use during the data reduction phase.
 .PP
 Example:
@@ -230,7 +229,7 @@ new values.
 \&\fB\s-1VDEF\s0\fR also works on such an array but in a different way.  For
 example, \fIVDEF:max=ds0,MAXIMUM\fR would scan each of the array members
 and store the maximum value.
-.Sh "When do you use \fB\s-1VDEF\s0\fP versus \fB\s-1CDEF\s0\fP?"
+.SS "When do you use \fB\s-1VDEF\s0\fP versus \fB\s-1CDEF\s0\fP?"
 .IX Subsection "When do you use VDEF versus CDEF?"
 Use \fB\s-1CDEF\s0\fR to transform your data prior to graphing.  In the above
 example, we'd use a \fB\s-1CDEF\s0\fR to transform bytes to bits before
index dfed5f1d7cbd69b844a1486d9eb4fc14e508b489..7348df4c2cd5c2629929d74f6061731fa3d019de 100644 (file)
@@ -1,14 +1,18 @@
+<?xml version="1.0" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>rrdgraph_data</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <link rev="made" href="mailto:root@localhost" />
 </head>
 
 <body style="background-color: white">
 
-<p><a name="__index__"></a></p>
+
 <!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
 <!--
 
 <ul>
        <li><a href="#see_also">SEE ALSO</a></li>
        <li><a href="#author">AUTHOR</a></li>
 </ul>
+
 -->
+
+
+</div>
 <!-- INDEX END -->
 
 <p>
index 338b264d71437403d3ea7e7583e109d8ebc596d6..a2bc07217c1020ed7e49770abcc16e799b382bb4 100644 (file)
@@ -6,8 +6,7 @@ N\bNA\bAM\bME\bE
        rrdgraph_data - preparing data for graphing in rrdtool graph
 
 S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
-       D\bDE\bEF\bF:\b:_\b<_\bv_\bn_\ba_\bm_\be_\b>=_\b<_\br_\br_\bd_\bf_\bi_\bl_\be_\b>:_\b<_\bd_\bs_\b-
-       _\bn_\ba_\bm_\be_\b>:_\b<_\bC_\bF_\b>[:step=_\b<_\bs_\bt_\be_\bp_\b>][:start=_\b<_\bt_\bi_\bm_\be_\b>][:end=_\b<_\bt_\bi_\bm_\be_\b>][:reduce=_\b<_\bC\bC_\bF\bF_\b>]
+       D\bDE\bEF\bF:\b:_\b<_\bv_\bn_\ba_\bm_\be_\b>=_\b<_\br_\br_\bd_\bf_\bi_\bl_\be_\b>:_\b<_\bd_\bs_\b-_\bn_\ba_\bm_\be_\b>:_\b<_\bC_\bF_\b>[:step=_\b<_\bs_\bt_\be_\bp_\b>][:start=_\b<_\bt_\bi_\bm_\be_\b>][:end=_\b<_\bt_\bi_\bm_\be_\b>][:reduce=_\b<_\bC\bC_\bF\bF_\b>]
 
        V\bVD\bDE\bEF\bF:_\bv_\bn_\ba_\bm_\be=_\bR_\bP_\bN _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn
 
@@ -15,32 +14,31 @@ S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
 
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        These three instructions extract data values out of the R\bRR\bRD\bD files,
-       optionally altering them (think, for example, of a bytes to bits con-
-       version). If so desired, you can also define variables containing use-
-       ful information such as maximum, minimum etcetera. Two of the instruc-
-       tions use a language called R\bRP\bPN\bN which is described in its own manual
-       page.
+       optionally altering them (think, for example, of a bytes to bits
+       conversion). If so desired, you can also define variables containing
+       useful information such as maximum, minimum etcetera. Two of the
+       instructions use a language called R\bRP\bPN\bN which is described in its own
+       manual page.
 
-       Variable names (_\bv_\bn_\ba_\bm_\be) must be made up strings of the following charac-
-       ters "A-Z, a-z, 0-9, -,_" and a maximum length of 255 characters.
+       Variable names (_\bv_\bn_\ba_\bm_\be) must be made up strings of the following
+       characters "A-Z, a-z, 0-9, -,_" and a maximum length of 255 characters.
 
        When picking variable names, make sure you do not choose a name that is
        already taken by an RPN operator. A safe bet it to use lowercase or
-       mixedcase names for variables since operators will always be in upper-
-       case.
+       mixedcase names for variables since operators will always be in
+       uppercase.
 
 D\bDE\bEF\bF
-       D\bDE\bEF\bF:\b:_\b<_\bv_\bn_\ba_\bm_\be_\b>=_\b<_\br_\br_\bd_\bf_\bi_\bl_\be_\b>:_\b<_\bd_\bs_\b-
-       _\bn_\ba_\bm_\be_\b>:_\b<_\bC_\bF_\b>[:step=_\b<_\bs_\bt_\be_\bp_\b>][:start=_\b<_\bt_\bi_\bm_\be_\b>][:end=_\b<_\bt_\bi_\bm_\be_\b>][:reduce=_\b<_\bC\bC_\bF\bF_\b>]
+       D\bDE\bEF\bF:\b:_\b<_\bv_\bn_\ba_\bm_\be_\b>=_\b<_\br_\br_\bd_\bf_\bi_\bl_\be_\b>:_\b<_\bd_\bs_\b-_\bn_\ba_\bm_\be_\b>:_\b<_\bC_\bF_\b>[:step=_\b<_\bs_\bt_\be_\bp_\b>][:start=_\b<_\bt_\bi_\bm_\be_\b>][:end=_\b<_\bt_\bi_\bm_\be_\b>][:reduce=_\b<_\bC\bC_\bF\bF_\b>]
 
        This command fetches data from an R\bRR\bRD\bD file.  The virtual name _\bv_\bn_\ba_\bm_\be can
        then be used throughout the rest of the script. By default, an R\bRR\bRA\bA
-       which contains the correct consolidated data at an appropriate resolu-
-       tion will be chosen.  The resolution can be overridden with the --step
-       option.  The resolution can again be overridden by specifying the s\bst\bte\bep\bp
-       s\bsi\biz\bze\be.  The time span of this data is the same as for the graph by
-       default, you can override this by specifying s\bst\bta\bar\brt\bt a\ban\bnd\bd e\ben\bnd\bd.  Remember
-       to escape colons in the time specification!
+       which contains the correct consolidated data at an appropriate
+       resolution will be chosen.  The resolution can be overridden with the
+       --step option.  The resolution can again be overridden by specifying
+       the s\bst\bte\bep\bp s\bsi\biz\bze\be.  The time span of this data is the same as for the graph
+       by default, you can override this by specifying s\bst\bta\bar\brt\bt a\ban\bnd\bd e\ben\bnd\bd.
+       Remember to escape colons in the time specification!
 
        If the resolution of the data is higher than the resolution of the
        graph, the data will be further consolidated. This may result in a
@@ -53,7 +51,7 @@ D\bDE\bEF\bF
 
        If consolidation needs to be done, the C\bCF\bF of the R\bRR\bRA\bA specified in the
        D\bDE\bEF\bF itself will be used to reduce the data density. This behaviour can
-       be changed using ":reduce=<CF>".  This optional parameter specifies the
+       be changed using ":reduce=_\b<C\bCF\bF_\b>_\b".  This optional parameter specifies the
        C\bCF\bF to use during the data reduction phase.
 
        Example:
@@ -66,26 +64,26 @@ D\bDE\bEF\bF
 V\bVD\bDE\bEF\bF
        V\bVD\bDE\bEF\bF:_\bv_\bn_\ba_\bm_\be=_\bR_\bP_\bN _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn
 
-       This command returns a value and/or a time according to the R\bRP\bPN\bN state-
-       ments used. The resulting _\bv_\bn_\ba_\bm_\be will, depending on the functions used,
-       have a value and a time component.  When you use this _\bv_\bn_\ba_\bm_\be in another
-       R\bRP\bPN\bN expression, you are effectively inserting its value just as if you
-       had put a number at that place.  The variable can also be used in the
-       various graph and print elements.
+       This command returns a value and/or a time according to the R\bRP\bPN\bN
+       statements used. The resulting _\bv_\bn_\ba_\bm_\be will, depending on the functions
+       used, have a value and a time component.  When you use this _\bv_\bn_\ba_\bm_\be in
+       another R\bRP\bPN\bN expression, you are effectively inserting its value just as
+       if you had put a number at that place.  The variable can also be used
+       in the various graph and print elements.
 
        Example: "VDEF:avg=mydata,AVERAGE"
 
-       Note that currently only aggregation functions work in VDEF rpn expres-
-       sions.  Patches to change this are welcome.
+       Note that currently only aggregation functions work in VDEF rpn
+       expressions.  Patches to change this are welcome.
 
 C\bCD\bDE\bEF\bF
        C\bCD\bDE\bEF\bF:_\bv_\bn_\ba_\bm_\be=_\bR_\bP_\bN _\be_\bx_\bp_\br_\be_\bs_\bs_\bi_\bo_\bn
 
        This command creates a new set of data points (in memory only, not in
-       the R\bRR\bRD\bD file) out of one or more other data series. The R\bRP\bPN\bN instruc-
-       tions are used to evaluate a mathematical function on each data point.
-       The resulting _\bv_\bn_\ba_\bm_\be can then be used further on in the script, just as
-       if it were generated by a D\bDE\bEF\bF instruction.
+       the R\bRR\bRD\bD file) out of one or more other data series. The R\bRP\bPN\bN
+       instructions are used to evaluate a mathematical function on each data
+       point. The resulting _\bv_\bn_\ba_\bm_\be can then be used further on in the script,
+       just as if it were generated by a D\bDE\bEF\bF instruction.
 
        Example: "CDEF:mydatabits=mydata,8,*"
 
@@ -93,18 +91,17 @@ A\bAb\bbo\bou\but\bt C\bCD\bDE\bEF\bF v\bve\ber\brs\bsu\bus\bs V\bVD\bDE\bEF\bF
        At some point in processing, R\bRR\bRD\bDt\bto\boo\bol\bl has gathered an array of rates
        ready to display.
 
-       C\bCD\bDE\bEF\bF works on such an array.  For example, _\bC_\bD_\bE_\bF_\b:_\bn_\be_\bw_\b=_\bd_\bs_\b0_\b,_\b8_\b,_\b* would mul-
-       tiply each of the array members by eight (probably transforming bytes
-       into bits). The result is an array containing the new values.
+       C\bCD\bDE\bEF\bF works on such an array.  For example, _\bC_\bD_\bE_\bF_\b:_\bn_\be_\bw_\b=_\bd_\bs_\b0_\b,_\b8_\b,_\b* would
+       multiply each of the array members by eight (probably transforming
+       bytes into bits). The result is an array containing the new values.
 
        V\bVD\bDE\bEF\bF also works on such an array but in a different way.  For example,
        _\bV_\bD_\bE_\bF_\b:_\bm_\ba_\bx_\b=_\bd_\bs_\b0_\b,_\bM_\bA_\bX_\bI_\bM_\bU_\bM would scan each of the array members and store the
        maximum value.
 
-       W\bWh\bhe\ben\bn d\bdo\bo y\byo\bou\bu u\bus\bse\be V\bVD\bDE\bEF\bF v\bve\ber\brs\bsu\bus\bs C\bCD\bDE\bEF\bF?\b?
-
-       Use C\bCD\bDE\bEF\bF to transform your data prior to graphing.  In the above exam-
-       ple, we'd use a C\bCD\bDE\bEF\bF to transform bytes to bits before graphing the
+   W\bWh\bhe\ben\bn d\bdo\bo y\byo\bou\bu u\bus\bse\be V\bVD\bDE\bEF\bF v\bve\ber\brs\bsu\bus\bs C\bCD\bDE\bEF\bF?\b?
+       Use C\bCD\bDE\bEF\bF to transform your data prior to graphing.  In the above
+       example, we'd use a C\bCD\bDE\bEF\bF to transform bytes to bits before graphing the
        bits.
 
        You use a V\bVD\bDE\bEF\bF if you want _\bm_\ba_\bx_\b(_\b1_\b,_\b5_\b,_\b3_\b,_\b2_\b,_\b4_\b) to return five which would be
@@ -131,4 +128,4 @@ A\bAU\bUT\bTH\bHO\bOR\bR
 
 
 
-1.3.99909060808                   2009-04-29                  RRDGRAPH_DATA(1)
+1.3.999                           2009-06-01                  RRDGRAPH_DATA(1)
index 6dc2871f98496ce7e9719eb1cfd4a7cf177a458b..2adcb2ddd17cf4f10288d4df1a3522abbe574bc9 100644 (file)
@@ -1,15 +1,7 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.08)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
 .de Sp \" Vertical space (when we can't use .PP)
 .if t .sp .5v
 .if n .sp
 ..
 .\" Set up some character translations and predefined strings.  \*(-- will
 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
 .ie n \{\
 .    ds -- \(*W-
 .    ds R" ''
 'br\}
 .\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
 .\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
 .\" entries marked with X<> in POD.  Of course, you'll have to process the
 .\" output yourself in some meaningful fashion.
-.if \nF \{\
+.ie \nF \{\
 .    de IX
 .    tm Index:\\$1\t\\n%\t"\\$2"
 ..
 .    nr % 0
 .    rr F
 .\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
+.el \{\
+.    de IX
+..
+.\}
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
 .\" ========================================================================
 .\"
 .IX Title "RRDGRAPH_EXAMPLES 1"
-.TH RRDGRAPH_EXAMPLES 1 "2009-02-21" "1.3.99909060808" "rrdtool"
+.TH RRDGRAPH_EXAMPLES 1 "2009-05-10" "1.3.999" "rrdtool"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
 .SH "NAME"
 rrdgraph_examples \- Examples for rrdtool graph
 .SH "SYNOPSIS"
@@ -144,7 +143,7 @@ by using detailed examples. They are not always cut-and-paste
 ready because comments are intermixed with the examples.
 .SH "EXAMPLES"
 .IX Header "EXAMPLES"
-.Sh "Data with multiple resolutions"
+.SS "Data with multiple resolutions"
 .IX Subsection "Data with multiple resolutions"
 .Vb 7
 \&    \-\-end now \-\-start end\-120000s \-\-width 400
@@ -155,7 +154,7 @@ ready because comments are intermixed with the examples.
 \&    LINE1:ds0b#00CCFF:"resolution 1800 seconds per interval\el"
 \&    LINE1:ds0c#FF00FF:"resolution 7200 seconds per interval\el"
 .Ve
-.Sh "Nicely formatted legend section"
+.SS "Nicely formatted legend section"
 .IX Subsection "Nicely formatted legend section"
 .Vb 10
 \&    DEF:ds0=/home/rrdtool/data/router1.rrd:ds0:AVERAGE
@@ -189,9 +188,7 @@ Note: the column titles have to be as wide as the columns
 \&    COMMENT:"Maximum    "
 \&    COMMENT:"Average    "
 \&    COMMENT:"Minimum    "
-.Ve
-.PP
-.Vb 11
+\&
 \&    COMMENT:"95th percentile\el"
 \&    AREA:ds0bits#00C000:"Inbound "
 \&    GPRINT:ds0max:"%6.2lf %Sbps"
@@ -204,7 +201,7 @@ Note: the column titles have to be as wide as the columns
 \&    GPRINT:ds1min:"%6.2lf %Sbps"
 \&    GPRINT:ds1pct:"%6.2lf %Sbps\el"
 .Ve
-.Sh "Offsetting a line on the y\-axis"
+.SS "Offsetting a line on the y\-axis"
 .IX Subsection "Offsetting a line on the y-axis"
 Depending on your needs you can do this in two ways:
 .IP "\(bu" 4
@@ -238,7 +235,7 @@ Note: the second line gets stacked on top of the first one
 .Vb 1
 \&    LINE1:data#FF0000:"Data with offset":STACK
 .Ve
-.Sh "Drawing dashed lines"
+.SS "Drawing dashed lines"
 .IX Subsection "Drawing dashed lines"
 Also works for \s-1HRULE\s0 and \s-1VRULE\s0
 .IP "\(bu" 4
@@ -247,7 +244,7 @@ default style: \- \- \- \- \-
 .IP "\(bu" 4
 more fancy style with offset: \- \-  \-\-\- \-  \-\-\- \-
     LINE1:data#FF0000:\*(L"another dashed line\*(R":dashes=15,5,5,10:dash\-offset=10
-.Sh "Time ranges"
+.SS "Time ranges"
 .IX Subsection "Time ranges"
 .Vb 6
 \&    Last four weeks: \-\-start end\-4w \-\-end 00:00
@@ -257,7 +254,7 @@ more fancy style with offset: \- \-  \-\-\- \-  \-\-\- \-
 \&    Last 24 hours:   <nothing at all>
 \&    Yesterday:       \-\-end 00:00
 .Ve
-.Sh "Viewing the current and previous week together"
+.SS "Viewing the current and previous week together"
 .IX Subsection "Viewing the current and previous week together"
 .Vb 3
 \&    \-\-end now \-\-start end\-1w
@@ -273,13 +270,13 @@ Shift the data forward by one week (604800 seconds)
 \&    AREA:lastweek#0000FF:Last\e week
 \&    LINE1:thisweek#FF0000:This\e week
 .Ve
-.Sh "Aberrant Behaviour Detection"
+.SS "Aberrant Behaviour Detection"
 .IX Subsection "Aberrant Behaviour Detection"
 If the specialized function \fBRRAs\fR exist for aberrant behavior detection, they
 can be used to generate the graph of a time series with confidence bands and
 failures.
 .PP
-.Vb 14
+.Vb 10
 \&   rrdtool graph example.png \e
 \&          DEF:obs=monitor.rrd:ifOutOctets:AVERAGE \e
 \&          DEF:pred=monitor.rrd:ifOutOctets:HWPREDICT \e
index b7f44134f1d0094bdbac7a5508d8fd6455bdd062..5dbf576693c410424051d5c6d0a8d81a188f2ee8 100644 (file)
@@ -1,14 +1,18 @@
+<?xml version="1.0" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>rrdgraph_examples</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <link rev="made" href="mailto:root@localhost" />
 </head>
 
 <body style="background-color: white">
 
-<p><a name="__index__"></a></p>
+
 <!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
 <!--
 
 <ul>
@@ -21,7 +25,7 @@
 
                <li><a href="#data_with_multiple_resolutions">Data with multiple resolutions</a></li>
                <li><a href="#nicely_formatted_legend_section">Nicely formatted legend section</a></li>
-               <li><a href="#offsetting_a_line_on_the_yaxis">Offsetting a line on the y-axis</a></li>
+               <li><a href="#offsetting_a_line_on_the_y_axis">Offsetting a line on the y-axis</a></li>
                <li><a href="#drawing_dashed_lines">Drawing dashed lines</a></li>
                <li><a href="#time_ranges">Time ranges</a></li>
                <li><a href="#viewing_the_current_and_previous_week_together">Viewing the current and previous week together</a></li>
        <li><a href="#see_also">SEE ALSO</a></li>
        <li><a href="#author">AUTHOR</a></li>
 </ul>
+
 -->
+
+
+</div>
 <!-- INDEX END -->
 
 <p>
@@ -111,20 +119,20 @@ ready because comments are intermixed with the examples.</p>
     GPRINT:ds1pct:&quot;%6.2lf %Sbps\l&quot;</pre>
 <p>
 </p>
-<h2><a name="offsetting_a_line_on_the_yaxis">Offsetting a line on the y-axis</a></h2>
+<h2><a name="offsetting_a_line_on_the_y_axis">Offsetting a line on the y-axis</a></h2>
 <p>Depending on your needs you can do this in two ways:</p>
 <ul>
-<li></li>
-Offset the data, then graph this
+<li>
+<p>Offset the data, then graph this</p>
 <pre>
     DEF:mydata=my.rrd:ds:AVERAGE</pre>
-<p>Note: this will also influence any other command that uses ``data''</p>
+<p>Note: this will also influence any other command that uses &quot;data&quot;</p>
 <pre>
     CDEF:data=mydata,100,+
     LINE1:data#FF0000:&quot;Data with offset&quot;</pre>
-<p></p>
-<li></li>
-Graph the original data, with an offset
+</li>
+<li>
+<p>Graph the original data, with an offset</p>
 <pre>
     DEF:mydata=my.rrd:ds:AVERAGE</pre>
 <p>Note: no color in the first line so it is not visible</p>
@@ -133,20 +141,22 @@ Graph the original data, with an offset
 <p>Note: the second line gets stacked on top of the first one</p>
 <pre>
     LINE1:data#FF0000:&quot;Data with offset&quot;:STACK</pre>
-<p></p></ul>
+</li>
+</ul>
 <p>
 </p>
 <h2><a name="drawing_dashed_lines">Drawing dashed lines</a></h2>
 <p>Also works for HRULE and VRULE</p>
 <ul>
-<li></li>
-default style: - - - - -
-    LINE1:data#FF0000:``dashed line'':dashes
-<p></p>
-<li></li>
-more fancy style with offset: - -  --- -  --- -
-    LINE1:data#FF0000:``another dashed line'':dashes=15,5,5,10:dash-offset=10
-<p></p></ul>
+<li>
+<p>default style: - - - - -
+    LINE1:data#FF0000:&quot;dashed line&quot;:dashes</p>
+</li>
+<li>
+<p>more fancy style with offset: - -  --- -  --- -
+    LINE1:data#FF0000:&quot;another dashed line&quot;:dashes=15,5,5,10:dash-offset=10</p>
+</li>
+</ul>
 <p>
 </p>
 <h2><a name="time_ranges">Time ranges</a></h2>
index ff3567dc4eedc6c0f06467a65c41b6588d1073c5..fa523bdfb1ecb6002a4ef8d0fb44f1cb94c68c37 100644 (file)
@@ -12,12 +12,11 @@ S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
 
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        For your convenience some of the commands are explained here by using
-       detailed examples. They are not always cut-and-paste ready because com-
-       ments are intermixed with the examples.
+       detailed examples. They are not always cut-and-paste ready because
+       comments are intermixed with the examples.
 
 E\bEX\bXA\bAM\bMP\bPL\bLE\bES\bS
-       D\bDa\bat\bta\ba w\bwi\bit\bth\bh m\bmu\bul\blt\bti\bip\bpl\ble\be r\bre\bes\bso\bol\blu\but\bti\bio\bon\bns\bs
-
+   D\bDa\bat\bta\ba w\bwi\bit\bth\bh m\bmu\bul\blt\bti\bip\bpl\ble\be r\bre\bes\bso\bol\blu\but\bti\bio\bon\bns\bs
            --end now --start end-120000s --width 400
            DEF:ds0a=/home/rrdtool/data/router1.rrd:ds0:AVERAGE
            DEF:ds0b=/home/rrdtool/data/router1.rrd:ds0:AVERAGE:step=1800
@@ -26,8 +25,7 @@ E\bEX\bXA\bAM\bMP\bPL\bLE\bES\bS
            LINE1:ds0b#00CCFF:"resolution 1800 seconds per interval\l"
            LINE1:ds0c#FF00FF:"resolution 7200 seconds per interval\l"
 
-       N\bNi\bic\bce\bel\bly\by f\bfo\bor\brm\bma\bat\btt\bte\bed\bd l\ble\beg\bge\ben\bnd\bd s\bse\bec\bct\bti\bio\bon\bn
-
+   N\bNi\bic\bce\bel\bly\by f\bfo\bor\brm\bma\bat\btt\bte\bed\bd l\ble\beg\bge\ben\bnd\bd s\bse\bec\bct\bti\bio\bon\bn
            DEF:ds0=/home/rrdtool/data/router1.rrd:ds0:AVERAGE
            DEF:ds1=/home/rrdtool/data/router1.rrd:ds1:AVERAGE
            VDEF:ds0max=ds0,MAXIMUM
@@ -66,11 +64,10 @@ E\bEX\bXA\bAM\bMP\bPL\bLE\bES\bS
            GPRINT:ds1min:"%6.2lf %Sbps"
            GPRINT:ds1pct:"%6.2lf %Sbps\l"
 
-       O\bOf\bff\bfs\bse\bet\btt\bti\bin\bng\bg a\ba l\bli\bin\bne\be o\bon\bn t\bth\bhe\be y\by-\b-a\bax\bxi\bis\bs
-
+   O\bOf\bff\bfs\bse\bet\btt\bti\bin\bng\bg a\ba l\bli\bin\bne\be o\bon\bn t\bth\bhe\be y\by-\b-a\bax\bxi\bis\bs
        Depending on your needs you can do this in two ways:
 
-       Â·   Offset the data, then graph this
+       Ã‚·   Offset the data, then graph this
 
                DEF:mydata=my.rrd:ds:AVERAGE
 
@@ -79,7 +76,7 @@ E\bEX\bXA\bAM\bMP\bPL\bLE\bES\bS
                CDEF:data=mydata,100,+
                LINE1:data#FF0000:"Data with offset"
 
-       Â·   Graph the original data, with an offset
+       Ã‚·   Graph the original data, with an offset
 
                DEF:mydata=my.rrd:ds:AVERAGE
 
@@ -91,19 +88,17 @@ E\bEX\bXA\bAM\bMP\bPL\bLE\bES\bS
 
                LINE1:data#FF0000:"Data with offset":STACK
 
-       D\bDr\bra\baw\bwi\bin\bng\bg d\bda\bas\bsh\bhe\bed\bd l\bli\bin\bne\bes\bs
-
+   D\bDr\bra\baw\bwi\bin\bng\bg d\bda\bas\bsh\bhe\bed\bd l\bli\bin\bne\bes\bs
        Also works for HRULE and VRULE
 
-       Â·   default style: - - - - -
+       Ã‚·   default style: - - - - -
                LINE1:data#FF0000:"dashed line":dashes
 
-       Â·   more fancy style with offset: - -  --- -  --- -
+       Ã‚·   more fancy style with offset: - -  --- -  --- -
                LINE1:data#FF0000:"another dashed
            line":dashes=15,5,5,10:dash-offset=10
 
-       T\bTi\bim\bme\be r\bra\ban\bng\bge\bes\bs
-
+   T\bTi\bim\bme\be r\bra\ban\bng\bge\bes\bs
            Last four weeks: --start end-4w --end 00:00
            January 2001:    --start 20010101 --end start+31d
            January 2001:    --start 20010101 --end 20010201
@@ -111,8 +106,7 @@ E\bEX\bXA\bAM\bMP\bPL\bLE\bES\bS
            Last 24 hours:   <nothing at all>
            Yesterday:       --end 00:00
 
-       V\bVi\bie\bew\bwi\bin\bng\bg t\bth\bhe\be c\bcu\bur\brr\bre\ben\bnt\bt a\ban\bnd\bd p\bpr\bre\bev\bvi\bio\bou\bus\bs w\bwe\bee\bek\bk t\bto\bog\bge\bet\bth\bhe\ber\br
-
+   V\bVi\bie\bew\bwi\bin\bng\bg t\bth\bhe\be c\bcu\bur\brr\bre\ben\bnt\bt a\ban\bnd\bd p\bpr\bre\bev\bvi\bio\bou\bus\bs w\bwe\bee\bek\bk t\bto\bog\bge\bet\bth\bhe\ber\br
            --end now --start end-1w
            DEF:thisweek=router.rrd:ds0:AVERAGE
            DEF:lastweek=router.rrd:ds0:AVERAGE:end=now-1w:start=end-1w
@@ -124,8 +118,7 @@ E\bEX\bXA\bAM\bMP\bPL\bLE\bES\bS
            AREA:lastweek#0000FF:Last\ week
            LINE1:thisweek#FF0000:This\ week
 
-       A\bAb\bbe\ber\brr\bra\ban\bnt\bt B\bBe\beh\bha\bav\bvi\bio\bou\bur\br D\bDe\bet\bte\bec\bct\bti\bio\bon\bn
-
+   A\bAb\bbe\ber\brr\bra\ban\bnt\bt B\bBe\beh\bha\bav\bvi\bio\bou\bur\br D\bDe\bet\bte\bec\bct\bti\bio\bon\bn
        If the specialized function R\bRR\bRA\bAs\bs exist for aberrant behavior detection,
        they can be used to generate the graph of a time series with confidence
        bands and failures.
@@ -146,17 +139,17 @@ E\bEX\bXA\bAM\bMP\bPL\bLE\bES\bS
                  LINE1:scaledlower#ff0000:"Lower Confidence Bound: Average bits out"
 
        This example generates a graph of the data series in blue (LINE2 with
-       the scaledobs virtual data source), confidence bounds in red (scaledup-
-       per and scaledlower virtual data sources), and potential failures (i.e.
-       potential aberrant aberrant behavior) marked by vertical yellow lines
-       (the fail data source).
+       the scaledobs virtual data source), confidence bounds in red
+       (scaledupper and scaledlower virtual data sources), and potential
+       failures (i.e. potential aberrant aberrant behavior) marked by vertical
+       yellow lines (the fail data source).
 
        The raw data comes from an AVERAGE R\bRR\bRA\bA, the finest resolution of the
        observed time series (one consolidated data point per primary data
        point). The predicted (or smoothed) values are stored in the HWPREDICT
        R\bRR\bRA\bA. The predicted deviations (think standard deviation) values are
-       stored in the DEVPREDICT R\bRR\bRA\bA. Finally, the FAILURES R\bRR\bRA\bA contains indi-
-       cators, with 1 denoting a potential failure.
+       stored in the DEVPREDICT R\bRR\bRA\bA. Finally, the FAILURES R\bRR\bRA\bA contains
+       indicators, with 1 denoting a potential failure.
 
        All of the data is rescaled to bits (instead of Octets) by multiplying
        by 8.  The confidence bounds are computed by an offset of 2 deviations
@@ -172,14 +165,15 @@ E\bEX\bXA\bAM\bMP\bPL\bLE\bES\bS
 
        _\bA _\bn_\bo_\bt_\be _\bo_\bn _\bd_\ba_\bt_\ba _\br_\be_\bd_\bu_\bc_\bt_\bi_\bo_\bn_\b:
 
-       The r\brr\brd\bdt\bto\boo\bol\bl _\bg_\br_\ba_\bp_\bh command is designed to plot data at a specified tem-
-       poral resolution, regardless of the actually resolution of the data in
-       the RRD file.  This can present a problem for the specialized consoli-
-       dation functions which maintain a one-to-one mapping between primary
-       data points and consolidated data points. If a graph insists on viewing
-       the contents of these R\bRR\bRA\bAs\bs on a coarser temporal scale, the _\bg_\br_\ba_\bp_\bh com-
-       mand tries to do something intelligent, but the confidence bands and
-       failures no longer have the same meaning and may be misleading.
+       The r\brr\brd\bdt\bto\boo\bol\bl _\bg_\br_\ba_\bp_\bh command is designed to plot data at a specified
+       temporal resolution, regardless of the actually resolution of the data
+       in the RRD file.  This can present a problem for the specialized
+       consolidation functions which maintain a one-to-one mapping between
+       primary data points and consolidated data points. If a graph insists on
+       viewing the contents of these R\bRR\bRA\bAs\bs on a coarser temporal scale, the
+       _\bg_\br_\ba_\bp_\bh command tries to do something intelligent, but the confidence
+       bands and failures no longer have the same meaning and may be
+       misleading.
 
 S\bSE\bEE\bE A\bAL\bLS\bSO\bO
        rrdgraph gives an overview of how r\brr\brd\bdt\bto\boo\bol\bl g\bgr\bra\bap\bph\bh works.  rrdgraph_data
@@ -195,4 +189,4 @@ A\bAU\bUT\bTH\bHO\bOR\bR
 
 
 
-1.3.99909060808                   2009-02-21              RRDGRAPH_EXAMPLES(1)
+1.3.999                           2009-05-10              RRDGRAPH_EXAMPLES(1)
index 6222d6c826f19aa6095004f0c98bcd32f0a12bc7..fddaa85c2dd5f1dda0fe6fd949695a65e07e3ab8 100644 (file)
@@ -1,15 +1,7 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.08)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
 .de Sp \" Vertical space (when we can't use .PP)
 .if t .sp .5v
 .if n .sp
 ..
 .\" Set up some character translations and predefined strings.  \*(-- will
 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
 .ie n \{\
 .    ds -- \(*W-
 .    ds R" ''
 'br\}
 .\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
 .\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
 .\" entries marked with X<> in POD.  Of course, you'll have to process the
 .\" output yourself in some meaningful fashion.
-.if \nF \{\
+.ie \nF \{\
 .    de IX
 .    tm Index:\\$1\t\\n%\t"\\$2"
 ..
 .    nr % 0
 .    rr F
 .\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
+.el \{\
+.    de IX
+..
+.\}
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
 .\" ========================================================================
 .\"
 .IX Title "RRDGRAPH_GRAPH 1"
-.TH RRDGRAPH_GRAPH 1 "2009-02-21" "1.3.99909060808" "rrdtool"
+.TH RRDGRAPH_GRAPH 1 "2009-05-10" "1.3.999" "rrdtool"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
 .SH "NAME"
 rrdgraph_graph \- rrdtool graph command reference
 .SH "SYNOPSIS"
@@ -164,7 +163,7 @@ rrdgraph_graph \- rrdtool graph command reference
 These instructions allow you to generate your image or report.
 If you don't use any graph elements, no graph is generated.
 Similarly, no report is generated if you don't use print options.
-.Sh "\s-1PRINT\s0"
+.SS "\s-1PRINT\s0"
 .IX Subsection "PRINT"
 \fI\f(BI\s-1PRINT:\s0\fI\fIvname\fI\f(BI:\fI\fIformat\fI[\f(BI:strftime\fI]\fR
 .IX Subsection "PRINT:vname:format[:strftime]"
@@ -189,97 +188,122 @@ width and decimal precision.
 .IX Item "%#.#lf"
 prints numbers like 12345.6789, with optional field width
 and precision.
-.IP "\fB%s\fR" 4
+.ie n .IP "\fB\fB%s\fB\fR" 4
+.el .IP "\fB\f(CB%s\fB\fR" 4
 .IX Item "%s"
-place this after \fB%le\fR, \fB%lf\fR or \fB%lg\fR. This will be replaced by the
+place this after \fB\f(CB%le\fB\fR, \fB\f(CB%lf\fB\fR or \fB\f(CB%lg\fB\fR. This will be replaced by the
 appropriate \s-1SI\s0 magnitude unit and the value will be scaled
 accordingly (123456 \-> 123.456 k).
-.IP "\fB%S\fR" 4
+.ie n .IP "\fB\fB%S\fB\fR" 4
+.el .IP "\fB\f(CB%S\fB\fR" 4
 .IX Item "%S"
-is similar to \fB%s\fR. It does, however, use a previously defined
+is similar to \fB\f(CB%s\fB\fR. It does, however, use a previously defined
 magnitude unit. If there is no such unit yet, it tries to define
-one (just like \fB%s\fR) unless the value is zero, in which case the magnitude
-unit stays undefined. Thus, formatter strings using \fB%S\fR and no \fB%s\fR
+one (just like \fB\f(CB%s\fB\fR) unless the value is zero, in which case the magnitude
+unit stays undefined. Thus, formatter strings using \fB\f(CB%S\fB\fR and no \fB\f(CB%s\fB\fR
 will all use the same magnitude unit except for zero values.
 .PP
 If you \s-1PRINT\s0 a \s-1VDEF\s0 value, you can also print the time associated with it by appending the string
 \&\fB:strftime\fR to the format. Note that rrdtool uses the strftime function of your OSs C library. This means that
 the conversion specifier may vary. Check the manual page if you are uncertain. The following is a list of
-conversion specifiers usually supported across the board. 
-.IP "\fB%a\fR" 4
+conversion specifiers usually supported across the board.
+.ie n .IP "\fB\fB%a\fB\fR" 4
+.el .IP "\fB\f(CB%a\fB\fR" 4
 .IX Item "%a"
 The abbreviated weekday name according to the current locale.
-.IP "\fB%A\fR" 4
+.ie n .IP "\fB\fB%A\fB\fR" 4
+.el .IP "\fB\f(CB%A\fB\fR" 4
 .IX Item "%A"
 The full weekday name according to the current locale.
-.IP "\fB%b\fR" 4
+.ie n .IP "\fB\fB%b\fB\fR" 4
+.el .IP "\fB\f(CB%b\fB\fR" 4
 .IX Item "%b"
 The abbreviated month name according to the current locale.
-.IP "\fB%B\fR" 4
+.ie n .IP "\fB\fB%B\fB\fR" 4
+.el .IP "\fB\f(CB%B\fB\fR" 4
 .IX Item "%B"
 The full month name according to the current locale.
-.IP "\fB%c\fR" 4
+.ie n .IP "\fB\fB%c\fB\fR" 4
+.el .IP "\fB\f(CB%c\fB\fR" 4
 .IX Item "%c"
 The preferred date and time representation for the current locale.
-.IP "\fB%d\fR" 4
+.ie n .IP "\fB\fB%d\fB\fR" 4
+.el .IP "\fB\f(CB%d\fB\fR" 4
 .IX Item "%d"
 The day of the month as a decimal number (range 01 to 31).
-.IP "\fB%H\fR" 4
+.ie n .IP "\fB\fB%H\fB\fR" 4
+.el .IP "\fB\f(CB%H\fB\fR" 4
 .IX Item "%H"
 The hour as a decimal number using a 24\-hour clock (range 00 to 23).
-.IP "\fB%I\fR" 4
+.ie n .IP "\fB\fB%I\fB\fR" 4
+.el .IP "\fB\f(CB%I\fB\fR" 4
 .IX Item "%I"
 The hour as a decimal number using a 12\-hour clock (range 01 to 12).
-.IP "\fB%j\fR" 4
+.ie n .IP "\fB\fB%j\fB\fR" 4
+.el .IP "\fB\f(CB%j\fB\fR" 4
 .IX Item "%j"
 The day of the year as a decimal number (range 001 to 366).
-.IP "\fB%m\fR" 4
+.ie n .IP "\fB\fB%m\fB\fR" 4
+.el .IP "\fB\f(CB%m\fB\fR" 4
 .IX Item "%m"
 The month as a decimal number (range 01 to 12).
-.IP "\fB%M\fR" 4
+.ie n .IP "\fB\fB%M\fB\fR" 4
+.el .IP "\fB\f(CB%M\fB\fR" 4
 .IX Item "%M"
 The minute as a decimal number (range 00 to 59).
-.IP "\fB%p\fR" 4
+.ie n .IP "\fB\fB%p\fB\fR" 4
+.el .IP "\fB\f(CB%p\fB\fR" 4
 .IX Item "%p"
 Either `\s-1AM\s0' or `\s-1PM\s0' according to the given time value, or the corresponding
 strings for the current locale.  Noon is treated as `pm' and midnight as
 `am'.  Note that in many locales and `pm' notation is unsupported and in
 such cases \f(CW%p\fR will return an empty string.
-.IP "\fB%s\fR" 4
+.ie n .IP "\fB\fB%s\fB\fR" 4
+.el .IP "\fB\f(CB%s\fB\fR" 4
 .IX Item "%s"
 The second as a decimal number (range 00 to 61).
-.IP "\fB%S\fR" 4
+.ie n .IP "\fB\fB%S\fB\fR" 4
+.el .IP "\fB\f(CB%S\fB\fR" 4
 .IX Item "%S"
 The seconds since the epoch (1.1.1970) (libc dependant non standard!)
-.IP "\fB%U\fR" 4
+.ie n .IP "\fB\fB%U\fB\fR" 4
+.el .IP "\fB\f(CB%U\fB\fR" 4
 .IX Item "%U"
 The  week  number  of  the current year as a decimal number, range 00 to 53, starting with the
 first Sunday as the first day of week 01. See also \f(CW%V\fR and \f(CW%W\fR.
-.IP "\fB%V\fR" 4
+.ie n .IP "\fB\fB%V\fB\fR" 4
+.el .IP "\fB\f(CB%V\fB\fR" 4
 .IX Item "%V"
 The \s-1ISO\s0 8601:1988 week number of the current year as a decimal number, range 01 to  53,  where
 week  1 is the first week that has at least 4 days in the current year, and with Monday as the
 first day of the week. See also \f(CW%U\fR and \f(CW%W\fR.
-.IP "\fB%w\fR" 4
+.ie n .IP "\fB\fB%w\fB\fR" 4
+.el .IP "\fB\f(CB%w\fB\fR" 4
 .IX Item "%w"
 The day of the week as a decimal, range 0 to 6, Sunday being 0.  See also \f(CW%u\fR.
-.IP "\fB%W\fR" 4
+.ie n .IP "\fB\fB%W\fB\fR" 4
+.el .IP "\fB\f(CB%W\fB\fR" 4
 .IX Item "%W"
 The week number of the current year as a decimal number, range 00 to  53,  starting  with  the
 first Monday as the first day of week 01.
-.IP "\fB%x\fR" 4
+.ie n .IP "\fB\fB%x\fB\fR" 4
+.el .IP "\fB\f(CB%x\fB\fR" 4
 .IX Item "%x"
 The preferred date representation for the current locale without the time.
-.IP "\fB%X\fR" 4
+.ie n .IP "\fB\fB%X\fB\fR" 4
+.el .IP "\fB\f(CB%X\fB\fR" 4
 .IX Item "%X"
 The preferred time representation for the current locale without the date.
-.IP "\fB%y\fR" 4
+.ie n .IP "\fB\fB%y\fB\fR" 4
+.el .IP "\fB\f(CB%y\fB\fR" 4
 .IX Item "%y"
 The year as a decimal number without a century (range 00 to 99).
-.IP "\fB%Y\fR" 4
+.ie n .IP "\fB\fB%Y\fB\fR" 4
+.el .IP "\fB\f(CB%Y\fB\fR" 4
 .IX Item "%Y"
 The year as a decimal number including the century.
-.IP "\fB%Z\fR" 4
+.ie n .IP "\fB\fB%Z\fB\fR" 4
+.el .IP "\fB\f(CB%Z\fB\fR" 4
 .IX Item "%Z"
 The time zone or name or abbreviation.
 .IP "\fB%%\fR" 4
@@ -291,7 +315,7 @@ A literal `%' character.
 .PP
 \&\fIDeprecated. Use the new form of this command in new scripts.\fR
 The first form of this command is to be used with \fB\s-1CDEF\s0\fR \fIvname\fRs.
-.Sh "\s-1GRAPH\s0"
+.SS "\s-1GRAPH\s0"
 .IX Subsection "GRAPH"
 \fI\f(BI\s-1GPRINT\s0\fI\f(BI:\fI\fIvname\fI\f(BI:\fI\fIformat\fI\fR
 .IX Subsection "GPRINT:vname:format"
@@ -409,14 +433,14 @@ make sure never to stack upon the unknown value.  Use a \s-1CDEF\s0 instruction
 with \fB\s-1IF\s0\fR and \fB\s-1UN\s0\fR to do so.
 .SH "NOTES on legend arguments"
 .IX Header "NOTES on legend arguments"
-.Sh "Escaping the colon"
+.SS "Escaping the colon"
 .IX Subsection "Escaping the colon"
 A colon ':' in a \fIlegend\fR argument will mark the end of the
 legend. To enter a ':' as part of a legend, the colon must be escaped
 with a backslash '\e:'.  Beware that many environments process
 backslashes themselves, so it may be necessary to write two
 backslashes in order to one being passed onto rrd_graph.
-.Sh "String Formatting"
+.SS "String Formatting"
 .IX Subsection "String Formatting"
 The text printed below the actual graph can be formatted by appending special
 escape characters at the end of a text. When ever such a character occurs,
@@ -434,7 +458,7 @@ Normally there are two space characters inserted between every two items
 printed into the graph. The space following a string can be suppressed by
 putting a \fB\eg\fR at the end of the string. The \fB\eg\fR also ignores any space
 inside the string if it is at the very end of the string. This can be used
-in connection with \fB%s\fR to suppress empty unit strings.
+in connection with \fB\f(CB%s\fB\fR to suppress empty unit strings.
 .PP
 .Vb 1
 \& GPRINT:a:MAX:%lf%s\eg
@@ -451,7 +475,7 @@ element!
 Since RRDtool 1.3 is using Pango for rending text, you can use Pango markup.
 Pango uses the xml \fBspan\fR tags for inline formatting instructions.:
 .PP
-A simple example of a marked-up string might be: 
+A simple example of a marked-up string might be:
 .PP
 .Vb 1
 \& <span foreground="blue" size="x\-large">Blue text</span> is <i>cool</i>!
@@ -546,7 +570,7 @@ Makes font relatively smaller, equivalent to <span size=\*(L"smaller\*(R">
 Monospace font
 .IP "\fBu\fR" 4
 .IX Item "u"
-Underline 
+Underline
 .SH "SEE ALSO"
 .IX Header "SEE ALSO"
 rrdgraph gives an overview of how \fBrrdtool graph\fR works.
index 7b13e24239401f5281328011208044e662c66c5b..b0d7bef1f752772de00536c07ae7d1b605efc7c5 100644 (file)
@@ -1,14 +1,18 @@
+<?xml version="1.0" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>rrdgraph_graph</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <link rev="made" href="mailto:root@localhost" />
 </head>
 
 <body style="background-color: white">
 
-<p><a name="__index__"></a></p>
+
 <!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
 <!--
 
 <ul>
@@ -31,9 +35,9 @@
                        <li><a href="#gprint_vname_format"><strong>GPRINT</strong><strong>:</strong><em>vname</em><strong>:</strong><em>format</em></a></li>
                        <li><a href="#gprint_vname_cf_format"><strong>GPRINT</strong><strong>:</strong><em>vname</em><strong>:</strong><em>CF</em><strong>:</strong><em>format</em></a></li>
                        <li><a href="#comment_text"><strong>COMMENT</strong><strong>:</strong><em>text</em></a></li>
-                       <li><a href="#vrule_time_color__legend___dashes__on_s__off_s__on_s_off_s________dashoffset_offset__"><strong>VRULE</strong><strong>:</strong><em>time</em><strong>#</strong><em>color</em>[<strong>:</strong><em>legend</em>][<strong>:dashes</strong>[<strong>=</strong><em>on_s</em>[,<em>off_s</em>[,<em>on_s</em>,<em>off_s</em>]...]][<strong>:dash-offset=</strong><em>offset</em>]]</a></li>
-                       <li><a href="#hrule_value_color__legend___dashes__on_s__off_s__on_s_off_s________dashoffset_offset__"><strong>HRULE</strong><strong>:</strong><em>value</em><strong>#</strong><em>color</em>[<strong>:</strong><em>legend</em>][<strong>:dashes</strong>[<strong>=</strong><em>on_s</em>[,<em>off_s</em>[,<em>on_s</em>,<em>off_s</em>]...]][<strong>:dash-offset=</strong><em>offset</em>]]</a></li>
-                       <li><a href="#line_width__value__color____legend___stack____dashes__on_s__off_s__on_s_off_s________dashoffset_offset__"><strong>LINE</strong>[<em>width</em>]<strong>:</strong><em>value</em>[<strong>#</strong><em>color</em>][<strong>:</strong>[<em>legend</em>][<strong>:STACK</strong>]][<strong>:dashes</strong>[<strong>=</strong><em>on_s</em>[,<em>off_s</em>[,<em>on_s</em>,<em>off_s</em>]...]][<strong>:dash-offset=</strong><em>offset</em>]]</a></li>
+                       <li><a href="#vrule_time_color__legend___dashes__on_s__off_s__on_s_off_s________dash_offset_offset__"><strong>VRULE</strong><strong>:</strong><em>time</em><strong>#</strong><em>color</em>[<strong>:</strong><em>legend</em>][<strong>:dashes</strong>[<strong>=</strong><em>on_s</em>[,<em>off_s</em>[,<em>on_s</em>,<em>off_s</em>]...]][<strong>:dash-offset=</strong><em>offset</em>]]</a></li>
+                       <li><a href="#hrule_value_color__legend___dashes__on_s__off_s__on_s_off_s________dash_offset_offset__"><strong>HRULE</strong><strong>:</strong><em>value</em><strong>#</strong><em>color</em>[<strong>:</strong><em>legend</em>][<strong>:dashes</strong>[<strong>=</strong><em>on_s</em>[,<em>off_s</em>[,<em>on_s</em>,<em>off_s</em>]...]][<strong>:dash-offset=</strong><em>offset</em>]]</a></li>
+                       <li><a href="#line_width__value__color____legend___stack____dashes__on_s__off_s__on_s_off_s________dash_offset_offset__"><strong>LINE</strong>[<em>width</em>]<strong>:</strong><em>value</em>[<strong>#</strong><em>color</em>][<strong>:</strong>[<em>legend</em>][<strong>:STACK</strong>]][<strong>:dashes</strong>[<strong>=</strong><em>on_s</em>[,<em>off_s</em>[,<em>on_s</em>,<em>off_s</em>]...]][<strong>:dash-offset=</strong><em>offset</em>]]</a></li>
                        <li><a href="#area_value__color____legend___stack__"><strong>AREA</strong><strong>:</strong><em>value</em>[<strong>#</strong><em>color</em>][<strong>:</strong>[<em>legend</em>][<strong>:STACK</strong>]]</a></li>
                        <li><a href="#tick_vname_rrggbb_aa___fraction__legend__"><strong>TICK</strong><strong>:</strong><em>vname</em><strong>#</strong><em>rrggbb</em>[<em>aa</em>][<strong>:</strong><em>fraction</em>[<strong>:</strong><em>legend</em>]]</a></li>
                        <li><a href="#shift_vname_offset"><strong>SHIFT</strong><strong>:</strong><em>vname</em><strong>:</strong><em>offset</em></a></li>
        <li><a href="#see_also">SEE ALSO</a></li>
        <li><a href="#author">AUTHOR</a></li>
 </ul>
+
 -->
+
+
+</div>
 <!-- INDEX END -->
 
 <p>
@@ -99,200 +107,173 @@ The percent character introduces a formatter string. This string
 can be:</p>
 <p>For printing values:</p>
 <dl>
-<dt><strong><a name="item___"><strong>%%</strong></a></strong><br />
-</dt>
+<dt><strong><a name="__" class="item"><strong>%%</strong></a></strong></dt>
+
 <dd>
-just prints a literal '%' character
+<p>just prints a literal '%' character</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_____le"><strong>%#.#le</strong></a></strong><br />
-</dt>
+<dt><strong><a name="____le" class="item"><strong>%#.#le</strong></a></strong></dt>
+
 <dd>
-prints numbers like 1.2346e+04. The optional integers # denote field
-width and decimal precision.
+<p>prints numbers like 1.2346e+04. The optional integers # denote field
+width and decimal precision.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_____lf"><strong>%#.#lf</strong></a></strong><br />
-</dt>
+<dt><strong><a name="____lf" class="item"><strong>%#.#lf</strong></a></strong></dt>
+
 <dd>
-prints numbers like 12345.6789, with optional field width
-and precision.
+<p>prints numbers like 12345.6789, with optional field width
+and precision.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__s"><strong>%s</strong></a></strong><br />
-</dt>
+<dt><strong><a name="_s" class="item"><strong>%s</strong></a></strong></dt>
+
 <dd>
-place this after <strong>%le</strong>, <strong>%lf</strong> or <strong>%lg</strong>. This will be replaced by the
+<p>place this after <strong>%le</strong>, <strong>%lf</strong> or <strong>%lg</strong>. This will be replaced by the
 appropriate SI magnitude unit and the value will be scaled
-accordingly (123456 -&gt; 123.456 k).
+accordingly (123456 -&gt; 123.456 k).</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__s"><strong>%S</strong></a></strong><br />
-</dt>
+<dt><strong><a name="_s" class="item"><strong>%S</strong></a></strong></dt>
+
 <dd>
-is similar to <strong>%s</strong>. It does, however, use a previously defined
+<p>is similar to <strong>%s</strong>. It does, however, use a previously defined
 magnitude unit. If there is no such unit yet, it tries to define
 one (just like <strong>%s</strong>) unless the value is zero, in which case the magnitude
 unit stays undefined. Thus, formatter strings using <strong>%S</strong> and no <strong>%s</strong>
-will all use the same magnitude unit except for zero values.
+will all use the same magnitude unit except for zero values.</p>
 </dd>
-<p></p></dl>
+</dl>
 <p>If you PRINT a VDEF value, you can also print the time associated with it by appending the string
 <strong>:strftime</strong> to the format. Note that rrdtool uses the strftime function of your OSs C library. This means that
 the conversion specifier may vary. Check the manual page if you are uncertain. The following is a list of
 conversion specifiers usually supported across the board.</p>
 <dl>
-<dt><strong><a name="item__a"><strong>%a</strong></a></strong><br />
-</dt>
+<dt><strong><a name="_a" class="item"><strong>%a</strong></a></strong></dt>
+
 <dd>
-The abbreviated weekday name according to the current locale.
+<p>The abbreviated weekday name according to the current locale.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__a"><strong>%A</strong></a></strong><br />
-</dt>
+<dt><strong><a name="_a" class="item"><strong>%A</strong></a></strong></dt>
+
 <dd>
-The full weekday name according to the current locale.
+<p>The full weekday name according to the current locale.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__b"><strong>%b</strong></a></strong><br />
-</dt>
+<dt><strong><a name="_b" class="item"><strong>%b</strong></a></strong></dt>
+
 <dd>
-The abbreviated month name according to the current locale.
+<p>The abbreviated month name according to the current locale.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__b"><strong>%B</strong></a></strong><br />
-</dt>
+<dt><strong><a name="_b" class="item"><strong>%B</strong></a></strong></dt>
+
 <dd>
-The full month name according to the current locale.
+<p>The full month name according to the current locale.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__c"><strong>%c</strong></a></strong><br />
-</dt>
+<dt><strong><a name="_c" class="item"><strong>%c</strong></a></strong></dt>
+
 <dd>
-The preferred date and time representation for the current locale.
+<p>The preferred date and time representation for the current locale.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__d"><strong>%d</strong></a></strong><br />
-</dt>
+<dt><strong><a name="_d" class="item"><strong>%d</strong></a></strong></dt>
+
 <dd>
-The day of the month as a decimal number (range 01 to 31).
+<p>The day of the month as a decimal number (range 01 to 31).</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__h"><strong>%H</strong></a></strong><br />
-</dt>
+<dt><strong><a name="_h" class="item"><strong>%H</strong></a></strong></dt>
+
 <dd>
-The hour as a decimal number using a 24-hour clock (range 00 to 23).
+<p>The hour as a decimal number using a 24-hour clock (range 00 to 23).</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__i"><strong>%I</strong></a></strong><br />
-</dt>
+<dt><strong><a name="_i" class="item"><strong>%I</strong></a></strong></dt>
+
 <dd>
-The hour as a decimal number using a 12-hour clock (range 01 to 12).
+<p>The hour as a decimal number using a 12-hour clock (range 01 to 12).</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__j"><strong>%j</strong></a></strong><br />
-</dt>
+<dt><strong><a name="_j" class="item"><strong>%j</strong></a></strong></dt>
+
 <dd>
-The day of the year as a decimal number (range 001 to 366).
+<p>The day of the year as a decimal number (range 001 to 366).</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__m"><strong>%m</strong></a></strong><br />
-</dt>
+<dt><strong><a name="_m" class="item"><strong>%m</strong></a></strong></dt>
+
 <dd>
-The month as a decimal number (range 01 to 12).
+<p>The month as a decimal number (range 01 to 12).</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__m"><strong>%M</strong></a></strong><br />
-</dt>
+<dt><strong><a name="_m" class="item"><strong>%M</strong></a></strong></dt>
+
 <dd>
-The minute as a decimal number (range 00 to 59).
+<p>The minute as a decimal number (range 00 to 59).</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__p"><strong>%p</strong></a></strong><br />
-</dt>
+<dt><strong><a name="_p" class="item"><strong>%p</strong></a></strong></dt>
+
 <dd>
-Either `AM' or `PM' according to the given time value, or the corresponding
+<p>Either `AM' or `PM' according to the given time value, or the corresponding
 strings for the current locale.  Noon is treated as `pm' and midnight as
 `am'.  Note that in many locales and `pm' notation is unsupported and in
-such cases %p will return an empty string.
+such cases %p will return an empty string.</p>
 </dd>
-<p></p>
-<dt><strong><strong>%s</strong></strong><br />
-</dt>
+<dt><strong><strong>%s</strong></strong></dt>
+
 <dd>
-The second as a decimal number (range 00 to 61).
+<p>The second as a decimal number (range 00 to 61).</p>
 </dd>
-<p></p>
-<dt><strong><strong>%S</strong></strong><br />
-</dt>
+<dt><strong><strong>%S</strong></strong></dt>
+
 <dd>
-The seconds since the epoch (1.1.1970) (libc dependant non standard!)
+<p>The seconds since the epoch (1.1.1970) (libc dependant non standard!)</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__u"><strong>%U</strong></a></strong><br />
-</dt>
+<dt><strong><a name="_u" class="item"><strong>%U</strong></a></strong></dt>
+
 <dd>
-The  week  number  of  the current year as a decimal number, range 00 to 53, starting with the
-first Sunday as the first day of week 01. See also %V and %W.
+<p>The  week  number  of  the current year as a decimal number, range 00 to 53, starting with the
+first Sunday as the first day of week 01. See also %V and %W.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__v"><strong>%V</strong></a></strong><br />
-</dt>
+<dt><strong><a name="_v" class="item"><strong>%V</strong></a></strong></dt>
+
 <dd>
-The ISO 8601:1988 week number of the current year as a decimal number, range 01 to  53,  where
+<p>The ISO 8601:1988 week number of the current year as a decimal number, range 01 to  53,  where
 week  1 is the first week that has at least 4 days in the current year, and with Monday as the
-first day of the week. See also %U and %W.
+first day of the week. See also %U and %W.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__w"><strong>%w</strong></a></strong><br />
-</dt>
+<dt><strong><a name="_w" class="item"><strong>%w</strong></a></strong></dt>
+
 <dd>
-The day of the week as a decimal, range 0 to 6, Sunday being 0.  See also %u.
+<p>The day of the week as a decimal, range 0 to 6, Sunday being 0.  See also %u.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__w"><strong>%W</strong></a></strong><br />
-</dt>
+<dt><strong><a name="_w" class="item"><strong>%W</strong></a></strong></dt>
+
 <dd>
-The week number of the current year as a decimal number, range 00 to  53,  starting  with  the
-first Monday as the first day of week 01.
+<p>The week number of the current year as a decimal number, range 00 to  53,  starting  with  the
+first Monday as the first day of week 01.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__x"><strong>%x</strong></a></strong><br />
-</dt>
+<dt><strong><a name="_x" class="item"><strong>%x</strong></a></strong></dt>
+
 <dd>
-The preferred date representation for the current locale without the time.
+<p>The preferred date representation for the current locale without the time.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__x"><strong>%X</strong></a></strong><br />
-</dt>
+<dt><strong><a name="_x" class="item"><strong>%X</strong></a></strong></dt>
+
 <dd>
-The preferred time representation for the current locale without the date.
+<p>The preferred time representation for the current locale without the date.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__y"><strong>%y</strong></a></strong><br />
-</dt>
+<dt><strong><a name="_y" class="item"><strong>%y</strong></a></strong></dt>
+
 <dd>
-The year as a decimal number without a century (range 00 to 99).
+<p>The year as a decimal number without a century (range 00 to 99).</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__y"><strong>%Y</strong></a></strong><br />
-</dt>
+<dt><strong><a name="_y" class="item"><strong>%Y</strong></a></strong></dt>
+
 <dd>
-The year as a decimal number including the century.
+<p>The year as a decimal number including the century.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__z"><strong>%Z</strong></a></strong><br />
-</dt>
+<dt><strong><a name="_z" class="item"><strong>%Z</strong></a></strong></dt>
+
 <dd>
-The time zone or name or abbreviation.
+<p>The time zone or name or abbreviation.</p>
 </dd>
-<p></p>
-<dt><strong><strong>%%</strong></strong><br />
-</dt>
+<dt><strong><strong>%%</strong></strong></dt>
+
 <dd>
-A literal `%' character.
+<p>A literal `%' character.</p>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <h3><a name="print_vname_cf_format"><strong>PRINT:</strong><em>vname</em><strong>:</strong><em>CF</em><strong>:</strong><em>format</em></a></h3>
@@ -318,7 +299,7 @@ RRDtool 1.2 you have to escape colons in COMMENT text in the same way you
 have to escape them in <strong>*PRINT</strong> commands by writing <strong>'\:'</strong>.</p>
 <p>
 </p>
-<h3><a name="vrule_time_color__legend___dashes__on_s__off_s__on_s_off_s________dashoffset_offset__"><strong>VRULE</strong><strong>:</strong><em>time</em><strong>#</strong><em>color</em>[<strong>:</strong><em>legend</em>][<strong>:dashes</strong>[<strong>=</strong><em>on_s</em>[,<em>off_s</em>[,<em>on_s</em>,<em>off_s</em>]...]][<strong>:dash-offset=</strong><em>offset</em>]]</a></h3>
+<h3><a name="vrule_time_color__legend___dashes__on_s__off_s__on_s_off_s________dash_offset_offset__"><strong>VRULE</strong><strong>:</strong><em>time</em><strong>#</strong><em>color</em>[<strong>:</strong><em>legend</em>][<strong>:dashes</strong>[<strong>=</strong><em>on_s</em>[,<em>off_s</em>[,<em>on_s</em>,<em>off_s</em>]...]][<strong>:dash-offset=</strong><em>offset</em>]]</a></h3>
 <p>Draw a vertical line at <em>time</em>.  Its color is composed from three
 hexadecimal numbers specifying the rgb color components (00 is off, FF is
 maximum) red, green and blue followed by an optional alpha. Optionally, a legend box and string is
@@ -328,13 +309,13 @@ Dashed lines can be drawn using the <strong>dashes</strong> modifier. See <stron
 details.</p>
 <p>
 </p>
-<h3><a name="hrule_value_color__legend___dashes__on_s__off_s__on_s_off_s________dashoffset_offset__"><strong>HRULE</strong><strong>:</strong><em>value</em><strong>#</strong><em>color</em>[<strong>:</strong><em>legend</em>][<strong>:dashes</strong>[<strong>=</strong><em>on_s</em>[,<em>off_s</em>[,<em>on_s</em>,<em>off_s</em>]...]][<strong>:dash-offset=</strong><em>offset</em>]]</a></h3>
+<h3><a name="hrule_value_color__legend___dashes__on_s__off_s__on_s_off_s________dash_offset_offset__"><strong>HRULE</strong><strong>:</strong><em>value</em><strong>#</strong><em>color</em>[<strong>:</strong><em>legend</em>][<strong>:dashes</strong>[<strong>=</strong><em>on_s</em>[,<em>off_s</em>[,<em>on_s</em>,<em>off_s</em>]...]][<strong>:dash-offset=</strong><em>offset</em>]]</a></h3>
 <p>Draw a horizontal line at <em>value</em>.  HRULE acts much like LINE except that
 will have no effect on the scale of the graph. If a HRULE is outside the
 graphing area it will just not be visible.</p>
 <p>
 </p>
-<h3><a name="line_width__value__color____legend___stack____dashes__on_s__off_s__on_s_off_s________dashoffset_offset__"><strong>LINE</strong>[<em>width</em>]<strong>:</strong><em>value</em>[<strong>#</strong><em>color</em>][<strong>:</strong>[<em>legend</em>][<strong>:STACK</strong>]][<strong>:dashes</strong>[<strong>=</strong><em>on_s</em>[,<em>off_s</em>[,<em>on_s</em>,<em>off_s</em>]...]][<strong>:dash-offset=</strong><em>offset</em>]]</a></h3>
+<h3><a name="line_width__value__color____legend___stack____dashes__on_s__off_s__on_s_off_s________dash_offset_offset__"><strong>LINE</strong>[<em>width</em>]<strong>:</strong><em>value</em>[<strong>#</strong><em>color</em>][<strong>:</strong>[<em>legend</em>][<strong>:STACK</strong>]][<strong>:dashes</strong>[<strong>=</strong><em>on_s</em>[,<em>off_s</em>[,<em>on_s</em>,<em>off_s</em>]...]][<strong>:dash-offset=</strong><em>offset</em>]]</a></h3>
 <p>Draw a line of the specified width onto the graph. <em>width</em> can be a
 floating point number. If the color is not specified, the drawing is done
 'invisibly'. This is useful when stacking something else on top of this
@@ -351,7 +332,7 @@ provides the length of alternate <em>on_s</em> and <em>off_s</em> portions of th
 stroke. The <strong>dash-offset</strong> parameter specifies an <em>offset</em> into the pattern
 at which the stroke begins.</p>
 <p>When you do not specify a color, you cannot specify a legend.  Should
-you want to use STACK, use the ``LINEx:&lt;value&gt;::STACK'' form.</p>
+you want to use STACK, use the &quot;LINEx:&lt;value&gt;::STACK&quot; form.</p>
 <p>
 </p>
 <h3><a name="area_value__color____legend___stack__"><strong>AREA</strong><strong>:</strong><em>value</em>[<strong>#</strong><em>color</em>][<strong>:</strong>[<em>legend</em>][<strong>:STACK</strong>]]</a></h3>
@@ -371,7 +352,7 @@ at the upper border of the graphing area.</p>
 <h3><a name="shift_vname_offset"><strong>SHIFT</strong><strong>:</strong><em>vname</em><strong>:</strong><em>offset</em></a></h3>
 <p>Using this command <strong>RRDtool</strong> will graph the following elements
 with the specified offset.  For instance, you can specify an
-offset of (&nbsp;7*24*60*60&nbsp;=&nbsp;)&nbsp;604'800&nbsp;seconds to ``look back'' one
+offset of (&nbsp;7*24*60*60&nbsp;=&nbsp;)&nbsp;604'800&nbsp;seconds to &quot;look back&quot; one
 week. Make sure to tell the viewer of your graph you did this ...
 As with the other graphing elements, you can specify a number or
 a variable here.</p>
@@ -442,182 +423,155 @@ Pango uses the xml <strong>span</strong> tags for inline formatting instructions
  &lt;span foreground=&quot;blue&quot; size=&quot;x-large&quot;&gt;Blue text&lt;/span&gt; is &lt;i&gt;cool&lt;/i&gt;!</pre>
 <p>The complete list of attributes for the span tag (taken from the pango documentation):</p>
 <dl>
-<dt><strong><a name="item_font_desc"><strong>font_desc</strong></a></strong><br />
-</dt>
+<dt><strong><a name="font_desc" class="item"><strong>font_desc</strong></a></strong></dt>
+
 <dd>
-A font description string, such as ``Sans Italic 12''; note that any other span attributes will override this description. So if you have ``Sans Italic'' and also a style=``normal'' attribute, you will get Sans normal, not italic.
+<p>A font description string, such as &quot;Sans Italic 12&quot;; note that any other span attributes will override this description. So if you have &quot;Sans Italic&quot; and also a style=&quot;normal&quot; attribute, you will get Sans normal, not italic.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_font_family"><strong>font_family</strong></a></strong><br />
-</dt>
+<dt><strong><a name="font_family" class="item"><strong>font_family</strong></a></strong></dt>
+
 <dd>
-A font family name
+<p>A font family name</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_face"><strong>face</strong></a></strong><br />
-</dt>
+<dt><strong><a name="face" class="item"><strong>face</strong></a></strong></dt>
+
 <dd>
-Synonym for font_family
+<p>Synonym for font_family</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_size"><strong>size</strong></a></strong><br />
-</dt>
+<dt><strong><a name="size" class="item"><strong>size</strong></a></strong></dt>
+
 <dd>
-Font size in 1024ths of a point, or one of the absolute sizes 'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large', or one of the relative sizes 'smaller' or 'larger'. If you want to specify a absolute size, it's usually easier to take advantage of the ability to specify a partial font description using 'font_desc'; you can use font_desc='12.5' rather than size='12800'.
+<p>Font size in 1024ths of a point, or one of the absolute sizes 'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large', or one of the relative sizes 'smaller' or 'larger'. If you want to specify a absolute size, it's usually easier to take advantage of the ability to specify a partial font description using 'font_desc'; you can use font_desc='12.5' rather than size='12800'.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_style"><strong>style</strong></a></strong><br />
-</dt>
+<dt><strong><a name="style" class="item"><strong>style</strong></a></strong></dt>
+
 <dd>
-One of 'normal', 'oblique', 'italic'
+<p>One of 'normal', 'oblique', 'italic'</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_weight"><strong>weight</strong></a></strong><br />
-</dt>
+<dt><strong><a name="weight" class="item"><strong>weight</strong></a></strong></dt>
+
 <dd>
-One of 'ultralight', 'light', 'normal', 'bold', 'ultrabold', 'heavy', or a numeric weight
+<p>One of 'ultralight', 'light', 'normal', 'bold', 'ultrabold', 'heavy', or a numeric weight</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_variant"><strong>variant</strong></a></strong><br />
-</dt>
+<dt><strong><a name="variant" class="item"><strong>variant</strong></a></strong></dt>
+
 <dd>
-'normal' or 'smallcaps'
+<p>'normal' or 'smallcaps'</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_stretch"><strong>stretch</strong></a></strong><br />
-</dt>
+<dt><strong><a name="stretch" class="item"><strong>stretch</strong></a></strong></dt>
+
 <dd>
-One of 'ultracondensed', 'extracondensed', 'condensed', 'semicondensed', 'normal', 'semiexpanded', 'expanded', 'extraexpanded', 'ultraexpanded'
+<p>One of 'ultracondensed', 'extracondensed', 'condensed', 'semicondensed', 'normal', 'semiexpanded', 'expanded', 'extraexpanded', 'ultraexpanded'</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_foreground"><strong>foreground</strong></a></strong><br />
-</dt>
+<dt><strong><a name="foreground" class="item"><strong>foreground</strong></a></strong></dt>
+
 <dd>
-An RGB color specification such as '#00FF00' or a color name such as 'red'
+<p>An RGB color specification such as '#00FF00' or a color name such as 'red'</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_background"><strong>background</strong></a></strong><br />
-</dt>
+<dt><strong><a name="background" class="item"><strong>background</strong></a></strong></dt>
+
 <dd>
-An RGB color specification such as '#00FF00' or a color name such as 'red'
+<p>An RGB color specification such as '#00FF00' or a color name such as 'red'</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_underline"><strong>underline</strong></a></strong><br />
-</dt>
+<dt><strong><a name="underline" class="item"><strong>underline</strong></a></strong></dt>
+
 <dd>
-One of 'none', 'single', 'double', 'low', 'error'
+<p>One of 'none', 'single', 'double', 'low', 'error'</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_underline_color"><strong>underline_color</strong></a></strong><br />
-</dt>
+<dt><strong><a name="underline_color" class="item"><strong>underline_color</strong></a></strong></dt>
+
 <dd>
-The color of underlines; an RGB color specification such as '#00FF00' or a color name such as 'red'
+<p>The color of underlines; an RGB color specification such as '#00FF00' or a color name such as 'red'</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_rise"><strong>rise</strong></a></strong><br />
-</dt>
+<dt><strong><a name="rise" class="item"><strong>rise</strong></a></strong></dt>
+
 <dd>
-Vertical displacement, in 10000ths of an em. Can be negative for subscript, positive for superscript.
+<p>Vertical displacement, in 10000ths of an em. Can be negative for subscript, positive for superscript.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_strikethrough"><strong>strikethrough</strong></a></strong><br />
-</dt>
+<dt><strong><a name="strikethrough" class="item"><strong>strikethrough</strong></a></strong></dt>
+
 <dd>
-'true' or 'false' whether to strike through the text
+<p>'true' or 'false' whether to strike through the text</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_strikethrough_color"><strong>strikethrough_color</strong></a></strong><br />
-</dt>
+<dt><strong><a name="strikethrough_color" class="item"><strong>strikethrough_color</strong></a></strong></dt>
+
 <dd>
-The color of strikethrough lines; an RGB color specification such as '#00FF00' or a color name such as 'red'
+<p>The color of strikethrough lines; an RGB color specification such as '#00FF00' or a color name such as 'red'</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_fallback"><strong>fallback</strong></a></strong><br />
-</dt>
+<dt><strong><a name="fallback" class="item"><strong>fallback</strong></a></strong></dt>
+
 <dd>
-'true' or 'false' whether to enable fallback. If disabled, then characters will only be used from the closest matching font on the system. No fallback will be done to other fonts on the system that might contain the characters in the text. Fallback is enabled by default. Most applications should not disable fallback.
+<p>'true' or 'false' whether to enable fallback. If disabled, then characters will only be used from the closest matching font on the system. No fallback will be done to other fonts on the system that might contain the characters in the text. Fallback is enabled by default. Most applications should not disable fallback.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_lang"><strong>lang</strong></a></strong><br />
-</dt>
+<dt><strong><a name="lang" class="item"><strong>lang</strong></a></strong></dt>
+
 <dd>
-A language code, indicating the text language
+<p>A language code, indicating the text language</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_letter_spacing"><strong>letter_spacing</strong></a></strong><br />
-</dt>
+<dt><strong><a name="letter_spacing" class="item"><strong>letter_spacing</strong></a></strong></dt>
+
 <dd>
-Inter-letter spacing in 1024ths of a point.
+<p>Inter-letter spacing in 1024ths of a point.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_gravity"><strong>gravity</strong></a></strong><br />
-</dt>
+<dt><strong><a name="gravity" class="item"><strong>gravity</strong></a></strong></dt>
+
 <dd>
-One of 'south', 'east', 'north', 'west', 'auto'.
+<p>One of 'south', 'east', 'north', 'west', 'auto'.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_gravity_hint"><strong>gravity_hint</strong></a></strong><br />
-</dt>
+<dt><strong><a name="gravity_hint" class="item"><strong>gravity_hint</strong></a></strong></dt>
+
 <dd>
-One of 'natural', 'strong', 'line'.
+<p>One of 'natural', 'strong', 'line'.</p>
 </dd>
-<p></p></dl>
+</dl>
 <p>To save you some typing, there are also some shortcuts:</p>
 <dl>
-<dt><strong><a name="item_b"><strong>b</strong></a></strong><br />
-</dt>
+<dt><strong><a name="b" class="item"><strong>b</strong></a></strong></dt>
+
 <dd>
-Bold
+<p>Bold</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_big"><strong>big</strong></a></strong><br />
-</dt>
+<dt><strong><a name="big" class="item"><strong>big</strong></a></strong></dt>
+
 <dd>
-Makes font relatively larger, equivalent to &lt;span size=``larger''&gt;
+<p>Makes font relatively larger, equivalent to &lt;span size=&quot;larger&quot;&gt;</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_i"><strong>i</strong></a></strong><br />
-</dt>
+<dt><strong><a name="i" class="item"><strong>i</strong></a></strong></dt>
+
 <dd>
-Italic
+<p>Italic</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_s"><strong>s</strong></a></strong><br />
-</dt>
+<dt><strong><a name="s" class="item"><strong>s</strong></a></strong></dt>
+
 <dd>
-Strikethrough
+<p>Strikethrough</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_sub"><strong>sub</strong></a></strong><br />
-</dt>
+<dt><strong><a name="sub" class="item"><strong>sub</strong></a></strong></dt>
+
 <dd>
-Subscript
+<p>Subscript</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_sup"><strong>sup</strong></a></strong><br />
-</dt>
+<dt><strong><a name="sup" class="item"><strong>sup</strong></a></strong></dt>
+
 <dd>
-Superscript
+<p>Superscript</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_small"><strong>small</strong></a></strong><br />
-</dt>
+<dt><strong><a name="small" class="item"><strong>small</strong></a></strong></dt>
+
 <dd>
-Makes font relatively smaller, equivalent to &lt;span size=``smaller''&gt;
+<p>Makes font relatively smaller, equivalent to &lt;span size=&quot;smaller&quot;&gt;</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_tt"><strong>tt</strong></a></strong><br />
-</dt>
+<dt><strong><a name="tt" class="item"><strong>tt</strong></a></strong></dt>
+
 <dd>
-Monospace font
+<p>Monospace font</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_u"><strong>u</strong></a></strong><br />
-</dt>
+<dt><strong><a name="u" class="item"><strong>u</strong></a></strong></dt>
+
 <dd>
-Underline
+<p>Underline</p>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <hr />
index 993771be64f94471d00dd95d8cf906bbf71abb7c..1d9481728a7c5334c0f235516ae9f93cbb188df3 100644 (file)
@@ -12,15 +12,11 @@ S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
 
        C\bCO\bOM\bMM\bME\bEN\bNT\bT:\b:_\bt_\be_\bx_\bt
 
-       V\bVR\bRU\bUL\bLE\bE:\b:_\bt_\bi_\bm_\be#\b#_\bc_\bo_\bl_\bo_\br[:\b:_\bl_\be_\bg_\b-
-       _\be_\bn_\bd][:\b:d\bda\bas\bsh\bhe\bes\bs[=\b=_\bo_\bn_\b__\bs[,_\bo_\bf_\bf_\b__\bs[,_\bo_\bn_\b__\bs,_\bo_\bf_\bf_\b__\bs]...]][:\b:d\bda\bas\bsh\bh-\b-o\bof\bff\bfs\bse\bet\bt=\b=_\bo_\bf_\bf_\bs_\be_\bt]]
+       V\bVR\bRU\bUL\bLE\bE:\b:_\bt_\bi_\bm_\be#\b#_\bc_\bo_\bl_\bo_\br[:\b:_\bl_\be_\bg_\be_\bn_\bd][:\b:d\bda\bas\bsh\bhe\bes\bs[=\b=_\bo_\bn_\b__\bs[,_\bo_\bf_\bf_\b__\bs[,_\bo_\bn_\b__\bs,_\bo_\bf_\bf_\b__\bs]...]][:\b:d\bda\bas\bsh\bh-\b-o\bof\bff\bfs\bse\bet\bt=\b=_\bo_\bf_\bf_\bs_\be_\bt]]
 
-       H\bHR\bRU\bUL\bLE\bE:\b:_\bv_\ba_\bl_\bu_\be#\b#_\bc_\bo_\bl_\bo_\br[:\b:_\bl_\be_\bg_\b-
-       _\be_\bn_\bd][:\b:d\bda\bas\bsh\bhe\bes\bs[=\b=_\bo_\bn_\b__\bs[,_\bo_\bf_\bf_\b__\bs[,_\bo_\bn_\b__\bs,_\bo_\bf_\bf_\b__\bs]...]][:\b:d\bda\bas\bsh\bh-\b-o\bof\bff\bfs\bse\bet\bt=\b=_\bo_\bf_\bf_\bs_\be_\bt]]
+       H\bHR\bRU\bUL\bLE\bE:\b:_\bv_\ba_\bl_\bu_\be#\b#_\bc_\bo_\bl_\bo_\br[:\b:_\bl_\be_\bg_\be_\bn_\bd][:\b:d\bda\bas\bsh\bhe\bes\bs[=\b=_\bo_\bn_\b__\bs[,_\bo_\bf_\bf_\b__\bs[,_\bo_\bn_\b__\bs,_\bo_\bf_\bf_\b__\bs]...]][:\b:d\bda\bas\bsh\bh-\b-o\bof\bff\bfs\bse\bet\bt=\b=_\bo_\bf_\bf_\bs_\be_\bt]]
 
-       L\bLI\bIN\bNE\bE[_\bw_\bi_\bd_\bt_\bh]:\b:_\bv_\ba_\bl_\bu_\be[#\b#_\bc_\bo_\bl_\bo_\br][:\b:[_\bl_\be_\bg_\b-
-       _\be_\bn_\bd][:\b:S\bST\bTA\bAC\bCK\bK]][:\b:d\bda\bas\bsh\bhe\bes\bs[=\b=_\bo_\bn_\b__\bs[,_\bo_\bf_\bf_\b__\bs[,_\bo_\bn_\b__\bs,_\bo_\bf_\bf_\b__\bs]...]][:\b:d\bda\bas\bsh\bh-\b-o\bof\bff\bfs\bse\bet\bt=\b=_\bo_\bf_\bf_\b-
-       _\bs_\be_\bt]]
+       L\bLI\bIN\bNE\bE[_\bw_\bi_\bd_\bt_\bh]:\b:_\bv_\ba_\bl_\bu_\be[#\b#_\bc_\bo_\bl_\bo_\br][:\b:[_\bl_\be_\bg_\be_\bn_\bd][:\b:S\bST\bTA\bAC\bCK\bK]][:\b:d\bda\bas\bsh\bhe\bes\bs[=\b=_\bo_\bn_\b__\bs[,_\bo_\bf_\bf_\b__\bs[,_\bo_\bn_\b__\bs,_\bo_\bf_\bf_\b__\bs]...]][:\b:d\bda\bas\bsh\bh-\b-o\bof\bff\bfs\bse\bet\bt=\b=_\bo_\bf_\bf_\bs_\be_\bt]]
 
        A\bAR\bRE\bEA\bA:\b:_\bv_\ba_\bl_\bu_\be[#\b#_\bc_\bo_\bl_\bo_\br][:\b:[_\bl_\be_\bg_\be_\bn_\bd][:\b:S\bST\bTA\bAC\bCK\bK]]
 
@@ -41,13 +37,12 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        don't use any graph elements, no graph is generated.  Similarly, no
        report is generated if you don't use print options.
 
-       P\bPR\bRI\bIN\bNT\bT
-
+   P\bPR\bRI\bIN\bNT\bT
        _\bP\bP_\bR\bR_\bI\bI_\bN\bN_\bT\bT_\b:\b:_\bv_\bn_\ba_\bm_\be_\b:\b:_\bf_\bo_\br_\bm_\ba_\bt_\b[_\b:\b:_\bs\bs_\bt\bt_\br\br_\bf\bf_\bt\bt_\bi\bi_\bm\bm_\be\be_\b]
 
-       Depending on the context, either the value component or the time compo-
-       nent of a V\bVD\bDE\bEF\bF is printed using _\bf_\bo_\br_\bm_\ba_\bt. It is an error to specify a
-       _\bv_\bn_\ba_\bm_\be generated by a D\bDE\bEF\bF or C\bCD\bDE\bEF\bF.
+       Depending on the context, either the value component or the time
+       component of a V\bVD\bDE\bEF\bF is printed using _\bf_\bo_\br_\bm_\ba_\bt. It is an error to specify
+       _\bv_\bn_\ba_\bm_\be generated by a D\bDE\bEF\bF or C\bCD\bDE\bEF\bF.
 
        Any text in _\bf_\bo_\br_\bm_\ba_\bt is printed literally with one exception: The percent
        character introduces a formatter string. This string can be:
@@ -61,25 +56,26 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
            field width and decimal precision.
 
        %\b%#\b#.\b.#\b#l\blf\bf
-           prints numbers like 12345.6789, with optional field width and pre-
-           cision.
+           prints numbers like 12345.6789, with optional field width and
+           precision.
 
        %\b%s\bs  place this after %\b%l\ble\be, %\b%l\blf\bf or %\b%l\blg\bg. This will be replaced by the
-           appropriate SI magnitude unit and the value will be scaled accord-
-           ingly (123456 -> 123.456 k).
+           appropriate SI magnitude unit and the value will be scaled
+           accordingly (123456 -> 123.456 k).
 
-       %\b%S\bS  is similar to %\b%s\bs. It does, however, use a previously defined magni-
-           tude unit. If there is no such unit yet, it tries to define one
-           (just like %\b%s\bs) unless the value is zero, in which case the magni-
-           tude unit stays undefined. Thus, formatter strings using %\b%S\bS and no
-           %\b%s\bs will all use the same magnitude unit except for zero values.
+       %\b%S\bS  is similar to %\b%s\bs. It does, however, use a previously defined
+           magnitude unit. If there is no such unit yet, it tries to define
+           one (just like %\b%s\bs) unless the value is zero, in which case the
+           magnitude unit stays undefined. Thus, formatter strings using %\b%S\bS
+           and no %\b%s\bs will all use the same magnitude unit except for zero
+           values.
 
        If you PRINT a VDEF value, you can also print the time associated with
        it by appending the string :\b:s\bst\btr\brf\bft\bti\bim\bme\be to the format. Note that rrdtool
        uses the strftime function of your OSs C library. This means that the
-       conversion specifier may vary. Check the manual page if you are uncer-
-       tain. The following is a list of conversion specifiers usually sup-
-       ported across the board.
+       conversion specifier may vary. Check the manual page if you are
+       uncertain. The following is a list of conversion specifiers usually
+       supported across the board.
 
        %\b%a\ba  The abbreviated weekday name according to the current locale.
 
@@ -105,24 +101,25 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
 
        %\b%M\bM  The minute as a decimal number (range 00 to 59).
 
-       %\b%p\bp  Either `AM' or `PM' according to the given time value, or the cor-
-           responding strings for the current locale.  Noon is treated as `pm'
-           and midnight as `am'.  Note that in many locales and `pm' notation
-           is unsupported and in such cases %p will return an empty string.
+       %\b%p\bp  Either `AM' or `PM' according to the given time value, or the
+           corresponding strings for the current locale.  Noon is treated as
+           `pm' and midnight as `am'.  Note that in many locales and `pm'
+           notation is unsupported and in such cases %p will return an empty
+           string.
 
        %\b%s\bs  The second as a decimal number (range 00 to 61).
 
-       %\b%S\bS  The seconds since the epoch (1.1.1970) (libc dependant non stan-
-           dard!)
+       %\b%S\bS  The seconds since the epoch (1.1.1970) (libc dependant non
+           standard!)
 
        %\b%U\bU  The  week  number  of  the current year as a decimal number, range
            00 to 53, starting with the first Sunday as the first day of week
            01. See also %V and %W.
 
-       %\b%V\bV  The ISO 8601:1988 week number of the current year as a decimal num-
-           ber, range 01 to  53,  where week  1 is the first week that has at
-           least 4 days in the current year, and with Monday as the first day
-           of the week. See also %U and %W.
+       %\b%V\bV  The ISO 8601:1988 week number of the current year as a decimal
+           number, range 01 to  53,  where week  1 is the first week that has
+           at least 4 days in the current year, and with Monday as the first
+           day of the week. See also %U and %W.
 
        %\b%w\bw  The day of the week as a decimal, range 0 to 6, Sunday being 0.
            See also %u.
@@ -150,8 +147,7 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        _\bD_\be_\bp_\br_\be_\bc_\ba_\bt_\be_\bd_\b. _\bU_\bs_\be _\bt_\bh_\be _\bn_\be_\bw _\bf_\bo_\br_\bm _\bo_\bf _\bt_\bh_\bi_\bs _\bc_\bo_\bm_\bm_\ba_\bn_\bd _\bi_\bn _\bn_\be_\bw _\bs_\bc_\br_\bi_\bp_\bt_\bs_\b.  The first
        form of this command is to be used with C\bCD\bDE\bEF\bF _\bv_\bn_\ba_\bm_\bes.
 
-       G\bGR\bRA\bAP\bPH\bH
-
+   G\bGR\bRA\bAP\bPH\bH
        _\bG\bG_\bP\bP_\bR\bR_\bI\bI_\bN\bN_\bT\bT_\b:\b:_\bv_\bn_\ba_\bm_\be_\b:\b:_\bf_\bo_\br_\bm_\ba_\bt
 
        This is the same as "PRINT", but printed inside the graph.
@@ -167,27 +163,23 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        in RRDtool 1.2 you have to escape colons in COMMENT text in the same
        way you have to escape them in *\b*P\bPR\bRI\bIN\bNT\bT commands by writing '\b'\\b\:\b:'\b'.
 
-       _\bV\bV_\bR\bR_\bU\bU_\bL\bL_\bE\bE_\b:\b:_\bt_\bi_\bm_\be_\b#\b#_\bc_\bo_\bl_\bo_\br_\b[_\b:\b:_\bl_\be_\bg_\b-
-       _\be_\bn_\bd_\b]_\b[_\b:\b:_\bd\bd_\ba\ba_\bs\bs_\bh\bh_\be\be_\bs\bs_\b[_\b=\b=_\bo_\bn_\b__\bs_\b[_\b,_\bo_\bf_\bf_\b__\bs_\b[_\b,_\bo_\bn_\b__\bs_\b,_\bo_\bf_\bf_\b__\bs_\b]_\b._\b._\b._\b]_\b]_\b[_\b:\b:_\bd\bd_\ba\ba_\bs\bs_\bh\bh_\b-\b-_\bo\bo_\bf\bf_\bf\bf_\bs\bs_\be\be_\bt\bt_\b=\b=_\bo_\bf_\bf_\bs_\be_\bt_\b]_\b]
+       _\bV\bV_\bR\bR_\bU\bU_\bL\bL_\bE\bE_\b:\b:_\bt_\bi_\bm_\be_\b#\b#_\bc_\bo_\bl_\bo_\br_\b[_\b:\b:_\bl_\be_\bg_\be_\bn_\bd_\b]_\b[_\b:\b:_\bd\bd_\ba\ba_\bs\bs_\bh\bh_\be\be_\bs\bs_\b[_\b=\b=_\bo_\bn_\b__\bs_\b[_\b,_\bo_\bf_\bf_\b__\bs_\b[_\b,_\bo_\bn_\b__\bs_\b,_\bo_\bf_\bf_\b__\bs_\b]_\b._\b._\b._\b]_\b]_\b[_\b:\b:_\bd\bd_\ba\ba_\bs\bs_\bh\bh_\b-\b-_\bo\bo_\bf\bf_\bf\bf_\bs\bs_\be\be_\bt\bt_\b=\b=_\bo_\bf_\bf_\bs_\be_\bt_\b]_\b]
 
-       Draw a vertical line at _\bt_\bi_\bm_\be.  Its color is composed from three hex-
-       adecimal numbers specifying the rgb color components (00 is off, FF is
-       maximum) red, green and blue followed by an optional alpha. Optionally,
-       a legend box and string is printed in the legend section. _\bt_\bi_\bm_\be may be a
-       number or a variable from a V\bVD\bDE\bEF\bF. It is an error to use _\bv_\bn_\ba_\bm_\bes from D\bDE\bEF\bF
-       or C\bCD\bDE\bEF\bF here.  Dashed lines can be drawn using the d\bda\bas\bsh\bhe\bes\bs modifier. See
-       L\bLI\bIN\bNE\bE for more details.
+       Draw a vertical line at _\bt_\bi_\bm_\be.  Its color is composed from three
+       hexadecimal numbers specifying the rgb color components (00 is off, FF
+       is maximum) red, green and blue followed by an optional alpha.
+       Optionally, a legend box and string is printed in the legend section.
+       _\bt_\bi_\bm_\be may be a number or a variable from a V\bVD\bDE\bEF\bF. It is an error to use
+       _\bv_\bn_\ba_\bm_\bes from D\bDE\bEF\bF or C\bCD\bDE\bEF\bF here.  Dashed lines can be drawn using the
+       d\bda\bas\bsh\bhe\bes\bs modifier. See L\bLI\bIN\bNE\bE for more details.
 
-       _\bH\bH_\bR\bR_\bU\bU_\bL\bL_\bE\bE_\b:\b:_\bv_\ba_\bl_\bu_\be_\b#\b#_\bc_\bo_\bl_\bo_\br_\b[_\b:\b:_\bl_\be_\bg_\b-
-       _\be_\bn_\bd_\b]_\b[_\b:\b:_\bd\bd_\ba\ba_\bs\bs_\bh\bh_\be\be_\bs\bs_\b[_\b=\b=_\bo_\bn_\b__\bs_\b[_\b,_\bo_\bf_\bf_\b__\bs_\b[_\b,_\bo_\bn_\b__\bs_\b,_\bo_\bf_\bf_\b__\bs_\b]_\b._\b._\b._\b]_\b]_\b[_\b:\b:_\bd\bd_\ba\ba_\bs\bs_\bh\bh_\b-\b-_\bo\bo_\bf\bf_\bf\bf_\bs\bs_\be\be_\bt\bt_\b=\b=_\bo_\bf_\bf_\bs_\be_\bt_\b]_\b]
+       _\bH\bH_\bR\bR_\bU\bU_\bL\bL_\bE\bE_\b:\b:_\bv_\ba_\bl_\bu_\be_\b#\b#_\bc_\bo_\bl_\bo_\br_\b[_\b:\b:_\bl_\be_\bg_\be_\bn_\bd_\b]_\b[_\b:\b:_\bd\bd_\ba\ba_\bs\bs_\bh\bh_\be\be_\bs\bs_\b[_\b=\b=_\bo_\bn_\b__\bs_\b[_\b,_\bo_\bf_\bf_\b__\bs_\b[_\b,_\bo_\bn_\b__\bs_\b,_\bo_\bf_\bf_\b__\bs_\b]_\b._\b._\b._\b]_\b]_\b[_\b:\b:_\bd\bd_\ba\ba_\bs\bs_\bh\bh_\b-\b-_\bo\bo_\bf\bf_\bf\bf_\bs\bs_\be\be_\bt\bt_\b=\b=_\bo_\bf_\bf_\bs_\be_\bt_\b]_\b]
 
        Draw a horizontal line at _\bv_\ba_\bl_\bu_\be.  HRULE acts much like LINE except that
        will have no effect on the scale of the graph. If a HRULE is outside
        the graphing area it will just not be visible.
 
-       _\bL\bL_\bI\bI_\bN\bN_\bE\bE_\b[_\bw_\bi_\bd_\bt_\bh_\b]_\b:\b:_\bv_\ba_\bl_\bu_\be_\b[_\b#\b#_\bc_\bo_\bl_\bo_\br_\b]_\b[_\b:\b:_\b[_\bl_\be_\bg_\b-
-       _\be_\bn_\bd_\b]_\b[_\b:\b:_\bS\bS_\bT\bT_\bA\bA_\bC\bC_\bK\bK_\b]_\b]_\b[_\b:\b:_\bd\bd_\ba\ba_\bs\bs_\bh\bh_\be\be_\bs\bs_\b[_\b=\b=_\bo_\bn_\b__\bs_\b[_\b,_\bo_\bf_\bf_\b__\bs_\b[_\b,_\bo_\bn_\b__\bs_\b,_\bo_\bf_\bf_\b__\bs_\b]_\b._\b._\b._\b]_\b]_\b[_\b:\b:_\bd\bd_\ba\ba_\bs\bs_\bh\bh_\b-\b-_\bo\bo_\bf\bf_\bf\bf_\bs\bs_\be\be_\bt\bt_\b=\b=_\bo_\bf_\bf_\b-
-       _\bs_\be_\bt_\b]_\b]
+       _\bL\bL_\bI\bI_\bN\bN_\bE\bE_\b[_\bw_\bi_\bd_\bt_\bh_\b]_\b:\b:_\bv_\ba_\bl_\bu_\be_\b[_\b#\b#_\bc_\bo_\bl_\bo_\br_\b]_\b[_\b:\b:_\b[_\bl_\be_\bg_\be_\bn_\bd_\b]_\b[_\b:\b:_\bS\bS_\bT\bT_\bA\bA_\bC\bC_\bK\bK_\b]_\b]_\b[_\b:\b:_\bd\bd_\ba\ba_\bs\bs_\bh\bh_\be\be_\bs\bs_\b[_\b=\b=_\bo_\bn_\b__\bs_\b[_\b,_\bo_\bf_\bf_\b__\bs_\b[_\b,_\bo_\bn_\b__\bs_\b,_\bo_\bf_\bf_\b__\bs_\b]_\b._\b._\b._\b]_\b]_\b[_\b:\b:_\bd\bd_\ba\ba_\bs\bs_\bh\bh_\b-\b-_\bo\bo_\bf\bf_\bf\bf_\bs\bs_\be\be_\bt\bt_\b=\b=_\bo_\bf_\bf_\bs_\be_\bt_\b]_\b]
 
        Draw a line of the specified width onto the graph. _\bw_\bi_\bd_\bt_\bh can be a
        floating point number. If the color is not specified, the drawing is
@@ -256,24 +248,22 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        know where to end.
 
        If you want to make sure you will be displaying a certain variable,
-       make sure never to stack upon the unknown value.  Use a CDEF instruc-
-       tion with I\bIF\bF and U\bUN\bN to do so.
+       make sure never to stack upon the unknown value.  Use a CDEF
+       instruction with I\bIF\bF and U\bUN\bN to do so.
 
 N\bNO\bOT\bTE\bES\bS o\bon\bn l\ble\beg\bge\ben\bnd\bd a\bar\brg\bgu\bum\bme\ben\bnt\bts\bs
-       E\bEs\bsc\bca\bap\bpi\bin\bng\bg t\bth\bhe\be c\bco\bol\blo\bon\bn
-
+   E\bEs\bsc\bca\bap\bpi\bin\bng\bg t\bth\bhe\be c\bco\bol\blo\bon\bn
        A colon ':' in a _\bl_\be_\bg_\be_\bn_\bd argument will mark the end of the legend. To
-       enter a ':' as part of a legend, the colon must be escaped with a back-
-       slash '\:'.  Beware that many environments process backslashes them-
-       selves, so it may be necessary to write two backslashes in order to one
-       being passed onto rrd_graph.
-
-       S\bSt\btr\bri\bin\bng\bg F\bFo\bor\brm\bma\bat\btt\bti\bin\bng\bg
+       enter a ':' as part of a legend, the colon must be escaped with a
+       backslash '\:'.  Beware that many environments process backslashes
+       themselves, so it may be necessary to write two backslashes in order to
+       one being passed onto rrd_graph.
 
+   S\bSt\btr\bri\bin\bng\bg F\bFo\bor\brm\bma\bat\btt\bti\bin\bng\bg
        The text printed below the actual graph can be formatted by appending
-       special escape characters at the end of a text. When ever such a char-
-       acter occurs, all pending text is pushed onto the graph according to
-       the character specified.
+       special escape characters at the end of a text. When ever such a
+       character occurs, all pending text is pushed onto the graph according
+       to the character specified.
 
        Valid markers are: \\b\j\bj for justified, \\b\l\bl for left aligned, \\b\r\br for right
        aligned, and \\b\c\bc for centered. In the next section there is an example
@@ -284,10 +274,11 @@ N\bNO\bOT\bTE\bES\bS o\bon\bn l\ble\beg\bge\ben\bnd\bd a\bar\brg\bgu\bum\bme\ben\bnt\bts\bs
        it.
 
        Normally there are two space characters inserted between every two
-       items printed into the graph. The space following a string can be sup-
-       pressed by putting a \\b\g\bg at the end of the string. The \\b\g\bg also ignores
-       any space inside the string if it is at the very end of the string.
-       This can be used in connection with %\b%s\bs to suppress empty unit strings.
+       items printed into the graph. The space following a string can be
+       suppressed by putting a \\b\g\bg at the end of the string. The \\b\g\bg also
+       ignores any space inside the string if it is at the very end of the
+       string. This can be used in connection with %\b%s\bs to suppress empty unit
+       strings.
 
         GPRINT:a:MAX:%lf%s\g
 
@@ -299,8 +290,8 @@ N\bNO\bOT\bTE\bES\bS o\bon\bn l\ble\beg\bge\ben\bnd\bd a\bar\brg\bgu\bum\bme\ben\bnt\bts\bs
        tabs inserted are relative to the start of the current legend element!
 
        Since RRDtool 1.3 is using Pango for rending text, you can use Pango
-       markup.  Pango uses the xml s\bsp\bpa\ban\bn tags for inline formatting instruc-
-       tions.:
+       markup.  Pango uses the xml s\bsp\bpa\ban\bn tags for inline formatting
+       instructions.:
 
        A simple example of a marked-up string might be:
 
@@ -341,9 +332,9 @@ N\bNO\bOT\bTE\bES\bS o\bon\bn l\ble\beg\bge\ben\bnd\bd a\bar\brg\bgu\bum\bme\ben\bnt\bts\bs
            'normal' or 'smallcaps'
 
        s\bst\btr\bre\bet\btc\bch\bh
-           One of 'ultracondensed', 'extracondensed', 'condensed', 'semicon-
-           densed', 'normal', 'semiexpanded', 'expanded', 'extraexpanded',
-           'ultraexpanded'
+           One of 'ultracondensed', 'extracondensed', 'condensed',
+           'semicondensed', 'normal', 'semiexpanded', 'expanded',
+           'extraexpanded', 'ultraexpanded'
 
        f\bfo\bor\bre\beg\bgr\bro\bou\bun\bnd\bd
            An RGB color specification such as '#00FF00' or a color name such
@@ -427,4 +418,4 @@ A\bAU\bUT\bTH\bHO\bOR\bR
 
 
 
-1.3.99909060808                   2009-02-21                 RRDGRAPH_GRAPH(1)
+1.3.999                           2009-05-10                 RRDGRAPH_GRAPH(1)
diff --git a/doc/rrdgraph_libdbi.1 b/doc/rrdgraph_libdbi.1
new file mode 100644 (file)
index 0000000..9f00dda
--- /dev/null
@@ -0,0 +1,289 @@
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.08)
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings.  \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+.    ds -- \(*W-
+.    ds PI pi
+.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
+.    ds L" ""
+.    ds R" ""
+.    ds C` ""
+.    ds C' ""
+'br\}
+.el\{\
+.    ds -- \|\(em\|
+.    ds PI \(*p
+.    ds L" ``
+.    ds R" ''
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD.  Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.ie \nF \{\
+.    de IX
+.    tm Index:\\$1\t\\n%\t"\\$2"
+..
+.    nr % 0
+.    rr F
+.\}
+.el \{\
+.    de IX
+..
+.\}
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
+.    \" fudge factors for nroff and troff
+.if n \{\
+.    ds #H 0
+.    ds #V .8m
+.    ds #F .3m
+.    ds #[ \f1
+.    ds #] \fP
+.\}
+.if t \{\
+.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+.    ds #V .6m
+.    ds #F 0
+.    ds #[ \&
+.    ds #] \&
+.\}
+.    \" simple accents for nroff and troff
+.if n \{\
+.    ds ' \&
+.    ds ` \&
+.    ds ^ \&
+.    ds , \&
+.    ds ~ ~
+.    ds /
+.\}
+.if t \{\
+.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+.    \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+.    \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+.    \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+.    ds : e
+.    ds 8 ss
+.    ds o a
+.    ds d- d\h'-1'\(ga
+.    ds D- D\h'-1'\(hy
+.    ds th \o'bp'
+.    ds Th \o'LP'
+.    ds ae ae
+.    ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "RRDGRAPH_LIBDBI 1"
+.TH RRDGRAPH_LIBDBI 1 "2009-06-09" "1.3.999" "rrdtool"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH "NAME"
+rrdgraph_libdbi \- fetching data for graphing in rrdtool graph via libdbi
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+<rrdfile> = \fBsql//<libdbi driver>/<driver\-option\-name>=<driver\-option\-value>/...[/rrdminstepsize=<stepsize>][/rrdfillmissing=<fill missing n samples>]//<table>/<unixtimestamp column>/<data value column>[/derive]/<where clause 1>/.../<where clause n>\fR
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+This pseudo-rrd-filename defines a sql datasource:
+.IP "\fBsql//\fR" 8
+.IX Item "sql//"
+.Vb 1
+\&  magic cookie\-prefix for a libdbi type datasource
+.Ve
+.IP "\fB<libdbi driver>\fR" 8
+.IX Item "<libdbi driver>"
+.Vb 1
+\&  which libdbi driver to use (e.g: mysql)
+.Ve
+.IP "\fB<driver\-option\-name>\fR=\fB<driver\-option\-value>\fR" 8
+.IX Item "<driver-option-name>=<driver-option-value>"
+.Vb 2
+\&  defines the parameters that are required to connect to the database with the given libdbi driver
+\&  (These drivers are libdbi dependent \- for details please look at the driver documentation of libdbi!)
+.Ve
+.IP "\fB/rrdminstepsize\fR=\fB<minimum step size>\fR" 8
+.IX Item "/rrdminstepsize=<minimum step size>"
+.Vb 1
+\&  defines the minimum number of the step\-length used for graphing (default: 300 seconds)
+.Ve
+.IP "\fB/rrdfillmissing\fR=\fB<fill missing steps>\fR" 8
+.IX Item "/rrdfillmissing=<fill missing steps>"
+.Vb 1
+\&  defines the number of steps to fill with the last value to avoid NaN boxes due to data\-insertation jitter (default: 0 steps)
+.Ve
+.IP "\fB<table>\fR" 8
+.IX Item "<table>"
+.Vb 1
+\&  defines the table from which to fetch the resultset.
+\&
+\&  If there is a need to fetch data from several tables, these tables can be defined by separating the tablenames with a "+"
+\&
+\&  hex\-type\-encoding via %xx are translated to the actual value, use %% to use %
+.Ve
+.IP "\fB<[*]unixtimestamp column>\fR" 8
+.IX Item "<[*]unixtimestamp column>"
+.Vb 2
+\&  defines the column of E<lt>tableE<gt> which contains the unix\-timestamp 
+\&  \- if this is a DATETIME field in the database, then prefix with leading \*(Aq*\*(Aq
+\&
+\&  hex\-type\-encoding via %xx are translated to the actual value, use %% to use %
+.Ve
+.IP "\fB<data value column>\fR" 8
+.IX Item "<data value column>"
+.Vb 1
+\&  defines the column of E<lt>tableE<gt> which contains the value column, which should be graphed
+\&
+\&  hex\-type\-encoding via %xx are translated to the actual value, use %% to use %
+.Ve
+.IP "\fB/derive\fR" 8
+.IX Item "/derive"
+.Vb 1
+\&  defines that the data value used should be the delta of the 2 consecutive values (to simulate COUNTER or DERIVE type datasources)
+.Ve
+.IP "\fB/<where clause(s)>\fR" 8
+.IX Item "/<where clause(s)>"
+.Vb 1
+\&  defines one (ore more) where clauses that are joined with AND to filter the entries in the <lt>table<gt>
+\&
+\&  hex\-type\-encoding via %xx are translated to the actual value, use %% to use %
+.Ve
+.PP
+the returned value column-names, which can be used as ds-names, are:
+.IP "\fBmin\fR, \fBavg\fR, \fBmax\fR, \fBcount\fR and \fBsigma\fR" 8
+.IX Item "min, avg, max, count and sigma"
+.Vb 3
+\&  are returned to be used as ds\-names in your DS definition.
+\&  The reason for using this is that if the consolidation function is used for min/avg and max, then the engine is used several times.
+\&  And this results in the same SQL Statements used several times
+.Ve
+.SH "EXAMPLES"
+.IX Header "EXAMPLES"
+Here an example of a table in a MySQL database:
+.PP
+.Vb 5
+\&  DB connect information
+\&    dbhost=127.0.0.1
+\&    user=rrd
+\&    password=secret
+\&    database=rrd
+\&
+\&  here the table:
+\&    CREATE TABLE RRDValue (
+\&      RRDKeyID      bigint(20) NOT NULL,
+\&      UnixTimeStamp int(11) NOT NULL,
+\&      value         double default NOT NULL,
+\&      PRIMARY KEY  (RRDKeyID,UnixTimeStamp)
+\&    );
+.Ve
+.PP
+and the RRDKeyID we want to graph for is: 1141942900757789274
+.PP
+The pseudo rrd-filename to access this is:
+\&\*(L"sql//mysql/host=127.0.0.1/dbname=rrd/username=rrd/password=secret//RRDValue/UnixTimeStamp/value/RRDKeyID=1141464142203608274\*(R"
+.PP
+To illustrate this here a command to create a graph that contains the actual values.
+.PP
+.Vb 10
+\&  DS_BASE="sql//mysql/host=127.0.0.1/dbname=rrd/username=rrd/password=passwd//RRDValue/UnixTimeStamp/value/RRDKeyID=1141942900757789274"
+\&  rrdtool graph test.png \-\-imgformat=PNG \-\-start=\-1day \-\-end=+3hours \-\-width=1000 \-\-height=600 \e
+\&    "DEF:min=$DS_BASE:min:AVERAGE" \e
+\&    "LINE1:min#FF0000:value" \e
+\&    "DEF:avg=$DS_BASE:avg:AVERAGE" \e
+\&    "LINE1:avg#00FF00:average" \e
+\&    "DEF:max=$DS_BASE:max:AVERAGE" \e
+\&    "LINE1:max#FF0000:max" \e
+\&    "DEF:sigma=$DS_BASE:sigma:AVERAGE" \e
+\&    "CDEF:upper=avg,4,sigma,*,+" \e
+\&    "LINE1:upper#0000FF:+4 sigma" \e
+\&    "CDEF:lower=avg,4,sigma,*,\-" \e
+\&    "LINE1:lower#0000FF:\-4 sigma"
+.Ve
+.SH "NOTES"
+.IX Header "NOTES"
+* Naturally you can also use any other kind of driver that libdbi supports \- e.g postgres, ...
+.PP
+* From the way the datasource is joined, it should also be possible to do joins over different tables 
+  (separate tables with \*(L",\*(R" in table and add in the \s-1WHERE\s0 Clauses the table equal joins. 
+  This has not been tested!!!)
+.PP
+* It should also be relatively simple to add to the database using the same datasource string.
+  This has not been implemented...
+.PP
+* The aggregation functions are ignored and several data columns are used instead 
+  to avoid querying the same \s-1SQL\s0 several times when minimum, average and maximum are needed for graphing...
+.PP
+* for \s-1DB\s0 efficiency you should think of having 2 tables, one containing historic values and the other containing the latest data.
+  This second table should be kept small to allow for the least ammount of blocking \s-1SQL\s0 statements.
+  Whith mysql you can even use myisam table-type for the first and InnoDB for the second. 
+  This is especially interresting as with tables with +100M rows myisam is much smaller then InnoDB.
+.PP
+* To debug the \s-1SQL\s0 statements set the environment variable \s-1RRDDEBUGSQL\s0 and the actual \s-1SQL\s0 statements and the timing is printed to stderr.
+.SH "BUGS"
+.IX Header "BUGS"
+* at least on Linux please make sure that the libdbi driver is explicitly linked against libdbi.so.0 
+  check via ldd /usr/lib/dbd/libmysql.so, that there is a line with libdbi.so.0. 
+  otherwise at least the perl module RRDs will fail because the dynamic linker can not find some symbols from libdbi.so.
+  (this only happens when the libdbi driver is actually used the first time!)
+  This is \s-1KNOWN\s0 to be the case with \s-1RHEL4\s0 and \s-1FC4\s0 and \s-1FC5\s0! (But actually this is a bug with libdbi make files!)
+.PP
+* at least version 0.8.1 of libdbiexhibits a bug with \s-1BINARY\s0 fields
+  (shorttext,text,mediumtext,longtext and possibly also \s-1BINARY\s0 and \s-1BLOB\s0 fields), 
+  that can result in coredumps of rrdtool. 
+  The tool will tell you on stderr if this occures, so that you know what may be the reason.
+  If you are not experiencing these coredumps, then set the environment variable \s-1RRD_NO_LIBDBI_BUG_WARNING\s0, 
+  and then the message will not get shown.
+.SH "AUTHOR"
+.IX Header "AUTHOR"
+Martin Sperl <rrdtool@martin.sperl.org>
diff --git a/doc/rrdgraph_libdbi.html b/doc/rrdgraph_libdbi.html
new file mode 100644 (file)
index 0000000..2e21c8b
--- /dev/null
@@ -0,0 +1,211 @@
+<?xml version="1.0" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>rrdgraph_libdbi</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<link rev="made" href="mailto:root@localhost" />
+</head>
+
+<body style="background-color: white">
+
+
+<!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
+<!--
+
+<ul>
+
+       <li><a href="#name">NAME</a></li>
+       <li><a href="#synopsis">SYNOPSIS</a></li>
+       <li><a href="#description">DESCRIPTION</a></li>
+       <li><a href="#examples">EXAMPLES</a></li>
+       <li><a href="#notes">NOTES</a></li>
+       <li><a href="#bugs">BUGS</a></li>
+       <li><a href="#author">AUTHOR</a></li>
+</ul>
+
+-->
+
+
+</div>
+<!-- INDEX END -->
+
+<p>
+</p>
+<h1><a name="name">NAME</a></h1>
+<p>rrdgraph_libdbi - fetching data for graphing in rrdtool graph via libdbi</p>
+<p>
+</p>
+<hr />
+<h1><a name="synopsis">SYNOPSIS</a></h1>
+<p>&lt;rrdfile&gt; = <strong>sql//&lt;libdbi driver&gt;/&lt;driver-option-name&gt;=&lt;driver-option-value&gt;/...[/rrdminstepsize=&lt;stepsize&gt;][/rrdfillmissing=&lt;fill missing n samples&gt;]//&lt;table&gt;/&lt;unixtimestamp column&gt;/&lt;data value column&gt;[/derive]/&lt;where clause 1&gt;/.../&lt;where clause n&gt;</strong></p>
+<p>
+</p>
+<hr />
+<h1><a name="description">DESCRIPTION</a></h1>
+<p>This pseudo-rrd-filename defines a sql datasource:</p>
+<dl>
+<dt><strong><a name="sql_" class="item"><strong>sql//</strong></a></strong></dt>
+
+<dd>
+<pre>
+  magic cookie-prefix for a libdbi type datasource</pre>
+</dd>
+<dt><strong><a name="libdbi_driver" class="item"><strong>&lt;libdbi driver&gt;</strong></a></strong></dt>
+
+<dd>
+<pre>
+  which libdbi driver to use (e.g: mysql)</pre>
+</dd>
+<dt><strong><a name="driver_option_name_driver_option_value" class="item"><strong>&lt;driver-option-name&gt;</strong>=<strong>&lt;driver-option-value&gt;</strong></a></strong></dt>
+
+<dd>
+<pre>
+  defines the parameters that are required to connect to the database with the given libdbi driver
+  (These drivers are libdbi dependent - for details please look at the driver documentation of libdbi!)</pre>
+</dd>
+<dt><strong><a name="rrdminstepsize_minimum_step_size" class="item"><strong>/rrdminstepsize</strong>=<strong>&lt;minimum step size&gt;</strong></a></strong></dt>
+
+<dd>
+<pre>
+  defines the minimum number of the step-length used for graphing (default: 300 seconds)</pre>
+</dd>
+<dt><strong><a name="rrdfillmissing_fill_missing_steps" class="item"><strong>/rrdfillmissing</strong>=<strong>&lt;fill missing steps&gt;</strong></a></strong></dt>
+
+<dd>
+<pre>
+  defines the number of steps to fill with the last value to avoid NaN boxes due to data-insertation jitter (default: 0 steps)</pre>
+</dd>
+<dt><strong><a name="table" class="item"><strong>&lt;table&gt;</strong></a></strong></dt>
+
+<dd>
+<pre>
+  defines the table from which to fetch the resultset.</pre>
+<pre>
+  If there is a need to fetch data from several tables, these tables can be defined by separating the tablenames with a &quot;+&quot;</pre>
+<pre>
+  hex-type-encoding via %xx are translated to the actual value, use %% to use %</pre>
+</dd>
+<dt><strong><a name="unixtimestamp_column" class="item"><strong>&lt;[*]unixtimestamp column&gt;</strong></a></strong></dt>
+
+<dd>
+<pre>
+  defines the column of E&lt;lt&gt;tableE&lt;gt&gt; which contains the unix-timestamp 
+  - if this is a DATETIME field in the database, then prefix with leading '*'</pre>
+<pre>
+  hex-type-encoding via %xx are translated to the actual value, use %% to use %</pre>
+</dd>
+<dt><strong><a name="data_value_column" class="item"><strong>&lt;data value column&gt;</strong></a></strong></dt>
+
+<dd>
+<pre>
+  defines the column of E&lt;lt&gt;tableE&lt;gt&gt; which contains the value column, which should be graphed</pre>
+<pre>
+  hex-type-encoding via %xx are translated to the actual value, use %% to use %</pre>
+</dd>
+<dt><strong><a name="derive" class="item"><strong>/derive</strong></a></strong></dt>
+
+<dd>
+<pre>
+  defines that the data value used should be the delta of the 2 consecutive values (to simulate COUNTER or DERIVE type datasources)</pre>
+</dd>
+<dt><strong><a name="clause" class="item"><strong>/&lt;where clause(s)&gt;</strong></a></strong></dt>
+
+<dd>
+<pre>
+  defines one (ore more) where clauses that are joined with AND to filter the entries in the &lt;lt&gt;table&lt;gt&gt;</pre>
+<pre>
+  hex-type-encoding via %xx are translated to the actual value, use %% to use %</pre>
+</dd>
+</dl>
+<p>the returned value column-names, which can be used as ds-names, are:</p>
+<dl>
+<dt><strong><a name="min_avg_max_count_and_sigma" class="item"><strong>min</strong>, <strong>avg</strong>, <strong>max</strong>, <strong>count</strong> and <strong>sigma</strong></a></strong></dt>
+
+<dd>
+<pre>
+  are returned to be used as ds-names in your DS definition.
+  The reason for using this is that if the consolidation function is used for min/avg and max, then the engine is used several times.
+  And this results in the same SQL Statements used several times</pre>
+</dd>
+</dl>
+<p>
+</p>
+<hr />
+<h1><a name="examples">EXAMPLES</a></h1>
+<p>Here an example of a table in a MySQL database:</p>
+<pre>
+  DB connect information
+    dbhost=127.0.0.1
+    user=rrd
+    password=secret
+    database=rrd</pre>
+<pre>
+  here the table:
+    CREATE TABLE RRDValue (
+      RRDKeyID      bigint(20) NOT NULL,
+      UnixTimeStamp int(11) NOT NULL,
+      value         double default NOT NULL,
+      PRIMARY KEY  (RRDKeyID,UnixTimeStamp)
+    );</pre>
+<p>and the RRDKeyID we want to graph for is: 1141942900757789274</p>
+<p>The pseudo rrd-filename to access this is:
+&quot;sql//mysql/host=127.0.0.1/dbname=rrd/username=rrd/password=secret//RRDValue/UnixTimeStamp/value/RRDKeyID=1141464142203608274&quot;</p>
+<p>To illustrate this here a command to create a graph that contains the actual values.</p>
+<pre>
+  DS_BASE=&quot;sql//mysql/host=127.0.0.1/dbname=rrd/username=rrd/password=passwd//RRDValue/UnixTimeStamp/value/RRDKeyID=1141942900757789274&quot;
+  rrdtool graph test.png --imgformat=PNG --start=-1day --end=+3hours --width=1000 --height=600 \
+    &quot;DEF:min=$DS_BASE:min:AVERAGE&quot; \
+    &quot;LINE1:min#FF0000:value&quot; \
+    &quot;DEF:avg=$DS_BASE:avg:AVERAGE&quot; \
+    &quot;LINE1:avg#00FF00:average&quot; \
+    &quot;DEF:max=$DS_BASE:max:AVERAGE&quot; \
+    &quot;LINE1:max#FF0000:max&quot; \
+    &quot;DEF:sigma=$DS_BASE:sigma:AVERAGE&quot; \
+    &quot;CDEF:upper=avg,4,sigma,*,+&quot; \
+    &quot;LINE1:upper#0000FF:+4 sigma&quot; \
+    &quot;CDEF:lower=avg,4,sigma,*,-&quot; \
+    &quot;LINE1:lower#0000FF:-4 sigma&quot;</pre>
+<p>
+</p>
+<hr />
+<h1><a name="notes">NOTES</a></h1>
+<p>* Naturally you can also use any other kind of driver that libdbi supports - e.g postgres, ...</p>
+<p>* From the way the datasource is joined, it should also be possible to do joins over different tables 
+  (separate tables with &quot;,&quot; in table and add in the WHERE Clauses the table equal joins. 
+  This has not been tested!!!)</p>
+<p>* It should also be relatively simple to add to the database using the same datasource string.
+  This has not been implemented...</p>
+<p>* The aggregation functions are ignored and several data columns are used instead 
+  to avoid querying the same SQL several times when minimum, average and maximum are needed for graphing...</p>
+<p>* for DB efficiency you should think of having 2 tables, one containing historic values and the other containing the latest data.
+  This second table should be kept small to allow for the least ammount of blocking SQL statements.
+  Whith mysql you can even use myisam table-type for the first and InnoDB for the second. 
+  This is especially interresting as with tables with +100M rows myisam is much smaller then InnoDB.</p>
+<p>* To debug the SQL statements set the environment variable RRDDEBUGSQL and the actual SQL statements and the timing is printed to stderr.</p>
+<p>
+</p>
+<hr />
+<h1><a name="bugs">BUGS</a></h1>
+<p>* at least on Linux please make sure that the libdbi driver is explicitly linked against libdbi.so.0 
+  check via ldd /usr/lib/dbd/libmysql.so, that there is a line with libdbi.so.0. 
+  otherwise at least the perl module RRDs will fail because the dynamic linker can not find some symbols from libdbi.so.
+  (this only happens when the libdbi driver is actually used the first time!)
+  This is KNOWN to be the case with RHEL4 and FC4 and FC5! (But actually this is a bug with libdbi make files!)</p>
+<p>* at least version 0.8.1 of libdbiexhibits a bug with BINARY fields
+  (shorttext,text,mediumtext,longtext and possibly also BINARY and BLOB fields), 
+  that can result in coredumps of rrdtool. 
+  The tool will tell you on stderr if this occures, so that you know what may be the reason.
+  If you are not experiencing these coredumps, then set the environment variable RRD_NO_LIBDBI_BUG_WARNING, 
+  and then the message will not get shown.</p>
+<p>
+</p>
+<hr />
+<h1><a name="author">AUTHOR</a></h1>
+<p>Martin Sperl &lt;<a href="mailto:rrdtool@martin.sperl.org">rrdtool@martin.sperl.org</a>&gt;</p>
+
+</body>
+
+</html>
diff --git a/doc/rrdgraph_libdbi.txt b/doc/rrdgraph_libdbi.txt
new file mode 100644 (file)
index 0000000..3eeb4f2
--- /dev/null
@@ -0,0 +1,164 @@
+RRDGRAPH_LIBDBI(1)                  rrdtool                 RRDGRAPH_LIBDBI(1)
+
+
+
+N\bNA\bAM\bME\bE
+       rrdgraph_libdbi - fetching data for graphing in rrdtool graph via
+       libdbi
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+       <rrdfile> = s\bsq\bql\bl/\b//\b/<\b<l\bli\bib\bbd\bdb\bbi\bi
+       d\bdr\bri\biv\bve\ber\br>\b>/\b/<\b<d\bdr\bri\biv\bve\ber\br-\b-o\bop\bpt\bti\bio\bon\bn-\b-n\bna\bam\bme\be>\b>=\b=<\b<d\bdr\bri\biv\bve\ber\br-\b-o\bop\bpt\bti\bio\bon\bn-\b-v\bva\bal\blu\bue\be>\b>/\b/.\b..\b..\b.[\b[/\b/r\brr\brd\bdm\bmi\bin\bns\bst\bte\bep\bps\bsi\biz\bze\be=\b=<\b<s\bst\bte\bep\bps\bsi\biz\bze\be>\b>]\b][\b[/\b/r\brr\brd\bdf\bfi\bil\bll\blm\bmi\bis\bss\bsi\bin\bng\bg=\b=<\b<f\bfi\bil\bll\bl
+       m\bmi\bis\bss\bsi\bin\bng\bg n\bn s\bsa\bam\bmp\bpl\ble\bes\bs>\b>]\b]/\b//\b/<\b<t\bta\bab\bbl\ble\be>\b>/\b/<\b<u\bun\bni\bix\bxt\bti\bim\bme\bes\bst\bta\bam\bmp\bp c\bco\bol\blu\bum\bmn\bn>\b>/\b/<\b<d\bda\bat\bta\ba v\bva\bal\blu\bue\be
+       c\bco\bol\blu\bum\bmn\bn>\b>[\b[/\b/d\bde\ber\bri\biv\bve\be]\b]/\b/<\b<w\bwh\bhe\ber\bre\be c\bcl\bla\bau\bus\bse\be 1\b1>\b>/\b/.\b..\b..\b./\b/<\b<w\bwh\bhe\ber\bre\be c\bcl\bla\bau\bus\bse\be n\bn>\b>
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+       This pseudo-rrd-filename defines a sql datasource:
+
+       s\bsq\bql\bl/\b//\b/
+                 magic cookie-prefix for a libdbi type datasource
+
+       <\b<l\bli\bib\bbd\bdb\bbi\bi d\bdr\bri\biv\bve\ber\br>\b>
+                 which libdbi driver to use (e.g: mysql)
+
+       <\b<d\bdr\bri\biv\bve\ber\br-\b-o\bop\bpt\bti\bio\bon\bn-\b-n\bna\bam\bme\be>\b>=<\b<d\bdr\bri\biv\bve\ber\br-\b-o\bop\bpt\bti\bio\bon\bn-\b-v\bva\bal\blu\bue\be>\b>
+                 defines the parameters that are required to connect to the database with the given libdbi driver
+                 (These drivers are libdbi dependent - for details please look at the driver documentation of libdbi!)
+
+       /\b/r\brr\brd\bdm\bmi\bin\bns\bst\bte\bep\bps\bsi\biz\bze\be=<\b<m\bmi\bin\bni\bim\bmu\bum\bm s\bst\bte\bep\bp s\bsi\biz\bze\be>\b>
+                 defines the minimum number of the step-length used for graphing (default: 300 seconds)
+
+       /\b/r\brr\brd\bdf\bfi\bil\bll\blm\bmi\bis\bss\bsi\bin\bng\bg=<\b<f\bfi\bil\bll\bl m\bmi\bis\bss\bsi\bin\bng\bg s\bst\bte\bep\bps\bs>\b>
+                 defines the number of steps to fill with the last value to avoid NaN boxes due to data-insertation jitter (default: 0 steps)
+
+       <\b<t\bta\bab\bbl\ble\be>\b>
+                 defines the table from which to fetch the resultset.
+
+                 If there is a need to fetch data from several tables, these tables can be defined by separating the tablenames with a "+"
+
+                 hex-type-encoding via %xx are translated to the actual value, use %% to use %
+
+       <\b<[\b[*\b*]\b]u\bun\bni\bix\bxt\bti\bim\bme\bes\bst\bta\bam\bmp\bp c\bco\bol\blu\bum\bmn\bn>\b>
+                 defines the column of E<lt>tableE<gt> which contains the unix-timestamp
+                 - if this is a DATETIME field in the database, then prefix with leading '*'
+
+                 hex-type-encoding via %xx are translated to the actual value, use %% to use %
+
+       <\b<d\bda\bat\bta\ba v\bva\bal\blu\bue\be c\bco\bol\blu\bum\bmn\bn>\b>
+                 defines the column of E<lt>tableE<gt> which contains the value column, which should be graphed
+
+                 hex-type-encoding via %xx are translated to the actual value, use %% to use %
+
+       /\b/d\bde\ber\bri\biv\bve\be
+                 defines that the data value used should be the delta of the 2 consecutive values (to simulate COUNTER or DERIVE type datasources)
+
+       /\b/<\b<w\bwh\bhe\ber\bre\be c\bcl\bla\bau\bus\bse\be(\b(s\bs)\b)>\b>
+                 defines one (ore more) where clauses that are joined with AND to filter the entries in the <lt>table<gt>
+
+                 hex-type-encoding via %xx are translated to the actual value, use %% to use %
+
+       the returned value column-names, which can be used as ds-names, are:
+
+       m\bmi\bin\bn, a\bav\bvg\bg, m\bma\bax\bx, c\bco\bou\bun\bnt\bt and s\bsi\big\bgm\bma\ba
+                 are returned to be used as ds-names in your DS definition.
+                 The reason for using this is that if the consolidation function is used for min/avg and max, then the engine is used several times.
+                 And this results in the same SQL Statements used several times
+
+E\bEX\bXA\bAM\bMP\bPL\bLE\bES\bS
+       Here an example of a table in a MySQL database:
+
+         DB connect information
+           dbhost=127.0.0.1
+           user=rrd
+           password=secret
+           database=rrd
+
+         here the table:
+           CREATE TABLE RRDValue (
+             RRDKeyID      bigint(20) NOT NULL,
+             UnixTimeStamp int(11) NOT NULL,
+             value         double default NOT NULL,
+             PRIMARY KEY  (RRDKeyID,UnixTimeStamp)
+           );
+
+       and the RRDKeyID we want to graph for is: 1141942900757789274
+
+       The pseudo rrd-filename to access this is:
+       "sql//mysql/host=127.0.0.1/dbname=rrd/username=rrd/password=secret//RRDValue/UnixTimeStamp/value/RRDKeyID=1141464142203608274"
+
+       To illustrate this here a command to create a graph that contains the
+       actual values.
+
+         DS_BASE="sql//mysql/host=127.0.0.1/dbname=rrd/username=rrd/password=passwd//RRDValue/UnixTimeStamp/value/RRDKeyID=1141942900757789274"
+         rrdtool graph test.png --imgformat=PNG --start=-1day --end=+3hours --width=1000 --height=600 \
+           "DEF:min=$DS_BASE:min:AVERAGE" \
+           "LINE1:min#FF0000:value" \
+           "DEF:avg=$DS_BASE:avg:AVERAGE" \
+           "LINE1:avg#00FF00:average" \
+           "DEF:max=$DS_BASE:max:AVERAGE" \
+           "LINE1:max#FF0000:max" \
+           "DEF:sigma=$DS_BASE:sigma:AVERAGE" \
+           "CDEF:upper=avg,4,sigma,*,+" \
+           "LINE1:upper#0000FF:+4 sigma" \
+           "CDEF:lower=avg,4,sigma,*,-" \
+           "LINE1:lower#0000FF:-4 sigma"
+
+N\bNO\bOT\bTE\bES\bS
+       * Naturally you can also use any other kind of driver that libdbi
+       supports - e.g postgres, ...
+
+       * From the way the datasource is joined, it should also be possible to
+       do joins over different tables
+         (separate tables with "," in table and add in the WHERE Clauses the
+       table equal joins.
+         This has not been tested!!!)
+
+       * It should also be relatively simple to add to the database using the
+       same datasource string.
+         This has not been implemented...
+
+       * The aggregation functions are ignored and several data columns are
+       used instead
+         to avoid querying the same SQL several times when minimum, average
+       and maximum are needed for graphing...
+
+       * for DB efficiency you should think of having 2 tables, one containing
+       historic values and the other containing the latest data.
+         This second table should be kept small to allow for the least ammount
+       of blocking SQL statements.
+         Whith mysql you can even use myisam table-type for the first and
+       InnoDB for the second.
+         This is especially interresting as with tables with +100M rows myisam
+       is much smaller then InnoDB.
+
+       * To debug the SQL statements set the environment variable RRDDEBUGSQL
+       and the actual SQL statements and the timing is printed to stderr.
+
+B\bBU\bUG\bGS\bS
+       * at least on Linux please make sure that the libdbi driver is
+       explicitly linked against libdbi.so.0
+         check via ldd /usr/lib/dbd/libmysql.so, that there is a line with
+       libdbi.so.0.
+         otherwise at least the perl module RRDs will fail because the dynamic
+       linker can not find some symbols from libdbi.so.
+         (this only happens when the libdbi driver is actually used the first
+       time!)
+         This is KNOWN to be the case with RHEL4 and FC4 and FC5! (But
+       actually this is a bug with libdbi make files!)
+
+       * at least version 0.8.1 of libdbiexhibits a bug with BINARY fields
+         (shorttext,text,mediumtext,longtext and possibly also BINARY and BLOB
+       fields),
+         that can result in coredumps of rrdtool.
+         The tool will tell you on stderr if this occures, so that you know
+       what may be the reason.
+         If you are not experiencing these coredumps, then set the environment
+       variable RRD_NO_LIBDBI_BUG_WARNING,
+         and then the message will not get shown.
+
+A\bAU\bUT\bTH\bHO\bOR\bR
+       Martin Sperl <rrdtool@martin.sperl.org>
+
+
+
+1.3.999                           2009-06-09                RRDGRAPH_LIBDBI(1)
index c765dddb3c774c57396ac6dd4fb9cd6d3c76b783..a9ca9c63233b81a3f3632c7fba9a1c2c0aef32d4 100644 (file)
@@ -1,15 +1,7 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.08)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
 .de Sp \" Vertical space (when we can't use .PP)
 .if t .sp .5v
 .if n .sp
 ..
 .\" Set up some character translations and predefined strings.  \*(-- will
 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
 .ie n \{\
 .    ds -- \(*W-
 .    ds R" ''
 'br\}
 .\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
 .\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
 .\" entries marked with X<> in POD.  Of course, you'll have to process the
 .\" output yourself in some meaningful fashion.
-.if \nF \{\
+.ie \nF \{\
 .    de IX
 .    tm Index:\\$1\t\\n%\t"\\$2"
 ..
 .    nr % 0
 .    rr F
 .\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
+.el \{\
+.    de IX
+..
+.\}
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
 .\" ========================================================================
 .\"
 .IX Title "RRDGRAPH_RPN 1"
-.TH RRDGRAPH_RPN 1 "2009-02-21" "1.3.99909060808" "rrdtool"
+.TH RRDGRAPH_RPN 1 "2009-06-09" "1.3.999" "rrdtool"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
 .SH "NAME"
 rrdgraph_rpn \- About RPN Math in rrdtool graph
 .SH "SYNOPSIS"
@@ -193,7 +192,7 @@ mean that any value other than 0 is considered to be true.
 .Sp
 Example: \f(CW\*(C`A,B,C,IF\*(C'\fR should be read as \f(CW\*(C`if (A) then (B) else (C)\*(C'\fR
 .Sp
-\&\&
+
 .IP "Comparing values" 4
 .IX Item "Comparing values"
 \&\fB\s-1MIN\s0, \s-1MAX\s0\fR
@@ -217,7 +216,7 @@ will always return an \fIunknown\fR
 Example: \f(CW\*(C`CDEF:a=alpha,0,100,LIMIT\*(C'\fR will return \fIunknown\fR if
 alpha is lower than 0 or if it is higher than 100.
 .Sp
-\&\&
+
 .IP "Arithmetics" 4
 .IX Item "Arithmetics"
 \&\fB+, \-, *, /, %\fR
@@ -298,15 +297,14 @@ average is essentially computed as shown here:
 \&                     <\-\-\-\-\-\-\-\-\-\-\-\-\-\-\->
 \&                              delay      t2
 \&                         <\-\-\-\-\-\-\-\-\-\-\-\-\-\-\->
-.Ve
-.Sp
-.Vb 3
+\&
+\&
 \&     Value at sample (t0) will be the average between (t0\-delay) and (t0)
 \&     Value at sample (t1) will be the average between (t1\-delay) and (t1)
 \&     Value at sample (t2) will be the average between (t2\-delay) and (t2)
 .Ve
 .Sp
-\&\s-1TRENDNAN\s0 is \- in contrast to \s-1TREND\s0 \- NAN\-safe. If you use \s-1TREND\s0 and one 
+\&\s-1TRENDNAN\s0 is \- in contrast to \s-1TREND\s0 \- NAN-safe. If you use \s-1TREND\s0 and one 
 source value is \s-1NAN\s0 the complete sliding window is affected. The \s-1TRENDNAN\s0 
 operation ignores all NAN-values in a sliding window and computes the 
 average of the remaining values.
@@ -330,7 +328,7 @@ CDEF:predict=172800,86400,2,1800,x,PREDICT
 This will create a half-hour (1800 second) sliding window average/sigma of x, that
 average is essentially computed as shown here:
 .Sp
-.Vb 18
+.Vb 10
 \& +\-\-\-!\-\-\-!\-\-\-!\-\-\-!\-\-\-!\-\-\-!\-\-\-!\-\-\-!\-\-\-!\-\-\-!\-\-\-!\-\-\-!\-\-\-!\-\-\-!\-\-\-!\-\-\-!\-\-\-!\-\-\->
 \&                                                                     now
 \&                                                  shift 1        t0
@@ -349,16 +347,14 @@ average is essentially computed as shown here:
 \&                     <\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\->
 \&           window
 \&     <\-\-\-\-\-\-\-\-\-\-\-\-\-\-\->
-.Ve
-.Sp
-.Vb 4
+\&
 \& Value at sample (t0) will be the average between (t0\-shift1\-window) and (t0\-shift1)
 \&                                      and between (t0\-shift2\-window) and (t0\-shift2)
 \& Value at sample (t1) will be the average between (t1\-shift1\-window) and (t1\-shift1)
 \&                                      and between (t1\-shift2\-window) and (t1\-shift2)
 .Ve
 .Sp
-The function is by design NAN\-safe. 
+The function is by design NAN-safe. 
 This also allows for extrapolation into the future (say a few days)
 \&\- you may need to define the data series whit the optional start= parameter, so that 
 the source data series has enough data to provide prediction also at the beginning of a graph...
@@ -421,7 +417,7 @@ the data set. This function cannot be used in \fB\s-1VDEF\s0\fR instructions.
 .IP "Time" 4
 .IX Item "Time"
 Time inside RRDtool is measured in seconds since the epoch. The
-epoch is defined to be \f(CW\*(C`Thu\ Jan\ 1\ 00:00:00\ UTC\ 1970\*(C'\fR.
+epoch is defined to be \f(CW\*(C`Thu\ Jan\ 1\ 00:00:00\ UTC\ 1970\*(C'\fR.
 .Sp
 \&\fB\s-1NOW\s0\fR
 .Sp
@@ -444,7 +440,7 @@ in the examples section below on how to use this.
 Duplicate the top element, remove the top element, exchange the two
 top elements.
 .Sp
-\&\&
+
 .SH "VARIABLES"
 .IX Header "VARIABLES"
 These operators work only on \fB\s-1VDEF\s0\fR statements. Note that currently \s-1ONLY\s0 these work for \fB\s-1VDEF\s0\fR.
@@ -497,7 +493,7 @@ the line related to the \s-1COUNT\s0 position of the data.  \s-1LSLINT\s0 is the
 y\-intercept \fI(b)\fR, which happens also to be the first data point on the 
 graph. \s-1LSLCORREL\s0 is the Correlation Coefficient (also know as Pearson's 
 Product Moment Correlation Coefficient).  It will range from 0 to +/\-1 
-and represents the quality of fit for the approximation.   
+and represents the quality of fit for the approximation.
 .Sp
 Example: \f(CW\*(C`VDEF:slope=mydata,LSLSLOPE\*(C'\fR
 .SH "SEE ALSO"
index 0da9f789808b768d3cee9dbe259ed1a961c633d0..2f21e06696bd4d9c659c73c82b39d0e712816a09 100644 (file)
@@ -1,14 +1,18 @@
+<?xml version="1.0" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>rrdgraph_rpn</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <link rev="made" href="mailto:root@localhost" />
 </head>
 
 <body style="background-color: white">
 
-<p><a name="__index__"></a></p>
+
 <!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
 <!--
 
 <ul>
        <li><a href="#see_also">SEE ALSO</a></li>
        <li><a href="#author">AUTHOR</a></li>
 </ul>
+
 -->
+
+
+</div>
 <!-- INDEX END -->
 
 <p>
@@ -51,7 +59,7 @@ data point on the graph. <strong>VDEF</strong> instructions work on an entire da
 one run. Note, that currently <strong>VDEF</strong> instructions only support a limited
 list of functions.</p>
 <p>Example: <code>VDEF:maximum=mydata,MAXIMUM</code></p>
-<p>This will set variable ``maximum'' which you now can use in the rest
+<p>This will set variable &quot;maximum&quot; which you now can use in the rest
 of your RRD script.</p>
 <p>Example: <code>CDEF:mydatabits=mydata,8,*</code></p>
 <p>This means:  push variable <em>mydata</em>, push the number 8, execute
@@ -69,173 +77,92 @@ would do <code>a = b, 3, +, 5, *</code> without the need for parentheses.</p>
 <hr />
 <h1><a name="operators">OPERATORS</a></h1>
 <dl>
-<dt><strong><a name="item_boolean_operators">Boolean operators</a></strong><br />
-</dt>
-<dd>
-<strong>LT, LE, GT, GE, EQ, NE</strong>
-</dd>
+<dt><strong><a name="boolean_operators" class="item">Boolean operators</a></strong></dt>
+
 <dd>
+<p><strong>LT, LE, GT, GE, EQ, NE</strong></p>
 <p>Pop two elements from the stack, compare them for the selected condition
 and return 1 for true or 0 for false. Comparing an <em>unknown</em> or an
 <em>infinite</em> value will always result in 0 (false).</p>
-</dd>
-<dd>
 <p><strong>UN, ISINF</strong></p>
-</dd>
-<dd>
 <p>Pop one element from the stack, compare this to <em>unknown</em> respectively
 to <em>positive or negative infinity</em>. Returns 1 for true or 0 for false.</p>
-</dd>
-<dd>
 <p><strong>IF</strong></p>
-</dd>
-<dd>
 <p>Pops three elements from the stack.  If the element popped last is 0
 (false), the value popped first is pushed back onto the stack,
 otherwise the value popped second is pushed back. This does, indeed,
 mean that any value other than 0 is considered to be true.</p>
-</dd>
-<dd>
 <p>Example: <code>A,B,C,IF</code> should be read as <code>if (A) then (B) else (C)</code></p>
-</dd>
-<dd>
-<p></p>
-</dd>
 <p></p>
-<dt><strong><a name="item_comparing_values">Comparing values</a></strong><br />
-</dt>
-<dd>
-<strong>MIN, MAX</strong>
 </dd>
+<dt><strong><a name="comparing_values" class="item">Comparing values</a></strong></dt>
+
 <dd>
+<p><strong>MIN, MAX</strong></p>
 <p>Pops two elements from the stack and returns the smaller or larger,
 respectively.  Note that <em>infinite</em> is larger than anything else.
 If one of the input numbers is <em>unknown</em> then the result of the operation will be
 <em>unknown</em> too.</p>
-</dd>
-<dd>
 <p><strong>LIMIT</strong></p>
-</dd>
-<dd>
 <p>Pops two elements from the stack and uses them to define a range.
 Then it pops another element and if it falls inside the range, it
 is pushed back. If not, an <em>unknown</em> is pushed.</p>
-</dd>
-<dd>
 <p>The range defined includes the two boundaries (so: a number equal
 to one of the boundaries will be pushed back). If any of the three
 numbers involved is either <em>unknown</em> or <em>infinite</em> this function
 will always return an <em>unknown</em></p>
-</dd>
-<dd>
 <p>Example: <code>CDEF:a=alpha,0,100,LIMIT</code> will return <em>unknown</em> if
 alpha is lower than 0 or if it is higher than 100.</p>
-</dd>
-<dd>
 <p></p>
 </dd>
-<p></p>
-<dt><strong><a name="item_arithmetics">Arithmetics</a></strong><br />
-</dt>
-<dd>
-<strong>+, -, *, /, %</strong>
-</dd>
+<dt><strong><a name="arithmetics" class="item">Arithmetics</a></strong></dt>
+
 <dd>
+<p><strong>+, -, *, /, %</strong></p>
 <p>Add, subtract, multiply, divide, modulo</p>
-</dd>
-<dd>
 <p><strong>ADDNAN</strong></p>
-</dd>
-<dd>
 <p>NAN-safe addition. If one parameter is NAN/UNKNOWN it'll be treated as
 zero. If both parameters are NAN/UNKNOWN, NAN/UNKNOWN will be returned.</p>
-</dd>
-<dd>
 <p><strong>SIN, COS, LOG, EXP, SQRT</strong></p>
-</dd>
-<dd>
 <p>Sine and cosine (input in radians), log and exp (natural logarithm),
 square root.</p>
-</dd>
-<dd>
 <p><strong>ATAN</strong></p>
-</dd>
-<dd>
 <p>Arctangent (output in radians).</p>
-</dd>
-<dd>
 <p><strong>ATAN2</strong></p>
-</dd>
-<dd>
 <p>Arctangent of y,x components (output in radians).
 This pops one element from the stack, the x (cosine) component, and then
 a second, which is the y (sine) component.
 It then pushes the arctangent of their ratio, resolving the ambiguity between
 quadrants.</p>
-</dd>
-<dd>
 <p>Example: <code>CDEF:angle=Y,X,ATAN2,RAD2DEG</code> will convert <code>X,Y</code>
 components into an angle in degrees.</p>
-</dd>
-<dd>
 <p><strong>FLOOR, CEIL</strong></p>
-</dd>
-<dd>
 <p>Round down or up to the nearest integer.</p>
-</dd>
-<dd>
 <p><strong>DEG2RAD, RAD2DEG</strong></p>
-</dd>
-<dd>
 <p>Convert angle in degrees to radians, or radians to degrees.</p>
-</dd>
-<dd>
 <p><strong>ABS</strong></p>
-</dd>
-<dd>
 <p>Take the absolute value.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_set_operations">Set Operations</a></strong><br />
-</dt>
-<dd>
-<strong>SORT, REV</strong>
-</dd>
+<dt><strong><a name="set_operations" class="item">Set Operations</a></strong></dt>
+
 <dd>
+<p><strong>SORT, REV</strong></p>
 <p>Pop one element from the stack.  This is the <em>count</em> of items to be sorted
 (or reversed).  The top <em>count</em> of the remaining elements are then sorted
 (or reversed) in place on the stack.</p>
-</dd>
-<dd>
 <p>Example: <code>CDEF:x=v1,v2,v3,v4,v5,v6,6,SORT,POP,5,REV,POP,+,+,+,4,/</code> will
 compute the average of the values v1 to v6 after removing the smallest and
 largest.</p>
-</dd>
-<dd>
 <p><strong>AVG</strong></p>
-</dd>
-<dd>
 <p>Pop one element (<em>count</em>) from the stack. Now pop <em>count</em> elements and build the
 average, ignoring all UNKNOWN values in the process.</p>
-</dd>
-<dd>
 <p>Example: <code>CDEF:x=a,b,c,d,4,AVG</code></p>
-</dd>
-<dd>
 <p><strong>TREND, TRENDNAN</strong></p>
-</dd>
-<dd>
-<p>Create a ``sliding window'' average of another data series.</p>
-</dd>
-<dd>
+<p>Create a &quot;sliding window&quot; average of another data series.</p>
 <p>Usage:
 CDEF:smoothed=x,1800,TREND</p>
-</dd>
-<dd>
 <p>This will create a half-hour (1800 second) sliding window average of x.  The
 average is essentially computed as shown here:</p>
-</dd>
-<dd>
 <pre>
                  +---!---!---!---!---!---!---!---!---&gt;
                                                      now
@@ -245,45 +172,27 @@ average is essentially computed as shown here:</p>
                      &lt;---------------&gt;
                               delay      t2
                          &lt;---------------&gt;</pre>
-</dd>
-<dd>
 <pre>
      Value at sample (t0) will be the average between (t0-delay) and (t0)
      Value at sample (t1) will be the average between (t1-delay) and (t1)
      Value at sample (t2) will be the average between (t2-delay) and (t2)</pre>
-</dd>
-<dd>
 <p>TRENDNAN is - in contrast to TREND - NAN-safe. If you use TREND and one 
 source value is NAN the complete sliding window is affected. The TRENDNAN 
 operation ignores all NAN-values in a sliding window and computes the 
 average of the remaining values.</p>
-</dd>
-<dd>
 <p><strong>PREDICT, PREDICTSIGMA</strong></p>
-</dd>
-<dd>
-<p>Create a ``sliding window'' average/sigma of another data series, that also
+<p>Create a &quot;sliding window&quot; average/sigma of another data series, that also
 shifts the data series by given amounts of of time as well</p>
-</dd>
-<dd>
 <p>Usage - explicit stating shifts:
 CDEF:predict=&lt;shift n&gt;,...,&lt;shift 1&gt;,n,&lt;window&gt;,x,PREDICT
 CDEF:sigma=&lt;shift n&gt;,...,&lt;shift 1&gt;,n,&lt;window&gt;,x,PREDICTSIGMA</p>
-</dd>
-<dd>
 <p>Usage - shifts defined as a base shift and a number of time this is applied
 CDEF:predict=&lt;shift multiplier&gt;,-n,&lt;window&gt;,x,PREDICT
 CDEF:sigma=&lt;shift multiplier&gt;,-n,&lt;window&gt;,x,PREDICTSIGMA</p>
-</dd>
-<dd>
 <p>Example:
 CDEF:predict=172800,86400,2,1800,x,PREDICT</p>
-</dd>
-<dd>
 <p>This will create a half-hour (1800 second) sliding window average/sigma of x, that
 average is essentially computed as shown here:</p>
-</dd>
-<dd>
 <pre>
  +---!---!---!---!---!---!---!---!---!---!---!---!---!---!---!---!---!---&gt;
                                                                      now
@@ -303,26 +212,18 @@ average is essentially computed as shown here:</p>
                      &lt;-----------------------------------------------&gt;
            window
      &lt;---------------&gt;</pre>
-</dd>
-<dd>
 <pre>
  Value at sample (t0) will be the average between (t0-shift1-window) and (t0-shift1)
                                       and between (t0-shift2-window) and (t0-shift2)
  Value at sample (t1) will be the average between (t1-shift1-window) and (t1-shift1)
                                       and between (t1-shift2-window) and (t1-shift2)</pre>
-</dd>
-<dd>
 <p>The function is by design NAN-safe. 
 This also allows for extrapolation into the future (say a few days)
 - you may need to define the data series whit the optional start= parameter, so that 
 the source data series has enough data to provide prediction also at the beginning of a graph...</p>
-</dd>
-<dd>
 <p>Here an example, that will create a 10 day graph that also shows the 
 prediction 3 days into the future with its uncertainty value (as defined by avg+-4*sigma)
 This also shows if the prediction is exceeded at a certain point.</p>
-</dd>
-<dd>
 <p>rrdtool graph image.png --imgformat=PNG \
  --start=-7days --end=+3days --width=1000 --height=200 --alt-autoscale-max \
  DEF:value=value.rrd:value:AVERAGE:start=-14days \
@@ -336,153 +237,100 @@ This also shows if the prediction is exceeded at a certain point.</p>
  LINE1:lower#0000ff:lower\ certainty\ limit \
  CDEF:exceeds=value,UN,0,value,lower,upper,LIMIT,UN,IF \
  TICK:exceeds#aa000080:1</p>
-</dd>
-<dd>
 <p>Note: Experience has shown that a factor between 3 and 5 to scale sigma is a good 
 discriminator to detect abnormal behaviour. This obviously depends also on the type 
-of data and how ``noisy'' the data series is.</p>
-</dd>
-<dd>
+of data and how &quot;noisy&quot; the data series is.</p>
 <p>This prediction can only be used for short term extrapolations - say a few days into the future-</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_special_values">Special values</a></strong><br />
-</dt>
-<dd>
-<strong>UNKN</strong>
-</dd>
+<dt><strong><a name="special_values" class="item">Special values</a></strong></dt>
+
 <dd>
+<p><strong>UNKN</strong></p>
 <p>Pushes an unknown value on the stack</p>
-</dd>
-<dd>
 <p><strong>INF, NEGINF</strong></p>
-</dd>
-<dd>
 <p>Pushes a positive or negative infinite value on the stack. When
 such a value is graphed, it appears at the top or bottom of the
 graph, no matter what the actual value on the y-axis is.</p>
-</dd>
-<dd>
 <p><strong>PREV</strong></p>
-</dd>
-<dd>
 <p>Pushes an <em>unknown</em> value if this is the first value of a data
 set or otherwise the result of this <strong>CDEF</strong> at the previous time
 step. This allows you to do calculations across the data.  This
 function cannot be used in <strong>VDEF</strong> instructions.</p>
-</dd>
-<dd>
 <p><strong>PREV(vname)</strong></p>
-</dd>
-<dd>
 <p>Pushes an <em>unknown</em> value if this is the first value of a data
 set or otherwise the result of the vname variable at the previous time
 step. This allows you to do calculations across the data. This
 function cannot be used in <strong>VDEF</strong> instructions.</p>
-</dd>
-<dd>
 <p><strong>COUNT</strong></p>
-</dd>
-<dd>
 <p>Pushes the number 1 if this is the first value of the data set, the
 number 2 if it is the second, and so on. This special value allows
 you to make calculations based on the position of the value within
 the data set. This function cannot be used in <strong>VDEF</strong> instructions.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_time">Time</a></strong><br />
-</dt>
-<dd>
-Time inside RRDtool is measured in seconds since the epoch. The
-epoch is defined to be <code>Thu&nbsp;Jan&nbsp;&nbsp;1&nbsp;00:00:00&nbsp;UTC&nbsp;1970</code>.
-</dd>
+<dt><strong><a name="time" class="item">Time</a></strong></dt>
+
 <dd>
+<p>Time inside RRDtool is measured in seconds since the epoch. The
+epoch is defined to be <code>Thu&nbsp;Jan&nbsp;&nbsp;1&nbsp;00:00:00&nbsp;UTC&nbsp;1970</code>.</p>
 <p><strong>NOW</strong></p>
-</dd>
-<dd>
 <p>Pushes the current time on the stack.</p>
-</dd>
-<dd>
 <p><strong>TIME</strong></p>
-</dd>
-<dd>
 <p>Pushes the time the currently processed value was taken at onto the stack.</p>
-</dd>
-<dd>
 <p><strong>LTIME</strong></p>
-</dd>
-<dd>
 <p>Takes the time as defined by <strong>TIME</strong>, applies the time zone offset
 valid at that time including daylight saving time if your OS supports
 it, and pushes the result on the stack.  There is an elaborate example
 in the examples section below on how to use this.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_processing_the_stack_directly">Processing the stack directly</a></strong><br />
-</dt>
-<dd>
-<strong>DUP, POP, EXC</strong>
-</dd>
+<dt><strong><a name="processing_the_stack_directly" class="item">Processing the stack directly</a></strong></dt>
+
 <dd>
+<p><strong>DUP, POP, EXC</strong></p>
 <p>Duplicate the top element, remove the top element, exchange the two
 top elements.</p>
-</dd>
-<dd>
 <p></p>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <hr />
 <h1><a name="variables">VARIABLES</a></h1>
 <p>These operators work only on <strong>VDEF</strong> statements. Note that currently ONLY these work for <strong>VDEF</strong>.</p>
 <dl>
-<dt><strong><a name="item_maximum_2c_minimum_2c_average">MAXIMUM, MINIMUM, AVERAGE</a></strong><br />
-</dt>
-<dd>
-Return the corresponding value, MAXIMUM and MINIMUM also return
-the first occurrence of that value in the time component.
-</dd>
+<dt><strong><a name="maximum_minimum_average" class="item">MAXIMUM, MINIMUM, AVERAGE</a></strong></dt>
+
 <dd>
+<p>Return the corresponding value, MAXIMUM and MINIMUM also return
+the first occurrence of that value in the time component.</p>
 <p>Example: <code>VDEF:avg=mydata,AVERAGE</code></p>
 </dd>
-<p></p>
-<dt><strong><a name="item_stdev">STDEV</a></strong><br />
-</dt>
-<dd>
-Returns the standard deviation of the values.
-</dd>
+<dt><strong><a name="stdev" class="item">STDEV</a></strong></dt>
+
 <dd>
+<p>Returns the standard deviation of the values.</p>
 <p>Example: <code>VDEF:stdev=mydata,STDEV</code></p>
 </dd>
-<p></p>
-<dt><strong><a name="item_last_2c_first">LAST, FIRST</a></strong><br />
-</dt>
+<dt><strong><a name="last_first" class="item">LAST, FIRST</a></strong></dt>
+
 <dd>
-Return the last/first value including its time.  The time for
+<p>Return the last/first value including its time.  The time for
 FIRST is actually the start of the corresponding interval, whereas
-LAST returns the end of the corresponding interval.
-</dd>
-<dd>
+LAST returns the end of the corresponding interval.</p>
 <p>Example: <code>VDEF:first=mydata,FIRST</code></p>
 </dd>
-<p></p>
-<dt><strong><a name="item_total">TOTAL</a></strong><br />
-</dt>
+<dt><strong><a name="total" class="item">TOTAL</a></strong></dt>
+
 <dd>
-Returns the rate from each defined time slot multiplied with the
+<p>Returns the rate from each defined time slot multiplied with the
 step size.  This can, for instance, return total bytes transfered
 when you have logged bytes per second. The time component returns
-the number of seconds.
-</dd>
-<dd>
+the number of seconds.</p>
 <p>Example: <code>VDEF:total=mydata,TOTAL</code></p>
 </dd>
-<p></p>
-<dt><strong><a name="item_percent_2c_percentnan">PERCENT, PERCENTNAN</a></strong><br />
-</dt>
+<dt><strong><a name="percent_percentnan" class="item">PERCENT, PERCENTNAN</a></strong></dt>
+
 <dd>
-This should follow a <strong>DEF</strong> or <strong>CDEF</strong> <em>vname</em>. The <em>vname</em> is popped,
+<p>This should follow a <strong>DEF</strong> or <strong>CDEF</strong> <em>vname</em>. The <em>vname</em> is popped,
 another number is popped which is a certain percentage (0..100). The
 data set is then sorted and the value returned is chosen such that
 <em>percentage</em> percent of the values is lower or equal than the result.
@@ -491,28 +339,23 @@ For PERCENTNAN <em>Unknown</em> values are ignored, but for PERCENT
 purpose so if this operator returns an <em>unknown</em> you have quite a lot
 of them in your data.  <strong>Inf</strong>inite numbers are lesser, or more, than the
 finite numbers and are always more than the <em>Unknown</em> numbers.
-(NaN &lt; -INF &lt; finite values &lt; INF)
-</dd>
-<dd>
+(NaN &lt; -INF &lt; finite values &lt; INF)</p>
 <p>Example: <code>VDEF:perc95=mydata,95,PERCENT</code>
          <code>VDEF:percnan95=mydata,95,PERCENTNAN</code></p>
 </dd>
-<p></p>
-<dt><strong><a name="item_lslslope_2c_lslint_2c_lslcorrel">LSLSLOPE, LSLINT, LSLCORREL</a></strong><br />
-</dt>
+<dt><strong><a name="lslslope_lslint_lslcorrel" class="item">LSLSLOPE, LSLINT, LSLCORREL</a></strong></dt>
+
 <dd>
-Return the parameters for a <strong>L</strong>east <strong>S</strong>quares <strong>L</strong>ine <em>(y = mx +b)</em> 
+<p>Return the parameters for a <strong>L</strong>east <strong>S</strong>quares <strong>L</strong>ine <em>(y = mx +b)</em> 
 which approximate the provided dataset.  LSLSLOPE is the slope <em>(m)</em> of
 the line related to the COUNT position of the data.  LSLINT is the 
 y-intercept <em>(b)</em>, which happens also to be the first data point on the 
 graph. LSLCORREL is the Correlation Coefficient (also know as Pearson's 
 Product Moment Correlation Coefficient).  It will range from 0 to +/-1 
-and represents the quality of fit for the approximation.
-</dd>
-<dd>
+and represents the quality of fit for the approximation.</p>
 <p>Example: <code>VDEF:slope=mydata,LSLSLOPE</code></p>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <hr />
index 327dc0d6629813faf8ab0f71d0e026160f6f20a6..5de743f3c342214abe3b05a2aa178ea175239fa8 100644 (file)
@@ -11,17 +11,17 @@ S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        If you have ever used a traditional HP calculator you already know R\bRP\bPN\bN
        (Reverse Polish Notation).  The idea behind R\bRP\bPN\bN is that you have a
-       stack and push your data onto this stack. Whenever you execute an oper-
-       ation, it takes as many elements from the stack as needed. Pushing is
-       done implicitly, so whenever you specify a number or a variable, it
+       stack and push your data onto this stack. Whenever you execute an
+       operation, it takes as many elements from the stack as needed. Pushing
+       is done implicitly, so whenever you specify a number or a variable, it
        gets pushed onto the stack automatically.
 
        At the end of the calculation there should be one and only one value
        left on the stack.  This is the outcome of the function and this is
-       what is put into the _\bv_\bn_\ba_\bm_\be.  For C\bCD\bDE\bEF\bF instructions, the stack is pro-
-       cessed for each data point on the graph. V\bVD\bDE\bEF\bF instructions work on an
-       entire data set in one run. Note, that currently V\bVD\bDE\bEF\bF instructions only
-       support a limited list of functions.
+       what is put into the _\bv_\bn_\ba_\bm_\be.  For C\bCD\bDE\bEF\bF instructions, the stack is
+       processed for each data point on the graph. V\bVD\bDE\bEF\bF instructions work on
+       an entire data set in one run. Note, that currently V\bVD\bDE\bEF\bF instructions
+       only support a limited list of functions.
 
        Example: "VDEF:maximum=mydata,MAXIMUM"
 
@@ -30,9 +30,9 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
 
        Example: "CDEF:mydatabits=mydata,8,*"
 
-       This means:  push variable _\bm_\by_\bd_\ba_\bt_\ba, push the number 8, execute the oper-
-       ator _\b*. The operator needs two elements and uses those to return one
-       value.  This value is then stored in _\bm_\by_\bd_\ba_\bt_\ba_\bb_\bi_\bt_\bs.  As you may have
+       This means:  push variable _\bm_\by_\bd_\ba_\bt_\ba, push the number 8, execute the
+       operator _\b*. The operator needs two elements and uses those to return
+       one value.  This value is then stored in _\bm_\by_\bd_\ba_\bt_\ba_\bb_\bi_\bt_\bs.  As you may have
        guessed, this instruction means nothing more than _\bm_\by_\bd_\ba_\bt_\ba_\bb_\bi_\bt_\bs _\b= _\bm_\by_\bd_\ba_\bt_\ba _\b*
        _\b8.  The real power of R\bRP\bPN\bN lies in the fact that it is always clear in
        which order to process the input.  For expressions like "a = b + 3 * 5"
@@ -44,15 +44,15 @@ O\bOP\bPE\bER\bRA\bAT\bTO\bOR\bRS\bS
        Boolean operators
            L\bLT\bT,\b, L\bLE\bE,\b, G\bGT\bT,\b, G\bGE\bE,\b, E\bEQ\bQ,\b, N\bNE\bE
 
-           Pop two elements from the stack, compare them for the selected con-
-           dition and return 1 for true or 0 for false. Comparing an _\bu_\bn_\bk_\bn_\bo_\bw_\bn
-           or an _\bi_\bn_\bf_\bi_\bn_\bi_\bt_\be value will always result in 0 (false).
+           Pop two elements from the stack, compare them for the selected
+           condition and return 1 for true or 0 for false. Comparing an
+           _\bu_\bn_\bk_\bn_\bo_\bw_\bor an _\bi_\bn_\bf_\bi_\bn_\bi_\bt_\be value will always result in 0 (false).
 
            U\bUN\bN,\b, I\bIS\bSI\bIN\bNF\bF
 
-           Pop one element from the stack, compare this to _\bu_\bn_\bk_\bn_\bo_\bw_\bn respec-
-           tively to _\bp_\bo_\bs_\bi_\bt_\bi_\bv_\be _\bo_\br _\bn_\be_\bg_\ba_\bt_\bi_\bv_\be _\bi_\bn_\bf_\bi_\bn_\bi_\bt_\by. Returns 1 for true or 0
-           for false.
+           Pop one element from the stack, compare this to _\bu_\bn_\bk_\bn_\bo_\bw_\bn
+           respectively to _\bp_\bo_\bs_\bi_\bt_\bi_\bv_\be _\bo_\br _\bn_\be_\bg_\ba_\bt_\bi_\bv_\be _\bi_\bn_\bf_\bi_\bn_\bi_\bt_\by. Returns 1 for true
+           or 0 for false.
 
            I\bIF\bF
 
@@ -70,8 +70,8 @@ O\bOP\bPE\bER\bRA\bAT\bTO\bOR\bRS\bS
 
            Pops two elements from the stack and returns the smaller or larger,
            respectively.  Note that _\bi_\bn_\bf_\bi_\bn_\bi_\bt_\be is larger than anything else.  If
-           one of the input numbers is _\bu_\bn_\bk_\bn_\bo_\bw_\bn then the result of the opera-
-           tion will be _\bu_\bn_\bk_\bn_\bo_\bw_\bn too.
+           one of the input numbers is _\bu_\bn_\bk_\bn_\bo_\bw_\bn then the result of the
+           operation will be _\bu_\bn_\bk_\bn_\bo_\bw_\bn too.
 
            L\bLI\bIM\bMI\bIT\bT
 
@@ -102,8 +102,8 @@ O\bOP\bPE\bER\bRA\bAT\bTO\bOR\bRS\bS
 
            S\bSI\bIN\bN,\b, C\bCO\bOS\bS,\b, L\bLO\bOG\bG,\b, E\bEX\bXP\bP,\b, S\bSQ\bQR\bRT\bT
 
-           Sine and cosine (input in radians), log and exp (natural loga-
-           rithm), square root.
+           Sine and cosine (input in radians), log and exp (natural
+           logarithm), square root.
 
            A\bAT\bTA\bAN\bN
 
@@ -112,12 +112,13 @@ O\bOP\bPE\bER\bRA\bAT\bTO\bOR\bRS\bS
            A\bAT\bTA\bAN\bN2\b2
 
            Arctangent of y,x components (output in radians).  This pops one
-           element from the stack, the x (cosine) component, and then a sec-
-           ond, which is the y (sine) component.  It then pushes the arctan-
-           gent of their ratio, resolving the ambiguity between quadrants.
+           element from the stack, the x (cosine) component, and then a
+           second, which is the y (sine) component.  It then pushes the
+           arctangent of their ratio, resolving the ambiguity between
+           quadrants.
 
-           Example: "CDEF:angle=Y,X,ATAN2,RAD2DEG" will convert "X,Y" compo-
-           nents into an angle in degrees.
+           Example: "CDEF:angle=Y,X,ATAN2,RAD2DEG" will convert "X,Y"
+           components into an angle in degrees.
 
            F\bFL\bLO\bOO\bOR\bR,\b, C\bCE\bEI\bIL\bL
 
@@ -167,6 +168,7 @@ O\bOP\bPE\bER\bRA\bAT\bTO\bOR\bRS\bS
                                          delay      t2
                                     <--------------->
 
+
                 Value at sample (t0) will be the average between (t0-delay) and (t0)
                 Value at sample (t1) will be the average between (t1-delay) and (t1)
                 Value at sample (t2) will be the average between (t2-delay) and (t2)
@@ -183,8 +185,8 @@ O\bOP\bPE\bER\bRA\bAT\bTO\bOR\bRS\bS
            well
 
            Usage - explicit stating shifts: CDEF:predict=<shift n>,...,<shift
-           1>,n,<window>,x,PREDICT CDEF:sigma=<shift n>,...,<shift 1>,n,<win-
-           dow>,x,PREDICTSIGMA
+           1>,n,<window>,x,PREDICT CDEF:sigma=<shift n>,...,<shift
+           1>,n,<window>,x,PREDICTSIGMA
 
            Usage - shifts defined as a base shift and a number of time this is
            applied CDEF:predict=<shift multiplier>,-n,<window>,x,PREDICT
@@ -192,8 +194,9 @@ O\bOP\bPE\bER\bRA\bAT\bTO\bOR\bRS\bS
 
            Example: CDEF:predict=172800,86400,2,1800,x,PREDICT
 
-           This will create a half-hour (1800 second) sliding window aver-
-           age/sigma of x, that average is essentially computed as shown here:
+           This will create a half-hour (1800 second) sliding window
+           average/sigma of x, that average is essentially computed as shown
+           here:
 
             +---!---!---!---!---!---!---!---!---!---!---!---!---!---!---!---!---!--->
                                                                                 now
@@ -219,11 +222,11 @@ O\bOP\bPE\bER\bRA\bAT\bTO\bOR\bRS\bS
             Value at sample (t1) will be the average between (t1-shift1-window) and (t1-shift1)
                                                  and between (t1-shift2-window) and (t1-shift2)
 
-           The function is by design NAN-safe.  This also allows for extrapo-
-           lation into the future (say a few days) - you may need to define
-           the data series whit the optional start= parameter, so that the
-           source data series has enough data to provide prediction also at
-           the beginning of a graph...
+           The function is by design NAN-safe.  This also allows for
+           extrapolation into the future (say a few days) - you may need to
+           define the data series whit the optional start= parameter, so that
+           the source data series has enough data to provide prediction also
+           at the beginning of a graph...
 
            Here an example, that will create a 10 day graph that also shows
            the prediction 3 days into the future with its uncertainty value
@@ -268,8 +271,8 @@ O\bOP\bPE\bER\bRA\bAT\bTO\bOR\bRS\bS
 
            Pushes an _\bu_\bn_\bk_\bn_\bo_\bw_\bn value if this is the first value of a data set or
            otherwise the result of this C\bCD\bDE\bEF\bF at the previous time step. This
-           allows you to do calculations across the data.  This function can-
-           not be used in V\bVD\bDE\bEF\bF instructions.
+           allows you to do calculations across the data.  This function
+           cannot be used in V\bVD\bDE\bEF\bF instructions.
 
            P\bPR\bRE\bEV\bV(\b(v\bvn\bna\bam\bme\be)\b)
 
@@ -287,7 +290,7 @@ O\bOP\bPE\bER\bRA\bAT\bTO\bOR\bRS\bS
 
        Time
            Time inside RRDtool is measured in seconds since the epoch. The
-           epoch is defined to be "Thu Jan 1 00:00:00 UTC 1970".
+           epoch is defined to be "Thu Jan  1 00:00:00 UTC 1970".
 
            N\bNO\bOW\bW
 
@@ -301,9 +304,9 @@ O\bOP\bPE\bER\bRA\bAT\bTO\bOR\bRS\bS
            L\bLT\bTI\bIM\bME\bE
 
            Takes the time as defined by T\bTI\bIM\bME\bE, applies the time zone offset
-           valid at that time including daylight saving time if your OS sup-
-           ports it, and pushes the result on the stack.  There is an elabo-
-           rate example in the examples section below on how to use this.
+           valid at that time including daylight saving time if your OS
+           supports it, and pushes the result on the stack.  There is an
+           elaborate example in the examples section below on how to use this.
 
        Processing the stack directly
            D\bDU\bUP\bP,\b, P\bPO\bOP\bP,\b, E\bEX\bXC\bC
@@ -365,8 +368,8 @@ V\bVA\bAR\bRI\bIA\bAB\bBL\bLE\bES\bS
            y-intercept _\b(_\bb_\b), which happens also to be the first data point on
            the graph. LSLCORREL is the Correlation Coefficient (also know as
            Pearson's Product Moment Correlation Coefficient).  It will range
-           from 0 to +/-1 and represents the quality of fit for the approxima-
-           tion.
+           from 0 to +/-1 and represents the quality of fit for the
+           approximation.
 
            Example: "VDEF:slope=mydata,LSLSLOPE"
 
@@ -386,4 +389,4 @@ A\bAU\bUT\bTH\bHO\bOR\bR
 
 
 
-1.3.99909060808                   2009-02-21                   RRDGRAPH_RPN(1)
+1.3.999                           2009-06-09                   RRDGRAPH_RPN(1)
index 51f096651ccbe5093005c1747b0c2b965c2f7edb..ade296e3d7c27d8effaf94b04fdfe1554a6eeded 100644 (file)
@@ -1,15 +1,7 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.08)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
 .de Sp \" Vertical space (when we can't use .PP)
 .if t .sp .5v
 .if n .sp
 ..
 .\" Set up some character translations and predefined strings.  \*(-- will
 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
 .ie n \{\
 .    ds -- \(*W-
 .    ds R" ''
 'br\}
 .\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
 .\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
 .\" entries marked with X<> in POD.  Of course, you'll have to process the
 .\" output yourself in some meaningful fashion.
-.if \nF \{\
+.ie \nF \{\
 .    de IX
 .    tm Index:\\$1\t\\n%\t"\\$2"
 ..
 .    nr % 0
 .    rr F
 .\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
+.el \{\
+.    de IX
+..
+.\}
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
 .\" ========================================================================
 .\"
 .IX Title "RRDINFO 1"
-.TH RRDINFO 1 "2009-04-20" "1.3.99909060808" "rrdtool"
+.TH RRDINFO 1 "2009-06-09" "1.3.999" "rrdtool"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
 .SH "NAME"
 rrdinfo \- extract header information from an RRD
 .SH "SYNOPSIS"
@@ -165,7 +164,7 @@ stands for \fI*UNKNOWN*\fR data. In the example it means that this \s-1RRD\s0
 has neither minimum nor maximum values defined for either of its
 data sources.
 .PP
-.Vb 25
+.Vb 10
 \& filename = "random.rrd"
 \& rrd_version = "0001"
 \& step = 300
index 1b973e87785ba33357eb5ea46c020bc47d0f1e4a..76863527fb631a42c2200c4c1fb583224a62340c 100644 (file)
@@ -1,14 +1,18 @@
+<?xml version="1.0" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>rrdinfo</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <link rev="made" href="mailto:root@localhost" />
 </head>
 
 <body style="background-color: white">
 
-<p><a name="__index__"></a></p>
+
 <!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
 <!--
 
 <ul>
        <li><a href="#environment_variables">ENVIRONMENT VARIABLES</a></li>
        <li><a href="#author">AUTHOR</a></li>
 </ul>
+
 -->
+
+
+</div>
 <!-- INDEX END -->
 
 <p>
@@ -42,25 +50,22 @@ a parsing friendly format.</p>
 <p>Check <a href="././rrdcreate.html">the rrdcreate manpage</a> if you are uncertain about the meaning of the
 individual keys.</p>
 <dl>
-<dt><strong><a name="item_filename"><em>filename</em></a></strong><br />
-</dt>
+<dt><strong><a name="filename" class="item"><em>filename</em></a></strong></dt>
+
 <dd>
-The name of the <strong>RRD</strong> you want to examine.
+<p>The name of the <strong>RRD</strong> you want to examine.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2d_2ddaemon_address"><strong>--daemon</strong> <em>address</em></a></strong><br />
-</dt>
+<dt><strong><a name="daemon_address" class="item"><strong>--daemon</strong> <em>address</em></a></strong></dt>
+
 <dd>
-Address of the <a href="././rrdcached.html">the rrdcached manpage</a> daemon. If specified, a <code>flush</code> command is sent
+<p>Address of the <a href="././rrdcached.html">the rrdcached manpage</a> daemon. If specified, a <code>flush</code> command is sent
 to the server before reading the RRD files. This allows <strong>rrdtool</strong> to return
 fresh data even if the daemon is configured to cache values for a long time.
-For a list of accepted formats, see the <strong>-l</strong> option in the <a href="././rrdcached.html">the rrdcached manpage</a> manual.
-</dd>
-<dd>
+For a list of accepted formats, see the <strong>-l</strong> option in the <a href="././rrdcached.html">the rrdcached manpage</a> manual.</p>
 <pre>
  rrdtool info --daemon unix:/var/run/rrdcached.sock /var/lib/rrd/foo.rrd</pre>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <hr />
@@ -104,14 +109,14 @@ data sources.</p>
 <p>The following environment variables may be used to change the behavior of
 <code>rrdtoolinfo</code>:</p>
 <dl>
-<dt><strong><a name="item_rrdcached_address"><strong>RRDCACHED_ADDRESS</strong></a></strong><br />
-</dt>
+<dt><strong><a name="rrdcached_address" class="item"><strong>RRDCACHED_ADDRESS</strong></a></strong></dt>
+
 <dd>
-If this environment variable is set it will have the same effect as specifying
+<p>If this environment variable is set it will have the same effect as specifying
 the <code>--daemon</code> option on the command line. If both are present, the command
-line argument takes precedence.
+line argument takes precedence.</p>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <hr />
index 62314d38044ab988ede42ee5683906bf6d251bed..9433396191b1b03fd90e4d46bb879d6cf69d5f19 100644 (file)
@@ -9,30 +9,30 @@ S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
        r\brr\brd\bdt\bto\boo\bol\bl i\bin\bnf\bfo\bo _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be [-\b--\b-d\bda\bae\bem\bmo\bon\bn _\ba_\bd_\bd_\br_\be_\bs_\bs]
 
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
-       The i\bin\bnf\bfo\bo function prints the header information from an RRD in a pars-
-       ing friendly format.
+       The i\bin\bnf\bfo\bo function prints the header information from an RRD in a
+       parsing friendly format.
 
-       Check rrdcreate if you are uncertain about the meaning of the individ-
-       ual keys.
+       Check rrdcreate if you are uncertain about the meaning of the
+       individual keys.
 
        _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
                The name of the R\bRR\bRD\bD you want to examine.
 
        -\b--\b-d\bda\bae\bem\bmo\bon\bn _\ba_\bd_\bd_\br_\be_\bs_\bs
-               Address of the rrdcached daemon. If specified, a "flush" com-
-               mand is sent to the server before reading the RRD files. This
-               allows r\brr\brd\bdt\bto\boo\bol\bl to return fresh data even if the daemon is con-
-               figured to cache values for a long time.  For a list of
+               Address of the rrdcached daemon. If specified, a "flush"
+               command is sent to the server before reading the RRD files.
+               This allows r\brr\brd\bdt\bto\boo\bol\bl to return fresh data even if the daemon is
+               configured to cache values for a long time.  For a list of
                accepted formats, see the -\b-l\bl option in the rrdcached manual.
 
                 rrdtool info --daemon unix:/var/run/rrdcached.sock /var/lib/rrd/foo.rrd
 
 E\bEX\bXA\bAM\bMP\bPL\bLE\bE
-       This is the output generated by running i\bin\bnf\bfo\bo on a simple RRD which con-
-       tains two data sources and one RRA. Note that the number after the
+       This is the output generated by running i\bin\bnf\bfo\bo on a simple RRD which
+       contains two data sources and one RRA. Note that the number after the
        _\bl_\ba_\bs_\bt_\b__\bu_\bp_\bd_\ba_\bt_\be keyword is in seconds since 1970. The string N\bNa\baN\bN stands for
-       _\b*_\bU_\bN_\bK_\bN_\bO_\bW_\bN_\b* data. In the example it means that this RRD has neither mini-
-       mum nor maximum values defined for either of its data sources.
+       _\b*_\bU_\bN_\bK_\bN_\bO_\bW_\bN_\b* data. In the example it means that this RRD has neither
+       minimum nor maximum values defined for either of its data sources.
 
         filename = "random.rrd"
         rrd_version = "0001"
@@ -74,4 +74,4 @@ A\bAU\bUT\bTH\bHO\bOR\bR
 
 
 
-1.3.99909060808                   2009-04-20                        RRDINFO(1)
+1.3.999                           2009-06-09                        RRDINFO(1)
index 7f4fc97ccaeae9091164002e6e56da8b29498bec..5e2a736ed87c8039768bc633310238444c11a961 100644 (file)
@@ -1,15 +1,7 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.08)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
 .de Sp \" Vertical space (when we can't use .PP)
 .if t .sp .5v
 .if n .sp
 ..
 .\" Set up some character translations and predefined strings.  \*(-- will
 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
 .ie n \{\
 .    ds -- \(*W-
 .    ds R" ''
 'br\}
 .\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
 .\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
 .\" entries marked with X<> in POD.  Of course, you'll have to process the
 .\" output yourself in some meaningful fashion.
-.if \nF \{\
+.ie \nF \{\
 .    de IX
 .    tm Index:\\$1\t\\n%\t"\\$2"
 ..
 .    nr % 0
 .    rr F
 .\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
+.el \{\
+.    de IX
+..
+.\}
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
 .\" ========================================================================
 .\"
 .IX Title "RRDLAST 1"
-.TH RRDLAST 1 "2008-09-25" "1.3.99909060808" "rrdtool"
+.TH RRDLAST 1 "2009-06-09" "1.3.999" "rrdtool"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
 .SH "NAME"
 rrdlast \- Return the date of the last data sample in an RRD
 .SH "SYNOPSIS"
index c804d5b5b4851a13a1af6f680073348aeba7aec6..8427100eeb92ee903ef2406b4e5e9050dddf034e 100644 (file)
@@ -1,14 +1,18 @@
+<?xml version="1.0" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>rrdlast</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <link rev="made" href="mailto:root@localhost" />
 </head>
 
 <body style="background-color: white">
 
-<p><a name="__index__"></a></p>
+
 <!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
 <!--
 
 <ul>
        <li><a href="#environment_variables">ENVIRONMENT VARIABLES</a></li>
        <li><a href="#author">AUTHOR</a></li>
 </ul>
+
 -->
+
+
+</div>
 <!-- INDEX END -->
 
 <p>
 <p>The <strong>last</strong> function returns the UNIX timestamp of the most recent
 update of the RRD.</p>
 <dl>
-<dt><strong><a name="item_filename"><em>filename</em></a></strong><br />
-</dt>
+<dt><strong><a name="filename" class="item"><em>filename</em></a></strong></dt>
+
 <dd>
-The name of the <strong>RRD</strong> that contains the data.
+<p>The name of the <strong>RRD</strong> that contains the data.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2d_2ddaemon_address"><strong>--daemon</strong> <em>address</em></a></strong><br />
-</dt>
+<dt><strong><a name="daemon_address" class="item"><strong>--daemon</strong> <em>address</em></a></strong></dt>
+
 <dd>
-Address of the <a href="././rrdcached.html">the rrdcached manpage</a> daemon. If specified, a <code>flush</code> command is sent
+<p>Address of the <a href="././rrdcached.html">the rrdcached manpage</a> daemon. If specified, a <code>flush</code> command is sent
 to the server before reading the RRD files. This allows <strong>rrdtool</strong> to return
 fresh data even if the daemon is configured to cache values for a long time.
-For a list of accepted formats, see the <strong>-l</strong> option in the <a href="././rrdcached.html">the rrdcached manpage</a> manual.
-</dd>
-<dd>
+For a list of accepted formats, see the <strong>-l</strong> option in the <a href="././rrdcached.html">the rrdcached manpage</a> manual.</p>
 <pre>
  rrdtool last --daemon unix:/var/run/rrdcached.sock /var/lib/rrd/foo.rrd</pre>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <hr />
@@ -65,14 +70,14 @@ For a list of accepted formats, see the <strong>-l</strong> option in the <a hre
 <p>The following environment variables may be used to change the behavior of
 <code>rrdtoollast</code>:</p>
 <dl>
-<dt><strong><a name="item_rrdcached_address"><strong>RRDCACHED_ADDRESS</strong></a></strong><br />
-</dt>
+<dt><strong><a name="rrdcached_address" class="item"><strong>RRDCACHED_ADDRESS</strong></a></strong></dt>
+
 <dd>
-If this environment variable is set it will have the same effect as specifying
+<p>If this environment variable is set it will have the same effect as specifying
 the <code>--daemon</code> option on the command line. If both are present, the command
-line argument takes precedence.
+line argument takes precedence.</p>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <hr />
index c80862bb9c11a7ac93bae0754f8b9eeecfe410ea..a7680d613bb329fdcf080629ad0c4479db88f6ad 100644 (file)
@@ -16,10 +16,10 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
                The name of the R\bRR\bRD\bD that contains the data.
 
        -\b--\b-d\bda\bae\bem\bmo\bon\bn _\ba_\bd_\bd_\br_\be_\bs_\bs
-               Address of the rrdcached daemon. If specified, a "flush" com-
-               mand is sent to the server before reading the RRD files. This
-               allows r\brr\brd\bdt\bto\boo\bol\bl to return fresh data even if the daemon is con-
-               figured to cache values for a long time.  For a list of
+               Address of the rrdcached daemon. If specified, a "flush"
+               command is sent to the server before reading the RRD files.
+               This allows r\brr\brd\bdt\bto\boo\bol\bl to return fresh data even if the daemon is
+               configured to cache values for a long time.  For a list of
                accepted formats, see the -\b-l\bl option in the rrdcached manual.
 
                 rrdtool last --daemon unix:/var/run/rrdcached.sock /var/lib/rrd/foo.rrd
@@ -38,4 +38,4 @@ A\bAU\bUT\bTH\bHO\bOR\bR
 
 
 
-1.3.99909060808                   2008-09-25                        RRDLAST(1)
+1.3.999                           2009-06-09                        RRDLAST(1)
index 63756b335e63d4e7e05b6a76aa5e1c9ff8865e2f..d79e1af7c71d2335915f750f9a4e096f83d6bf13 100644 (file)
@@ -1,15 +1,7 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.08)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
 .de Sp \" Vertical space (when we can't use .PP)
 .if t .sp .5v
 .if n .sp
 ..
 .\" Set up some character translations and predefined strings.  \*(-- will
 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
 .ie n \{\
 .    ds -- \(*W-
 .    ds R" ''
 'br\}
 .\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
 .\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
 .\" entries marked with X<> in POD.  Of course, you'll have to process the
 .\" output yourself in some meaningful fashion.
-.if \nF \{\
+.ie \nF \{\
 .    de IX
 .    tm Index:\\$1\t\\n%\t"\\$2"
 ..
 .    nr % 0
 .    rr F
 .\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
+.el \{\
+.    de IX
+..
+.\}
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
 .\" ========================================================================
 .\"
 .IX Title "RRDLASTUPDATE 1"
-.TH RRDLASTUPDATE 1 "2008-09-25" "1.3.99909060808" "rrdtool"
+.TH RRDLASTUPDATE 1 "2009-06-09" "1.3.999" "rrdtool"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
 .SH "NAME"
 rrdlastupdate \- Return the most recent update to an RRD
 .SH "SYNOPSIS"
index 112420979afc80b3c7227c5a1c4d769d7ebcc7ad..84c5d154f75a2ea14dea89b2feeb55056b17ef3d 100644 (file)
@@ -1,14 +1,18 @@
+<?xml version="1.0" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>rrdlastupdate</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <link rev="made" href="mailto:root@localhost" />
 </head>
 
 <body style="background-color: white">
 
-<p><a name="__index__"></a></p>
+
 <!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
 <!--
 
 <ul>
        <li><a href="#environment_variables">ENVIRONMENT VARIABLES</a></li>
        <li><a href="#author">AUTHOR</a></li>
 </ul>
+
 -->
+
+
+</div>
 <!-- INDEX END -->
 
 <p>
 <p>The <strong>lastupdate</strong> function returns the UNIX timestamp and the 
 value stored for each datum in the most recent update of an RRD.</p>
 <dl>
-<dt><strong><a name="item_filename"><em>filename</em></a></strong><br />
-</dt>
+<dt><strong><a name="filename" class="item"><em>filename</em></a></strong></dt>
+
 <dd>
-The name of the <strong>RRD</strong> that contains the data.
+<p>The name of the <strong>RRD</strong> that contains the data.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2d_2ddaemon_address"><strong>--daemon</strong> <em>address</em></a></strong><br />
-</dt>
+<dt><strong><a name="daemon_address" class="item"><strong>--daemon</strong> <em>address</em></a></strong></dt>
+
 <dd>
-Address of the <a href="././rrdcached.html">the rrdcached manpage</a> daemon. If specified, a <code>flush</code> command is sent
+<p>Address of the <a href="././rrdcached.html">the rrdcached manpage</a> daemon. If specified, a <code>flush</code> command is sent
 to the server before reading the RRD files. This allows <strong>rrdtool</strong> to return
 fresh data even if the daemon is configured to cache values for a long time.
-For a list of accepted formats, see the <strong>-l</strong> option in the <a href="././rrdcached.html">the rrdcached manpage</a> manual.
-</dd>
-<dd>
+For a list of accepted formats, see the <strong>-l</strong> option in the <a href="././rrdcached.html">the rrdcached manpage</a> manual.</p>
 <pre>
  rrdtool lastupdate --daemon unix:/var/run/rrdcached.sock /var/lib/rrd/foo.rrd</pre>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <hr />
@@ -65,14 +70,14 @@ For a list of accepted formats, see the <strong>-l</strong> option in the <a hre
 <p>The following environment variables may be used to change the behavior of
 <code>rrdtoollastupdate</code>:</p>
 <dl>
-<dt><strong><a name="item_rrdcached_address"><strong>RRDCACHED_ADDRESS</strong></a></strong><br />
-</dt>
+<dt><strong><a name="rrdcached_address" class="item"><strong>RRDCACHED_ADDRESS</strong></a></strong></dt>
+
 <dd>
-If this environment variable is set it will have the same effect as specifying
+<p>If this environment variable is set it will have the same effect as specifying
 the <code>--daemon</code> option on the command line. If both are present, the command
-line argument takes precedence.
+line argument takes precedence.</p>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <hr />
index 1e0c9448b5d60e054ed51eda74e1243564fd0e0b..3c71f5041c89670fb7542226b33d3e0fa2e90ea5 100644 (file)
@@ -16,10 +16,10 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
                The name of the R\bRR\bRD\bD that contains the data.
 
        -\b--\b-d\bda\bae\bem\bmo\bon\bn _\ba_\bd_\bd_\br_\be_\bs_\bs
-               Address of the rrdcached daemon. If specified, a "flush" com-
-               mand is sent to the server before reading the RRD files. This
-               allows r\brr\brd\bdt\bto\boo\bol\bl to return fresh data even if the daemon is con-
-               figured to cache values for a long time.  For a list of
+               Address of the rrdcached daemon. If specified, a "flush"
+               command is sent to the server before reading the RRD files.
+               This allows r\brr\brd\bdt\bto\boo\bol\bl to return fresh data even if the daemon is
+               configured to cache values for a long time.  For a list of
                accepted formats, see the -\b-l\bl option in the rrdcached manual.
 
                 rrdtool lastupdate --daemon unix:/var/run/rrdcached.sock /var/lib/rrd/foo.rrd
@@ -38,4 +38,4 @@ A\bAU\bUT\bTH\bHO\bOR\bR
 
 
 
-1.3.99909060808                   2008-09-25                  RRDLASTUPDATE(1)
+1.3.999                           2009-06-09                  RRDLASTUPDATE(1)
diff --git a/doc/rrdlua.1 b/doc/rrdlua.1
new file mode 100644 (file)
index 0000000..2e3a526
--- /dev/null
@@ -0,0 +1,350 @@
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.08)
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings.  \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+.    ds -- \(*W-
+.    ds PI pi
+.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
+.    ds L" ""
+.    ds R" ""
+.    ds C` ""
+.    ds C' ""
+'br\}
+.el\{\
+.    ds -- \|\(em\|
+.    ds PI \(*p
+.    ds L" ``
+.    ds R" ''
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD.  Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.ie \nF \{\
+.    de IX
+.    tm Index:\\$1\t\\n%\t"\\$2"
+..
+.    nr % 0
+.    rr F
+.\}
+.el \{\
+.    de IX
+..
+.\}
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
+.    \" fudge factors for nroff and troff
+.if n \{\
+.    ds #H 0
+.    ds #V .8m
+.    ds #F .3m
+.    ds #[ \f1
+.    ds #] \fP
+.\}
+.if t \{\
+.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+.    ds #V .6m
+.    ds #F 0
+.    ds #[ \&
+.    ds #] \&
+.\}
+.    \" simple accents for nroff and troff
+.if n \{\
+.    ds ' \&
+.    ds ` \&
+.    ds ^ \&
+.    ds , \&
+.    ds ~ ~
+.    ds /
+.\}
+.if t \{\
+.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+.    \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+.    \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+.    \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+.    ds : e
+.    ds 8 ss
+.    ds o a
+.    ds d- d\h'-1'\(ga
+.    ds D- D\h'-1'\(hy
+.    ds th \o'bp'
+.    ds Th \o'LP'
+.    ds ae ae
+.    ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "RRDLUA 1"
+.TH RRDLUA 1 "2009-06-09" "1.3.999" "rrdtool"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH "NAME"
+RRDLua \-  Lua binding for RRDTool
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+.Vb 10
+\&  require \*(Aqrrd\*(Aq
+\&  rrd.create(...)
+\&  rrd.dump(...)
+\&  rrd.fetch(...)
+\&  rrd.first(...)
+\&  rrd.graph(...)
+\&  rrd.graphv(...)
+\&  rrd.info(...)
+\&  rrd.last(...)
+\&  rrd.resize(...)
+\&  rrd.restore(...)
+\&  rrd.tune(...)
+\&  rrd.update(...)
+\&  rrd.updatev(...)
+.Ve
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+.SS "Calling Sequence"
+.IX Subsection "Calling Sequence"
+This module accesses RRDtool functionality directly from within Lua.
+The arguments to the functions listed in the \s-1SYNOPSIS\s0 are explained in
+the regular RRDtool documentation. The command-line call
+.PP
+.Vb 1
+\&    rrdtool update mydemo.rrd \-\-template in:out N:12:13
+.Ve
+.PP
+gets turned into
+.PP
+.Vb 1
+\&    rrd.update ("mydemo.rrd", "\-\-template", "in:out", "N:12:13")
+.Ve
+.PP
+Note that \-\-template=in:out is also valid.
+.SS "Using with Lua 5.1"
+.IX Subsection "Using with Lua 5.1"
+Start your programs with:
+.PP
+.Vb 5
+\&    \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
+\&    package.cpath = \*(Aq/usr/local/rrdtool\-1.3.2/lib/lua/5.1/?.so;\*(Aq ..
+\&                    package.cpath
+\&    require \*(Aqrrd\*(Aq
+\&    \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
+.Ve
+.PP
+\&\s-1OBS:\s0 If you configured with \-\-enable\-lua\-site\-install, you don't need
+to set package.cpath like above.
+.SS "Using with Lua 5.0"
+.IX Subsection "Using with Lua 5.0"
+The Lua binding for RRDtool needs the Lua module compat\-5.1 to work with
+Lua 5.0. Some Linux distros, like Ubuntu gutsy and hardy, have it already
+integrated in Lua 5.0 \-dev packages, so you just have to require it:
+.PP
+.Vb 1
+\&    require \*(Aqcompat\-5.1\*(Aq
+.Ve
+.PP
+For other platforms, the compat\-5.1 module that comes with this binding
+will be installed for you in the same dir where RRDtool was installed,
+under the subdir .../lib/lua/5.0. In this case, you must tell your Lua
+programs where to find it by changing the Lua var \s-1LUA_PATH:\s0
+.PP
+.Vb 8
+\&    \-\- compat\-5.1.lua is only necessary for Lua 5.0 \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
+\&    \-\- try only compat\-5.1 installed with RRDtool package
+\&    local original_LUA_PATH = LUA_PATH
+\&    LUA_PATH = \*(Aq/usr/local/rrdtool\-1.3.2/lib/lua/5.0/?.lua\*(Aq
+\&    require \*(Aqcompat\-5.1\*(Aq
+\&    LUA_PATH = original_LUA_PATH
+\&    original_LUA_PATH = nil
+\&    \-\-\- end of code to require compat\-5.1 \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
+\&    
+\&    Now we can require the rrd module in the same way we did for 5.1 above:
+\&    
+\&    \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
+\&    package.cpath = \*(Aq/usr/local/rrdtool\-1.3.2/lib/lua/5.0/?.so;\*(Aq ..
+\&                    package.cpath
+\&    require \*(Aqrrd\*(Aq
+\&    \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
+.Ve
+.SS "Error Handling"
+.IX Subsection "Error Handling"
+The Lua RRDTool module functions will abort your program with a stack
+traceback when they can not make sense out of the arguments you fed them.
+However, you can capture and handle the errors yourself, instead of just
+letting the program abort, by calling the module functions through Lua
+protected calls \- 'pcall' or 'xpcall'.
+.PP
+.Vb 1
+\&     Ex: program t.lua
+\&      
+\&     \-\-\- compat\-5.1.lua is only necessary for Lua 5.0 \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
+\&     \-\- uncomment below if your distro has not compat\-5.1
+\&     \-\- original_LUA_PATH = LUA_PATH
+\&     \-\- try only compat\-5.1.lua installed with RRDtool package
+\&     \-\- LUA_PATH = \*(Aq/usr/local/rrdtool\-1.3.2/lib/lua/5.0/?.lua\*(Aq
+\&      
+\&     \-\- here we use a protected call to require compat\-5.1
+\&     local r = pcall(require, \*(Aqcompat\-5.1\*(Aq)
+\&     if not r then
+\&       print(\*(Aq** could not load compat\-5.1.lua\*(Aq)
+\&       os.exit(1)
+\&     end
+\&     
+\&     \-\- uncomment below if your distro has not compat\-5.1
+\&     \-\- LUA_PATH = original_LUA_PATH
+\&     \-\- original_LUA_PATH = nil
+\&     \-\-\- end of code to require compat\-5.1 \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
+\&     
+\&     \-\- If the Lua RRDTool module was installed together with RRDTool,
+\&     \-\- in /usr/local/rrdtool\-1.3.2/lib/lua/5.0, package.cpath must be
+\&     \-\- set accordingly so that \*(Aqrequire\*(Aq can find the module:
+\&    
+\&     package.cpath = \*(Aq/usr/local/rrdtool\-1.3.2/lib/lua/5.0/?.so;\*(Aq ..
+\&                     package.cpath
+\&      
+\&     local rrd = require \*(Aqrrd\*(Aq
+\&     rrd.update ("mydemo.rrd","N:12:13")
+.Ve
+.PP
+If we execute the program above we'll get:
+.PP
+.Vb 1
+\&     $ lua t.lua
+\&      
+\&     lua: t.lua:27: opening \*(Aqmydemo.rrd\*(Aq: No such file or directory
+\&     stack traceback:
+\&           [C]: in function \`update\*(Aq
+\&           t.lua:27: in main chunk
+\&           [C]: ?
+.Ve
+.SS "Return Values"
+.IX Subsection "Return Values"
+The functions rrd.first, rrd.last, rrd.graph, rrd.info and rrd.fetch
+return their findings.
+.PP
+\&\fBrrd.first\fR returns a single \s-1INTEGER\s0 representing the timestamp of the
+first data sample in an \s-1RRA\s0 within an \s-1RRD\s0 file. Example returning the
+first timestamp of the third \s-1RRA\s0 (index 2):
+.PP
+.Vb 1
+\&     local firstdate = rrd.first(\*(Aqexample.rrd\*(Aq, \*(Aq\-\-rraindex\*(Aq, 2)
+.Ve
+.PP
+\&\fBrrd.last\fR returns a single \s-1INTEGER\s0 representing the last update time.
+.PP
+.Vb 1
+\&     local lastupdate = rrd.last(\*(Aqexample.rrd\*(Aq)
+.Ve
+.PP
+\&\fBrrd.graph\fR returns the x\-size and y\-size of the created image and a table
+with the results of the \s-1PRINT\s0 arguments.
+.PP
+.Vb 3
+\&     local xsize, ysize, averages = rrd.graph ...
+\&     print(string.format("Image size: %dx%d", xsize, ysize)
+\&     print("Averages: ", table.concat(averages, \*(Aq, \*(Aq))
+.Ve
+.PP
+\&\fBrrd.info\fR returns a table where the keys and the values represent property
+names and property values of the \s-1RRD\s0.
+.PP
+.Vb 4
+\&     local info = rrd.info("test.rrd")
+\&     for key, value in pairs(info) do
+\&       print(key, \*(Aq = \*(Aq, value)
+\&     end
+.Ve
+.PP
+\&\fBrrd.graphv\fR takes the same parameters as rrd.graph but it returns a table
+only. The table returned contains meta information about the graph, like
+its size as well as the position of the graph area on the image. When
+called with and empty filename, the contents of the graph will be returned
+in the table as well (key 'image').
+.PP
+\&\fBrrd.updatev\fR also returns a table. The keys of the table are strings
+formed by the concatenation of timestamp, \s-1RRA\s0 index and data source name
+for each consolidated data point (\s-1CDP\s0) written to disk as a result of the
+current update call. The key values are \s-1CDP\s0 values.
+.PP
+\&\fBrrd.fetch\fR is the most complex of the pack regarding return values. It
+returns 5 values: the initial timestamp, the step, two parallel arrays
+containing the data source names and their data points respectively, and
+the final timestamp.
+.PP
+.Vb 1
+\&     \-\-require compat\-5.1 if necessary
+\&    
+\&     package.cpath = \*(Aq/usr/local/rrdtool\-1.3.2/lib/lua/5.0/?.so;\*(Aq ..
+\&                     package.cpath
+\&    
+\&     local rrd = require "rrd"
+\&     local first, last = rrd.first("test.rrd"), rrd.last("test.rrd")
+\&     local start, step, names, data =
+\&       rrd.fetch("test.rrd", "\-\-start", first, "\-\-end", last, "AVERAGE")
+\&     io.write(string.format("Start:       %s (%d)\en",
+\&                            os.date("%c", start),start))
+\&     io.write("Step size:   ", step, " seconds\en")
+\&     io.write("DS names:    ", table.concat(names, \*(Aq, \*(Aq), "\en")
+\&     io.write("Data points: ", #data[1], "\en")
+\&     io.write("Data:\en")
+\&     for i,dp in ipairs(data) do
+\&       io.write(os.date("%t", start), " (", start, "): ")
+\&       start = start + step
+\&       for j,v in ipairs(dp) do
+\&         io.write(v, " ")
+\&       end
+\&     io.write("\en")
+\&     end
+.Ve
+.SH "AUTHOR"
+.IX Header "AUTHOR"
+Fidelis Assis <fidelis@pobox.com>
diff --git a/doc/rrdlua.html b/doc/rrdlua.html
new file mode 100644 (file)
index 0000000..e430bd5
--- /dev/null
@@ -0,0 +1,241 @@
+<?xml version="1.0" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>rrdlua</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<link rev="made" href="mailto:root@localhost" />
+</head>
+
+<body style="background-color: white">
+
+
+<!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
+<!--
+
+<ul>
+
+       <li><a href="#name">NAME</a></li>
+       <li><a href="#synopsis">SYNOPSIS</a></li>
+       <li><a href="#description">DESCRIPTION</a></li>
+       <ul>
+
+               <li><a href="#calling_sequence">Calling Sequence</a></li>
+               <li><a href="#using_with_lua_5_1">Using with Lua 5.1</a></li>
+               <li><a href="#using_with_lua_5_0">Using with Lua 5.0</a></li>
+               <li><a href="#error_handling">Error Handling</a></li>
+               <li><a href="#return_values">Return Values</a></li>
+       </ul>
+
+       <li><a href="#author">AUTHOR</a></li>
+</ul>
+
+-->
+
+
+</div>
+<!-- INDEX END -->
+
+<p>
+</p>
+<h1><a name="name">NAME</a></h1>
+<p>RRDLua -  Lua binding for RRDTool</p>
+<p>
+</p>
+<hr />
+<h1><a name="synopsis">SYNOPSIS</a></h1>
+<pre>
+  require 'rrd'
+  rrd.create(...)
+  rrd.dump(...)
+  rrd.fetch(...)
+  rrd.first(...)
+  rrd.graph(...)
+  rrd.graphv(...)
+  rrd.info(...)
+  rrd.last(...)
+  rrd.resize(...)
+  rrd.restore(...)
+  rrd.tune(...)
+  rrd.update(...)
+  rrd.updatev(...)</pre>
+<p>
+</p>
+<hr />
+<h1><a name="description">DESCRIPTION</a></h1>
+<p>
+</p>
+<h2><a name="calling_sequence">Calling Sequence</a></h2>
+<p>This module accesses RRDtool functionality directly from within Lua.
+The arguments to the functions listed in the SYNOPSIS are explained in
+the regular RRDtool documentation. The command-line call</p>
+<pre>
+    rrdtool update mydemo.rrd --template in:out N:12:13</pre>
+<p>gets turned into</p>
+<pre>
+    rrd.update (&quot;mydemo.rrd&quot;, &quot;--template&quot;, &quot;in:out&quot;, &quot;N:12:13&quot;)</pre>
+<p>Note that --template=in:out is also valid.</p>
+<p>
+</p>
+<h2><a name="using_with_lua_5_1">Using with Lua 5.1</a></h2>
+<p>Start your programs with:</p>
+<pre>
+    ---------------------------------------------------------------
+    package.cpath = '/usr/local/rrdtool-1.3.2/lib/lua/5.1/?.so;' ..
+                    package.cpath
+    require 'rrd'
+    ---------------------------------------------------------------
+   
+OBS: If you configured with --enable-lua-site-install, you don't need
+to set package.cpath like above.</pre>
+<p>
+</p>
+<h2><a name="using_with_lua_5_0">Using with Lua 5.0</a></h2>
+<p>The Lua binding for RRDtool needs the Lua module compat-5.1 to work with
+Lua 5.0. Some Linux distros, like Ubuntu gutsy and hardy, have it already
+integrated in Lua 5.0 -dev packages, so you just have to require it:</p>
+<pre>
+    require 'compat-5.1'</pre>
+<p>For other platforms, the compat-5.1 module that comes with this binding
+will be installed for you in the same dir where RRDtool was installed,
+under the subdir .../lib/lua/5.0. In this case, you must tell your Lua
+programs where to find it by changing the Lua var LUA_PATH:</p>
+<pre>
+    -- compat-5.1.lua is only necessary for Lua 5.0 ----------------
+    -- try only compat-5.1 installed with RRDtool package
+    local original_LUA_PATH = LUA_PATH
+    LUA_PATH = '/usr/local/rrdtool-1.3.2/lib/lua/5.0/?.lua'
+    require 'compat-5.1'
+    LUA_PATH = original_LUA_PATH
+    original_LUA_PATH = nil
+    --- end of code to require compat-5.1 ---------------------------
+    
+    Now we can require the rrd module in the same way we did for 5.1 above:
+    
+    ---------------------------------------------------------------
+    package.cpath = '/usr/local/rrdtool-1.3.2/lib/lua/5.0/?.so;' ..
+                    package.cpath
+    require 'rrd'
+    ---------------------------------------------------------------</pre>
+<p>
+</p>
+<h2><a name="error_handling">Error Handling</a></h2>
+<p>The Lua RRDTool module functions will abort your program with a stack
+traceback when they can not make sense out of the arguments you fed them.
+However, you can capture and handle the errors yourself, instead of just
+letting the program abort, by calling the module functions through Lua
+protected calls - 'pcall' or 'xpcall'.</p>
+<pre>
+     Ex: program t.lua
+      
+     --- compat-5.1.lua is only necessary for Lua 5.0 ----------------
+     -- uncomment below if your distro has not compat-5.1
+     -- original_LUA_PATH = LUA_PATH
+     -- try only compat-5.1.lua installed with RRDtool package
+     -- LUA_PATH = '/usr/local/rrdtool-1.3.2/lib/lua/5.0/?.lua'
+      
+     -- here we use a protected call to require compat-5.1
+     local r = pcall(require, 'compat-5.1')
+     if not r then
+       print('** could not load compat-5.1.lua')
+       os.exit(1)
+     end
+     
+     -- uncomment below if your distro has not compat-5.1
+     -- LUA_PATH = original_LUA_PATH
+     -- original_LUA_PATH = nil
+     --- end of code to require compat-5.1 ---------------------------
+     
+     -- If the Lua RRDTool module was installed together with RRDTool,
+     -- in /usr/local/rrdtool-1.3.2/lib/lua/5.0, package.cpath must be
+     -- set accordingly so that 'require' can find the module:
+    
+     package.cpath = '/usr/local/rrdtool-1.3.2/lib/lua/5.0/?.so;' ..
+                     package.cpath
+      
+     local rrd = require 'rrd'
+     rrd.update (&quot;mydemo.rrd&quot;,&quot;N:12:13&quot;)
+     
+If we execute the program above we'll get:</pre>
+<pre>
+     $ lua t.lua
+      
+     lua: t.lua:27: opening 'mydemo.rrd': No such file or directory
+     stack traceback:
+           [C]: in function `update'
+           t.lua:27: in main chunk
+           [C]: ?</pre>
+<p>
+</p>
+<h2><a name="return_values">Return Values</a></h2>
+<p>The functions rrd.first, rrd.last, rrd.graph, rrd.info and rrd.fetch
+return their findings.</p>
+<p><strong>rrd.first</strong> returns a single INTEGER representing the timestamp of the
+first data sample in an RRA within an RRD file. Example returning the
+first timestamp of the third RRA (index 2):</p>
+<pre>
+     local firstdate = rrd.first('example.rrd', '--rraindex', 2)</pre>
+<p><strong>rrd.last</strong> returns a single INTEGER representing the last update time.</p>
+<pre>
+     local lastupdate = rrd.last('example.rrd')</pre>
+<p><strong>rrd.graph</strong> returns the x-size and y-size of the created image and a table
+with the results of the PRINT arguments.</p>
+<pre>
+     local xsize, ysize, averages = rrd.graph ...
+     print(string.format(&quot;Image size: %dx%d&quot;, xsize, ysize)
+     print(&quot;Averages: &quot;, table.concat(averages, ', '))</pre>
+<p><strong>rrd.info</strong> returns a table where the keys and the values represent property
+names and property values of the RRD.</p>
+<pre>
+     local info = rrd.info(&quot;test.rrd&quot;)
+     for key, value in pairs(info) do
+       print(key, ' = ', value)
+     end</pre>
+<p><strong>rrd.graphv</strong> takes the same parameters as rrd.graph but it returns a table
+only. The table returned contains meta information about the graph, like
+its size as well as the position of the graph area on the image. When
+called with and empty filename, the contents of the graph will be returned
+in the table as well (key 'image').</p>
+<p><strong>rrd.updatev</strong> also returns a table. The keys of the table are strings
+formed by the concatenation of timestamp, RRA index and data source name
+for each consolidated data point (CDP) written to disk as a result of the
+current update call. The key values are CDP values.</p>
+<p><strong>rrd.fetch</strong> is the most complex of the pack regarding return values. It
+returns 5 values: the initial timestamp, the step, two parallel arrays
+containing the data source names and their data points respectively, and
+the final timestamp.</p>
+<pre>
+     --require compat-5.1 if necessary
+    
+     package.cpath = '/usr/local/rrdtool-1.3.2/lib/lua/5.0/?.so;' ..
+                     package.cpath
+    
+     local rrd = require &quot;rrd&quot;
+     local first, last = rrd.first(&quot;test.rrd&quot;), rrd.last(&quot;test.rrd&quot;)
+     local start, step, names, data =
+       rrd.fetch(&quot;test.rrd&quot;, &quot;--start&quot;, first, &quot;--end&quot;, last, &quot;AVERAGE&quot;)
+     io.write(string.format(&quot;Start:       %s (%d)\n&quot;,
+                            os.date(&quot;%c&quot;, start),start))
+     io.write(&quot;Step size:   &quot;, step, &quot; seconds\n&quot;)
+     io.write(&quot;DS names:    &quot;, table.concat(names, ', '), &quot;\n&quot;)
+     io.write(&quot;Data points: &quot;, #data[1], &quot;\n&quot;)
+     io.write(&quot;Data:\n&quot;)
+     for i,dp in ipairs(data) do
+       io.write(os.date(&quot;%t&quot;, start), &quot; (&quot;, start, &quot;): &quot;)
+       start = start + step
+       for j,v in ipairs(dp) do
+         io.write(v, &quot; &quot;)
+       end
+     io.write(&quot;\n&quot;)
+     end</pre>
+<p>
+</p>
+<hr />
+<h1><a name="author">AUTHOR</a></h1>
+<p>Fidelis Assis &lt;<a href="mailto:fidelis@pobox.com">fidelis@pobox.com</a>&gt;</p>
+
+</body>
+
+</html>
diff --git a/doc/rrdlua.txt b/doc/rrdlua.txt
new file mode 100644 (file)
index 0000000..6d0a9b6
--- /dev/null
@@ -0,0 +1,201 @@
+RRDLUA(1)                           rrdtool                          RRDLUA(1)
+
+
+
+N\bNA\bAM\bME\bE
+       RRDLua -  Lua binding for RRDTool
+
+S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
+         require 'rrd'
+         rrd.create(...)
+         rrd.dump(...)
+         rrd.fetch(...)
+         rrd.first(...)
+         rrd.graph(...)
+         rrd.graphv(...)
+         rrd.info(...)
+         rrd.last(...)
+         rrd.resize(...)
+         rrd.restore(...)
+         rrd.tune(...)
+         rrd.update(...)
+         rrd.updatev(...)
+
+D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
+   C\bCa\bal\bll\bli\bin\bng\bg S\bSe\beq\bqu\bue\ben\bnc\bce\be
+       This module accesses RRDtool functionality directly from within Lua.
+       The arguments to the functions listed in the SYNOPSIS are explained in
+       the regular RRDtool documentation. The command-line call
+
+           rrdtool update mydemo.rrd --template in:out N:12:13
+
+       gets turned into
+
+           rrd.update ("mydemo.rrd", "--template", "in:out", "N:12:13")
+
+       Note that --template=in:out is also valid.
+
+   U\bUs\bsi\bin\bng\bg w\bwi\bit\bth\bh L\bLu\bua\ba 5\b5.\b.1\b1
+       Start your programs with:
+
+           ---------------------------------------------------------------
+           package.cpath = '/usr/local/rrdtool-1.3.2/lib/lua/5.1/?.so;' ..
+                           package.cpath
+           require 'rrd'
+           ---------------------------------------------------------------
+
+       OBS: If you configured with --enable-lua-site-install, you don't need
+       to set package.cpath like above.
+
+   U\bUs\bsi\bin\bng\bg w\bwi\bit\bth\bh L\bLu\bua\ba 5\b5.\b.0\b0
+       The Lua binding for RRDtool needs the Lua module compat-5.1 to work
+       with Lua 5.0. Some Linux distros, like Ubuntu gutsy and hardy, have it
+       already integrated in Lua 5.0 -dev packages, so you just have to
+       require it:
+
+           require 'compat-5.1'
+
+       For other platforms, the compat-5.1 module that comes with this binding
+       will be installed for you in the same dir where RRDtool was installed,
+       under the subdir .../lib/lua/5.0. In this case, you must tell your Lua
+       programs where to find it by changing the Lua var LUA_PATH:
+
+           -- compat-5.1.lua is only necessary for Lua 5.0 ----------------
+           -- try only compat-5.1 installed with RRDtool package
+           local original_LUA_PATH = LUA_PATH
+           LUA_PATH = '/usr/local/rrdtool-1.3.2/lib/lua/5.0/?.lua'
+           require 'compat-5.1'
+           LUA_PATH = original_LUA_PATH
+           original_LUA_PATH = nil
+           --- end of code to require compat-5.1 ---------------------------
+
+           Now we can require the rrd module in the same way we did for 5.1 above:
+
+           ---------------------------------------------------------------
+           package.cpath = '/usr/local/rrdtool-1.3.2/lib/lua/5.0/?.so;' ..
+                           package.cpath
+           require 'rrd'
+           ---------------------------------------------------------------
+
+   E\bEr\brr\bro\bor\br H\bHa\ban\bnd\bdl\bli\bin\bng\bg
+       The Lua RRDTool module functions will abort your program with a stack
+       traceback when they can not make sense out of the arguments you fed
+       them.  However, you can capture and handle the errors yourself, instead
+       of just letting the program abort, by calling the module functions
+       through Lua protected calls - 'pcall' or 'xpcall'.
+
+            Ex: program t.lua
+
+            --- compat-5.1.lua is only necessary for Lua 5.0 ----------------
+            -- uncomment below if your distro has not compat-5.1
+            -- original_LUA_PATH = LUA_PATH
+            -- try only compat-5.1.lua installed with RRDtool package
+            -- LUA_PATH = '/usr/local/rrdtool-1.3.2/lib/lua/5.0/?.lua'
+
+            -- here we use a protected call to require compat-5.1
+            local r = pcall(require, 'compat-5.1')
+            if not r then
+              print('** could not load compat-5.1.lua')
+              os.exit(1)
+            end
+
+            -- uncomment below if your distro has not compat-5.1
+            -- LUA_PATH = original_LUA_PATH
+            -- original_LUA_PATH = nil
+            --- end of code to require compat-5.1 ---------------------------
+
+            -- If the Lua RRDTool module was installed together with RRDTool,
+            -- in /usr/local/rrdtool-1.3.2/lib/lua/5.0, package.cpath must be
+            -- set accordingly so that 'require' can find the module:
+
+            package.cpath = '/usr/local/rrdtool-1.3.2/lib/lua/5.0/?.so;' ..
+                            package.cpath
+
+            local rrd = require 'rrd'
+            rrd.update ("mydemo.rrd","N:12:13")
+
+       If we execute the program above we'll get:
+
+            $ lua t.lua
+
+            lua: t.lua:27: opening 'mydemo.rrd': No such file or directory
+            stack traceback:
+                  [C]: in function `update'
+                  t.lua:27: in main chunk
+                  [C]: ?
+
+   R\bRe\bet\btu\bur\brn\bn V\bVa\bal\blu\bue\bes\bs
+       The functions rrd.first, rrd.last, rrd.graph, rrd.info and rrd.fetch
+       return their findings.
+
+       r\brr\brd\bd.\b.f\bfi\bir\brs\bst\bt returns a single INTEGER representing the timestamp of the
+       first data sample in an RRA within an RRD file. Example returning the
+       first timestamp of the third RRA (index 2):
+
+            local firstdate = rrd.first('example.rrd', '--rraindex', 2)
+
+       r\brr\brd\bd.\b.l\bla\bas\bst\bt returns a single INTEGER representing the last update time.
+
+            local lastupdate = rrd.last('example.rrd')
+
+       r\brr\brd\bd.\b.g\bgr\bra\bap\bph\bh returns the x-size and y-size of the created image and a
+       table with the results of the PRINT arguments.
+
+            local xsize, ysize, averages = rrd.graph ...
+            print(string.format("Image size: %dx%d", xsize, ysize)
+            print("Averages: ", table.concat(averages, ', '))
+
+       r\brr\brd\bd.\b.i\bin\bnf\bfo\bo returns a table where the keys and the values represent
+       property names and property values of the RRD.
+
+            local info = rrd.info("test.rrd")
+            for key, value in pairs(info) do
+              print(key, ' = ', value)
+            end
+
+       r\brr\brd\bd.\b.g\bgr\bra\bap\bph\bhv\bv takes the same parameters as rrd.graph but it returns a
+       table only. The table returned contains meta information about the
+       graph, like its size as well as the position of the graph area on the
+       image. When called with and empty filename, the contents of the graph
+       will be returned in the table as well (key 'image').
+
+       r\brr\brd\bd.\b.u\bup\bpd\bda\bat\bte\bev\bv also returns a table. The keys of the table are strings
+       formed by the concatenation of timestamp, RRA index and data source
+       name for each consolidated data point (CDP) written to disk as a result
+       of the current update call. The key values are CDP values.
+
+       r\brr\brd\bd.\b.f\bfe\bet\btc\bch\bh is the most complex of the pack regarding return values. It
+       returns 5 values: the initial timestamp, the step, two parallel arrays
+       containing the data source names and their data points respectively,
+       and the final timestamp.
+
+            --require compat-5.1 if necessary
+
+            package.cpath = '/usr/local/rrdtool-1.3.2/lib/lua/5.0/?.so;' ..
+                            package.cpath
+
+            local rrd = require "rrd"
+            local first, last = rrd.first("test.rrd"), rrd.last("test.rrd")
+            local start, step, names, data =
+              rrd.fetch("test.rrd", "--start", first, "--end", last, "AVERAGE")
+            io.write(string.format("Start:       %s (%d)\n",
+                                   os.date("%c", start),start))
+            io.write("Step size:   ", step, " seconds\n")
+            io.write("DS names:    ", table.concat(names, ', '), "\n")
+            io.write("Data points: ", #data[1], "\n")
+            io.write("Data:\n")
+            for i,dp in ipairs(data) do
+              io.write(os.date("%t", start), " (", start, "): ")
+              start = start + step
+              for j,v in ipairs(dp) do
+                io.write(v, " ")
+              end
+            io.write("\n")
+            end
+
+A\bAU\bUT\bTH\bHO\bOR\bR
+       Fidelis Assis <fidelis@pobox.com>
+
+
+
+1.3.999                           2009-06-09                         RRDLUA(1)
index c8ae15eccebc0d1fccaf07787d8a97314d6bdc5a..1a75f22f09ac7799919a9f2f1215cef477834e53 100644 (file)
@@ -1,15 +1,7 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.08)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
 .de Sp \" Vertical space (when we can't use .PP)
 .if t .sp .5v
 .if n .sp
 ..
 .\" Set up some character translations and predefined strings.  \*(-- will
 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
 .ie n \{\
 .    ds -- \(*W-
 .    ds R" ''
 'br\}
 .\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
 .\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
 .\" entries marked with X<> in POD.  Of course, you'll have to process the
 .\" output yourself in some meaningful fashion.
-.if \nF \{\
+.ie \nF \{\
 .    de IX
 .    tm Index:\\$1\t\\n%\t"\\$2"
 ..
 .    nr % 0
 .    rr F
 .\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
+.el \{\
+.    de IX
+..
+.\}
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
 .\" ========================================================================
 .\"
 .IX Title "RRDRESIZE 1"
-.TH RRDRESIZE 1 "2009-02-21" "1.3.99909060808" "rrdtool"
+.TH RRDRESIZE 1 "2009-05-10" "1.3.999" "rrdtool"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
 .SH "NAME"
 rrdresize \- alters the size of an RRA and creates a new .rrd file
 .SH "SYNOPSIS"
index fedaf98fe73d92f5ad6a40f624834a78c3ec8bb2..474040f8abf3edb57d8369981d9ac4ccf0632d1d 100644 (file)
@@ -1,14 +1,18 @@
+<?xml version="1.0" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>rrdresize</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <link rev="made" href="mailto:root@localhost" />
 </head>
 
 <body style="background-color: white">
 
-<p><a name="__index__"></a></p>
+
 <!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
 <!--
 
 <ul>
        <li><a href="#notes">NOTES</a></li>
        <li><a href="#author">AUTHOR</a></li>
 </ul>
+
 -->
+
+
+</div>
 <!-- INDEX END -->
 
 <p>
 <p>The <strong>resize</strong> function is used to modify the number of rows in
 an <strong>RRA</strong>.</p>
 <dl>
-<dt><strong><a name="item_filename"><em>filename</em></a></strong><br />
-</dt>
+<dt><strong><a name="filename" class="item"><em>filename</em></a></strong></dt>
+
 <dd>
-the name of the <strong>RRD</strong> you want to alter.
+<p>the name of the <strong>RRD</strong> you want to alter.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_rra_2dnum"><em>rra-num</em></a></strong><br />
-</dt>
+<dt><strong><a name="rra_num" class="item"><em>rra-num</em></a></strong></dt>
+
 <dd>
-the <strong>RRA</strong> you want to alter. You can find the number using <strong>rrdtool info</strong>.
+<p>the <strong>RRA</strong> you want to alter. You can find the number using <strong>rrdtool info</strong>.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_grow"><strong>GROW</strong></a></strong><br />
-</dt>
+<dt><strong><a name="grow" class="item"><strong>GROW</strong></a></strong></dt>
+
 <dd>
-used if you want to add extra rows to an RRA. The extra rows will be inserted
-as the rows that are oldest.
+<p>used if you want to add extra rows to an RRA. The extra rows will be inserted
+as the rows that are oldest.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_shrink"><strong>SHRINK</strong></a></strong><br />
-</dt>
+<dt><strong><a name="shrink" class="item"><strong>SHRINK</strong></a></strong></dt>
+
 <dd>
-used if you want to remove rows from an RRA. The rows that will be removed
-are the oldest rows.
+<p>used if you want to remove rows from an RRA. The rows that will be removed
+are the oldest rows.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_rows"><em>rows</em></a></strong><br />
-</dt>
+<dt><strong><a name="rows" class="item"><em>rows</em></a></strong></dt>
+
 <dd>
-the number of rows you want to add or remove.
+<p>the number of rows you want to add or remove.</p>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <hr />
index 29566aeb3268735c8892b327ba38ee269ada1799..670bfc0745546dfe88ce577ce88ee409b915ca77 100644 (file)
@@ -14,8 +14,8 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be
                the name of the R\bRR\bRD\bD you want to alter.
 
-       _\br_\br_\ba_\b-_\bn_\bu_\bm the R\bRR\bRA\bA you want to alter. You can find the number using r\brr\brd\bd-\b-
-               t\bto\boo\bol\bl i\bin\bnf\bfo\bo.
+       _\br_\br_\ba_\b-_\bn_\bu_\bm the R\bRR\bRA\bA you want to alter. You can find the number using
+               r\brr\brd\bdt\bto\boo\bol\bl i\bin\bnf\bfo\bo.
 
        G\bGR\bRO\bOW\bW    used if you want to add extra rows to an RRA. The extra rows
                will be inserted as the rows that are oldest.
@@ -41,4 +41,4 @@ A\bAU\bUT\bTH\bHO\bOR\bR
 
 
 
-1.3.99909060808                   2009-02-21                      RRDRESIZE(1)
+1.3.999                           2009-05-10                      RRDRESIZE(1)
index 95c5513187d83188f77172a1421c1e3958f335dd..43353f0b2af55624beb1386dc537b798d369c6c0 100644 (file)
@@ -1,15 +1,7 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.08)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
 .de Sp \" Vertical space (when we can't use .PP)
 .if t .sp .5v
 .if n .sp
 ..
 .\" Set up some character translations and predefined strings.  \*(-- will
 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
 .ie n \{\
 .    ds -- \(*W-
 .    ds R" ''
 'br\}
 .\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
 .\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
 .\" entries marked with X<> in POD.  Of course, you'll have to process the
 .\" output yourself in some meaningful fashion.
-.if \nF \{\
+.ie \nF \{\
 .    de IX
 .    tm Index:\\$1\t\\n%\t"\\$2"
 ..
 .    nr % 0
 .    rr F
 .\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
+.el \{\
+.    de IX
+..
+.\}
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
 .\" ========================================================================
 .\"
 .IX Title "RRDRESTORE 1"
-.TH RRDRESTORE 1 "2008-03-15" "1.3.99909060808" "rrdtool"
+.TH RRDRESTORE 1 "2009-04-19" "1.3.999" "rrdtool"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
 .SH "NAME"
 rrdrestore \- Restore the contents of an RRD from its XML dump format
 .SH "SYNOPSIS"
index 18f647401d0c05bc4f6faad77a49939f04129559..17d331e532236d44d07a1119e862b255ed72535e 100644 (file)
@@ -1,14 +1,18 @@
+<?xml version="1.0" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>rrdrestore</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <link rev="made" href="mailto:root@localhost" />
 </head>
 
 <body style="background-color: white">
 
-<p><a name="__index__"></a></p>
+
 <!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
 <!--
 
 <ul>
        <li><a href="#description">DESCRIPTION</a></li>
        <li><a href="#author">AUTHOR</a></li>
 </ul>
+
 -->
+
+
+</div>
 <!-- INDEX END -->
 
 <p>
 <p>The <strong>restore</strong> function reads the XML representation of an RRD and converts
 it to the native <strong>RRD</strong> format.</p>
 <dl>
-<dt><strong><a name="item_filename_2exml"><em>filename.xml</em></a></strong><br />
-</dt>
+<dt><strong><a name="filename_xml" class="item"><em>filename.xml</em></a></strong></dt>
+
 <dd>
-The name of the <strong>XML</strong> file you want to restore.
+<p>The name of the <strong>XML</strong> file you want to restore.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_filename_2errd"><em>filename.rrd</em></a></strong><br />
-</dt>
+<dt><strong><a name="filename_rrd" class="item"><em>filename.rrd</em></a></strong></dt>
+
 <dd>
-The name of the <strong>RRD</strong> to restore.
+<p>The name of the <strong>RRD</strong> to restore.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2d_2drange_2dcheck_7c_2dr"><strong>--range-check</strong>|<strong>-r</strong></a></strong><br />
-</dt>
+<dt><strong><a name="range_check_r" class="item"><strong>--range-check</strong>|<strong>-r</strong></a></strong></dt>
+
 <dd>
-Make sure the values in the RRAs do not exceed the limits defined for
-the various data sources.
+<p>Make sure the values in the RRAs do not exceed the limits defined for
+the various data sources.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2d_2dforce_2doverwrite_7c_2df"><strong>--force-overwrite</strong>|<strong>-f</strong></a></strong><br />
-</dt>
+<dt><strong><a name="force_overwrite_f" class="item"><strong>--force-overwrite</strong>|<strong>-f</strong></a></strong></dt>
+
 <dd>
-Allows <strong>RRDtool</strong> to overwrite the destination <strong>RRD</strong>.
+<p>Allows <strong>RRDtool</strong> to overwrite the destination <strong>RRD</strong>.</p>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <hr />
index 4e644cc7694af7528c27493bcfcbe3f05a0c7d77..f0715147e125dac074ad7d8202069a6819ef51a1 100644 (file)
@@ -9,8 +9,8 @@ S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
        r\brr\brd\bdt\bto\boo\bol\bl r\bre\bes\bst\bto\bor\bre\be _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be_\b._\bx_\bm_\bl _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be_\b._\br_\br_\bd [-\b--\b-r\bra\ban\bng\bge\be-\b-c\bch\bhe\bec\bck\bk|-\b-r\br]
 
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
-       The r\bre\bes\bst\bto\bor\bre\be function reads the XML representation of an RRD and con-
-       verts it to the native R\bRR\bRD\bD format.
+       The r\bre\bes\bst\bto\bor\bre\be function reads the XML representation of an RRD and
+       converts it to the native R\bRR\bRD\bD format.
 
        _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be_\b._\bx_\bm_\bl
                The name of the X\bXM\bML\bL file you want to restore.
@@ -30,4 +30,4 @@ A\bAU\bUT\bTH\bHO\bOR\bR
 
 
 
-1.3.99909060808                   2008-03-15                     RRDRESTORE(1)
+1.3.999                           2009-04-19                     RRDRESTORE(1)
index 4d846c6d74b91c6cc2e62c70a9564941bc1abe52..dbbe8e533bae2fd06419939df188f5d1c943cc3a 100644 (file)
@@ -1,15 +1,7 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.08)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
 .de Sp \" Vertical space (when we can't use .PP)
 .if t .sp .5v
 .if n .sp
 ..
 .\" Set up some character translations and predefined strings.  \*(-- will
 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
 .ie n \{\
 .    ds -- \(*W-
 .    ds R" ''
 'br\}
 .\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
 .\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
 .\" entries marked with X<> in POD.  Of course, you'll have to process the
 .\" output yourself in some meaningful fashion.
-.if \nF \{\
+.ie \nF \{\
 .    de IX
 .    tm Index:\\$1\t\\n%\t"\\$2"
 ..
 .    nr % 0
 .    rr F
 .\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
+.el \{\
+.    de IX
+..
+.\}
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
 .\" ========================================================================
 .\"
 .IX Title "RRDTHREADS 1"
-.TH RRDTHREADS 1 "2008-06-08" "1.3.99909060808" "rrdtool"
+.TH RRDTHREADS 1 "2009-04-19" "1.3.999" "rrdtool"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
 .SH "NAME"
 rrdthreads \- Provisions for linking the RRD library to use in multi\-threaded programs
 .SH "SYNOPSIS"
@@ -139,7 +138,7 @@ precautions, as the \s-1RRD\s0 library in its original form was not
 thread-safe at all. This document describes requirements and pitfalls
 on the way to use the multi-threaded version of librrd in your own
 programs. It also gives hints for future \s-1RRD\s0 development to keep the
-library thread\-safe.
+library thread-safe.
 .PP
 Currently only some \s-1RRD\s0 operations are implemented in a thread-safe
 way. They all end in the usual "\f(CW\*(C`_r\*(C'\fR" suffix.
@@ -153,10 +152,10 @@ linking)
 Use the "\f(CW\*(C`_r\*(C'\fR" functions instead of the normal API-functions
 .IP "\(bu" 4
 Do not use any at-style time specifications. Parsing of such time
-specifications is terribly non\-thread\-safe.
+specifications is terribly non-thread-safe.
 .IP "\(bu" 4
 Never use non *\f(CW\*(C`_r\*(C'\fR functions unless it is explicitly documented that
-the function is tread\-safe.
+the function is tread-safe.
 .IP "\(bu" 4
 Every thread \s-1SHOULD\s0 call \f(CW\*(C`rrd_get_context()\*(C'\fR before its first call to
 any \f(CW\*(C`librrd_th\*(C'\fR function in order to set up thread specific data. This
@@ -166,12 +165,12 @@ with a \s-1SIGSEGV\s0 in a low-memory situation.
 .IP "\(bu" 4
 Always call \f(CW\*(C`rrd_error_clear()\*(C'\fR before any call to the
 library. Otherwise the call might fail due to some earlier error.
-.Sh "\s-1NOTES\s0 \s-1FOR\s0 \s-1RRD\s0 \s-1CONTRIBUTORS\s0"
+.SS "\s-1NOTES\s0 \s-1FOR\s0 \s-1RRD\s0 \s-1CONTRIBUTORS\s0"
 .IX Subsection "NOTES FOR RRD CONTRIBUTORS"
 Some precautions must be followed when developing \s-1RRD\s0 from now on:
 .IP "\(bu" 4
 Only use thread-safe functions in library code. Many often used libc
-functions aren't thread\-safe. Take care in the following
+functions aren't thread-safe. Take care in the following
 situations or when using the following library functions:
 .RS 4
 .IP "\(bu" 4
@@ -179,7 +178,7 @@ Direct calls to \f(CW\*(C`strerror()\*(C'\fR must be avoided: use \f(CW\*(C`rrd_
 instead, it provides a per-thread error message.
 .IP "\(bu" 4
 The \f(CW\*(C`getpw*\*(C'\fR, \f(CW\*(C`getgr*\*(C'\fR, \f(CW\*(C`gethost*\*(C'\fR function families (and some more
-\&\f(CW\*(C`get*\*(C'\fR functions) are not thread\-safe: use the *\f(CW\*(C`_r\*(C'\fR variants
+\&\f(CW\*(C`get*\*(C'\fR functions) are not thread-safe: use the *\f(CW\*(C`_r\*(C'\fR variants
 .IP "\(bu" 4
 Time functions: \f(CW\*(C`asctime\*(C'\fR, \f(CW\*(C`ctime\*(C'\fR, \f(CW\*(C`gmtime\*(C'\fR, \f(CW\*(C`localtime\*(C'\fR: use
 *\f(CW\*(C`_r\*(C'\fR variants
@@ -197,7 +196,7 @@ A header file named \fIrrd_is_thread_safe.h\fR is provided
 that works with the \s-1GNU\s0 C\-preprocessor to \*(L"poison\*(R" some of the most
 common non-thread-safe functions using the \f(CW\*(C`#pragma GCC poison\*(C'\fR
 directive. Just include this header in source files you want to keep
-thread\-safe.
+thread-safe.
 .IP "\(bu" 4
 Do not introduce global variables!
 .Sp
@@ -217,9 +216,9 @@ taking all options as function parameters. You may provide argc and
 Do not use the \f(CW\*(C`rrd_parsetime\*(C'\fR function!
 .Sp
 It uses lots of global variables. You may use it in functions not designed
-to be thread\-safe, like in functions wrapping the \f(CW\*(C`_r\*(C'\fR version of some
+to be thread-safe, like in functions wrapping the \f(CW\*(C`_r\*(C'\fR version of some
 operation (e.g., \f(CW\*(C`rrd_create\*(C'\fR, but not in \f(CW\*(C`rrd_create_r\*(C'\fR)
-.Sh "\s-1CURRENTLY\s0 \s-1IMPLEMENTED\s0 \s-1THREAD\s0 \s-1SAFE\s0 \s-1FUNCTIONS\s0"
+.SS "\s-1CURRENTLY\s0 \s-1IMPLEMENTED\s0 \s-1THREAD\s0 \s-1SAFE\s0 \s-1FUNCTIONS\s0"
 .IX Subsection "CURRENTLY IMPLEMENTED THREAD SAFE FUNCTIONS"
 Currently there exist thread-safe variants of \f(CW\*(C`rrd_update\*(C'\fR,
 \&\f(CW\*(C`rrd_create\*(C'\fR, \f(CW\*(C`rrd_dump\*(C'\fR, \f(CW\*(C`rrd_info\*(C'\fR, \f(CW\*(C`rrd_last\*(C'\fR, and \f(CW\*(C`rrd_fetch\*(C'\fR.
index 7375bc8e247d9f602a75b766f51afc0f9b663ed7..36b365081ffe4b9e30d8fff8f386575c9830d352 100644 (file)
@@ -1,14 +1,18 @@
+<?xml version="1.0" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>rrdthreads</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <link rev="made" href="mailto:root@localhost" />
 </head>
 
 <body style="background-color: white">
 
-<p><a name="__index__"></a></p>
+
 <!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
 <!--
 
 <ul>
 
        <li><a href="#author">AUTHOR</a></li>
 </ul>
+
 -->
+
+
+</div>
 <!-- INDEX END -->
 
 <p>
@@ -42,98 +50,102 @@ on the way to use the multi-threaded version of librrd in your own
 programs. It also gives hints for future RRD development to keep the
 library thread-safe.</p>
 <p>Currently only some RRD operations are implemented in a thread-safe
-way. They all end in the usual ``<code>_r</code>'' suffix.</p>
+way. They all end in the usual &quot;<code>_r</code>&quot; suffix.</p>
 <p>
 </p>
 <hr />
 <h1><a name="description">DESCRIPTION</a></h1>
 <p>In order to use librrd in multi-threaded programs you must:</p>
 <ul>
-<li></li>
-Link with <em>librrd_th</em> instead of <em>librrd</em> (use <code>-lrrd_th</code> when
-linking)
-<p></p>
-<li></li>
-Use the ``<code>_r</code>'' functions instead of the normal API-functions
-<p></p>
-<li></li>
-Do not use any at-style time specifications. Parsing of such time
-specifications is terribly non-thread-safe.
-<p></p>
-<li></li>
-Never use non *<code>_r</code> functions unless it is explicitly documented that
-the function is tread-safe.
-<p></p>
-<li></li>
-Every thread SHOULD call <code>rrd_get_context()</code> before its first call to
+<li>
+<p>Link with <em class="file">librrd_th</em> instead of <em class="file">librrd</em> (use <code>-lrrd_th</code> when
+linking)</p>
+</li>
+<li>
+<p>Use the &quot;<code>_r</code>&quot; functions instead of the normal API-functions</p>
+</li>
+<li>
+<p>Do not use any at-style time specifications. Parsing of such time
+specifications is terribly non-thread-safe.</p>
+</li>
+<li>
+<p>Never use non *<code>_r</code> functions unless it is explicitly documented that
+the function is tread-safe.</p>
+</li>
+<li>
+<p>Every thread SHOULD call <code>rrd_get_context()</code> before its first call to
 any <code>librrd_th</code> function in order to set up thread specific data. This
 is not strictly required, but it is the only way to test if memory
 allocation can be done by this function. Otherwise the program may die
-with a SIGSEGV in a low-memory situation.
-<p></p>
-<li></li>
-Always call <code>rrd_error_clear()</code> before any call to the
-library. Otherwise the call might fail due to some earlier error.
-<p></p></ul>
+with a SIGSEGV in a low-memory situation.</p>
+</li>
+<li>
+<p>Always call <code>rrd_error_clear()</code> before any call to the
+library. Otherwise the call might fail due to some earlier error.</p>
+</li>
+</ul>
 <p>
 </p>
 <h2><a name="notes_for_rrd_contributors">NOTES FOR RRD CONTRIBUTORS</a></h2>
 <p>Some precautions must be followed when developing RRD from now on:</p>
 <ul>
-<li></li>
-Only use thread-safe functions in library code. Many often used libc
+<li>
+<p>Only use thread-safe functions in library code. Many often used libc
 functions aren't thread-safe. Take care in the following
-situations or when using the following library functions:
+situations or when using the following library functions:</p>
 <ul>
-<li></li>
-Direct calls to <code>strerror()</code> must be avoided: use <code>rrd_strerror()</code>
-instead, it provides a per-thread error message.
-<p></p>
-<li></li>
-The <code>getpw*</code>, <code>getgr*</code>, <code>gethost*</code> function families (and some more
-<code>get*</code> functions) are not thread-safe: use the *<code>_r</code> variants
-<p></p>
-<li></li>
-Time functions: <code>asctime</code>, <code>ctime</code>, <code>gmtime</code>, <code>localtime</code>: use
-*<code>_r</code> variants
-<p></p>
-<li></li>
-<code>strtok</code>: use <code>strtok_r</code>
-<p></p>
-<li></li>
-<code>tmpnam</code>: use <code>tmpnam_r</code>
-<p></p>
-<li></li>
-Many others (lookup documentation)
-<p></p></ul>
-<li></li>
-A header file named <em>rrd_is_thread_safe.h</em> is provided
-that works with the GNU C-preprocessor to ``poison'' some of the most
+<li>
+<p>Direct calls to <code>strerror()</code> must be avoided: use <code>rrd_strerror()</code>
+instead, it provides a per-thread error message.</p>
+</li>
+<li>
+<p>The <code>getpw*</code>, <code>getgr*</code>, <code>gethost*</code> function families (and some more
+<code>get*</code> functions) are not thread-safe: use the *<code>_r</code> variants</p>
+</li>
+<li>
+<p>Time functions: <code>asctime</code>, <code>ctime</code>, <code>gmtime</code>, <code>localtime</code>: use
+*<code>_r</code> variants</p>
+</li>
+<li>
+<p><code>strtok</code>: use <code>strtok_r</code></p>
+</li>
+<li>
+<p><code>tmpnam</code>: use <code>tmpnam_r</code></p>
+</li>
+<li>
+<p>Many others (lookup documentation)</p>
+</li>
+</ul>
+</li>
+<li>
+<p>A header file named <em class="file">rrd_is_thread_safe.h</em> is provided
+that works with the GNU C-preprocessor to &quot;poison&quot; some of the most
 common non-thread-safe functions using the <code>#pragma GCC poison</code>
 directive. Just include this header in source files you want to keep
-thread-safe.
-<p></p>
-<li></li>
-Do not introduce global variables!
+thread-safe.</p>
+</li>
+<li>
+<p>Do not introduce global variables!</p>
 <p>If you really, really have to use a global variable you may add a new
-field to the <code>rrd_context</code> structure and modify <em>rrd_error.c</em>,
-<em>rrd_thread_safe.c</em> and <em>rrd_non_thread_safe.c</em></p>
-<p></p>
-<li></li>
-Do not use <code>getopt</code> or <code>getopt_long</code> in *<code>_r</code> (neither directly nor
-indirectly).
+field to the <code>rrd_context</code> structure and modify <em class="file">rrd_error.c</em>,
+<em class="file">rrd_thread_safe.c</em> and <em class="file">rrd_non_thread_safe.c</em></p>
+</li>
+<li>
+<p>Do not use <code>getopt</code> or <code>getopt_long</code> in *<code>_r</code> (neither directly nor
+indirectly).</p>
 <p><code>getopt</code> uses global variables and behaves badly in a multi-threaded
 application when called concurrently. Instead provide a *_r function
 taking all options as function parameters. You may provide argc and
 **argv arguments for variable length argument lists. See
 <code>rrd_update_r</code> as an example.</p>
-<p></p>
-<li></li>
-Do not use the <code>rrd_parsetime</code> function!
+</li>
+<li>
+<p>Do not use the <code>rrd_parsetime</code> function!</p>
 <p>It uses lots of global variables. You may use it in functions not designed
 to be thread-safe, like in functions wrapping the <code>_r</code> version of some
 operation (e.g., <code>rrd_create</code>, but not in <code>rrd_create_r</code>)</p>
-<p></p></ul>
+</li>
+</ul>
 <p>
 </p>
 <h2><a name="currently_implemented_thread_safe_functions">CURRENTLY IMPLEMENTED THREAD SAFE FUNCTIONS</a></h2>
index 21ed7927095c35df76f18ebdd053e4f11c3e2b2f..43bd697a3dc498a544eb9db78184bff7dc7d53f2 100644 (file)
@@ -7,11 +7,12 @@ N\bNA\bAM\bME\bE
        multi-threaded programs
 
 S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
-       Using librrd in multi-threaded programs requires some extra precau-
-       tions, as the RRD library in its original form was not thread-safe at
-       all. This document describes requirements and pitfalls on the way to
-       use the multi-threaded version of librrd in your own programs. It also
-       gives hints for future RRD development to keep the library thread-safe.
+       Using librrd in multi-threaded programs requires some extra
+       precautions, as the RRD library in its original form was not thread-
+       safe at all. This document describes requirements and pitfalls on the
+       way to use the multi-threaded version of librrd in your own programs.
+       It also gives hints for future RRD development to keep the library
+       thread-safe.
 
        Currently only some RRD operations are implemented in a thread-safe
        way. They all end in the usual ""_r"" suffix.
@@ -19,62 +20,62 @@ S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        In order to use librrd in multi-threaded programs you must:
 
-       Â·   Link with _\bl_\bi_\bb_\br_\br_\bd_\b__\bt_\bh instead of _\bl_\bi_\bb_\br_\br_\bd (use "-lrrd_th" when linking)
+       Ã‚·   Link with _\bl_\bi_\bb_\br_\br_\bd_\b__\bt_\bh instead of _\bl_\bi_\bb_\br_\br_\bd (use "-lrrd_th" when linking)
 
-       Â·   Use the ""_r"" functions instead of the normal API-functions
+       Ã‚·   Use the ""_r"" functions instead of the normal API-functions
 
-       Â·   Do not use any at-style time specifications. Parsing of such time
+       Ã‚·   Do not use any at-style time specifications. Parsing of such time
            specifications is terribly non-thread-safe.
 
-       Â·   Never use non *"_r" functions unless it is explicitly documented
+       Ã‚·   Never use non *"_r" functions unless it is explicitly documented
            that the function is tread-safe.
 
-       Â·   Every thread SHOULD call "rrd_get_context()" before its first call
+       Ã‚·   Every thread SHOULD call "rrd_get_context()" before its first call
            to any "librrd_th" function in order to set up thread specific
            data. This is not strictly required, but it is the only way to test
            if memory allocation can be done by this function. Otherwise the
            program may die with a SIGSEGV in a low-memory situation.
 
-       Â·   Always call "rrd_error_clear()" before any call to the library.
+       Ã‚·   Always call "rrd_error_clear()" before any call to the library.
            Otherwise the call might fail due to some earlier error.
 
-       N\bNO\bOT\bTE\bES\bS F\bFO\bOR\bR R\bRR\bRD\bD C\bCO\bON\bNT\bTR\bRI\bIB\bBU\bUT\bTO\bOR\bRS\bS
-
+   N\bNO\bOT\bTE\bES\bS F\bFO\bOR\bR R\bRR\bRD\bD C\bCO\bON\bNT\bTR\bRI\bIB\bBU\bUT\bTO\bOR\bRS\bS
        Some precautions must be followed when developing RRD from now on:
 
-       Â·   Only use thread-safe functions in library code. Many often used
-           libc functions aren't thread-safe. Take care in the following situ-
-           ations or when using the following library functions:
+       Ã‚·   Only use thread-safe functions in library code. Many often used
+           libc functions aren't thread-safe. Take care in the following
+           situations or when using the following library functions:
 
-           Â·   Direct calls to "strerror()" must be avoided: use "rrd_str-
-               error()" instead, it provides a per-thread error message.
+           Â·   Direct calls to "strerror()" must be avoided: use
+               "rrd_strerror()" instead, it provides a per-thread error
+               message.
 
-           Â·   The "getpw*", "getgr*", "gethost*" function families (and some
-               more "get*" functions) are not thread-safe: use the *"_r" vari-
-               ants
+           Ã‚·   The "getpw*", "getgr*", "gethost*" function families (and some
+               more "get*" functions) are not thread-safe: use the *"_r"
+               variants
 
-           Â·   Time functions: "asctime", "ctime", "gmtime", "localtime": use
+           Ã‚·   Time functions: "asctime", "ctime", "gmtime", "localtime": use
                *"_r" variants
 
-           Â·   "strtok": use "strtok_r"
+           Ã‚·   "strtok": use "strtok_r"
 
-           Â·   "tmpnam": use "tmpnam_r"
+           Ã‚·   "tmpnam": use "tmpnam_r"
 
-           Â·   Many others (lookup documentation)
+           Ã‚·   Many others (lookup documentation)
 
-       Â·   A header file named _\br_\br_\bd_\b__\bi_\bs_\b__\bt_\bh_\br_\be_\ba_\bd_\b__\bs_\ba_\bf_\be_\b._\bh is provided that works
+       Ã‚·   A header file named _\br_\br_\bd_\b__\bi_\bs_\b__\bt_\bh_\br_\be_\ba_\bd_\b__\bs_\ba_\bf_\be_\b._\bh is provided that works
            with the GNU C-preprocessor to "poison" some of the most common
            non-thread-safe functions using the "#pragma GCC poison" directive.
-           Just include this header in source files you want to keep
-           thread-safe.
+           Just include this header in source files you want to keep thread-
+           safe.
 
-       Â·   Do not introduce global variables!
+       Ã‚·   Do not introduce global variables!
 
            If you really, really have to use a global variable you may add a
            new field to the "rrd_context" structure and modify _\br_\br_\bd_\b__\be_\br_\br_\bo_\br_\b._\bc,
            _\br_\br_\bd_\b__\bt_\bh_\br_\be_\ba_\bd_\b__\bs_\ba_\bf_\be_\b._\bc and _\br_\br_\bd_\b__\bn_\bo_\bn_\b__\bt_\bh_\br_\be_\ba_\bd_\b__\bs_\ba_\bf_\be_\b._\bc
 
-       Â·   Do not use "getopt" or "getopt_long" in *"_r" (neither directly nor
+       Ã‚·   Do not use "getopt" or "getopt_long" in *"_r" (neither directly nor
            indirectly).
 
            "getopt" uses global variables and behaves badly in a multi-
@@ -83,21 +84,20 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
            provide argc and **argv arguments for variable length argument
            lists. See "rrd_update_r" as an example.
 
-       Â·   Do not use the "rrd_parsetime" function!
+       Ã‚·   Do not use the "rrd_parsetime" function!
 
            It uses lots of global variables. You may use it in functions not
            designed to be thread-safe, like in functions wrapping the "_r"
-           version of some operation (e.g., "rrd_create", but not in "rrd_cre-
-           ate_r")
-
-       C\bCU\bUR\bRR\bRE\bEN\bNT\bTL\bLY\bY I\bIM\bMP\bPL\bLE\bEM\bME\bEN\bNT\bTE\bED\bD T\bTH\bHR\bRE\bEA\bAD\bD S\bSA\bAF\bFE\bE F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS
+           version of some operation (e.g., "rrd_create", but not in
+           "rrd_create_r")
 
-       Currently there exist thread-safe variants of "rrd_update", "rrd_cre-
-       ate", "rrd_dump", "rrd_info", "rrd_last", and "rrd_fetch".
+   C\bCU\bUR\bRR\bRE\bEN\bNT\bTL\bLY\bY I\bIM\bMP\bPL\bLE\bEM\bME\bEN\bNT\bTE\bED\bD T\bTH\bHR\bRE\bEA\bAD\bD S\bSA\bAF\bFE\bE F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS
+       Currently there exist thread-safe variants of "rrd_update",
+       "rrd_create", "rrd_dump", "rrd_info", "rrd_last", and "rrd_fetch".
 
 A\bAU\bUT\bTH\bHO\bOR\bR
        Peter Stamfest <peter@stamfest.at>
 
 
 
-1.3.99909060808                   2008-06-08                     RRDTHREADS(1)
+1.3.999                           2009-04-19                     RRDTHREADS(1)
index e336c2ffa74c6c56b157c98b8a3207ab6f94d4f8..3fe94f609035d1b653a79ebdd07cc0f5b9debb20 100644 (file)
@@ -1,15 +1,7 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.08)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
 .de Sp \" Vertical space (when we can't use .PP)
 .if t .sp .5v
 .if n .sp
 ..
 .\" Set up some character translations and predefined strings.  \*(-- will
 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
 .ie n \{\
 .    ds -- \(*W-
 .    ds R" ''
 'br\}
 .\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
 .\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
 .\" entries marked with X<> in POD.  Of course, you'll have to process the
 .\" output yourself in some meaningful fashion.
-.if \nF \{\
+.ie \nF \{\
 .    de IX
 .    tm Index:\\$1\t\\n%\t"\\$2"
 ..
 .    nr % 0
 .    rr F
 .\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
+.el \{\
+.    de IX
+..
+.\}
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
 .\" ========================================================================
 .\"
 .IX Title "RRDTOOL 1"
-.TH RRDTOOL 1 "2009-05-26" "1.3.99909060808" "rrdtool"
+.TH RRDTOOL 1 "2009-06-09" "1.3.999" "rrdtool"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
 .SH "NAME"
 rrdtool \- Round Robin Database Tool
 .SH "SYNOPSIS"
@@ -137,7 +136,7 @@ rrdtool \- Round Robin Database Tool
 \&\fBrrdtool\fR \fB\-\fR [workdir]| \fIfunction\fR
 .SH "DESCRIPTION"
 .IX Header "DESCRIPTION"
-.Sh "\s-1OVERVIEW\s0"
+.SS "\s-1OVERVIEW\s0"
 .IX Subsection "OVERVIEW"
 It is pretty easy to gather status information from all sorts of
 things, ranging from the temperature in your office to the number of
@@ -156,7 +155,7 @@ detailed description of how to use the individual functions of
 .PP
 For an introduction to the usage of RRDtool make sure you consult the
 rrdtutorial.
-.Sh "\s-1FUNCTIONS\s0"
+.SS "\s-1FUNCTIONS\s0"
 .IX Subsection "FUNCTIONS"
 While the man pages talk of command line switches you have to set in
 order to make \fBRRDtool\fR work it is important to note that
@@ -213,7 +212,7 @@ Flush the values for a specific \s-1RRD\s0 file from memory. Check rrdflushcache
 .IX Item "rrdcgi"
 This is a standalone tool for producing \s-1RRD\s0 graphs on the fly. Check
 rrdcgi.
-.Sh "\s-1HOW\s0 \s-1DOES\s0 \s-1RRDTOOL\s0 \s-1WORK\s0?"
+.SS "\s-1HOW\s0 \s-1DOES\s0 \s-1RRDTOOL\s0 \s-1WORK\s0?"
 .IX Subsection "HOW DOES RRDTOOL WORK?"
 .IP "Data Acquisition" 8
 .IX Item "Data Acquisition"
@@ -297,12 +296,12 @@ by Jake Brutlag
 \&\fBRRDtool\fR provides the building blocks for near real-time aberrant
 behavior detection. These components include:
 .RS 8
-.IP "*" 4
+.IP "\(bu" 4
 An algorithm for predicting the value of a time series one time step
 into the future.
-.IP "*" 4
+.IP "\(bu" 4
 A measure of deviation between predicted and observed values.
-.IP "*" 4
+.IP "\(bu" 4
 A mechanism to decide if and when an observed value or sequence of
 observed values is \fItoo deviant\fR from the predicted value(s).
 .RE
@@ -347,7 +346,7 @@ initiate real-time alerts.
 .Sp
 For a detailed description on how to set this up, see rrdcreate.
 .RE
-.Sh "\s-1REMOTE\s0 \s-1CONTROL\s0"
+.SS "\s-1REMOTE\s0 \s-1CONTROL\s0"
 .IX Subsection "REMOTE CONTROL"
 When you start \fBRRDtool\fR with the command line option '\fB\-\fR' it waits
 for input via standard input (\s-1STDIN\s0). With this feature you can
@@ -370,9 +369,9 @@ unless something really serious happens. If
 a \fBworkdir\fR is specified and the \s-1UID\s0 is 0, RRDtool will do a chroot to that
 workdir. If the \s-1UID\s0 is not 0, RRDtool only changes the current directory to
 \&\fBworkdir\fR.
-.Sh "\s-1RRD\s0 Server"
+.SS "\s-1RRD\s0 Server"
 .IX Subsection "RRD Server"
-If you want to create a RRD\-Server, you must choose a \s-1TCP/IP\s0 Service
+If you want to create a RRD-Server, you must choose a \s-1TCP/IP\s0 Service
 number and add them to \fI/etc/services\fR like this:
 .PP
 .Vb 1
index bd284e74f7304ea9c862f6f638f5756b601b22ed..fd28c52009242f0e02cc450d165adc9898434238 100644 (file)
@@ -1,14 +1,18 @@
+<?xml version="1.0" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>rrdtool</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <link rev="made" href="mailto:root@localhost" />
 </head>
 
 <body style="background-color: white">
 
-<p><a name="__index__"></a></p>
+
 <!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
 <!--
 
 <ul>
        <li><a href="#bugs">BUGS</a></li>
        <li><a href="#author">AUTHOR</a></li>
 </ul>
+
 -->
+
+
+</div>
 <!-- INDEX END -->
 
 <p>
@@ -76,103 +84,90 @@ further down. There is also a number of language bindings
 for RRDtool which allow you to use it directly from Perl, python, Tcl,
 PHP, etc.</p>
 <dl>
-<dt><strong><a name="item_create"><strong>create</strong></a></strong><br />
-</dt>
+<dt><strong><a name="create" class="item"><strong>create</strong></a></strong></dt>
+
 <dd>
-Set up a new Round Robin Database (RRD). Check <a href="././rrdcreate.html">the rrdcreate manpage</a>.
+<p>Set up a new Round Robin Database (RRD). Check <a href="././rrdcreate.html">the rrdcreate manpage</a>.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_update"><strong>update</strong></a></strong><br />
-</dt>
+<dt><strong><a name="update" class="item"><strong>update</strong></a></strong></dt>
+
 <dd>
-Store new data values into an RRD. Check <a href="././rrdupdate.html">the rrdupdate manpage</a>.
+<p>Store new data values into an RRD. Check <a href="././rrdupdate.html">the rrdupdate manpage</a>.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_updatev"><strong>updatev</strong></a></strong><br />
-</dt>
+<dt><strong><a name="updatev" class="item"><strong>updatev</strong></a></strong></dt>
+
 <dd>
-Operationally equivalent to <strong>update</strong> except for output. Check <a href="././rrdupdate.html">the rrdupdate manpage</a>.
+<p>Operationally equivalent to <strong>update</strong> except for output. Check <a href="././rrdupdate.html">the rrdupdate manpage</a>.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_graph"><strong>graph</strong></a></strong><br />
-</dt>
+<dt><strong><a name="graph" class="item"><strong>graph</strong></a></strong></dt>
+
 <dd>
-Create a graph from data stored in one or several RRDs. Apart from
-generating graphs, data can also be extracted to stdout. Check <a href="././rrdgraph.html">the rrdgraph manpage</a>.
+<p>Create a graph from data stored in one or several RRDs. Apart from
+generating graphs, data can also be extracted to stdout. Check <a href="././rrdgraph.html">the rrdgraph manpage</a>.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_dump"><strong>dump</strong></a></strong><br />
-</dt>
+<dt><strong><a name="dump" class="item"><strong>dump</strong></a></strong></dt>
+
 <dd>
-Dump the contents of an RRD in plain ASCII. In connection with restore
+<p>Dump the contents of an RRD in plain ASCII. In connection with restore
 you can use this to move an RRD from one computer architecture to
-another.  Check <a href="././rrddump.html">the rrddump manpage</a>.
+another.  Check <a href="././rrddump.html">the rrddump manpage</a>.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_restore"><strong>restore</strong></a></strong><br />
-</dt>
+<dt><strong><a name="restore" class="item"><strong>restore</strong></a></strong></dt>
+
 <dd>
-Restore an RRD in XML format to a binary RRD. Check <a href="././rrdrestore.html">the rrdrestore manpage</a>
+<p>Restore an RRD in XML format to a binary RRD. Check <a href="././rrdrestore.html">the rrdrestore manpage</a></p>
 </dd>
-<p></p>
-<dt><strong><a name="item_fetch"><strong>fetch</strong></a></strong><br />
-</dt>
+<dt><strong><a name="fetch" class="item"><strong>fetch</strong></a></strong></dt>
+
 <dd>
-Get data for a certain time period from a RRD. The graph function
-uses fetch to retrieve its data from an RRD. Check <a href="././rrdfetch.html">the rrdfetch manpage</a>.
+<p>Get data for a certain time period from a RRD. The graph function
+uses fetch to retrieve its data from an RRD. Check <a href="././rrdfetch.html">the rrdfetch manpage</a>.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_tune"><strong>tune</strong></a></strong><br />
-</dt>
+<dt><strong><a name="tune" class="item"><strong>tune</strong></a></strong></dt>
+
 <dd>
-Alter setup of an RRD. Check <a href="././rrdtune.html">the rrdtune manpage</a>.
+<p>Alter setup of an RRD. Check <a href="././rrdtune.html">the rrdtune manpage</a>.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_last"><strong>last</strong></a></strong><br />
-</dt>
+<dt><strong><a name="last" class="item"><strong>last</strong></a></strong></dt>
+
 <dd>
-Find the last update time of an RRD. Check <a href="././rrdlast.html">the rrdlast manpage</a>.
+<p>Find the last update time of an RRD. Check <a href="././rrdlast.html">the rrdlast manpage</a>.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_info"><strong>info</strong></a></strong><br />
-</dt>
+<dt><strong><a name="info" class="item"><strong>info</strong></a></strong></dt>
+
 <dd>
-Get information about an RRD. Check <a href="././rrdinfo.html">the rrdinfo manpage</a>.
+<p>Get information about an RRD. Check <a href="././rrdinfo.html">the rrdinfo manpage</a>.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_rrdresize"><strong>rrdresize</strong></a></strong><br />
-</dt>
+<dt><strong><a name="rrdresize" class="item"><strong>rrdresize</strong></a></strong></dt>
+
 <dd>
-Change the size of individual RRAs. This is dangerous! Check <a href="././rrdresize.html">the rrdresize manpage</a>.
+<p>Change the size of individual RRAs. This is dangerous! Check <a href="././rrdresize.html">the rrdresize manpage</a>.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_xport"><strong>xport</strong></a></strong><br />
-</dt>
+<dt><strong><a name="xport" class="item"><strong>xport</strong></a></strong></dt>
+
 <dd>
-Export data retrieved from one or several RRDs. Check <a href="././rrdxport.html">the rrdxport manpage</a>.
+<p>Export data retrieved from one or several RRDs. Check <a href="././rrdxport.html">the rrdxport manpage</a>.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_flushcached"><strong>flushcached</strong></a></strong><br />
-</dt>
+<dt><strong><a name="flushcached" class="item"><strong>flushcached</strong></a></strong></dt>
+
 <dd>
-Flush the values for a specific RRD file from memory. Check <a href="././rrdflushcached.html">the rrdflushcached manpage</a>.
+<p>Flush the values for a specific RRD file from memory. Check <a href="././rrdflushcached.html">the rrdflushcached manpage</a>.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_rrdcgi"><strong>rrdcgi</strong></a></strong><br />
-</dt>
+<dt><strong><a name="rrdcgi" class="item"><strong>rrdcgi</strong></a></strong></dt>
+
 <dd>
-This is a standalone tool for producing RRD graphs on the fly. Check
-<a href="././rrdcgi.html">the rrdcgi manpage</a>.
+<p>This is a standalone tool for producing RRD graphs on the fly. Check
+<a href="././rrdcgi.html">the rrdcgi manpage</a>.</p>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <h2><a name="how_does_rrdtool_work">HOW DOES RRDTOOL WORK?</a></h2>
 <dl>
-<dt><strong><a name="item_data_acquisition">Data Acquisition</a></strong><br />
-</dt>
+<dt><strong><a name="data_acquisition" class="item">Data Acquisition</a></strong></dt>
+
 <dd>
-When monitoring the state of a system, it is convenient to have the
+<p>When monitoring the state of a system, it is convenient to have the
 data available at a constant time interval. Unfortunately, you may not
 always be able to fetch data at exactly the time you want
 to. Therefore <strong>RRDtool</strong> lets you update the logfile at any time you
@@ -180,13 +175,12 @@ want. It will automatically interpolate the value of the data-source
 (<strong>DS</strong>) at the latest official time-slot (interval) and write this
 interpolated value to the log. The original value you have supplied is
 stored as well and is also taken into account when interpolating the
-next log entry.
+next log entry.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_consolidation">Consolidation</a></strong><br />
-</dt>
+<dt><strong><a name="consolidation" class="item">Consolidation</a></strong></dt>
+
 <dd>
-You may log data at a 1 minute interval, but you might also be
+<p>You may log data at a 1 minute interval, but you might also be
 interested to know the development of the data over the last year. You
 could do this by simply storing the data in 1 minute intervals for the
 whole year. While this would take considerable disk space it would
@@ -198,18 +192,15 @@ consolidation should occur, and what consolidation function (<strong>CF</strong>
 (average, minimum, maximum, total, last) should be used to build the
 consolidated values (see rrdcreate). You can define any number of
 different consolidation setups within one <strong>RRD</strong>. They will all be
-maintained on the fly when new data is loaded into the <strong>RRD</strong>.
+maintained on the fly when new data is loaded into the <strong>RRD</strong>.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_round_robin_archives">Round Robin Archives</a></strong><br />
-</dt>
+<dt><strong><a name="round_robin_archives" class="item">Round Robin Archives</a></strong></dt>
+
 <dd>
-Data values of the same consolidation setup are stored into Round
+<p>Data values of the same consolidation setup are stored into Round
 Robin Archives (<strong>RRA</strong>). This is a very efficient manner to store data
 for a certain amount of time, while using a known and constant amount
-of storage space.
-</dd>
-<dd>
+of storage space.</p>
 <p>It works like this: If you want to store 1'000 values in 5 minute
 interval, <strong>RRDtool</strong> will allocate space for 1'000 data values and a
 header area. In the header it will store a pointer telling which slots
@@ -220,25 +211,20 @@ manner. This automatically limits the history to the last 1'000 values
 single <strong>RRD</strong>, you can setup another one, for storing 750 data values
 at a 2 hour interval, for example, and thus keep a log for the last
 two months at a lower resolution.</p>
-</dd>
-<dd>
 <p>The use of <strong>RRA</strong>s guarantees that the <strong>RRD</strong> does not grow over
 time and that old data is automatically eliminated. By using the
 consolidation feature, you can still keep data for a very long time,
 while gradually reducing the resolution of the data along the time
 axis.</p>
-</dd>
-<dd>
 <p>Using different consolidation functions (<strong>CF</strong>) allows you to store
 exactly the type of information that actually interests you: the maximum
 one minute traffic on the LAN, the minimum temperature of your wine cellar,
 the total minutes of down time, etc.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_unknown_data">Unknown Data</a></strong><br />
-</dt>
+<dt><strong><a name="unknown_data" class="item">Unknown Data</a></strong></dt>
+
 <dd>
-As mentioned earlier, the <strong>RRD</strong> stores data at a constant
+<p>As mentioned earlier, the <strong>RRD</strong> stores data at a constant
 interval. Sometimes it may happen that no new data is available when a
 value has to be written to the <strong>RRD</strong>. Data acquisition may not be
 possible for one reason or other. With <strong>RRDtool</strong> you can handle these
@@ -249,40 +235,36 @@ values is accounted for and when a new consolidated value is ready to
 be written to its Round Robin Archive (<strong>RRA</strong>), a validity check is
 performed to make sure that the percentage of unknown values in the
 data point is above a configurable level. If not, an <em>*UNKNOWN*</em> value
-will be written to the <strong>RRA</strong>.
+will be written to the <strong>RRA</strong>.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_graphing">Graphing</a></strong><br />
-</dt>
+<dt><strong><a name="graphing" class="item">Graphing</a></strong></dt>
+
 <dd>
-<strong>RRDtool</strong> allows you to generate reports in numerical and
+<p><strong>RRDtool</strong> allows you to generate reports in numerical and
 graphical form based on the data stored in one or several
 <strong>RRD</strong>s. The graphing feature is fully configurable. Size, color and
 contents of the graph can be defined freely. Check <a href="././rrdgraph.html">the rrdgraph manpage</a>
-for more information on this.
-</dd>
-<p></p>
-<dt><strong><a name="item_aberrant_behavior_detection">Aberrant Behavior Detection</a></strong><br />
-</dt>
-<dd>
-by Jake Brutlag
+for more information on this.</p>
 </dd>
+<dt><strong><a name="aberrant_behavior_detection" class="item">Aberrant Behavior Detection</a></strong></dt>
+
 <dd>
+<p>by Jake Brutlag</p>
 <p><strong>RRDtool</strong> provides the building blocks for near real-time aberrant
 behavior detection. These components include:</p>
-</dd>
 <ul>
-<li></li>
-An algorithm for predicting the value of a time series one time step
-into the future.
-<p></p>
-<li></li>
-A measure of deviation between predicted and observed values.
-<p></p>
-<li></li>
-A mechanism to decide if and when an observed value or sequence of
-observed values is <em>too deviant</em> from the predicted value(s).
-<p></p></ul>
+<li>
+<p>An algorithm for predicting the value of a time series one time step
+into the future.</p>
+</li>
+<li>
+<p>A measure of deviation between predicted and observed values.</p>
+</li>
+<li>
+<p>A mechanism to decide if and when an observed value or sequence of
+observed values is <em>too deviant</em> from the predicted value(s).</p>
+</li>
+</ul>
 <p>Here is a brief explanation of these components:</p>
 <p>The Holt-Winters time series forecasting algorithm is an on-line (or
 incremental) algorithm that adaptively predicts future observations in
@@ -291,7 +273,7 @@ a time series. Its forecast is the sum of three components: a baseline
 coefficient (a periodic effect, such as a daily cycle). There is one
 seasonal coefficient for each time point in the period (cycle). After
 a value is observed, each of these components is updated via
-exponential smoothing. This means that the algorithm ``learns'' from
+exponential smoothing. This means that the algorithm &quot;learns&quot; from
 past values and uses them to predict the future. The rate of
 adaptation is governed by 3 parameters, alpha (intercept), beta
 (slope), and gamma (seasonal). The prediction can also be viewed as a
@@ -316,6 +298,7 @@ particular, a FAILURES <strong>RRA</strong> logs potential failures. With these
 you could, for example, use a front-end application to <strong>RRDtool</strong> to
 initiate real-time alerts.</p>
 <p>For a detailed description on how to set this up, see <a href="././rrdcreate.html">the rrdcreate manpage</a>.</p>
+</dd>
 </dl>
 <p>
 </p>
index 113857ef4b10f51d817969067f5796c51a911bbe..f6115a798adbd7a4d9a5c37ebfbec89c1dc8983e 100644 (file)
@@ -9,17 +9,16 @@ S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
        r\brr\brd\bdt\bto\boo\bol\bl -\b- [workdir]| _\bf_\bu_\bn_\bc_\bt_\bi_\bo_\bn
 
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
-       O\bOV\bVE\bER\bRV\bVI\bIE\bEW\bW
-
+   O\bOV\bVE\bER\bRV\bVI\bIE\bEW\bW
        It is pretty easy to gather status information from all sorts of
        things, ranging from the temperature in your office to the number of
        octets which have passed through the FDDI interface of your router. But
        it is not so trivial to store this data in an efficient and systematic
-       manner. This is where R\bRR\bRD\bDt\bto\boo\bol\bl comes in handy. It lets you _\bl_\bo_\bg _\ba_\bn_\bd _\ba_\bn_\ba_\b-
-       _\bl_\by_\bz_\be the data you gather from all kinds of data-sources (D\bDS\bS). The data
-       analysis part of RRDtool is based on the ability to quickly generate
-       graphical representations of the data values collected over a definable
-       time period.
+       manner. This is where R\bRR\bRD\bDt\bto\boo\bol\bl comes in handy. It lets you _\bl_\bo_\bg _\ba_\bn_\bd
+       _\ba_\bn_\ba_\bl_\by_\bz_\be the data you gather from all kinds of data-sources (D\bDS\bS). The
+       data analysis part of RRDtool is based on the ability to quickly
+       generate graphical representations of the data values collected over a
+       definable time period.
 
        In this man page you will find general information on the design and
        functionality of the Round Robin Database Tool (RRDtool). For a more
@@ -29,8 +28,7 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        For an introduction to the usage of RRDtool make sure you consult the
        rrdtutorial.
 
-       F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS
-
+   F\bFU\bUN\bNC\bCT\bTI\bIO\bON\bNS\bS
        While the man pages talk of command line switches you have to set in
        order to make R\bRR\bRD\bDt\bto\boo\bol\bl work it is important to note that R\bRR\bRD\bDt\bto\boo\bol\bl can be
        remotely controlled through a set of pipes. This saves a considerable
@@ -56,9 +54,9 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
 
        r\bre\bes\bst\bto\bor\bre\be Restore an RRD in XML format to a binary RRD. Check rrdrestore
 
-       f\bfe\bet\btc\bch\bh   Get data for a certain time period from a RRD. The graph func-
-               tion uses fetch to retrieve its data from an RRD. Check rrd-
-               fetch.
+       f\bfe\bet\btc\bch\bh   Get data for a certain time period from a RRD. The graph
+               function uses fetch to retrieve its data from an RRD. Check
+               rrdfetch.
 
        t\btu\bun\bne\be    Alter setup of an RRD. Check rrdtune.
 
@@ -79,9 +77,7 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        r\brr\brd\bdc\bcg\bgi\bi  This is a standalone tool for producing RRD graphs on the fly.
                Check rrdcgi.
 
-       H\bHO\bOW\bW D\bDO\bOE\bES\bS R\bRR\bRD\bDT\bTO\bOO\bOL\bL W\bWO\bOR\bRK\bK?\b?
-
-
+   H\bHO\bOW\bW D\bDO\bOE\bES\bS R\bRR\bRD\bDT\bTO\bOO\bOL\bL W\bWO\bOR\bRK\bK?\b?
        Data Acquisition
                When monitoring the state of a system, it is convenient to have
                the data available at a constant time interval. Unfortunately,
@@ -97,17 +93,18 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
                You may log data at a 1 minute interval, but you might also be
                interested to know the development of the data over the last
                year. You could do this by simply storing the data in 1 minute
-               intervals for the whole year. While this would take consider-
-               able disk space it would also take a lot of time to analyze the
-               data when you wanted to create a graph covering the whole year.
-               R\bRR\bRD\bDt\bto\boo\bol\bl offers a solution to this problem through its data con-
-               solidation feature. When setting up an Round Robin Database
-               (R\bRR\bRD\bD), you can define at which interval this consolidation
-               should occur, and what consolidation function (C\bCF\bF) (average,
-               minimum, maximum, total, last) should be used to build the con-
-               solidated values (see rrdcreate). You can define any number of
-               different consolidation setups within one R\bRR\bRD\bD. They will all be
-               maintained on the fly when new data is loaded into the R\bRR\bRD\bD.
+               intervals for the whole year. While this would take
+               considerable disk space it would also take a lot of time to
+               analyze the data when you wanted to create a graph covering the
+               whole year. R\bRR\bRD\bDt\bto\boo\bol\bl offers a solution to this problem through
+               its data consolidation feature. When setting up an Round Robin
+               Database (R\bRR\bRD\bD), you can define at which interval this
+               consolidation should occur, and what consolidation function
+               (C\bCF\bF) (average, minimum, maximum, total, last) should be used to
+               build the consolidated values (see rrdcreate). You can define
+               any number of different consolidation setups within one R\bRR\bRD\bD.
+               They will all be maintained on the fly when new data is loaded
+               into the R\bRR\bRD\bD.
 
        Round Robin Archives
                Data values of the same consolidation setup are stored into
@@ -118,14 +115,14 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
                It works like this: If you want to store 1'000 values in 5
                minute interval, R\bRR\bRD\bDt\bto\boo\bol\bl will allocate space for 1'000 data
                values and a header area. In the header it will store a pointer
-               telling which slots (value) in the storage area was last writ-
-               ten to. New values are written to the Round Robin Archive in,
-               you guessed it, a round robin manner. This automatically limits
-               the history to the last 1'000 values (in our example). Because
-               you can define several R\bRR\bRA\bAs within a single R\bRR\bRD\bD, you can setup
-               another one, for storing 750 data values at a 2 hour interval,
-               for example, and thus keep a log for the last two months at a
-               lower resolution.
+               telling which slots (value) in the storage area was last
+               written to. New values are written to the Round Robin Archive
+               in, you guessed it, a round robin manner. This automatically
+               limits the history to the last 1'000 values (in our example).
+               Because you can define several R\bRR\bRA\bAs within a single R\bRR\bRD\bD, you
+               can setup another one, for storing 750 data values at a 2 hour
+               interval, for example, and thus keep a log for the last two
+               months at a lower resolution.
 
                The use of R\bRR\bRA\bAs guarantees that the R\bRR\bRD\bD does not grow over time
                and that old data is automatically eliminated. By using the
@@ -140,11 +137,11 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
                time, etc.
 
        Unknown Data
-               As mentioned earlier, the R\bRR\bRD\bD stores data at a constant inter-
-               val. Sometimes it may happen that no new data is available when
-               a value has to be written to the R\bRR\bRD\bD. Data acquisition may not
-               be possible for one reason or other. With R\bRR\bRD\bDt\bto\boo\bol\bl you can han-
-               dle these situations by storing an _\b*_\bU_\bN_\bK_\bN_\bO_\bW_\bN_\b* value into the
+               As mentioned earlier, the R\bRR\bRD\bD stores data at a constant
+               interval. Sometimes it may happen that no new data is available
+               when a value has to be written to the R\bRR\bRD\bD. Data acquisition may
+               not be possible for one reason or other. With R\bRR\bRD\bDt\bto\boo\bol\bl you can
+               handle these situations by storing an _\b*_\bU_\bN_\bK_\bN_\bO_\bW_\bN_\b* value into the
                database. The value '_\b*_\bU_\bN_\bK_\bN_\bO_\bW_\bN_\b*' is supported through all the
                functions of the tool. When consolidating a data set, the
                amount of _\b*_\bU_\bN_\bK_\bN_\bO_\bW_\bN_\b* data values is accounted for and when a new
@@ -155,27 +152,27 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
                to the R\bRR\bRA\bA.
 
        Graphing
-               R\bRR\bRD\bDt\bto\boo\bol\bl allows you to generate reports in numerical and graphi-
-               cal form based on the data stored in one or several R\bRR\bRD\bDs. The
-               graphing feature is fully configurable. Size, color and con-
-               tents of the graph can be defined freely. Check rrdgraph for
+               R\bRR\bRD\bDt\bto\boo\bol\bl allows you to generate reports in numerical and
+               graphical form based on the data stored in one or several R\bRR\bRD\bDs.
+               The graphing feature is fully configurable. Size, color and
+               contents of the graph can be defined freely. Check rrdgraph for
                more information on this.
 
        Aberrant Behavior Detection
                by Jake Brutlag
 
-               R\bRR\bRD\bDt\bto\boo\bol\bl provides the building blocks for near real-time aber-
-               rant behavior detection. These components include:
+               R\bRR\bRD\bDt\bto\boo\bol\bl provides the building blocks for near real-time
+               aberrant behavior detection. These components include:
 
-               *   An algorithm for predicting the value of a time series one
+               Â·   An algorithm for predicting the value of a time series one
                    time step into the future.
 
-               *   A measure of deviation between predicted and observed val-
-                   ues.
+               Â·   A measure of deviation between predicted and observed
+                   values.
 
-               *   A mechanism to decide if and when an observed value or
-                   sequence of observed values is _\bt_\bo_\bo _\bd_\be_\bv_\bi_\ba_\bn_\bt from the pre-
-                   dicted value(s).
+               Â·   A mechanism to decide if and when an observed value or
+                   sequence of observed values is _\bt_\bo_\bo _\bd_\be_\bv_\bi_\ba_\bn_\bt from the
+                   predicted value(s).
 
                Here is a brief explanation of these components:
 
@@ -188,22 +185,22 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
                time point in the period (cycle). After a value is observed,
                each of these components is updated via exponential smoothing.
                This means that the algorithm "learns" from past values and
-               uses them to predict the future. The rate of adaptation is gov-
-               erned by 3 parameters, alpha (intercept), beta (slope), and
+               uses them to predict the future. The rate of adaptation is
+               governed by 3 parameters, alpha (intercept), beta (slope), and
                gamma (seasonal). The prediction can also be viewed as a
                smoothed value for the time series.
 
-               The measure of deviation is a seasonal weighted absolute devia-
-               tion. The term _\bs_\be_\ba_\bs_\bo_\bn_\ba_\bl means deviation is measured separately
-               for each time point in the seasonal cycle. As with Holt-Winters
-               forecasting, deviation is predicted using the measure computed
-               from past values (but only at that point in the seasonal
-               cycle). After the value is observed, the algorithm learns from
-               the observed value via exponential smoothing. Confidence bands
-               for the observed time series are generated by scaling the
-               sequence of predicted deviation values (we usually think of the
-               sequence as a continuous line rather than a set of discrete
-               points).
+               The measure of deviation is a seasonal weighted absolute
+               deviation. The term _\bs_\be_\ba_\bs_\bo_\bn_\ba_\bl means deviation is measured
+               separately for each time point in the seasonal cycle. As with
+               Holt-Winters forecasting, deviation is predicted using the
+               measure computed from past values (but only at that point in
+               the seasonal cycle). After the value is observed, the algorithm
+               learns from the observed value via exponential smoothing.
+               Confidence bands for the observed time series are generated by
+               scaling the sequence of predicted deviation values (we usually
+               think of the sequence as a continuous line rather than a set of
+               discrete points).
 
                Aberrant behavior (a potential failure) is reported whenever
                the number of times the observed value violates the confidence
@@ -216,17 +213,16 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
                data you could, for example, use a front-end application to
                R\bRR\bRD\bDt\bto\boo\bol\bl to initiate real-time alerts.
 
-               For a detailed description on how to set this up, see rrdcre-
-               ate.
-
-       R\bRE\bEM\bMO\bOT\bTE\bE C\bCO\bON\bNT\bTR\bRO\bOL\bL
+               For a detailed description on how to set this up, see
+               rrdcreate.
 
+   R\bRE\bEM\bMO\bOT\bTE\bE C\bCO\bON\bNT\bTR\bRO\bOL\bL
        When you start R\bRR\bRD\bDt\bto\boo\bol\bl with the command line option '-\b-' it waits for
        input via standard input (STDIN). With this feature you can improve
-       performance by attaching R\bRR\bRD\bDt\bto\boo\bol\bl to another process (MRTG is one exam-
-       ple) through a set of pipes. Over these pipes R\bRR\bRD\bDt\bto\boo\bol\bl accepts the same
-       arguments as on the command line and some special commands like q\bqu\bui\bit\bt,\b,
-       c\bcd\bd,\b, m\bmk\bkd\bdi\bir\br and l\bls\bs. For detailed help on the server commands type:
+       performance by attaching R\bRR\bRD\bDt\bto\boo\bol\bl to another process (MRTG is one
+       example) through a set of pipes. Over these pipes R\bRR\bRD\bDt\bto\boo\bol\bl accepts the
+       same arguments as on the command line and some special commands like
+       q\bqu\bui\bit\bt,\bc\bcd\bd,\b, m\bmk\bkd\bdi\bir\br and l\bls\bs. For detailed help on the server commands type:
 
           rrdtool help cd|mkdir|pwd|ls|quit
 
@@ -234,13 +230,12 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        followed by timing information of the form u\bu:\b:_\bu_\bs_\be_\br_\bt_\bi_\bm_\be s\bs:\b:_\bs_\by_\bs_\bt_\be_\bm_\bt_\bi_\bm_\be.
        Both values are the running totals of seconds since RRDtool was
        started. If an error occurs, a line of the form '"ERROR:" _\bD_\be_\bs_\bc_\br_\bi_\bp_\bt_\bi_\bo_\bn
-       _\bo_\bf _\be_\br_\br_\bo_\br' will be printed instead. R\bRR\bRD\bDt\bto\boo\bol\bl will not abort, unless some-
-       thing really serious happens. If a w\bwo\bor\brk\bkd\bdi\bir\br is specified and the UID is
-       0, RRDtool will do a chroot to that workdir. If the UID is not 0, RRD-
-       tool only changes the current directory to w\bwo\bor\brk\bkd\bdi\bir\br.
-
-       R\bRR\bRD\bD S\bSe\ber\brv\bve\ber\br
+       _\bo_\bf _\be_\br_\br_\bo_\br' will be printed instead. R\bRR\bRD\bDt\bto\boo\bol\bl will not abort, unless
+       something really serious happens. If a w\bwo\bor\brk\bkd\bdi\bir\br is specified and the UID
+       is 0, RRDtool will do a chroot to that workdir. If the UID is not 0,
+       RRDtool only changes the current directory to w\bwo\bor\brk\bkd\bdi\bir\br.
 
+   R\bRR\bRD\bD S\bSe\ber\brv\bve\ber\br
        If you want to create a RRD-Server, you must choose a TCP/IP Service
        number and add them to _\b/_\be_\bt_\bc_\b/_\bs_\be_\br_\bv_\bi_\bc_\be_\bs like this:
 
@@ -258,9 +253,9 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        Don't forget to create the database directory /var/rrd and reinitialize
        your inetd.
 
-       If all was setup correctly, you can access the server with Perl sock-
-       ets, tools like netcat, or in a quick interactive test by using 'telnet
-       localhost rrdsrv'.
+       If all was setup correctly, you can access the server with Perl
+       sockets, tools like netcat, or in a quick interactive test by using
+       'telnet localhost rrdsrv'.
 
        N\bNO\bOT\bTE\bE:\b: that there is no authentication with this feature! Do not setup
        such a port unless you are sure what you are doing.
@@ -283,4 +278,4 @@ A\bAU\bUT\bTH\bHO\bOR\bR
 
 
 
-1.3.99909060808                   2009-05-26                        RRDTOOL(1)
+1.3.999                           2009-06-09                        RRDTOOL(1)
index 83a71b766eea118b2cbc014a754ec2a46a877b2b..ef3fbc85158d41b296dfb39408d8a0104b455934 100644 (file)
@@ -1,15 +1,7 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.08)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
 .de Sp \" Vertical space (when we can't use .PP)
 .if t .sp .5v
 .if n .sp
 ..
 .\" Set up some character translations and predefined strings.  \*(-- will
 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
 .ie n \{\
 .    ds -- \(*W-
 .    ds R" ''
 'br\}
 .\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
 .\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
 .\" entries marked with X<> in POD.  Of course, you'll have to process the
 .\" output yourself in some meaningful fashion.
-.if \nF \{\
+.ie \nF \{\
 .    de IX
 .    tm Index:\\$1\t\\n%\t"\\$2"
 ..
 .    nr % 0
 .    rr F
 .\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
+.el \{\
+.    de IX
+..
+.\}
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
 .\" ========================================================================
 .\"
 .IX Title "RRDTUNE 1"
-.TH RRDTUNE 1 "2008-03-15" "1.3.99909060808" "rrdtool"
+.TH RRDTUNE 1 "2009-04-19" "1.3.999" "rrdtool"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
 .SH "NAME"
 rrdtune \- Modify some basic properties of a Round Robin Database
 .SH "SYNOPSIS"
index ea6baad9ae45e3acbe86af32e873e6caa1f792ec..feeba0d7fa11411c8ea2e6be772660abbc6848d1 100644 (file)
@@ -1,14 +1,18 @@
+<?xml version="1.0" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>rrdtune</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <link rev="made" href="mailto:root@localhost" />
 </head>
 
 <body style="background-color: white">
 
-<p><a name="__index__"></a></p>
+
 <!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
 <!--
 
 <ul>
        <li><a href="#example_2">EXAMPLE 2</a></li>
        <li><a href="#author">AUTHOR</a></li>
 </ul>
+
 -->
+
+
+</div>
 <!-- INDEX END -->
 
 <p>
@@ -64,131 +72,115 @@ the data source header in the <strong>RRD</strong>.</p>
 <p>A second application of the <strong>tune</strong> function is to set or alter parameters
 used by the specialized function <strong>RRAs</strong> for aberrant behavior detection.</p>
 <dl>
-<dt><strong><a name="item_filename"><em>filename</em></a></strong><br />
-</dt>
+<dt><strong><a name="filename" class="item"><em>filename</em></a></strong></dt>
+
 <dd>
-The name of the <strong>RRD</strong> you want to tune.
+<p>The name of the <strong>RRD</strong> you want to tune.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2d_2dheartbeat_7c_2dh_ds_2dname_3aheartbeat"><strong>--heartbeat</strong>|<strong>-h</strong>&nbsp;<em>ds-name</em>:<em>heartbeat</em></a></strong><br />
-</dt>
+<dt><strong><a name="heartbeat_h_ds_name_heartbeat" class="item"><strong>--heartbeat</strong>|<strong>-h</strong>&nbsp;<em>ds-name</em>:<em>heartbeat</em></a></strong></dt>
+
 <dd>
-modify the <em>heartbeat</em> of a data source. By setting this to a high
-value the RRD will accept things like one value per day.
+<p>modify the <em>heartbeat</em> of a data source. By setting this to a high
+value the RRD will accept things like one value per day.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2d_2dminimum_7c_2di_ds_2dname_3amin"><strong>--minimum</strong>|<strong>-i</strong>&nbsp;<em>ds-name</em>:<em>min</em></a></strong><br />
-</dt>
+<dt><strong><a name="minimum_i_ds_name_min" class="item"><strong>--minimum</strong>|<strong>-i</strong>&nbsp;<em>ds-name</em>:<em>min</em></a></strong></dt>
+
 <dd>
-alter the minimum value acceptable as input from the data source.
-Setting <em>min</em> to 'U' will disable this limit.
+<p>alter the minimum value acceptable as input from the data source.
+Setting <em>min</em> to 'U' will disable this limit.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2d_2dmaximum_7c_2da_ds_2dname_3amax"><strong>--maximum</strong>|<strong>-a</strong>&nbsp;<em>ds-name</em>:<em>max</em></a></strong><br />
-</dt>
+<dt><strong><a name="maximum_a_ds_name_max" class="item"><strong>--maximum</strong>|<strong>-a</strong>&nbsp;<em>ds-name</em>:<em>max</em></a></strong></dt>
+
 <dd>
-alter the maximum value acceptable as input from the data source.
-Setting <em>max</em> to 'U' will disable this limit.
+<p>alter the maximum value acceptable as input from the data source.
+Setting <em>max</em> to 'U' will disable this limit.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2d_2ddata_2dsource_2dtype_7c_2dd_ds_2dname_3adst"><strong>--data-source-type</strong>|<strong>-d</strong>&nbsp;<em>ds-name</em>:<em>DST</em></a></strong><br />
-</dt>
+<dt><strong><a name="data_source_type_d_ds_name_dst" class="item"><strong>--data-source-type</strong>|<strong>-d</strong>&nbsp;<em>ds-name</em>:<em>DST</em></a></strong></dt>
+
 <dd>
-alter the type <strong>DST</strong> of a data source.
+<p>alter the type <strong>DST</strong> of a data source.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2d_2ddata_2dsource_2drename_7c_2dr_old_2dname_3an"><strong>--data-source-rename</strong>|<strong>-r</strong>&nbsp;<em>old-name</em>:<em>new-name</em></a></strong><br />
-</dt>
+<dt><strong><a name="data_source_rename_r_old_name_new_name" class="item"><strong>--data-source-rename</strong>|<strong>-r</strong>&nbsp;<em>old-name</em>:<em>new-name</em></a></strong></dt>
+
 <dd>
-rename a data source.
+<p>rename a data source.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2d_2ddeltapos_scale_2dvalue"><strong>--deltapos</strong>&nbsp;<em>scale-value</em></a></strong><br />
-</dt>
+<dt><strong><a name="deltapos_scale_value" class="item"><strong>--deltapos</strong>&nbsp;<em>scale-value</em></a></strong></dt>
+
 <dd>
-Alter the deviation scaling factor for the upper bound of the
+<p>Alter the deviation scaling factor for the upper bound of the
 confidence band used internally to calculate violations for the
 FAILURES <strong>RRA</strong>. The default value is 2. Note that this parameter is
 not related to graphing confidence bounds which must be specified as a
 CDEF argument to generate a graph with confidence bounds. The graph
 scale factor need not to agree with the value used internally by the
-FAILURES <strong>RRA</strong>.
+FAILURES <strong>RRA</strong>.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2d_2ddeltaneg_scale_2dvalue"><strong>--deltaneg</strong>&nbsp;<em>scale-value</em></a></strong><br />
-</dt>
+<dt><strong><a name="deltaneg_scale_value" class="item"><strong>--deltaneg</strong>&nbsp;<em>scale-value</em></a></strong></dt>
+
 <dd>
-Alter the deviation scaling factor for the lower bound of the confidence band
+<p>Alter the deviation scaling factor for the lower bound of the confidence band
 used internally to calculate violations for the FAILURES <strong>RRA</strong>. The default
 value is 2. As with <strong>--deltapos</strong>, this argument is unrelated to the scale
-factor chosen when graphing confidence bounds.
+factor chosen when graphing confidence bounds.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2d_2dfailure_2dthreshold_failure_2dthreshold"><strong>--failure-threshold</strong>&nbsp;<em>failure-threshold</em></a></strong><br />
-</dt>
+<dt><strong><a name="failure_threshold_failure_threshold" class="item"><strong>--failure-threshold</strong>&nbsp;<em>failure-threshold</em></a></strong></dt>
+
 <dd>
-Alter the number of confidence bound violations that constitute a failure for
+<p>Alter the number of confidence bound violations that constitute a failure for
 purposes of the FAILURES <strong>RRA</strong>. This must be an integer less than or equal to
 the window length of the FAILURES <strong>RRA</strong>. This restriction is not verified by
 the tune option, so one can reset failure-threshold and window-length
-simultaneously. Setting this option will reset the count of violations to 0.
+simultaneously. Setting this option will reset the count of violations to 0.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2d_2dwindow_2dlength_window_2dlength"><strong>--window-length</strong>&nbsp;<em>window-length</em></a></strong><br />
-</dt>
+<dt><strong><a name="window_length_window_length" class="item"><strong>--window-length</strong>&nbsp;<em>window-length</em></a></strong></dt>
+
 <dd>
-Alter the number of time points in the temporal window for determining
+<p>Alter the number of time points in the temporal window for determining
 failures. This must be an integer greater than or equal to the window
 length of the FAILURES <strong>RRA</strong> and less than or equal to 28. Setting
-this option will reset the count of violations to 0.
+this option will reset the count of violations to 0.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2d_2dalpha_adaption_2dparameter"><strong>--alpha</strong>&nbsp;<em>adaption-parameter</em></a></strong><br />
-</dt>
+<dt><strong><a name="alpha_adaption_parameter" class="item"><strong>--alpha</strong>&nbsp;<em>adaption-parameter</em></a></strong></dt>
+
 <dd>
-Alter the intercept adaptation parameter for the Holt-Winters
-forecasting algorithm. This parameter must be between 0 and 1.
+<p>Alter the intercept adaptation parameter for the Holt-Winters
+forecasting algorithm. This parameter must be between 0 and 1.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2d_2dbeta_adaption_2dparameter"><strong>--beta</strong>&nbsp;<em>adaption-parameter</em></a></strong><br />
-</dt>
+<dt><strong><a name="beta_adaption_parameter" class="item"><strong>--beta</strong>&nbsp;<em>adaption-parameter</em></a></strong></dt>
+
 <dd>
-Alter the slope adaptation parameter for the Holt-Winters forecasting
-algorithm. This parameter must be between 0 and 1.
+<p>Alter the slope adaptation parameter for the Holt-Winters forecasting
+algorithm. This parameter must be between 0 and 1.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2d_2dgamma_adaption_2dparameter"><strong>--gamma</strong>&nbsp;<em>adaption-parameter</em></a></strong><br />
-</dt>
+<dt><strong><a name="gamma_adaption_parameter" class="item"><strong>--gamma</strong>&nbsp;<em>adaption-parameter</em></a></strong></dt>
+
 <dd>
-Alter the seasonal coefficient adaptation parameter for the SEASONAL
-<strong>RRA</strong>. This parameter must be between 0 and 1.
+<p>Alter the seasonal coefficient adaptation parameter for the SEASONAL
+<strong>RRA</strong>. This parameter must be between 0 and 1.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2d_2dgamma_2ddeviation_adaption_2dparameter"><strong>--gamma-deviation</strong>&nbsp;<em>adaption-parameter</em></a></strong><br />
-</dt>
+<dt><strong><a name="gamma_deviation_adaption_parameter" class="item"><strong>--gamma-deviation</strong>&nbsp;<em>adaption-parameter</em></a></strong></dt>
+
 <dd>
-Alter the seasonal deviation adaptation parameter for the DEVSEASONAL
-<strong>RRA</strong>. This parameter must be between 0 and 1.
+<p>Alter the seasonal deviation adaptation parameter for the DEVSEASONAL
+<strong>RRA</strong>. This parameter must be between 0 and 1.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2d_2dsmoothing_2dwindow_fraction_2dof_2dseason"><strong>--smoothing-window</strong>&nbsp;<em>fraction-of-season</em></a></strong><br />
-</dt>
+<dt><strong><a name="smoothing_window_fraction_of_season" class="item"><strong>--smoothing-window</strong>&nbsp;<em>fraction-of-season</em></a></strong></dt>
+
 <dd>
-Alter the size of the smoothing window for the SEASONAL <strong>RRA</strong>. This must
-be between 0 and 1.
+<p>Alter the size of the smoothing window for the SEASONAL <strong>RRA</strong>. This must
+be between 0 and 1.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2d_2dsmoothing_2dwindow_2ddeviation_fraction_2dof"><strong>--smoothing-window-deviation</strong>&nbsp;<em>fraction-of-season</em></a></strong><br />
-</dt>
+<dt><strong><a name="smoothing_window_deviation_fraction_of_season" class="item"><strong>--smoothing-window-deviation</strong>&nbsp;<em>fraction-of-season</em></a></strong></dt>
+
 <dd>
-Alter the size of the smoothing window for the DEVSEASONAL <strong>RRA</strong>. This must
-be between 0 and 1.
+<p>Alter the size of the smoothing window for the DEVSEASONAL <strong>RRA</strong>. This must
+be between 0 and 1.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2d_2daberrant_2dreset_ds_2dname"><strong>--aberrant-reset</strong>&nbsp;<em>ds-name</em></a></strong><br />
-</dt>
+<dt><strong><a name="aberrant_reset_ds_name" class="item"><strong>--aberrant-reset</strong>&nbsp;<em>ds-name</em></a></strong></dt>
+
 <dd>
-This option causes the aberrant behavior detection algorithm to reset
+<p>This option causes the aberrant behavior detection algorithm to reset
 for the specified data source; that is, forget all it is has learnt so far.
 Specifically, for the HWPREDICT or MHWPREDICT <strong>RRA</strong>, it sets the intercept and
 slope coefficients to unknown. For the SEASONAL <strong>RRA</strong>, it sets all seasonal
@@ -198,9 +190,7 @@ violation history. Note that reset does not erase past predictions
 (the values of the HWPREDICT or MHWPREDICT <strong>RRA</strong>), predicted deviations (the
 values of the DEVPREDICT <strong>RRA</strong>), or failure history (the values of the 
 FAILURES <strong>RRA</strong>).  This option will function even if not all the listed 
-<strong>RRAs</strong> are present.
-</dd>
-<dd>
+<strong>RRAs</strong> are present.</p>
 <p>Due to the implementation of this option, there is an indirect impact on
 other data sources in the RRD. A smoothing algorithm is applied to
 SEASONAL and DEVSEASONAL values on a periodic basis. During bootstrap
@@ -211,12 +201,10 @@ for all data sources in the file. This is unlikely to have serious
 consequences, unless the data being collected for the non-reset data sources
 is unusually volatile during the reinitialization period of the reset
 data source.</p>
-</dd>
-<dd>
 <p>Use of this tuning option is advised when the behavior of the data source
 time series changes in a drastic and permanent manner.</p>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <hr />
index a3f12c06c7645373e5d7ce99089e94375f262675..6478b5ea05e936f7e44b342e17e4651bed7d3500 100644 (file)
@@ -6,15 +6,16 @@ N\bNA\bAM\bME\bE
        rrdtune - Modify some basic properties of a Round Robin Database
 
 S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
-       r\brr\brd\bdt\bto\boo\bol\bl t\btu\bun\bne\be _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be [-\b--\b-h\bhe\bea\bar\brt\btb\bbe\bea\bat\bt|-\b-h\bh _\bd_\bs_\b-_\bn_\ba_\bm_\be:_\bh_\be_\ba_\br_\bt_\bb_\be_\ba_\bt] [-\b--\b-m\bmi\bin\bni\bi-\b-
-       m\bmu\bum\bm|-\b-i\bi _\bd_\bs_\b-_\bn_\ba_\bm_\be:_\bm_\bi_\bn] [-\b--\b-m\bma\bax\bxi\bim\bmu\bum\bm|-\b-a\ba _\bd_\bs_\b-_\bn_\ba_\bm_\be:_\bm_\ba_\bx]
+       r\brr\brd\bdt\bto\boo\bol\bl t\btu\bun\bne\be _\bf_\bi_\bl_\be_\bn_\ba_\bm_\be [-\b--\b-h\bhe\bea\bar\brt\btb\bbe\bea\bat\bt|-\b-h\bh _\bd_\bs_\b-_\bn_\ba_\bm_\be:_\bh_\be_\ba_\br_\bt_\bb_\be_\ba_\bt]
+       [-\b--\b-m\bmi\bin\bni\bim\bmu\bum\bm|-\b-i\bi _\bd_\bs_\b-_\bn_\ba_\bm_\be:_\bm_\bi_\bn] [-\b--\b-m\bma\bax\bxi\bim\bmu\bum\bm|-\b-a\ba _\bd_\bs_\b-_\bn_\ba_\bm_\be:_\bm_\ba_\bx]
        [-\b--\b-d\bda\bat\bta\ba-\b-s\bso\bou\bur\brc\bce\be-\b-t\bty\byp\bpe\be|-\b-d\bd _\bd_\bs_\b-_\bn_\ba_\bm_\be:_\bD_\bS_\bT] [-\b--\b-d\bda\bat\bta\ba-\b-s\bso\bou\bur\brc\bce\be-\b-r\bre\ben\bna\bam\bme\be|-\b-r\br _\bo_\bl_\bd_\b-
        _\bn_\ba_\bm_\be:_\bn_\be_\bw_\b-_\bn_\ba_\bm_\be] [-\b--\b-d\bde\bel\blt\bta\bap\bpo\bos\bs _\bs_\bc_\ba_\bl_\be_\b-_\bv_\ba_\bl_\bu_\be] [-\b--\b-d\bde\bel\blt\bta\ban\bne\beg\bg _\bs_\bc_\ba_\bl_\be_\b-_\bv_\ba_\bl_\bu_\be]
        [-\b--\b-f\bfa\bai\bil\blu\bur\bre\be-\b-t\bth\bhr\bre\bes\bsh\bho\bol\bld\bd _\bf_\ba_\bi_\bl_\bu_\br_\be_\b-_\bt_\bh_\br_\be_\bs_\bh_\bo_\bl_\bd] [-\b--\b-w\bwi\bin\bnd\bdo\bow\bw-\b-l\ble\ben\bng\bgt\bth\bh _\bw_\bi_\bn_\bd_\bo_\bw_\b-_\bl_\be_\bn_\bg_\bt_\bh]
-       [-\b--\b-a\bal\blp\bph\bha\ba _\ba_\bd_\ba_\bp_\bt_\bi_\bo_\bn_\b-_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br] [-\b--\b-b\bbe\bet\bta\ba _\ba_\bd_\ba_\bp_\bt_\bi_\bo_\bn_\b-_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br] [-\b--\b-g\bga\bam\bmm\bma\ba _\ba_\bd_\ba_\bp_\b-
-       _\bt_\bi_\bo_\bn_\b-_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br] [-\b--\b-g\bga\bam\bmm\bma\ba-\b-d\bde\bev\bvi\bia\bat\bti\bio\bon\bn _\ba_\bd_\ba_\bp_\bt_\bi_\bo_\bn_\b-_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br] [-\b--\b-s\bsm\bmo\boo\bot\bth\bh-\b-
-       i\bin\bng\bg-\b-w\bwi\bin\bnd\bdo\bow\bw _\bf_\br_\ba_\bc_\bt_\bi_\bo_\bn_\b-_\bo_\bf_\b-_\bs_\be_\ba_\bs_\bo_\bn] [-\b--\b-s\bsm\bmo\boo\bot\bth\bhi\bin\bng\bg-\b-w\bwi\bin\bnd\bdo\bow\bw-\b-d\bde\bev\bvi\bia\bat\bti\bio\bon\bn _\bf_\br_\ba_\bc_\bt_\bi_\bo_\bn_\b-
-       _\bo_\bf_\b-_\bs_\be_\ba_\bs_\bo_\bn] [-\b--\b-a\bab\bbe\ber\brr\bra\ban\bnt\bt-\b-r\bre\bes\bse\bet\bt _\bd_\bs_\b-_\bn_\ba_\bm_\be]
+       [-\b--\b-a\bal\blp\bph\bha\ba _\ba_\bd_\ba_\bp_\bt_\bi_\bo_\bn_\b-_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br] [-\b--\b-b\bbe\bet\bta\ba _\ba_\bd_\ba_\bp_\bt_\bi_\bo_\bn_\b-_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br]
+       [-\b--\b-g\bga\bam\bmm\bma\ba _\ba_\bd_\ba_\bp_\bt_\bi_\bo_\bn_\b-_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br] [-\b--\b-g\bga\bam\bmm\bma\ba-\b-d\bde\bev\bvi\bia\bat\bti\bio\bon\bn _\ba_\bd_\ba_\bp_\bt_\bi_\bo_\bn_\b-_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br]
+       [-\b--\b-s\bsm\bmo\boo\bot\bth\bhi\bin\bng\bg-\b-w\bwi\bin\bnd\bdo\bow\bw _\bf_\br_\ba_\bc_\bt_\bi_\bo_\bn_\b-_\bo_\bf_\b-_\bs_\be_\ba_\bs_\bo_\bn]
+       [-\b--\b-s\bsm\bmo\boo\bot\bth\bhi\bin\bng\bg-\b-w\bwi\bin\bnd\bdo\bow\bw-\b-d\bde\bev\bvi\bia\bat\bti\bio\bon\bn _\bf_\br_\ba_\bc_\bt_\bi_\bo_\bn_\b-_\bo_\bf_\b-_\bs_\be_\ba_\bs_\bo_\bn] [-\b--\b-a\bab\bbe\ber\brr\bra\ban\bnt\bt-\b-r\bre\bes\bse\bet\bt _\bd_\bs_\b-
+       _\bn_\ba_\bm_\be]
 
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        The tune option allows you to alter some of the basic configuration
@@ -57,9 +58,9 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
                confidence band used internally to calculate violations for the
                FAILURES R\bRR\bRA\bA. The default value is 2. Note that this parameter
                is not related to graphing confidence bounds which must be
-               specified as a CDEF argument to generate a graph with confi-
-               dence bounds. The graph scale factor need not to agree with the
-               value used internally by the FAILURES R\bRR\bRA\bA.
+               specified as a CDEF argument to generate a graph with
+               confidence bounds. The graph scale factor need not to agree
+               with the value used internally by the FAILURES R\bRR\bRA\bA.
 
        -\b--\b-d\bde\bel\blt\bta\ban\bne\beg\bg _\bs_\bc_\ba_\bl_\be_\b-_\bv_\ba_\bl_\bu_\be
                Alter the deviation scaling factor for the lower bound of the
@@ -73,24 +74,24 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
                a failure for purposes of the FAILURES R\bRR\bRA\bA. This must be an
                integer less than or equal to the window length of the FAILURES
                R\bRR\bRA\bA. This restriction is not verified by the tune option, so
-               one can reset failure-threshold and window-length simultane-
-               ously. Setting this option will reset the count of violations
-               to 0.
+               one can reset failure-threshold and window-length
+               simultaneously. Setting this option will reset the count of
+               violations to 0.
 
        -\b--\b-w\bwi\bin\bnd\bdo\bow\bw-\b-l\ble\ben\bng\bgt\bth\bh _\bw_\bi_\bn_\bd_\bo_\bw_\b-_\bl_\be_\bn_\bg_\bt_\bh
                Alter the number of time points in the temporal window for
                determining failures. This must be an integer greater than or
                equal to the window length of the FAILURES R\bRR\bRA\bA and less than or
-               equal to 28. Setting this option will reset the count of viola-
-               tions to 0.
+               equal to 28. Setting this option will reset the count of
+               violations to 0.
 
        -\b--\b-a\bal\blp\bph\bha\ba _\ba_\bd_\ba_\bp_\bt_\bi_\bo_\bn_\b-_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br
                Alter the intercept adaptation parameter for the Holt-Winters
                forecasting algorithm. This parameter must be between 0 and 1.
 
        -\b--\b-b\bbe\bet\bta\ba _\ba_\bd_\ba_\bp_\bt_\bi_\bo_\bn_\b-_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br
-               Alter the slope adaptation parameter for the Holt-Winters fore-
-               casting algorithm. This parameter must be between 0 and 1.
+               Alter the slope adaptation parameter for the Holt-Winters
+               forecasting algorithm. This parameter must be between 0 and 1.
 
        -\b--\b-g\bga\bam\bmm\bma\ba _\ba_\bd_\ba_\bp_\bt_\bi_\bo_\bn_\b-_\bp_\ba_\br_\ba_\bm_\be_\bt_\be_\br
                Alter the seasonal coefficient adaptation parameter for the
@@ -111,17 +112,17 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        -\b--\b-a\bab\bbe\ber\brr\bra\ban\bnt\bt-\b-r\bre\bes\bse\bet\bt _\bd_\bs_\b-_\bn_\ba_\bm_\be
                This option causes the aberrant behavior detection algorithm to
                reset for the specified data source; that is, forget all it is
-               has learnt so far.  Specifically, for the HWPREDICT or MHWPRE-
-               DICT R\bRR\bRA\bA, it sets the intercept and slope coefficients to
-               unknown. For the SEASONAL R\bRR\bRA\bA, it sets all seasonal coeffi-
-               cients to unknown. For the DEVSEASONAL R\bRR\bRA\bA, it sets all sea-
-               sonal deviation coefficients to unknown. For the FAILURES R\bRR\bRA\bA,
-               it erases the violation history. Note that reset does not erase
-               past predictions (the values of the HWPREDICT or MHWPREDICT
-               R\bRR\bRA\bA), predicted deviations (the values of the DEVPREDICT R\bRR\bRA\bA),
-               or failure history (the values of the FAILURES R\bRR\bRA\bA).  This
-               option will function even if not all the listed R\bRR\bRA\bAs\bs are
-               present.
+               has learnt so far.  Specifically, for the HWPREDICT or
+               MHWPREDICT R\bRR\bRA\bA, it sets the intercept and slope coefficients to
+               unknown. For the SEASONAL R\bRR\bRA\bA, it sets all seasonal
+               coefficients to unknown. For the DEVSEASONAL R\bRR\bRA\bA, it sets all
+               seasonal deviation coefficients to unknown. For the FAILURES
+               R\bRR\bRA\bA, it erases the violation history. Note that reset does not
+               erase past predictions (the values of the HWPREDICT or
+               MHWPREDICT R\bRR\bRA\bA), predicted deviations (the values of the
+               DEVPREDICT R\bRR\bRA\bA), or failure history (the values of the FAILURES
+               R\bRR\bRA\bA).  This option will function even if not all the listed
+               R\bRR\bRA\bAs\bs are present.
 
                Due to the implementation of this option, there is an indirect
                impact on other data sources in the RRD. A smoothing algorithm
@@ -136,8 +137,8 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
                period of the reset data source.
 
                Use of this tuning option is advised when the behavior of the
-               data source time series changes in a drastic and permanent man-
-               ner.
+               data source time series changes in a drastic and permanent
+               manner.
 
 E\bEX\bXA\bAM\bMP\bPL\bLE\bE 1\b1
        "rrdtool tune data.rrd -h in:100000 -h out:100000 -h through:100000"
@@ -159,4 +160,4 @@ A\bAU\bUT\bTH\bHO\bOR\bR
 
 
 
-1.3.99909060808                   2008-03-15                        RRDTUNE(1)
+1.3.999                           2009-04-19                        RRDTUNE(1)
index 5ace3cefed85c4e8c0bf25682e35c6c437ea2be2..43889acee2f5216b583011bca034d231ebb37422 100644 (file)
@@ -1,15 +1,7 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.08)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
 .de Sp \" Vertical space (when we can't use .PP)
 .if t .sp .5v
 .if n .sp
 ..
 .\" Set up some character translations and predefined strings.  \*(-- will
 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
 .ie n \{\
 .    ds -- \(*W-
 .    ds R" ''
 'br\}
 .\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
 .\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
 .\" entries marked with X<> in POD.  Of course, you'll have to process the
 .\" output yourself in some meaningful fashion.
-.if \nF \{\
+.ie \nF \{\
 .    de IX
 .    tm Index:\\$1\t\\n%\t"\\$2"
 ..
 .    nr % 0
 .    rr F
 .\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
+.el \{\
+.    de IX
+..
+.\}
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
 .\" ========================================================================
 .\"
 .IX Title "RRDTUTORIAL 1"
-.TH RRDTUTORIAL 1 "2009-04-09" "1.3.99909060808" "rrdtool"
+.TH RRDTUTORIAL 1 "2009-06-01" "1.3.999" "rrdtool"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
 .SH "NAME"
 rrdtutorial \- Alex van den Bogaerdt's RRDtool tutorial
 .SH "DESCRIPTION"
@@ -146,7 +145,7 @@ It also explains the general things about statistics with a focus on
 networking.
 .SH "TUTORIAL"
 .IX Header "TUTORIAL"
-.Sh "Important"
+.SS "Important"
 .IX Subsection "Important"
 Please don't skip ahead in this document!  The first part of this
 document explains the basics and may be boring.  But if you don't
@@ -170,7 +169,7 @@ examples which suffer from the same or a similar bug.  Try to fix it
 yourself, which is a great excercise. But please do not submit your
 result as a fix to the source of this document. Discuss it on the
 user's list, or write to me.
-.Sh "What is RRDtool?"
+.SS "What is RRDtool?"
 .IX Subsection "What is RRDtool?"
 RRDtool refers to Round Robin Database tool.
 Round robin is a technique that works with a fixed amount of data, and a
@@ -184,7 +183,7 @@ the process automatically reuses old locations. This way, the dataset
 will not grow in size and therefore requires no maintenance.
 RRDtool works with with Round Robin Databases (RRDs). It stores and retrieves
 data from them.
-.Sh "What data can be put into an \s-1RRD\s0?"
+.SS "What data can be put into an \s-1RRD\s0?"
 .IX Subsection "What data can be put into an RRD?"
 You name it, it will probably fit as long as it is some sort of
 time-series data. This means you have to be able to measure some value
@@ -200,7 +199,7 @@ way through this document, you should know enough to be able to
 understand what people are talking about. For now, just realize that
 \&\s-1SNMP\s0 can be used to query devices for the values of counters they keep. It
 is the value from those counters that we want to store in the \s-1RRD\s0.
-.Sh "What can I do with this tool?"
+.SS "What can I do with this tool?"
 .IX Subsection "What can I do with this tool?"
 RRDtool originated from \s-1MRTG\s0 (Multi Router Traffic Grapher). \s-1MRTG\s0
 started as a tiny little script for graphing the use of a university's
@@ -222,7 +221,7 @@ data in it, retrieve that data and create graphs in \s-1PNG\s0 format for
 display on a web browser. Those \s-1PNG\s0 images are dependent on the data
 you collected and could be, for instance, an overview of the average
 network usage, or the peaks that occurred.
-.Sh "What if I still have problems after reading this document?"
+.SS "What if I still have problems after reading this document?"
 .IX Subsection "What if I still have problems after reading this document?"
 First of all: read it again! You may have missed something.
 If you are unable to compile the sources and you have a fairly common
@@ -245,7 +244,7 @@ I suggest you take a moment to subscribe to the mailing list right now
 by sending an email to <rrd\-users\-request@lists.oetiker.ch> with a
 subject of \*(L"subscribe\*(R". If you ever want to leave this list, just write
 an email to the same address but now with a subject of \*(L"unsubscribe\*(R".
-.Sh "How will you help me?"
+.SS "How will you help me?"
 .IX Subsection "How will you help me?"
 By giving you some detailed descriptions with detailed examples.
 I assume that following the instructions in the order presented
@@ -258,7 +257,7 @@ more important, some background information of how it works.
 .PP
 You will need to know something about hexadecimal numbers. If you don't
 then start with reading bin_dec_hex before you continue here.
-.Sh "Your first Round Robin Database"
+.SS "Your first Round Robin Database"
 .IX Subsection "Your first Round Robin Database"
 In my opinion the best way to learn something is to actually do it.
 Why not start right now?  We will create a database, put some values
@@ -354,7 +353,7 @@ and skip all of the '\e' characters.
 .Ve
 .PP
 (So enter: \f(CW\*(C`rrdtool create test.rrd \-\-start 920804400 DS ...\*(C'\fR)
-.Sh "What has been created?"
+.SS "What has been created?"
 .IX Subsection "What has been created?"
 We created the round robin database called test (test.rrd) which starts at
 noon the day I started writing this document, 7th of March, 1999 (this date
@@ -380,7 +379,7 @@ As an example: where I will see \*(L"12:05\*(R" the \s-1UK\s0 folks will see \*(
 We now have to fill our database with some numbers. We'll pretend to
 have read the following numbers:
 .PP
-.Vb 15
+.Vb 10
 \& 12:05  12345 km
 \& 12:10  12357 km
 \& 12:15  12363 km
@@ -431,9 +430,7 @@ It should return the following output:
 .PP
 .Vb 1
 \&                          speed
-.Ve
-.PP
-.Vb 16
+\&
 \& 920804700: nan
 \& 920805000: 4.0000000000e\-02
 \& 920805300: 2.0000000000e\-02
@@ -457,10 +454,10 @@ If it doesn't, something may be wrong.  Perhaps your \s-1OS\s0 will print
 writes \*(L"U\*(R" or \*(L"\s-1UNKN\s0\*(R" or something similar that's okay.  If something
 else is wrong, it will probably be due to an error you made (assuming
 that my tutorial is correct of course :\-). In that case: delete the
-database and try again. 
+database and try again.
 .PP
 The meaning of the above output will become clear below.
-.Sh "Time to create some graphics"
+.SS "Time to create some graphics"
 .IX Subsection "Time to create some graphics"
 Try the following command:
 .PP
@@ -475,7 +472,7 @@ This will create speed.png which starts at 12:00 and ends at 13:00.
 There is a definition of a variable called myspeed, using the data from \s-1RRA\s0
 \&\*(L"speed\*(R" out of database \*(L"test.rrd\*(R". The line drawn is 2 pixels high
 and represents the variable myspeed. The color is red (specified by
-its rgb\-representation, see below).
+its rgb-representation, see below).
 .PP
 You'll notice that the start of the graph is not at 12:00 but at 12:05.
 This is because we have insufficient data to tell the average before
@@ -499,12 +496,12 @@ The \*(L"color\*(R" black is all colors off: 000000
 .Ve
 .PP
 Additionally you can (with a recent RRDtool)  add an alpha channel
-(transparency).  The default will be \*(L"\s-1FF\s0\*(R" which means non\-transparent.
+(transparency).  The default will be \*(L"\s-1FF\s0\*(R" which means non-transparent.
 .PP
 The \s-1PNG\s0 you just created can be displayed using your favorite image
 viewer.  Web browsers will display the \s-1PNG\s0 via the \s-1URL\s0
 \&\*(L"file:///the/path/to/speed.png\*(R"
-.Sh "Graphics with some math"
+.SS "Graphics with some math"
 .IX Subsection "Graphics with some math"
 When looking at the image, you notice that the horizontal axis is labeled
 12:10, 12:20, 12:30, 12:40 and 12:50. Sometimes a label doesn't fit (12:00
@@ -616,13 +613,13 @@ For values above the speed limit:
 \&   Check if kmh is greater than 100    ( kmh,100 ) GT
 \&   If so, return kmh, else return 0    ((( kmh,100) GT ), kmh, 0) IF
 .Ve
-.Sh "Graphics Magic"
+.SS "Graphics Magic"
 .IX Subsection "Graphics Magic"
 I like to believe there are virtually no limits to how RRDtool graph
 can manipulate data. I will not explain how it works, but look at the
 following \s-1PNG:\s0
 .PP
-.Vb 13
+.Vb 10
 \&   rrdtool graph speed4.png                           \e
 \&      \-\-start 920804400 \-\-end 920808000               \e
 \&      \-\-vertical\-label km/h                           \e
@@ -661,7 +658,7 @@ database.  When you want to view the data, recreate the PNGs and make
 sure to refresh them in your browser. (Note: just clicking reload may
 not be enough, especially when proxies are involved.  Try shift-reload
 or ctrl\-F5).
-.Sh "Updates in Reality"
+.SS "Updates in Reality"
 .IX Subsection "Updates in Reality"
 We've already used the \f(CW\*(C`update\*(C'\fR command: it took one or more
 parameters in the form of \*(L"<time>:<value>\*(R". You'll be glad to know
@@ -670,7 +667,7 @@ Or you could use the \*(L"time\*(R" function in Perl (the shortest example in
 this tutorial):
 .PP
 .Vb 1
-\&   perl \-e 'print time, "\en" '
+\&   perl \-e \*(Aqprint time, "\en" \*(Aq
 .Ve
 .PP
 How to run a program on regular intervals is \s-1OS\s0 specific. But here is
@@ -687,7 +684,7 @@ This is all. Run the above script every five minutes. When you need to know
 what the graphs look like, run the examples above. You could put them
 in a script as well. After running that script, view the page
 index.html we created above.
-.Sh "Some words on \s-1SNMP\s0"
+.SS "Some words on \s-1SNMP\s0"
 .IX Subsection "Some words on SNMP"
 I can imagine very few people that will be able to get real data from
 their car every five minutes. All other people will have to settle for
@@ -806,9 +803,7 @@ interface and from the above output I see that it is number four. I try:
 .PP
 .Vb 1
 \&   [user@host /home/alex]$ snmpget \-v2c \-c public cisco 2.2.1.10.4 2.2.1.16.4
-.Ve
-.PP
-.Vb 2
+\&
 \&   interfaces.ifTable.ifEntry.ifInOctets.4 = 2290729126
 \&   interfaces.ifTable.ifEntry.ifOutOctets.4 = 1256486519
 .Ve
@@ -836,7 +831,7 @@ and try snmpwalk if you don't get an answer from snmpget.
 .PP
 If you understand the above section and get numbers from your device, continue
 on with this tutorial. If not, then go back and re-read this part.
-.Sh "A Real World Example"
+.SS "A Real World Example"
 .IX Subsection "A Real World Example"
 Let the fun begin. First, create a new database. It contains data from
 two counters, called input and output. The data is put into archives
@@ -875,9 +870,7 @@ We will need:
 \& 700 samples of 30 minutes (2 days and 2 hours, plus 12.5 days)
 \& 775 samples of 2 hours    (above + 50 days)
 \& 797 samples of 1 day      (above + 732 days, rounded up to 797)
-.Ve
-.PP
-.Vb 11
+\&
 \&   rrdtool create myrouter.rrd         \e
 \&            DS:input:COUNTER:600:U:U   \e
 \&            DS:output:COUNTER:600:U:U  \e
@@ -904,13 +897,9 @@ to do exactly on your \s-1OS\s0 to make it work.
 \&      get result of
 \&         snmpget router community 2.2.1.16.4
 \&      into variable $out
-.Ve
-.PP
-.Vb 1
+\&
 \&      rrdtool update myrouter.rrd N:$in:$out
-.Ve
-.PP
-.Vb 2
+\&
 \&      wait for 5 minutes
 \&   done
 .Ve
@@ -938,7 +927,7 @@ see if you can get various options and calculations to work.
 Suggestion: Display in bytes per second and in bits per second. Make
 the Ethernet graphics go red if they are over four megabits per
 second.
-.Sh "Consolidation Functions"
+.SS "Consolidation Functions"
 .IX Subsection "Consolidation Functions"
 A few paragraphs back I mentioned the possibility of keeping
 the maximum values instead of the average values. Let's go
@@ -1002,7 +991,7 @@ interpret the data in an appropriate way. This is true for all data.
 The biggest mistake you can make is to use the collected data for
 something that it is not suitable for. You would be better off if
 you didn't have the graph at all.
-.Sh "Let's review what you now should know"
+.SS "Let's review what you now should know"
 .IX Subsection "Let's review what you now should know"
 You know how to create a database and can put data in it. You can get
 the numbers out again by creating an image, do math on the data from
@@ -1016,7 +1005,7 @@ the start and try some modifications on the examples. Make sure you
 fully understand everything. It will be worth the effort and helps
 you not only with the rest of this tutorial, but also in your day to day
 monitoring long after you read this introduction.
-.Sh "Data Source Types"
+.SS "Data Source Types"
 .IX Subsection "Data Source Types"
 All right, you feel like continuing. Welcome back and get ready
 for an increased speed in the examples and explanations.
@@ -1062,7 +1051,7 @@ calculations stay the same.
 .PP
 Let's try them all:
 .PP
-.Vb 22
+.Vb 10
 \&   rrdtool create all.rrd \-\-start 978300900 \e
 \&            DS:a:COUNTER:600:U:U \e
 \&            DS:b:GAUGE:600:U:U \e
@@ -1086,7 +1075,7 @@ Let's try them all:
 \&            DEF:linec=all.rrd:c:AVERAGE LINE3:linec#0000FF:"Line C" \e
 \&            DEF:lined=all.rrd:d:AVERAGE LINE3:lined#000000:"Line D"
 .Ve
-.Sh "RRDtool under the Microscope"
+.SS "RRDtool under the Microscope"
 .IX Subsection "RRDtool under the Microscope"
 .IP "\(bu" 2
 Line A is a \s-1COUNTER\s0 type, so it should continuously increment and RRDtool
@@ -1098,7 +1087,7 @@ Line B is of type \s-1GAUGE\s0. These are \*(L"real\*(R" values so they should m
 what we put in: a sort of a wave.
 .IP "\(bu" 2
 Line C is of type \s-1DERIVE\s0. It should be a counter that can decrease. It does
-so between 2400 and 0, with 1800 in\-between.
+so between 2400 and 0, with 1800 in-between.
 .IP "\(bu" 2
 Line D is of type \s-1ABSOLUTE\s0. This is like counter but it works on
 values without calculating the difference. The numbers are the same
@@ -1147,7 +1136,7 @@ the meaning of this input is different and thus the line is different.
 In this case the deltas increase each time with 300. The time delta
 stays at a constant 300 and therefore the division of the two gives
 increasing values.
-.Sh "Counter Wraps"
+.SS "Counter Wraps"
 .IX Subsection "Counter Wraps"
 There are a few more basics to show. Some important options are still to
 be covered and we haven't look at counter wraps yet. First the counter wrap:
@@ -1164,9 +1153,7 @@ maximum value of the counter + 1. For our car this would be:
 .PP
 .Vb 1
 \& Delta = 7 \- 999987 = \-999980    (instead of 1000007\-999987=20)
-.Ve
-.PP
-.Vb 1
+\&
 \& Real delta = \-999980 + 999999 + 1 = 20
 .Ve
 .PP
@@ -1202,7 +1189,7 @@ other problems as well and this particular problem would not even be
 worth thinking about. Even though, I did include an example, so you
 can judge for yourself.
 .PP
-The next section gives you some numerical examples for counter\-wraps.
+The next section gives you some numerical examples for counter-wraps.
 Try to do the calculations yourself or just believe me if your calculator
 can't handle the numbers :)
 .PP
@@ -1212,18 +1199,14 @@ Correction numbers:
 \& \- 32 bits: (4294967295 + 1) =                                4294967296
 \& \- 64 bits: (18446744073709551615 + 1)
 \&                                    \- correction1 = 18446744069414584320
-.Ve
-.PP
-.Vb 6
+\&
 \& Before:        4294967200
 \& Increase:                100
 \& Should become: 4294967300
 \& But really is:             4
 \& Delta:        \-4294967196
 \& Correction1:  \-4294967196 + 4294967296 = 100
-.Ve
-.PP
-.Vb 9
+\&
 \& Before:        18446744073709551000
 \& Increase:                             800
 \& Should become: 18446744073709551800
@@ -1233,9 +1216,7 @@ Correction numbers:
 \&                                + 4294967296 = \-18446744069414583520
 \& Correction2:  \-18446744069414583520
 \&                   + 18446744069414584320 = 800
-.Ve
-.PP
-.Vb 7
+\&
 \& Before:        18446744073709551615 ( maximum value )
 \& Increase:      18446744069414584320 ( absurd increase, minimum for
 \& Should become: 36893488143124135935             this example to work )
@@ -1243,9 +1224,7 @@ Correction numbers:
 \& Delta:                     \-4294967296
 \& Correction1:  \-4294967296 + 4294967296 = 0
 \& (not negative \-> no correction2)
-.Ve
-.PP
-.Vb 7
+\&
 \& Before:        18446744073709551615 ( maximum value )
 \& Increase:      18446744069414584319 ( one less increase )
 \& Should become: 36893488143124135934
@@ -1275,7 +1254,7 @@ and there must have been an error. Remember: the opposite is not true,
 if the numbers pass this check, it doesn't mean that they are
 correct. Always judge the graph with a healthy dose of suspicion if it
 seems weird to you.
-.Sh "Data Resampling"
+.SS "Data Resampling"
 .IX Subsection "Data Resampling"
 One important feature of RRDtool has not been explained yet: it is
 virtually impossible to collect data and feed it into RRDtool on exact
@@ -1297,9 +1276,7 @@ RRDtool interpolates and stores 300 as it should be.
 .PP
 .Vb 1
 \&      in the RRD                 in reality
-.Ve
-.PP
-.Vb 4
+\&
 \& time+000:   0 delta="U"   time+000:    0 delta="U"
 \& time+300: 300 delta=300   time+300:  300 delta=300
 \& time+600: 600 delta=300   time+603:  603 delta=303
@@ -1335,7 +1312,7 @@ Put in some data
 .PP
 Create output
 .PP
-.Vb 16
+.Vb 10
 \&   rrdtool graph seconds1.png                       \e
 \&      \-\-start 920804700 \-\-end 920806200             \e
 \&      \-\-height 200                                  \e
index 4eda356ae9847c7ca648963508dbc120b2ef6b9f..105c758d757e14d939edf14584d9ef716b4a47fc 100644 (file)
@@ -1,14 +1,18 @@
+<?xml version="1.0" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>rrdtutorial</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <link rev="made" href="mailto:root@localhost" />
 </head>
 
 <body style="background-color: white">
 
-<p><a name="__index__"></a></p>
+
 <!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
 <!--
 
 <ul>
        <li><a href="#see_also">SEE ALSO</a></li>
        <li><a href="#author">AUTHOR</a></li>
 </ul>
+
 -->
+
+
+</div>
 <!-- INDEX END -->
 
 <p>
@@ -77,7 +85,7 @@ networking.</p>
 document explains the basics and may be boring.  But if you don't
 understand the basics, the examples will not be as meaningful to you.</p>
 <p>Sometimes things change.  This example used to provide numbers like
-``0.04'' in stead of ``4.00000e-02''.  Those are really the same numbers,
+&quot;0.04&quot; in stead of &quot;4.00000e-02&quot;.  Those are really the same numbers,
 just written down differently.  Don't be alarmed if a future version
 of rrdtool displays a slightly different form of output. The examples
 in this document are correct for version 1.2.0 of RRDtool.</p>
@@ -117,7 +125,7 @@ you can do this, RRDtool will be able to store it. The values must be
 numerical but don't have to be integers, as is the case with MRTG (the
 next section will give more details on this more specialized application).</p>
 <p>Many examples below talk about SNMP which is an acronym for Simple Network
-Management Protocol. ``Simple'' refers to the protocol. It does not
+Management Protocol. &quot;Simple&quot; refers to the protocol. It does not
 mean it is simple to manage or monitor a network. After working your
 way through this document, you should know enough to be able to
 understand what people are talking about. For now, just realize that
@@ -163,8 +171,8 @@ and not only for this particular one. Look in the documentation that
 came with RRDtool for the location and usage of the list.</p>
 <p>I suggest you take a moment to subscribe to the mailing list right now
 by sending an email to &lt;<a href="mailto:rrd-users-request@lists.oetiker.ch">rrd-users-request@lists.oetiker.ch</a>&gt; with a
-subject of ``subscribe''. If you ever want to leave this list, just write
-an email to the same address but now with a subject of ``unsubscribe''.</p>
+subject of &quot;subscribe&quot;. If you ever want to leave this list, just write
+an email to the same address but now with a subject of &quot;unsubscribe&quot;.</p>
 <p>
 </p>
 <h2><a name="how_will_you_help_me">How will you help me?</a></h2>
@@ -203,17 +211,18 @@ know the time that has passes since we last asked so we now know how
 many bytes have been transfered ***on average*** per second. This is
 not very hard to calculate. First in words, then in calculations:</p>
 <ol>
-<li></li>
-Take the current counter, subtract the previous value from it.
-<p></p>
-<li></li>
-Do the same with the current time and the previous time (in seconds).
-<p></p>
-<li></li>
-Divide the outcome of (1) by the outcome of (2), the result is
+<li>
+<p>Take the current counter, subtract the previous value from it.</p>
+</li>
+<li>
+<p>Do the same with the current time and the previous time (in seconds).</p>
+</li>
+<li>
+<p>Divide the outcome of (1) by the outcome of (2), the result is
 the amount of bytes per second. Multiply by eight to get the
-number of bits per second (bps).
-<p></p></ol>
+number of bits per second (bps).</p>
+</li>
+</ol>
 <pre>
   bps = (counter_now - counter_before) / (time_now - time_before) * 8</pre>
 <p>For some people it may help to translate this to an automobile example.
@@ -266,7 +275,7 @@ and skip all of the '\' characters.</p>
 <p>We created the round robin database called test (test.rrd) which starts at
 noon the day I started writing this document, 7th of March, 1999 (this date
 translates to 920804400 seconds as explained below). Our database holds
-one data source (DS) named ``speed'' that represents a counter. This counter
+one data source (DS) named &quot;speed&quot; that represents a counter. This counter
 is read every five minutes (this is the default therefore you don't have to
 put <code>--step=300</code>).  In the same database two round robin archives (RRAs)
 are kept, one averages the data every time it is read (e.g., there's nothing
@@ -280,7 +289,7 @@ it will therefore look different for different time zones.</p>
 This means your time zone is different. In all examples where I talk
 about time, the hours may be wrong for you. This has little effect on
 the results of the examples, just correct the hours while reading.
-As an example: where I will see ``12:05'' the UK folks will see ``11:05''.</p>
+As an example: where I will see &quot;12:05&quot; the UK folks will see &quot;11:05&quot;.</p>
 <p>We now have to fill our database with some numbers. We'll pretend to
 have read the following numbers:</p>
 <pre>
@@ -314,7 +323,7 @@ have read the following numbers:</p>
 <p>As you can see, it is possible to feed more than one value into the
 database in one command. I had to stop at three for readability but
 the real maximum per line is OS dependent.</p>
-<p>We can now retrieve the data from our database using ``rrdtool fetch'':</p>
+<p>We can now retrieve the data from our database using &quot;rrdtool fetch&quot;:</p>
 <pre>
  rrdtool fetch test.rrd AVERAGE --start 920804400 --end 920809200</pre>
 <p>It should return the following output:</p>
@@ -338,8 +347,8 @@ the real maximum per line is OS dependent.</p>
  920808900: 3.3333333333e-03
  920809200: nan</pre>
 <p>If it doesn't, something may be wrong.  Perhaps your OS will print
-``NaN'' in a different form. ``NaN'' stands for ``Not A Number''.  If your OS
-writes ``U'' or ``UNKN'' or something similar that's okay.  If something
+&quot;NaN&quot; in a different form. &quot;NaN&quot; stands for &quot;Not A Number&quot;.  If your OS
+writes &quot;U&quot; or &quot;UNKN&quot; or something similar that's okay.  If something
 else is wrong, it will probably be due to an error you made (assuming
 that my tutorial is correct of course :-). In that case: delete the
 database and try again.</p>
@@ -355,7 +364,7 @@ database and try again.</p>
          LINE2:myspeed#FF0000</pre>
 <p>This will create speed.png which starts at 12:00 and ends at 13:00.
 There is a definition of a variable called myspeed, using the data from RRA
-``speed'' out of database ``test.rrd''. The line drawn is 2 pixels high
+&quot;speed&quot; out of database &quot;test.rrd&quot;. The line drawn is 2 pixels high
 and represents the variable myspeed. The color is red (specified by
 its rgb-representation, see below).</p>
 <p>You'll notice that the start of the graph is not at 12:00 but at 12:05.
@@ -366,8 +375,8 @@ not happen a lot, hopefully.</p>
 <p>The colors are built up from red, green and blue. For each of the
 components, you specify how much to use in hexadecimal where 00 means
 not included and FF means fully included.
-The ``color'' white is a mixture of red, green and blue: FFFFFF
-The ``color'' black is all colors off: 000000</p>
+The &quot;color&quot; white is a mixture of red, green and blue: FFFFFF
+The &quot;color&quot; black is all colors off: 000000</p>
 <pre>
    red     #FF0000
    green   #00FF00
@@ -375,10 +384,10 @@ The ``color'' black is all colors off: 000000</p>
    magenta #FF00FF     (mixed red with blue)
    gray    #555555     (one third of all components)</pre>
 <p>Additionally you can (with a recent RRDtool)  add an alpha channel
-(transparency).  The default will be ``FF'' which means non-transparent.</p>
+(transparency).  The default will be &quot;FF&quot; which means non-transparent.</p>
 <p>The PNG you just created can be displayed using your favorite image
 viewer.  Web browsers will display the PNG via the URL
-``file:///the/path/to/speed.png''</p>
+&quot;file:///the/path/to/speed.png&quot;</p>
 <p>
 </p>
 <h2><a name="graphics_with_some_math">Graphics with some math</a></h2>
@@ -388,8 +397,8 @@ and 13:00 would be likely candidates) so they are skipped.</p>
 <p>The vertical axis displays the range we entered. We provided
 kilometers and when divided by 300 seconds, we get very small
 numbers. To be exact, the first value was 12 (12357-12345) and divided
-by 300 this makes 0.04, which is displayed by RRDtool as ``40 m''
-meaning ``40/1000''. The ``m'' (milli) has nothing to do with meters (also m),
+by 300 this makes 0.04, which is displayed by RRDtool as &quot;40 m&quot;
+meaning &quot;40/1000&quot;. The &quot;m&quot; (milli) has nothing to do with meters (also m),
 kilometers or millimeters! RRDtool doesn't know about the physical
 units of our data, it just works with dimensionless numbers.</p>
 <p>If we had measured our distances in meters, this would have been
@@ -415,14 +424,14 @@ like so:</p>
 And it is your shell interpreting \, not RRDtool. You may need to
 adjust examples accordingly if you happen to use an operating
 system or shell which behaves differently.</p>
-<p>After viewing this PNG, you notice the ``m'' (milli) has
+<p>After viewing this PNG, you notice the &quot;m&quot; (milli) has
 disappeared. This it what the correct result would be. Also, a label
 has been added to the image.  Apart from the things mentioned above,
 the PNG should look the same.</p>
 <p>The calculations are specified in the CDEF part above and are in
-Reverse Polish Notation (``RPN''). What we requested RRDtool to do is:
-``take the data source myspeed and the number 1000; multiply
-those''. Don't bother with RPN yet, it will be explained later on in
+Reverse Polish Notation (&quot;RPN&quot;). What we requested RRDtool to do is:
+&quot;take the data source myspeed and the number 1000; multiply
+those&quot;. Don't bother with RPN yet, it will be explained later on in
 more detail. Also, you may want to read my tutorial on CDEFs and Steve
 Rader's tutorial on RPN. But first finish this tutorial.</p>
 <p>Hang on! If we can multiply values with 1000, it should also be possible
@@ -495,7 +504,7 @@ be the 5th line) used to read 'CDEF:kmh=myspeed,3600,*'</p>
    &lt;BR&gt;
    &lt;IMG src=&quot;speed4.png&quot; alt=&quot;Traveled too fast?&quot;&gt;
    &lt;/BODY&gt;&lt;/HTML&gt;</pre>
-<p>Name the file ``speed.html'' or similar, and look at it in your web browser.</p>
+<p>Name the file &quot;speed.html&quot; or similar, and look at it in your web browser.</p>
 <p>Now, all you have to do is measure the values regularly and update the
 database.  When you want to view the data, recreate the PNGs and make
 sure to refresh them in your browser. (Note: just clicking reload may
@@ -505,9 +514,9 @@ or ctrl-F5).</p>
 </p>
 <h2><a name="updates_in_reality">Updates in Reality</a></h2>
 <p>We've already used the <code>update</code> command: it took one or more
-parameters in the form of ``&lt;time&gt;:&lt;value&gt;''. You'll be glad to know
-that you can specify the current time by filling in a ``N'' as the time.
-Or you could use the ``time'' function in Perl (the shortest example in
+parameters in the form of &quot;&lt;time&gt;:&lt;value&gt;&quot;. You'll be glad to know
+that you can specify the current time by filling in a &quot;N&quot; as the time.
+Or you could use the &quot;time&quot; function in Perl (the shortest example in
 this tutorial):</p>
 <pre>
    perl -e 'print time, &quot;\n&quot; '</pre>
@@ -541,7 +550,7 @@ you understand they are not necessary. When you have to determine why
 things went wrong you need to know how they work.</p>
 <p>One tool used in the example has been talked about very briefly in the
 beginning of this document, it is called SNMP. It is a way of talking
-to networked equipment. The tool I use below is called ``snmpget'' and
+to networked equipment. The tool I use below is called &quot;snmpget&quot; and
 this is how it works:</p>
 <pre>
    snmpget device password OID</pre>
@@ -549,14 +558,14 @@ this is how it works:</p>
 <pre>
    snmpget -v[version] -c[password] device OID</pre>
 <p>For device you substitute the name, or the IP address, of your device.
-For password you use the ``community read string'' as it is called in the
-SNMP world.  For some devices the default of ``public'' might work, however
+For password you use the &quot;community read string&quot; as it is called in the
+SNMP world.  For some devices the default of &quot;public&quot; might work, however
 this can be disabled, altered or protected for privacy and security
 reasons.  Read the documentation that comes with your device or program.</p>
-<p>Then there is this parameter, called OID, which means ``object identifier''.</p>
+<p>Then there is this parameter, called OID, which means &quot;object identifier&quot;.</p>
 <p>When you start to learn about SNMP it looks very confusing. It isn't
 all that difficult when you look at the Management Information Base
-(``MIB'').  It is an upside-down tree that describes data, with a single node
+(&quot;MIB&quot;).  It is an upside-down tree that describes data, with a single node
 as the root and from there a number of branches.  These branches end
 up in another node, they branch out, etc.  All the branches have a name
 and they form the path that we follow all the way down.  The branches
@@ -572,7 +581,7 @@ you specify the complete OID.  Often those programs will leave out
 the default portion when returning the data to you.  To make things
 worse, they have several default prefixes ...</p>
 <p>Ok, lets continue to the start of our OID: we had 1.3.6.1.2.1
-From there, we are especially interested in the branch ``interfaces''
+From there, we are especially interested in the branch &quot;interfaces&quot;
 which has number 2 (e.g., 1.3.6.1.2.1.2 or 1.3.6.1.2.1.interfaces).</p>
 <p>First, we have to get some SNMP program. First look if there is a
 pre-compiled package available for your OS. This is the preferred way.
@@ -589,12 +598,12 @@ adapt the example to make it work.</p>
    snmpget -v2c -c public myrouter system.sysDescr.0</pre>
 <p>The device should answer with a description of itself, perhaps an
 empty one. Until you got a valid answer from a device, perhaps using a
-different ``password'', or a different device, there is no point in
+different &quot;password&quot;, or a different device, there is no point in
 continuing.</p>
 <pre>
    snmpget -v2c -c public myrouter interfaces.ifNumber.0</pre>
 <p>Hopefully you get a number as a result, the number of interfaces.
-If so, you can carry on and try a different program called ``snmpwalk''.</p>
+If so, you can carry on and try a different program called &quot;snmpwalk&quot;.</p>
 <pre>
    snmpwalk -v2c -c public myrouter interfaces.ifTable.ifEntry.ifDescr</pre>
 <p>If it returns with a list of interfaces, you're almost there.
@@ -606,7 +615,7 @@ Here's an example:
    interfaces.ifTable.ifEntry.ifDescr.3 = &quot;BRI0&quot; Hex: 42 52 49 30
    interfaces.ifTable.ifEntry.ifDescr.4 = &quot;Ethernet0&quot;
    interfaces.ifTable.ifEntry.ifDescr.5 = &quot;Loopback0&quot;</pre>
-<p>On this cisco equipment, I would like to monitor the ``Ethernet0''
+<p>On this cisco equipment, I would like to monitor the &quot;Ethernet0&quot;
 interface and from the above output I see that it is number four. I try:</p>
 <pre>
    [user@host /home/alex]$ snmpget -v2c -c public cisco 2.2.1.10.4 2.2.1.16.4</pre>
@@ -651,9 +660,9 @@ amount of data:</p>
  732 1-day samples:     732   days</pre>
 <p>These ranges are appended, so the total amount of data stored in the
 database is approximately 797 days. RRDtool stores the data
-differently, it doesn't start the ``weekly'' archive where the ``daily''
+differently, it doesn't start the &quot;weekly&quot; archive where the &quot;daily&quot;
 archive stopped. For both archives the most recent data will be near
-``now'' and therefore we will need to keep more data than MRTG does!</p>
+&quot;now&quot; and therefore we will need to keep more data than MRTG does!</p>
 <p>We will need:</p>
 <pre>
  600 samples of 5 minutes  (2 days and 2 hours)
@@ -700,7 +709,7 @@ to do exactly on your OS to make it work.</p>
 One day is 24 hours of 60 minutes of 60 seconds: 24*60*60=86400, we
 start at now minus 86400 seconds. We define (with DEFs) inoctets and
 outoctets as the average values from the database myrouter.rrd and draw
-an area for the ``in'' traffic and a line for the ``out'' traffic.</p>
+an area for the &quot;in&quot; traffic and a line for the &quot;out&quot; traffic.</p>
 <p>View the image and keep logging data for a few more days.
 If you like, you could try the examples from the test database and
 see if you can get various options and calculations to work.</p>
@@ -844,27 +853,28 @@ calculations stay the same.</p>
 </p>
 <h2><a name="rrdtool_under_the_microscope">RRDtool under the Microscope</a></h2>
 <ul>
-<li></li>
-Line A is a COUNTER type, so it should continuously increment and RRDtool
+<li>
+<p>Line A is a COUNTER type, so it should continuously increment and RRDtool
 must calculate the differences. Also, RRDtool needs to divide the
 difference by the amount of time lapsed. This should end up as a
-straight line at 1 (the deltas are 300, the time is 300).
-<p></p>
-<li></li>
-Line B is of type GAUGE. These are ``real'' values so they should match
-what we put in: a sort of a wave.
-<p></p>
-<li></li>
-Line C is of type DERIVE. It should be a counter that can decrease. It does
-so between 2400 and 0, with 1800 in-between.
-<p></p>
-<li></li>
-Line D is of type ABSOLUTE. This is like counter but it works on
+straight line at 1 (the deltas are 300, the time is 300).</p>
+</li>
+<li>
+<p>Line B is of type GAUGE. These are &quot;real&quot; values so they should match
+what we put in: a sort of a wave.</p>
+</li>
+<li>
+<p>Line C is of type DERIVE. It should be a counter that can decrease. It does
+so between 2400 and 0, with 1800 in-between.</p>
+</li>
+<li>
+<p>Line D is of type ABSOLUTE. This is like counter but it works on
 values without calculating the difference. The numbers are the same
-and as you can see (hopefully) this has a different result.
-<p></p></ul>
+and as you can see (hopefully) this has a different result.</p>
+</li>
+</ul>
 <p>This translates in the following values, starting at 23:10 and ending
-at 00:10 the next day (where ``u'' means unknown/unplotted):</p>
+at 00:10 the next day (where &quot;u&quot; means unknown/unplotted):</p>
 <pre>
  - Line A:  u  u  1  1  1  1  1  1  1  1  1  u
  - Line B:  u  1  3  5  3  1  2  4  6  4  2  u
@@ -877,34 +887,35 @@ and you successfully entered the year 2000 :)</p>
 the lines.</p>
 <p>Let's go over the data again:</p>
 <ul>
-<li></li>
-Line A: 300,600,900 and so on. The counter delta is a constant 300 and
+<li>
+<p>Line A: 300,600,900 and so on. The counter delta is a constant 300 and
 so is the time delta. A number divided by itself is always 1 (except
-when dividing by zero which is undefined/illegal).
+when dividing by zero which is undefined/illegal).</p>
 <p>Why is it that the first point is unknown? We do know what we put into
 the database, right? True, But we didn't have a value to calculate the delta
 from, so we don't know where we started. It would be wrong to assume we
 started at zero so we don't!</p>
-<p></p>
-<li></li>
-Line B: There is nothing to calculate. The numbers are as they are.
-<p></p>
-<li></li>
-Line C: Again, the start-out value is unknown. The same story is holds
+</li>
+<li>
+<p>Line B: There is nothing to calculate. The numbers are as they are.</p>
+</li>
+<li>
+<p>Line C: Again, the start-out value is unknown. The same story is holds
 as for line A. In this case the deltas are not constant, therefore the line
 is not either. If we would put the same numbers in the database as we did for
 line A, we would have gotten the same line. Unlike type counter,
 this type can decrease and I hope to show you later on why
-this makes a difference.
-<p></p>
-<li></li>
-Line D: Here the device calculates the deltas. Therefore we DO know the
+this makes a difference.</p>
+</li>
+<li>
+<p>Line D: Here the device calculates the deltas. Therefore we DO know the
 first delta and it is plotted. We had the same input as with line A, but
 the meaning of this input is different and thus the line is different.
 In this case the deltas increase each time with 300. The time delta
 stays at a constant 300 and therefore the division of the two gives
-increasing values.
-<p></p></ul>
+increasing values.</p>
+</li>
+</ul>
 <p>
 </p>
 <h2><a name="counter_wraps">Counter Wraps</a></h2>
@@ -993,10 +1004,10 @@ can't handle the numbers :)</p>
 for RRDtool to fail (provided it's bug free of course), so this should
 not happen. However, SNMP or whatever method you choose to collect the
 data, might also report wrong numbers occasionally.  We can't prevent all
-errors, but there are some things we can do. The RRDtool ``create'' command
+errors, but there are some things we can do. The RRDtool &quot;create&quot; command
 takes two special parameters for this. They define
-the minimum and maximum allowed values. Until now, we used ``U'', meaning
-``unknown''. If you provide values for one or both of them and if RRDtool
+the minimum and maximum allowed values. Until now, we used &quot;U&quot;, meaning
+&quot;unknown&quot;. If you provide values for one or both of them and if RRDtool
 receives data points that are outside these limits, it will ignore those
 values. For a thermometer in degrees Celsius, the absolute minimum is
 just under -273. For my router, I can assume this minimum is much higher
index 29d5de337215e76e84d58c8e97042112d6a2f415..f5237ace0b8a430c545ccb314ab6df85ae80e0bf 100644 (file)
@@ -6,23 +6,22 @@ N\bNA\bAM\bME\bE
        rrdtutorial - Alex van den Bogaerdt's RRDtool tutorial
 
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
-       RRDtool is written by Tobias Oetiker <tobi@oetiker.ch> with contribu-
-       tions from many people all around the world. This document is written
-       by Alex van den Bogaerdt <alex@vandenbogaerdt.nl> to help you under-
-       stand what RRDtool is and what it can do for you.
+       RRDtool is written by Tobias Oetiker <tobi@oetiker.ch> with
+       contributions from many people all around the world. This document is
+       written by Alex van den Bogaerdt <alex@vandenbogaerdt.nl> to help you
+       understand what RRDtool is and what it can do for you.
 
        The documentation provided with RRDtool can be too technical for some
-       people. This tutorial is here to help you understand the basics of RRD-
-       tool. It should prepare you to read the documentation yourself.  It
-       also explains the general things about statistics with a focus on net-
-       working.
+       people. This tutorial is here to help you understand the basics of
+       RRDtool. It should prepare you to read the documentation yourself.  It
+       also explains the general things about statistics with a focus on
+       networking.
 
 T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
-       I\bIm\bmp\bpo\bor\brt\bta\ban\bnt\bt
-
-       Please don't skip ahead in this document!  The first part of this docu-
-       ment explains the basics and may be boring.  But if you don't under-
-       stand the basics, the examples will not be as meaningful to you.
+   I\bIm\bmp\bpo\bor\brt\bta\ban\bnt\bt
+       Please don't skip ahead in this document!  The first part of this
+       document explains the basics and may be boring.  But if you don't
+       understand the basics, the examples will not be as meaningful to you.
 
        Sometimes things change.  This example used to provide numbers like
        "0.04" in stead of "4.00000e-02".  Those are really the same numbers,
@@ -43,68 +42,64 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
        result as a fix to the source of this document. Discuss it on the
        user's list, or write to me.
 
-       W\bWh\bha\bat\bt i\bis\bs R\bRR\bRD\bDt\bto\boo\bol\bl?\b?
-
-       RRDtool refers to Round Robin Database tool.  Round robin is a tech-
-       nique that works with a fixed amount of data, and a pointer to the cur-
-       rent element. Think of a circle with some dots plotted on the edge.
+   W\bWh\bha\bat\bt i\bis\bs R\bRR\bRD\bDt\bto\boo\bol\bl?\b?
+       RRDtool refers to Round Robin Database tool.  Round robin is a
+       technique that works with a fixed amount of data, and a pointer to the
+       current element. Think of a circle with some dots plotted on the edge.
        These dots are the places where data can be stored. Draw an arrow from
        the center of the circle to one of the dots; this is the pointer.  When
-       the current data is read or written, the pointer moves to the next ele-
-       ment. As we are on a circle there is neither a beginning nor an end,
+       the current data is read or written, the pointer moves to the next
+       element. As we are on a circle there is neither a beginning nor an end,
        you can go on and on and on. After a while, all the available places
        will be used and the process automatically reuses old locations. This
-       way, the dataset will not grow in size and therefore requires no main-
-       tenance.  RRDtool works with with Round Robin Databases (RRDs). It
+       way, the dataset will not grow in size and therefore requires no
+       maintenance.  RRDtool works with with Round Robin Databases (RRDs). It
        stores and retrieves data from them.
 
-       W\bWh\bha\bat\bt d\bda\bat\bta\ba c\bca\ban\bn b\bbe\be p\bpu\but\bt i\bin\bnt\bto\bo a\ban\bn R\bRR\bRD\bD?\b?
-
+   W\bWh\bha\bat\bt d\bda\bat\bta\ba c\bca\ban\bn b\bbe\be p\bpu\but\bt i\bin\bnt\bto\bo a\ban\bn R\bRR\bRD\bD?\b?
        You name it, it will probably fit as long as it is some sort of time-
        series data. This means you have to be able to measure some value at
        several points in time and provide this information to RRDtool. If you
        can do this, RRDtool will be able to store it. The values must be
        numerical but don't have to be integers, as is the case with MRTG (the
-       next section will give more details on this more specialized applica-
-       tion).
-
-       Many examples below talk about SNMP which is an acronym for Simple Net-
-       work Management Protocol. "Simple" refers to the protocol. It does not
-       mean it is simple to manage or monitor a network. After working your
-       way through this document, you should know enough to be able to under-
-       stand what people are talking about. For now, just realize that SNMP
-       can be used to query devices for the values of counters they keep. It
-       is the value from those counters that we want to store in the RRD.
-
-       W\bWh\bha\bat\bt c\bca\ban\bn I\bI d\bdo\bo w\bwi\bit\bth\bh t\bth\bhi\bis\bs t\bto\boo\bol\bl?\b?
-
+       next section will give more details on this more specialized
+       application).
+
+       Many examples below talk about SNMP which is an acronym for Simple
+       Network Management Protocol. "Simple" refers to the protocol. It does
+       not mean it is simple to manage or monitor a network. After working
+       your way through this document, you should know enough to be able to
+       understand what people are talking about. For now, just realize that
+       SNMP can be used to query devices for the values of counters they keep.
+       It is the value from those counters that we want to store in the RRD.
+
+   W\bWh\bha\bat\bt c\bca\ban\bn I\bI d\bdo\bo w\bwi\bit\bth\bh t\bth\bhi\bis\bs t\bto\boo\bol\bl?\b?
        RRDtool originated from MRTG (Multi Router Traffic Grapher). MRTG
        started as a tiny little script for graphing the use of a university's
        connection to the Internet. MRTG was later (ab-)used as a tool for
-       graphing other data sources including temperature, speed, voltage, num-
-       ber of printouts and the like.
+       graphing other data sources including temperature, speed, voltage,
+       number of printouts and the like.
 
        Most likely you will start to use RRDtool to store and process data
-       collected via SNMP. The data will most likely be bytes (or bits) trans-
-       fered from and to a network or a computer.  But it can also be used to
-       display tidal waves, solar radiation, power consumption, number of vis-
-       itors at an exhibition, noise levels near an airport, temperature on
-       your favorite holiday location, temperature in the fridge and whatever
-       you imagination can come up with.
-
-       You only need a sensor to measure the data and be able to feed the num-
-       bers into RRDtool. RRDtool then lets you create a database, store data
-       in it, retrieve that data and create graphs in PNG format for display
-       on a web browser. Those PNG images are dependent on the data you col-
-       lected and could be, for instance, an overview of the average network
-       usage, or the peaks that occurred.
-
-       W\bWh\bha\bat\bt i\bif\bf I\bI s\bst\bti\bil\bll\bl h\bha\bav\bve\be p\bpr\bro\bob\bbl\ble\bem\bms\bs a\baf\bft\bte\ber\br r\bre\bea\bad\bdi\bin\bng\bg t\bth\bhi\bis\bs d\bdo\boc\bcu\bum\bme\ben\bnt\bt?\b?
-
+       collected via SNMP. The data will most likely be bytes (or bits)
+       transfered from and to a network or a computer.  But it can also be
+       used to display tidal waves, solar radiation, power consumption, number
+       of visitors at an exhibition, noise levels near an airport, temperature
+       on your favorite holiday location, temperature in the fridge and
+       whatever you imagination can come up with.
+
+       You only need a sensor to measure the data and be able to feed the
+       numbers into RRDtool. RRDtool then lets you create a database, store
+       data in it, retrieve that data and create graphs in PNG format for
+       display on a web browser. Those PNG images are dependent on the data
+       you collected and could be, for instance, an overview of the average
+       network usage, or the peaks that occurred.
+
+   W\bWh\bha\bat\bt i\bif\bf I\bI s\bst\bti\bil\bll\bl h\bha\bav\bve\be p\bpr\bro\bob\bbl\ble\bem\bms\bs a\baf\bft\bte\ber\br r\bre\bea\bad\bdi\bin\bng\bg t\bth\bhi\bis\bs d\bdo\boc\bcu\bum\bme\ben\bnt\bt?\b?
        First of all: read it again! You may have missed something.  If you are
        unable to compile the sources and you have a fairly common OS, it will
-       probably not be the fault of RRDtool. There may be pre-compiled ver-
-       sions around on the Internet. If they come from trusted sources, get
+       probably not be the fault of RRDtool. There may be pre-compiled
+       versions around on the Internet. If they come from trusted sources, get
        one of those.
 
        If on the other hand the program works but does not give you the
@@ -112,19 +107,19 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
        configuration and compare it with the examples that follow.
 
        There is a mailing list and an archive of it. Read the list for a few
-       weeks and search the archive. It is considered rude to just ask a ques-
-       tion without searching the archives: your problem may already have been
-       solved for somebody else!  This is true for most, if not all, mailing
-       lists and not only for this particular one. Look in the documentation
-       that came with RRDtool for the location and usage of the list.
+       weeks and search the archive. It is considered rude to just ask a
+       question without searching the archives: your problem may already have
+       been solved for somebody else!  This is true for most, if not all,
+       mailing lists and not only for this particular one. Look in the
+       documentation that came with RRDtool for the location and usage of the
+       list.
 
        I suggest you take a moment to subscribe to the mailing list right now
-       by sending an email to <rrd-users-request@lists.oetiker.ch> with a sub-
-       ject of "subscribe". If you ever want to leave this list, just write an
-       email to the same address but now with a subject of "unsubscribe".
-
-       H\bHo\bow\bw w\bwi\bil\bll\bl y\byo\bou\bu h\bhe\bel\blp\bp m\bme\be?\b?
+       by sending an email to <rrd-users-request@lists.oetiker.ch> with a
+       subject of "subscribe". If you ever want to leave this list, just write
+       an email to the same address but now with a subject of "unsubscribe".
 
+   H\bHo\bow\bw w\bwi\bil\bll\bl y\byo\bou\bu h\bhe\bel\blp\bp m\bme\be?\b?
        By giving you some detailed descriptions with detailed examples.  I
        assume that following the instructions in the order presented will give
        you enough knowledge of RRDtool to experiment for yourself.  If it
@@ -137,8 +132,7 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
        You will need to know something about hexadecimal numbers. If you don't
        then start with reading bin_dec_hex before you continue here.
 
-       Y\bYo\bou\bur\br f\bfi\bir\brs\bst\bt R\bRo\bou\bun\bnd\bd R\bRo\bob\bbi\bin\bn D\bDa\bat\bta\bab\bba\bas\bse\be
-
+   Y\bYo\bou\bur\br f\bfi\bir\brs\bst\bt R\bRo\bou\bun\bnd\bd R\bRo\bob\bbi\bin\bn D\bDa\bat\bta\bab\bba\bas\bse\be
        In my opinion the best way to learn something is to actually do it.
        Why not start right now?  We will create a database, put some values in
        it and extract this data again.  Your output should be the same as the
@@ -150,26 +144,26 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
 
        Assume we have a device that transfers bytes to and from the Internet.
        This device keeps a counter that starts at zero when it is turned on,
-       increasing with every byte that is transfered. This counter will proba-
-       bly have a maximum value. If this value is reached and an extra byte is
-       counted, the counter starts over at zero. This is the same as many
-       counters in the world such as the mileage counter in a car.
+       increasing with every byte that is transfered. This counter will
+       probably have a maximum value. If this value is reached and an extra
+       byte is counted, the counter starts over at zero. This is the same as
+       many counters in the world such as the mileage counter in a car.
 
        Most discussions about networking talk about bits per second so lets
        get used to that right away. Assume a byte is eight bits and start to
        think in bits not bytes. The counter, however, still counts bytes!  In
        the SNMP world most of the counters are 32 bits. That means they are
-       counting from 0 to 4294967295. We will use these values in the exam-
-       ples.  The device, when asked, returns the current value of the
+       counting from 0 to 4294967295. We will use these values in the
+       examples.  The device, when asked, returns the current value of the
        counter. We know the time that has passes since we last asked so we now
        know how many bytes have been transfered ***on average*** per second.
-       This is not very hard to calculate. First in words, then in calcula-
-       tions:
+       This is not very hard to calculate. First in words, then in
+       calculations:
 
        1. Take the current counter, subtract the previous value from it.
 
-       2. Do the same with the current time and the previous time (in sec-
-          onds).
+       2. Do the same with the current time and the previous time (in
+          seconds).
 
        3. Divide the outcome of (1) by the outcome of (2), the result is the
           amount of bytes per second. Multiply by eight to get the number of
@@ -203,8 +197,8 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
 
        We could also calculate the speed in km/h: 12 times 5 minutes is an
        hour, so we have to multiply 12 km by 12 to get 144 km/h.  For our
-       native English speaking friends: that's 90 mph so don't try this exam-
-       ple at home or where I live :)
+       native English speaking friends: that's 90 mph so don't try this
+       example at home or where I live :)
 
        Remember: these numbers are averages only.  There is no way to figure
        out from the numbers, if you drove at a constant speed.  There is an
@@ -219,8 +213,8 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
        OS to OS, but I assume you can figure it out if it works different on
        your's. Make sure you do not overwrite any file on your system when
        executing the following command and type the whole line as one long
-       line (I had to split it for readability) and skip all of the '\' char-
-       acters.
+       line (I had to split it for readability) and skip all of the '\'
+       characters.
 
           rrdtool create test.rrd             \
                    --start 920804400          \
@@ -230,8 +224,7 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
 
        (So enter: "rrdtool create test.rrd --start 920804400 DS ...")
 
-       W\bWh\bha\bat\bt h\bha\bas\bs b\bbe\bee\ben\bn c\bcr\bre\bea\bat\bte\bed\bd?\b?
-
+   W\bWh\bha\bat\bt h\bha\bas\bs b\bbe\bee\ben\bn c\bcr\bre\bea\bat\bte\bed\bd?\b?
        We created the round robin database called test (test.rrd) which starts
        at noon the day I started writing this document, 7th of March, 1999
        (this date translates to 920804400 seconds as explained below). Our
@@ -326,8 +319,7 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
 
        The meaning of the above output will become clear below.
 
-       T\bTi\bim\bme\be t\bto\bo c\bcr\bre\bea\bat\bte\be s\bso\bom\bme\be g\bgr\bra\bap\bph\bhi\bic\bcs\bs
-
+   T\bTi\bim\bme\be t\bto\bo c\bcr\bre\bea\bat\bte\be s\bso\bom\bme\be g\bgr\bra\bap\bph\bhi\bic\bcs\bs
        Try the following command:
 
         rrdtool graph speed.png                                 \
@@ -348,11 +340,11 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
 
        If this has worked: congratulations! If not, check what went wrong.
 
-       The colors are built up from red, green and blue. For each of the com-
-       ponents, you specify how much to use in hexadecimal where 00 means not
-       included and FF means fully included.  The "color" white is a mixture
-       of red, green and blue: FFFFFF The "color" black is all colors off:
-       000000
+       The colors are built up from red, green and blue. For each of the
+       components, you specify how much to use in hexadecimal where 00 means
+       not included and FF means fully included.  The "color" white is a
+       mixture of red, green and blue: FFFFFF The "color" black is all colors
+       off: 000000
 
           red     #FF0000
           green   #00FF00
@@ -367,8 +359,7 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
        viewer.  Web browsers will display the PNG via the URL
        "file:///the/path/to/speed.png"
 
-       G\bGr\bra\bap\bph\bhi\bic\bcs\bs w\bwi\bit\bth\bh s\bso\bom\bme\be m\bma\bat\bth\bh
-
+   G\bGr\bra\bap\bph\bhi\bic\bcs\bs w\bwi\bit\bth\bh s\bso\bom\bme\be m\bma\bat\bth\bh
        When looking at the image, you notice that the horizontal axis is
        labeled 12:10, 12:20, 12:30, 12:40 and 12:50. Sometimes a label doesn't
        fit (12:00 and 13:00 would be likely candidates) so they are skipped.
@@ -384,10 +375,10 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
        If we had measured our distances in meters, this would have been
        (12357000-12345000)/300 = 12000/300 = 40.
 
-       As most people have a better feel for numbers in this range, we'll cor-
-       rect that. We could recreate our database and store the correct data,
-       but there is a better way: we do some calculations while creating the
-       png file!
+       As most people have a better feel for numbers in this range, we'll
+       correct that. We could recreate our database and store the correct
+       data, but there is a better way: we do some calculations while creating
+       the png file!
 
           rrdtool graph speed2.png                           \
              --start 920804400 --end 920808000               \
@@ -420,8 +411,8 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
        detail. Also, you may want to read my tutorial on CDEFs and Steve
        Rader's tutorial on RPN. But first finish this tutorial.
 
-       Hang on! If we can multiply values with 1000, it should also be possi-
-       ble to display kilometers per hour from the same data!
+       Hang on! If we can multiply values with 1000, it should also be
+       possible to display kilometers per hour from the same data!
 
        To change a value that is measured in meters per second:
 
@@ -466,8 +457,7 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
           Check if kmh is greater than 100    ( kmh,100 ) GT
           If so, return kmh, else return 0    ((( kmh,100) GT ), kmh, 0) IF
 
-       G\bGr\bra\bap\bph\bhi\bic\bcs\bs M\bMa\bag\bgi\bic\bc
-
+   G\bGr\bra\bap\bph\bhi\bic\bcs\bs M\bMa\bag\bgi\bic\bc
        I like to believe there are virtually no limits to how RRDtool graph
        can manipulate data. I will not explain how it works, but look at the
        following PNG:
@@ -509,13 +499,12 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
        not be enough, especially when proxies are involved.  Try shift-reload
        or ctrl-F5).
 
-       U\bUp\bpd\bda\bat\bte\bes\bs i\bin\bn R\bRe\bea\bal\bli\bit\bty\by
-
+   U\bUp\bpd\bda\bat\bte\bes\bs i\bin\bn R\bRe\bea\bal\bli\bit\bty\by
        We've already used the "update" command: it took one or more parameters
        in the form of "<time>:<value>". You'll be glad to know that you can
        specify the current time by filling in a "N" as the time.  Or you could
-       use the "time" function in Perl (the shortest example in this tuto-
-       rial):
+       use the "time" function in Perl (the shortest example in this
+       tutorial):
 
           perl -e 'print time, "\n" '
 
@@ -533,24 +522,23 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
        them in a script as well. After running that script, view the page
        index.html we created above.
 
-       S\bSo\bom\bme\be w\bwo\bor\brd\bds\bs o\bon\bn S\bSN\bNM\bMP\bP
-
+   S\bSo\bom\bme\be w\bwo\bor\brd\bds\bs o\bon\bn S\bSN\bNM\bMP\bP
        I can imagine very few people that will be able to get real data from
        their car every five minutes. All other people will have to settle for
        some other kind of counter. You could measure the number of pages
-       printed by a printer, for example, the cups of coffee made by the cof-
-       fee machine, a device that counts the electricity used, whatever. Any
-       incrementing counter can be monitored and graphed using the stuff you
-       learned so far. Later on we will also be able to monitor other types of
-       values like temperature.
+       printed by a printer, for example, the cups of coffee made by the
+       coffee machine, a device that counts the electricity used, whatever.
+       Any incrementing counter can be monitored and graphed using the stuff
+       you learned so far. Later on we will also be able to monitor other
+       types of values like temperature.
 
        Many people interested in RRDtool will use the counter that keeps track
        of octets (bytes) transfered by a network device. So let's do just that
        next. We will start with a description of how to collect data.
 
        Some people will make a remark that there are tools which can do this
-       data collection for you. They are right! However, I feel it is impor-
-       tant that you understand they are not necessary. When you have to
+       data collection for you. They are right! However, I feel it is
+       important that you understand they are not necessary. When you have to
        determine why things went wrong you need to know how they work.
 
        One tool used in the example has been talked about very briefly in the
@@ -566,13 +554,13 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
 
        For device you substitute the name, or the IP address, of your device.
        For password you use the "community read string" as it is called in the
-       SNMP world.  For some devices the default of "public" might work, how-
-       ever this can be disabled, altered or protected for privacy and secu-
-       rity reasons.  Read the documentation that comes with your device or
-       program.
+       SNMP world.  For some devices the default of "public" might work,
+       however this can be disabled, altered or protected for privacy and
+       security reasons.  Read the documentation that comes with your device
+       or program.
 
-       Then there is this parameter, called OID, which means "object identi-
-       fier".
+       Then there is this parameter, called OID, which means "object
+       identifier".
 
        When you start to learn about SNMP it looks very confusing. It isn't
        all that difficult when you look at the Management Information Base
@@ -615,9 +603,9 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
           snmpget -v2c -c public myrouter system.sysDescr.0
 
        The device should answer with a description of itself, perhaps an empty
-       one. Until you got a valid answer from a device, perhaps using a dif-
-       ferent "password", or a different device, there is no point in continu-
-       ing.
+       one. Until you got a valid answer from a device, perhaps using a
+       different "password", or a different device, there is no point in
+       continuing.
 
           snmpget -v2c -c public myrouter interfaces.ifNumber.0
 
@@ -636,8 +624,9 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
           interfaces.ifTable.ifEntry.ifDescr.4 = "Ethernet0"
           interfaces.ifTable.ifEntry.ifDescr.5 = "Loopback0"
 
-       On this cisco equipment, I would like to monitor the "Ethernet0" inter-
-       face and from the above output I see that it is number four. I try:
+       On this cisco equipment, I would like to monitor the "Ethernet0"
+       interface and from the above output I see that it is number four. I
+       try:
 
           [user@host /home/alex]$ snmpget -v2c -c public cisco 2.2.1.10.4 2.2.1.16.4
 
@@ -665,8 +654,7 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
        continue on with this tutorial. If not, then go back and re-read this
        part.
 
-       A\bA R\bRe\bea\bal\bl W\bWo\bor\brl\bld\bd E\bEx\bxa\bam\bmp\bpl\ble\be
-
+   A\bA R\bRe\bea\bal\bl W\bWo\bor\brl\bld\bd E\bEx\bxa\bam\bmp\bpl\ble\be
        Let the fun begin. First, create a new database. It contains data from
        two counters, called input and output. The data is put into archives
        that average it. They take 1, 6, 24 or 288 samples at a time.  They
@@ -688,10 +676,10 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
         732 1-day samples:     732   days
 
        These ranges are appended, so the total amount of data stored in the
-       database is approximately 797 days. RRDtool stores the data differ-
-       ently, it doesn't start the "weekly" archive where the "daily" archive
-       stopped. For both archives the most recent data will be near "now" and
-       therefore we will need to keep more data than MRTG does!
+       database is approximately 797 days. RRDtool stores the data
+       differently, it doesn't start the "weekly" archive where the "daily"
+       archive stopped. For both archives the most recent data will be near
+       "now" and therefore we will need to keep more data than MRTG does!
 
        We will need:
 
@@ -751,20 +739,19 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
        Suggestion: Display in bytes per second and in bits per second. Make
        the Ethernet graphics go red if they are over four megabits per second.
 
-       C\bCo\bon\bns\bso\bol\bli\bid\bda\bat\bti\bio\bon\bn F\bFu\bun\bnc\bct\bti\bio\bon\bns\bs
-
-       A few paragraphs back I mentioned the possibility of keeping the maxi-
-       mum values instead of the average values. Let's go into this a bit
+   C\bCo\bon\bns\bso\bol\bli\bid\bda\bat\bti\bio\bon\bn F\bFu\bun\bnc\bct\bti\bio\bon\bns\bs
+       A few paragraphs back I mentioned the possibility of keeping the
+       maximum values instead of the average values. Let's go into this a bit
        more.
 
        Recall all the stuff about the speed of the car. Suppose we drove at
        144 km/h during 5 minutes and then were stopped by the police for 25
        minutes.  At the end of the lecture we would take our laptop and create
        and view the image taken from the database. If we look at the second
-       RRA we did create, we would have the average from 6 samples. The sam-
-       ples measured would be 144+0+0+0+0+0=144, divided by 30 minutes, cor-
-       rected for the error by 1000, translated into km/h, with a result of 24
-       km/h.  I would still get a ticket but not for speeding anymore :)
+       RRA we did create, we would have the average from 6 samples. The
+       samples measured would be 144+0+0+0+0+0=144, divided by 30 minutes,
+       corrected for the error by 1000, translated into km/h, with a result of
+       24 km/h.  I would still get a ticket but not for speeding anymore :)
 
        Obviously, in this case we shouldn't look at the averages. In some
        cases they are handy. If you want to know how many km you had traveled,
@@ -776,17 +763,17 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
        averages. If you want to know the rate, look at the maximum.  Over
        time, they will grow apart more and more. In the last database we have
        created, there are two archives that keep data per day. The archive
-       that keeps averages will show low numbers, the archive that shows max-
-       ima will have higher numbers.
+       that keeps averages will show low numbers, the archive that shows
+       maxima will have higher numbers.
 
        For my car this would translate in averages per day of 96/24=4 km/h (as
        I travel about 94 kilometers on a day) during working days, and maxima
        of 120 km/h (my top speed that I reach every day).
 
-       Big difference. Do not look at the second graph to estimate the dis-
-       tances that I travel and do not look at the first graph to estimate my
-       speed. This will work if the samples are close together, as they are in
-       five minutes, but not if you average.
+       Big difference. Do not look at the second graph to estimate the
+       distances that I travel and do not look at the first graph to estimate
+       my speed. This will work if the samples are close together, as they are
+       in five minutes, but not if you average.
 
        On some days, I go for a long ride. If I go across Europe and travel
        for 12 hours, the first graph will rise to about 60 km/h. The second
@@ -799,9 +786,9 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
        stop a few times for gas and coffee. Drive slowly through Austria and
        the Netherlands. Be careful in the mountains and villages. If you would
        look at the graphs created from the five-minute averages you would get
-       a totally different picture. You would see the same values on the aver-
-       age and maximum graphs (provided I measured every 300 seconds).  You
-       would be able to see when I stopped, when I was in top gear, when I
+       a totally different picture. You would see the same values on the
+       average and maximum graphs (provided I measured every 300 seconds).
+       You would be able to see when I stopped, when I was in top gear, when I
        drove over fast highways etc. The granularity of the data is much
        higher, so you can see more. However, this takes 12 samples per hour,
        or 288 values per day, so it would be a lot of data over a longer
@@ -809,15 +796,14 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
        day. From this one value, we cannot see much detail, of course.
 
        Make sure you understand the last few paragraphs. There is no value in
-       only a line and a few axis, you need to know what they mean and inter-
-       pret the data in an appropriate way. This is true for all data.
+       only a line and a few axis, you need to know what they mean and
+       interpret the data in an appropriate way. This is true for all data.
 
-       The biggest mistake you can make is to use the collected data for some-
-       thing that it is not suitable for. You would be better off if you
+       The biggest mistake you can make is to use the collected data for
+       something that it is not suitable for. You would be better off if you
        didn't have the graph at all.
 
-       L\bLe\bet\bt'\b's\bs r\bre\bev\bvi\bie\bew\bw w\bwh\bha\bat\bt y\byo\bou\bu n\bno\bow\bw s\bsh\bho\bou\bul\bld\bd k\bkn\bno\bow\bw
-
+   L\bLe\bet\bt'\b's\bs r\bre\bev\bvi\bie\bew\bw w\bwh\bha\bat\bt y\byo\bou\bu n\bno\bow\bw s\bsh\bho\bou\bul\bld\bd k\bkn\bno\bow\bw
        You know how to create a database and can put data in it. You can get
        the numbers out again by creating an image, do math on the data from
        the database and view the result instead of the raw data.  You know
@@ -831,26 +817,25 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
        not only with the rest of this tutorial, but also in your day to day
        monitoring long after you read this introduction.
 
-       D\bDa\bat\bta\ba S\bSo\bou\bur\brc\bce\be T\bTy\byp\bpe\bes\bs
-
+   D\bDa\bat\bta\ba S\bSo\bou\bur\brc\bce\be T\bTy\byp\bpe\bes\bs
        All right, you feel like continuing. Welcome back and get ready for an
        increased speed in the examples and explanations.
 
        You know that in order to view a counter over time, you have to take
        two numbers and divide the difference of them between the time lapsed.
-       This makes sense for the examples I gave you but there are other possi-
-       bilities.  For instance, I'm able to retrieve the temperature from my
-       router in three places namely the inlet, the so called hot-spot and the
-       exhaust.  These values are not counters.  If I take the difference of
-       the two samples and divide that by 300 seconds I would be asking for
+       This makes sense for the examples I gave you but there are other
+       possibilities.  For instance, I'm able to retrieve the temperature from
+       my router in three places namely the inlet, the so called hot-spot and
+       the exhaust.  These values are not counters.  If I take the difference
+       of the two samples and divide that by 300 seconds I would be asking for
        the temperature change per second.  Hopefully this is zero! If not, the
        computer room is probably on fire :)
 
        So, what can we do?  We can tell RRDtool to store the values we measure
        directly as they are (this is not entirely true but close enough). The
        graphs we make will look much better, they will show a rather constant
-       value. I know when the router is busy (it works -> it uses more elec-
-       tricity -> it generates more heat -> the temperature rises). I know
+       value. I know when the router is busy (it works -> it uses more
+       electricity -> it generates more heat -> the temperature rises). I know
        when the doors are left open (the room is air conditioned) -> the warm
        air from the rest of the building flows into the computer room -> the
        inlet temperature rises). Etc. The data type we use when creating the
@@ -865,13 +850,13 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
 
        The two additional types are DERIVE and ABSOLUTE. Absolute can be used
        like counter with one difference: RRDtool assumes the counter is reset
-       when it's read. That is: its delta is known without calculation by RRD-
-       tool whereas RRDtool needs to calculate it for the counter type.  Exam-
-       ple: our first example (12345, 12357, 12363, 12363) would read:
+       when it's read. That is: its delta is known without calculation by
+       RRDtool whereas RRDtool needs to calculate it for the counter type.
+       Example: our first example (12345, 12357, 12363, 12363) would read:
        unknown, 12, 6, 0. The rest of the calculations stay the same.  The
        other one, derive, is like counter. Unlike counter, it can also
-       decrease so it can have a negative delta. Again, the rest of the calcu-
-       lations stay the same.
+       decrease so it can have a negative delta. Again, the rest of the
+       calculations stay the same.
 
        Let's try them all:
 
@@ -898,23 +883,21 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
                    DEF:linec=all.rrd:c:AVERAGE LINE3:linec#0000FF:"Line C" \
                    DEF:lined=all.rrd:d:AVERAGE LINE3:lined#000000:"Line D"
 
-       R\bRR\bRD\bDt\bto\boo\bol\bl u\bun\bnd\bde\ber\br t\bth\bhe\be M\bMi\bic\bcr\bro\bos\bsc\bco\bop\bpe\be
-
-
-       Â· Line A is a COUNTER type, so it should continuously increment and
+   R\bRR\bRD\bDt\bto\boo\bol\bl u\bun\bnd\bde\ber\br t\bth\bhe\be M\bMi\bic\bcr\bro\bos\bsc\bco\bop\bpe\be
+       Â· Line A is a COUNTER type, so it should continuously increment and
          RRDtool must calculate the differences. Also, RRDtool needs to divide
          the difference by the amount of time lapsed. This should end up as a
          straight line at 1 (the deltas are 300, the time is 300).
 
-       Â· Line B is of type GAUGE. These are "real" values so they should match
+       Ã‚· Line B is of type GAUGE. These are "real" values so they should match
          what we put in: a sort of a wave.
 
-       Â· Line C is of type DERIVE. It should be a counter that can decrease.
+       Ã‚· Line C is of type DERIVE. It should be a counter that can decrease.
          It does so between 2400 and 0, with 1800 in-between.
 
-       Â· Line D is of type ABSOLUTE. This is like counter but it works on val-
-         ues without calculating the difference. The numbers are the same and
-         as you can see (hopefully) this has a different result.
+       Â· Line D is of type ABSOLUTE. This is like counter but it works on
+         values without calculating the difference. The numbers are the same
+         and as you can see (hopefully) this has a different result.
 
        This translates in the following values, starting at 23:10 and ending
        at 00:10 the next day (where "u" means unknown/unplotted):
@@ -924,42 +907,41 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
         - Line C:  u  u  2  2  2  0 -2 -6  2  0  2  u
         - Line D:  u  1  2  3  4  5  6  7  8  9 10  u
 
-       If your PNG shows all this, you know you have entered the data cor-
-       rectly, the RRDtool executable is working properly, your viewer doesn't
-       fool you, and you successfully entered the year 2000 :)
+       If your PNG shows all this, you know you have entered the data
+       correctly, the RRDtool executable is working properly, your viewer
+       doesn't fool you, and you successfully entered the year 2000 :)
 
        You could try the same example four times, each time with only one of
        the lines.
 
        Let's go over the data again:
 
-       Â· Line A: 300,600,900 and so on. The counter delta is a constant 300
+       Ã‚· Line A: 300,600,900 and so on. The counter delta is a constant 300
          and so is the time delta. A number divided by itself is always 1
          (except when dividing by zero which is undefined/illegal).
 
          Why is it that the first point is unknown? We do know what we put
-         into the database, right? True, But we didn't have a value to calcu-
-         late the delta from, so we don't know where we started. It would be
-         wrong to assume we started at zero so we don't!
+         into the database, right? True, But we didn't have a value to
+         calculate the delta from, so we don't know where we started. It would
+         be wrong to assume we started at zero so we don't!
 
-       Â· Line B: There is nothing to calculate. The numbers are as they are.
+       Ã‚· Line B: There is nothing to calculate. The numbers are as they are.
 
-       Â· Line C: Again, the start-out value is unknown. The same story is
-         holds as for line A. In this case the deltas are not constant, there-
-         fore the line is not either. If we would put the same numbers in the
-         database as we did for line A, we would have gotten the same line.
-         Unlike type counter, this type can decrease and I hope to show you
-         later on why this makes a difference.
+       Ã‚· Line C: Again, the start-out value is unknown. The same story is
+         holds as for line A. In this case the deltas are not constant,
+         therefore the line is not either. If we would put the same numbers in
+         the database as we did for line A, we would have gotten the same
+         line. Unlike type counter, this type can decrease and I hope to show
+         you later on why this makes a difference.
 
-       Â· Line D: Here the device calculates the deltas. Therefore we DO know
+       Ã‚· Line D: Here the device calculates the deltas. Therefore we DO know
          the first delta and it is plotted. We had the same input as with line
          A, but the meaning of this input is different and thus the line is
          different.  In this case the deltas increase each time with 300. The
          time delta stays at a constant 300 and therefore the division of the
          two gives increasing values.
 
-       C\bCo\bou\bun\bnt\bte\ber\br W\bWr\bra\bap\bps\bs
-
+   C\bCo\bou\bun\bnt\bte\ber\br W\bWr\bra\bap\bps\bs
        There are a few more basics to show. Some important options are still
        to be covered and we haven't look at counter wraps yet. First the
        counter wrap: In our car we notice that the counter shows 999987. We
@@ -985,8 +967,8 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
         - 32 bits: 0 ..           4294967295
         - 64 bits: 0 .. 18446744073709551615
 
-       If these numbers look strange to you, you can view them in their hex-
-       adecimal form:
+       If these numbers look strange to you, you can view them in their
+       hexadecimal form:
 
         - 32 bits: 0 ..         FFFFFFFF
         - 64 bits: 0 .. FFFFFFFFFFFFFFFF
@@ -1000,15 +982,15 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
        There is a risk in this: suppose the large counter wrapped while adding
        a huge delta, it could happen, theoretically, that adding the smaller
        value would make the delta positive. In this unlikely case the results
-       would not be correct. The increase should be nearly as high as the max-
-       imum counter value for that to happen, so chances are you would have
+       would not be correct. The increase should be nearly as high as the
+       maximum counter value for that to happen, so chances are you would have
        several other problems as well and this particular problem would not
        even be worth thinking about. Even though, I did include an example, so
        you can judge for yourself.
 
        The next section gives you some numerical examples for counter-wraps.
-       Try to do the calculations yourself or just believe me if your calcula-
-       tor can't handle the numbers :)
+       Try to do the calculations yourself or just believe me if your
+       calculator can't handle the numbers :)
 
        Correction numbers:
 
@@ -1070,10 +1052,9 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
        judge the graph with a healthy dose of suspicion if it seems weird to
        you.
 
-       D\bDa\bat\bta\ba R\bRe\bes\bsa\bam\bmp\bpl\bli\bin\bng\bg
-
-       One important feature of RRDtool has not been explained yet: it is vir-
-       tually impossible to collect data and feed it into RRDtool on exact
+   D\bDa\bat\bta\ba R\bRe\bes\bsa\bam\bmp\bpl\bli\bin\bng\bg
+       One important feature of RRDtool has not been explained yet: it is
+       virtually impossible to collect data and feed it into RRDtool on exact
        intervals. RRDtool therefore interpolates the data, so they are stored
        on exact intervals. If you do not know what this means or how it works,
        then here's the help you seek:
@@ -1137,17 +1118,17 @@ T\bTU\bUT\bTO\bOR\bRI\bIA\bAL\bL
              LINE2:seconds#0000FF                          \
              AREA:unknown#FF0000
 
-       View both images together (add them to your index.html file) and com-
-       pare. Both graphs should show the same, despite the input being differ-
-       ent.
+       View both images together (add them to your index.html file) and
+       compare. Both graphs should show the same, despite the input being
+       different.
 
 W\bWR\bRA\bAP\bPU\bUP\bP
        It's time now to wrap up this tutorial. We covered all the basics for
-       you to be able to work with RRDtool and to read the additional documen-
-       tation available. There is plenty more to discover about RRDtool and
-       you will find more and more uses for this package. You can easily cre-
-       ate graphs using just the examples provided and using only RRDtool. You
-       can also use one of the front ends to RRDtool that are available.
+       you to be able to work with RRDtool and to read the additional
+       documentation available. There is plenty more to discover about RRDtool
+       and you will find more and more uses for this package. You can easily
+       create graphs using just the examples provided and using only RRDtool.
+       You can also use one of the front ends to RRDtool that are available.
 
 M\bMA\bAI\bIL\bLI\bIN\bNG\bGL\bLI\bIS\bST\bT
        Remember to subscribe to the RRDtool mailing list. Even if you are not
@@ -1156,9 +1137,9 @@ M\bMA\bAI\bIL\bLI\bIN\bNG\bGL\bLI\bIS\bST\bT
        RRDtool) I've learned while just reading the list without posting to
        it. I did not need to ask the basic questions as they are answered in
        the FAQ (read it!) and in various mails by other users. With thousands
-       of users all over the world, there will always be people who ask ques-
-       tions that you can answer because you read this and other documentation
-       and they didn't.
+       of users all over the world, there will always be people who ask
+       questions that you can answer because you read this and other
+       documentation and they didn't.
 
 S\bSE\bEE\bE A\bAL\bLS\bSO\bO
        The RRDtool manpages
@@ -1173,4 +1154,4 @@ A\bAU\bUT\bTH\bHO\bOR\bR
 
 
 
-1.3.99909060808                   2009-04-09                    RRDTUTORIAL(1)
+1.3.999                           2009-06-01                    RRDTUTORIAL(1)
index 07683f51805abdb5bccc837bb354eeb0cbbf2b6b..5ae016c0538063ed6e0a2a587b1230f74a1eca04 100644 (file)
@@ -1,15 +1,7 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.08)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
 .de Sp \" Vertical space (when we can't use .PP)
 .if t .sp .5v
 .if n .sp
 ..
 .\" Set up some character translations and predefined strings.  \*(-- will
 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
 .ie n \{\
 .    ds -- \(*W-
 .    ds R" ''
 'br\}
 .\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
 .\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
 .\" entries marked with X<> in POD.  Of course, you'll have to process the
 .\" output yourself in some meaningful fashion.
-.if \nF \{\
+.ie \nF \{\
 .    de IX
 .    tm Index:\\$1\t\\n%\t"\\$2"
 ..
 .    nr % 0
 .    rr F
 .\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
+.el \{\
+.    de IX
+..
+.\}
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
 .\" ========================================================================
 .\"
 .IX Title "RRDUPDATE 1"
-.TH RRDUPDATE 1 "2009-06-02" "1.3.99909060808" "rrdtool"
+.TH RRDUPDATE 1 "2009-06-09" "1.3.999" "rrdtool"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
 .SH "NAME"
 rrdupdate \- Store a new set of values into the RRD
 .SH "SYNOPSIS"
@@ -214,7 +213,7 @@ See below for an example.
 .Sp
 The remaining elements of the argument are \s-1DS\s0 updates. The order of
 this list is the same as the order the data sources were defined in
-the \s-1RRA\s0. If there is no data for a certain data\-source, the letter
+the \s-1RRA\s0. If there is no data for a certain data-source, the letter
 \&\fBU\fR (e.g., N:0.1:U:1) can be specified.
 .Sp
 The format of the value acquired from the data source is dependent on
@@ -242,7 +241,7 @@ value. Use the current time as the update time.
 \&\f(CW\*(C`rrdtool update demo2.rrd 887457267:U 887457521:22 887457903:2.7\*(C'\fR
 .Sp
 Update the database file demo2.rrd which expects data from a single
-data\-source, three times. First with an \fI*UNKNOWN*\fR value then with two
+data-source, three times. First with an \fI*UNKNOWN*\fR value then with two
 regular readings. The update interval seems to be around 300 seconds.
 .IP "\(bu" 4
 \&\f(CW\*(C`rrdtool update demo3.rrd \-\- \-5:21 N:42\*(C'\fR
index 0baa9729c1ff6052be1766b0cb07aacd3d078e82..22185370294e000ef4242631f9499527ab135b87 100644 (file)
@@ -1,14 +1,18 @@
+<?xml version="1.0" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>rrdupdate</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <link rev="made" href="mailto:root@localhost" />
 </head>
 
 <body style="background-color: white">
 
-<p><a name="__index__"></a></p>
+
 <!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
 <!--
 
 <ul>
        <li><a href="#examples">EXAMPLES</a></li>
        <li><a href="#authors">AUTHORS</a></li>
 </ul>
+
 -->
+
+
+</div>
 <!-- INDEX END -->
 
 <p>
 is time aligned (interpolated) according to the properties of the
 <strong>RRD</strong> to which the data is written.</p>
 <dl>
-<dt><strong><a name="item_updatev"><strong>updatev</strong></a></strong><br />
-</dt>
+<dt><strong><a name="updatev" class="item"><strong>updatev</strong></a></strong></dt>
+
 <dd>
-This alternate version of <strong>update</strong> takes the same arguments and
+<p>This alternate version of <strong>update</strong> takes the same arguments and
 performs the same function. The <em>v</em> stands for <em>verbose</em>, which
 describes the output returned. <strong>updatev</strong> returns a list of any and all
 consolidated data points (CDPs) written to disk as a result of the
 invocation of update. The values are indexed by timestamp (time_t),
 RRA (consolidation function and PDPs per CDP), and data source (name).
 Note that depending on the arguments of the current and previous call to
-update, the list may have no entries or a large number of entries.
-</dd>
-<dd>
+update, the list may have no entries or a large number of entries.</p>
 <p>Since <strong>updatev</strong> requires direct disk access, the <strong>--daemon</strong> option cannot be
 used with this command.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_filename"><em>filename</em></a></strong><br />
-</dt>
+<dt><strong><a name="filename" class="item"><em>filename</em></a></strong></dt>
+
 <dd>
-The name of the <strong>RRD</strong> you want to update.
+<p>The name of the <strong>RRD</strong> you want to update.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2d_2dtemplate_7c_2dt_ds_2dname_5b_3ads_2dname_5d_"><strong>--template</strong>|<strong>-t</strong> <em>ds-name</em>[<strong>:</strong><em>ds-name</em>]...</a></strong><br />
-</dt>
+<dt><strong><a name="template_t_ds_name_ds_name" class="item"><strong>--template</strong>|<strong>-t</strong> <em>ds-name</em>[<strong>:</strong><em>ds-name</em>]...</a></strong></dt>
+
 <dd>
-By default, the <strong>update</strong> function expects its data input in the order
+<p>By default, the <strong>update</strong> function expects its data input in the order
 the data sources are defined in the RRD, excluding any COMPUTE data
 sources (i.e. if the third data source <strong>DST</strong> is COMPUTE, the third
 input value will be mapped to the fourth data source in the <strong>RRD</strong> and
 so on). This is not very error resistant, as you might be sending the
-wrong data into an RRD.
-</dd>
-<dd>
+wrong data into an RRD.</p>
 <p>The template switch allows you to specify which data sources you are
 going to update and in which order. If the data sources specified in
 the template are not available in the RRD file, the update process
 will abort with an error message.</p>
-</dd>
-<dd>
 <p>While it appears possible with the template switch to update data sources
 asynchronously, <strong>RRDtool</strong> implicitly assigns non-COMPUTE data sources missing
 from the template the <em>*UNKNOWN*</em> value.</p>
-</dd>
-<dd>
 <p>Do not specify a value for a COMPUTE <strong>DST</strong> in the <strong>update</strong>
 function. If this is done accidentally (and this can only be done
 using the template switch), <strong>RRDtool</strong> will ignore the value specified
 for the COMPUTE <strong>DST</strong>.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2d_2ddaemon_address"><strong>--daemon</strong> <em>address</em></a></strong><br />
-</dt>
+<dt><strong><a name="daemon_address" class="item"><strong>--daemon</strong> <em>address</em></a></strong></dt>
+
 <dd>
-If given, <strong>RRDTool</strong> will try to connect to the caching daemon <a href="././rrdcached.html">the rrdcached manpage</a>
+<p>If given, <strong>RRDTool</strong> will try to connect to the caching daemon <a href="././rrdcached.html">the rrdcached manpage</a>
 at <em>address</em> and will fail if the connection cannot be established. If the
 connection is successfully established the values will be sent to the daemon
-instead of accessing the files directly.
-</dd>
-<dd>
+instead of accessing the files directly.</p>
 <p>For a list of accepted formats, see the <strong>-l</strong> option in the <a href="././rrdcached.html">the rrdcached manpage</a> manual.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_n_7ctimestamp_3avalue_5b_3avalue_2e_2e_2e_5d"><strong>N</strong>|<em>timestamp</em><strong>:</strong><em>value</em>[<strong>:</strong><em>value</em>...]</a></strong><br />
-</dt>
+<dt><strong><a name="n_timestamp_value_value" class="item"><strong>N</strong>|<em>timestamp</em><strong>:</strong><em>value</em>[<strong>:</strong><em>value</em>...]</a></strong></dt>
+
 <dd>
-The data used for updating the RRD was acquired at a certain
+<p>The data used for updating the RRD was acquired at a certain
 time. This time can either be defined in seconds since 1970-01-01 or
 by using the letter 'N', in which case the update time is set to be
 the current time. Negative time values are subtracted from the current
@@ -120,32 +114,24 @@ documentation) may also be used by delimiting the end of the time
 specification with the '@' character instead of a ':'. Getting the
 timing right to the second is especially important when you are
 working with data-sources of type <strong>COUNTER</strong>, <strong>DERIVE</strong> or
-<strong>ABSOLUTE</strong>.
-</dd>
-<dd>
+<strong>ABSOLUTE</strong>.</p>
 <p>When using negative time values, options and data have to be separated
 by two dashes (<strong>--</strong>), else the time value would be parsed as an option.
 See below for an example.</p>
-</dd>
-<dd>
 <p>When using negative time values, options and data have to be separated
 by two dashes (<strong>--</strong>), else the time value would be parsed as an option.
 See below for an example.</p>
-</dd>
-<dd>
 <p>The remaining elements of the argument are DS updates. The order of
 this list is the same as the order the data sources were defined in
 the RRA. If there is no data for a certain data-source, the letter
 <strong>U</strong> (e.g., N:0.1:U:1) can be specified.</p>
-</dd>
-<dd>
 <p>The format of the value acquired from the data source is dependent on
 the data source type chosen. Normally it will be numeric, but the data
 acquisition modules may impose their very own parsing of this
 parameter as long as the colon (<strong>:</strong>) remains the data source value
 separator.</p>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <hr />
@@ -153,43 +139,43 @@ separator.</p>
 <p>The following environment variables may be used to change the behavior of
 <code>rrdtoolupdate</code>:</p>
 <dl>
-<dt><strong><a name="item_rrdcached_address"><strong>RRDCACHED_ADDRESS</strong></a></strong><br />
-</dt>
+<dt><strong><a name="rrdcached_address" class="item"><strong>RRDCACHED_ADDRESS</strong></a></strong></dt>
+
 <dd>
-If this environment variable is set it will have the same effect as specifying
+<p>If this environment variable is set it will have the same effect as specifying
 the <code>--daemon</code> option on the command line. If both are present, the command
-line argument takes precedence.
+line argument takes precedence.</p>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <hr />
 <h1><a name="examples">EXAMPLES</a></h1>
 <ul>
-<li></li>
-<code>rrdtool update demo1.rrd N:3.44:3.15:U:23</code>
+<li>
+<p><code>rrdtool update demo1.rrd N:3.44:3.15:U:23</code></p>
 <p>Update the database file demo1.rrd with 3 known and one <em>*UNKNOWN*</em>
 value. Use the current time as the update time.</p>
-<p></p>
-<li></li>
-<code>rrdtool update demo2.rrd 887457267:U 887457521:22 887457903:2.7</code>
+</li>
+<li>
+<p><code>rrdtool update demo2.rrd 887457267:U 887457521:22 887457903:2.7</code></p>
 <p>Update the database file demo2.rrd which expects data from a single
 data-source, three times. First with an <em>*UNKNOWN*</em> value then with two
 regular readings. The update interval seems to be around 300 seconds.</p>
-<p></p>
-<li></li>
-<code>rrdtool update demo3.rrd -- -5:21 N:42</code>
+</li>
+<li>
+<p><code>rrdtool update demo3.rrd -- -5:21 N:42</code></p>
 <p>Update the database file demo3.rrd two times, using five seconds in the
 past and the current time as the update times.</p>
-<p></p>
-<li></li>
-<code>rrdtool update --cache /var/lib/rrd/demo3.rrd N:42</code>
+</li>
+<li>
+<p><code>rrdtool update --cache /var/lib/rrd/demo3.rrd N:42</code></p>
 <p>Update the file <code>/var/lib/rrd/demo3.rrd</code> with a single data source, using the
 current time. If the caching daemon cannot be reached, do <strong>not</strong> fall back to
 direct file access.</p>
-<p></p>
-<li></li>
-<code>rrdtool update --daemon unix:/tmp/rrdd.sock demo4.rrd N:23</code>
+</li>
+<li>
+<p><code>rrdtool update --daemon unix:/tmp/rrdd.sock demo4.rrd N:23</code></p>
 <p>Use the UNIX domain socket <code>/tmp/rrdd.sock</code> to contact the caching daemon. If
 the caching daemon is not available, update the file <code>demo4.rrd</code> directly.
 <strong>WARNING:</strong> Since a relative path is specified, the following disturbing effect
@@ -198,7 +184,8 @@ directory <strong>of the daemon</strong> is used. If the daemon is not available
 relative to the current working directory of the invoking process is used.
 <strong>This may update two different files depending on whether the daemon could be
 reached or not.</strong> Don't do relative paths, kids!</p>
-<p></p></ul>
+</li>
+</ul>
 <p>
 </p>
 <hr />
index af77a25f52ba33444b847e806760434e9ff032e0..8ff2503584016a046a9eb446705ce1b66d5e5038 100644 (file)
@@ -21,9 +21,9 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
                and all consolidated data points (CDPs) written to disk as a
                result of the invocation of update. The values are indexed by
                timestamp (time_t), RRA (consolidation function and PDPs per
-               CDP), and data source (name).  Note that depending on the argu-
-               ments of the current and previous call to update, the list may
-               have no entries or a large number of entries.
+               CDP), and data source (name).  Note that depending on the
+               arguments of the current and previous call to update, the list
+               may have no entries or a large number of entries.
 
                Since u\bup\bpd\bda\bat\bte\bev\bv requires direct disk access, the -\b--\b-d\bda\bae\bem\bmo\bon\bn option
                cannot be used with this command.
@@ -34,10 +34,10 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
        -\b--\b-t\bte\bem\bmp\bpl\bla\bat\bte\be|-\b-t\bt _\bd_\bs_\b-_\bn_\ba_\bm_\be[:\b:_\bd_\bs_\b-_\bn_\ba_\bm_\be]...
                By default, the u\bup\bpd\bda\bat\bte\be function expects its data input in the
                order the data sources are defined in the RRD, excluding any
-               COMPUTE data sources (i.e. if the third data source D\bDS\bST\bT is COM-
-               PUTE, the third input value will be mapped to the fourth data
-               source in the R\bRR\bRD\bD and so on). This is not very error resistant,
-               as you might be sending the wrong data into an RRD.
+               COMPUTE data sources (i.e. if the third data source D\bDS\bST\bT is
+               COMPUTE, the third input value will be mapped to the fourth
+               data source in the R\bRR\bRD\bD and so on). This is not very error
+               resistant, as you might be sending the wrong data into an RRD.
 
                The template switch allows you to specify which data sources
                you are going to update and in which order. If the data sources
@@ -49,10 +49,10 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
                COMPUTE data sources missing from the template the _\b*_\bU_\bN_\bK_\bN_\bO_\bW_\bN_\b*
                value.
 
-               Do not specify a value for a COMPUTE D\bDS\bST\bT in the u\bup\bpd\bda\bat\bte\be func-
-               tion. If this is done accidentally (and this can only be done
-               using the template switch), R\bRR\bRD\bDt\bto\boo\bol\bl will ignore the value spec-
-               ified for the COMPUTE D\bDS\bST\bT.
+               Do not specify a value for a COMPUTE D\bDS\bST\bT in the u\bup\bpd\bda\bat\bte\be
+               function. If this is done accidentally (and this can only be
+               done using the template switch), R\bRR\bRD\bDt\bto\boo\bol\bl will ignore the value
+               specified for the COMPUTE D\bDS\bST\bT.
 
        -\b--\b-d\bda\bae\bem\bmo\bon\bn _\ba_\bd_\bd_\br_\be_\bs_\bs
                If given, R\bRR\bRD\bDT\bTo\boo\bol\bl will try to connect to the caching daemon
@@ -61,20 +61,20 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
                values will be sent to the daemon instead of accessing the
                files directly.
 
-               For a list of accepted formats, see the -\b-l\bl option in the rrd-
-               cached manual.
+               For a list of accepted formats, see the -\b-l\bl option in the
+               rrdcached manual.
 
        N\bN|_\bt_\bi_\bm_\be_\bs_\bt_\ba_\bm_\bp:\b:_\bv_\ba_\bl_\bu_\be[:\b:_\bv_\ba_\bl_\bu_\be...]
                The data used for updating the RRD was acquired at a certain
                time. This time can either be defined in seconds since
                1970-01-01 or by using the letter 'N', in which case the update
                time is set to be the current time. Negative time values are
-               subtracted from the current time. An AT_STYLE TIME SPECIFICA-
-               TION (see the _\br_\br_\bd_\bf_\be_\bt_\bc_\bh documentation) may also be used by
-               delimiting the end of the time specification with the '@' char-
-               acter instead of a ':'. Getting the timing right to the second
-               is especially important when you are working with data-sources
-               of type C\bCO\bOU\bUN\bNT\bTE\bER\bR, D\bDE\bER\bRI\bIV\bVE\bE or A\bAB\bBS\bSO\bOL\bLU\bUT\bTE\bE.
+               subtracted from the current time. An AT_STYLE TIME
+               SPECIFICATION (see the _\br_\br_\bd_\bf_\be_\bt_\bc_\bh documentation) may also be used
+               by delimiting the end of the time specification with the '@'
+               character instead of a ':'. Getting the timing right to the
+               second is especially important when you are working with data-
+               sources of type C\bCO\bOU\bUN\bNT\bTE\bER\bR, D\bDE\bER\bRI\bIV\bVE\bE or A\bAB\bBS\bSO\bOL\bLU\bUT\bTE\bE.
 
                When using negative time values, options and data have to be
                separated by two dashes (-\b--\b-), else the time value would be
@@ -89,8 +89,8 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
                were defined in the RRA. If there is no data for a certain
                data-source, the letter U\bU (e.g., N:0.1:U:1) can be specified.
 
-               The format of the value acquired from the data source is depen-
-               dent on the data source type chosen. Normally it will be
+               The format of the value acquired from the data source is
+               dependent on the data source type chosen. Normally it will be
                numeric, but the data acquisition modules may impose their very
                own parsing of this parameter as long as the colon (:\b:) remains
                the data source value separator.
@@ -105,45 +105,45 @@ E\bEN\bNV\bVI\bIR\bRO\bON\bNM\bME\bEN\bNT\bT V\bVA\bAR\bRI\bIA\bAB\bBL\bLE\bES\bS
            present, the command line argument takes precedence.
 
 E\bEX\bXA\bAM\bMP\bPL\bLE\bES\bS
-       Â·   "rrdtool update demo1.rrd N:3.44:3.15:U:23"
+       Ã‚·   "rrdtool update demo1.rrd N:3.44:3.15:U:23"
 
            Update the database file demo1.rrd with 3 known and one _\b*_\bU_\bN_\bK_\bN_\bO_\bW_\bN_\b*
            value. Use the current time as the update time.
 
-       Â·   "rrdtool update demo2.rrd 887457267:U 887457521:22 887457903:2.7"
+       Ã‚·   "rrdtool update demo2.rrd 887457267:U 887457521:22 887457903:2.7"
 
            Update the database file demo2.rrd which expects data from a single
            data-source, three times. First with an _\b*_\bU_\bN_\bK_\bN_\bO_\bW_\bN_\b* value then with
            two regular readings. The update interval seems to be around 300
            seconds.
 
-       Â·   "rrdtool update demo3.rrd -- -5:21 N:42"
+       Ã‚·   "rrdtool update demo3.rrd -- -5:21 N:42"
 
            Update the database file demo3.rrd two times, using five seconds in
            the past and the current time as the update times.
 
-       Â·   "rrdtool update --cache /var/lib/rrd/demo3.rrd N:42"
+       Ã‚·   "rrdtool update --cache /var/lib/rrd/demo3.rrd N:42"
 
            Update the file "/var/lib/rrd/demo3.rrd" with a single data source,
            using the current time. If the caching daemon cannot be reached, do
            n\bno\bot\bt fall back to direct file access.
 
-       Â·   "rrdtool update --daemon unix:/tmp/rrdd.sock demo4.rrd N:23"
+       Ã‚·   "rrdtool update --daemon unix:/tmp/rrdd.sock demo4.rrd N:23"
 
            Use the UNIX domain socket "/tmp/rrdd.sock" to contact the caching
            daemon. If the caching daemon is not available, update the file
            "demo4.rrd" directly.  W\bWA\bAR\bRN\bNI\bIN\bNG\bG:\b: Since a relative path is specified,
-           the following disturbing effect may occur: If the daemon is avail-
-           able, the file relative to the working directory o\bof\bf t\bth\bhe\be d\bda\bae\bem\bmo\bon\bn is
-           used. If the daemon is not available, the file relative to the cur-
-           rent working directory of the invoking process is used.  T\bTh\bhi\bis\bs m\bma\bay\by
-           u\bup\bpd\bda\bat\bte\be t\btw\bwo\bo d\bdi\bif\bff\bfe\ber\bre\ben\bnt\bt f\bfi\bil\ble\bes\bs d\bde\bep\bpe\ben\bnd\bdi\bin\bng\bg o\bon\bn w\bwh\bhe\bet\bth\bhe\ber\br t\bth\bhe\be d\bda\bae\bem\bmo\bon\bn c\bco\bou\bul\bld\bd b\bbe\be
-           r\bre\bea\bac\bch\bhe\bed\bd o\bor\br n\bno\bot\bt.\b. Don't do relative paths, kids!
+           the following disturbing effect may occur: If the daemon is
+           available, the file relative to the working directory o\bof\bf t\bth\bhe\be d\bda\bae\bem\bmo\bon\bn
+           is used. If the daemon is not available, the file relative to the
+           current working directory of the invoking process is used.  T\bTh\bhi\bis\bs
+           m\bma\bay\by u\bup\bpd\bda\bat\bte\be t\btw\bwo\bo d\bdi\bif\bff\bfe\ber\bre\ben\bnt\bt f\bfi\bil\ble\bes\bs d\bde\bep\bpe\ben\bnd\bdi\bin\bng\bg o\bon\bn w\bwh\bhe\bet\bth\bhe\ber\br t\bth\bhe\be d\bda\bae\bem\bmo\bon\bn
+           c\bco\bou\bul\bld\bd b\bbe\br\bre\bea\bac\bch\bhe\bed\bd o\bor\br n\bno\bot\bt.\b. Don't do relative paths, kids!
 
 A\bAU\bUT\bTH\bHO\bOR\bRS\bS
-       Tobias Oetiker <tobi@oetiker.ch>, Florian Forster <octo at ver-
-       plant.org>
+       Tobias Oetiker <tobi@oetiker.ch>, Florian Forster
+       <octo at verplant.org>
 
 
 
-1.3.99909060808                   2009-06-02                      RRDUPDATE(1)
+1.3.999                           2009-06-09                      RRDUPDATE(1)
index 0c4b558d6a5f0cf95e0710fe95b7d582eaa4e02e..e5a7dd9fc0997521aa67bb56d643a17778ada723 100644 (file)
@@ -1,15 +1,7 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
+.\" Automatically generated by Pod::Man 2.1801 (Pod::Simple 3.08)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
 .de Sp \" Vertical space (when we can't use .PP)
 .if t .sp .5v
 .if n .sp
 ..
 .\" Set up some character translations and predefined strings.  \*(-- will
 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
 .ie n \{\
 .    ds -- \(*W-
 .    ds R" ''
 'br\}
 .\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
 .\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
 .\" entries marked with X<> in POD.  Of course, you'll have to process the
 .\" output yourself in some meaningful fashion.
-.if \nF \{\
+.ie \nF \{\
 .    de IX
 .    tm Index:\\$1\t\\n%\t"\\$2"
 ..
 .    nr % 0
 .    rr F
 .\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.if n .na
+.el \{\
+.    de IX
+..
+.\}
 .\"
 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
 .\" ========================================================================
 .\"
 .IX Title "RRDXPORT 1"
-.TH RRDXPORT 1 "2008-09-25" "1.3.99909060808" "rrdtool"
+.TH RRDXPORT 1 "2009-06-09" "1.3.999" "rrdtool"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
 .SH "NAME"
 rrdxport \- Export data in XML format based on data from one or several RRD
 .SH "SYNOPSIS"
@@ -236,7 +235,7 @@ The resulting meta data section is (the values will depend on the
 .PP
 The resulting data section is:
 .PP
-.Vb 16
+.Vb 10
 \&  <data>
 \&    <row><t>1020611700</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
 \&    <row><t>1020612000</t><v>3.4000000000e+00</v><v>5.4400000000e+01</v></row>
index 6e3c5dce97fae4591240efcb44c8fe48f5e0cf74..a869c053026d8917de4b4c37c7fec5275d06539d 100644 (file)
@@ -1,14 +1,18 @@
+<?xml version="1.0" ?>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>rrdxport</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <link rev="made" href="mailto:root@localhost" />
 </head>
 
 <body style="background-color: white">
 
-<p><a name="__index__"></a></p>
+
 <!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
 <!--
 
 <ul>
        <li><a href="#environment_variables">ENVIRONMENT VARIABLES</a></li>
        <li><a href="#author">AUTHOR</a></li>
 </ul>
+
 -->
+
+
+</div>
 <!-- INDEX END -->
 
 <p>
@@ -51,81 +59,69 @@ representation of the data stored in one or several <strong>RRD</strong>s. It
 can also extract numerical reports.</p>
 <p>If no <em>XPORT</em> statements are found, there will be no output.</p>
 <dl>
-<dt><strong><a name="item_seconds"><strong>-s</strong>|<strong>--start</strong> <em>seconds</em> (default end-1day)</a></strong><br />
-</dt>
+<dt><strong><a name="seconds" class="item"><strong>-s</strong>|<strong>--start</strong> <em>seconds</em> (default end-1day)</a></strong></dt>
+
 <dd>
-The time when the exported range should begin. Time in seconds since
+<p>The time when the exported range should begin. Time in seconds since
 epoch (1970-01-01) is required. Negative numbers are relative to the
 current time. By default one day worth of data will be printed.
 See also AT-STYLE TIME SPECIFICATION section in the <em>rrdfetch</em>
-documentation for a detailed explanation on how to specify time.
+documentation for a detailed explanation on how to specify time.</p>
 </dd>
-<p></p>
-<dt><strong><strong>-e</strong>|<strong>--end</strong> <em>seconds</em> (default now)</strong><br />
-</dt>
+<dt><strong><strong>-e</strong>|<strong>--end</strong> <em>seconds</em> (default now)</strong></dt>
+
 <dd>
-The time when the exported range should end. Time in seconds since epoch.
+<p>The time when the exported range should end. Time in seconds since epoch.
 See also AT-STYLE TIME SPECIFICATION section in the <em>rrdfetch</em>
-documentation for a detailed explanation of ways to specify time.
+documentation for a detailed explanation of ways to specify time.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_rows"><strong>-m</strong>|<strong>--maxrows</strong> <em>rows</em> (default 400 rows)</a></strong><br />
-</dt>
+<dt><strong><a name="rows" class="item"><strong>-m</strong>|<strong>--maxrows</strong> <em>rows</em> (default 400 rows)</a></strong></dt>
+
 <dd>
-This works like the <strong>-w</strong>|<strong>--width</strong> parameter of <em>rrdgraph</em>.
+<p>This works like the <strong>-w</strong>|<strong>--width</strong> parameter of <em>rrdgraph</em>.
 In fact it is exactly the same, but the parameter was renamed to
 describe its purpose in this module. See <em>rrdgraph</em> documentation
-for details.
+for details.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_value"><strong>--step</strong> <em>value</em> (default automatic)</a></strong><br />
-</dt>
+<dt><strong><a name="value" class="item"><strong>--step</strong> <em>value</em> (default automatic)</a></strong></dt>
+
 <dd>
-See <a href="././rrdgraph.html">the rrdgraph manpage</a> documentation.
+<p>See <a href="././rrdgraph.html">the rrdgraph manpage</a> documentation.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item__2d_2ddaemon_address"><strong>--daemon</strong> <em>address</em></a></strong><br />
-</dt>
+<dt><strong><a name="daemon_address" class="item"><strong>--daemon</strong> <em>address</em></a></strong></dt>
+
 <dd>
-Address of the <a href="././rrdcached.html">the rrdcached manpage</a> daemon. If specified, a <code>flush</code> command is sent
+<p>Address of the <a href="././rrdcached.html">the rrdcached manpage</a> daemon. If specified, a <code>flush</code> command is sent
 to the server before reading the RRD files. This allows <strong>rrdtool</strong> to return
 fresh data even if the daemon is configured to cache values for a long time.
-For a list of accepted formats, see the <strong>-l</strong> option in the <a href="././rrdcached.html">the rrdcached manpage</a> manual.
-</dd>
-<dd>
+For a list of accepted formats, see the <strong>-l</strong> option in the <a href="././rrdcached.html">the rrdcached manpage</a> manual.</p>
 <pre>
   rrdtool xport --daemon unix:/var/run/rrdcached.sock ...</pre>
 </dd>
-<p></p>
-<dt><strong><a name="item__2d_2denumds"><strong>--enumds</strong></a></strong><br />
-</dt>
-<dd>
-The generated xml should contain the data values in enumerated tags.
-</dd>
+<dt><strong><a name="enumds" class="item"><strong>--enumds</strong></a></strong></dt>
+
 <dd>
+<p>The generated xml should contain the data values in enumerated tags.</p>
 <pre>
  &lt;v0&gt;val&lt;/v0&gt;&lt;v1&gt;val&lt;/v1&gt;</pre>
 </dd>
-<p></p>
-<dt><strong><a name="item_def_3avname_3drrd_3ads_2dname_3acf"><strong>DEF:</strong><em>vname</em><strong>=</strong><em>rrd</em><strong>:</strong><em>ds-name</em><strong>:</strong><em>CF</em></a></strong><br />
-</dt>
+<dt><strong><a name="def_vname_rrd_ds_name_cf" class="item"><strong>DEF:</strong><em>vname</em><strong>=</strong><em>rrd</em><strong>:</strong><em>ds-name</em><strong>:</strong><em>CF</em></a></strong></dt>
+
 <dd>
-See <em>rrdgraph</em> documentation.
+<p>See <em>rrdgraph</em> documentation.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_cdef_3avname_3drpn_2dexpression"><strong>CDEF:</strong><em>vname</em><strong>=</strong><em>rpn-expression</em></a></strong><br />
-</dt>
+<dt><strong><a name="cdef_vname_rpn_expression" class="item"><strong>CDEF:</strong><em>vname</em><strong>=</strong><em>rpn-expression</em></a></strong></dt>
+
 <dd>
-See <em>rrdgraph</em> documentation.
+<p>See <em>rrdgraph</em> documentation.</p>
 </dd>
-<p></p>
-<dt><strong><a name="item_xport_3avname_3a_3alegend"><strong>XPORT:</strong><em>vname</em><strong>:</strong><strong>:</strong><em>legend</em></a></strong><br />
-</dt>
+<dt><strong><a name="xport_vname_legend" class="item"><strong>XPORT:</strong><em>vname</em><strong>:</strong><strong>:</strong><em>legend</em></a></strong></dt>
+
 <dd>
-At least one <em>XPORT</em> statement should be present. The values
-referenced by <em>vname</em> are printed. Optionally add a legend.
+<p>At least one <em>XPORT</em> statement should be present. The values
+referenced by <em>vname</em> are printed. Optionally add a legend.</p>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <hr />
@@ -202,14 +198,14 @@ RRD characteristics):</p>
 <p>The following environment variables may be used to change the behavior of
 <code>rrdtoolxport</code>:</p>
 <dl>
-<dt><strong><a name="item_rrdcached_address"><strong>RRDCACHED_ADDRESS</strong></a></strong><br />
-</dt>
+<dt><strong><a name="rrdcached_address" class="item"><strong>RRDCACHED_ADDRESS</strong></a></strong></dt>
+
 <dd>
-If this environment variable is set it will have the same effect as specifying
+<p>If this environment variable is set it will have the same effect as specifying
 the <code>--daemon</code> option on the command line. If both are present, the command
-line argument takes precedence.
+line argument takes precedence.</p>
 </dd>
-<p></p></dl>
+</dl>
 <p>
 </p>
 <hr />
index ba2c353ba4e328cc6ab12fc0ae4bf0320756f2ef..757096d22e1b03c441224d11a6e6a70d9875f329 100644 (file)
@@ -13,8 +13,8 @@ S\bSY\bYN\bNO\bOP\bPS\bSI\bIS\bS
        [X\bXP\bPO\bOR\bRT\bT:\b:_\bv_\bn_\ba_\bm_\be[:\b:_\bl_\be_\bg_\be_\bn_\bd]]
 
 D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
-       The x\bxp\bpo\bor\brt\bt function's main purpose is to write an XML formatted repre-
-       sentation of the data stored in one or several R\bRR\bRD\bDs. It can also
+       The x\bxp\bpo\bor\brt\bt function's main purpose is to write an XML formatted
+       representation of the data stored in one or several R\bRR\bRD\bDs. It can also
        extract numerical reports.
 
        If no _\bX_\bP_\bO_\bR_\bT statements are found, there will be no output.
@@ -23,15 +23,15 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
            The time when the exported range should begin. Time in seconds
            since epoch (1970-01-01) is required. Negative numbers are relative
            to the current time. By default one day worth of data will be
-           printed.  See also AT-STYLE TIME SPECIFICATION section in the _\br_\br_\bd_\b-
-           _\bf_\be_\bt_\bc_\bh documentation for a detailed explanation on how to specify
+           printed.  See also AT-STYLE TIME SPECIFICATION section in the
+           _\br_\br_\bd_\bf_\be_\bt_\bc_\bh documentation for a detailed explanation on how to specify
            time.
 
        -\b-e\be|-\b--\b-e\ben\bnd\bd _\bs_\be_\bc_\bo_\bn_\bd_\bs (default now)
            The time when the exported range should end. Time in seconds since
-           epoch.  See also AT-STYLE TIME SPECIFICATION section in the _\br_\br_\bd_\b-
-           _\bf_\be_\bt_\bc_\bh documentation for a detailed explanation of ways to specify
-           time.
+           epoch.  See also AT-STYLE TIME SPECIFICATION section in the
+           _\br_\br_\bd_\bf_\be_\bt_\bc_\bh documentation for a detailed explanation of ways to
+           specify time.
 
        -\b-m\bm|-\b--\b-m\bma\bax\bxr\bro\bow\bws\bs _\br_\bo_\bw_\bs (default 400 rows)
            This works like the -\b-w\bw|-\b--\b-w\bwi\bid\bdt\bth\bh parameter of _\br_\br_\bd_\bg_\br_\ba_\bp_\bh.  In fact it
@@ -43,10 +43,10 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
 
        -\b--\b-d\bda\bae\bem\bmo\bon\bn _\ba_\bd_\bd_\br_\be_\bs_\bs
            Address of the rrdcached daemon. If specified, a "flush" command is
-           sent to the server before reading the RRD files. This allows r\brr\brd\bd-\b-
-           t\bto\boo\bol\bl to return fresh data even if the daemon is configured to cache
-           values for a long time.  For a list of accepted formats, see the -\b-l\bl
-           option in the rrdcached manual.
+           sent to the server before reading the RRD files. This allows
+           r\brr\brd\bdt\bto\boo\bol\bl to return fresh data even if the daemon is configured to
+           cache values for a long time.  For a list of accepted formats, see
+           the -\b-l\boption in the rrdcached manual.
 
              rrdtool xport --daemon unix:/var/run/rrdcached.sock ...
 
@@ -63,8 +63,8 @@ D\bDE\bES\bSC\bCR\bRI\bIP\bPT\bTI\bIO\bON\bN
            See _\br_\br_\bd_\bg_\br_\ba_\bp_\bh documentation.
 
        X\bXP\bPO\bOR\bRT\bT:\b:_\bv_\bn_\ba_\bm_\be:\b::\b:_\bl_\be_\bg_\be_\bn_\bd
-           At least one _\bX_\bP_\bO_\bR_\bT statement should be present. The values refer-
-           enced by _\bv_\bn_\ba_\bm_\be are printed. Optionally add a legend.
+           At least one _\bX_\bP_\bO_\bR_\bT statement should be present. The values
+           referenced by _\bv_\bn_\ba_\bm_\be are printed. Optionally add a legend.
 
 O\bOu\but\btp\bpu\but\bt f\bfo\bor\brm\bma\bat\bt
        The output is enclosed in an x\bxp\bpo\bor\brt\bt element and contains two blocks. The
@@ -144,4 +144,4 @@ A\bAU\bUT\bTH\bHO\bOR\bR
 
 
 
-1.3.99909060808                   2008-09-25                       RRDXPORT(1)
+1.3.999                           2009-06-09                       RRDXPORT(1)
index 99831cb37c37b84aa382901a349be6613419a60f..7db38be3b8d15447fcb1fdcc0a8da60e77811307 100644 (file)
@@ -238,6 +238,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
@@ -368,9 +369,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign examples/Makefile'; \
        $(am__cd) $(top_srcdir) && \
-         $(AUTOMAKE) --gnu examples/Makefile
+         $(AUTOMAKE) --foreign examples/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
index b14659b9a5e9a3f368077a04cb8068a506e3c785..9b24c48268b2b3c589ce4d21bd343fda8a6cffc7 100644 (file)
@@ -193,6 +193,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
@@ -320,9 +321,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/rrdcached/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign examples/rrdcached/Makefile'; \
        $(am__cd) $(top_srcdir) && \
-         $(AUTOMAKE) --gnu examples/rrdcached/Makefile
+         $(AUTOMAKE) --foreign examples/rrdcached/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
diff --git a/libtool b/libtool
index 64b3c23bf23e7e40f802f59f323f00165add3c67..55915024aea20647e2aa274e2ceb01427c72c11e 100755 (executable)
--- a/libtool
+++ b/libtool
@@ -1,8 +1,8 @@
 #! /bin/sh
 
 # libtool - Provide generalized library-building support services.
-# Generated automatically by config.status (rrdtool) 1.3.99909060808
-# Libtool was configured on host james:
+# Generated automatically by config.status (rrdtool) 1.3.999
+# Libtool was configured on host kolibri:
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
 #
 #   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
@@ -56,12 +56,12 @@ fast_install=yes
 
 # The host system.
 host_alias=
-host=x86_64-unknown-linux-gnu
+host=powerpc-unknown-linux-gnu
 host_os=linux-gnu
 
 # The build system.
 build_alias=
-build=x86_64-unknown-linux-gnu
+build=powerpc-unknown-linux-gnu
 build_os=linux-gnu
 
 # A sed program that does not truncate output.
@@ -86,7 +86,7 @@ NM="/usr/bin/nm -B"
 LN_S="ln -s"
 
 # What is the maximum length of a command?
-max_cmd_len=98304
+max_cmd_len=805306365
 
 # Object file suffix (normally "o").
 objext=o
@@ -132,7 +132,7 @@ old_postuninstall_cmds=""
 LTCC="gcc"
 
 # LTCC compiler flags.
-LTCFLAGS="-g -O2 -D_GNU_SOURCE -fno-strict-aliasing -Wall -std=c99 -pedantic -Wundef -Wshadow -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -W  -fPIC -DPIC"
+LTCFLAGS="-O0 -g -D_GNU_SOURCE -fno-strict-aliasing -Wall -std=c99 -pedantic -Wundef -Wshadow -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -Wold-style-definition -W  -fPIC -DPIC"
 
 # Take the output of nm and produce a listing of raw symbols and C names.
 global_symbol_pipe="sed -n -e 's/^.*[   ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[       ][      ]*\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 \\2 \\2/p'"
@@ -234,10 +234,10 @@ finish_eval=""
 hardcode_into_libs=yes
 
 # Compile-time system search path for libraries.
-sys_lib_search_path_spec="/usr/lib/gcc-lib/x86_64-linux/3.3.5 /usr/lib64 /lib64"
+sys_lib_search_path_spec="/usr/lib/gcc/powerpc-linux-gnu/4.3.4 /usr/lib /lib /usr/lib/powerpc-linux-gnu"
 
 # Run-time system search path for libraries.
-sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/X11R6/lib /emul/ia32-linux/lib /emul/ia32-linux/usr/lib /emul/ia32-linux/usr/X11R6/lib "
+sys_lib_dlsearch_path_spec="/lib /usr/lib /usr/lib/atlas /opt/headas/powerpc-unknown-linux-gnu-libc2.7/lib /usr/local/lib /usr/lib/openais /usr/lib/openais /lib/powerpc-linux-gnu /usr/lib/powerpc-linux-gnu "
 
 # Whether dlopen is supported.
 dlopen_support=unknown
@@ -254,7 +254,7 @@ striplib="strip --strip-unneeded"
 
 
 # The linker used to build libraries.
-LD="/usr/bin/ld -m elf_x86_64"
+LD="/usr/bin/ld"
 
 # Commands used to build an old-style archive.
 old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$oldlib"
@@ -361,7 +361,7 @@ hardcode_automatic=no
 inherit_rpath=no
 
 # Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=unknown
+link_all_deplibs=no
 
 # Fix the shell variable $srcfile for the compiler.
 fix_srcfile_path=""
@@ -456,7 +456,7 @@ hardcode_action=immediate
 #       compiler:              $LTCC
 #       compiler flags:                $LTCFLAGS
 #       linker:                $LD (gnu? $with_gnu_ld)
-#       $progname:             (GNU libtool) 2.2.6
+#       $progname:             (GNU libtool) 2.2.6 Debian-2.2.6a-4
 #       automake:              $automake_version
 #       autoconf:              $autoconf_version
 #
@@ -464,7 +464,7 @@ hardcode_action=immediate
 
 PROGRAM=ltmain.sh
 PACKAGE=libtool
-VERSION=2.2.6
+VERSION="2.2.6 Debian-2.2.6a-4"
 TIMESTAMP=""
 package_revision=1.3012
 
@@ -507,15 +507,15 @@ $lt_unset CDPATH
 
 : ${CP="cp -f"}
 : ${ECHO="echo"}
-: ${EGREP="/usr/bin/grep -E"}
-: ${FGREP="/usr/bin/grep -F"}
-: ${GREP="/usr/bin/grep"}
+: ${EGREP="/bin/grep -E"}
+: ${FGREP="/bin/grep -F"}
+: ${GREP="/bin/grep"}
 : ${LN_S="ln -s"}
 : ${MAKE="make"}
 : ${MKDIR="mkdir"}
 : ${MV="mv -f"}
 : ${RM="rm -f"}
-: ${SED="/opt/local/bin/gsed"}
+: ${SED="/bin/sed"}
 : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
 : ${Xsed="$SED -e 1s/^X//"}
 
@@ -653,9 +653,8 @@ func_len ()
 # Append VALUE to the end of shell variable VAR.
 func_append ()
 {
-  eval "$1=\$$1\$2"
+  eval "$1+=\$2"
 }
-
 # Generated shell functions inserted here.
 
 # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
@@ -5521,7 +5520,10 @@ func_mode_link ()
        case $pass in
        dlopen) libs="$dlfiles" ;;
        dlpreopen) libs="$dlprefiles" ;;
-       link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
+       link)
+         libs="$deplibs %DEPLIBS%"
+         test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
+         ;;
        esac
       fi
       if test "$linkmode,$pass" = "lib,dlpreopen"; then
@@ -5832,19 +5834,19 @@ func_mode_link ()
            # It is a libtool convenience library, so add in its objects.
            convenience="$convenience $ladir/$objdir/$old_library"
            old_convenience="$old_convenience $ladir/$objdir/$old_library"
+           tmp_libs=
+           for deplib in $dependency_libs; do
+             deplibs="$deplib $deplibs"
+             if $opt_duplicate_deps ; then
+               case "$tmp_libs " in
+               *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+               esac
+             fi
+             tmp_libs="$tmp_libs $deplib"
+           done
          elif test "$linkmode" != prog && test "$linkmode" != lib; then
            func_fatal_error "\`$lib' is not a convenience library"
          fi
-         tmp_libs=
-         for deplib in $dependency_libs; do
-           deplibs="$deplib $deplibs"
-           if $opt_duplicate_deps ; then
-             case "$tmp_libs " in
-             *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-             esac
-           fi
-           tmp_libs="$tmp_libs $deplib"
-         done
          continue
        fi # $pass = conv
 
@@ -6381,6 +6383,7 @@ func_mode_link ()
          if test "$link_all_deplibs" != no; then
            # Add the search paths of all dependency libraries
            for deplib in $dependency_libs; do
+             path=
              case $deplib in
              -L*) path="$deplib" ;;
              *.la)
@@ -6694,6 +6697,9 @@ func_mode_link ()
            revision="$number_minor"
            lt_irix_increment=no
            ;;
+         *)
+           func_fatal_configuration "$modename: unknown library version type \`$version_type'"
+           ;;
          esac
          ;;
        no)
index b36c4ad366cbb8c137b19a3789eecf29af5aeb98..3506ead396b2787a23ea952f01bd5231cf022c64 100755 (executable)
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -65,7 +65,7 @@
 #       compiler:              $LTCC
 #       compiler flags:                $LTCFLAGS
 #       linker:                $LD (gnu? $with_gnu_ld)
-#       $progname:             (GNU libtool) 2.2.6
+#       $progname:             (GNU libtool) 2.2.6 Debian-2.2.6a-4
 #       automake:              $automake_version
 #       autoconf:              $autoconf_version
 #
@@ -73,7 +73,7 @@
 
 PROGRAM=ltmain.sh
 PACKAGE=libtool
-VERSION=2.2.6
+VERSION="2.2.6 Debian-2.2.6a-4"
 TIMESTAMP=""
 package_revision=1.3012
 
@@ -116,15 +116,15 @@ $lt_unset CDPATH
 
 : ${CP="cp -f"}
 : ${ECHO="echo"}
-: ${EGREP="/usr/bin/grep -E"}
-: ${FGREP="/usr/bin/grep -F"}
-: ${GREP="/usr/bin/grep"}
+: ${EGREP="/bin/grep -E"}
+: ${FGREP="/bin/grep -F"}
+: ${GREP="/bin/grep"}
 : ${LN_S="ln -s"}
 : ${MAKE="make"}
 : ${MKDIR="mkdir"}
 : ${MV="mv -f"}
 : ${RM="rm -f"}
-: ${SED="/opt/local/bin/gsed"}
+: ${SED="/bin/sed"}
 : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
 : ${Xsed="$SED -e 1s/^X//"}
 
@@ -5033,7 +5033,10 @@ func_mode_link ()
        case $pass in
        dlopen) libs="$dlfiles" ;;
        dlpreopen) libs="$dlprefiles" ;;
-       link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
+       link)
+         libs="$deplibs %DEPLIBS%"
+         test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
+         ;;
        esac
       fi
       if test "$linkmode,$pass" = "lib,dlpreopen"; then
@@ -5344,19 +5347,19 @@ func_mode_link ()
            # It is a libtool convenience library, so add in its objects.
            convenience="$convenience $ladir/$objdir/$old_library"
            old_convenience="$old_convenience $ladir/$objdir/$old_library"
+           tmp_libs=
+           for deplib in $dependency_libs; do
+             deplibs="$deplib $deplibs"
+             if $opt_duplicate_deps ; then
+               case "$tmp_libs " in
+               *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+               esac
+             fi
+             tmp_libs="$tmp_libs $deplib"
+           done
          elif test "$linkmode" != prog && test "$linkmode" != lib; then
            func_fatal_error "\`$lib' is not a convenience library"
          fi
-         tmp_libs=
-         for deplib in $dependency_libs; do
-           deplibs="$deplib $deplibs"
-           if $opt_duplicate_deps ; then
-             case "$tmp_libs " in
-             *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-             esac
-           fi
-           tmp_libs="$tmp_libs $deplib"
-         done
          continue
        fi # $pass = conv
 
@@ -5893,6 +5896,7 @@ func_mode_link ()
          if test "$link_all_deplibs" != no; then
            # Add the search paths of all dependency libraries
            for deplib in $dependency_libs; do
+             path=
              case $deplib in
              -L*) path="$deplib" ;;
              *.la)
@@ -6206,6 +6210,9 @@ func_mode_link ()
            revision="$number_minor"
            lt_irix_increment=no
            ;;
+         *)
+           func_fatal_configuration "$modename: unknown library version type \`$version_type'"
+           ;;
          esac
          ;;
        no)
index f1b611920503072d8556b39d33ea28c9a745a9aa..01eb4a41314c13686b811b4e332240c256a99dcc 100644 (file)
@@ -363,13 +363,13 @@ AC_CACHE_VAL([rd_cv_ieee_$2],
 #endif
 
 /* solaris 10 it defines isnan such that only forte can compile it ... bad bad  */
-#if (defined(HAVE_ISNAN) && defined(isnan) && defined(HAVE_FPCLASS))
+#if (defined(HAVE_ISNAN) && defined(isnan) && defined(HAVE_FPCLASS) && defined(FP_SNAN) && defined(FP_QNAN))
 #  undef isnan
 #  define isnan(a) (fpclass(a) == FP_SNAN || fpclass(a) == FP_QNAN)
 #endif
 
 /* Digital UNIX */
-#if (! defined(HAVE_ISINF) && defined(HAVE_FP_CLASS) && defined(HAVE_FP_CLASS_H))
+#if (! defined(HAVE_ISINF) && defined(HAVE_FP_CLASS) && defined(HAVE_FP_CLASS_H) && defined(FP_NEG_INF) && defined( FP_POS_INF) )
 #  define HAVE_ISINF 1
 #  define isinf(a) (fp_class(a) == FP_NEG_INF || fp_class(a) == FP_POS_INF)
 #endif 
@@ -390,6 +390,10 @@ AC_CACHE_VAL([rd_cv_ieee_$2],
 #  define isinf(a) (fpclassify(a) == FP_INFINITE)
 #endif
 
+#if HAVE_MATH_H
+#include <math.h>
+#endif
+
 #include <stdio.h>
 int main(void){
     double rrdnan,rrdinf,rrdc,rrdzero;
index 39ba996cb960e22873667c57deeff94bf23bef56..1e7ea47c080122c2411d3b703333f404d19ff314 100644 (file)
@@ -2485,6 +2485,18 @@ linux* | k*bsd*-gnu)
   dynamic_linker='GNU/Linux ld.so'
   ;;
 
+netbsdelf*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='NetBSD ld.elf_so'
+  ;;
+
 netbsd*)
   version_type=sunos
   need_lib_prefix=no
@@ -3076,7 +3088,7 @@ linux* | k*bsd*-gnu)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-netbsd*)
+netbsd* | netbsdelf*-gnu)
   if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
     lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
   else
@@ -3757,7 +3769,7 @@ m4_if([$1], [CXX], [
            ;;
        esac
        ;;
-      netbsd*)
+      netbsd* | netbsdelf*-gnu)
        ;;
       *qnx* | *nto*)
         # QNX uses GNU C++, but need to define -shared option too, otherwise
@@ -4182,6 +4194,9 @@ m4_if([$1], [CXX], [
   cygwin* | mingw* | cegcc*)
     _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
   ;;
+  linux* | k*bsd*-gnu)
+    _LT_TAGVAR(link_all_deplibs, $1)=no
+  ;;
   *)
     _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
   ;;
@@ -4246,6 +4261,9 @@ dnl Note also adjust exclude_expsyms for C++ above.
   openbsd*)
     with_gnu_ld=no
     ;;
+  linux* | k*bsd*-gnu)
+    _LT_TAGVAR(link_all_deplibs, $1)=no
+    ;;
   esac
 
   _LT_TAGVAR(ld_shlibs, $1)=yes
@@ -4428,7 +4446,7 @@ _LT_EOF
       fi
       ;;
 
-    netbsd*)
+    netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
        _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
        wlarc=
@@ -4603,6 +4621,7 @@ _LT_EOF
        if test "$aix_use_runtimelinking" = yes; then
          shared_flag="$shared_flag "'${wl}-G'
        fi
+       _LT_TAGVAR(link_all_deplibs, $1)=no
       else
        # not using gcc
        if test "$host_cpu" = ia64; then
@@ -4841,7 +4860,7 @@ _LT_EOF
       _LT_TAGVAR(link_all_deplibs, $1)=yes
       ;;
 
-    netbsd*)
+    netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
        _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
       else
index bea2057b96df55bcfdba57f00fe518cc92d0884d..8830984c7be736f5138e17ba065db542cac9831b 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://oss.oetiker.ch/rrdtool-trac/newticket\n"
-"POT-Creation-Date: 2009-06-08 08:34+0200\n"
+"POT-Creation-Date: 2009-09-25 17:08+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -254,12 +254,14 @@ msgid ""
 "\t\t[-S|--step seconds]\n"
 "\t\t[-f|--imginfo printfstr]\n"
 "\t\t[-a|--imgformat PNG]\n"
-"\t\t[-c|--color COLORTAG#rrggbb[aa]] [-t|--title string]\n"
+"\t\t[-c|--color COLORTAG#rrggbb[aa]]\n"
+"\t\t[--border width\n"
+"\t\t[-t|--title string]\n"
 "\t\t[-W|--watermark string]\n"
 "\t\t[DEF:vname=rrd:ds-name:CF]\n"
 msgstr ""
 
-#: src/rrd_tool.c:168
+#: src/rrd_tool.c:170
 msgid ""
 "\t\t[CDEF:vname=rpn-expression]\n"
 "\t\t[VDEF:vdefname=rpn-expression]\n"
@@ -278,7 +280,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: src/rrd_tool.c:182
+#: src/rrd_tool.c:184
 msgid ""
 " * tune -  Modify some basic properties of an RRD\n"
 "\n"
@@ -293,7 +295,7 @@ msgid ""
 "\t\t[--alpha adaptation-parameter]\n"
 msgstr ""
 
-#: src/rrd_tool.c:193
+#: src/rrd_tool.c:195
 msgid ""
 " * tune -  Modify some basic properties of an RRD\n"
 "\n"
@@ -304,7 +306,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: src/rrd_tool.c:200
+#: src/rrd_tool.c:202
 msgid ""
 " * resize - alter the length of one of the RRAs in an RRD\n"
 "\n"
@@ -312,7 +314,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: src/rrd_tool.c:203
+#: src/rrd_tool.c:205
 msgid ""
 "* xport - generate XML dump from one or several RRD\n"
 "\n"
@@ -326,7 +328,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: src/rrd_tool.c:210
+#: src/rrd_tool.c:212
 msgid ""
 " * quit - closing a session in remote mode\n"
 "\n"
@@ -334,7 +336,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: src/rrd_tool.c:213
+#: src/rrd_tool.c:215
 msgid ""
 " * ls - lists all *.rrd files in current directory\n"
 "\n"
@@ -342,7 +344,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: src/rrd_tool.c:216
+#: src/rrd_tool.c:218
 msgid ""
 " * cd - changes the current directory\n"
 "\n"
@@ -350,7 +352,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: src/rrd_tool.c:219
+#: src/rrd_tool.c:221
 msgid ""
 " * mkdir - creates a new directory\n"
 "\n"
@@ -358,7 +360,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: src/rrd_tool.c:222
+#: src/rrd_tool.c:224
 msgid ""
 " * pwd - returns the current working directory\n"
 "\n"
@@ -366,7 +368,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: src/rrd_tool.c:225
+#: src/rrd_tool.c:227
 msgid ""
 "RRDtool is distributed under the Terms of the GNU General\n"
 "Public License Version 2. (www.gnu.org/copyleft/gpl.html)\n"
index 969e56d06b55dcaabc22a8a18d1ab2a48a9d0cf2..7c4ae779fa68f36ba41011653bbe071a6ac78013 100644 (file)
 /* Define to the one symbol short name of this package. */
 #undef PACKAGE_TARNAME
 
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
 /* Define to the version of this package. */
 #undef PACKAGE_VERSION
 
 /* Define to 1 if strerror_r returns char *. */
 #undef STRERROR_R_CHAR_P
 
+/* time_t is long */
+#undef TIME_T_IS_LONG
+
+/* time_t is long long */
+#undef TIME_T_IS_LONG_LONG
+
 /* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
 #undef TIME_WITH_SYS_TIME
 
index 239687b1b92994b6b8ebd491696a16ec391b9f67..8fe331ca08070299ff5ffa855ab52a9071ad19d2 100644 (file)
@@ -9,7 +9,7 @@
 
 Summary: Round Robin Database Tool to store and display time-series data
 Name: rrdtool
-Version: 1.3.99909060808
+Version: 1.3.99908093000
 Release: 0.20%{?dist}
 License: GPLv2+ with exceptions
 Group: Applications/Databases
index 679d3beeafb8fef8454f9650265e8317a650922d..d7f0387930f28ee1af7ff558efdebe9c838accf1 100644 (file)
@@ -322,6 +322,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
@@ -499,9 +500,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
              exit 1;; \
          esac; \
        done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/Makefile'; \
+       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \
        $(am__cd) $(top_srcdir) && \
-         $(AUTOMAKE) --gnu src/Makefile
+         $(AUTOMAKE) --foreign src/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
        @case '$?' in \
index f7d3bcca7df25d62d84215fba20b661416d40900..eaea66b22b8c8f83c6b3c50edc1969b359332246 100644 (file)
--- a/src/fnv.h
+++ b/src/fnv.h
@@ -1,8 +1,8 @@
 /*
  * fnv - Fowler/Noll/Vo- hash code
  *
- * @(#) $Revision: 1306 $
- * @(#) $Id: fnv.h 1306 2008-03-15 10:39:48Z oetiker $
+ * @(#) $Revision$
+ * @(#) $Id$
  * @(#) $Source$
  *
  ***
index 71ac3fb424b09c595f88ac55561fa24f6910c5ec..a4b9a08893d884914db27ab8689aa180e338bbac 100644 (file)
@@ -7,6 +7,7 @@ rrd_create_r
 rrd_dontneed
 rrd_dump
 rrd_dump_r
+rrd_dump_cb_r
 rrd_fetch
 rrd_fetch_r
 rrd_flushcached
@@ -32,6 +33,7 @@ rrd_last_r
 rrd_lastupdate
 rrd_lastupdate_r
 rrd_lock
+rrd_mkdir_p
 rrd_new_context
 rrd_open
 rrd_parsetime
index 79d9c99f044abddf62e29a3dcaecb6fc34261f56..697e5525fa8dedb549d26115c0a9286393ddb1f6 100644 (file)
--- a/src/rrd.h
+++ b/src/rrd.h
@@ -3,7 +3,7 @@
  *****************************************************************************
  * rrdlib.h   Public header file for librrd
  *****************************************************************************
- * $Id: rrd.h 1812 2009-05-26 07:13:52Z oetiker $
+ * $Id$
  * $Log$
  * Revision 1.9  2005/02/13 16:13:33  oetiker
  * let rrd_graph return the actual value range it picked ...
@@ -130,6 +130,10 @@ extern    "C" {
         struct rrd_info_t *next;
     } rrd_info_t;
 
+    typedef size_t (* rrd_output_callback_t)(
+    const void *,
+    size_t,
+    void *);
 
 /* main function blocks */
     int       rrd_create(
@@ -252,6 +256,12 @@ extern    "C" {
     const char *filename,
     int rraindex);
 
+    int rrd_dump_cb_r(
+    const char *filename,
+    int opt_header,
+    rrd_output_callback_t cb,
+    void *user);
+
 /* Transplanted from rrd_parsetime.h */
     typedef enum {
         ABSOLUTE_TIME,
@@ -327,6 +337,8 @@ int       rrd_proc_start_end(
     int rrd_add_strdup(char ***dest, size_t *dest_size, char *src);
     void rrd_free_ptrs(void ***src, size_t *cnt);
 
+    int rrd_mkdir_p(const char *pathname, mode_t mode);
+
 /*
  * The following functions are _internal_ functions needed to read the raw RRD
  * files. Since they are _internal_ they may change with the file format and
index 90b78f8df989eab0b76a509ef21dc116ccbeb25e..787c2b6d649dcec54f6e171b6eba40c5a9c1d251 100644 (file)
 #ifndef __RRD_CLIENT_H
 #define __RRD_CLIENT_H 1
 
+#if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__CYGWIN32__) && !defined(HAVE_CONFIG_H)
+#include "../win32/config.h"
+#else
+#ifdef HAVE_CONFIG_H
+#include "../rrd_config.h"
+#endif
+#endif
+
 #ifndef WIN32
-#include <stdint.h>
+# ifdef HAVE_STDINT_H
+#  include <stdint.h>
+# else
+#   ifdef HAVE_INTTYPES_H
+#      include <inttypes.h>
+#   else
+#      error "you should have stdint.h or inttypes.h to compile this"
+#   endif
+# endif
 #else
 #      include <stdlib.h>
        typedef signed char     int8_t;
index ec191b9e0f7ced35c116061c9a02b9be474d7ef9..a569197ab9a8b709f0135895ad88b60248648852 100644 (file)
@@ -175,17 +175,18 @@ char *strchr (), *strrchr ();
 #  ifdef isinf
 #  undef isinf
 #  endif
-#  define isinf(a) (fpclass(a) == FP_NINF || fpclass(a) == FP_PINF)
+#  define isinf(a) (!!(fpclass(a) & (FP_SNAN|FP_QNAN)))
+
 #endif
 
 /* solaris 10 it defines isnan such that only forte can compile it ... bad bad  */
-#if (defined(HAVE_ISNAN) && defined(isnan) && defined(HAVE_FPCLASS))
+#if (defined(HAVE_ISNAN) && defined(isnan) && defined(HAVE_FPCLASS) && defined(FP_SNAN) && defined(FP_QNAN))
 #  undef isnan
 #  define isnan(a) (fpclass(a) == FP_SNAN || fpclass(a) == FP_QNAN)
 #endif
 
 /* for OSF1 Digital Unix */
-#if (! defined(HAVE_ISINF) && defined(HAVE_FP_CLASS) && defined(HAVE_FP_CLASS_H))
+#if (! defined(HAVE_ISINF) && defined(HAVE_FP_CLASS) && defined(HAVE_FP_CLASS_H) && defined(FP_NEG_INF) && defined( FP_POS_INF))
 #  define HAVE_ISINF 1
 #  define isinf(a) (fp_class(a) == FP_NEG_INF || fp_class(a) == FP_POS_INF)
 #endif
index f997d3ceddbd4060add089914cf95b80b86b3fcf..710fa017d747210882aeba6e9ecdba188b93c933 100644 (file)
@@ -1,7 +1,7 @@
 /**
  * RRDTool - src/rrd_daemon.c
- * Copyright (C) 2008 Florian octo Forster
- * Copyright (C) 2008 Kevin Brintnall
+ * Copyright (C) 2008,2009 Florian octo Forster
+ * Copyright (C) 2008,2009 Kevin Brintnall
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the
 #include <stdlib.h>
 
 #ifndef WIN32
-#include <stdint.h>
+#ifdef HAVE_STDINT_H
+#  include <stdint.h>
+#endif
 #include <unistd.h>
 #include <strings.h>
 #include <inttypes.h>
-#      include <sys/socket.h>
+#include <sys/socket.h>
 
 #else
 
@@ -91,6 +93,7 @@
 
 #include <sys/types.h>
 #include <sys/stat.h>
+#include <dirent.h>
 #include <fcntl.h>
 #include <signal.h>
 #include <sys/un.h>
 /*
  * Types
  */
-typedef enum
-{
-  PRIV_LOW,
-  PRIV_HIGH
-} socket_privilege;
-
 typedef enum { RESP_ERR = -1, RESP_OK = 0 } response_code;
 
 struct listen_socket_s
@@ -128,7 +125,6 @@ struct listen_socket_s
   int fd;
   char addr[PATH_MAX + 1];
   int family;
-  socket_privilege privilege;
 
   /* state for BATCH processing */
   time_t batch_start;
@@ -141,23 +137,25 @@ struct listen_socket_s
 
   char *wbuf;
   ssize_t wbuf_len;
+
+  uint32_t permissions;
 };
 typedef struct listen_socket_s listen_socket_t;
 
-struct command;
+struct command_s;
+typedef struct command_s command_t;
 /* note: guard against "unused" warnings in the handlers */
 #define DISPATCH_PROTO listen_socket_t *sock   __attribute__((unused)),\
                        time_t now              __attribute__((unused)),\
                        char  *buffer           __attribute__((unused)),\
                        size_t buffer_size      __attribute__((unused))
 
-#define HANDLER_PROTO  struct command *cmd     __attribute__((unused)),\
+#define HANDLER_PROTO  command_t *cmd          __attribute__((unused)),\
                        DISPATCH_PROTO
 
-struct command {
+struct command_s {
   char   *cmd;
   int (*handler)(HANDLER_PROTO);
-  socket_privilege min_priv;
 
   char  context;               /* where we expect to see it */
 #define CMD_CONTEXT_CLIENT     (1<<0)
@@ -202,6 +200,12 @@ enum queue_side_e
 };
 typedef enum queue_side_e queue_side_t;
 
+/* describe a set of journal files */
+typedef struct {
+  char **files;
+  size_t files_num;
+} journal_set;
+
 /* max length of socket command or response */
 #define CMD_MAX 4096
 #define RBUF_SIZE (CMD_MAX*2)
@@ -215,7 +219,11 @@ static uid_t daemon_uid;
 static listen_socket_t *listen_fds = NULL;
 static size_t listen_fds_num = 0;
 
-static int do_shutdown = 0;
+enum {
+  RUNNING,             /* normal operation */
+  FLUSHING,            /* flushing remaining values */
+  SHUTDOWN             /* shutting down */
+} state = RUNNING;
 
 static pthread_t *queue_threads;
 static pthread_cond_t queue_cond = PTHREAD_COND_INITIALIZER;
@@ -256,9 +264,13 @@ static uint64_t stats_journal_rotate = 0;
 static pthread_mutex_t stats_lock = PTHREAD_MUTEX_INITIALIZER;
 
 /* Journaled updates */
-static char *journal_cur = NULL;
-static char *journal_old = NULL;
-static FILE *journal_fh = NULL;
+#define JOURNAL_BASE "rrd.journal"
+static journal_set *journal_cur = NULL;
+static journal_set *journal_old = NULL;
+static char *journal_dir = NULL;
+static FILE *journal_fh = NULL;                /* current journal file handle */
+static long  journal_size = 0;         /* current journal size */
+#define JOURNAL_MAX (1 * 1024 * 1024 * 1024)
 static pthread_mutex_t journal_lock = PTHREAD_MUTEX_INITIALIZER;
 static int journal_write(char *cmd, char *args);
 static void journal_done(void);
@@ -273,7 +285,7 @@ static int handle_request_help (HANDLER_PROTO);
 static void sig_common (const char *sig) /* {{{ */
 {
   RRDD_LOG(LOG_NOTICE, "caught SIG%s", sig);
-  do_shutdown++;
+  state = FLUSHING;
   pthread_cond_broadcast(&flush_cond);
   pthread_cond_broadcast(&queue_cond);
 } /* }}} void sig_common */
@@ -464,7 +476,7 @@ static char *next_cmd (listen_socket_t *sock, ssize_t *len) /* {{{ */
 
   /* NOTREACHED */
   assert(1==0);
-}
+} /* }}} char *next_cmd */
 
 /* add the characters directly to the write buffer */
 static int add_to_wbuf(listen_socket_t *sock, char *str, size_t len) /* {{{ */
@@ -656,6 +668,7 @@ static void *free_cache_item(cache_item_t *ci) /* {{{ */
 
   /* in case anyone is waiting */
   pthread_cond_broadcast(&ci->flushed);
+  pthread_cond_destroy(&ci->flushed);
 
   free (ci);
 
@@ -738,13 +751,8 @@ static gboolean tree_callback_flush (gpointer key, gpointer value, /* {{{ */
   if (ci->flags & CI_FLAGS_IN_QUEUE)
     return FALSE;
 
-  if ((ci->last_flush_time <= cfd->abs_timeout)
-      && (ci->values_num > 0))
-  {
-    enqueue_cache_item (ci, TAIL);
-  }
-  else if ((do_shutdown != 0)
-      && (ci->values_num > 0))
+  if (ci->values_num > 0
+      && (ci->last_flush_time <= cfd->abs_timeout || state != RUNNING))
   {
     enqueue_cache_item (ci, TAIL);
   }
@@ -813,21 +821,22 @@ static void *flush_thread_main (void *args __attribute__((unused))) /* {{{ */
 
   pthread_mutex_lock(&cache_lock);
 
-  while (!do_shutdown)
+  while (state == RUNNING)
   {
     gettimeofday (&now, NULL);
     if ((now.tv_sec > next_flush.tv_sec)
         || ((now.tv_sec == next_flush.tv_sec)
           && ((1000 * now.tv_usec) > next_flush.tv_nsec)))
     {
+      RRDD_LOG(LOG_DEBUG, "flushing old values");
+
+      /* Determine the time of the next cache flush. */
+      next_flush.tv_sec = now.tv_sec + config_flush_interval;
+
       /* Flush all values that haven't been written in the last
        * `config_write_interval' seconds. */
       flush_old_values (config_write_interval);
 
-      /* Determine the time of the next cache flush. */
-      next_flush.tv_sec =
-        now.tv_sec + next_flush.tv_sec % config_flush_interval;
-
       /* unlock the cache while we rotate so we don't block incoming
        * updates if the fsync() blocks on disk I/O */
       pthread_mutex_unlock(&cache_lock);
@@ -846,6 +855,8 @@ static void *flush_thread_main (void *args __attribute__((unused))) /* {{{ */
   if (config_flush_at_shutdown)
     flush_old_values (-1); /* flush everything */
 
+  state = SHUTDOWN;
+
   pthread_mutex_unlock(&cache_lock);
 
   return NULL;
@@ -855,7 +866,7 @@ static void *queue_thread_main (void *args __attribute__((unused))) /* {{{ */
 {
   pthread_mutex_lock (&cache_lock);
 
-  while (!do_shutdown
+  while (state != SHUTDOWN
          || (cache_queue_head != NULL && config_flush_at_shutdown))
   {
     cache_item_t *ci;
@@ -865,8 +876,8 @@ static void *queue_thread_main (void *args __attribute__((unused))) /* {{{ */
     int status;
 
     /* Now, check if there's something to store away. If not, wait until
-     * something comes in.  if we are shutting down, do not wait around.  */
-    if (cache_queue_head == NULL && !do_shutdown)
+     * something comes in. */
+    if (cache_queue_head == NULL)
     {
       status = pthread_cond_wait (&queue_cond, &cache_lock);
       if ((status != 0) && (status != ETIMEDOUT))
@@ -912,10 +923,14 @@ static void *queue_thread_main (void *args __attribute__((unused))) /* {{{ */
     }
 
     journal_write("wrote", file);
-    pthread_cond_broadcast(&ci->flushed);
 
-    rrd_free_ptrs((void ***) &values, &values_num);
-    free(file);
+    /* Search again in the tree.  It's possible someone issued a "FORGET"
+     * while we were writing the update values. */
+    pthread_mutex_lock(&cache_lock);
+    ci = (cache_item_t *) g_tree_lookup(cache_tree, file);
+    if (ci)
+      pthread_cond_broadcast(&ci->flushed);
+    pthread_mutex_unlock(&cache_lock);
 
     if (status == 0)
     {
@@ -925,6 +940,9 @@ static void *queue_thread_main (void *args __attribute__((unused))) /* {{{ */
       pthread_mutex_unlock (&stats_lock);
     }
 
+    rrd_free_ptrs((void ***) &values, &values_num);
+    free(file);
+
     pthread_mutex_lock (&cache_lock);
   }
   pthread_mutex_unlock (&cache_lock);
@@ -1047,20 +1065,6 @@ static void get_abs_path(char **filename, char *tmp)
   *filename = tmp;
 } /* }}} static int get_abs_path */
 
-/* returns 1 if we have the required privilege level,
- * otherwise issue an error to the user on sock */
-static int has_privilege (listen_socket_t *sock, /* {{{ */
-                          socket_privilege priv)
-{
-  if (sock == NULL) /* journal replay */
-    return 1;
-
-  if (sock->privilege >= priv)
-    return 1;
-
-  return send_response(sock, RESP_ERR, "%s\n", rrd_strerror(EACCES));
-} /* }}} static int has_privilege */
-
 static int flush_file (const char *filename) /* {{{ */
 {
   cache_item_t *ci;
@@ -1089,7 +1093,7 @@ static int flush_file (const char *filename) /* {{{ */
   return (0);
 } /* }}} int flush_file */
 
-static int syntax_error(listen_socket_t *sock, struct command *cmd) /* {{{ */
+static int syntax_error(listen_socket_t *sock, command_t *cmd) /* {{{ */
 {
   char *err = "Syntax error.\n";
 
@@ -1306,6 +1310,7 @@ static int handle_request_update (HANDLER_PROTO) /* {{{ */
   if (ci == NULL) /* {{{ */
   {
     struct stat statbuf;
+    cache_item_t *tmp;
 
     /* don't hold the lock while we setup; stat(2) might block */
     pthread_mutex_unlock(&cache_lock);
@@ -1353,7 +1358,20 @@ static int handle_request_update (HANDLER_PROTO) /* {{{ */
     pthread_cond_init(&ci->flushed, NULL);
 
     pthread_mutex_lock(&cache_lock);
-    g_tree_replace (cache_tree, (void *) ci->file, (void *) ci);
+
+    /* another UPDATE might have added this entry in the meantime */
+    tmp = g_tree_lookup (cache_tree, file);
+    if (tmp == NULL)
+      g_tree_replace (cache_tree, (void *) ci->file, (void *) ci);
+    else
+    {
+      free_cache_item (ci);
+      ci = tmp;
+    }
+
+    /* state may have changed while we were unlocked */
+    if (state == SHUTDOWN)
+      return -1;
   } /* }}} */
   assert (ci != NULL);
 
@@ -1478,11 +1496,10 @@ static int handle_request_quit (HANDLER_PROTO) /* {{{ */
   return -1;
 } /* }}} static int handle_request_quit */
 
-struct command COMMANDS[] = {
+static command_t list_of_commands[] = { /* {{{ */
   {
     "UPDATE",
     handle_request_update,
-    PRIV_HIGH,
     CMD_CONTEXT_ANY,
     "UPDATE <filename> <values> [<values> ...]\n"
     ,
@@ -1497,7 +1514,6 @@ struct command COMMANDS[] = {
   {
     "WROTE",
     handle_request_wrote,
-    PRIV_HIGH,
     CMD_CONTEXT_JOURNAL,
     NULL,
     NULL
@@ -1505,7 +1521,6 @@ struct command COMMANDS[] = {
   {
     "FLUSH",
     handle_request_flush,
-    PRIV_LOW,
     CMD_CONTEXT_CLIENT | CMD_CONTEXT_BATCH,
     "FLUSH <filename>\n"
     ,
@@ -1515,7 +1530,6 @@ struct command COMMANDS[] = {
   {
     "FLUSHALL",
     handle_request_flushall,
-    PRIV_HIGH,
     CMD_CONTEXT_CLIENT,
     "FLUSHALL\n"
     ,
@@ -1524,7 +1538,6 @@ struct command COMMANDS[] = {
   {
     "PENDING",
     handle_request_pending,
-    PRIV_HIGH,
     CMD_CONTEXT_CLIENT,
     "PENDING <filename>\n"
     ,
@@ -1534,7 +1547,6 @@ struct command COMMANDS[] = {
   {
     "FORGET",
     handle_request_forget,
-    PRIV_HIGH,
     CMD_CONTEXT_ANY,
     "FORGET <filename>\n"
     ,
@@ -1544,7 +1556,6 @@ struct command COMMANDS[] = {
   {
     "QUEUE",
     handle_request_queue,
-    PRIV_LOW,
     CMD_CONTEXT_CLIENT,
     "QUEUE\n"
     ,
@@ -1557,7 +1568,6 @@ struct command COMMANDS[] = {
   {
     "STATS",
     handle_request_stats,
-    PRIV_LOW,
     CMD_CONTEXT_CLIENT,
     "STATS\n"
     ,
@@ -1567,7 +1577,6 @@ struct command COMMANDS[] = {
   {
     "HELP",
     handle_request_help,
-    PRIV_LOW,
     CMD_CONTEXT_CLIENT,
     "HELP [<command>]\n",
     NULL, /* special! */
@@ -1575,7 +1584,6 @@ struct command COMMANDS[] = {
   {
     "BATCH",
     batch_start,
-    PRIV_LOW,
     CMD_CONTEXT_CLIENT,
     "BATCH\n"
     ,
@@ -1599,7 +1607,6 @@ struct command COMMANDS[] = {
   {
     ".",   /* BATCH terminator */
     batch_done,
-    PRIV_LOW,
     CMD_CONTEXT_BATCH,
     NULL,
     NULL
@@ -1607,34 +1614,79 @@ struct command COMMANDS[] = {
   {
     "QUIT",
     handle_request_quit,
-    PRIV_LOW,
     CMD_CONTEXT_CLIENT | CMD_CONTEXT_BATCH,
     "QUIT\n"
     ,
     "Disconnect from rrdcached.\n"
-  },
-  {NULL,NULL,0,0,NULL,NULL}  /* LAST ENTRY */
-};
+  }
+}; /* }}} command_t list_of_commands[] */
+static size_t list_of_commands_len = sizeof (list_of_commands)
+  / sizeof (list_of_commands[0]);
 
-static struct command *find_command(char *cmd)
+static command_t *find_command(char *cmd)
 {
-  struct command *c = COMMANDS;
-
-  while (c->cmd != NULL)
-  {
-    if (strcasecmp(cmd, c->cmd) == 0)
-      break;
-    c++;
-  }
+  size_t i;
 
-  if (c->cmd == NULL)
-    return NULL;
-  else
-    return c;
+  for (i = 0; i < list_of_commands_len; i++)
+    if (strcasecmp(cmd, list_of_commands[i].cmd) == 0)
+      return (&list_of_commands[i]);
+  return NULL;
 }
 
+/* We currently use the index in the `list_of_commands' array as a bit position
+ * in `listen_socket_t.permissions'. This member schould NEVER be accessed from
+ * outside these functions so that switching to a more elegant storage method
+ * is easily possible. */
+static ssize_t find_command_index (const char *cmd) /* {{{ */
+{
+  size_t i;
+
+  for (i = 0; i < list_of_commands_len; i++)
+    if (strcasecmp(cmd, list_of_commands[i].cmd) == 0)
+      return ((ssize_t) i);
+  return (-1);
+} /* }}} ssize_t find_command_index */
+
+static int socket_permission_check (listen_socket_t *sock, /* {{{ */
+    const char *cmd)
+{
+  ssize_t i;
+
+  if (cmd == NULL)
+    return (-1);
+
+  if ((strcasecmp ("QUIT", cmd) == 0)
+      || (strcasecmp ("HELP", cmd) == 0))
+    return (1);
+  else if (strcmp (".", cmd) == 0)
+    cmd = "BATCH";
+
+  i = find_command_index (cmd);
+  if (i < 0)
+    return (-1);
+  assert (i < 32);
+
+  if ((sock->permissions & (1 << i)) != 0)
+    return (1);
+  return (0);
+} /* }}} int socket_permission_check */
+
+static int socket_permission_add (listen_socket_t *sock, /* {{{ */
+    const char *cmd)
+{
+  ssize_t i;
+
+  i = find_command_index (cmd);
+  if (i < 0)
+    return (-1);
+  assert (i < 32);
+
+  sock->permissions |= (1 << i);
+  return (0);
+} /* }}} int socket_permission_add */
+
 /* check whether commands are received in the expected context */
-static int command_check_context(listen_socket_t *sock, struct command *cmd)
+static int command_check_context(listen_socket_t *sock, command_t *cmd)
 {
   if (sock == NULL)
     return (cmd->context & CMD_CONTEXT_JOURNAL);
@@ -1652,7 +1704,7 @@ static int handle_request_help (HANDLER_PROTO) /* {{{ */
   int status;
   char *cmd_str;
   char *resp_txt;
-  struct command *help = NULL;
+  command_t *help = NULL;
 
   status = buffer_get_field (&buffer, &buffer_size, &cmd_str);
   if (status == 0)
@@ -1673,14 +1725,15 @@ static int handle_request_help (HANDLER_PROTO) /* {{{ */
   }
   else
   {
-    help = COMMANDS;
+    size_t i;
+
     resp_txt = "Command overview\n";
 
-    while (help->cmd)
+    for (i = 0; i < list_of_commands_len; i++)
     {
-      if (help->syntax)
-        add_response_info(sock, "%s", help->syntax);
-      help++;
+      if (list_of_commands[i].syntax == NULL)
+        continue;
+      add_response_info (sock, "%s", list_of_commands[i].syntax);
     }
   }
 
@@ -1692,7 +1745,7 @@ static int handle_request (DISPATCH_PROTO) /* {{{ */
 {
   char *buffer_ptr = buffer;
   char *cmd_str = NULL;
-  struct command *cmd = NULL;
+  command_t *cmd = NULL;
   int status;
 
   assert (buffer[buffer_size - 1] == '\0');
@@ -1711,9 +1764,8 @@ static int handle_request (DISPATCH_PROTO) /* {{{ */
   if (!cmd)
     return send_response(sock, RESP_ERR, "Unknown command: %s\n", cmd_str);
 
-  status = has_privilege(sock, cmd->min_priv);
-  if (status <= 0)
-    return status;
+  if (!socket_permission_check (sock, cmd->cmd))
+    return send_response(sock, RESP_ERR, "Permission denied.\n");
 
   if (!command_check_context(sock, cmd))
     return send_response(sock, RESP_ERR, "Can't use '%s' here.\n", cmd_str);
@@ -1721,74 +1773,136 @@ static int handle_request (DISPATCH_PROTO) /* {{{ */
   return cmd->handler(cmd, sock, now, buffer_ptr, buffer_size);
 } /* }}} int handle_request */
 
-/* MUST NOT hold journal_lock before calling this */
-static void journal_rotate(void) /* {{{ */
+static void journal_set_free (journal_set *js) /* {{{ */
 {
-  FILE *old_fh = NULL;
-  int new_fd;
-
-  if (journal_cur == NULL || journal_old == NULL)
+  if (js == NULL)
     return;
 
-  pthread_mutex_lock(&journal_lock);
+  rrd_free_ptrs((void ***) &js->files, &js->files_num);
 
-  /* we rotate this way (rename before close) so that the we can release
-   * the journal lock as fast as possible.  Journal writes to the new
-   * journal can proceed immediately after the new file is opened.  The
-   * fclose can then block without affecting new updates.
-   */
-  if (journal_fh != NULL)
+  free(js);
+} /* }}} journal_set_free */
+
+static void journal_set_remove (journal_set *js) /* {{{ */
+{
+  if (js == NULL)
+    return;
+
+  for (uint i=0; i < js->files_num; i++)
   {
-    old_fh = journal_fh;
-    journal_fh = NULL;
-    rename(journal_cur, journal_old);
-    ++stats_journal_rotate;
+    RRDD_LOG(LOG_DEBUG, "removing old journal %s", js->files[i]);
+    unlink(js->files[i]);
   }
+} /* }}} journal_set_remove */
 
-  new_fd = open(journal_cur, O_WRONLY|O_CREAT|O_APPEND,
-                S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);
-  if (new_fd >= 0)
+/* close current journal file handle.
+ * MUST hold journal_lock before calling */
+static void journal_close(void) /* {{{ */
+{
+  if (journal_fh != NULL)
   {
-    journal_fh = fdopen(new_fd, "a");
-    if (journal_fh == NULL)
-      close(new_fd);
+    if (fclose(journal_fh) != 0)
+      RRDD_LOG(LOG_ERR, "cannot close journal: %s", rrd_strerror(errno));
   }
 
-  pthread_mutex_unlock(&journal_lock);
+  journal_fh = NULL;
+  journal_size = 0;
+} /* }}} journal_close */
 
-  if (old_fh != NULL)
-    fclose(old_fh);
+/* MUST hold journal_lock before calling */
+static void journal_new_file(void) /* {{{ */
+{
+  struct timeval now;
+  int  new_fd;
+  char new_file[PATH_MAX + 1];
+
+  assert(journal_dir != NULL);
+  assert(journal_cur != NULL);
 
+  journal_close();
+
+  gettimeofday(&now, NULL);
+  /* this format assures that the files sort in strcmp() order */
+  snprintf(new_file, PATH_MAX, "%s/%s.%010d.%06d",
+           journal_dir, JOURNAL_BASE, (int)now.tv_sec, (int)now.tv_usec);
+
+  new_fd = open(new_file, O_WRONLY|O_CREAT|O_APPEND,
+                S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);
+  if (new_fd < 0)
+    goto error;
+
+  journal_fh = fdopen(new_fd, "a");
   if (journal_fh == NULL)
-  {
-    RRDD_LOG(LOG_CRIT,
-             "JOURNALING DISABLED: Cannot open journal file '%s' : (%s)",
-             journal_cur, rrd_strerror(errno));
+    goto error;
 
-    RRDD_LOG(LOG_ERR,
-             "JOURNALING DISABLED: All values will be flushed at shutdown");
-    config_flush_at_shutdown = 1;
-  }
+  journal_size = ftell(journal_fh);
+  RRDD_LOG(LOG_DEBUG, "started new journal %s", new_file);
+
+  /* record the file in the journal set */
+  rrd_add_strdup(&journal_cur->files, &journal_cur->files_num, new_file);
+
+  return;
+
+error:
+  RRDD_LOG(LOG_CRIT,
+           "JOURNALING DISABLED: Error while trying to create %s : %s",
+           new_file, rrd_strerror(errno));
+  RRDD_LOG(LOG_CRIT,
+           "JOURNALING DISABLED: All values will be flushed at shutdown");
+
+  close(new_fd);
+  config_flush_at_shutdown = 1;
+
+} /* }}} journal_new_file */
+
+/* MUST NOT hold journal_lock before calling this */
+static void journal_rotate(void) /* {{{ */
+{
+  journal_set *old_js = NULL;
+
+  if (journal_dir == NULL)
+    return;
+
+  RRDD_LOG(LOG_DEBUG, "rotating journals");
+
+  pthread_mutex_lock(&stats_lock);
+  ++stats_journal_rotate;
+  pthread_mutex_unlock(&stats_lock);
+
+  pthread_mutex_lock(&journal_lock);
+
+  journal_close();
+
+  /* rotate the journal sets */
+  old_js = journal_old;
+  journal_old = journal_cur;
+  journal_cur = calloc(1, sizeof(journal_set));
+
+  if (journal_cur != NULL)
+    journal_new_file();
+  else
+    RRDD_LOG(LOG_CRIT, "journal_rotate: malloc(journal_set) failed\n");
+
+  pthread_mutex_unlock(&journal_lock);
+
+  journal_set_remove(old_js);
+  journal_set_free  (old_js);
 
 } /* }}} static void journal_rotate */
 
+/* MUST hold journal_lock when calling */
 static void journal_done(void) /* {{{ */
 {
   if (journal_cur == NULL)
     return;
 
-  pthread_mutex_lock(&journal_lock);
-  if (journal_fh != NULL)
-  {
-    fclose(journal_fh);
-    journal_fh = NULL;
-  }
+  journal_close();
 
   if (config_flush_at_shutdown)
   {
     RRDD_LOG(LOG_INFO, "removing journals");
-    unlink(journal_old);
-    unlink(journal_cur);
+    journal_set_remove(journal_old);
+    journal_set_remove(journal_cur);
   }
   else
   {
@@ -1796,7 +1910,9 @@ static void journal_done(void) /* {{{ */
              "journals will be used at next startup");
   }
 
-  pthread_mutex_unlock(&journal_lock);
+  journal_set_free(journal_cur);
+  journal_set_free(journal_old);
+  free(journal_dir);
 
 } /* }}} static void journal_done */
 
@@ -1809,6 +1925,11 @@ static int journal_write(char *cmd, char *args) /* {{{ */
 
   pthread_mutex_lock(&journal_lock);
   chars = fprintf(journal_fh, "%s %s\n", cmd, args);
+  journal_size += chars;
+
+  if (journal_size > JOURNAL_MAX)
+    journal_new_file();
+
   pthread_mutex_unlock(&journal_lock);
 
   if (chars > 0)
@@ -1840,9 +1961,6 @@ static int journal_replay (const char *file) /* {{{ */
     memset(&statbuf, 0, sizeof(statbuf));
     if (stat(file, &statbuf) != 0)
     {
-      if (errno == ENOENT)
-        return 0;
-
       reason = "stat error";
       status = errno;
     }
@@ -1918,25 +2036,79 @@ static int journal_replay (const char *file) /* {{{ */
   return entry_cnt > 0 ? 1 : 0;
 } /* }}} static int journal_replay */
 
+static int journal_sort(const void *v1, const void *v2)
+{
+  char **jn1 = (char **) v1;
+  char **jn2 = (char **) v2;
+
+  return strcmp(*jn1,*jn2);
+}
+
 static void journal_init(void) /* {{{ */
 {
   int had_journal = 0;
+  DIR *dir;
+  struct dirent *dent;
+  char path[PATH_MAX+1];
 
-  if (journal_cur == NULL) return;
+  if (journal_dir == NULL) return;
 
   pthread_mutex_lock(&journal_lock);
 
+  journal_cur = calloc(1, sizeof(journal_set));
+  if (journal_cur == NULL)
+  {
+    RRDD_LOG(LOG_CRIT, "journal_rotate: malloc(journal_set) failed\n");
+    return;
+  }
+
   RRDD_LOG(LOG_INFO, "checking for journal files");
 
-  had_journal += journal_replay(journal_old);
-  had_journal += journal_replay(journal_cur);
+  /* Handle old journal files during transition.  This gives them the
+   * correct sort order.  TODO: remove after first release
+   */
+  {
+    char old_path[PATH_MAX+1];
+    snprintf(old_path, PATH_MAX, "%s/%s", journal_dir, JOURNAL_BASE ".old" );
+    snprintf(path,     PATH_MAX, "%s/%s", journal_dir, JOURNAL_BASE ".0000");
+    rename(old_path, path);
+
+    snprintf(old_path, PATH_MAX, "%s/%s", journal_dir, JOURNAL_BASE        );
+    snprintf(path,     PATH_MAX, "%s/%s", journal_dir, JOURNAL_BASE ".0001");
+    rename(old_path, path);
+  }
+
+  dir = opendir(journal_dir);
+  while ((dent = readdir(dir)) != NULL)
+  {
+    /* looks like a journal file? */
+    if (strncmp(dent->d_name, JOURNAL_BASE, strlen(JOURNAL_BASE)))
+      continue;
+
+    snprintf(path, PATH_MAX, "%s/%s", journal_dir, dent->d_name);
+
+    if (!rrd_add_strdup(&journal_cur->files, &journal_cur->files_num, path))
+    {
+      RRDD_LOG(LOG_CRIT, "journal_init: cannot add journal file %s!",
+               dent->d_name);
+      break;
+    }
+  }
+  closedir(dir);
+
+  qsort(journal_cur->files, journal_cur->files_num,
+        sizeof(journal_cur->files[0]), journal_sort);
+
+  for (uint i=0; i < journal_cur->files_num; i++)
+    had_journal += journal_replay(journal_cur->files[i]);
+
+  journal_new_file();
 
   /* it must have been a crash.  start a flush */
   if (had_journal && config_flush_at_shutdown)
     flush_old_values(-1);
 
   pthread_mutex_unlock(&journal_lock);
-  journal_rotate();
 
   RRDD_LOG(LOG_INFO, "journal processing complete");
 
@@ -1985,7 +2157,7 @@ static void *connection_thread_main (void *args) /* {{{ */
   connection_threads_num++;
   pthread_mutex_unlock (&connection_threads_lock);
 
-  while (do_shutdown == 0)
+  while (state == RUNNING)
   {
     char *cmd;
     ssize_t cmd_len;
@@ -2000,7 +2172,7 @@ static void *connection_thread_main (void *args) /* {{{ */
     pollfd.revents = 0;
 
     status = poll (&pollfd, 1, /* timeout = */ 500);
-    if (do_shutdown)
+    if (state != RUNNING)
       break;
     else if (status == 0) /* timeout */
       continue;
@@ -2305,7 +2477,7 @@ static void *listen_thread_main (void *args __attribute__((unused))) /* {{{ */
 
   RRDD_LOG(LOG_INFO, "listening for connections");
 
-  while (do_shutdown == 0)
+  while (state == RUNNING)
   {
     for (i = 0; i < pollfds_num; i++)
     {
@@ -2315,7 +2487,7 @@ static void *listen_thread_main (void *args __attribute__((unused))) /* {{{ */
     }
 
     status = poll (pollfds, pollfds_num, /* timeout = */ 1000);
-    if (do_shutdown)
+    if (state != RUNNING)
       break;
     else if (status == 0) /* timeout */
       continue;
@@ -2378,7 +2550,7 @@ static void *listen_thread_main (void *args __attribute__((unused))) /* {{{ */
         continue;
       }
     } /* for (pollfds_num) */
-  } /* while (do_shutdown == 0) */
+  } /* while (state == RUNNING) */
 
   RRDD_LOG(LOG_INFO, "starting shutdown");
 
@@ -2490,8 +2662,6 @@ error:
 
 static int cleanup (void) /* {{{ */
 {
-  do_shutdown++;
-
   pthread_cond_broadcast (&flush_cond);
   pthread_join (flush_thread, NULL);
 
@@ -2505,21 +2675,21 @@ static int cleanup (void) /* {{{ */
     RRDD_LOG(LOG_INFO, "clean shutdown; all RRDs flushed");
   }
 
-  journal_done();
-  remove_pidfile ();
-
   free(queue_threads);
   free(config_base_dir);
-  free(config_pid_file);
-  free(journal_cur);
-  free(journal_old);
 
   pthread_mutex_lock(&cache_lock);
   g_tree_destroy(cache_tree);
 
+  pthread_mutex_lock(&journal_lock);
+  journal_done();
+
   RRDD_LOG(LOG_INFO, "goodbye");
   closelog ();
 
+  remove_pidfile ();
+  free(config_pid_file);
+
   return (0);
 } /* }}} int cleanup */
 
@@ -2528,7 +2698,10 @@ static int read_options (int argc, char **argv) /* {{{ */
   int option;
   int status = 0;
 
-  while ((option = getopt(argc, argv, "gl:L:f:w:z:t:Bb:p:Fj:h?")) != -1)
+  char **permissions = NULL;
+  size_t permissions_len = 0;
+
+  while ((option = getopt(argc, argv, "gl:P:f:w:z:t:Bb:p:Fj:h?")) != -1)
   {
     switch (option)
     {
@@ -2536,7 +2709,6 @@ static int read_options (int argc, char **argv) /* {{{ */
         stay_foreground=1;
         break;
 
-      case 'L':
       case 'l':
       {
         listen_socket_t *new;
@@ -2550,7 +2722,40 @@ static int read_options (int argc, char **argv) /* {{{ */
         memset(new, 0, sizeof(listen_socket_t));
 
         strncpy(new->addr, optarg, sizeof(new->addr)-1);
-        new->privilege = (option == 'l') ? PRIV_HIGH : PRIV_LOW;
+
+        /* Add permissions to the socket {{{ */
+        if (permissions_len != 0)
+        {
+          size_t i;
+          for (i = 0; i < permissions_len; i++)
+          {
+            status = socket_permission_add (new, permissions[i]);
+            if (status != 0)
+            {
+              fprintf (stderr, "read_options: Adding permission \"%s\" to "
+                  "socket failed. Most likely, this permission doesn't "
+                  "exist. Check your command line.\n", permissions[i]);
+              status = 4;
+            }
+          }
+        }
+        else /* if (permissions_len == 0) */
+        {
+          /* Add permission for ALL commands to the socket. */
+          size_t i;
+          for (i = 0; i < list_of_commands_len; i++)
+          {
+            status = socket_permission_add (new, list_of_commands[i].cmd);
+            if (status != 0)
+            {
+              fprintf (stderr, "read_options: Adding permission \"%s\" to "
+                  "socket failed. This should never happen, ever! Sorry.\n",
+                  permissions[i]);
+              status = 4;
+            }
+          }
+        }
+        /* }}} Done adding permissions. */
 
         if (!rrd_add_ptr((void ***)&config_listen_address_list,
                          &config_listen_address_list_len, new))
@@ -2561,6 +2766,28 @@ static int read_options (int argc, char **argv) /* {{{ */
       }
       break;
 
+      case 'P':
+      {
+        char *optcopy;
+        char *saveptr;
+        char *dummy;
+        char *ptr;
+
+        rrd_free_ptrs ((void *) &permissions, &permissions_len);
+
+        optcopy = strdup (optarg);
+        dummy = optcopy;
+        saveptr = NULL;
+        while ((ptr = strtok_r (dummy, ", ", &saveptr)) != NULL)
+        {
+          dummy = NULL;
+          rrd_add_strdup ((void *) &permissions, &permissions_len, ptr);
+        }
+
+        free (optcopy);
+      }
+      break;
+
       case 'f':
       {
         int temp;
@@ -2696,48 +2923,36 @@ static int read_options (int argc, char **argv) /* {{{ */
 
       case 'j':
       {
-        struct stat statbuf;
-        const char *dir = optarg;
+        const char *dir = journal_dir = strdup(optarg);
 
-        status = stat(dir, &statbuf);
+        status = rrd_mkdir_p(dir, 0777);
         if (status != 0)
         {
-          fprintf(stderr, "Cannot stat '%s' : %s\n", dir, rrd_strerror(errno));
+          fprintf(stderr, "Failed to create journal directory '%s': %s\n",
+              dir, rrd_strerror(errno));
           return 6;
         }
 
-        if (!S_ISDIR(statbuf.st_mode)
-            || access(dir, R_OK|W_OK|X_OK) != 0)
+        if (access(dir, R_OK|W_OK|X_OK) != 0)
         {
           fprintf(stderr, "Must specify a writable directory with -j! (%s)\n",
                   errno ? rrd_strerror(errno) : "");
           return 6;
         }
-
-        journal_cur = malloc(PATH_MAX + 1);
-        journal_old = malloc(PATH_MAX + 1);
-        if (journal_cur == NULL || journal_old == NULL)
-        {
-          fprintf(stderr, "malloc failure for journal files\n");
-          return 6;
-        }
-        else 
-        {
-          snprintf(journal_cur, PATH_MAX, "%s/rrd.journal", dir);
-          snprintf(journal_old, PATH_MAX, "%s/rrd.journal.old", dir);
-        }
       }
       break;
 
       case 'h':
       case '?':
-        printf ("RRDCacheD %s  Copyright (C) 2008 Florian octo Forster\n"
+        printf ("RRDCacheD %s\n"
+            "Copyright (C) 2008,2009 Florian octo Forster and Kevin Brintnall\n"
             "\n"
             "Usage: rrdcached [options]\n"
             "\n"
             "Valid options are:\n"
             "  -l <address>  Socket address to listen to.\n"
-            "  -L <address>  Socket address to listen to ('FLUSH' only).\n"
+            "  -P <perms>    Sets the permissions to assign to all following "
+                            "sockets\n"
             "  -w <seconds>  Interval in which to write data.\n"
             "  -z <delay>    Delay writes up to <delay> seconds to spread load\n"
             "  -t <threads>  Number of write threads.\n"
@@ -2770,9 +2985,11 @@ static int read_options (int argc, char **argv) /* {{{ */
     fprintf(stderr, "WARNING: -B does not make sense without -b!\n"
             "  Consult the rrdcached documentation\n");
 
-  if (journal_cur == NULL)
+  if (journal_dir == NULL)
     config_flush_at_shutdown = 1;
 
+  rrd_free_ptrs ((void *) &permissions, &permissions_len);
+
   return (status);
 } /* }}} int read_options */
 
index 0154e382ebc1108381b1d491b9981272b1512d38..2b5cb6678a60429be0628b8505bc531a8c43fb5b 100644 (file)
@@ -5,7 +5,7 @@
  * diff calculate the difference between two very long integers available as
  *      strings
  *****************************************************************************
- * $Id: rrd_diff.c 1677 2008-11-18 17:19:17Z oetiker $
+ * $Id$
  * $Log$
  * Revision 1.4  2003/03/10 00:30:34  oetiker
  * handle cases with two negative numbers
index ab65a1a1e1b235fd71c59e19efa70d26937da754..57bd0b8d278f431b78bcbfabc7f122aff84e095e 100644 (file)
@@ -3,7 +3,7 @@
  *****************************************************************************
  * rrd_dump  Display a RRD
  *****************************************************************************
- * $Id: rrd_dump.c 1772 2009-04-07 06:03:49Z oetiker $
+ * $Id$
  * $Log$
  * Revision 1.7  2004/05/25 20:53:21  oetiker
  * prevent small leak when resources are exhausted -- Mike Slifcak
 #include <locale.h>
 #endif
 
-
 #if !(defined(NETWARE) || defined(WIN32))
 extern char *tzname[2];
 #endif
 
-static int rrd_dump_opt_r(
+//Local prototypes
+size_t rrd_dump_opt_cb_fileout(
+    const void *data,
+    size_t len,
+    void *user);
+
+int rrd_dump_opt_r(
     const char *filename,
     char *outname,
-    int opt_header)
+    int opt_noheader);
+
+int rrd_dump_cb_r(
+    const char *filename,
+    int opt_header,
+    rrd_output_callback_t cb,
+    void *user)
 {
     unsigned int i, ii, ix, iii = 0;
     time_t    now;
@@ -65,107 +76,130 @@ static int rrd_dump_opt_r(
     rrd_value_t my_cdp;
     off_t     rra_base, rra_start, rra_next;
     rrd_file_t *rrd_file;
-    FILE     *out_file;
     rrd_t     rrd;
     rrd_value_t value;
     struct tm tm;
     char *old_locale = "";
 
+//These two macros are local defines to clean up visible code from its redndancy
+//and make it easier to read.
+#define CB_PUTS(str)                                            \
+    cb((str), strlen((str)), user)
+#define CB_FMTS(...) do {                                       \
+    char buffer[256];                                           \
+    snprintf (buffer, sizeof(buffer), __VA_ARGS__);             \
+    CB_PUTS (buffer);                                           \
+    } while (0)
+//These macros are to be undefined at the end of this function
+
+    //Check if we got a (valid) callback method
+    if (!cb) {
+        return (-1);
+    }
+
     rrd_init(&rrd);
+
     rrd_file = rrd_open(filename, &rrd, RRD_READONLY | RRD_READAHEAD);
     if (rrd_file == NULL) {
         rrd_free(&rrd);
         return (-1);
     }
 
-    out_file = NULL;
-    if (outname) {
-        if (!(out_file = fopen(outname, "w"))) {
-            return (-1);
-        }
-    } else {
-        out_file = stdout;
-    }
 #ifdef HAVE_SETLOCALE
     old_locale = setlocale(LC_NUMERIC, "C");
 #endif
 
     if (opt_header == 1) {
-        fputs("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n", out_file);
-        fputs
-            ("<!DOCTYPE rrd SYSTEM \"http://oss.oetiker.ch/rrdtool/rrdtool.dtd\">\n",
-             out_file);
-       fputs("<!-- Round Robin Database Dump -->\n", out_file);
-       fputs("<rrd>\n", out_file);
+        CB_PUTS("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
+        CB_PUTS("<!DOCTYPE rrd SYSTEM \"http://oss.oetiker.ch/rrdtool/rrdtool.dtd\">\n");
+        CB_PUTS("<!-- Round Robin Database Dump -->\n");
+        CB_PUTS("<rrd>\n");
     } else if (opt_header == 2) {
-       fputs("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n", out_file);
-       fputs("<!-- Round Robin Database Dump -->\n", out_file);
-       fputs("<rrd xmlns=\"http://oss.oetiker.ch/rrdtool/rrdtool-dump.xml\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n", out_file);
-       fputs("\txsi:schemaLocation=\"http://oss.oetiker.ch/rrdtool/rrdtool-dump.xml http://oss.oetiker.ch/rrdtool/rrdtool-dump.xsd\">\n", out_file);
+        CB_PUTS("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
+        CB_PUTS("<!-- Round Robin Database Dump -->\n");
+        CB_PUTS("<rrd xmlns=\"http://oss.oetiker.ch/rrdtool/rrdtool-dump.xml\" "
+                "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n");
+        CB_PUTS("\txsi:schemaLocation=\"http://oss.oetiker.ch/rrdtool/rrdtool-dump.xml "
+                "http://oss.oetiker.ch/rrdtool/rrdtool-dump.xsd\">\n");
     } else {
-       fputs("<!-- Round Robin Database Dump -->\n", out_file);
-       fputs("<rrd>\n", out_file);
+        CB_PUTS("<!-- Round Robin Database Dump -->\n");
+        CB_PUTS("<rrd>\n");
     }
 
     if (atoi(rrd.stat_head->version) <= 3) {
-        fprintf(out_file, "\t<version>%s</version>\n", RRD_VERSION3);
+        CB_FMTS("\t<version>%s</version>\n", RRD_VERSION3);
     } else {
-        fprintf(out_file, "\t<version>%s</version>\n", RRD_VERSION);
+        CB_FMTS("\t<version>%s</version>\n", RRD_VERSION);
     }
-    fprintf(out_file, "\t<step>%lu</step> <!-- Seconds -->\n",
-            rrd.stat_head->pdp_step);
+    
+    CB_FMTS("\t<step>%lu</step> <!-- Seconds -->\n",
+        rrd.stat_head->pdp_step);
+
 #ifdef HAVE_STRFTIME
     localtime_r(&rrd.live_head->last_up, &tm);
-    strftime(somestring, 200, "%Y-%m-%d %H:%M:%S %Z", &tm);
+    strftime(somestring, 255, "%Y-%m-%d %H:%M:%S %Z", &tm);
 #else
 # error "Need strftime"
 #endif
-    fprintf(out_file, "\t<lastupdate>%lld</lastupdate> <!-- %s -->\n\n",
-            (long long) rrd.live_head->last_up, somestring);
+    CB_FMTS("\t<lastupdate>%lld</lastupdate> <!-- %s -->\n\n",
+        (long long) rrd.live_head->last_up, somestring);
     for (i = 0; i < rrd.stat_head->ds_cnt; i++) {
-        fprintf(out_file, "\t<ds>\n");
-        fprintf(out_file, "\t\t<name>%s</name>\n", rrd.ds_def[i].ds_nam);
-        fprintf(out_file, "\t\t<type>%s</type>\n", rrd.ds_def[i].dst);
+        CB_PUTS("\t<ds>\n");
+
+        CB_FMTS("\t\t<name> %s </name>\n", rrd.ds_def[i].ds_nam);
+
+        CB_FMTS("\t\t<type> %s </type>\n", rrd.ds_def[i].dst);
+
         if (dst_conv(rrd.ds_def[i].dst) != DST_CDEF) {
-            fprintf(out_file,
-                    "\t\t<minimal_heartbeat>%lu</minimal_heartbeat>\n",
+            CB_FMTS("\t\t<minimal_heartbeat>%lu</minimal_heartbeat>\n",
                     rrd.ds_def[i].par[DS_mrhb_cnt].u_cnt);
+
             if (isnan(rrd.ds_def[i].par[DS_min_val].u_val)) {
-                fprintf(out_file, "\t\t<min>NaN</min>\n");
+                CB_PUTS("\t\t<min>NaN</min>\n");
             } else {
-                fprintf(out_file, "\t\t<min>%0.10e</min>\n",
-                        rrd.ds_def[i].par[DS_min_val].u_val);
+                CB_FMTS("\t\t<min>%0.10e</min>\n",
+                    rrd.ds_def[i].par[DS_min_val].u_val);
             }
+            
             if (isnan(rrd.ds_def[i].par[DS_max_val].u_val)) {
-                fprintf(out_file, "\t\t<max>NaN</max>\n");
+                CB_PUTS("\t\t<max>NaN</max>\n");
             } else {
-                fprintf(out_file, "\t\t<max>%0.10e</max>\n",
-                        rrd.ds_def[i].par[DS_max_val].u_val);
+                CB_FMTS("\t\t<max>%0.10e</max>\n",
+                    rrd.ds_def[i].par[DS_max_val].u_val);
             }
         } else {        /* DST_CDEF */
             char     *str = NULL;
 
             rpn_compact2str((rpn_cdefds_t *) &(rrd.ds_def[i].par[DS_cdef]),
-                            rrd.ds_def, &str);
-            fprintf(out_file, "\t\t<cdef>%s</cdef>\n", str);
+                rrd.ds_def, &str);
+
+            //Splitting into 3 writes to avoid allocating memory
+            //This is better compared to snprintf as str may be of arbitrary size
+            CB_PUTS("\t\t<cdef> ");
+            CB_PUTS(str);
+            CB_PUTS(" </cdef>\n");
+
             free(str);
         }
-        fprintf(out_file, "\n\t\t<!-- PDP Status -->\n");
-        fprintf(out_file, "\t\t<last_ds>%s</last_ds>\n",
-                rrd.pdp_prep[i].last_ds);
+
+        CB_PUTS("\n\t\t<!-- PDP Status -->\n");
+        CB_FMTS("\t\t<last_ds>%s</last_ds>\n",
+            rrd.pdp_prep[i].last_ds);
+
         if (isnan(rrd.pdp_prep[i].scratch[PDP_val].u_val)) {
-            fprintf(out_file, "\t\t<value>NaN</value>\n");
+            CB_PUTS("\t\t<value>NaN</value>\n");
         } else {
-            fprintf(out_file, "\t\t<value>%0.10e</value>\n",
-                    rrd.pdp_prep[i].scratch[PDP_val].u_val);
+            CB_FMTS("\t\t<value>%0.10e</value>\n",
+                rrd.pdp_prep[i].scratch[PDP_val].u_val);
         }
-        fprintf(out_file, "\t\t<unknown_sec>%lu</unknown_sec>\n",
-                rrd.pdp_prep[i].scratch[PDP_unkn_sec_cnt].u_cnt);
 
-        fprintf(out_file, "\t</ds>\n\n");
+        CB_FMTS("\t\t<unknown_sec> %lu </unknown_sec>\n",
+            rrd.pdp_prep[i].scratch[PDP_unkn_sec_cnt].u_cnt);
+
+        CB_PUTS("\t</ds>\n\n");
     }
 
-    fputs("<!-- Round Robin Archives -->\n", out_file);
+    CB_PUTS("\t<!-- Round Robin Archives -->\n");
 
     rra_base = rrd_file->header_len;
     rra_next = rra_base;
@@ -177,202 +211,181 @@ static int rrd_dump_opt_r(
         rra_start = rra_next;
         rra_next += (rrd.stat_head->ds_cnt
                      * rrd.rra_def[i].row_cnt * sizeof(rrd_value_t));
-        fprintf(out_file, "\t<rra>\n");
-        fprintf(out_file, "\t\t<cf>%s</cf>\n", rrd.rra_def[i].cf_nam);
-        fprintf(out_file,
-                "\t\t<pdp_per_row>%lu</pdp_per_row> <!-- %lu seconds -->\n\n",
-                rrd.rra_def[i].pdp_cnt,
-                rrd.rra_def[i].pdp_cnt * rrd.stat_head->pdp_step);
+
+        CB_PUTS("\t<rra>\n");
+
+        CB_FMTS("\t\t<cf>%s</cf>\n", rrd.rra_def[i].cf_nam);
+
+        CB_FMTS("\t\t<pdp_per_row>%lu</pdp_per_row> <!-- %lu seconds -->\n\n",
+            rrd.rra_def[i].pdp_cnt, 
+            rrd.rra_def[i].pdp_cnt * rrd.stat_head->pdp_step);
+
         /* support for RRA parameters */
-        fprintf(out_file, "\t\t<params>\n");
+        CB_PUTS("\t\t<params>\n");
+
         switch (cf_conv(rrd.rra_def[i].cf_nam)) {
         case CF_HWPREDICT:
         case CF_MHWPREDICT:
-            fprintf(out_file, "\t\t<hw_alpha>%0.10e</hw_alpha>\n",
-                    rrd.rra_def[i].par[RRA_hw_alpha].u_val);
-            fprintf(out_file, "\t\t<hw_beta>%0.10e</hw_beta>\n",
-                    rrd.rra_def[i].par[RRA_hw_beta].u_val);
-            fprintf(out_file,
-                    "\t\t<dependent_rra_idx>%lu</dependent_rra_idx>\n",
-                    rrd.rra_def[i].par[RRA_dependent_rra_idx].u_cnt);
+            CB_FMTS("\t\t<hw_alpha>%0.10e</hw_alpha>\n",
+                rrd.rra_def[i].par[RRA_hw_alpha].u_val);
+
+            CB_FMTS("\t\t<hw_beta>%0.10e</hw_beta>\n",
+                rrd.rra_def[i].par[RRA_hw_beta].u_val);
+
+            CB_FMTS("\t\t<dependent_rra_idx>%lu</dependent_rra_idx>\n",
+                rrd.rra_def[i].par[RRA_dependent_rra_idx].u_cnt);
             break;
         case CF_SEASONAL:
         case CF_DEVSEASONAL:
-            fprintf(out_file,
-                    "\t\t<seasonal_gamma>%0.10e</seasonal_gamma>\n",
-                    rrd.rra_def[i].par[RRA_seasonal_gamma].u_val);
-            fprintf(out_file,
-                    "\t\t<seasonal_smooth_idx>%lu</seasonal_smooth_idx>\n",
-                    rrd.rra_def[i].par[RRA_seasonal_smooth_idx].u_cnt);
+            CB_FMTS("\t\t<seasonal_gamma>%0.10e</seasonal_gamma>\n",
+                rrd.rra_def[i].par[RRA_seasonal_gamma].u_val);
+
+            CB_FMTS("\t\t<seasonal_smooth_idx>%lu</seasonal_smooth_idx>\n",
+                rrd.rra_def[i].par[RRA_seasonal_smooth_idx].u_cnt);
+
             if (atoi(rrd.stat_head->version) >= 4) {
-                fprintf(out_file,
-                        "\t\t<smoothing_window>%0.10e</smoothing_window>\n",
-                        rrd.rra_def[i].par[RRA_seasonal_smoothing_window].
-                        u_val);
+                CB_FMTS("\t\t<smoothing_window>%0.10e</smoothing_window>\n",
+                    rrd.rra_def[i].par[RRA_seasonal_smoothing_window].u_val);
             }
-            fprintf(out_file,
-                    "\t\t<dependent_rra_idx>%lu</dependent_rra_idx>\n",
-                    rrd.rra_def[i].par[RRA_dependent_rra_idx].u_cnt);
+
+            CB_FMTS("\t\t<dependent_rra_idx>%lu</dependent_rra_idx>\n",
+                rrd.rra_def[i].par[RRA_dependent_rra_idx].u_cnt);
             break;
         case CF_FAILURES:
-            fprintf(out_file, "\t\t<delta_pos>%0.10e</delta_pos>\n",
-                    rrd.rra_def[i].par[RRA_delta_pos].u_val);
-            fprintf(out_file, "\t\t<delta_neg>%0.10e</delta_neg>\n",
-                    rrd.rra_def[i].par[RRA_delta_neg].u_val);
-            fprintf(out_file, "\t\t<window_len>%lu</window_len>\n",
-                    rrd.rra_def[i].par[RRA_window_len].u_cnt);
-            fprintf(out_file,
-                    "\t\t<failure_threshold>%lu</failure_threshold>\n",
-                    rrd.rra_def[i].par[RRA_failure_threshold].u_cnt);
+            CB_FMTS("\t\t<delta_pos>%0.10e</delta_pos>\n",
+                rrd.rra_def[i].par[RRA_delta_pos].u_val);
+
+            CB_FMTS("\t\t<delta_neg>%0.10e</delta_neg>\n",
+                rrd.rra_def[i].par[RRA_delta_neg].u_val);
+
+            CB_FMTS("\t\t<window_len>%lu</window_len>\n",
+                rrd.rra_def[i].par[RRA_window_len].u_cnt);
+
+            CB_FMTS("\t\t<failure_threshold>%lu</failure_threshold>\n",
+                rrd.rra_def[i].par[RRA_failure_threshold].u_cnt);
+
             /* fall thru */
         case CF_DEVPREDICT:
-            fprintf(out_file,
-                    "\t\t<dependent_rra_idx>%lu</dependent_rra_idx>\n",
-                    rrd.rra_def[i].par[RRA_dependent_rra_idx].u_cnt);
+            CB_FMTS("\t\t<dependent_rra_idx>%lu</dependent_rra_idx>\n",
+                rrd.rra_def[i].par[RRA_dependent_rra_idx].u_cnt);
             break;
         case CF_AVERAGE:
         case CF_MAXIMUM:
         case CF_MINIMUM:
         case CF_LAST:
         default:
-            fprintf(out_file, "\t\t<xff>%0.10e</xff>\n",
-                    rrd.rra_def[i].par[RRA_cdp_xff_val].u_val);
+            CB_FMTS("\t\t<xff>%0.10e</xff>\n",
+                rrd.rra_def[i].par[RRA_cdp_xff_val].u_val);
             break;
         }
-        fprintf(out_file, "\t\t</params>\n");
-        fprintf(out_file, "\t\t<cdp_prep>\n");
+
+        CB_PUTS("\t\t</params>\n");
+        CB_PUTS("\t\t<cdp_prep>\n");
+
         for (ii = 0; ii < rrd.stat_head->ds_cnt; ii++) {
             unsigned long ivalue;
 
-            fprintf(out_file, "\t\t\t<ds>\n");
+            CB_PUTS("\t\t\t<ds>\n");
             /* support for exporting all CDP parameters */
             /* parameters common to all CFs */
             /* primary_val and secondary_val do not need to be saved between updates
              * so strictly speaking they could be omitted.
              * However, they can be useful for diagnostic purposes, so are included here. */
-            value = rrd.cdp_prep[i * rrd.stat_head->ds_cnt
-                                 + ii].scratch[CDP_primary_val].u_val;
+            value = rrd.cdp_prep[i * rrd.stat_head->ds_cnt + ii].
+                scratch[CDP_primary_val].u_val;
             if (isnan(value)) {
-                fprintf(out_file,
-                        "\t\t\t<primary_value>NaN</primary_value>\n");
+                CB_PUTS("\t\t\t<primary_value>NaN</primary_value>\n");
             } else {
-                fprintf(out_file,
-                        "\t\t\t<primary_value>%0.10e</primary_value>\n",
-                        value);
+                CB_FMTS("\t\t\t<primary_value>%0.10e</primary_value>\n", value);
             }
-            value =
-                rrd.cdp_prep[i * rrd.stat_head->ds_cnt +
-                             ii].scratch[CDP_secondary_val].u_val;
+
+            value = rrd.cdp_prep[i * rrd.stat_head->ds_cnt + ii].
+                scratch[CDP_secondary_val].u_val;
             if (isnan(value)) {
-                fprintf(out_file,
-                        "\t\t\t<secondary_value>NaN</secondary_value>\n");
+                CB_PUTS("\t\t\t<secondary_value>NaN</secondary_value>\n");
             } else {
-                fprintf(out_file,
-                        "\t\t\t<secondary_value>%0.10e</secondary_value>\n",
-                        value);
+                CB_FMTS("\t\t\t<secondary_value>%0.10e</secondary_value>\n", value);
             }
+
             switch (cf_conv(rrd.rra_def[i].cf_nam)) {
             case CF_HWPREDICT:
             case CF_MHWPREDICT:
-                value =
-                    rrd.cdp_prep[i * rrd.stat_head->ds_cnt +
-                                 ii].scratch[CDP_hw_intercept].u_val;
+                value = rrd.cdp_prep[i * rrd.stat_head->ds_cnt + ii].
+                    scratch[CDP_hw_intercept].u_val;
                 if (isnan(value)) {
-                    fprintf(out_file, "\t\t\t<intercept>NaN</intercept>\n");
+                    CB_PUTS("\t\t\t<intercept>NaN</intercept>\n");
                 } else {
-                    fprintf(out_file,
-                            "\t\t\t<intercept>%0.10e</intercept>\n", value);
+                    CB_FMTS("\t\t\t<intercept>%0.10e</intercept>\n", value);
                 }
-                value =
-                    rrd.cdp_prep[i * rrd.stat_head->ds_cnt +
-                                 ii].scratch[CDP_hw_last_intercept].u_val;
+
+                value = rrd.cdp_prep[i * rrd.stat_head->ds_cnt + ii].
+                    scratch[CDP_hw_last_intercept].u_val;
                 if (isnan(value)) {
-                    fprintf(out_file,
-                            "\t\t\t<last_intercept>NaN</last_intercept>\n");
+                    CB_PUTS("\t\t\t<last_intercept>NaN</last_intercept>\n");
                 } else {
-                    fprintf(out_file,
-                            "\t\t\t<last_intercept>%0.10e</last_intercept>\n",
-                            value);
+                    CB_FMTS("\t\t\t<last_intercept>%0.10e</last_intercept>\n", value);
                 }
-                value =
-                    rrd.cdp_prep[i * rrd.stat_head->ds_cnt +
-                                 ii].scratch[CDP_hw_slope].u_val;
+
+                value = rrd.cdp_prep[i * rrd.stat_head->ds_cnt + ii].
+                    scratch[CDP_hw_slope].u_val;
                 if (isnan(value)) {
-                    fprintf(out_file, "\t\t\t<slope>NaN</slope>\n");
+                    CB_PUTS("\t\t\t<slope>NaN</slope>\n");
                 } else {
-                    fprintf(out_file, "\t\t\t<slope>%0.10e</slope>\n",
-                            value);
+                    CB_FMTS("\t\t\t<slope>%0.10e</slope>\n", value);
                 }
-                value =
-                    rrd.cdp_prep[i * rrd.stat_head->ds_cnt +
-                                 ii].scratch[CDP_hw_last_slope].u_val;
+
+                value = rrd.cdp_prep[i * rrd.stat_head->ds_cnt + ii].
+                    scratch[CDP_hw_last_slope].u_val;
                 if (isnan(value)) {
-                    fprintf(out_file,
-                            "\t\t\t<last_slope>NaN</last_slope>\n");
+                    CB_PUTS("\t\t\t<last_slope>NaN</last_slope>\n");
                 } else {
-                    fprintf(out_file,
-                            "\t\t\t<last_slope>%0.10e</last_slope>\n",
-                            value);
+                    CB_FMTS("\t\t\t<last_slope>%0.10e</last_slope>\n", value);
                 }
-                ivalue =
-                    rrd.cdp_prep[i * rrd.stat_head->ds_cnt +
-                                 ii].scratch[CDP_null_count].u_cnt;
-                fprintf(out_file, "\t\t\t<nan_count>%lu</nan_count>\n",
-                        ivalue);
-                ivalue =
-                    rrd.cdp_prep[i * rrd.stat_head->ds_cnt +
-                                 ii].scratch[CDP_last_null_count].u_cnt;
-                fprintf(out_file,
-                        "\t\t\t<last_nan_count>%lu</last_nan_count>\n",
-                        ivalue);
+
+                ivalue = rrd.cdp_prep[i * rrd.stat_head->ds_cnt + ii].
+                    scratch[CDP_null_count].u_cnt;
+                CB_FMTS("\t\t\t<nan_count>%lu</nan_count>\n", ivalue);
+
+                ivalue = rrd.cdp_prep[i * rrd.stat_head->ds_cnt + ii].
+                    scratch[CDP_last_null_count].u_cnt;
+                CB_FMTS("\t\t\t<last_nan_count>%lu</last_nan_count>\n", ivalue);
                 break;
             case CF_SEASONAL:
             case CF_DEVSEASONAL:
-                value =
-                    rrd.cdp_prep[i * rrd.stat_head->ds_cnt +
-                                 ii].scratch[CDP_hw_seasonal].u_val;
+                value = rrd.cdp_prep[i * rrd.stat_head->ds_cnt + ii].
+                    scratch[CDP_hw_seasonal].u_val;
                 if (isnan(value)) {
-                    fprintf(out_file, "\t\t\t<seasonal>NaN</seasonal>\n");
+                    CB_PUTS("\t\t\t<seasonal>NaN</seasonal>\n");
                 } else {
-                    fprintf(out_file, "\t\t\t<seasonal>%0.10e</seasonal>\n",
-                            value);
+                    CB_FMTS("\t\t\t<seasonal>%0.10e</seasonal>\n", value);
                 }
-                value =
-                    rrd.cdp_prep[i * rrd.stat_head->ds_cnt +
-                                 ii].scratch[CDP_hw_last_seasonal].u_val;
+
+                value = rrd.cdp_prep[i * rrd.stat_head->ds_cnt + ii].
+                    scratch[CDP_hw_last_seasonal].u_val;
                 if (isnan(value)) {
-                    fprintf(out_file,
-                            "\t\t\t<last_seasonal>NaN</last_seasonal>\n");
+                    CB_PUTS("\t\t\t<last_seasonal>NaN</last_seasonal>\n");
                 } else {
-                    fprintf(out_file,
-                            "\t\t\t<last_seasonal>%0.10e</last_seasonal>\n",
-                            value);
+                    CB_FMTS("\t\t\t<last_seasonal>%0.10e</last_seasonal>\n", value);
                 }
-                ivalue =
-                    rrd.cdp_prep[i * rrd.stat_head->ds_cnt +
-                                 ii].scratch[CDP_init_seasonal].u_cnt;
-                fprintf(out_file, "\t\t\t<init_flag>%lu</init_flag>\n",
-                        ivalue);
+
+                ivalue = rrd.cdp_prep[i * rrd.stat_head->ds_cnt + ii].
+                    scratch[CDP_init_seasonal].u_cnt;
+                CB_FMTS("\t\t\t<init_flag>%lu</init_flag>\n", ivalue);
                 break;
             case CF_DEVPREDICT:
                 break;
             case CF_FAILURES:
             {
                 unsigned short vidx;
-                char     *violations_array = (char *) ((void *)
-                                                       rrd.cdp_prep[i *
-                                                                    rrd.
-                                                                    stat_head->
-                                                                    ds_cnt +
-                                                                    ii].
-                                                       scratch);
-                fprintf(out_file, "\t\t\t<history> ");
+                char *violations_array = (char *) ((void *)
+                    rrd.cdp_prep[i * rrd.stat_head->ds_cnt + ii].scratch);
+                CB_PUTS("\t\t\t<history>");
                 for (vidx = 0;
-                     vidx < rrd.rra_def[i].par[RRA_window_len].u_cnt;
-                     ++vidx) {
-                    fprintf(out_file, "%d", violations_array[vidx]);
+                    vidx < rrd.rra_def[i].par[RRA_window_len].u_cnt;
+                    ++vidx) {
+                    CB_FMTS("%d", violations_array[vidx]);
                 }
-                fprintf(out_file, " </history>\n");
+                CB_PUTS("</history>\n");
             }
                 break;
             case CF_AVERAGE:
@@ -380,26 +393,23 @@ static int rrd_dump_opt_r(
             case CF_MINIMUM:
             case CF_LAST:
             default:
-                value =
-                    rrd.cdp_prep[i * rrd.stat_head->ds_cnt +
-                                 ii].scratch[CDP_val].u_val;
+                value = rrd.cdp_prep[i * rrd.stat_head->ds_cnt + ii].scratch[CDP_val].u_val;
                 if (isnan(value)) {
-                    fprintf(out_file, "\t\t\t<value>NaN</value>\n");
+                    CB_PUTS("\t\t\t<value>NaN</value>\n");
                 } else {
-                    fprintf(out_file, "\t\t\t<value>%0.10e</value>\n",
-                            value);
+                    CB_FMTS("\t\t\t<value>%0.10e</value>\n", value);
                 }
-                fprintf(out_file,
-                        "\t\t\t<unknown_datapoints>%lu</unknown_datapoints>\n",
-                        rrd.cdp_prep[i * rrd.stat_head->ds_cnt +
-                                     ii].scratch[CDP_unkn_pdp_cnt].u_cnt);
+
+                CB_FMTS("\t\t\t<unknown_datapoints>%lu</unknown_datapoints>\n",
+                    rrd.cdp_prep[i * rrd.stat_head->ds_cnt + ii].
+                        scratch[CDP_unkn_pdp_cnt].u_cnt);
                 break;
             }
-            fprintf(out_file, "\t\t\t</ds>\n");
+            CB_PUTS("\t\t\t</ds>\n");
         }
-        fprintf(out_file, "\t\t</cdp_prep>\n");
+        CB_PUTS("\t\t</cdp_prep>\n");
 
-        fprintf(out_file, "\t\t<database>\n");
+        CB_PUTS("\t\t<database>\n");
         rrd_seek(rrd_file, (rra_start + (rrd.rra_ptr[i].cur_row + 1)
                             * rrd.stat_head->ds_cnt
                             * sizeof(rrd_value_t)), SEEK_SET);
@@ -419,34 +429,74 @@ static int rrd_dump_opt_r(
             timer++;
 #if HAVE_STRFTIME
             localtime_r(&now, &tm);
-            strftime(somestring, 200, "%Y-%m-%d %H:%M:%S %Z", &tm);
+            strftime(somestring, 255, "%Y-%m-%d %H:%M:%S %Z", &tm);
 #else
 # error "Need strftime"
 #endif
-            fprintf(out_file, "\t\t\t<!-- %s / %lld --> <row>", somestring,
-                    (long long) now);
+            CB_FMTS("\t\t\t<!-- %s / %lld --> <row>",  somestring, (long long) now);
             for (iii = 0; iii < rrd.stat_head->ds_cnt; iii++) {
                 rrd_read(rrd_file, &my_cdp, sizeof(rrd_value_t) * 1);
                 if (isnan(my_cdp)) {
-                    fprintf(out_file, "<v>NaN</v>");
+                    CB_PUTS("<v>NaN</v>");
                 } else {
-                    fprintf(out_file, "<v>%0.10e</v>", my_cdp);
-                };
+                    CB_FMTS("<v>%0.10e</v>", my_cdp);
+                }
             }
-            fprintf(out_file, "</row>\n");
+            CB_PUTS("</row>\n");
         }
-        fprintf(out_file, "\t\t</database>\n\t</rra>\n");
-
+        CB_PUTS("\t\t</database>\n\t</rra>\n");
     }
-    fprintf(out_file, "</rrd>\n");
+
+    CB_PUTS("</rrd>\n");
+
     rrd_free(&rrd);
-    if (out_file != stdout) {
-        fclose(out_file);
-    }
+
 #ifdef HAVE_SETLOCALE
     setlocale(LC_NUMERIC, old_locale);
 #endif
+
     return rrd_close(rrd_file);
+
+//Undefining the previously defined shortcuts
+//See start of this function
+#undef CB_PUTS
+#undef CB_FMTS
+//End of macro undefining
+
+}
+
+size_t rrd_dump_opt_cb_fileout(
+    const void *data,
+    size_t len,
+    void *user)
+{
+    return fwrite(data, 1, len, (FILE *)user);
+}
+
+int rrd_dump_opt_r(
+    const char *filename,
+    char *outname,
+    int opt_noheader)
+{
+    FILE     *out_file;
+    int       res;
+
+    out_file = NULL;
+    if (outname) {
+        if (!(out_file = fopen(outname, "w"))) {
+            return (-1);
+        }
+    } else {
+        out_file = stdout;
+    }
+
+    res = rrd_dump_cb_r(filename, opt_noheader, rrd_dump_opt_cb_fileout, (void *)out_file);
+
+    if (out_file != stdout) {
+        fclose(out_file);
+    }
+
+    return res;
 }
 
 /* backward compatibility with 1.2.x */
index 7ced9a92b7adc0618704f47c1c7f663e1c965e14..d816c22fcc8b22c69be019c1e7682142f08474b5 100644 (file)
@@ -3,7 +3,7 @@
  *****************************************************************************
  * rrd_error.c   Common Header File
  *****************************************************************************
- * $Id: rrd_error.c 1677 2008-11-18 17:19:17Z oetiker $
+ * $Id$
  * $Log$
  * Revision 1.4  2003/02/22 21:57:03  oetiker
  * a patch to avoid a memory leak and a Makefile.am patch to
index ac426e8fdf83a1ad5161379b703748bfece54915..2c30a980735dd40f24b6fb575672ea6e8c1ef865 100644 (file)
@@ -3,7 +3,7 @@
  *****************************************************************************
  * rrd_fetch.c  read date from an rrd to use for further processing
  *****************************************************************************
- * $Id: rrd_fetch.c 1849 2009-06-07 14:12:28Z oetiker $
+ * $Id$
  * $Log$
  * Revision 1.8  2004/05/18 18:53:03  oetiker
  * big spell checking patch -- slif@bellsouth.net
index 912373faf6e4a7f1bb2356ab55ec3b7a0ce2513e..b7e3eff8b339bb242b795a647595050abf18ec73 100644 (file)
@@ -3,7 +3,7 @@
  *****************************************************************************
  * rrd_format.c  RRD Database Format helper functions
  *****************************************************************************
- * $Id: rrd_format.c 1795 2009-04-20 06:46:47Z oetiker $
+ * $Id$
  * $Log$
  * Revision 1.5  2004/05/18 18:53:03  oetiker
  * big spell checking patch -- slif@bellsouth.net
index 594c9f6df525375f6dda0d5deea4d780c21172c2..2df1835d1b4764e25b4d2bbd0f7d25a0c6bfa184 100644 (file)
@@ -7,19 +7,19 @@
 
 #include <sys/stat.h>
 
-/* for basename */
-#ifdef HAVE_LIBGEN_H
-#  include <libgen.h>
-#eles
-#include "plbasename.h"
-#endif
-
 #ifdef WIN32
 #include "strftime.h"
 #endif
 
 #include "rrd_tool.h"
 
+/* for basename */
+#ifdef HAVE_LIBGEN_H
+#  include <libgen.h>
+#else
+#include "plbasename.h"
+#endif
+
 #if defined(WIN32) && !defined(__CYGWIN__) && !defined(__CYGWIN32__)
 #include <io.h>
 #include <fcntl.h>
@@ -56,7 +56,7 @@ text_prop_t text_prop[] = {
     ,                   /* unit */
     {8.0, RRD_DEFAULT_FONT,NULL} /* legend */
     ,
-    {5.5, RRD_DEFAULT_FONT,NULL} /* watermark */    
+    {5.5, RRD_DEFAULT_FONT,NULL} /* watermark */
 };
 
 xlab_t    xlab[] = {
@@ -357,7 +357,7 @@ int im_free(
     if (status)
         fprintf(stderr, "OOPS: Cairo has issues it can't even die: %s\n",
                 cairo_status_to_string(status));
-        
+
     return 0;
 }
 
@@ -581,8 +581,8 @@ void apply_gridfit(
             ytr(im, DNAN);  /* reset precalc */
             log10_range = log10(im->maxval) - log10(im->minval);
         }
-        /* make sure first y=10^x gridline is located on 
-           integer pixel position by moving scale slightly 
+        /* make sure first y=10^x gridline is located on
+           integer pixel position by moving scale slightly
            downwards (sub-pixel movement) */
         ypix = ytr(im, ya) + im->ysize; /* add im->ysize so it always is positive */
         ypixfrac = ypix - floor(ypix);
@@ -802,7 +802,7 @@ void reduce_data(
 }
 
 
-/* get the data required for the graphs from the 
+/* get the data required for the graphs from the
    relevant rrds ... */
 
 int data_fetch(
@@ -919,7 +919,7 @@ int data_fetch(
 /* evaluate the expressions in the CDEF functions */
 
 /*************************************************************
- * CDEF stuff 
+ * CDEF stuff
  *************************************************************/
 
 long find_var_wrapper(
@@ -1207,7 +1207,7 @@ int data_proc(
 {
     long      i, ii;
     double    pixstep = (double) (im->end - im->start)
-        / (double) im->xsize;   /* how much time 
+        / (double) im->xsize;   /* how much time
                                    passes in one pixel */
     double    paintval;
     double    minval = DNAN, maxval = DNAN;
@@ -1305,7 +1305,7 @@ int data_proc(
             minval = 0.0;   /* catching this right away below */
             maxval = 5.1;
         }
-        /* in logarithm mode, where minval is smaller or equal 
+        /* in logarithm mode, where minval is smaller or equal
            to 0 make the beast just way smaller than maxval */
         if (minval <= 0) {
             minval = maxval / 10e8;
@@ -1685,7 +1685,7 @@ int leg_place(
     }
 
 
-    if (!(im->extra_flags & NOLEGEND) & !(im->extra_flags & ONLY_GRAPH)) {
+    if (!(im->extra_flags & NOLEGEND) && !(im->extra_flags & ONLY_GRAPH)) {
         if ((legspace = (int*)malloc(im->gdes_c * sizeof(int))) == NULL) {
             rrd_set_error("malloc for legspace");
             return -1;
@@ -1987,7 +1987,7 @@ int draw_horizontal_grid(
     double    MaxY;
     double second_axis_magfact = 0;
     char *second_axis_symb = "";
-    
+
     scaledstep =
         im->ygrid_scale.gridstep /
         (double) im->magfact * (double) im->viewfactor;
@@ -2047,8 +2047,8 @@ int draw_horizontal_grid(
                                 auto_scale(im,&dummy,&second_axis_symb,&second_axis_magfact);
                             }
                             sval /= second_axis_magfact;
-                            if(MaxY < 10) { 
+
+                            if(MaxY < 10) {
                                 sprintf(graph_label_right,"%5.1f %s",sval,second_axis_symb);
                             } else {
                                 sprintf(graph_label_right,"%5.0f %s",sval,second_axis_symb);
@@ -2056,7 +2056,7 @@ int draw_horizontal_grid(
                         }
                         else {
                            sprintf(graph_label_right,im->second_axis_format,sval);
-                        }        
+                        }
                         gfx_text ( im,
                                X1+7, Y0,
                                im->graph_col[GRC_FONT],
@@ -2064,7 +2064,7 @@ int draw_horizontal_grid(
                                im->tabwidth,0.0, GFX_H_LEFT, GFX_V_CENTER,
                                graph_label_right );
                 }
+
                 gfx_text(im,
                          X0 -
                          im->
@@ -2242,7 +2242,7 @@ int horizontal_log_grid(
             else
                 symbol = '?';
             sprintf(graph_label, "%3.0f %c", pvalue, symbol);
-        } else {            
+        } else {
             sprintf(graph_label, "%3.0e", value);
         }
         if (im->second_axis_scale != 0){
@@ -2255,14 +2255,14 @@ int horizontal_log_grid(
                                 auto_scale(im,&sval,&symb,&mfac);
                                 sprintf(graph_label_right,"%4.0f %s", sval,symb);
                         }
-                        else {        
+                        else {
                                 sprintf(graph_label_right,"%3.0e", sval);
                         }
                 }
                 else {
                       sprintf(graph_label_right,im->second_axis_format,sval);
-                }    
-    
+                }
+
                 gfx_text ( im,
                                X1+7, Y0,
                                im->graph_col[GRC_FONT],
@@ -2270,7 +2270,7 @@ int horizontal_log_grid(
                                im->tabwidth,0.0, GFX_H_LEFT, GFX_V_CENTER,
                                graph_label_right );
         }
-      
+
         gfx_text(im,
                  X0 -
                  im->
@@ -2588,7 +2588,7 @@ void axis_paint(
        gfx_line ( im, im->xorigin+im->xsize,im->yorigin+4,
                          im->xorigin+im->xsize,im->yorigin-im->ysize-4,
                          MGRIDWIDTH, im->graph_col[GRC_AXIS]);
-       gfx_new_area ( im, 
+       gfx_new_area ( im,
                    im->xorigin+im->xsize-2,  im->yorigin-im->ysize-2,
                    im->xorigin+im->xsize+3,  im->yorigin-im->ysize-2,
                    im->xorigin+im->xsize,    im->yorigin-im->ysize-7, /* LINEOFFSET */
@@ -2606,20 +2606,23 @@ void grid_paint(
     double    X0, Y0;   /* points for filled graph and more */
     struct gfx_color_t water_color;
 
-    /* draw 3d border */
-    gfx_new_area(im, 0, im->yimg,
-                 2, im->yimg - 2, 2, 2, im->graph_col[GRC_SHADEA]);
-    gfx_add_point(im, im->ximg - 2, 2);
-    gfx_add_point(im, im->ximg, 0);
-    gfx_add_point(im, 0, 0);
-    gfx_close_path(im);
-    gfx_new_area(im, 2, im->yimg - 2,
-                 im->ximg - 2,
-                 im->yimg - 2, im->ximg - 2, 2, im->graph_col[GRC_SHADEB]);
-    gfx_add_point(im, im->ximg, 0);
-    gfx_add_point(im, im->ximg, im->yimg);
-    gfx_add_point(im, 0, im->yimg);
-    gfx_close_path(im);
+    if (im->draw_3d_border > 0) {
+           /* draw 3d border */
+           i = im->draw_3d_border;
+           gfx_new_area(im, 0, im->yimg,
+                        i, im->yimg - i, i, i, im->graph_col[GRC_SHADEA]);
+           gfx_add_point(im, im->ximg - i, i);
+           gfx_add_point(im, im->ximg, 0);
+           gfx_add_point(im, 0, 0);
+           gfx_close_path(im);
+           gfx_new_area(im, i, im->yimg - i,
+                        im->ximg - i,
+                        im->yimg - i, im->ximg - i, i, im->graph_col[GRC_SHADEB]);
+           gfx_add_point(im, im->ximg, 0);
+           gfx_add_point(im, im->ximg, im->yimg);
+           gfx_add_point(im, 0, im->yimg);
+           gfx_close_path(im);
+    }
     if (im->draw_x_grid == 1)
         vertical_grid(im);
     if (im->draw_y_grid == 1) {
@@ -2660,16 +2663,16 @@ void grid_paint(
     }
     if (im->second_axis_legend[0] != '\0'){
             gfx_text( im,
-                  im->xOriginLegendY2+10, 
+                  im->xOriginLegendY2+10,
                   im->yOriginLegendY2,
                   im->graph_col[GRC_FONT],
                   im->text_prop[TEXT_PROP_UNIT].font_desc,
-                  im->tabwidth, 
+                  im->tabwidth,
                   RRDGRAPH_YLEGEND_ANGLE,
                   GFX_H_CENTER, GFX_V_CENTER,
                   im->second_axis_legend);
-    }        
+    }
+
     /* graph title */
     gfx_text(im,
              im->xOriginTitle, im->yOriginTitle+6,
@@ -2689,7 +2692,7 @@ void grid_paint(
                  text_prop[TEXT_PROP_WATERMARK].
                  font_desc, im->tabwidth,
                  -90, GFX_H_LEFT, GFX_V_TOP, "RRDTOOL / TOBI OETIKER");
-    }    
+    }
     /* graph watermark */
     if (im->watermark[0] != '\0') {
         water_color = im->graph_col[GRC_FONT];
@@ -2704,7 +2707,7 @@ void grid_paint(
     }
 
     /* graph labels */
-    if (!(im->extra_flags & NOLEGEND) & !(im->extra_flags & ONLY_GRAPH)) {
+    if (!(im->extra_flags & NOLEGEND) && !(im->extra_flags & ONLY_GRAPH)) {
         for (i = 0; i < im->gdes_c; i++) {
             if (im->gdes[i].legend[0] == '\0')
                 continue;
@@ -2734,41 +2737,62 @@ void grid_paint(
                 boxV = boxH;
                 /* shift the box up a bit */
                 Y0 -= boxV * 0.4;
-                /* make sure transparent colors show up the same way as in the graph */
-                gfx_new_area(im,
-                             X0, Y0 - boxV,
-                             X0, Y0, X0 + boxH, Y0, im->graph_col[GRC_BACK]);
-                gfx_add_point(im, X0 + boxH, Y0 - boxV);
-                gfx_close_path(im);
-                gfx_new_area(im, X0, Y0 - boxV, X0,
-                             Y0, X0 + boxH, Y0, im->gdes[i].col);
-                gfx_add_point(im, X0 + boxH, Y0 - boxV);
-                gfx_close_path(im);
-                cairo_save(im->cr);
-                cairo_new_path(im->cr);
-                cairo_set_line_width(im->cr, 1.0);
-                X1 = X0 + boxH;
-                Y1 = Y0 - boxV;
-                gfx_line_fit(im, &X0, &Y0);
-                gfx_line_fit(im, &X1, &Y1);
-                cairo_move_to(im->cr, X0, Y0);
-                cairo_line_to(im->cr, X1, Y0);
-                cairo_line_to(im->cr, X1, Y1);
-                cairo_line_to(im->cr, X0, Y1);
-                cairo_close_path(im->cr);
-                cairo_set_source_rgba(im->cr,
-                                      im->
-                                      graph_col
-                                      [GRC_FRAME].
-                                      red,
-                                      im->
-                                      graph_col
-                                      [GRC_FRAME].
-                                      green,
-                                      im->
-                                      graph_col
-                                      [GRC_FRAME].
-                                      blue, im->graph_col[GRC_FRAME].alpha);
+               if (im->gdes[i].gf == GF_HRULE) { /* [-] */ 
+                       cairo_save(im->cr);
+                       cairo_new_path(im->cr);
+                       cairo_set_line_width(im->cr, 1.0);
+                       gfx_line(im,
+                               X0, Y0 - boxV / 2,
+                               X0 + boxH, Y0 - boxV / 2,
+                               1.0, im->gdes[i].col);
+                       gfx_close_path(im);
+               } else if (im->gdes[i].gf == GF_VRULE) { /* [|] */
+                       cairo_save(im->cr);
+                       cairo_new_path(im->cr);
+                       cairo_set_line_width(im->cr, 1.0);
+                       gfx_line(im,
+                               X0 + boxH / 2, Y0,
+                               X0 + boxH / 2, Y0 - boxV,
+                               1.0, im->gdes[i].col);
+                       gfx_close_path(im);
+               } else if (im->gdes[i].gf == GF_LINE) { /* [/] */
+                       cairo_save(im->cr);
+                       cairo_new_path(im->cr);
+                       cairo_set_line_width(im->cr, im->gdes[i].linewidth);
+                       gfx_line(im,
+                               X0, Y0,
+                               X0 + boxH, Y0 - boxV,
+                               im->gdes[i].linewidth, im->gdes[i].col);
+                       gfx_close_path(im);
+               } else {
+               /* make sure transparent colors show up the same way as in the graph */
+                       gfx_new_area(im,
+                                    X0, Y0 - boxV,
+                                    X0, Y0, X0 + boxH, Y0, im->graph_col[GRC_BACK]);
+                       gfx_add_point(im, X0 + boxH, Y0 - boxV);
+                       gfx_close_path(im);
+                       gfx_new_area(im, X0, Y0 - boxV, X0,
+                                    Y0, X0 + boxH, Y0, im->gdes[i].col);
+                       gfx_add_point(im, X0 + boxH, Y0 - boxV);
+                       gfx_close_path(im);
+                       cairo_save(im->cr);
+                       cairo_new_path(im->cr);
+                       cairo_set_line_width(im->cr, 1.0);
+                       X1 = X0 + boxH;
+                       Y1 = Y0 - boxV;
+                       gfx_line_fit(im, &X0, &Y0);
+                       gfx_line_fit(im, &X1, &Y1);
+                       cairo_move_to(im->cr, X0, Y0);
+                       cairo_line_to(im->cr, X1, Y0);
+                       cairo_line_to(im->cr, X1, Y1);
+                       cairo_line_to(im->cr, X0, Y1);
+                       cairo_close_path(im->cr);
+                       cairo_set_source_rgba(im->cr,
+                                             im->graph_col[GRC_FRAME].red,
+                                             im->graph_col[GRC_FRAME].green,
+                                             im->graph_col[GRC_FRAME].blue,
+                                             im->graph_col[GRC_FRAME].alpha);
+               }
                 if (im->gdes[i].dash) {
                     /* make box borders in legend dashed if the graph is dashed */
                     double    dashes[] = {
@@ -2827,9 +2851,9 @@ int graph_size_location(
     /* The actual size of the image to draw is determined from
      ** several sources.  The size given on the command line is
      ** the graph area but we need more as we have to draw labels
-     ** and other things outside the graph area. If the option 
-     ** --full-size-mode is selected the size defines the total 
-     ** image size and the size available for the graph is 
+     ** and other things outside the graph area. If the option
+     ** --full-size-mode is selected the size defines the total
+     ** image size and the size available for the graph is
      ** calculated.
      */
 
@@ -2838,7 +2862,7 @@ int graph_size_location(
      ** |   +---+-------------------------------+
      ** | a | y |                               |
      ** | x |   |                               |
-     ** | i | a |                               |    
+     ** | i | a |                               |
      ** | s | x |       main graph area         |
      ** |   | i |                               |
      ** | t | s |                               |
@@ -2915,8 +2939,8 @@ int graph_size_location(
     Xylabel += Xspacing;
 
     /* If the legend is printed besides the graph the width has to be
-     ** calculated first. Placing the legend north or south of the 
-     ** graph requires the width calculation first, so the legend is 
+     ** calculated first. Placing the legend north or south of the
+     ** graph requires the width calculation first, so the legend is
      ** skipped for the moment.
      */
     im->legendheight = 0;
@@ -2982,7 +3006,7 @@ int graph_size_location(
         else{
             Ymain -= Yxlabel;
         }
-        
+
         /* reserve space for the title *or* some padding above the graph */
         Ymain -= Ytitle;
 
@@ -3034,12 +3058,12 @@ int graph_size_location(
                 }
             }
         }
-      
+
         im->yimg = Ymain + Yxlabel;
         if( (im->legendposition == NORTH || im->legendposition == SOUTH)  && !(im->extra_flags & NOLEGEND) ){
              im->yimg += im->legendheight;
         }
-        
+
         /* reserve space for the title *or* some padding above the graph */
         if (Ytitle) {
             im->yimg += Ytitle;
@@ -3057,9 +3081,9 @@ int graph_size_location(
     }
 
 
-    /* In case of putting the legend in west or east position the first 
-     ** legend calculation might lead to wrong positions if some items 
-     ** are not aligned on the left hand side (e.g. centered) as the 
+    /* In case of putting the legend in west or east position the first
+     ** legend calculation might lead to wrong positions if some items
+     ** are not aligned on the left hand side (e.g. centered) as the
      ** legendwidth wight have been increased after the item was placed.
      ** In this case the positions have to be recalculated.
      */
@@ -3072,7 +3096,7 @@ int graph_size_location(
     }
 
     /* After calculating all dimensions
-     ** it is now possible to calculate 
+     ** it is now possible to calculate
      ** all offsets.
      */
     switch(im->legendposition){
@@ -3213,8 +3237,8 @@ int graph_paint(
         return -1;
     /* calculate and PRINT and GPRINT definitions. We have to do it at
      * this point because it will affect the length of the legends
-     * if there are no graph elements (i==0) we stop here ... 
-     * if we are lazy, try to quit ... 
+     * if there are no graph elements (i==0) we stop here ...
+     * if we are lazy, try to quit ...
      */
     i = print_calc(im);
     if (i < 0)
@@ -3395,13 +3419,13 @@ int graph_paint(
             }           /* for */
 
             /* *******************************************************
-               a           ___. (a,t) 
+               a           ___. (a,t)
                |   |    ___
                ____|   |   |   |
                |       |___|
-               -------|--t-1--t--------------------------------      
+               -------|--t-1--t--------------------------------
 
-               if we know the value at time t was a then 
+               if we know the value at time t was a then
                we draw a square from t-1 to t with the value a.
 
                ********************************************************* */
@@ -3708,7 +3732,7 @@ int graph_paint(
 
 
 /*****************************************************
- * graph stuff 
+ * graph stuff
  *****************************************************/
 
 int gdes_alloc(
@@ -3875,7 +3899,7 @@ rrd_info_t *rrd_graph_v(
     rrd_info_t *grinfo;
     rrd_graph_init(&im);
     /* a dummy surface so that we can measure text sizes for placements */
-    
+
     rrd_graph_options(argc, argv, &im);
     if (rrd_test_error()) {
         rrd_info_free(im.grinfo);
@@ -3952,15 +3976,15 @@ rrd_info_t *rrd_graph_v(
     return grinfo;
 }
 
-static void 
+static void
 rrd_set_font_desc (
     image_desc_t *im,int prop,char *font, double size ){
     if (font){
-        strncpy(im->text_prop[prop].font, font, sizeof(text_prop[prop].font) - 1);        
-        im->text_prop[prop].font[sizeof(text_prop[prop].font) - 1] = '\0';   
-        im->text_prop[prop].font_desc = pango_font_description_from_string( font );        
+        strncpy(im->text_prop[prop].font, font, sizeof(text_prop[prop].font) - 1);
+        im->text_prop[prop].font[sizeof(text_prop[prop].font) - 1] = '\0';
+        im->text_prop[prop].font_desc = pango_font_description_from_string( font );
     };
-    if (size > 0){  
+    if (size > 0){
         im->text_prop[prop].size = size;
     };
     if (im->text_prop[prop].font_desc && im->text_prop[prop].size ){
@@ -3990,6 +4014,7 @@ void rrd_graph_init(
     im->daemon_addr = NULL;
     im->draw_x_grid = 1;
     im->draw_y_grid = 1;
+    im->draw_3d_border = 2;
     im->extra_flags = 0;
     im->font_options = cairo_font_options_create();
     im->forceleftspace = 0;
@@ -4040,7 +4065,7 @@ void rrd_graph_init(
     im->second_axis_scale = 0; /* 0 disables it */
     im->second_axis_shift = 0; /* no shift by default */
     im->second_axis_legend[0] = '\0';
-    im->second_axis_format[0] = '\0'; 
+    im->second_axis_format[0] = '\0';
     im->yorigin = 0;
     im->yOriginLegend = 0;
     im->yOriginLegendY = 0;
@@ -4049,7 +4074,7 @@ void rrd_graph_init(
     im->ysize = 100;
     im->zoom = 1;
 
-    im->surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 10, 10);     
+    im->surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 10, 10);
     im->cr = cairo_create(im->surface);
 
     for (i = 0; i < DIM(text_prop); i++) {
@@ -4108,55 +4133,56 @@ void rrd_graph_options(
 
 /* *INDENT-OFF* */
     struct option long_options[] = {
-        { "start",              required_argument, 0, 's'}, 
-        { "end",                required_argument, 0, 'e'},
-        { "x-grid",             required_argument, 0, 'x'},
-        { "y-grid",             required_argument, 0, 'y'},
-        { "vertical-label",     required_argument, 0, 'v'},
-        { "width",              required_argument, 0, 'w'},
-        { "height",             required_argument, 0, 'h'},
-        { "full-size-mode",     no_argument,       0, 'D'},
-        { "interlaced",         no_argument,       0, 'i'},
-        { "upper-limit",        required_argument, 0, 'u'},
-        { "lower-limit",        required_argument, 0, 'l'},
-        { "rigid",              no_argument,       0, 'r'},
+        { "alt-autoscale",      no_argument,       0, 'A'},
+        { "imgformat",          required_argument, 0, 'a'},
+        { "font-smoothing-threshold", required_argument, 0, 'B'},
         { "base",               required_argument, 0, 'b'},
-        { "logarithmic",        no_argument,       0, 'o'},
         { "color",              required_argument, 0, 'c'},
-        { "font",               required_argument, 0, 'n'},
-        { "title",              required_argument, 0, 't'},
+        { "full-size-mode",     no_argument,       0, 'D'},
+        { "daemon",             required_argument, 0, 'd'},
+        { "slope-mode",         no_argument,       0, 'E'},
+        { "end",                required_argument, 0, 'e'},
+        { "force-rules-legend", no_argument,       0, 'F'},
         { "imginfo",            required_argument, 0, 'f'},
-        { "imgformat",          required_argument, 0, 'a'},
-        { "lazy",               no_argument,       0, 'z'},
-        { "zoom",               required_argument, 0, 'm'},
+        { "graph-render-mode",  required_argument, 0, 'G'},
         { "no-legend",          no_argument,       0, 'g'},
-        { "legend-position",    required_argument, 0, 1005},
-        { "legend-direction",   required_argument, 0, 1006},
-        { "force-rules-legend", no_argument,       0, 'F'},
-        { "only-graph",         no_argument,       0, 'j'},
-        { "alt-y-grid",         no_argument,       0, 'Y'},
-        {"disable-rrdtool-tag", no_argument,       0,  1001},
-        {"right-axis",          required_argument, 0,  1002},
-        {"right-axis-label",    required_argument, 0,  1003},
-        {"right-axis-format",   required_argument, 0,  1004},     
-        { "no-minor",           no_argument,       0, 'I'}, 
-        { "slope-mode",         no_argument,       0, 'E'},
-        { "alt-autoscale",      no_argument,       0, 'A'},
+        { "height",             required_argument, 0, 'h'},
+        { "no-minor",           no_argument,       0, 'I'},
+        { "interlaced",         no_argument,       0, 'i'},
         { "alt-autoscale-min",  no_argument,       0, 'J'},
+        { "only-graph",         no_argument,       0, 'j'},
+        { "units-length",       required_argument, 0, 'L'},
+        { "lower-limit",        required_argument, 0, 'l'},
         { "alt-autoscale-max",  no_argument,       0, 'M'},
+        { "zoom",               required_argument, 0, 'm'},
         { "no-gridfit",         no_argument,       0, 'N'},
-        { "units-exponent",     required_argument, 0, 'X'},
-        { "units-length",       required_argument, 0, 'L'},
-        { "units",              required_argument, 0, LONGOPT_UNITS_SI},
+        { "font",               required_argument, 0, 'n'},
+        { "logarithmic",        no_argument,       0, 'o'},
+        { "pango-markup",       no_argument,       0, 'P'},
+        { "font-render-mode",   required_argument, 0, 'R'},
+        { "rigid",              no_argument,       0, 'r'},
         { "step",               required_argument, 0, 'S'},
+        { "start",              required_argument, 0, 's'},
         { "tabwidth",           required_argument, 0, 'T'},
-        { "font-render-mode",   required_argument, 0, 'R'},
-        { "graph-render-mode",  required_argument, 0, 'G'},
-        { "font-smoothing-threshold", required_argument, 0, 'B'},
+        { "title",              required_argument, 0, 't'},
+        { "upper-limit",        required_argument, 0, 'u'},
+        { "vertical-label",     required_argument, 0, 'v'},
         { "watermark",          required_argument, 0, 'W'},
+        { "width",              required_argument, 0, 'w'},
+        { "units-exponent",     required_argument, 0, 'X'},
+        { "x-grid",             required_argument, 0, 'x'},
+        { "alt-y-grid",         no_argument,       0, 'Y'},
+        { "y-grid",             required_argument, 0, 'y'},
+        { "lazy",               no_argument,       0, 'z'},
+        { "units",              required_argument, 0, LONGOPT_UNITS_SI},
         { "alt-y-mrtg",         no_argument,       0, 1000},    /* this has no effect it is just here to save old apps from crashing when they use it */
-        { "pango-markup",       no_argument,       0, 'P'},
-        { "daemon",             required_argument, 0, 'd'},
+        { "disable-rrdtool-tag",no_argument,       0, 1001},
+        { "right-axis",         required_argument, 0, 1002},
+        { "right-axis-label",   required_argument, 0, 1003},
+        { "right-axis-format",  required_argument, 0, 1004},
+        { "legend-position",    required_argument, 0, 1005},
+        { "legend-direction",   required_argument, 0, 1006},
+        { "border",             required_argument, 0, 1007},
         {  0, 0, 0, 0}
 };
 /* *INDENT-ON* */
@@ -4171,7 +4197,7 @@ void rrd_graph_options(
         int       col_start, col_end;
 
         opt = getopt_long(argc, argv,
-                          "s:e:x:y:v:w:h:D:iu:l:rb:oc:n:m:t:f:a:I:zgjFYAMEX:L:S:T:NR:B:W:kPd:",
+                          "Aa:B:b:c:Dd:Ee:Ff:G:gh:IiJjL:l:Nn:Bb:oPR:rS:s:T:t:u:v:W:w:X:x:Yy:z",
                           long_options, &option_index);
         if (opt == EOF)
             break;
@@ -4226,7 +4252,7 @@ void rrd_graph_options(
             break;
         case 1001:
             im->extra_flags |= NO_RRDTOOL_TAG;
-            break;              
+            break;
         case LONGOPT_UNITS_SI:
             if (im->extra_flags & FORCE_UNITS) {
                 rrd_set_error("--units can only be used once!");
@@ -4335,6 +4361,9 @@ void rrd_graph_options(
                 return;
             }
             break;
+        case 1007:
+            im->draw_3d_border = atoi(optarg);
+            break;
         case 1002: /* right y axis */
 
             if(sscanf(optarg,
@@ -4488,11 +4517,11 @@ void rrd_graph_options(
                     for (propidx = sindex;
                          propidx < TEXT_PROP_LAST; propidx++) {
                         if (size > 0) {
-                            rrd_set_font_desc(im,propidx,NULL,size);   
+                            rrd_set_font_desc(im,propidx,NULL,size);
                         }
                         if ((int) strlen(optarg) > end+2) {
                             if (optarg[end] == ':') {
-                                rrd_set_font_desc(im,propidx,optarg + end + 1,0);   
+                                rrd_set_font_desc(im,propidx,optarg + end + 1,0);
                             } else {
                                 rrd_set_error
                                     ("expected : after font size in '%s'",
@@ -4598,7 +4627,7 @@ void rrd_graph_options(
         int status = rrdc_connect(im->daemon_addr);
         if (status != 0) return;
     }
-    
+
     pango_cairo_context_set_font_options(pango_layout_get_context(im->layout), im->font_options);
     pango_layout_context_changed(im->layout);
 
@@ -4867,7 +4896,7 @@ int vdef_calc(
             array[step] = data[step * src->ds_cnt];
         }
         qsort(array, step, sizeof(double), vdef_percent_compar);
-        field = (steps - 1) * dst->vf.param / 100;
+        field = round((dst->vf.param * (double)(steps - 1)) / 100.0);
         dst->vf.val = array[field];
         dst->vf.when = 0;   /* no time component */
         free(array);
@@ -4900,7 +4929,7 @@ int vdef_calc(
             }
         }
         qsort(array, nancount, sizeof(double), vdef_percent_compar);
-        field = (nancount - 1) * dst->vf.param / 100;
+        field = round( dst->vf.param * (double)(nancount - 1) / 100.0);
         dst->vf.val = array[field];
         dst->vf.when = 0;   /* no time component */
         free(array);
index 0593d4a931207c1351c3d235c121d160c99a298c..d3de4cf05fc6e215e10312adf2e3d9a555f7e3d7 100644 (file)
@@ -203,7 +203,8 @@ typedef struct image_desc_t {
     char      title[210];   /* title for graph */
     char      watermark[110];   /* watermark for graph */
     int       draw_x_grid;  /* no x-grid at all */
-    int       draw_y_grid;  /* no x-grid at all */
+    int       draw_y_grid;  /* no y-grid at all */
+    unsigned int draw_3d_border; /* size of border in pixels, 0 for off */
     double    grid_dash_on, grid_dash_off;
     xlab_t    xlab_user;    /* user defined labeling for xaxis */
     char      xlab_form[210];   /* format for the label on the xaxis */
index 3ab1b592da1a323594689713a5b1654ed53318dd..a4e28622ef437d5a714c059e72b3aa8947bea22c 100644 (file)
@@ -178,6 +178,11 @@ rrd_info_t *rrd_info_r(
 
     for (i = 0; i < rrd.stat_head->ds_cnt; i++) {
 
+        info.u_cnt=i;
+        cd= rrd_info_push(cd,sprintf_alloc("ds[%s].index",
+                                     rrd.ds_def[i].ds_nam),
+                     RD_I_CNT, info);
+    
         info.u_str = rrd.ds_def[i].dst;
         cd = rrd_info_push(cd, sprintf_alloc("ds[%s].type",
                                              rrd.ds_def[i].ds_nam),
index 7e588fbef29cfe9f824a4346e17890992e12e7ee..a56a6247d74f8d2f16fbacdee869c607a7bcbdb8 100644 (file)
@@ -6,7 +6,7 @@
  *****************************************************************************
  * rrd_is_thread_safe.c   Poisons some nasty function calls using GNU cpp
  *****************************************************************************
- * $Id: rrd_is_thread_safe.h 1484 2008-09-06 14:24:43Z oetiker $
+ * $Id$
  *************************************************************************** */
 
 #ifndef _RRD_IS_THREAD_SAFE_H
index 89832039aeef70918595b2cfe39bbe0498553eda..2b1d00cc1611670fc02d2f927463a310e044fb11 100644 (file)
@@ -7,7 +7,7 @@
  * rrd_not_thread_safe.c   Contains routines used when thread safety is not
  *                         an issue
  *****************************************************************************
- * $Id: rrd_not_thread_safe.c 1484 2008-09-06 14:24:43Z oetiker $
+ * $Id$
  *************************************************************************** */
 #include "rrd.h"
 #include "rrd_tool.h"
index 8710dad69b1de20501622197a69420b9a6372ccb..03cc5b9a1bdf09299d71f60bea509e62da68a97b 100644 (file)
@@ -3,7 +3,7 @@
  *****************************************************************************
  * rrd_open.c  Open an RRD File
  *****************************************************************************
- * $Id: rrd_open.c 1851 2009-06-07 14:27:52Z oetiker $
+ * $Id$
  *****************************************************************************/
 
 #ifdef WIN32
index 74e2da433bbcaf1993da03342103ea53001b09a7..32bfdebc47a8c4d60617643e60ca81e3a75fc0e0 100644 (file)
@@ -2,9 +2,11 @@
  * RRDtool 1.3.2  Copyright by Tobi Oetiker, 1997-2009                    
  *****************************************************************************
  * rrd_restore.c  Contains logic to parse XML input and create an RRD file
- *                initial libxml2 version of rrd_restore (c) by Florian octo Forster
+ * This file:
+ * Copyright (C) 2008  Florian octo Forster  (original libxml2 code)
+ * Copyright (C) 2008,2009 Tobias Oetiker
  *****************************************************************************
- * $Id: rrd_restore.c 1815 2009-05-26 15:20:05Z oetiker $
+ * $Id$
  *************************************************************************** */
 
 #include <stdio.h>
@@ -241,6 +243,33 @@ static int get_xml_ulong(
     return -1;
 } /* get_xml_ulong */
 
+#ifndef TIME_T_IS_LONG
+static int get_xml_llong(
+    xmlTextReaderPtr reader,
+    long long *value)
+{
+    
+    xmlChar *text;
+    long long temp;    
+    if ((text = get_xml_text(reader)) != NULL){
+        errno = 0;        
+        temp = strtoll((char *)text,NULL, 0);        
+        if (errno>0){
+            rrd_set_error("ling %d: get_xml_llong from '%s' %s",
+                          xmlTextReaderGetParserLineNumber(reader),
+                          text,rrd_strerror(errno));
+            xmlFree(text);            
+            return -1;
+        }
+        xmlFree(text);
+        *value = temp;        
+        return 0;
+    }
+    return -1;
+} /* get_xml_llong */
+
+#endif
+
 static int get_xml_double(
     xmlTextReaderPtr reader,
     double *value)
@@ -267,13 +296,14 @@ static int get_xml_double(
         }        
         errno = 0;
         temp = strtod((char *)text,NULL);
-        xmlFree(text);        
         if (errno>0){
             rrd_set_error("ling %d: get_xml_double from '%s' %s",
                           xmlTextReaderGetParserLineNumber(reader),
                           text,rrd_strerror(errno));
+            xmlFree(text);        
             return -1;
         }
+        xmlFree(text);        
         *value = temp;
         return 0;
     }
@@ -986,9 +1016,24 @@ static int parse_tag_rrd(
         else if (xmlStrcasecmp(element, (const xmlChar *) "step") == 0)
             status = get_xml_ulong(reader,
                                         &rrd->stat_head->pdp_step);
-        else if (xmlStrcasecmp(element, (const xmlChar *) "lastupdate") == 0)
-            status = get_xml_long(reader,
-                                        &rrd->live_head->last_up);
+        else if (xmlStrcasecmp(element, (const xmlChar *) "lastupdate") == 0) {
+#ifdef TIME_T_IS_LONG
+                status = get_xml_long(reader, &rrd->live_head->last_up);
+#else
+#ifdef TIME_T_IS_LONG_LONG
+                status = get_xml_llong(reader, &rrd->live_head->last_up); 
+#else
+            if (sizeof(time_t) == sizeof(long)) {
+                status = get_xml_long(reader,
+                                        (long *)&rrd->live_head->last_up);
+            }
+            else if (sizeof(time_t) == sizeof(long long)) {
+                status = get_xml_llong(reader,
+                                        (long long *)&rrd->live_head->last_up); 
+            }
+#endif
+#endif
+        }
         else if (xmlStrcasecmp(element, (const xmlChar *) "ds") == 0){            
             xmlFree(element);
             status = parse_tag_ds(reader, rrd);
index 993e3e7b038e7dbfa92af921dfb1f608c6806eb9..e1e3cbeaa1b660b3b698de0f504738c4ec961683 100644 (file)
@@ -6,7 +6,7 @@
  *****************************************************************************
  * rrd_thread_safe.c   Contains routines used when thread safety is required
  *****************************************************************************
- * $Id: rrd_thread_safe.c 1752 2009-03-06 05:39:37Z oetiker $
+ * $Id$
  *************************************************************************** */
 
 #include <pthread.h>
@@ -66,7 +66,7 @@ const char *rrd_strerror(
     /* Even though POSIX/XSI requires "strerror_r" to return an "int", some
      * systems (e.g. the GNU libc) return a "char *" _and_ ignore the second
      * argument ... -tokkee */
-#if STRERROR_R_CHAR_P
+#ifdef STRERROR_R_CHAR_P
     ret = strerror_r(err, ctx->lib_errstr, sizeof(ctx->lib_errstr));
     if ((! ret) || (*ret == '\0')) {
         if (*ctx->lib_errstr != '\0')
index ce669b80ee214bfd0e49030eeea93a2290380e3b..e0dad45a565f8acacf40c6c17afd8b6ca28be816 100644 (file)
@@ -7,7 +7,7 @@
  * rrd_thread_safe.c   Contains routines used when thread safety is required
  *                     for win32
  *****************************************************************************
- * $Id: rrd_thread_safe_nt.c 1677 2008-11-18 17:19:17Z oetiker $
+ * $Id$
  *************************************************************************** */
 
 #include <windows.h>
index 8f233268f3fe46d5cb5b1387f5868d81cc6af829..853f0db4c308fd21a828efc4d7c1cf25cae15cf8 100644 (file)
@@ -139,7 +139,7 @@ void PrintUsage(
            "\t\t[-y|--y-grid y-axis grid and label]\n"
            "\t\t[-v|--vertical-label string] [-w|--width pixels]\n"
            "\t\t[--right-axis scale:shift] [--right-axis-label label]\n"
-           "\t\t[--right-axis-format format]\n"          
+           "\t\t[--right-axis-format format]\n"
            "\t\t[-h|--height pixels] [-o|--logarithmic]\n"
            "\t\t[-u|--upper-limit value] [-z|--lazy]\n"
            "\t\t[-l|--lower-limit value] [-r|--rigid]\n"
@@ -161,7 +161,9 @@ void PrintUsage(
            "\t\t[-S|--step seconds]\n"
            "\t\t[-f|--imginfo printfstr]\n"
            "\t\t[-a|--imgformat PNG]\n"
-           "\t\t[-c|--color COLORTAG#rrggbb[aa]] [-t|--title string]\n"
+           "\t\t[-c|--color COLORTAG#rrggbb[aa]]\n"
+           "\t\t[--border width\n"
+           "\t\t[-t|--title string]\n"
            "\t\t[-W|--watermark string]\n"
            "\t\t[DEF:vname=rrd:ds-name:CF]\n");
     const char *help_graph3 =
index a919657b20bd8a874ad6530efe3c6022c82ef3a1..66a3e58183307309a999594de171c16213c64612 100644 (file)
@@ -3,7 +3,7 @@
  *****************************************************************************
  * change header parameters of an rrd
  *****************************************************************************
- * $Id: rrd_tune.c 1677 2008-11-18 17:19:17Z oetiker $
+ * $Id$
  * $Log$
  * Revision 1.6  2004/05/26 22:11:12  oetiker
  * reduce compiler warnings. Many small fixes. -- Mike Slifcak <slif@bellsouth.net>
@@ -60,6 +60,12 @@ int       set_windowarg(
     enum rra_par_en,
     char *arg);
 
+int set_hwsmootharg(
+    rrd_t *rrd,
+    enum cf_en cf,
+    enum rra_par_en rra_par,
+    char *arg);
+
 int rrd_tune(
     int argc,
     char **argv)
@@ -305,7 +311,7 @@ int rrd_tune(
             break;
         case 's':
             strcpy(rrd.stat_head->version, RRD_VERSION);    /* smoothing_window causes Version 4 */
-            if (set_hwarg
+            if (set_hwsmootharg
                 (&rrd, CF_SEASONAL, RRA_seasonal_smoothing_window, optarg)) {
                 rrd_free(&rrd);
                 return -1;
@@ -313,7 +319,7 @@ int rrd_tune(
             break;
         case 'S':
             strcpy(rrd.stat_head->version, RRD_VERSION);    /* smoothing_window causes Version 4 */
-            if (set_hwarg
+            if (set_hwsmootharg
                 (&rrd, CF_DEVSEASONAL, RRA_seasonal_smoothing_window,
                  optarg)) {
                 rrd_free(&rrd);
@@ -398,6 +404,41 @@ int set_hwarg(
     return 0;
 }
 
+int set_hwsmootharg(
+    rrd_t *rrd,
+    enum cf_en cf,
+    enum rra_par_en rra_par,
+    char *arg)
+{
+    double    param;
+    unsigned long i;
+    signed short rra_idx = -1;
+
+    /* read the value */
+    param = atof(arg);
+    /* in order to avoid smoothing of SEASONAL or DEVSEASONAL, we need to 
+     * the 0.0 value*/
+    if (param < 0.0 || param > 1.0) {
+        rrd_set_error("Holt-Winters parameter must be between 0 and 1");
+        return -1;
+    }
+    /* does the appropriate RRA exist?  */
+    for (i = 0; i < rrd->stat_head->rra_cnt; ++i) {
+        if (cf_conv(rrd->rra_def[i].cf_nam) == cf) {
+            rra_idx = i;
+            break;
+        }
+    }
+    if (rra_idx == -1) {
+        rrd_set_error("Holt-Winters RRA does not exist in this RRD");
+        return -1;
+    }
+
+    /* set the value */
+    rrd->rra_def[rra_idx].par[rra_par].u_val = param;
+    return 0;
+}
+
 int set_deltaarg(
     rrd_t *rrd,
     enum rra_par_en rra_par,
index 6459e64dc35c13f7406a42f29cea43ad72d8d237..0c3474311ee57385b235e5cc50ff3dba78b55f0b 100644 (file)
@@ -4,7 +4,7 @@
  *****************************************************************************
  * rrd_update.c  RRD Update Function
  *****************************************************************************
- * $Id: rrd_update.c 1836 2009-06-01 13:58:58Z oetiker $
+ * $Id$
  *****************************************************************************/
 
 #include "rrd_tool.h"
index 9ac3e8ab7536e00771bf13afcc9fccbe88290689..3936cffd1d2e6689bd4ac5117e6404f54c09b35e 100644 (file)
@@ -1,4 +1,8 @@
 /**
+ * RRDtool - src/rrd_utils.c
+ * Copyright (C) 2009 Kevin Brintnall
+ * Copyright (C) 2008 Sebastian Harl
+ *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the
  * Free Software Foundation; only version 2 of the License is applicable.
  * You should have received a copy of the GNU General Public License along
  * with this program; if not, write to the Free Software Foundation, Inc.,
  * 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+ *
+ * Authors:
+ *   kevin brintnall <kbrint@rufus.net>
+ *   Sebastian Harl <sh@tokkee.org>
  **/
 
 #include "rrd_tool.h"
 
-#include <stdlib.h>
 #include <assert.h>
+#include <errno.h>
+#include <libgen.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
 
 #ifdef WIN32
 #      define random() rand()
@@ -95,3 +109,51 @@ void rrd_free_ptrs(void ***src, size_t *cnt)
     free (sp);
     *src = NULL;
 }
+
+/* recursively create the directory named by 'pathname'
+ * (similar to "mkdir -p" on the command line) */
+int rrd_mkdir_p(const char *pathname, mode_t mode)
+{
+    struct stat sb;
+
+    char *pathname_copy;
+    char *base_dir;
+
+    if ((NULL == pathname) || ('\0' == *pathname)) {
+        errno = EINVAL;
+        return -1;
+    }
+
+    if (0 == stat(pathname, &sb)) {
+        if (! S_ISDIR(sb.st_mode)) {
+            errno = ENOTDIR;
+            return -1;
+        }
+        return 0;
+    }
+
+    /* keep errno as set by stat() */
+    if (ENOENT != errno)
+        return -1;
+
+    /* dirname might modify its first argument */
+    if (NULL == (pathname_copy = strdup(pathname)))
+        return -1;
+
+    base_dir = dirname(pathname_copy);
+
+    if (0 != rrd_mkdir_p(base_dir, mode)) {
+        int orig_errno = errno;
+        free(pathname_copy);
+        errno = orig_errno;
+        return -1;
+    }
+
+    free(pathname_copy);
+
+    /* keep errno as set by mkdir() */
+    if (0 != mkdir(pathname, mode))
+        return -1;
+    return 0;
+} /* rrd_mkdir_p */
+
index 490d42223e32700ac844b6e0e8d754fc0356e332..2e97edadb0622c28e7b093921a6fa31942d09838 100644 (file)
@@ -3,7 +3,7 @@
  *****************************************************************************
  * rrdupdate.c  Main program for the (standalone) rrdupdate utility
  *****************************************************************************
- * $Id: rrdupdate.c 1484 2008-09-06 14:24:43Z oetiker $
+ * $Id$
  *****************************************************************************/
 
 #if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__CYGWIN32__) && !defined(HAVE_CONFIG_H)
index 8a839239cec8726f00b32a717d828a500af5d161..7c55d5a0ce1ca39dc57cd76da8f9ce342d7d8328 100644 (file)
@@ -42,6 +42,7 @@
 #define snprintf _snprintf\r
 #define vsnprintf _vsnprintf\r
 #define strftime strftime_ \r
+#define strtoll(p, e, b) _strtoi64(p, e, b)\r
 \r
 /* realloc does not support NULL as argument */\r
 #define NO_NULL_REALLOC 1\r