summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 5ae9312)
raw | patch | inline | side by side (parent: 5ae9312)
author | Sebastian Harl <sh@tokkee.org> | |
Wed, 23 Jul 2008 17:57:15 +0000 (19:57 +0200) | ||
committer | Sebastian Harl <sh@tokkee.org> | |
Wed, 23 Jul 2008 17:57:15 +0000 (19:57 +0200) |
138 files changed:
index cf537f81b5b12ea41936cf90062f67eaebe6bbfa..b06b734144aa2a3b03a1ae2ce0ff9f592e3296c8 100644 (file)
--- a/CHANGES
+++ b/CHANGES
+2008-07-23 13:45 oetiker
+
+ * bindings/perl-piped/RRDp.pm, bindings/perl-shared/RRDs.pm,
+ configure.ac, doc/rrdbuild.pod, rrdtool.spec, src/gdpng.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_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_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_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_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: prepare for the release of rrdtool-1.2.28
+
+2008-07-23 13:45 oetiker
+
+ * netware/Makefile, src/rrd_tool.h, win32/Makefile: build fixes by
+ Guenter Knauf
+
+2008-07-22 15:15 oetiker
+
+ * src/rrd_create.c, trunk/program/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
+
+2008-06-29 16:24 oetiker
+
+ * src/rrd_update.c: add filename to illegal update message -- he at
+ uninett.no
+
+2008-06-19 13:18 oetiker
+
+ * bindings/python/rrdtoolmodule.c,
+ trunk/program/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
+
+2008-06-08 16:25 oetiker
+
+ * bindings/python/rrdtoolmodule.c: The python bindings do not
+ currently support retrieval of the rpn expression in COMPUTE data
+ sources. Attached is a patch that duplicates functionality from
+ rrd_info.c to expose the correct data source attributes via the
+ python binding. It: * exposes the rpn expression in the 'cdef'
+ element for DST_CDEF data source types * exposes the heartbeat,
+ min, and max only to the other data source types
+
+2008-06-08 16:23 oetiker
+
+ * src/pngsize.c, trunk/program/src/pngsize.c: fix for ticket #121
+ jmpbuf on aix is a problem it seems, maybe this makes it better.
+
+2008-06-06 16:38 oetiker
+
+ * src/rrd_graph.c, trunk/program/src/rrd_graph.c: fix for --font bug
+ (font names wer not being picked up at all). Bug reported by
+ Dmitry B. Bigunayk
+
+2008-06-01 20:31 oetiker
+
+ * src/rrd_not_thread_safe.c: fliped order of rrd_context entries to
+ match up with what was defined in rrd.h (based on debuan bug
+ 450578
+
+2008-05-31 12:28 oetiker
+
+ * src/rrd_graph.c, trunk/program/src/rrd_graph.c: make sure vdef
+ calcs only calc as far as originally requested.
+
+2008-05-12 15:33 oetiker
+
+ * doc/rrdcreate.pod, src/rrd_update.c,
+ trunk/program/doc/rrdcreate.pod, trunk/program/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.
+
+2008-05-04 18:54 oetiker
+
+ * src/rrd_getopt.c, src/rrd_getopt1.c: make studio 11 happy ...
+ http://www.netbsd.org/cgi-bin/query-pr-single.pl?number=38555
+
+2008-04-16 15:50 oetiker
+
+ * doc/rrdgraph.pod, trunk/program/doc/rrdgraph.pod: fixed 2. x-grid
+ example ... since the lable is valid for the whole day, it must be
+ 86400 wide. --tobi
+
+2008-04-12 09:21 oetiker
+
+ * src/parsetime.c, trunk/program/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
+
+2008-03-25 22:37 oetiker
+
+ * examples/Makefile.am: make out-of-tree builds possible for the
+ examples directory too.
+
+2008-02-25 07:11 oetiker
+
+ * src/rrd_fetch.c, trunk/program/src/rrd_fetch.c: Ignore RRA-end
+ when comparing. coverage.
+
+2008-02-24 14:30 oetiker
+
+ * src/rrd_restore.c: added for for invalid number of ds entries
+
+2008-02-21 07:21 oetiker
+
+ * configure.ac: make ruby obej destdir
+
+2008-02-19 12:56 oetiker
+
+ * src/rrd_create.c, src/rrd_info.c, src/rrd_restore.c,
+ trunk/program/src/rrd_create.c, trunk/program/src/rrd_info.c,
+ trunk/program/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
+
2008-02-17 10:09 oetiker
* rrdtool-1.2-release: prepare for the release of rrdtool-1.2.27
diff --git a/Makefile.in b/Makefile.in
index 0fd18902396c46d47f43ef3a5d476b1a0fc63c44..3de33072cd071ddd771aedf146017f9c80e3ea2f 100644 (file)
--- a/Makefile.in
+++ b/Makefile.in
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
MAKEINFO = @MAKEINFO@
MULTITHREAD_CFLAGS = @MULTITHREAD_CFLAGS@
MULTITHREAD_LDFLAGS = @MULTITHREAD_LDFLAGS@
+NMEDIT = @NMEDIT@
NROFF = @NROFF@
NUMVERS = @NUMVERS@
OBJEXT = @OBJEXT@
RRD_DEFAULT_FONT = @RRD_DEFAULT_FONT@
RUBY = @RUBY@
RUBY_MAKE_OPTIONS = @RUBY_MAKE_OPTIONS@
+SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
diff --git a/aclocal.m4 b/aclocal.m4
index 8401174980236559a3f6de49e34db0a542e61f9f..9a98a39b196c570449847339c4310302572fdcbe 100644 (file)
--- a/aclocal.m4
+++ b/aclocal.m4
# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
-# serial 48 Debian 1.5.22-4 AC_PROG_LIBTOOL
+# serial 52 Debian 1.5.26-1ubuntu1 AC_PROG_LIBTOOL
# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
AC_REQUIRE([AC_OBJEXT])dnl
AC_REQUIRE([AC_EXEEXT])dnl
dnl
-
AC_LIBTOOL_SYS_MAX_CMD_LEN
AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
AC_LIBTOOL_OBJDIR
test -z "$ac_objext" && ac_objext=o
# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
old_postinstall_cmds='chmod 644 $oldlib'
old_postuninstall_cmds=
;;
esac
+_LT_REQUIRED_DARWIN_CHECKS
+
AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no)
AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
enable_win32_dll=yes, enable_win32_dll=no)
# Check for compiler boilerplate output or warnings with
# the simple compiler test code.
AC_DEFUN([_LT_COMPILER_BOILERPLATE],
-[ac_outfile=conftest.$ac_objext
-printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
_lt_compiler_boilerplate=`cat conftest.err`
$rm conftest*
# Check for linker boilerplate output or warnings with
# the simple link test code.
AC_DEFUN([_LT_LINKER_BOILERPLATE],
-[ac_outfile=conftest.$ac_objext
-printf "$lt_simple_link_test_code" >conftest.$ac_ext
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
_lt_linker_boilerplate=`cat conftest.err`
-$rm conftest*
+$rm -r conftest*
])# _LT_LINKER_BOILERPLATE
+# _LT_REQUIRED_DARWIN_CHECKS
+# --------------------------
+# Check for some things on darwin
+AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS],[
+ case $host_os in
+ rhapsody* | darwin*)
+ AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
+ AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
+
+ AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
+ [lt_cv_apple_cc_single_mod=no
+ if test -z "${LT_MULTI_MODULE}"; then
+ # By default we will add the -single_module flag. You can override
+ # by either setting the environment variable LT_MULTI_MODULE
+ # non-empty at configure time, or by adding -multi_module to the
+ # link flags.
+ echo "int foo(void){return 1;}" > conftest.c
+ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+ -dynamiclib ${wl}-single_module conftest.c
+ if test -f libconftest.dylib; then
+ lt_cv_apple_cc_single_mod=yes
+ rm -rf libconftest.dylib*
+ fi
+ rm conftest.c
+ fi])
+ AC_CACHE_CHECK([for -exported_symbols_list linker flag],
+ [lt_cv_ld_exported_symbols_list],
+ [lt_cv_ld_exported_symbols_list=no
+ save_LDFLAGS=$LDFLAGS
+ echo "_main" > conftest.sym
+ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+ [lt_cv_ld_exported_symbols_list=yes],
+ [lt_cv_ld_exported_symbols_list=no])
+ LDFLAGS="$save_LDFLAGS"
+ ])
+ case $host_os in
+ rhapsody* | darwin1.[[0123]])
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+ darwin1.*)
+ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+ darwin*)
+ # if running on 10.5 or later, the deployment target defaults
+ # to the OS version, if on x86, and 10.4, the deployment
+ # target defaults to 10.4. Don't you love it?
+ case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+ 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+ 10.[[012]]*)
+ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+ 10.*)
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+ esac
+ ;;
+ esac
+ if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+ _lt_dar_single_mod='$single_module'
+ fi
+ if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+ _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+ else
+ _lt_dar_export_syms="~$NMEDIT -s \$output_objdir/\${libname}-symbols.expsym \${lib}"
+ fi
+ if test "$DSYMUTIL" != ":"; then
+ _lt_dsymutil="~$DSYMUTIL \$lib || :"
+ else
+ _lt_dsymutil=
+ fi
+ ;;
+ esac
+])
# _LT_AC_SYS_LIBPATH_AIX
# ----------------------
# If we don't find anything, use the default library path according
# to the aix ld manual.
AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX],
-[AC_LINK_IFELSE(AC_LANG_PROGRAM,[
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_LINK_IFELSE(AC_LANG_PROGRAM,[
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`; fi],[])
+if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+fi],[])
if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
])# _LT_AC_SYS_LIBPATH_AIX
rm -rf conftest*
;;
-x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+s390*-*linux*|sparc*-*linux*)
# Find out which ABI we are using.
echo 'int i;' > conftest.$ac_ext
if AC_TRY_EVAL(ac_compile); then
case `/usr/bin/file conftest.o` in
*32-bit*)
case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_i386_fbsd"
+ ;;
x86_64-*linux*)
LD="${LD-ld} -m elf_i386"
;;
;;
*64-bit*)
case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_x86_64_fbsd"
+ ;;
x86_64-*linux*)
LD="${LD-ld} -m elf_x86_64"
;;
*64-bit*)
case $lt_cv_prog_gnu_ld in
yes*) LD="${LD-ld} -m elf64_sparc" ;;
- *) LD="${LD-ld} -64" ;;
+ *)
+ if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+ LD="${LD-ld} -64"
+ fi
+ ;;
esac
;;
esac
AC_CACHE_CHECK([$1], [$2],
[$2=no
ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
lt_compiler_flag="$3"
# Insert the option either (1) after the last *FLAGS variable, or
# (2) before a word containing "conftest.", or (3) at the end.
# ------------------------------------------------------------
# Check whether the given compiler option works
AC_DEFUN([AC_LIBTOOL_LINKER_OPTION],
-[AC_CACHE_CHECK([$1], [$2],
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
[$2=no
save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS $3"
- printf "$lt_simple_link_test_code" > conftest.$ac_ext
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
# The linker can only warn and ignore the option if not recognized
# So say no if there are warnings
$2=yes
fi
fi
- $rm conftest*
+ $rm -r conftest*
LDFLAGS="$save_LDFLAGS"
])
fi
;;
*)
- # If test is not a shell built-in, we'll probably end up computing a
- # maximum length that is only half of the actual maximum length, but
- # we can't tell.
- SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
- while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \
+ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+ if test -n "$lt_cv_sys_max_cmd_len"; then
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ else
+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+ while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \
= "XX$teststring") >/dev/null 2>&1 &&
- new_result=`expr "X$teststring" : ".*" 2>&1` &&
- lt_cv_sys_max_cmd_len=$new_result &&
- test $i != 17 # 1/2 MB should be enough
- do
- i=`expr $i + 1`
- teststring=$teststring$teststring
- done
- teststring=
- # Add a significant safety factor because C++ compilers can tack on massive
- # amounts of additional arguments before passing them to the linker.
- # It appears as though 1/2 is a usable value.
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ new_result=`expr "X$teststring" : ".*" 2>&1` &&
+ lt_cv_sys_max_cmd_len=$new_result &&
+ test $i != 17 # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ teststring=$teststring$teststring
+ done
+ teststring=
+ # Add a significant safety factor because C++ compilers can tack on massive
+ # amounts of additional arguments before passing them to the linker.
+ # It appears as though 1/2 is a usable value.
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ fi
;;
esac
])
AC_CHECK_FUNC([shl_load],
[lt_cv_dlopen="shl_load"],
[AC_CHECK_LIB([dld], [shl_load],
- [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"],
+ [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
[AC_CHECK_FUNC([dlopen],
[lt_cv_dlopen="dlopen"],
[AC_CHECK_LIB([dl], [dlopen],
[AC_CHECK_LIB([svld], [dlopen],
[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
[AC_CHECK_LIB([dld], [dld_link],
- [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
+ [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
])
])
])
# ---------------------------------
# Check to see if options -c and -o are simultaneously supported by compiler
AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O],
-[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
[_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
[_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
mkdir conftest
cd conftest
mkdir out
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
lt_compiler_flag="-o out/conftest2.$ac_objext"
# Insert the option either (1) after the last *FLAGS variable, or
darwin*)
if test -n "$STRIP" ; then
striplib="$STRIP -x"
+ old_striplib="$STRIP -S"
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
# -----------------------------
# PORTME Fill in your ld.so characteristics
AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER],
-[AC_MSG_CHECKING([dynamic linker characteristics])
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_MSG_CHECKING([dynamic linker characteristics])
library_names_spec=
libname_spec='lib$name'
soname_spec=
version_type=none
dynamic_linker="$host_os ld.so"
sys_lib_dlsearch_path_spec="/lib /usr/lib"
+m4_if($1,[],[
if test "$GCC" = yes; then
- sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
- if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
+ case $host_os in
+ darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
+ *) lt_awk_arg="/^libraries:/" ;;
+ esac
+ lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if echo "$lt_search_path_spec" | grep ';' >/dev/null ; then
# if the path contains ";" then we assume it to be the separator
# otherwise default to the standard path separator (i.e. ":") - it is
# assumed that no part of a normal pathname contains ";" but that should
# okay in the real world where ";" in dirpaths is itself problematic.
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e 's/;/ /g'`
else
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
fi
+ # Ok, now we have the path, separated by spaces, we can step through it
+ # and add multilib dir if necessary.
+ lt_tmp_lt_search_path_spec=
+ lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+ for lt_sys_path in $lt_search_path_spec; do
+ if test -d "$lt_sys_path/$lt_multi_os_dir"; then
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
+ else
+ test -d "$lt_sys_path" && \
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+ fi
+ done
+ lt_search_path_spec=`echo $lt_tmp_lt_search_path_spec | awk '
+BEGIN {RS=" "; FS="/|\n";} {
+ lt_foo="";
+ lt_count=0;
+ for (lt_i = NF; lt_i > 0; lt_i--) {
+ if ($lt_i != "" && $lt_i != ".") {
+ if ($lt_i == "..") {
+ lt_count++;
+ } else {
+ if (lt_count == 0) {
+ lt_foo="/" $lt_i lt_foo;
+ } else {
+ lt_count--;
+ }
+ }
+ }
+ }
+ if (lt_foo != "") { lt_freq[[lt_foo]]++; }
+ if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
+}'`
+ sys_lib_search_path_spec=`echo $lt_search_path_spec`
else
sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
+fi])
need_lib_prefix=unknown
hardcode_into_libs=no
soname_spec='${libname}${release}${shared_ext}$major'
;;
-aix4* | aix5*)
+aix[[4-9]]*)
version_type=linux
need_lib_prefix=no
need_version=no
shlibpath_overrides_runpath=yes
shlibpath_var=DYLD_LIBRARY_PATH
shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
- # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
- if test "$GCC" = yes; then
- sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
- else
- sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
- fi
+ m4_if([$1], [],[
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
;;
shlibpath_overrides_runpath=no
hardcode_into_libs=yes
;;
- freebsd*) # from 4.6 on
+ *) # from 4.6 on, and DragonFly
shlibpath_overrides_runpath=yes
hardcode_into_libs=yes
;;
postinstall_cmds='chmod 555 $lib'
;;
-interix3*)
+interix[[3-9]]*)
version_type=linux
need_lib_prefix=no
need_version=no
# Append ld.so.conf contents to the search path
if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
fi
sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
;;
+rdos*)
+ dynamic_linker=no
+ ;;
+
solaris*)
version_type=linux
need_lib_prefix=no
AC_MSG_RESULT([$dynamic_linker])
test "$dynamic_linker" = no && can_build_shared=no
+AC_CACHE_VAL([lt_cv_sys_lib_search_path_spec],
+[lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"])
+sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+AC_CACHE_VAL([lt_cv_sys_lib_dlsearch_path_spec],
+[lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"])
+sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
if test "$GCC" = yes; then
variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
# _LT_AC_TAGCONFIG
# ----------------
AC_DEFUN([_LT_AC_TAGCONFIG],
-[AC_ARG_WITH([tags],
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_ARG_WITH([tags],
[AC_HELP_STRING([--with-tags@<:@=TAGS@:>@],
[include additional configurations @<:@automatic@:>@])],
[tagnames="$withval"])
# AC_PATH_TOOL_PREFIX
# -------------------
-# find a file program which can recognise shared library
+# find a file program which can recognize shared library
AC_DEFUN([AC_PATH_TOOL_PREFIX],
[AC_REQUIRE([AC_PROG_EGREP])dnl
AC_MSG_CHECKING([for $1])
# AC_PATH_MAGIC
# -------------
-# find a file program which can recognise a shared library
+# find a file program which can recognize a shared library
AC_DEFUN([AC_PATH_MAGIC],
[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
if test -z "$lt_cv_path_MAGIC_CMD"; then
# how to check for library dependencies
# -- PORTME fill in with the dynamic library characteristics
AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
-[AC_CACHE_CHECK([how to recognise dependent libraries],
+[AC_CACHE_CHECK([how to recognize dependent libraries],
lt_cv_deplibs_check_method,
[lt_cv_file_magic_cmd='$MAGIC_CMD'
lt_cv_file_magic_test_file=
# whether `pass_all' will *always* work, you probably want this one.
case $host_os in
-aix4* | aix5*)
+aix[[4-9]]*)
lt_cv_deplibs_check_method=pass_all
;;
mingw* | pw32*)
# Base MSYS/MinGW do not provide the 'file' command needed by
- # func_win32_libid shell function, so use a weaker test based on 'objdump'.
- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
+ # func_win32_libid shell function, so use a weaker test based on 'objdump',
+ # unless we find 'file', for example because we are cross-compiling.
+ if ( file / ) >/dev/null 2>&1; then
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
;;
darwin* | rhapsody*)
esac
;;
-interix3*)
+interix[[3-9]]*)
# PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
;;
lt_cv_deplibs_check_method=pass_all
;;
+rdos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
solaris*)
lt_cv_deplibs_check_method=pass_all
;;
lt_cv_path_NM="$NM"
else
lt_nm_to_check="${ac_tool_prefix}nm"
- if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
lt_nm_to_check="$lt_nm_to_check nm"
fi
for lt_tmp_nm in $lt_nm_to_check; do
_LT_AC_TAGVAR(objext, $1)=$objext
# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\n"
+lt_simple_compile_test_code="int some_variable = 0;"
# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}\n'
+lt_simple_link_test_code='int main(){return(0);}'
_LT_AC_SYS_COMPILER
fi
;;
-aix4* | aix5*)
+aix[[4-9]]*)
if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
test "$enable_shared" = yes && enable_static=no
fi
_LT_AC_TAGVAR(predeps, $1)=
_LT_AC_TAGVAR(postdeps, $1)=
_LT_AC_TAGVAR(compiler_lib_search_path, $1)=
+_LT_AC_TAGVAR(compiler_lib_search_dirs, $1)=
# Source file extension for C++ test sources.
ac_ext=cpp
_LT_AC_TAGVAR(objext, $1)=$objext
# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\n"
+lt_simple_compile_test_code="int some_variable = 0;"
# Code to be used in simple link tests
-lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }\n'
+lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
# ltmain only uses $CC for tagged configurations so make sure $CC is set.
_LT_AC_SYS_COMPILER
# FIXME: insert proper C++ library support
_LT_AC_TAGVAR(ld_shlibs, $1)=no
;;
- aix4* | aix5*)
+ aix[[4-9]]*)
if test "$host_cpu" = ia64; then
# On IA64, the linker does run time linking by default, so we don't
# have to do anything special.
# Test if we are trying to use run time linking or normal
# AIX style linking. If -brtl is somewhere in LDFLAGS, we
# need to do runtime linking.
- case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*)
+ case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
for ld_flag in $LDFLAGS; do
case $ld_flag in
*-brtl*)
strings "$collect2name" | grep resolve_lib_name >/dev/null
then
# We have reworked collect2
- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ :
else
# We have old collect2
_LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
fi
;;
darwin* | rhapsody*)
- case $host_os in
- rhapsody* | darwin1.[[012]])
- _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress'
- ;;
- *) # Darwin 1.3 on
- if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
- _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
- else
- case ${MACOSX_DEPLOYMENT_TARGET} in
- 10.[[012]])
- _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
- ;;
- 10.*)
- _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup'
- ;;
- esac
- fi
- ;;
- esac
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
_LT_AC_TAGVAR(hardcode_direct, $1)=no
_LT_AC_TAGVAR(hardcode_automatic, $1)=yes
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=''
_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-
- if test "$GXX" = yes ; then
- lt_int_apple_cc_single_mod=no
+ _LT_AC_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
+ if test "$GXX" = yes ; then
output_verbose_link_cmd='echo'
- if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then
- lt_int_apple_cc_single_mod=yes
+ _LT_AC_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+ _LT_AC_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+ _LT_AC_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+ if test "$lt_cv_apple_cc_single_mod" != "yes"; then
+ _LT_AC_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
fi
- if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
- else
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
- fi
- _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
- if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- else
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- fi
- _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
else
case $cc_basename in
xlc*)
output_verbose_link_cmd='echo'
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring'
_LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
# Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
_LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
;;
*)
_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
case $host_cpu in
- hppa*64*|ia64*)
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
- ;;
+ hppa*64*|ia64*) ;;
*)
_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
;;
;;
esac
;;
- interix3*)
+ interix[[3-9]]*)
_LT_AC_TAGVAR(hardcode_direct, $1)=no
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
;;
- pgCC*)
+ pgCC* | pgcpp*)
# Portland Group C++ compiler
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
# dependencies.
output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+ _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+
+ # Not sure whether something based on
+ # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
+ # would be better.
+ output_verbose_link_cmd='echo'
+
+ # Archives containing C++ object files must be created using
+ # "CC -xar", where "CC" is the Sun C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+ ;;
+ esac
+ ;;
esac
;;
lynxos*)
_LT_AC_TAGVAR(ld_shlibs, $1)=no
;;
openbsd*)
- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ if test -f /usr/libexec/ld.so; then
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ fi
+ output_verbose_link_cmd='echo'
+ else
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
fi
- output_verbose_link_cmd='echo'
;;
osf3*)
case $cc_basename in
case $host_os in
solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
*)
- # The C++ compiler is used as linker so we must use $wl
- # flag to pass the commands to the underlying system
- # linker. We must also pass each convience library through
- # to the system linker between allextract/defaultextract.
- # The C++ compiler will combine linker options so we
- # cannot just pass the convience library names through
- # without $wl.
+ # The compiler driver will combine and reorder linker options,
+ # but understands `-z linker_flag'.
# Supported since Solaris 2.6 (maybe 2.5.1?)
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract'
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
;;
esac
_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
fi
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
+ case $host_os in
+ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+ *)
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+ ;;
+ esac
fi
;;
esac
# compiler output when linking a shared library.
# Parse the compiler output and extract the necessary
# objects, libraries and library flags.
-AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[
+AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
dnl we can't use the lt_simple_compile_test_code here,
dnl because it contains code intended for an executable,
dnl not a library. It's possible we should let each
$rm -f confest.$objext
+_LT_AC_TAGVAR(compiler_lib_search_dirs, $1)=
+if test -n "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then
+ _LT_AC_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_AC_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
+fi
+
# PORTME: override above test on systems where it is broken
ifelse([$1],[CXX],
[case $host_os in
-interix3*)
+interix[[3-9]]*)
# Interix 3.5 installs completely hosed .la files for C++, so rather than
# hack all around it, let's just trust "g++" to DTRT.
_LT_AC_TAGVAR(predep_objects,$1)=
_LT_AC_TAGVAR(postdeps,$1)=
;;
+linux*)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+ #
+ # The more standards-conforming stlport4 library is
+ # incompatible with the Cstd library. Avoid specifying
+ # it if it's in CXXFLAGS. Ignore libCrun as
+ # -library=stlport4 depends on it.
+ case " $CXX $CXXFLAGS " in
+ *" -library=stlport4 "*)
+ solaris_use_stlport4=yes
+ ;;
+ esac
+ if test "$solaris_use_stlport4" != yes; then
+ _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
+ fi
+ ;;
+ esac
+ ;;
+
solaris*)
case $cc_basename in
CC*)
+ # The more standards-conforming stlport4 library is
+ # incompatible with the Cstd library. Avoid specifying
+ # it if it's in CXXFLAGS. Ignore libCrun as
+ # -library=stlport4 depends on it.
+ case " $CXX $CXXFLAGS " in
+ *" -library=stlport4 "*)
+ solaris_use_stlport4=yes
+ ;;
+ esac
+
# Adding this requires a known-good setup of shared libraries for
# Sun compiler versions before 5.6, else PIC objects from an old
# archive will be linked into the output, leading to subtle bugs.
- _LT_AC_TAGVAR(postdeps,$1)='-lCstd -lCrun'
+ if test "$solaris_use_stlport4" != yes; then
+ _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
+ fi
;;
esac
;;
esac
])
-
case " $_LT_AC_TAGVAR(postdeps, $1) " in
*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;;
esac
_LT_AC_TAGVAR(objext, $1)=$objext
# Code to be used in simple compile tests
-lt_simple_compile_test_code=" subroutine t\n return\n end\n"
+lt_simple_compile_test_code="\
+ subroutine t
+ return
+ end
+"
# Code to be used in simple link tests
-lt_simple_link_test_code=" program t\n end\n"
+lt_simple_link_test_code="\
+ program t
+ end
+"
# ltmain only uses $CC for tagged configurations so make sure $CC is set.
_LT_AC_SYS_COMPILER
postinstall_cmds='$RANLIB $lib'
fi
;;
-aix4* | aix5*)
+aix[[4-9]]*)
if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
test "$enable_shared" = yes && enable_static=no
fi
_LT_AC_TAGVAR(objext, $1)=$objext
# Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}\n"
+lt_simple_compile_test_code="class foo {}"
# Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }\n'
+lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
# ltmain only uses $CC for tagged configurations so make sure $CC is set.
_LT_AC_SYS_COMPILER
_LT_AC_TAGVAR(objext, $1)=$objext
# Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
# Code to be used in simple link tests
lt_simple_link_test_code="$lt_simple_compile_test_code"
_LT_AC_TAGVAR(predeps, $1) \
_LT_AC_TAGVAR(postdeps, $1) \
_LT_AC_TAGVAR(compiler_lib_search_path, $1) \
+ _LT_AC_TAGVAR(compiler_lib_search_dirs, $1) \
_LT_AC_TAGVAR(archive_cmds, $1) \
_LT_AC_TAGVAR(archive_expsym_cmds, $1) \
_LT_AC_TAGVAR(postinstall_cmds, $1) \
_LT_AC_TAGVAR(module_cmds, $1) \
_LT_AC_TAGVAR(module_expsym_cmds, $1) \
_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \
+ _LT_AC_TAGVAR(fix_srcfile_path, $1) \
_LT_AC_TAGVAR(exclude_expsyms, $1) \
_LT_AC_TAGVAR(include_expsyms, $1); do
# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
# Free Software Foundation, Inc.
#
# This file is part of GNU Libtool:
# shared library.
postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1)
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_dirs, $1)
+
# The library search path used internally by the compiler when linking
# a shared library.
compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1)
sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)"
+fix_srcfile_path=$lt_fix_srcfile_path
# Set to yes if exported symbols are required.
always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1)
# ---------------------------------
AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE],
[AC_REQUIRE([AC_CANONICAL_HOST])
+AC_REQUIRE([LT_AC_PROG_SED])
AC_REQUIRE([AC_PROG_NM])
AC_REQUIRE([AC_OBJEXT])
# Check for command to grab the raw symbol name followed by C symbol from nm.
echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
cat conftest.$ac_ext >&5
fi
- rm -f conftest* conftst*
+ rm -rf conftest* conftst*
# Do not use the global_symbol_pipe unless it works.
if test "$pipe_works" = yes; then
# like `-m68040'.
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
;;
- beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
# PIC is the default for these OSes.
;;
- mingw* | os2* | pw32*)
+ mingw* | cygwin* | os2* | pw32*)
# This hack is so that the source file can tell whether it is being
# built for inclusion in a dll (and should export symbols for example).
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ m4_if([$1], [GCJ], [],
+ [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
;;
darwin* | rhapsody*)
# PIC is the default on this platform
# DJGPP does not support shared libraries at all
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
;;
- interix3*)
+ interix[[3-9]]*)
# Interix 3.x gcc -fpic/-fPIC options generate broken code.
# Instead, we relocate shared libraries at runtime.
;;
esac
else
case $host_os in
- aix4* | aix5*)
+ aix[[4-9]]*)
# All AIX code is PIC.
if test "$host_cpu" = ia64; then
# AIX 5 now supports IA64 processor
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
;;
- pgCC*)
+ pgCC* | pgcpp*)
# Portland Group C++ compiler.
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
;;
*)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+ ;;
+ esac
;;
esac
;;
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
;;
- beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
# PIC is the default for these OSes.
;;
- mingw* | pw32* | os2*)
+ mingw* | cygwin* | pw32* | os2*)
# This hack is so that the source file can tell whether it is being
# built for inclusion in a dll (and should export symbols for example).
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ m4_if([$1], [GCJ], [],
+ [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
;;
darwin* | rhapsody*)
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
;;
- interix3*)
+ interix[[3-9]]*)
# Interix 3.x gcc -fpic/-fPIC options generate broken code.
# Instead, we relocate shared libraries at runtime.
;;
esac
;;
- mingw* | pw32* | os2*)
+ mingw* | cygwin* | pw32* | os2*)
# This hack is so that the source file can tell whether it is being
# built for inclusion in a dll (and should export symbols for example).
- _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
+ m4_if([$1], [GCJ], [],
+ [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
;;
hpux9* | hpux10* | hpux11*)
# All Alpha code is PIC.
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C 5.9
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ ;;
+ *Sun\ F*)
+ # Sun Fortran 8.3 passes all unrecognized flags to the linker
+ _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=''
+ ;;
+ esac
+ ;;
esac
;;
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
;;
+ rdos*)
+ _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+
solaris*)
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
#
if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then
AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works],
- _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1),
+ _LT_AC_TAGVAR(lt_cv_prog_compiler_pic_works, $1),
[$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [],
[case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in
"" | " "*) ;;
#
wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_AC_TAGVAR(lt_prog_compiler_static, $1)\"
AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
- _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1),
+ _LT_AC_TAGVAR(lt_cv_prog_compiler_static_works, $1),
$lt_tmp_static_flag,
[],
[_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=])
@@ -5322,11 +5564,12 @@ AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
# ------------------------------------
# See if the linker supports building shared libraries.
AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS],
-[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+[AC_REQUIRE([LT_AC_PROG_SED])dnl
+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
ifelse([$1],[CXX],[
_LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
case $host_os in
- aix4* | aix5*)
+ aix[[4-9]]*)
# If we're using GNU nm, then we don't want the "-C" option.
# -C means demangle to AIX nm, but means don't demangle with GNU nm
if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
_LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
;;
cygwin* | mingw*)
- _LT_AC_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'
+ _LT_AC_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_AC_TAGVAR(link_all_deplibs, $1)=no
_LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
;;
esac
+ _LT_AC_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
],[
runpath_var=
_LT_AC_TAGVAR(allow_undefined_flag, $1)=
# it will be wrapped by ` (' and `)$', so one must not match beginning or
# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
# as well as any symbol that contains `d'.
- _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_"
+ _LT_AC_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
# platforms (ab)use it in PIC code, but their linkers get confused if
# the symbol is explicitly referenced. Since portable code cannot
# rely on this symbol name, it's probably fine to never include it in
# preloaded symbol tables.
+ # Exclude shared library initialization/finalization symbols.
+dnl Note also adjust exclude_expsyms for C++ above.
extract_expsyms_cmds=
# Just being paranoid about ensuring that cc_basename is set.
_LT_CC_BASENAME([$compiler])
# See if GNU ld supports shared libraries.
case $host_os in
- aix3* | aix4* | aix5*)
+ aix[[3-9]]*)
# On AIX/PPC, the GNU linker is very broken
if test "$host_cpu" != ia64; then
_LT_AC_TAGVAR(ld_shlibs, $1)=no
_LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
_LT_AC_TAGVAR(always_export_symbols, $1)=no
_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
- _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
+ _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
fi
;;
- interix3*)
+ interix[[3-9]]*)
_LT_AC_TAGVAR(hardcode_direct, $1)=no
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
;;
- linux* | k*bsd*-gnu)
+ gnu* | linux* | k*bsd*-gnu)
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
tmp_addflag=
case $cc_basename,$host_cpu in
ifc* | ifort*) # Intel Fortran compiler
tmp_addflag=' -nofor_main' ;;
esac
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*) # Sun C 5.9
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_sharedflag='-G' ;;
+ *Sun\ F*) # Sun Fortran 8.3
+ tmp_sharedflag='-G' ;;
+ *)
+ tmp_sharedflag='-shared' ;;
+ esac
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
if test $supports_anon_versioning = yes; then
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~
cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
$echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
fi
_LT_AC_TAGVAR(link_all_deplibs, $1)=no
else
sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
case `$LD -v 2>&1` in
- *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
+ *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
_LT_AC_TAGVAR(ld_shlibs, $1)=no
cat <<_LT_EOF 1>&2
fi
;;
- aix4* | aix5*)
+ aix[[4-9]]*)
if test "$host_cpu" = ia64; then
# On IA64, the linker does run time linking by default, so we don't
# have to do anything special.
# Test if we are trying to use run time linking or normal
# AIX style linking. If -brtl is somewhere in LDFLAGS, we
# need to do runtime linking.
- case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*)
+ case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
for ld_flag in $LDFLAGS; do
if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
aix_use_runtimelinking=yes
strings "$collect2name" | grep resolve_lib_name >/dev/null
then
# We have reworked collect2
- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ :
else
# We have old collect2
_LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
# The linker will automatically build a .lib file if we build a DLL.
_LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true'
# FIXME: Should let the user specify the lib program.
- _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs'
+ _LT_AC_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
_LT_AC_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`'
_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
;;
_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
if test "$GCC" = yes ; then
output_verbose_link_cmd='echo'
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
- _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ _LT_AC_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+ _LT_AC_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+ _LT_AC_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
else
case $cc_basename in
xlc*)
output_verbose_link_cmd='echo'
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring'
_LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
# Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
_LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
;;
*)
;;
openbsd*)
- _LT_AC_TAGVAR(hardcode_direct, $1)=yes
- _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+ if test -f /usr/libexec/ld.so; then
+ _LT_AC_TAGVAR(hardcode_direct, $1)=yes
+ _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
+ else
+ case $host_os in
+ openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ ;;
+ *)
+ _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
else
- case $host_os in
- openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
- _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
- ;;
- *)
- _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
- ;;
- esac
+ _LT_AC_TAGVAR(ld_shlibs, $1)=no
fi
;;
case $host_os in
solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
*)
- # The compiler driver will combine linker options so we
- # cannot just pass the convience library names through
- # without $wl, iff we do not link with $LD.
- # Luckily, gcc supports the same syntax we need for Sun Studio.
+ # The compiler driver will combine and reorder linker options,
+ # but understands `-z linker_flag'. GCC discards it without `$wl',
+ # but is careful enough not to reorder.
# Supported since Solaris 2.6 (maybe 2.5.1?)
- case $wlarc in
- '')
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;;
- *)
- _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
- esac ;;
+ if test "$GCC" = yes; then
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+ else
+ _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+ fi
+ ;;
esac
_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
;;
fi
;;
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7*)
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
_LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
# to ld, don't add -lc before -lgcc.
AC_MSG_CHECKING([whether -lc should be explicitly linked in])
$rm conftest*
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
soname=conftest
[AC_CHECK_TOOL(RC, windres, no)
])
+
+# Cheap backport of AS_EXECUTABLE_P and required macros
+# from Autoconf 2.59; we should not use $as_executable_p directly.
+
+# _AS_TEST_PREPARE
+# ----------------
+m4_ifndef([_AS_TEST_PREPARE],
+[m4_defun([_AS_TEST_PREPARE],
+[if test -x / >/dev/null 2>&1; then
+ as_executable_p='test -x'
+else
+ as_executable_p='test -f'
+fi
+])])# _AS_TEST_PREPARE
+
+# AS_EXECUTABLE_P
+# ---------------
+# Check whether a file is executable.
+m4_ifndef([AS_EXECUTABLE_P],
+[m4_defun([AS_EXECUTABLE_P],
+[AS_REQUIRE([_AS_TEST_PREPARE])dnl
+$as_executable_p $1[]dnl
+])])# AS_EXECUTABLE_P
+
# NOTE: This macro has been submitted for inclusion into #
# GNU Autoconf as AC_PROG_SED. When it is available in #
# a released version of Autoconf we should remove this #
test -z "$as_dir" && as_dir=.
for lt_ac_prog in sed gsed; do
for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+ if AS_EXECUTABLE_P(["$as_dir/$lt_ac_prog$ac_exec_ext"]); then
lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
fi
done
done
done
+IFS=$as_save_IFS
lt_ac_max=0
lt_ac_count=0
# Add /usr/xpg4/bin/sed as it is typically found on Solaris
done
])
SED=$lt_cv_path_SED
+AC_SUBST([SED])
AC_MSG_RESULT([$SED])
])
diff --git a/bindings/Makefile.in b/bindings/Makefile.in
index ce62cd13338e8b5b9f2ec0000501e7f636f1b598..2f6b1e157da3daf26c7d02cd42935299021b12e2 100644 (file)
--- a/bindings/Makefile.in
+++ b/bindings/Makefile.in
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
MAKEINFO = @MAKEINFO@
MULTITHREAD_CFLAGS = @MULTITHREAD_CFLAGS@
MULTITHREAD_LDFLAGS = @MULTITHREAD_LDFLAGS@
+NMEDIT = @NMEDIT@
NROFF = @NROFF@
NUMVERS = @NUMVERS@
OBJEXT = @OBJEXT@
RRD_DEFAULT_FONT = @RRD_DEFAULT_FONT@
RUBY = @RUBY@
RUBY_MAKE_OPTIONS = @RUBY_MAKE_OPTIONS@
+SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
index bc95a1289918d923243a89b394d6755b58b4146c..e39cbfaa4e707cfd343cab3c56f215ad77adde68 100644 (file)
sub end ();
sub read ();
-$VERSION=1.2027;
+$VERSION=1.2028;
sub start ($){
croak "rrdtool is already running"
index 44b4d8cfc0277a4847e26dd89746213da4d56d79..f543c5b019b0f6117ebcf5f58824c6f538371eeb 100644 (file)
require DynaLoader;
-$VERSION=1.2027;
+$VERSION=1.2028;
bootstrap RRDs $VERSION;
index 6f5b36c50e70aebf3027695a89a23e4b6e8a1520..1fe4c0ca8d538d2c5541f0bae591f9671133c549 100644 (file)
#include "Python.h"
#include "rrd.h"
#include "rrd_extra.h"
+#include "rrd_rpncalc.h"
static PyObject *ErrorObject;
extern int optind;
unsigned long i, j, row;
rrd_value_t dv;
- row = ((end - start) / step + 1);
+ row = (end - start) / step;
r = PyTuple_New(3);
range_tup = PyTuple_New(3);
DICTSET_STR(d, "ds_name", rrd.ds_def[i].ds_nam);
DICTSET_STR(d, "type", rrd.ds_def[i].dst);
- DICTSET_CNT(d, "minimal_heartbeat", rrd.ds_def[i].par[DS_mrhb_cnt].u_cnt);
- DICTSET_VAL(d, "min", rrd.ds_def[i].par[DS_min_val].u_val);
- DICTSET_VAL(d, "max", rrd.ds_def[i].par[DS_max_val].u_val);
+
+ switch(dst_conv(rrd.ds_def[i].dst)) {
+ case DST_CDEF:
+ {
+ char *buffer = NULL;
+ rpn_compact2str((rpn_cdefds_t *) &(rrd.ds_def[i].par[DS_cdef]),
+ rrd.ds_def, &buffer);
+ DICTSET_STR(d, "cdef", buffer);
+ }
+ break;
+ default:
+ DICTSET_CNT(d, "minimal_heartbeat", rrd.ds_def[i].par[DS_mrhb_cnt].u_cnt);
+ DICTSET_VAL(d, "min", rrd.ds_def[i].par[DS_min_val].u_val);
+ DICTSET_VAL(d, "max", rrd.ds_def[i].par[DS_max_val].u_val);
+ break;
+ }
DICTSET_STR(d, "last_ds", rrd.pdp_prep[i].last_ds);
DICTSET_VAL(d, "value", rrd.pdp_prep[i].scratch[PDP_val].u_val);
DICTSET_CNT(d, "unknown_sec", rrd.pdp_prep[i].scratch[PDP_unkn_sec_cnt].u_cnt);
index 08fc7147e9908ec6b3908647c48c0108d0a6e11c..51f101e7c73964cf1aff6c3599a546a2f0bc8602 100644 (file)
--- a/bindings/tcl/Makefile.in
+++ b/bindings/tcl/Makefile.in
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
MAKEINFO = @MAKEINFO@
MULTITHREAD_CFLAGS = @MULTITHREAD_CFLAGS@
MULTITHREAD_LDFLAGS = @MULTITHREAD_LDFLAGS@
+NMEDIT = @NMEDIT@
NROFF = @NROFF@
NUMVERS = @NUMVERS@
OBJEXT = @OBJEXT@
RRD_DEFAULT_FONT = @RRD_DEFAULT_FONT@
RUBY = @RUBY@
RUBY_MAKE_OPTIONS = @RUBY_MAKE_OPTIONS@
+SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
diff --git a/config.guess b/config.guess
index 396482d6cb50b24a598700992f65d340165591d6..278f9e9e07c1d1a3bda668e6529bcce3006cfbdf 100755 (executable)
--- a/config.guess
+++ b/config.guess
# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
# Inc.
-timestamp='2006-07-02'
+timestamp='2007-07-22'
# 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
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
+ sh5el) machine=sh5le-unknown ;;
*) machine=${UNAME_MACHINE_ARCH}-unknown ;;
esac
# The Operating System including object format, if it has switched
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
- i86pc:SunOS:5.*:*)
+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit ;;
sun4*:SunOS:6*:*)
i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin
exit ;;
- i*:MINGW*:*)
+ *:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
exit ;;
i*:windows32*:*)
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
exit ;;
- x86:Interix*:[3456]*)
- echo i586-pc-interix${UNAME_RELEASE}
- exit ;;
- EM64T:Interix*:[3456]*)
- echo x86_64-unknown-interix${UNAME_RELEASE}
- exit ;;
+ *:Interix*:[3456]*)
+ case ${UNAME_MACHINE} in
+ x86)
+ echo i586-pc-interix${UNAME_RELEASE}
+ exit ;;
+ EM64T | authenticamd)
+ echo x86_64-unknown-interix${UNAME_RELEASE}
+ exit ;;
+ esac ;;
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
echo i${UNAME_MACHINE}-pc-mks
exit ;;
x86_64:Linux:*:*)
echo x86_64-unknown-linux-gnu
exit ;;
+ xtensa:Linux:*:*)
+ echo xtensa-unknown-linux-gnu
+ exit ;;
i*86:Linux:*:*)
# The BFD linker knows what the default object file format is, so
# first see if it will tell us. cd to the root directory to prevent
SX-6:SUPER-UX:*:*)
echo sx6-nec-superux${UNAME_RELEASE}
exit ;;
+ SX-7:SUPER-UX:*:*)
+ echo sx7-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-8:SUPER-UX:*:*)
+ echo sx8-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-8R:SUPER-UX:*:*)
+ echo sx8r-nec-superux${UNAME_RELEASE}
+ exit ;;
Power*:Rhapsody:*:*)
echo powerpc-apple-rhapsody${UNAME_RELEASE}
exit ;;
diff --git a/config.sub b/config.sub
index fab0aa3556632a4aec253b77804270a096c11c3e..1761d8bdf6307c02067b3581e183ba2fdef7e1fa 100755 (executable)
--- a/config.sub
+++ b/config.sub
# 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
# Inc.
-timestamp='2006-09-20'
+timestamp='2007-06-28'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
| bfin \
| c4x | clipper \
| d10v | d30v | dlx | dsp16xx \
- | fr30 | frv \
+ | fido | fr30 | frv \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
- | maxq | mb | microblaze | mcore \
+ | maxq | mb | microblaze | mcore | mep \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
| mips64 | mips64el \
| clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| elxsi-* \
- | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| i*86-* | i860-* | i960-* | ia64-* \
basic_machine=craynv-cray
os=-unicosmp
;;
- cr16c)
- basic_machine=cr16c-unknown
+ cr16)
+ basic_machine=cr16-unknown
os=-elf
;;
crds | unos)
basic_machine=i386-pc
os=-mingw32
;;
+ mingw32ce)
+ basic_machine=arm-unknown
+ os=-mingw32ce
+ ;;
miniframe)
basic_machine=m68000-convergent
;;
basic_machine=sh-hitachi
os=-hms
;;
+ sh5el)
+ basic_machine=sh5le-unknown
+ ;;
sh64)
basic_machine=sh64-unknown
;;
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
| -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
- | -skyos* | -haiku* | -rdos* | -toppers*)
+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
m68*-cisco)
os=-aout
;;
+ mep-*)
+ os=-elf
+ ;;
mips*-cisco)
os=-elf
;;
diff --git a/configure b/configure
index 105dfce5d17f9fa0109b9c400acc5f6184931ee7..da7fd1fc096f5d09595a2d4c566efb5e81c0518b 100755 (executable)
--- a/configure
+++ b/configure
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61 for rrdtool 1.2.27.
+# Generated by GNU Autoconf 2.61 for rrdtool 1.2.28.
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
# Identity of this package.
PACKAGE_NAME='rrdtool'
PACKAGE_TARNAME='rrdtool'
-PACKAGE_VERSION='1.2.27'
-PACKAGE_STRING='rrdtool 1.2.27'
+PACKAGE_VERSION='1.2.28'
+PACKAGE_STRING='rrdtool 1.2.28'
PACKAGE_BUGREPORT=''
ac_default_prefix=/usr/local/rrdtool-$PACKAGE_VERSION
am__fastdepCC_TRUE
am__fastdepCC_FALSE
CPP
+SED
GREP
EGREP
LN_S
ECHO
AR
RANLIB
+DSYMUTIL
+NMEDIT
CXX
CXXFLAGS
ac_ct_CXX
# 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.2.27 to adapt to many kinds of systems.
+\`configure' configures rrdtool 1.2.28 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of rrdtool 1.2.27:";;
+ short | recursive ) echo "Configuration of rrdtool 1.2.28:";;
esac
cat <<\_ACEOF
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-rrdtool configure 1.2.27
+rrdtool configure 1.2.28
generated by GNU Autoconf 2.61
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
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.2.27, which was
+It was created by rrdtool $as_me 1.2.28, which was
generated by GNU Autoconf 2.61. Invocation command line was
$ $0 $@
@@ -2027,7 +2030,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-NUMVERS=1.2027
+NUMVERS=1.2028
ac_aux_dir=
for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
# Define the identity of the package.
PACKAGE='rrdtool'
- VERSION='1.2.27'
+ VERSION='1.2.28'
cat >>confdefs.h <<_ACEOF
test -z "$as_dir" && as_dir=.
for lt_ac_prog in sed gsed; do
for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+ if { test -f "$as_dir/$lt_ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$lt_ac_prog$ac_exec_ext"; }; then
lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
fi
done
done
done
+IFS=$as_save_IFS
lt_ac_max=0
lt_ac_count=0
# Add /usr/xpg4/bin/sed as it is typically found on Solaris
fi
SED=$lt_cv_path_SED
+
{ echo "$as_me:$LINENO: result: $SED" >&5
echo "${ECHO_T}$SED" >&6; }
echo "${ECHO_T}no, using $LN_S" >&6; }
fi
-{ echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5
-echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6; }
+{ echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5
+echo $ECHO_N "checking how to recognize dependent libraries... $ECHO_C" >&6; }
if test "${lt_cv_deplibs_check_method+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
# whether `pass_all' will *always* work, you probably want this one.
case $host_os in
-aix4* | aix5*)
+aix[4-9]*)
lt_cv_deplibs_check_method=pass_all
;;
mingw* | pw32*)
# Base MSYS/MinGW do not provide the 'file' command needed by
- # func_win32_libid shell function, so use a weaker test based on 'objdump'.
- lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
+ # func_win32_libid shell function, so use a weaker test based on 'objdump',
+ # unless we find 'file', for example because we are cross-compiling.
+ if ( file / ) >/dev/null 2>&1; then
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+ lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
;;
darwin* | rhapsody*)
esac
;;
-interix3*)
+interix[3-9]*)
# PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
;;
lt_cv_deplibs_check_method=pass_all
;;
+rdos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
solaris*)
lt_cv_deplibs_check_method=pass_all
;;
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 4749 "configure"' > conftest.$ac_ext
+ echo '#line 4764 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
rm -rf conftest*
;;
-x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+s390*-*linux*|sparc*-*linux*)
# Find out which ABI we are using.
echo 'int i;' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
case `/usr/bin/file conftest.o` in
*32-bit*)
case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_i386_fbsd"
+ ;;
x86_64-*linux*)
LD="${LD-ld} -m elf_i386"
;;
;;
*64-bit*)
case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_x86_64_fbsd"
+ ;;
x86_64-*linux*)
LD="${LD-ld} -m elf_x86_64"
;;
*64-bit*)
case $lt_cv_prog_gnu_ld in
yes*) LD="${LD-ld} -m elf64_sparc" ;;
- *) LD="${LD-ld} -64" ;;
+ *)
+ if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+ LD="${LD-ld} -64"
+ fi
+ ;;
esac
;;
esac
# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
-
# find the maximum length of command line arguments
{ echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6; }
fi
;;
*)
- # If test is not a shell built-in, we'll probably end up computing a
- # maximum length that is only half of the actual maximum length, but
- # we can't tell.
- SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
- while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \
+ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+ if test -n "$lt_cv_sys_max_cmd_len"; then
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ else
+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+ while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \
= "XX$teststring") >/dev/null 2>&1 &&
- new_result=`expr "X$teststring" : ".*" 2>&1` &&
- lt_cv_sys_max_cmd_len=$new_result &&
- test $i != 17 # 1/2 MB should be enough
- do
- i=`expr $i + 1`
- teststring=$teststring$teststring
- done
- teststring=
- # Add a significant safety factor because C++ compilers can tack on massive
- # amounts of additional arguments before passing them to the linker.
- # It appears as though 1/2 is a usable value.
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ new_result=`expr "X$teststring" : ".*" 2>&1` &&
+ lt_cv_sys_max_cmd_len=$new_result &&
+ test $i != 17 # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ teststring=$teststring$teststring
+ done
+ teststring=
+ # Add a significant safety factor because C++ compilers can tack on massive
+ # amounts of additional arguments before passing them to the linker.
+ # It appears as though 1/2 is a usable value.
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ fi
;;
esac
+
# Check for command to grab the raw symbol name followed by C symbol from nm.
{ echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5
echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6; }
echo "$progname: failed program was:" >&5
cat conftest.$ac_ext >&5
fi
- rm -f conftest* conftst*
+ rm -rf conftest* conftst*
# Do not use the global_symbol_pipe unless it works.
if test "$pipe_works" = yes; then
test -z "$ac_objext" && ac_objext=o
# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
old_postinstall_cmds='chmod 644 $oldlib'
old_postuninstall_cmds=
;;
esac
+
+ case $host_os in
+ rhapsody* | darwin*)
+ 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
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_DSYMUTIL+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$DSYMUTIL"; then
+ ac_cv_prog_DSYMUTIL="$DSYMUTIL" # 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_DSYMUTIL="${ac_tool_prefix}dsymutil"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+DSYMUTIL=$ac_cv_prog_DSYMUTIL
+if test -n "$DSYMUTIL"; then
+ { echo "$as_me:$LINENO: result: $DSYMUTIL" >&5
+echo "${ECHO_T}$DSYMUTIL" >&6; }
+else
+ { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+fi
+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
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_DSYMUTIL"; then
+ ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # 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_DSYMUTIL="dsymutil"
+ 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_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
+if test -n "$ac_ct_DSYMUTIL"; then
+ { echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5
+echo "${ECHO_T}$ac_ct_DSYMUTIL" >&6; }
+else
+ { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+ if test "x$ac_ct_DSYMUTIL" = x; then
+ DSYMUTIL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet. If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet. If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+ DSYMUTIL=$ac_ct_DSYMUTIL
+ fi
+else
+ DSYMUTIL="$ac_cv_prog_DSYMUTIL"
+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
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_NMEDIT+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$NMEDIT"; then
+ ac_cv_prog_NMEDIT="$NMEDIT" # 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_NMEDIT="${ac_tool_prefix}nmedit"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+NMEDIT=$ac_cv_prog_NMEDIT
+if test -n "$NMEDIT"; then
+ { echo "$as_me:$LINENO: result: $NMEDIT" >&5
+echo "${ECHO_T}$NMEDIT" >&6; }
+else
+ { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+fi
+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
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_NMEDIT"; then
+ ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # 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_NMEDIT="nmedit"
+ 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_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
+if test -n "$ac_ct_NMEDIT"; then
+ { echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5
+echo "${ECHO_T}$ac_ct_NMEDIT" >&6; }
+else
+ { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+ if test "x$ac_ct_NMEDIT" = x; then
+ NMEDIT=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet. If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet. If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+ NMEDIT=$ac_ct_NMEDIT
+ fi
+else
+ NMEDIT="$ac_cv_prog_NMEDIT"
+fi
+
+
+ { echo "$as_me:$LINENO: checking for -single_module linker flag" >&5
+echo $ECHO_N "checking for -single_module linker flag... $ECHO_C" >&6; }
+if test "${lt_cv_apple_cc_single_mod+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_apple_cc_single_mod=no
+ if test -z "${LT_MULTI_MODULE}"; then
+ # By default we will add the -single_module flag. You can override
+ # by either setting the environment variable LT_MULTI_MODULE
+ # non-empty at configure time, or by adding -multi_module to the
+ # link flags.
+ echo "int foo(void){return 1;}" > conftest.c
+ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+ -dynamiclib ${wl}-single_module conftest.c
+ if test -f libconftest.dylib; then
+ lt_cv_apple_cc_single_mod=yes
+ rm -rf libconftest.dylib*
+ fi
+ rm conftest.c
+ fi
+fi
+{ echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5
+echo "${ECHO_T}$lt_cv_apple_cc_single_mod" >&6; }
+ { echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5
+echo $ECHO_N "checking for -exported_symbols_list linker flag... $ECHO_C" >&6; }
+if test "${lt_cv_ld_exported_symbols_list+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&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
+/* end confdefs.h. */
+
+int
+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 "echo \"\$as_me:$LINENO: $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
+ 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 &&
+ $as_test_x conftest$ac_exeext; then
+ lt_cv_ld_exported_symbols_list=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ lt_cv_ld_exported_symbols_list=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS="$save_LDFLAGS"
+
+fi
+{ echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5
+echo "${ECHO_T}$lt_cv_ld_exported_symbols_list" >&6; }
+ case $host_os in
+ rhapsody* | darwin1.[0123])
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+ darwin1.*)
+ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+ darwin*)
+ # if running on 10.5 or later, the deployment target defaults
+ # to the OS version, if on x86, and 10.4, the deployment
+ # target defaults to 10.4. Don't you love it?
+ case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+ 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+ 10.[012]*)
+ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+ 10.*)
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+ esac
+ ;;
+ esac
+ if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+ _lt_dar_single_mod='$single_module'
+ fi
+ if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+ _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+ else
+ _lt_dar_export_syms="~$NMEDIT -s \$output_objdir/\${libname}-symbols.expsym \${lib}"
+ fi
+ if test "$DSYMUTIL" != ":"; then
+ _lt_dsymutil="~$DSYMUTIL \$lib || :"
+ else
+ _lt_dsymutil=
+ fi
+ ;;
+ esac
+
+
enable_dlopen=no
enable_win32_dll=no
objext=$objext
# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\n"
+lt_simple_compile_test_code="int some_variable = 0;"
# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}\n'
+lt_simple_link_test_code='int main(){return(0);}'
# If no C compiler was specified, use CC.
# save warnings/boilerplate of simple test code
ac_outfile=conftest.$ac_objext
-printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
_lt_compiler_boilerplate=`cat conftest.err`
$rm conftest*
ac_outfile=conftest.$ac_objext
-printf "$lt_simple_link_test_code" >conftest.$ac_ext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
_lt_linker_boilerplate=`cat conftest.err`
-$rm conftest*
+$rm -r conftest*
else
lt_cv_prog_compiler_rtti_exceptions=no
ac_outfile=conftest.$ac_objext
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
lt_compiler_flag="-fno-rtti -fno-exceptions"
# Insert the option either (1) after the last *FLAGS variable, or
# (2) before a word containing "conftest.", or (3) at the end.
-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:7246: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:7587: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:7250: \$? = $ac_status" >&5
+ echo "$as_me:7591: \$? = $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.
@@ -7298,13 +7639,15 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
;;
- beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
# PIC is the default for these OSes.
;;
- mingw* | pw32* | os2*)
+ mingw* | cygwin* | pw32* | os2*)
# This hack is so that the source file can tell whether it is being
# built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
lt_prog_compiler_pic='-DDLL_EXPORT'
;;
lt_prog_compiler_pic='-fno-common'
;;
- interix3*)
+ interix[3-9]*)
# Interix 3.x gcc -fpic/-fPIC options generate broken code.
# Instead, we relocate shared libraries at runtime.
;;
esac
;;
- mingw* | pw32* | os2*)
+ mingw* | cygwin* | pw32* | os2*)
# This hack is so that the source file can tell whether it is being
# built for inclusion in a dll (and should export symbols for example).
lt_prog_compiler_pic='-DDLL_EXPORT'
@@ -7424,6 +7767,22 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
# All Alpha code is PIC.
lt_prog_compiler_static='-non_shared'
;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C 5.9
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl='-Wl,'
+ ;;
+ *Sun\ F*)
+ # Sun Fortran 8.3 passes all unrecognized flags to the linker
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl=''
+ ;;
+ esac
+ ;;
esac
;;
@@ -7433,6 +7792,10 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
lt_prog_compiler_static='-non_shared'
;;
+ rdos*)
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
solaris*)
lt_prog_compiler_pic='-KPIC'
lt_prog_compiler_static='-Bstatic'
{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_pic_works+set}" = set; then
+if test "${lt_cv_prog_compiler_pic_works+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- lt_prog_compiler_pic_works=no
+ lt_cv_prog_compiler_pic_works=no
ac_outfile=conftest.$ac_objext
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
# Insert the option either (1) after the last *FLAGS variable, or
# (2) before a word containing "conftest.", or (3) at the end.
-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:7514: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:7877: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:7518: \$? = $ac_status" >&5
+ echo "$as_me:7881: \$? = $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.
$echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
$SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_prog_compiler_pic_works=yes
+ lt_cv_prog_compiler_pic_works=yes
fi
fi
$rm conftest*
fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6; }
+{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_pic_works" >&6; }
-if test x"$lt_prog_compiler_pic_works" = xyes; then
+if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
case $lt_prog_compiler_pic in
"" | " "*) ;;
*) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_static_works+set}" = set; then
+if test "${lt_cv_prog_compiler_static_works+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- lt_prog_compiler_static_works=no
+ lt_cv_prog_compiler_static_works=no
save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
- printf "$lt_simple_link_test_code" > conftest.$ac_ext
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
# The linker can only warn and ignore the option if not recognized
# So say no if there are warnings
$echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
$SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
if diff conftest.exp conftest.er2 >/dev/null; then
- lt_prog_compiler_static_works=yes
+ lt_cv_prog_compiler_static_works=yes
fi
else
- lt_prog_compiler_static_works=yes
+ lt_cv_prog_compiler_static_works=yes
fi
fi
- $rm conftest*
+ $rm -r conftest*
LDFLAGS="$save_LDFLAGS"
fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5
-echo "${ECHO_T}$lt_prog_compiler_static_works" >&6; }
+{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_static_works" >&6; }
-if test x"$lt_prog_compiler_static_works" = xyes; then
+if test x"$lt_cv_prog_compiler_static_works" = xyes; then
:
else
lt_prog_compiler_static=
mkdir conftest
cd conftest
mkdir out
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
lt_compiler_flag="-o out/conftest2.$ac_objext"
# Insert the option either (1) after the last *FLAGS variable, or
-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:7618: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:7981: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:7622: \$? = $ac_status" >&5
+ echo "$as_me:7985: \$? = $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
@@ -7699,12 +8062,13 @@ echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared librar
# it will be wrapped by ` (' and `)$', so one must not match beginning or
# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
# as well as any symbol that contains `d'.
- exclude_expsyms="_GLOBAL_OFFSET_TABLE_"
+ exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
# platforms (ab)use it in PIC code, but their linkers get confused if
# the symbol is explicitly referenced. Since portable code cannot
# rely on this symbol name, it's probably fine to never include it in
# preloaded symbol tables.
+ # Exclude shared library initialization/finalization symbols.
extract_expsyms_cmds=
# Just being paranoid about ensuring that cc_basename is set.
for cc_temp in $compiler""; do
# See if GNU ld supports shared libraries.
case $host_os in
- aix3* | aix4* | aix5*)
+ aix[3-9]*)
# On AIX/PPC, the GNU linker is very broken
if test "$host_cpu" != ia64; then
ld_shlibs=no
allow_undefined_flag=unsupported
always_export_symbols=no
enable_shared_with_static_runtimes=yes
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
fi
;;
- interix3*)
+ interix[3-9]*)
hardcode_direct=no
hardcode_shlibpath_var=no
hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
;;
- linux* | k*bsd*-gnu)
+ gnu* | linux* | k*bsd*-gnu)
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
tmp_addflag=
case $cc_basename,$host_cpu in
ifc* | ifort*) # Intel Fortran compiler
tmp_addflag=' -nofor_main' ;;
esac
- archive_cmds='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*) # Sun C 5.9
+ whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_sharedflag='-G' ;;
+ *Sun\ F*) # Sun Fortran 8.3
+ tmp_sharedflag='-G' ;;
+ *)
+ tmp_sharedflag='-shared' ;;
+ esac
+ archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
if test $supports_anon_versioning = yes; then
archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~
cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
$echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
fi
link_all_deplibs=no
else
fi
;;
- aix4* | aix5*)
+ aix[4-9]*)
if test "$host_cpu" = ia64; then
# On IA64, the linker does run time linking by default, so we don't
# have to do anything special.
# Test if we are trying to use run time linking or normal
# AIX style linking. If -brtl is somewhere in LDFLAGS, we
# need to do runtime linking.
- case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
for ld_flag in $LDFLAGS; do
if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
aix_use_runtimelinking=yes
strings "$collect2name" | grep resolve_lib_name >/dev/null
then
# We have reworked collect2
- hardcode_direct=yes
+ :
else
# We have old collect2
hardcode_direct=unsupported
} && test -s conftest$ac_exeext &&
$as_test_x conftest$ac_exeext; then
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`; fi
+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
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
} && test -s conftest$ac_exeext &&
$as_test_x conftest$ac_exeext; then
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`; fi
+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
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
# The linker will automatically build a .lib file if we build a DLL.
old_archive_From_new_cmds='true'
# FIXME: Should let the user specify the lib program.
- old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs'
+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
fix_srcfile_path='`cygpath -w "$srcfile"`'
enable_shared_with_static_runtimes=yes
;;
link_all_deplibs=yes
if test "$GCC" = yes ; then
output_verbose_link_cmd='echo'
- archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
- module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
- archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+ module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+ archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+ module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
else
case $cc_basename in
xlc*)
output_verbose_link_cmd='echo'
- archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+ archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring'
module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
# Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
- archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
;;
*)
;;
openbsd*)
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- export_dynamic_flag_spec='${wl}-E'
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec='${wl}-E'
+ else
+ case $host_os in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ *)
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
else
- case $host_os in
- openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-R$libdir'
- ;;
- *)
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- ;;
- esac
+ ld_shlibs=no
fi
;;
case $host_os in
solaris2.[0-5] | solaris2.[0-5].*) ;;
*)
- # The compiler driver will combine linker options so we
- # cannot just pass the convience library names through
- # without $wl, iff we do not link with $LD.
- # Luckily, gcc supports the same syntax we need for Sun Studio.
+ # The compiler driver will combine and reorder linker options,
+ # but understands `-z linker_flag'. GCC discards it without `$wl',
+ # but is careful enough not to reorder.
# Supported since Solaris 2.6 (maybe 2.5.1?)
- case $wlarc in
- '')
- whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;;
- *)
- whole_archive_flag_spec='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
- esac ;;
+ if test "$GCC" = yes; then
+ whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+ else
+ whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
+ fi
+ ;;
esac
link_all_deplibs=yes
;;
fi
;;
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*)
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
no_undefined_flag='${wl}-z,text'
archive_cmds_need_lc=no
hardcode_shlibpath_var=no
{ echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
$rm conftest*
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
version_type=none
dynamic_linker="$host_os ld.so"
sys_lib_dlsearch_path_spec="/lib /usr/lib"
+
if test "$GCC" = yes; then
- sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
- if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
+ case $host_os in
+ darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
+ *) lt_awk_arg="/^libraries:/" ;;
+ esac
+ lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"`
+ if echo "$lt_search_path_spec" | grep ';' >/dev/null ; then
# if the path contains ";" then we assume it to be the separator
# otherwise default to the standard path separator (i.e. ":") - it is
# assumed that no part of a normal pathname contains ";" but that should
# okay in the real world where ";" in dirpaths is itself problematic.
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e 's/;/ /g'`
else
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
fi
+ # Ok, now we have the path, separated by spaces, we can step through it
+ # and add multilib dir if necessary.
+ lt_tmp_lt_search_path_spec=
+ lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+ for lt_sys_path in $lt_search_path_spec; do
+ if test -d "$lt_sys_path/$lt_multi_os_dir"; then
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
+ else
+ test -d "$lt_sys_path" && \
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+ fi
+ done
+ lt_search_path_spec=`echo $lt_tmp_lt_search_path_spec | awk '
+BEGIN {RS=" "; FS="/|\n";} {
+ lt_foo="";
+ lt_count=0;
+ for (lt_i = NF; lt_i > 0; lt_i--) {
+ if ($lt_i != "" && $lt_i != ".") {
+ if ($lt_i == "..") {
+ lt_count++;
+ } else {
+ if (lt_count == 0) {
+ lt_foo="/" $lt_i lt_foo;
+ } else {
+ lt_count--;
+ }
+ }
+ }
+ }
+ if (lt_foo != "") { lt_freq[lt_foo]++; }
+ if (lt_freq[lt_foo] == 1) { print lt_foo; }
+}'`
+ sys_lib_search_path_spec=`echo $lt_search_path_spec`
else
sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
fi
soname_spec='${libname}${release}${shared_ext}$major'
;;
-aix4* | aix5*)
+aix[4-9]*)
version_type=linux
need_lib_prefix=no
need_version=no
shlibpath_overrides_runpath=yes
shlibpath_var=DYLD_LIBRARY_PATH
shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
- # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
- if test "$GCC" = yes; then
- sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
- else
- sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
- fi
+
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
;;
shlibpath_overrides_runpath=no
hardcode_into_libs=yes
;;
- freebsd*) # from 4.6 on
+ *) # from 4.6 on, and DragonFly
shlibpath_overrides_runpath=yes
hardcode_into_libs=yes
;;
postinstall_cmds='chmod 555 $lib'
;;
-interix3*)
+interix[3-9]*)
version_type=linux
need_lib_prefix=no
need_version=no
# Append ld.so.conf contents to the search path
if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
fi
sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
;;
+rdos*)
+ dynamic_linker=no
+ ;;
+
solaris*)
version_type=linux
need_lib_prefix=no
echo "${ECHO_T}$dynamic_linker" >&6; }
test "$dynamic_linker" = no && can_build_shared=no
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"
+fi
+
+sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"
+fi
+
+sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
if test "$GCC" = yes; then
variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
darwin*)
if test -n "$STRIP" ; then
striplib="$STRIP -x"
+ old_striplib="$STRIP -S"
{ echo "$as_me:$LINENO: result: yes" >&5
echo "${ECHO_T}yes" >&6; }
else
{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; }
if test $ac_cv_lib_dld_shl_load = yes; then
- lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
+ lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
else
{ echo "$as_me:$LINENO: checking for dlopen" >&5
echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; }
{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; }
if test $ac_cv_lib_dld_dld_link = yes; then
- lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
+ lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
fi
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 9915 "configure"
+#line 10358 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 10015 "configure"
+#line 10458 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
fi
;;
-aix4* | aix5*)
+aix[4-9]*)
if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
test "$enable_shared" = yes && enable_static=no
fi
predeps \
postdeps \
compiler_lib_search_path \
+ compiler_lib_search_dirs \
archive_cmds \
archive_expsym_cmds \
postinstall_cmds \
module_cmds \
module_expsym_cmds \
lt_cv_prog_compiler_c_o \
+ fix_srcfile_path \
exclude_expsyms \
include_expsyms; do
# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
# Free Software Foundation, Inc.
#
# This file is part of GNU Libtool:
# shared library.
postdeps=$lt_postdeps
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs
+
# The library search path used internally by the compiler when linking
# a shared library.
compiler_lib_search_path=$lt_compiler_lib_search_path
sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path"
+fix_srcfile_path=$lt_fix_srcfile_path
# Set to yes if exported symbols are required.
always_export_symbols=$always_export_symbols
predeps_CXX=
postdeps_CXX=
compiler_lib_search_path_CXX=
+compiler_lib_search_dirs_CXX=
# Source file extension for C++ test sources.
ac_ext=cpp
objext_CXX=$objext
# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\n"
+lt_simple_compile_test_code="int some_variable = 0;"
# Code to be used in simple link tests
-lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n'
+lt_simple_link_test_code='int main(int, char *[]) { return(0); }'
# ltmain only uses $CC for tagged configurations so make sure $CC is set.
# save warnings/boilerplate of simple test code
ac_outfile=conftest.$ac_objext
-printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
_lt_compiler_boilerplate=`cat conftest.err`
$rm conftest*
ac_outfile=conftest.$ac_objext
-printf "$lt_simple_link_test_code" >conftest.$ac_ext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
_lt_linker_boilerplate=`cat conftest.err`
-$rm conftest*
+$rm -r conftest*
# Allow CC to be a program name with arguments.
# FIXME: insert proper C++ library support
ld_shlibs_CXX=no
;;
- aix4* | aix5*)
+ aix[4-9]*)
if test "$host_cpu" = ia64; then
# On IA64, the linker does run time linking by default, so we don't
# have to do anything special.
# Test if we are trying to use run time linking or normal
# AIX style linking. If -brtl is somewhere in LDFLAGS, we
# need to do runtime linking.
- case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
for ld_flag in $LDFLAGS; do
case $ld_flag in
*-brtl*)
strings "$collect2name" | grep resolve_lib_name >/dev/null
then
# We have reworked collect2
- hardcode_direct_CXX=yes
+ :
else
# We have old collect2
hardcode_direct_CXX=unsupported
} && test -s conftest$ac_exeext &&
$as_test_x conftest$ac_exeext; then
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`; fi
+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
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
} && test -s conftest$ac_exeext &&
$as_test_x conftest$ac_exeext; then
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`; fi
+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
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
fi
;;
darwin* | rhapsody*)
- case $host_os in
- rhapsody* | darwin1.[012])
- allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress'
- ;;
- *) # Darwin 1.3 on
- if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
- allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
- else
- case ${MACOSX_DEPLOYMENT_TARGET} in
- 10.[012])
- allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
- ;;
- 10.*)
- allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup'
- ;;
- esac
- fi
- ;;
- esac
archive_cmds_need_lc_CXX=no
hardcode_direct_CXX=no
hardcode_automatic_CXX=yes
hardcode_shlibpath_var_CXX=unsupported
whole_archive_flag_spec_CXX=''
link_all_deplibs_CXX=yes
-
- if test "$GXX" = yes ; then
- lt_int_apple_cc_single_mod=no
+ allow_undefined_flag_CXX="$_lt_dar_allow_undefined"
+ if test "$GXX" = yes ; then
output_verbose_link_cmd='echo'
- if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then
- lt_int_apple_cc_single_mod=yes
+ archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+ module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+ archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+ module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+ if test "$lt_cv_apple_cc_single_mod" != "yes"; then
+ archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
+ archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
fi
- if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
- archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
- else
- archive_cmds_CXX='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
- fi
- module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
- if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
- archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- else
- archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- fi
- module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
else
case $cc_basename in
xlc*)
output_verbose_link_cmd='echo'
- archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+ archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring'
module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
# Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
- archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
;;
*)
hardcode_libdir_separator_CXX=:
case $host_cpu in
- hppa*64*|ia64*)
- hardcode_libdir_flag_spec_ld_CXX='+b $libdir'
- ;;
+ hppa*64*|ia64*) ;;
*)
export_dynamic_flag_spec_CXX='${wl}-E'
;;
;;
esac
;;
- interix3*)
+ interix[3-9]*)
hardcode_direct_CXX=no
hardcode_shlibpath_var_CXX=no
hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
;;
- pgCC*)
+ pgCC* | pgcpp*)
# Portland Group C++ compiler
archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
# dependencies.
output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+ no_undefined_flag_CXX=' -zdefs'
+ archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
+ hardcode_libdir_flag_spec_CXX='-R$libdir'
+ whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+
+ # Not sure whether something based on
+ # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
+ # would be better.
+ output_verbose_link_cmd='echo'
+
+ # Archives containing C++ object files must be created using
+ # "CC -xar", where "CC" is the Sun C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
+ ;;
+ esac
+ ;;
esac
;;
lynxos*)
ld_shlibs_CXX=no
;;
openbsd*)
- hardcode_direct_CXX=yes
- hardcode_shlibpath_var_CXX=no
- archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
- hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
- export_dynamic_flag_spec_CXX='${wl}-E'
- whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct_CXX=yes
+ hardcode_shlibpath_var_CXX=no
+ archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+ export_dynamic_flag_spec_CXX='${wl}-E'
+ whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ fi
+ output_verbose_link_cmd='echo'
+ else
+ ld_shlibs_CXX=no
fi
- output_verbose_link_cmd='echo'
;;
osf3*)
case $cc_basename in
case $host_os in
solaris2.[0-5] | solaris2.[0-5].*) ;;
*)
- # The C++ compiler is used as linker so we must use $wl
- # flag to pass the commands to the underlying system
- # linker. We must also pass each convience library through
- # to the system linker between allextract/defaultextract.
- # The C++ compiler will combine linker options so we
- # cannot just pass the convience library names through
- # without $wl.
+ # The compiler driver will combine and reorder linker options,
+ # but understands `-z linker_flag'.
# Supported since Solaris 2.6 (maybe 2.5.1?)
- whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract'
+ whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract'
;;
esac
link_all_deplibs_CXX=yes
fi
hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+ ;;
+ esac
fi
;;
esac
GCC_CXX="$GXX"
LD_CXX="$LD"
-
cat > conftest.$ac_ext <<EOF
class Foo
{
$rm -f confest.$objext
+compiler_lib_search_dirs_CXX=
+if test -n "$compiler_lib_search_path_CXX"; then
+ compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
+fi
+
# PORTME: override above test on systems where it is broken
case $host_os in
-interix3*)
+interix[3-9]*)
# Interix 3.5 installs completely hosed .la files for C++, so rather than
# hack all around it, let's just trust "g++" to DTRT.
predep_objects_CXX=
postdeps_CXX=
;;
+linux*)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+ #
+ # The more standards-conforming stlport4 library is
+ # incompatible with the Cstd library. Avoid specifying
+ # it if it's in CXXFLAGS. Ignore libCrun as
+ # -library=stlport4 depends on it.
+ case " $CXX $CXXFLAGS " in
+ *" -library=stlport4 "*)
+ solaris_use_stlport4=yes
+ ;;
+ esac
+ if test "$solaris_use_stlport4" != yes; then
+ postdeps_CXX='-library=Cstd -library=Crun'
+ fi
+ ;;
+ esac
+ ;;
+
solaris*)
case $cc_basename in
CC*)
+ # The more standards-conforming stlport4 library is
+ # incompatible with the Cstd library. Avoid specifying
+ # it if it's in CXXFLAGS. Ignore libCrun as
+ # -library=stlport4 depends on it.
+ case " $CXX $CXXFLAGS " in
+ *" -library=stlport4 "*)
+ solaris_use_stlport4=yes
+ ;;
+ esac
+
# Adding this requires a known-good setup of shared libraries for
# Sun compiler versions before 5.6, else PIC objects from an old
# archive will be linked into the output, leading to subtle bugs.
- postdeps_CXX='-lCstd -lCrun'
+ if test "$solaris_use_stlport4" != yes; then
+ postdeps_CXX='-library=Cstd -library=Crun'
+ fi
;;
esac
;;
esac
-
case " $postdeps_CXX " in
*" -lc "*) archive_cmds_need_lc_CXX=no ;;
esac
@@ -12070,12 +12568,14 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
# like `-m68040'.
lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
;;
- beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
# PIC is the default for these OSes.
;;
- mingw* | os2* | pw32*)
+ mingw* | cygwin* | os2* | pw32*)
# This hack is so that the source file can tell whether it is being
# built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
;;
darwin* | rhapsody*)
@@ -12087,7 +12587,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
# DJGPP does not support shared libraries at all
lt_prog_compiler_pic_CXX=
;;
- interix3*)
+ interix[3-9]*)
# Interix 3.x gcc -fpic/-fPIC options generate broken code.
# Instead, we relocate shared libraries at runtime.
;;
@@ -12113,7 +12613,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
esac
else
case $host_os in
- aix4* | aix5*)
+ aix[4-9]*)
# All AIX code is PIC.
if test "$host_cpu" = ia64; then
# AIX 5 now supports IA64 processor
@@ -12209,7 +12709,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
lt_prog_compiler_pic_CXX='-KPIC'
lt_prog_compiler_static_CXX='-static'
;;
- pgCC*)
+ pgCC* | pgcpp*)
# Portland Group C++ compiler.
lt_prog_compiler_wl_CXX='-Wl,'
lt_prog_compiler_pic_CXX='-fpic'
@@ -12223,6 +12723,14 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
lt_prog_compiler_static_CXX='-non_shared'
;;
*)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+ lt_prog_compiler_pic_CXX='-KPIC'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ lt_prog_compiler_wl_CXX='-Qoption ld '
+ ;;
+ esac
;;
esac
;;
{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then
+if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- lt_prog_compiler_pic_works_CXX=no
+ lt_cv_prog_compiler_pic_works_CXX=no
ac_outfile=conftest.$ac_objext
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC"
# Insert the option either (1) after the last *FLAGS variable, or
# (2) before a word containing "conftest.", or (3) at the end.
-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:12351: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:12859: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:12355: \$? = $ac_status" >&5
+ echo "$as_me:12863: \$? = $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.
$echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
$SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_prog_compiler_pic_works_CXX=yes
+ lt_cv_prog_compiler_pic_works_CXX=yes
fi
fi
$rm conftest*
fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6; }
+{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_CXX" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_pic_works_CXX" >&6; }
-if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then
+if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then
case $lt_prog_compiler_pic_CXX in
"" | " "*) ;;
*) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"
{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_static_works_CXX+set}" = set; then
+if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- lt_prog_compiler_static_works_CXX=no
+ lt_cv_prog_compiler_static_works_CXX=no
save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
- printf "$lt_simple_link_test_code" > conftest.$ac_ext
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
# The linker can only warn and ignore the option if not recognized
# So say no if there are warnings
$echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
$SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
if diff conftest.exp conftest.er2 >/dev/null; then
- lt_prog_compiler_static_works_CXX=yes
+ lt_cv_prog_compiler_static_works_CXX=yes
fi
else
- lt_prog_compiler_static_works_CXX=yes
+ lt_cv_prog_compiler_static_works_CXX=yes
fi
fi
- $rm conftest*
+ $rm -r conftest*
LDFLAGS="$save_LDFLAGS"
fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5
-echo "${ECHO_T}$lt_prog_compiler_static_works_CXX" >&6; }
+{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_CXX" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_static_works_CXX" >&6; }
-if test x"$lt_prog_compiler_static_works_CXX" = xyes; then
+if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then
:
else
lt_prog_compiler_static_CXX=
mkdir conftest
cd conftest
mkdir out
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
lt_compiler_flag="-o out/conftest2.$ac_objext"
# Insert the option either (1) after the last *FLAGS variable, or
-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:12455: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:12963: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:12459: \$? = $ac_status" >&5
+ echo "$as_me:12967: \$? = $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
@@ -12509,7 +13017,7 @@ echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared librar
export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
case $host_os in
- aix4* | aix5*)
+ aix[4-9]*)
# If we're using GNU nm, then we don't want the "-C" option.
# -C means demangle to AIX nm, but means don't demangle with GNU nm
if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
@@ -12522,7 +13030,7 @@ echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared librar
export_symbols_cmds_CXX="$ltdll_cmds"
;;
cygwin* | mingw*)
- export_symbols_cmds_CXX='$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'
+ export_symbols_cmds_CXX='$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)
link_all_deplibs_CXX=no
@@ -12531,6 +13039,7 @@ echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared librar
export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
;;
esac
+ exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
{ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
echo "${ECHO_T}$ld_shlibs_CXX" >&6; }
{ echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
$rm conftest*
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
version_type=none
dynamic_linker="$host_os ld.so"
sys_lib_dlsearch_path_spec="/lib /usr/lib"
-if test "$GCC" = yes; then
- sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
- if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
- # if the path contains ";" then we assume it to be the separator
- # otherwise default to the standard path separator (i.e. ":") - it is
- # assumed that no part of a normal pathname contains ";" but that should
- # okay in the real world where ";" in dirpaths is itself problematic.
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
-else
- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
+
need_lib_prefix=unknown
hardcode_into_libs=no
soname_spec='${libname}${release}${shared_ext}$major'
;;
-aix4* | aix5*)
+aix[4-9]*)
version_type=linux
need_lib_prefix=no
need_version=no
shlibpath_overrides_runpath=yes
shlibpath_var=DYLD_LIBRARY_PATH
shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
- # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
- if test "$GCC" = yes; then
- sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
- else
- sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
- fi
+
sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
;;
shlibpath_overrides_runpath=no
hardcode_into_libs=yes
;;
- freebsd*) # from 4.6 on
+ *) # from 4.6 on, and DragonFly
shlibpath_overrides_runpath=yes
hardcode_into_libs=yes
;;
postinstall_cmds='chmod 555 $lib'
;;
-interix3*)
+interix[3-9]*)
version_type=linux
need_lib_prefix=no
need_version=no
# Append ld.so.conf contents to the search path
if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
fi
sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
;;
+rdos*)
+ dynamic_linker=no
+ ;;
+
solaris*)
version_type=linux
need_lib_prefix=no
echo "${ECHO_T}$dynamic_linker" >&6; }
test "$dynamic_linker" = no && can_build_shared=no
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"
+fi
+
+sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"
+fi
+
+sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
if test "$GCC" = yes; then
variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
predeps_CXX \
postdeps_CXX \
compiler_lib_search_path_CXX \
+ compiler_lib_search_dirs_CXX \
archive_cmds_CXX \
archive_expsym_cmds_CXX \
postinstall_cmds_CXX \
module_cmds_CXX \
module_expsym_cmds_CXX \
lt_cv_prog_compiler_c_o_CXX \
+ fix_srcfile_path_CXX \
exclude_expsyms_CXX \
include_expsyms_CXX; do
# shared library.
postdeps=$lt_postdeps_CXX
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX
+
# The library search path used internally by the compiler when linking
# a shared library.
compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path_CXX"
+fix_srcfile_path=$lt_fix_srcfile_path
# Set to yes if exported symbols are required.
always_export_symbols=$always_export_symbols_CXX
objext_F77=$objext
# Code to be used in simple compile tests
-lt_simple_compile_test_code=" subroutine t\n return\n end\n"
+lt_simple_compile_test_code="\
+ subroutine t
+ return
+ end
+"
# Code to be used in simple link tests
-lt_simple_link_test_code=" program t\n end\n"
+lt_simple_link_test_code="\
+ program t
+ end
+"
# ltmain only uses $CC for tagged configurations so make sure $CC is set.
# save warnings/boilerplate of simple test code
ac_outfile=conftest.$ac_objext
-printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
_lt_compiler_boilerplate=`cat conftest.err`
$rm conftest*
ac_outfile=conftest.$ac_objext
-printf "$lt_simple_link_test_code" >conftest.$ac_ext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
_lt_linker_boilerplate=`cat conftest.err`
-$rm conftest*
+$rm -r conftest*
# Allow CC to be a program name with arguments.
postinstall_cmds='$RANLIB $lib'
fi
;;
-aix4* | aix5*)
+aix[4-9]*)
if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
test "$enable_shared" = yes && enable_static=no
fi
@@ -13800,13 +14323,15 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4'
;;
- beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
# PIC is the default for these OSes.
;;
- mingw* | pw32* | os2*)
+ mingw* | cygwin* | pw32* | os2*)
# This hack is so that the source file can tell whether it is being
# built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
lt_prog_compiler_pic_F77='-DDLL_EXPORT'
;;
@@ -13816,7 +14341,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
lt_prog_compiler_pic_F77='-fno-common'
;;
- interix3*)
+ interix[3-9]*)
# Interix 3.x gcc -fpic/-fPIC options generate broken code.
# Instead, we relocate shared libraries at runtime.
;;
@@ -13874,7 +14399,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
esac
;;
- mingw* | pw32* | os2*)
+ mingw* | cygwin* | pw32* | os2*)
# This hack is so that the source file can tell whether it is being
# built for inclusion in a dll (and should export symbols for example).
lt_prog_compiler_pic_F77='-DDLL_EXPORT'
@@ -13926,6 +14451,22 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
# All Alpha code is PIC.
lt_prog_compiler_static_F77='-non_shared'
;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C 5.9
+ lt_prog_compiler_pic_F77='-KPIC'
+ lt_prog_compiler_static_F77='-Bstatic'
+ lt_prog_compiler_wl_F77='-Wl,'
+ ;;
+ *Sun\ F*)
+ # Sun Fortran 8.3 passes all unrecognized flags to the linker
+ lt_prog_compiler_pic_F77='-KPIC'
+ lt_prog_compiler_static_F77='-Bstatic'
+ lt_prog_compiler_wl_F77=''
+ ;;
+ esac
+ ;;
esac
;;
@@ -13935,6 +14476,10 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
lt_prog_compiler_static_F77='-non_shared'
;;
+ rdos*)
+ lt_prog_compiler_static_F77='-non_shared'
+ ;;
+
solaris*)
lt_prog_compiler_pic_F77='-KPIC'
lt_prog_compiler_static_F77='-Bstatic'
{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5
echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_pic_works_F77+set}" = set; then
+if test "${lt_cv_prog_compiler_pic_works_F77+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- lt_prog_compiler_pic_works_F77=no
+ lt_cv_prog_compiler_pic_works_F77=no
ac_outfile=conftest.$ac_objext
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
lt_compiler_flag="$lt_prog_compiler_pic_F77"
# Insert the option either (1) after the last *FLAGS variable, or
# (2) before a word containing "conftest.", or (3) at the end.
-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:14016: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:14561: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:14020: \$? = $ac_status" >&5
+ echo "$as_me:14565: \$? = $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.
$echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
$SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_prog_compiler_pic_works_F77=yes
+ lt_cv_prog_compiler_pic_works_F77=yes
fi
fi
$rm conftest*
fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6; }
+{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_F77" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_pic_works_F77" >&6; }
-if test x"$lt_prog_compiler_pic_works_F77" = xyes; then
+if test x"$lt_cv_prog_compiler_pic_works_F77" = xyes; then
case $lt_prog_compiler_pic_F77 in
"" | " "*) ;;
*) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;;
wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\"
{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_static_works_F77+set}" = set; then
+if test "${lt_cv_prog_compiler_static_works_F77+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- lt_prog_compiler_static_works_F77=no
+ lt_cv_prog_compiler_static_works_F77=no
save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
- printf "$lt_simple_link_test_code" > conftest.$ac_ext
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
# The linker can only warn and ignore the option if not recognized
# So say no if there are warnings
$echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
$SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
if diff conftest.exp conftest.er2 >/dev/null; then
- lt_prog_compiler_static_works_F77=yes
+ lt_cv_prog_compiler_static_works_F77=yes
fi
else
- lt_prog_compiler_static_works_F77=yes
+ lt_cv_prog_compiler_static_works_F77=yes
fi
fi
- $rm conftest*
+ $rm -r conftest*
LDFLAGS="$save_LDFLAGS"
fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_F77" >&5
-echo "${ECHO_T}$lt_prog_compiler_static_works_F77" >&6; }
+{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_F77" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_static_works_F77" >&6; }
-if test x"$lt_prog_compiler_static_works_F77" = xyes; then
+if test x"$lt_cv_prog_compiler_static_works_F77" = xyes; then
:
else
lt_prog_compiler_static_F77=
mkdir conftest
cd conftest
mkdir out
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
lt_compiler_flag="-o out/conftest2.$ac_objext"
# Insert the option either (1) after the last *FLAGS variable, or
-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:14120: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:14665: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:14124: \$? = $ac_status" >&5
+ echo "$as_me:14669: \$? = $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
@@ -14201,12 +14746,13 @@ echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared librar
# it will be wrapped by ` (' and `)$', so one must not match beginning or
# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
# as well as any symbol that contains `d'.
- exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_"
+ exclude_expsyms_F77='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
# platforms (ab)use it in PIC code, but their linkers get confused if
# the symbol is explicitly referenced. Since portable code cannot
# rely on this symbol name, it's probably fine to never include it in
# preloaded symbol tables.
+ # Exclude shared library initialization/finalization symbols.
extract_expsyms_cmds=
# Just being paranoid about ensuring that cc_basename is set.
for cc_temp in $compiler""; do
# See if GNU ld supports shared libraries.
case $host_os in
- aix3* | aix4* | aix5*)
+ aix[3-9]*)
# On AIX/PPC, the GNU linker is very broken
if test "$host_cpu" != ia64; then
ld_shlibs_F77=no
allow_undefined_flag_F77=unsupported
always_export_symbols_F77=no
enable_shared_with_static_runtimes_F77=yes
- export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+ export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
fi
;;
- interix3*)
+ interix[3-9]*)
hardcode_direct_F77=no
hardcode_shlibpath_var_F77=no
hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
archive_expsym_cmds_F77='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
;;
- linux* | k*bsd*-gnu)
+ gnu* | linux* | k*bsd*-gnu)
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
tmp_addflag=
case $cc_basename,$host_cpu in
ifc* | ifort*) # Intel Fortran compiler
tmp_addflag=' -nofor_main' ;;
esac
- archive_cmds_F77='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*) # Sun C 5.9
+ whole_archive_flag_spec_F77='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_sharedflag='-G' ;;
+ *Sun\ F*) # Sun Fortran 8.3
+ tmp_sharedflag='-G' ;;
+ *)
+ tmp_sharedflag='-shared' ;;
+ esac
+ archive_cmds_F77='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
if test $supports_anon_versioning = yes; then
archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~
cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
$echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
fi
link_all_deplibs_F77=no
else
fi
;;
- aix4* | aix5*)
+ aix[4-9]*)
if test "$host_cpu" = ia64; then
# On IA64, the linker does run time linking by default, so we don't
# have to do anything special.
# Test if we are trying to use run time linking or normal
# AIX style linking. If -brtl is somewhere in LDFLAGS, we
# need to do runtime linking.
- case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
for ld_flag in $LDFLAGS; do
if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
aix_use_runtimelinking=yes
strings "$collect2name" | grep resolve_lib_name >/dev/null
then
# We have reworked collect2
- hardcode_direct_F77=yes
+ :
else
# We have old collect2
hardcode_direct_F77=unsupported
} && test -s conftest$ac_exeext &&
$as_test_x conftest$ac_exeext; then
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`; fi
+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
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
} && test -s conftest$ac_exeext &&
$as_test_x conftest$ac_exeext; then
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`; fi
+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
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
# The linker will automatically build a .lib file if we build a DLL.
old_archive_From_new_cmds_F77='true'
# FIXME: Should let the user specify the lib program.
- old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs'
+ old_archive_cmds_F77='lib -OUT:$oldlib$oldobjs$old_deplibs'
fix_srcfile_path_F77='`cygpath -w "$srcfile"`'
enable_shared_with_static_runtimes_F77=yes
;;
link_all_deplibs_F77=yes
if test "$GCC" = yes ; then
output_verbose_link_cmd='echo'
- archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
- module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
- archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ archive_cmds_F77="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+ module_cmds_F77="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+ archive_expsym_cmds_F77="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+ module_expsym_cmds_F77="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
else
case $cc_basename in
xlc*)
output_verbose_link_cmd='echo'
- archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+ archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring'
module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
# Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
- archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
;;
*)
;;
openbsd*)
- hardcode_direct_F77=yes
- hardcode_shlibpath_var_F77=no
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
- hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
- export_dynamic_flag_spec_F77='${wl}-E'
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct_F77=yes
+ hardcode_shlibpath_var_F77=no
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+ hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec_F77='${wl}-E'
+ else
+ case $host_os in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec_F77='-R$libdir'
+ ;;
+ *)
+ archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
else
- case $host_os in
- openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
- archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec_F77='-R$libdir'
- ;;
- *)
- archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir'
- ;;
- esac
+ ld_shlibs_F77=no
fi
;;
case $host_os in
solaris2.[0-5] | solaris2.[0-5].*) ;;
*)
- # The compiler driver will combine linker options so we
- # cannot just pass the convience library names through
- # without $wl, iff we do not link with $LD.
- # Luckily, gcc supports the same syntax we need for Sun Studio.
+ # The compiler driver will combine and reorder linker options,
+ # but understands `-z linker_flag'. GCC discards it without `$wl',
+ # but is careful enough not to reorder.
# Supported since Solaris 2.6 (maybe 2.5.1?)
- case $wlarc in
- '')
- whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;;
- *)
- whole_archive_flag_spec_F77='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
- esac ;;
+ if test "$GCC" = yes; then
+ whole_archive_flag_spec_F77='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+ else
+ whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract'
+ fi
+ ;;
esac
link_all_deplibs_F77=yes
;;
fi
;;
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*)
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
no_undefined_flag_F77='${wl}-z,text'
archive_cmds_need_lc_F77=no
hardcode_shlibpath_var_F77=no
{ echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
$rm conftest*
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
version_type=none
dynamic_linker="$host_os ld.so"
sys_lib_dlsearch_path_spec="/lib /usr/lib"
-if test "$GCC" = yes; then
- sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
- if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
- # if the path contains ";" then we assume it to be the separator
- # otherwise default to the standard path separator (i.e. ":") - it is
- # assumed that no part of a normal pathname contains ";" but that should
- # okay in the real world where ";" in dirpaths is itself problematic.
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
-else
- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
+
need_lib_prefix=unknown
hardcode_into_libs=no
soname_spec='${libname}${release}${shared_ext}$major'
;;
-aix4* | aix5*)
+aix[4-9]*)
version_type=linux
need_lib_prefix=no
need_version=no
shlibpath_overrides_runpath=yes
shlibpath_var=DYLD_LIBRARY_PATH
shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
- # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
- if test "$GCC" = yes; then
- sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
- else
- sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
- fi
+
sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
;;
shlibpath_overrides_runpath=no
hardcode_into_libs=yes
;;
- freebsd*) # from 4.6 on
+ *) # from 4.6 on, and DragonFly
shlibpath_overrides_runpath=yes
hardcode_into_libs=yes
;;
postinstall_cmds='chmod 555 $lib'
;;
-interix3*)
+interix[3-9]*)
version_type=linux
need_lib_prefix=no
need_version=no
# Append ld.so.conf contents to the search path
if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
fi
sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
;;
+rdos*)
+ dynamic_linker=no
+ ;;
+
solaris*)
version_type=linux
need_lib_prefix=no
echo "${ECHO_T}$dynamic_linker" >&6; }
test "$dynamic_linker" = no && can_build_shared=no
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"
+fi
+
+sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"
+fi
+
+sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
if test "$GCC" = yes; then
variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
predeps_F77 \
postdeps_F77 \
compiler_lib_search_path_F77 \
+ compiler_lib_search_dirs_F77 \
archive_cmds_F77 \
archive_expsym_cmds_F77 \
postinstall_cmds_F77 \
module_cmds_F77 \
module_expsym_cmds_F77 \
lt_cv_prog_compiler_c_o_F77 \
+ fix_srcfile_path_F77 \
exclude_expsyms_F77 \
include_expsyms_F77; do
# shared library.
postdeps=$lt_postdeps_F77
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_F77
+
# The library search path used internally by the compiler when linking
# a shared library.
compiler_lib_search_path=$lt_compiler_lib_search_path_F77
sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path_F77"
+fix_srcfile_path=$lt_fix_srcfile_path
# Set to yes if exported symbols are required.
always_export_symbols=$always_export_symbols_F77
objext_GCJ=$objext
# Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}\n"
+lt_simple_compile_test_code="class foo {}"
# Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n'
+lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }'
# ltmain only uses $CC for tagged configurations so make sure $CC is set.
# save warnings/boilerplate of simple test code
ac_outfile=conftest.$ac_objext
-printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
_lt_compiler_boilerplate=`cat conftest.err`
$rm conftest*
ac_outfile=conftest.$ac_objext
-printf "$lt_simple_link_test_code" >conftest.$ac_ext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
_lt_linker_boilerplate=`cat conftest.err`
-$rm conftest*
+$rm -r conftest*
# Allow CC to be a program name with arguments.
else
lt_cv_prog_compiler_rtti_exceptions=no
ac_outfile=conftest.$ac_objext
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
lt_compiler_flag="-fno-rtti -fno-exceptions"
# Insert the option either (1) after the last *FLAGS variable, or
# (2) before a word containing "conftest.", or (3) at the end.
-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:16307: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:16885: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:16311: \$? = $ac_status" >&5
+ echo "$as_me:16889: \$? = $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.
@@ -16359,14 +16937,16 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4'
;;
- beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
# PIC is the default for these OSes.
;;
- mingw* | pw32* | os2*)
+ mingw* | cygwin* | pw32* | os2*)
# This hack is so that the source file can tell whether it is being
# built for inclusion in a dll (and should export symbols for example).
- lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+
;;
darwin* | rhapsody*)
@@ -16375,7 +16955,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
lt_prog_compiler_pic_GCJ='-fno-common'
;;
- interix3*)
+ interix[3-9]*)
# Interix 3.x gcc -fpic/-fPIC options generate broken code.
# Instead, we relocate shared libraries at runtime.
;;
@@ -16433,10 +17013,10 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
esac
;;
- mingw* | pw32* | os2*)
+ mingw* | cygwin* | pw32* | os2*)
# This hack is so that the source file can tell whether it is being
# built for inclusion in a dll (and should export symbols for example).
- lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
+
;;
hpux9* | hpux10* | hpux11*)
@@ -16485,6 +17065,22 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
# All Alpha code is PIC.
lt_prog_compiler_static_GCJ='-non_shared'
;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C 5.9
+ lt_prog_compiler_pic_GCJ='-KPIC'
+ lt_prog_compiler_static_GCJ='-Bstatic'
+ lt_prog_compiler_wl_GCJ='-Wl,'
+ ;;
+ *Sun\ F*)
+ # Sun Fortran 8.3 passes all unrecognized flags to the linker
+ lt_prog_compiler_pic_GCJ='-KPIC'
+ lt_prog_compiler_static_GCJ='-Bstatic'
+ lt_prog_compiler_wl_GCJ=''
+ ;;
+ esac
+ ;;
esac
;;
@@ -16494,6 +17090,10 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
lt_prog_compiler_static_GCJ='-non_shared'
;;
+ rdos*)
+ lt_prog_compiler_static_GCJ='-non_shared'
+ ;;
+
solaris*)
lt_prog_compiler_pic_GCJ='-KPIC'
lt_prog_compiler_static_GCJ='-Bstatic'
{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5
echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then
+if test "${lt_cv_prog_compiler_pic_works_GCJ+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- lt_prog_compiler_pic_works_GCJ=no
+ lt_cv_prog_compiler_pic_works_GCJ=no
ac_outfile=conftest.$ac_objext
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
lt_compiler_flag="$lt_prog_compiler_pic_GCJ"
# Insert the option either (1) after the last *FLAGS variable, or
# (2) before a word containing "conftest.", or (3) at the end.
-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:16575: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:17175: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:16579: \$? = $ac_status" >&5
+ echo "$as_me:17179: \$? = $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.
$echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
$SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_prog_compiler_pic_works_GCJ=yes
+ lt_cv_prog_compiler_pic_works_GCJ=yes
fi
fi
$rm conftest*
fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6; }
+{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_GCJ" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_pic_works_GCJ" >&6; }
-if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then
+if test x"$lt_cv_prog_compiler_pic_works_GCJ" = xyes; then
case $lt_prog_compiler_pic_GCJ in
"" | " "*) ;;
*) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;;
wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\"
{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then
+if test "${lt_cv_prog_compiler_static_works_GCJ+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- lt_prog_compiler_static_works_GCJ=no
+ lt_cv_prog_compiler_static_works_GCJ=no
save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
- printf "$lt_simple_link_test_code" > conftest.$ac_ext
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
# The linker can only warn and ignore the option if not recognized
# So say no if there are warnings
$echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
$SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
if diff conftest.exp conftest.er2 >/dev/null; then
- lt_prog_compiler_static_works_GCJ=yes
+ lt_cv_prog_compiler_static_works_GCJ=yes
fi
else
- lt_prog_compiler_static_works_GCJ=yes
+ lt_cv_prog_compiler_static_works_GCJ=yes
fi
fi
- $rm conftest*
+ $rm -r conftest*
LDFLAGS="$save_LDFLAGS"
fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5
-echo "${ECHO_T}$lt_prog_compiler_static_works_GCJ" >&6; }
+{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_GCJ" >&5
+echo "${ECHO_T}$lt_cv_prog_compiler_static_works_GCJ" >&6; }
-if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then
+if test x"$lt_cv_prog_compiler_static_works_GCJ" = xyes; then
:
else
lt_prog_compiler_static_GCJ=
mkdir conftest
cd conftest
mkdir out
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
lt_compiler_flag="-o out/conftest2.$ac_objext"
# Insert the option either (1) after the last *FLAGS variable, or
-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:16679: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:17279: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:16683: \$? = $ac_status" >&5
+ echo "$as_me:17283: \$? = $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
@@ -16760,12 +17360,13 @@ echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared librar
# it will be wrapped by ` (' and `)$', so one must not match beginning or
# end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
# as well as any symbol that contains `d'.
- exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_"
+ exclude_expsyms_GCJ='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
# Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
# platforms (ab)use it in PIC code, but their linkers get confused if
# the symbol is explicitly referenced. Since portable code cannot
# rely on this symbol name, it's probably fine to never include it in
# preloaded symbol tables.
+ # Exclude shared library initialization/finalization symbols.
extract_expsyms_cmds=
# Just being paranoid about ensuring that cc_basename is set.
for cc_temp in $compiler""; do
# See if GNU ld supports shared libraries.
case $host_os in
- aix3* | aix4* | aix5*)
+ aix[3-9]*)
# On AIX/PPC, the GNU linker is very broken
if test "$host_cpu" != ia64; then
ld_shlibs_GCJ=no
allow_undefined_flag_GCJ=unsupported
always_export_symbols_GCJ=no
enable_shared_with_static_runtimes_GCJ=yes
- export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols'
+ export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
fi
;;
- interix3*)
+ interix[3-9]*)
hardcode_direct_GCJ=no
hardcode_shlibpath_var_GCJ=no
hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
archive_expsym_cmds_GCJ='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
;;
- linux* | k*bsd*-gnu)
+ gnu* | linux* | k*bsd*-gnu)
if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
tmp_addflag=
case $cc_basename,$host_cpu in
ifc* | ifort*) # Intel Fortran compiler
tmp_addflag=' -nofor_main' ;;
esac
- archive_cmds_GCJ='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*) # Sun C 5.9
+ whole_archive_flag_spec_GCJ='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_sharedflag='-G' ;;
+ *Sun\ F*) # Sun Fortran 8.3
+ tmp_sharedflag='-G' ;;
+ *)
+ tmp_sharedflag='-shared' ;;
+ esac
+ archive_cmds_GCJ='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
if test $supports_anon_versioning = yes; then
archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~
cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
$echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
fi
link_all_deplibs_GCJ=no
else
fi
;;
- aix4* | aix5*)
+ aix[4-9]*)
if test "$host_cpu" = ia64; then
# On IA64, the linker does run time linking by default, so we don't
# have to do anything special.
# Test if we are trying to use run time linking or normal
# AIX style linking. If -brtl is somewhere in LDFLAGS, we
# need to do runtime linking.
- case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
for ld_flag in $LDFLAGS; do
if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
aix_use_runtimelinking=yes
strings "$collect2name" | grep resolve_lib_name >/dev/null
then
# We have reworked collect2
- hardcode_direct_GCJ=yes
+ :
else
# We have old collect2
hardcode_direct_GCJ=unsupported
} && test -s conftest$ac_exeext &&
$as_test_x conftest$ac_exeext; then
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`; fi
+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
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
} && test -s conftest$ac_exeext &&
$as_test_x conftest$ac_exeext; then
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`
+lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\(.*\)$/\1/
+ p
+ }
+ }'
+aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
-}'`; fi
+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
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
# The linker will automatically build a .lib file if we build a DLL.
old_archive_From_new_cmds_GCJ='true'
# FIXME: Should let the user specify the lib program.
- old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs'
+ old_archive_cmds_GCJ='lib -OUT:$oldlib$oldobjs$old_deplibs'
fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`'
enable_shared_with_static_runtimes_GCJ=yes
;;
link_all_deplibs_GCJ=yes
if test "$GCC" = yes ; then
output_verbose_link_cmd='echo'
- archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
- module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
- # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
- archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
- module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ archive_cmds_GCJ="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+ module_cmds_GCJ="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+ archive_expsym_cmds_GCJ="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+ module_expsym_cmds_GCJ="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
else
case $cc_basename in
xlc*)
output_verbose_link_cmd='echo'
- archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
+ archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring'
module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
# Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
- archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
;;
*)
;;
openbsd*)
- hardcode_direct_GCJ=yes
- hardcode_shlibpath_var_GCJ=no
- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
- hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
- export_dynamic_flag_spec_GCJ='${wl}-E'
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct_GCJ=yes
+ hardcode_shlibpath_var_GCJ=no
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+ hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec_GCJ='${wl}-E'
+ else
+ case $host_os in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec_GCJ='-R$libdir'
+ ;;
+ *)
+ archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
else
- case $host_os in
- openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
- archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec_GCJ='-R$libdir'
- ;;
- *)
- archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir'
- ;;
- esac
+ ld_shlibs_GCJ=no
fi
;;
case $host_os in
solaris2.[0-5] | solaris2.[0-5].*) ;;
*)
- # The compiler driver will combine linker options so we
- # cannot just pass the convience library names through
- # without $wl, iff we do not link with $LD.
- # Luckily, gcc supports the same syntax we need for Sun Studio.
+ # The compiler driver will combine and reorder linker options,
+ # but understands `-z linker_flag'. GCC discards it without `$wl',
+ # but is careful enough not to reorder.
# Supported since Solaris 2.6 (maybe 2.5.1?)
- case $wlarc in
- '')
- whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;;
- *)
- whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;;
- esac ;;
+ if test "$GCC" = yes; then
+ whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+ else
+ whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract'
+ fi
+ ;;
esac
link_all_deplibs_GCJ=yes
;;
fi
;;
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*)
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
no_undefined_flag_GCJ='${wl}-z,text'
archive_cmds_need_lc_GCJ=no
hardcode_shlibpath_var_GCJ=no
{ echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
$rm conftest*
- printf "$lt_simple_compile_test_code" > conftest.$ac_ext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
version_type=none
dynamic_linker="$host_os ld.so"
sys_lib_dlsearch_path_spec="/lib /usr/lib"
-if test "$GCC" = yes; then
- sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
- if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
- # if the path contains ";" then we assume it to be the separator
- # otherwise default to the standard path separator (i.e. ":") - it is
- # assumed that no part of a normal pathname contains ";" but that should
- # okay in the real world where ";" in dirpaths is itself problematic.
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
- else
- sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
- fi
-else
- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
+
need_lib_prefix=unknown
hardcode_into_libs=no
soname_spec='${libname}${release}${shared_ext}$major'
;;
-aix4* | aix5*)
+aix[4-9]*)
version_type=linux
need_lib_prefix=no
need_version=no
shlibpath_overrides_runpath=yes
shlibpath_var=DYLD_LIBRARY_PATH
shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
- # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
- if test "$GCC" = yes; then
- sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
- else
- sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib'
- fi
+
sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
;;
shlibpath_overrides_runpath=no
hardcode_into_libs=yes
;;
- freebsd*) # from 4.6 on
+ *) # from 4.6 on, and DragonFly
shlibpath_overrides_runpath=yes
hardcode_into_libs=yes
;;
postinstall_cmds='chmod 555 $lib'
;;
-interix3*)
+interix[3-9]*)
version_type=linux
need_lib_prefix=no
need_version=no
# Append ld.so.conf contents to the search path
if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
fi
sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
;;
+rdos*)
+ dynamic_linker=no
+ ;;
+
solaris*)
version_type=linux
need_lib_prefix=no
echo "${ECHO_T}$dynamic_linker" >&6; }
test "$dynamic_linker" = no && can_build_shared=no
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"
+fi
+
+sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"
+fi
+
+sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
if test "$GCC" = yes; then
variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
predeps_GCJ \
postdeps_GCJ \
compiler_lib_search_path_GCJ \
+ compiler_lib_search_dirs_GCJ \
archive_cmds_GCJ \
archive_expsym_cmds_GCJ \
postinstall_cmds_GCJ \
module_cmds_GCJ \
module_expsym_cmds_GCJ \
lt_cv_prog_compiler_c_o_GCJ \
+ fix_srcfile_path_GCJ \
exclude_expsyms_GCJ \
include_expsyms_GCJ; do
# shared library.
postdeps=$lt_postdeps_GCJ
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_GCJ
+
# The library search path used internally by the compiler when linking
# a shared library.
compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ
sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path_GCJ"
+fix_srcfile_path=$lt_fix_srcfile_path
# Set to yes if exported symbols are required.
always_export_symbols=$always_export_symbols_GCJ
objext_RC=$objext
# Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
# Code to be used in simple link tests
lt_simple_link_test_code="$lt_simple_compile_test_code"
# save warnings/boilerplate of simple test code
ac_outfile=conftest.$ac_objext
-printf "$lt_simple_compile_test_code" >conftest.$ac_ext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
_lt_compiler_boilerplate=`cat conftest.err`
$rm conftest*
ac_outfile=conftest.$ac_objext
-printf "$lt_simple_link_test_code" >conftest.$ac_ext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
_lt_linker_boilerplate=`cat conftest.err`
-$rm conftest*
+$rm -r conftest*
# Allow CC to be a program name with arguments.
predeps_RC \
postdeps_RC \
compiler_lib_search_path_RC \
+ compiler_lib_search_dirs_RC \
archive_cmds_RC \
archive_expsym_cmds_RC \
postinstall_cmds_RC \
module_cmds_RC \
module_expsym_cmds_RC \
lt_cv_prog_compiler_c_o_RC \
+ fix_srcfile_path_RC \
exclude_expsyms_RC \
include_expsyms_RC; do
# shared library.
postdeps=$lt_postdeps_RC
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_RC
+
# The library search path used internally by the compiler when linking
# a shared library.
compiler_lib_search_path=$lt_compiler_lib_search_path_RC
sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$fix_srcfile_path_RC"
+fix_srcfile_path=$lt_fix_srcfile_path
# Set to yes if exported symbols are required.
always_export_symbols=$always_export_symbols_RC
if test "${enable_ruby_site_install+set}" = set; then
enableval=$enable_ruby_site_install; RUBY_MAKE_OPTIONS=
else
- RUBY_MAKE_OPTIONS="sitedir=$prefix/lib/ruby"
+ RUBY_MAKE_OPTIONS="sitedir="'$(DESTDIR)'"$prefix/lib/ruby"
fi
# 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.2.27, which was
+This file was extended by rrdtool $as_me 1.2.28, which was
generated by GNU Autoconf 2.61. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-rrdtool config.status 1.2.27
+rrdtool config.status 1.2.28
configured by $0, generated by GNU Autoconf 2.61,
with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim
am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim
CPP!$CPP$ac_delim
+SED!$SED$ac_delim
GREP!$GREP$ac_delim
EGREP!$EGREP$ac_delim
LN_S!$LN_S$ac_delim
ECHO!$ECHO$ac_delim
AR!$AR$ac_delim
RANLIB!$RANLIB$ac_delim
-CXX!$CXX$ac_delim
_ACEOF
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
cat >conf$$subs.sed <<_ACEOF
+DSYMUTIL!$DSYMUTIL$ac_delim
+NMEDIT!$NMEDIT$ac_delim
+CXX!$CXX$ac_delim
CXXFLAGS!$CXXFLAGS$ac_delim
ac_ct_CXX!$ac_ct_CXX$ac_delim
CXXDEPMODE!$CXXDEPMODE$ac_delim
LTLIBOBJS!$LTLIBOBJS$ac_delim
_ACEOF
- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 65; then
+ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 68; then
break
elif $ac_last_try; then
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
diff --git a/configure.ac b/configure.ac
index f2384275e8eb2b9cfbb699f86dd1f83f65a58e62..434b5eed9ea5d3279b312faf06c0d6b378218338 100644 (file)
--- a/configure.ac
+++ b/configure.ac
dnl tell automake the this script is for rrdtool
dnl the official version number is
dnl a.b.c
-AC_INIT([rrdtool],[1.2.27])
+AC_INIT([rrdtool],[1.2.28])
dnl for testing a numberical version number comes handy
dnl the released version are
dnl a.bccc
dnl the devl versions will be something like
dnl a.b999yymmddhh
-NUMVERS=1.2027
+NUMVERS=1.2028
AC_SUBST(NUMVERS)
AC_CANONICAL_TARGET
AM_INIT_AUTOMAKE
together with rrdtool in $prefix/lib/ruby. You have to
add $prefix/lib/ruby/$ruby_version/$sitearch to you $: variable
for ruby to find the RRD.so file.],
-[RUBY_MAKE_OPTIONS=],[RUBY_MAKE_OPTIONS="sitedir=$prefix/lib/ruby"])
+[RUBY_MAKE_OPTIONS=],[RUBY_MAKE_OPTIONS="sitedir="'$(DESTDIR)'"$prefix/lib/ruby"])
AC_ARG_WITH(ruby-options,
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 180d4bc8e4c0fa8307dfad9f5bc3ee79df998d4a..b600eb558379f74ccd6f767f624ce9285e05ca6a 100644 (file)
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
MAKEINFO = @MAKEINFO@
MULTITHREAD_CFLAGS = @MULTITHREAD_CFLAGS@
MULTITHREAD_LDFLAGS = @MULTITHREAD_LDFLAGS@
+NMEDIT = @NMEDIT@
NROFF = @NROFF@
NUMVERS = @NUMVERS@
OBJEXT = @OBJEXT@
RRD_DEFAULT_FONT = @RRD_DEFAULT_FONT@
RUBY = @RUBY@
RUBY_MAKE_OPTIONS = @RUBY_MAKE_OPTIONS@
+SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
diff --git a/doc/RRDp.html b/doc/RRDp.html
index a9185aa29e1ddbd2078b633a5e9c3505da8404de..56cd79e7644e52df3b02e82e87a61066cb2dc30b 100644 (file)
--- a/doc/RRDp.html
+++ b/doc/RRDp.html
<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>
+<dt><strong><a name="item_use_rrdp">use <strong>RRDp</strong></a></strong></dt>
<dd>
<p>Load the RRDp::pipe module.</p>
</dd>
-</li>
-<dt><strong><a name="item_rrdp_3a_3astart_path_to_rrdtool_executable"><strong>RRDp::start</strong> <em>path to RRDtool executable</em></a></strong>
+<dt><strong><a name="item_rrdp_3a_3astart_path_to_rrdtool_executable"><strong>RRDp::start</strong> <em>path to RRDtool executable</em></a></strong></dt>
<dd>
<p>start RRDtool. The argument must be the path to the RRDtool executable</p>
</dd>
-</li>
-<dt><strong><a name="item_rrdp_3a_3acmd_rrdtool_commandline"><strong>RRDp::cmd</strong> <em>rrdtool commandline</em></a></strong>
+<dt><strong><a name="item_rrdp_3a_3acmd_rrdtool_commandline"><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>
</dd>
-</li>
-<dt><strong><a name="item__answer">$answer = <strong>RRDp::read</strong></a></strong>
+<dt><strong><a name="item__answer">$answer = <strong>RRDp::read</strong></a></strong></dt>
<dd>
<p>read RRDtool's response to your command. Note that the $answer variable will
access the contents of $answer you have to use $$answer which dereferences
the variable.</p>
</dd>
-</li>
-<dt><strong><a name="item__status">$status = <strong>RRDp::end</strong></a></strong>
+<dt><strong><a name="item__status">$status = <strong>RRDp::end</strong></a></strong></dt>
<dd>
<p>terminates RRDtool and returns RRDtool's status ...</p>
</dd>
-</li>
-<dt><strong><a name="item__rrdp__user_"><strong>$RRDp::user</strong>, <strong>$RRDp::sys</strong>, <strong>$RRDp::real</strong></a></strong>
+<dt><strong><a name="item__rrdp__user_"><strong>$RRDp::user</strong>, <strong>$RRDp::sys</strong>, <strong>$RRDp::real</strong></a></strong></dt>
<dd>
<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.</p>
-</dd>
-<dd>
<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>
-</li>
-<dt><strong><a name="item__rrdp__error_mode"><strong>$RRDp::error_mode</strong> and <strong>$RRDp::error</strong></a></strong>
+<dt><strong><a name="item__rrdp__error_mode"><strong>$RRDp::error_mode</strong> and <strong>$RRDp::error</strong></a></strong></dt>
<dd>
<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.</p>
-</dd>
-<dd>
<pre>
$RRDp::error_mode = 'catch';
RRDp::cmd qw(info file.rrd);
print $RRDp::error if $RRDp::error;</pre>
</dd>
-</li>
</dl>
<p>
</p>
diff --git a/doc/bin_dec_hex.1 b/doc/bin_dec_hex.1
index f09d6e220cc0d83ee4600a5fabf1efe4856ff297..512e758107a5d12e66200a1e498ca1820f74b0d1 100644 (file)
--- a/doc/bin_dec_hex.1
+++ b/doc/bin_dec_hex.1
.\" ========================================================================
.\"
.IX Title "BIN_DEC_HEX 1"
-.TH BIN_DEC_HEX 1 "2008-02-17" "1.2.27" "rrdtool"
+.TH BIN_DEC_HEX 1 "2008-07-23" "1.2.28" "rrdtool"
.SH "NAME"
bin_dec_hex \- How to use binary, decimal, and hexadecimal notation.
.SH "DESCRIPTION"
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
diff --git a/doc/bin_dec_hex.txt b/doc/bin_dec_hex.txt
index 8b86f197373fd135e3e638a153c462a575aa4868..c78f911261e295e9fbf5446ea097663a4046e026 100644 (file)
--- a/doc/bin_dec_hex.txt
+++ b/doc/bin_dec_hex.txt
-1.2.27 2008-02-17 BIN_DEC_HEX(1)
+1.2.28 2008-07-23 BIN_DEC_HEX(1)
diff --git a/doc/cdeftutorial.1 b/doc/cdeftutorial.1
index 26cd3e925e68d5721597bce1339c37a1dc293285..0f350705fda0276c86a686380dce058328bcca80 100644 (file)
--- a/doc/cdeftutorial.1
+++ b/doc/cdeftutorial.1
.\" ========================================================================
.\"
.IX Title "CDEFTUTORIAL 1"
-.TH CDEFTUTORIAL 1 "2008-02-17" "1.2.27" "rrdtool"
+.TH CDEFTUTORIAL 1 "2008-07-23" "1.2.28" "rrdtool"
.SH "NAME"
cdeftutorial \- Alex van den Bogaerdt's CDEF tutorial
.SH "DESCRIPTION"
.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
\& CDEF:prev3=PREV(prev2)
\& CDEF:median=prev1,prev2,prev3,+,+,3,/
\& LINE3:median#000077:filtered
-\& LINE1:prev2#007700:'raw data'
+\& LINE1:prev2#007700:\(aqraw data\(aq
.Ve
.PP
.Vb 1
\& 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"
diff --git a/doc/cdeftutorial.txt b/doc/cdeftutorial.txt
index 647b758c284b77b8a0c685990b4a87d835ed4d39..997a4511c849a514e7d310e950774956b5b44e55 100644 (file)
--- a/doc/cdeftutorial.txt
+++ b/doc/cdeftutorial.txt
-1.2.27 2008-02-17 CDEFTUTORIAL(1)
+1.2.28 2008-07-23 CDEFTUTORIAL(1)
diff --git a/doc/rpntutorial.1 b/doc/rpntutorial.1
index 83734a82176c5b82f03fb4951f82aa7ac0da36dd..22ad7ae03f87b01595c96189888394409cc4454a 100644 (file)
--- a/doc/rpntutorial.1
+++ b/doc/rpntutorial.1
.\" ========================================================================
.\"
.IX Title "RPNTUTORIAL 1"
-.TH RPNTUTORIAL 1 "2008-02-17" "1.2.27" "rrdtool"
+.TH RPNTUTORIAL 1 "2008-07-23" "1.2.28" "rrdtool"
.SH "NAME"
rpntutorial \- Reading RRDtool RPN Expressions by Steve Rader
.SH "DESCRIPTION"
diff --git a/doc/rpntutorial.txt b/doc/rpntutorial.txt
index f936d2ddc5a7c7de9b6514878ecf666aab3094df..5165b6fab39d5bb0ae6eff454b899c9b4dbe61ec 100644 (file)
--- a/doc/rpntutorial.txt
+++ b/doc/rpntutorial.txt
-1.2.27 2008-02-17 RPNTUTORIAL(1)
+1.2.28 2008-07-23 RPNTUTORIAL(1)
diff --git a/doc/rrd-beginners.1 b/doc/rrd-beginners.1
index 5c67f83fdd3528832cee2528d27e02b432749ca6..93f891c93827dda6dfed8f0448e0f85537fac836 100644 (file)
--- a/doc/rrd-beginners.1
+++ b/doc/rrd-beginners.1
.\" ========================================================================
.\"
.IX Title "RRD-BEGINNERS 1"
-.TH RRD-BEGINNERS 1 "2008-02-17" "1.2.27" "rrdtool"
+.TH RRD-BEGINNERS 1 "2008-07-23" "1.2.28" "rrdtool"
.SH "NAME"
rrd\-beginners \- RRDtool Beginners' Guide
.SH "SYNOPSIS"
\& 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
diff --git a/doc/rrd-beginners.txt b/doc/rrd-beginners.txt
index 8c60eeb875876c61ca1e0a962164580978459e76..d7172ebb855a4c3732162a117343b7d2a14efd2e 100644 (file)
--- a/doc/rrd-beginners.txt
+++ b/doc/rrd-beginners.txt
-1.2.27 2008-02-17 RRD-BEGINNERS(1)
+1.2.28 2008-07-23 RRD-BEGINNERS(1)
diff --git a/doc/rrdbuild.1 b/doc/rrdbuild.1
index 52b88b9cd49aaea5bca8d539383efde1771530a5..9aa549ba780f116f41a8afef14ae729df70d8c88 100644 (file)
--- a/doc/rrdbuild.1
+++ b/doc/rrdbuild.1
.\" ========================================================================
.\"
.IX Title "RRDBUILD 1"
-.TH RRDBUILD 1 "2008-02-17" "1.2.27" "rrdtool"
+.TH RRDBUILD 1 "2008-07-23" "1.2.28" "rrdtool"
.SH "NAME"
rrdbuild \- Instructions for building RRDtool
.SH "DESCRIPTION"
.PP
.Vb 2
\& BUILD_DIR=/tmp/rrdbuild
-\& INSTALL_DIR=/usr/local/rrdtool\-1.2.27
+\& INSTALL_DIR=/usr/local/rrdtool\-1.2.28
.Ve
.PP
Or if you run tcsh:
.PP
.Vb 2
\& set BUILD_DIR=/tmp/rrdbuild
-\& set INSTALL_DIR=/usr/local/rrdtool\-1.2.27
+\& set INSTALL_DIR=/usr/local/rrdtool\-1.2.28
.Ve
.PP
If your \fI/tmp\fR is mounted with the option noexec (\s-1RHEL\s0 seems todo that) you have to choose
could be that they are installed as \fBgtar\fR and \fBgmake\fR on your system.
.PP
.Vb 4
-\& wget http://oss.oetiker.ch/rrdtool/pub/rrdtool\-1.2.27.tar.gz
-\& tar zxf rrdtool\-1.2.27.tar.gz
-\& cd rrdtool\-1.2.27
+\& wget http://oss.oetiker.ch/rrdtool/pub/rrdtool\-1.2.28.tar.gz
+\& tar zxf rrdtool\-1.2.28.tar.gz
+\& cd rrdtool\-1.2.28
\& ./configure \-\-prefix=$INSTALL_DIR && make && make install
.Ve
.PP
their current state.
.PP
.Vb 5
-\& cd $BUILD_DIR/rrdtool\-1.2.27
+\& cd $BUILD_DIR/rrdtool\-1.2.28
\& ./configure \-\-prefix=$INSTALL_DIR \-\-disable\-python \-\-disable\-tcl
\& make clean
\& make
diff --git a/doc/rrdbuild.html b/doc/rrdbuild.html
index 455b85d4403496481d8e1d5c145a74cac197997a..f020a785397b5fba720e221b15ffdf598c5ef1aa 100644 (file)
--- a/doc/rrdbuild.html
+++ b/doc/rrdbuild.html
Depending on the shell you are using, you can do either (bash,zsh):</p>
<pre>
BUILD_DIR=/tmp/rrdbuild
- INSTALL_DIR=/usr/local/rrdtool-1.2.27</pre>
+ INSTALL_DIR=/usr/local/rrdtool-1.2.28</pre>
<p>Or if you run tcsh:</p>
<pre>
set BUILD_DIR=/tmp/rrdbuild
- set INSTALL_DIR=/usr/local/rrdtool-1.2.27</pre>
+ set INSTALL_DIR=/usr/local/rrdtool-1.2.28</pre>
<p>If your <em>/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>
<strong>tar</strong> and <strong>make</strong> are actually <strong>GNU tar</strong> and <strong>GNU make</strong> respectively. It
could be that they are installed as <strong>gtar</strong> and <strong>gmake</strong> on your system.</p>
<pre>
- wget <a href="http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.27.tar.gz">http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.27.tar.gz</a>
- tar zxf rrdtool-1.2.27.tar.gz
- cd rrdtool-1.2.27
+ wget <a href="http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.28.tar.gz">http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.28.tar.gz</a>
+ tar zxf rrdtool-1.2.28.tar.gz
+ cd rrdtool-1.2.28
./configure --prefix=$INSTALL_DIR && make && make install</pre>
<p>Ok, this was very optimistic. This try will probably have ended with
<strong>configure</strong> complaining about several missing libraries. If you are on a
you want to set. The examples below are for the popular GCC compiler suite.
If you have an other compile you have to use the following settings:</p>
<dl>
-<dt><strong><a name="item_sun_forte">Sun Forte</a></strong>
+<dt><strong><a name="item_sun_forte">Sun Forte</a></strong></dt>
<dd>
<pre>
</dd>
</dl>
<dl>
-<dt><strong><a name="item_building_zlib">Building zlib</a></strong>
+<dt><strong><a name="item_building_zlib">Building zlib</a></strong></dt>
<dd>
<pre>
make
make install</pre>
</dd>
-<dt><strong><a name="item_building_libpng">Building libpng</a></strong>
+<dt><strong><a name="item_building_libpng">Building libpng</a></strong></dt>
<dd>
<p>Libpng itself requires zlib to build, so we need to help a bit. If you
already have a copy of zlib on your system (which is very likley) you can
drop the settings of LDFLAGS and CPPFLAGS. Note that the backslash (\) at
the end of line 4 means that line 4 and line 5 are on one line.</p>
-</dd>
-<dd>
<pre>
cd $BUILD_DIR
wget <a href="http://oss.oetiker.ch/rrdtool/pub/libs/libpng-1.2.10.tar.gz">http://oss.oetiker.ch/rrdtool/pub/libs/libpng-1.2.10.tar.gz</a>
make
make install</pre>
</dd>
-</li>
-<dt><strong><a name="item_building_freetype">Building freetype</a></strong>
+<dt><strong><a name="item_building_freetype">Building freetype</a></strong></dt>
<dd>
<pre>
./configure --disable-shared --prefix=$BUILD_DIR/lb
make
make install</pre>
-</dd>
-<dd>
<p>If you run into problems building freetype on Solaris, you may want to try to
add the following at the end of the configure line:</p>
-</dd>
-<dd>
<pre>
GNUMAKE=gmake EGREP=egrep</pre>
</dd>
-<dt><strong><a name="item_building_libart_lgpl">Building libart_lgpl</a></strong>
+<dt><strong><a name="item_building_libart_lgpl">Building libart_lgpl</a></strong></dt>
<dd>
<pre>
tcl setups that would prevent rrdtool from building if they are included in
their current state.</p>
<pre>
- cd $BUILD_DIR/rrdtool-1.2.27
+ cd $BUILD_DIR/rrdtool-1.2.28
./configure --prefix=$INSTALL_DIR --disable-python --disable-tcl
make clean
make
diff --git a/doc/rrdbuild.pod b/doc/rrdbuild.pod
index dd3e71e820b589c2b3ef266cb1a3fccac5f57323..43429ac8160983a15119337b19cfbcb0f2da22ed 100644 (file)
--- a/doc/rrdbuild.pod
+++ b/doc/rrdbuild.pod
Depending on the shell you are using, you can do either (bash,zsh):
BUILD_DIR=/tmp/rrdbuild
- INSTALL_DIR=/usr/local/rrdtool-1.2.27
+ INSTALL_DIR=/usr/local/rrdtool-1.2.28
Or if you run tcsh:
set BUILD_DIR=/tmp/rrdbuild
- set INSTALL_DIR=/usr/local/rrdtool-1.2.27
+ set INSTALL_DIR=/usr/local/rrdtool-1.2.28
If your F</tmp> is mounted with the option noexec (RHEL seems todo that) you have to choose
a different directory!
B<tar> and B<make> are actually B<GNU tar> and B<GNU make> respectively. It
could be that they are installed as B<gtar> and B<gmake> on your system.
- wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.27.tar.gz
- tar zxf rrdtool-1.2.27.tar.gz
- cd rrdtool-1.2.27
+ wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.28.tar.gz
+ tar zxf rrdtool-1.2.28.tar.gz
+ cd rrdtool-1.2.28
./configure --prefix=$INSTALL_DIR && make && make install
Ok, this was very optimistic. This try will probably have ended with
tcl setups that would prevent rrdtool from building if they are included in
their current state.
- cd $BUILD_DIR/rrdtool-1.2.27
+ cd $BUILD_DIR/rrdtool-1.2.28
./configure --prefix=$INSTALL_DIR --disable-python --disable-tcl
make clean
make
diff --git a/doc/rrdbuild.txt b/doc/rrdbuild.txt
index d63f1396ae32288cb117ceb27afbeac8f5fad306..690e849a37f461596ea50fa8fbc31ed6e3e3d48e 100644 (file)
--- a/doc/rrdbuild.txt
+++ b/doc/rrdbuild.txt
(bash,zsh):
BUILD_DIR=/tmp/rrdbuild
- INSTALL_DIR=/usr/local/rrdtool-1.2.27
+ INSTALL_DIR=/usr/local/rrdtool-1.2.28
Or if you run tcsh:
set BUILD_DIR=/tmp/rrdbuild
- set INSTALL_DIR=/usr/local/rrdtool-1.2.27
+ set INSTALL_DIR=/usr/local/rrdtool-1.2.28
If your _\b/_\bt_\bm_\bp is mounted with the option noexec (RHEL seems todo that)
you have to choose a different directory!
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 and g\bgm\bma\bak\bke\be on your system.
- wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.27.tar.gz
- tar zxf rrdtool-1.2.27.tar.gz
- cd rrdtool-1.2.27
+ wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.28.tar.gz
+ tar zxf rrdtool-1.2.28.tar.gz
+ cd rrdtool-1.2.28
./configure --prefix=$INSTALL_DIR && make && make install
Ok, this was very optimistic. This try will probably have ended with
python and tcl setups that would prevent rrdtool from building if they
are included in their current state.
- cd $BUILD_DIR/rrdtool-1.2.27
+ cd $BUILD_DIR/rrdtool-1.2.28
./configure --prefix=$INSTALL_DIR --disable-python --disable-tcl
make clean
make
-1.2.27 2008-02-17 RRDBUILD(1)
+1.2.28 2008-07-23 RRDBUILD(1)
diff --git a/doc/rrdcgi.1 b/doc/rrdcgi.1
index f4e67fb7970376cfcdf023a0da3ed49e742adc36..aacfaea555464d2ee74ce6ac7a30ffb82c9ef1b3 100644 (file)
--- a/doc/rrdcgi.1
+++ b/doc/rrdcgi.1
.\" ========================================================================
.\"
.IX Title "RRDCGI 1"
-.TH RRDCGI 1 "2008-02-17" "1.2.27" "rrdtool"
+.TH RRDCGI 1 "2008-07-23" "1.2.28" "rrdtool"
.SH "NAME"
rrdcgi \- Create web pages containing RRD graphs based on templates
.SH "SYNOPSIS"
\& <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
diff --git a/doc/rrdcgi.html b/doc/rrdcgi.html
index f062d932d452f31627195c6eb7650e7524ff7df3..917ab97ee2e5dfafaa4a8f633e18adacec172ca1 100644 (file)
--- a/doc/rrdcgi.html
+++ b/doc/rrdcgi.html
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>
+<dt><strong><a name="item__2d_2dfilter"><strong>--filter</strong></a></strong></dt>
<dd>
<p>Assume that rrdcgi is run as a filter and not as a cgi.</p>
</dd>
-</li>
</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>
+<dt><strong><a name="item_rrd_3a_3acv_name">RRD::CV <em>name</em></a></strong></dt>
<dd>
<p>Inserts the CGI variable of the given name.</p>
</dd>
-</li>
-<dt><strong><a name="item_rrd_3a_3acv_3a_3aquote_name">RRD::CV::QUOTE <em>name</em></a></strong>
+<dt><strong><a name="item_rrd_3a_3acv_3a_3aquote_name">RRD::CV::QUOTE <em>name</em></a></strong></dt>
<dd>
<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.</p>
</dd>
-</li>
-<dt><strong><a name="item_rrd_3a_3acv_3a_3apath_name">RRD::CV::PATH <em>name</em></a></strong>
+<dt><strong><a name="item_rrd_3a_3acv_3a_3apath_name">RRD::CV::PATH <em>name</em></a></strong></dt>
<dd>
<p>Inserts the CGI variable of the given name, quotes it and makes sure
sure that no problematic pathnames can be introduced through the
CGI interface.</p>
</dd>
-</li>
-<dt><strong><a name="item_rrd_3a_3agetenv_variable">RRD::GETENV <em>variable</em></a></strong>
+<dt><strong><a name="item_rrd_3a_3agetenv_variable">RRD::GETENV <em>variable</em></a></strong></dt>
<dd>
<p>Get the value of an environment variable.</p>
-</dd>
-<dd>
<pre>
<RRD::GETENV REMOTE_USER></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>
-</li>
-<dt><strong><a name="item_rrd_3a_3agoodfor_seconds">RRD::GOODFOR <em>seconds</em></a></strong>
+<dt><strong><a name="item_rrd_3a_3agoodfor_seconds">RRD::GOODFOR <em>seconds</em></a></strong></dt>
<dd>
<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.</p>
</dd>
-</li>
-<dt><strong><a name="item_rrd_3a_3ainclude_filename">RRD::INCLUDE <em>filename</em></a></strong>
+<dt><strong><a name="item_rrd_3a_3ainclude_filename">RRD::INCLUDE <em>filename</em></a></strong></dt>
<dd>
<p>Include the contents of the specified file into the page returned from the cgi.</p>
</dd>
-</li>
-<dt><strong><a name="item_rrd_3a_3asetenv_variable_value">RRD::SETENV <em>variable</em> <em>value</em></a></strong>
+<dt><strong><a name="item_rrd_3a_3asetenv_variable_value">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>
-</dd>
-<dd>
<pre>
<RRD::SETENV TZ UTC></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>
-</li>
-<dt><strong><a name="item_rrd_3a_3asetvar_variable_value">RRD::SETVAR <em>variable</em> <em>value</em></a></strong>
+<dt><strong><a name="item_rrd_3a_3asetvar_variable_value">RRD::SETVAR <em>variable</em> <em>value</em></a></strong></dt>
<dd>
<p>Analog to SETENV but for local variables.</p>
</dd>
-</li>
-<dt><strong><a name="item_rrd_3a_3agetvar_variable">RRD::GETVAR <em>variable</em></a></strong>
+<dt><strong><a name="item_rrd_3a_3agetvar_variable">RRD::GETVAR <em>variable</em></a></strong></dt>
<dd>
<p>Analog to GETENV but for local variables.</p>
</dd>
-</li>
-<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>
+<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></dt>
<dd>
<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>
-</li>
-<dt><strong><a name="item_rrd_3a_3atime_3a_3anow_strftime_2dformat">RRD::TIME::NOW <em>strftime-format</em></a></strong>
+<dt><strong><a name="item_rrd_3a_3atime_3a_3anow_strftime_2dformat">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>
-</dd>
-<dd>
<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>
-</li>
-<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>
+<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></dt>
<dd>
<p>This gets replaced by a strftime-formatted time using the format
@@ -169,14 +147,11 @@ whether <em>START</em> or <em>END</em> is specified. Both <em>start-spec</em> a
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''.</p>
-</dd>
-<dd>
<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>
-</li>
-<dt><strong><a name="item_rrd_3a_3agraph_rrdgraph_arguments">RRD::GRAPH <em>rrdgraph arguments</em></a></strong>
+<dt><strong><a name="item_rrd_3a_3agraph_rrdgraph_arguments">RRD::GRAPH <em>rrdgraph arguments</em></a></strong></dt>
<dd>
<p>This tag creates the RRD graph defined by its argument and then is
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.</p>
-</dd>
-<dd>
<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>
<IMG SRC="%s" WIDTH="%lu" HEIGHT="%lu"></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>
-</li>
-<dt><strong><a name="item_rrd_3a_3aprint_number">RRD::PRINT <em>number</em></a></strong>
+<dt><strong><a name="item_rrd_3a_3aprint_number">RRD::PRINT <em>number</em></a></strong></dt>
<dd>
<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.</p>
</dd>
-</li>
-<dt><strong><a name="item_rrd_3a_3ainternal__3cvar_3e">RRD::INTERNAL <var></a></strong>
+<dt><strong><a name="item_rrd_3a_3ainternal__3cvar_3e">RRD::INTERNAL <var></a></strong></dt>
<dd>
<p>This tag gets replaced by an internal var. Currently these vars are known:
VERSION, COMPILETIME.
These vars represent the compiled-in values.</p>
</dd>
-</li>
</dl>
<p>
</p>
diff --git a/doc/rrdcgi.txt b/doc/rrdcgi.txt
index 604bbcc0a59303266bdb396e90d7b753cbfc0d06..13b2ff31cc41451ac504873c8261829ba18b3aff 100644 (file)
--- a/doc/rrdcgi.txt
+++ b/doc/rrdcgi.txt
-1.2.27 2008-02-17 RRDCGI(1)
+1.2.28 2008-07-23 RRDCGI(1)
diff --git a/doc/rrdcreate.1 b/doc/rrdcreate.1
index f32da3624c6964bae732a7ab398895f2ab4b770c..2b1941c17ac46ac77d935ae2b36c6a29758b54e9 100644 (file)
--- a/doc/rrdcreate.1
+++ b/doc/rrdcreate.1
.\" ========================================================================
.\"
.IX Title "RRDCREATE 1"
-.TH RRDCREATE 1 "2008-02-17" "1.2.27" "rrdtool"
+.TH RRDCREATE 1 "2008-07-23" "1.2.28" "rrdtool"
.SH "NAME"
rrdcreate \- Set up a new Round Robin Database
.SH "SYNOPSIS"
It may help you to sort out why all this *UNKNOWN* data is popping
up in your databases:
.PP
-RRDtool gets fed samples at arbitrary times. From these it builds Primary
-Data Points (PDPs) at exact times on every \*(L"step\*(R" interval. The PDPs are
-then accumulated into RRAs.
+RRDtool gets fed samples/updates at arbitrary times. From these it builds Primary
+Data Points (PDPs) on every \*(L"step\*(R" interval. The PDPs are
+then accumulated into the RRAs.
.PP
The \*(L"heartbeat\*(R" defines the maximum acceptable interval between
-samples. If the interval between samples is less than \*(L"heartbeat\*(R",
+samples/updates. If the interval between samples is less than \*(L"heartbeat\*(R",
then an average rate is calculated and applied for that interval. If
the interval between samples is longer than \*(L"heartbeat\*(R", then that
entire interval is considered \*(L"unknown\*(R". Note that there are other
things that can make a sample interval \*(L"unknown\*(R", such as the rate
-exceeding limits, or even an \*(L"unknown\*(R" input sample.
+exceeding limits, or a sample that was explicitly marked as unknown.
.PP
The known rates during a \s-1PDP\s0's \*(L"step\*(R" interval are used to calculate
-an average rate for that \s-1PDP\s0. Also, if the total \*(L"unknown\*(R" time during
-the \*(L"step\*(R" interval exceeds the \*(L"heartbeat\*(R", the entire \s-1PDP\s0 is marked
+an average rate for that \s-1PDP\s0. If the total \*(L"unknown\*(R" time accounts for
+more than \fBhalf\fR the \*(L"step\*(R", the entire \s-1PDP\s0 is marked
as \*(L"unknown\*(R". This means that a mixture of known and \*(L"unknown\*(R" sample
-times in a single \s-1PDP\s0 \*(L"step\*(R" may or may not add up to enough \*(L"unknown\*(R"
-time to exceed \*(L"heartbeat\*(R" and hence mark the whole \s-1PDP\s0 \*(L"unknown\*(R". So
-\&\*(L"heartbeat\*(R" is not only the maximum acceptable interval between
-samples, but also the maximum acceptable amount of \*(L"unknown\*(R" time per
-\&\s-1PDP\s0 (obviously this is only significant if you have \*(L"heartbeat\*(R" less
-than \*(L"step\*(R").
+times in a single \s-1PDP\s0 \*(L"step\*(R" may or may not add up to enough \*(L"known\*(R"
+time to warrent for a known \s-1PDP\s0.
.PP
The \*(L"heartbeat\*(R" can be short (unusual) or long (typical) relative to
the \*(L"step\*(R" interval between PDPs. A short \*(L"heartbeat\*(R" means you
\& u|15|/ "swt" expired
\& u|16|
\& |17|\-\-\-\-* sample4, restart "hb", create "pdp" for step1 =
-\& |18| / = unknown due to 10 "u" labled secs > "hb"
+\& |18| / = unknown due to 10 "u" labled secs > 0.5 * step
\& |19| /
\& |20| /
\& |21|\-\-\-\-* sample5, restart "hb"
diff --git a/doc/rrdcreate.html b/doc/rrdcreate.html
index a331537814b077f6657ecfd08b21e492ab32a1e1..2d44c4917214f75ae143cad667dad42be85c8892 100644 (file)
--- a/doc/rrdcreate.html
+++ b/doc/rrdcreate.html
Database (<strong>RRD</strong>) files. The file is created at its final, full size
and filled with <em>*UNKNOWN*</em> data.</p>
<dl>
-<dt><strong><a name="item_filename"><em>filename</em></a></strong>
+<dt><strong><a name="item_filename"><em>filename</em></a></strong></dt>
<dd>
<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
filename.</p>
</dd>
-</li>
-<dt><strong><a name="item_time"><strong>--start</strong>|<strong>-b</strong> <em>start time</em> (default: now - 10s)</a></strong>
+<dt><strong><a name="item_time"><strong>--start</strong>|<strong>-b</strong> <em>start time</em> (default: now - 10s)</a></strong></dt>
<dd>
<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>
-</dd>
-<dd>
<p>See also AT-STYLE TIME SPECIFICATION section in the
<em>rrdfetch</em> documentation for other ways to specify time.</p>
</dd>
-</li>
-<dt><strong><a name="item_step"><strong>--step</strong>|<strong>-s</strong> <em>step</em> (default: 300 seconds)</a></strong>
+<dt><strong><a name="item_step"><strong>--step</strong>|<strong>-s</strong> <em>step</em> (default: 300 seconds)</a></strong></dt>
<dd>
<p>Specifies the base interval in seconds with which data will be fed
into the <strong>RRD</strong>.</p>
</dd>
-</li>
-<dt><strong><a name="item_ds_3ads_2dname_3adst_3adst_arguments"><strong>DS:</strong><em>ds-name</em><strong>:</strong><em>DST</em><strong>:</strong><em>dst arguments</em></a></strong>
+<dt><strong><a name="item_ds_3ads_2dname_3adst_3adst_arguments"><strong>DS:</strong><em>ds-name</em><strong>:</strong><em>DST</em><strong>:</strong><em>dst arguments</em></a></strong></dt>
<dd>
<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
properties of each data source you want to store in the <strong>RRD</strong>.</p>
-</dd>
-<dd>
<p><em>ds-name</em> is the name you will use to reference this particular data
source from an <strong>RRD</strong>. A <em>ds-name</em> must be 1 to 19 characters long in
the characters [a-zA-Z0-9_].</p>
-</dd>
-<dd>
<p><em>DST</em> defines the Data Source Type. The remaining arguments of a
data source entry depend on the data source type. For GAUGE, COUNTER,
DERIVE, and ABSOLUTE the format for a data source entry is:</p>
-</dd>
-<dd>
<p><strong>DS:</strong><em>ds-name</em><strong>:</strong><em>GAUGE | COUNTER | DERIVE | ABSOLUTE</em><strong>:</strong><em>heartbeat</em><strong>:</strong><em>min</em><strong>:</strong><em>max</em></p>
-</dd>
-<dd>
<p>For COMPUTE data sources, the format is:</p>
-</dd>
-<dd>
<p><strong>DS:</strong><em>ds-name</em><strong>:</strong><em>COMPUTE</em><strong>:</strong><em>rpn-expression</em></p>
-</dd>
-<dd>
<p>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.</p>
-</dd>
<dl>
-<dt><strong><a name="item_gauge"><strong>GAUGE</strong></a></strong>
+<dt><strong><a name="item_gauge"><strong>GAUGE</strong></a></strong></dt>
<dd>
<p>is for things like temperatures or number of people in a room or the
value of a RedHat share.</p>
</dd>
-</li>
-<dt><strong><a name="item_counter"><strong>COUNTER</strong></a></strong>
+<dt><strong><a name="item_counter"><strong>COUNTER</strong></a></strong></dt>
<dd>
<p>is for continuous incrementing counters like the ifInOctets counter in
happened at the 32bit or 64bit border and acts accordingly by adding
an appropriate value to the result.</p>
</dd>
-</li>
-<dt><strong><a name="item_derive"><strong>DERIVE</strong></a></strong>
+<dt><strong><a name="item_derive"><strong>DERIVE</strong></a></strong></dt>
<dd>
<p>will store the derivative of the line going from the last to the
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.</p>
-</dd>
-<dd>
<p>NOTE on COUNTER vs DERIVE</p>
-</dd>
-<dd>
<p>by Don Baarda <<a href="mailto:don.baarda@baesystems.com">don.baarda@baesystems.com</a>></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
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 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
setting will eliminate the possibility of mistaking a reset for a counter
wrap.</p>
</dd>
-</li>
-<dt><strong><a name="item_absolute"><strong>ABSOLUTE</strong></a></strong>
+<dt><strong><a name="item_absolute"><strong>ABSOLUTE</strong></a></strong></dt>
<dd>
<p>is for counters which get reset upon reading. This is used for fast counters
next overflow. Another usage is for things you count like number of messages
since the last update.</p>
</dd>
-</li>
-<dt><strong><a name="item_compute"><strong>COMPUTE</strong></a></strong>
+<dt><strong><a name="item_compute"><strong>COMPUTE</strong></a></strong></dt>
<dd>
<p>is for storing the result of a formula applied to other data sources
to generate PDPs). In database software, such data sets are referred
to as ``virtual'' or ``computed'' columns.</p>
</dd>
-</li>
</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
names of data source listed previously in the create command. This is
similar to the restriction that <strong>CDEF</strong>s must refer only to <strong>DEF</strong>s
and <strong>CDEF</strong>s previously defined in the same graph command.</p>
-<dt><strong><a name="item_rra_3acf_3acf_arguments"><strong>RRA:</strong><em>CF</em><strong>:</strong><em>cf arguments</em></a></strong>
+</dd>
+<dt><strong><a name="item_rra_3acf_3acf_arguments"><strong>RRA:</strong><em>CF</em><strong>:</strong><em>cf arguments</em></a></strong></dt>
<dd>
<p>The purpose of an <strong>RRD</strong> is to store data in the round robin archives
(<strong>RRA</strong>). An archive consists of a number of data values or statistics for
each of the defined data-sources (<strong>DS</strong>) and is defined with an <strong>RRA</strong> line.</p>
-</dd>
-<dd>
<p>When data is entered into an <strong>RRD</strong>, it is first fit into time slots
of the length defined with the <strong>-s</strong> option, thus becoming a <em>primary
data point</em>.</p>
-</dd>
-<dd>
<p>The data is also processed with the consolidation function (<em>CF</em>) of
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>. The format of <strong>RRA</strong> line for these
consolidation functions is:</p>
-</dd>
-<dd>
<p><strong>RRA:</strong><em>AVERAGE | MIN | MAX | LAST</em><strong>:</strong><em>xff</em><strong>:</strong><em>steps</em><strong>:</strong><em>rows</em></p>
-</dd>
-<dd>
<p><em>xff</em> The xfiles factor defines what part of a consolidation interval may
be made up from <em>*UNKNOWN*</em> data while the consolidated value is still
regarded as known. It is given as the ratio of allowed <em>*UNKNOWN*</em> PDPs
to the number of PDPs in the interval. Thus, it ranges from 0 to 1 (exclusive).</p>
-</dd>
-<dd>
<p><em>steps</em> defines how many of these <em>primary data points</em> are used to build
a <em>consolidated data point</em> which then goes into the archive.</p>
-</dd>
-<dd>
<p><em>rows</em> defines how many generations of data values are kept in an <strong>RRA</strong>.</p>
</dd>
-</li>
</dl>
<p>
</p>
<p>Here is an explanation by Don Baarda on the inner workings of RRDtool.
It may help you to sort out why all this *UNKNOWN* data is popping
up in your databases:</p>
-<p>RRDtool gets fed samples at arbitrary times. From these it builds Primary
-Data Points (PDPs) at exact times on every ``step'' interval. The PDPs are
-then accumulated into RRAs.</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
+then accumulated into the RRAs.</p>
<p>The ``heartbeat'' defines the maximum acceptable interval between
-samples. If the interval between samples is less than ``heartbeat'',
+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 even an ``unknown'' input sample.</p>
+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. Also, if the total ``unknown'' time during
-the ``step'' interval exceeds the ``heartbeat'', the entire PDP is marked
+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 ``unknown''
-time to exceed ``heartbeat'' and hence mark the whole PDP ``unknown''. So
-``heartbeat'' is not only the maximum acceptable interval between
-samples, but also the maximum acceptable amount of ``unknown'' time per
-PDP (obviously this is only significant if you have ``heartbeat'' less
-than ``step'').</p>
+times in a single PDP ``step'' may or may not add up to enough ``known''
+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
require multiple samples per PDP, and if you don't get them mark the
@@ -427,7 +380,7 @@ same average rate. <em>-- Don Baarda <<a href="mailto:don.baarda@baesystems.c
u|15|/ "swt" expired
u|16|
|17|----* sample4, restart "hb", create "pdp" for step1 =
- |18| / = unknown due to 10 "u" labled secs > "hb"
+ |18| / = unknown due to 10 "u" labled secs > 0.5 * step
|19| /
|20| /
|21|----* sample5, restart "hb"
@@ -449,7 +402,7 @@ same average rate. <em>-- Don Baarda <<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>
+<dt><strong><a name="item_temperature">Temperature</a></strong></dt>
<dd>
<p>Usually you have some type of meter you can read to get the temperature.
<strong>GAUGE</strong> data source type for this. RRDtool will then record your reading
together with the time.</p>
</dd>
-</li>
-<dt><strong><a name="item_mail_messages">Mail Messages</a></strong>
+<dt><strong><a name="item_mail_messages">Mail Messages</a></strong></dt>
<dd>
<p>Assume you have a method to count the number of messages transported by
number of seconds in a day. Because all math is run with Doubles, the
precision should be acceptable.</p>
</dd>
-</li>
-<dt><strong><a name="item_it_27s_always_a_rate">It's always a Rate</a></strong>
+<dt><strong><a name="item_it_27s_always_a_rate">It's always a Rate</a></strong></dt>
<dd>
<p>RRDtool stores rates in amount/second for COUNTER, DERIVE and ABSOLUTE
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).</p>
</dd>
-</li>
</dl>
<p>
</p>
diff --git a/doc/rrdcreate.pod b/doc/rrdcreate.pod
index a47acbbaaf17e95b4c4adc7761343a0d18f19533..b5f4556770fe00729a5c86564b023b7026589da3 100644 (file)
--- a/doc/rrdcreate.pod
+++ b/doc/rrdcreate.pod
It may help you to sort out why all this *UNKNOWN* data is popping
up in your databases:
-RRDtool gets fed samples at arbitrary times. From these it builds Primary
-Data Points (PDPs) at exact times on every "step" interval. The PDPs are
-then accumulated into RRAs.
+RRDtool gets fed samples/updates at arbitrary times. From these it 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
-samples. If the interval between samples is less than "heartbeat",
+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 even an "unknown" input sample.
+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. Also, if the total "unknown" time during
-the "step" interval exceeds the "heartbeat", the entire PDP is marked
+an average rate for that PDP. If the total "unknown" time accounts for
+more than B<half> 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 "unknown"
-time to exceed "heartbeat" and hence mark the whole PDP "unknown". So
-"heartbeat" is not only the maximum acceptable interval between
-samples, but also the maximum acceptable amount of "unknown" time per
-PDP (obviously this is only significant if you have "heartbeat" less
-than "step").
+times in a single PDP "step" may or may not add up to enough "known"
+time to warrent for a known PDP.
The "heartbeat" can be short (unusual) or long (typical) relative to
the "step" interval between PDPs. A short "heartbeat" means you
u|15|/ "swt" expired
u|16|
|17|----* sample4, restart "hb", create "pdp" for step1 =
- |18| / = unknown due to 10 "u" labled secs > "hb"
+ |18| / = unknown due to 10 "u" labled secs > 0.5 * step
|19| /
|20| /
|21|----* sample5, restart "hb"
diff --git a/doc/rrdcreate.txt b/doc/rrdcreate.txt
index eaa70c156b29c7826bfb9f998fbbac1678072e31..9704826ee7b2550ed01c77241e94005d25d53c89 100644 (file)
--- a/doc/rrdcreate.txt
+++ b/doc/rrdcreate.txt
@@ -303,38 +303,34 @@ 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
It may help you to sort out why all this *UNKNOWN* data is popping up
in your databases:
- RRDtool gets fed samples at arbitrary times. From these it builds Pri-
- mary Data Points (PDPs) at exact times on every "step" interval. The
- PDPs are then accumulated into RRAs.
+ RRDtool gets fed samples/updates at arbitrary times. From these it
+ 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. If the interval between samples is less than "heartbeat", then an
- average rate is calculated and applied for that interval. If the inter-
- val between samples is longer than "heartbeat", then that entire inter-
- val is considered "unknown". Note that there are other things that can
- make a sample interval "unknown", such as the rate exceeding limits, or
- even an "unknown" input sample.
+ 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 known rates during a PDP's "step" interval are used to calculate an
- average rate for that PDP. Also, if the total "unknown" time during the
- "step" interval exceeds the "heartbeat", 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 "unknown"
- time to exceed "heartbeat" and hence mark the whole PDP "unknown". So
- "heartbeat" is not only the maximum acceptable interval between sam-
- ples, but also the maximum acceptable amount of "unknown" time per PDP
- (obviously this is only significant if you have "heartbeat" less than
- "step").
+ average rate for that PDP. If the total "unknown" time accounts for
+ more than h\bha\bal\blf\bf 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" time to warrent for
+ a known PDP.
The "heartbeat" can be short (unusual) or long (typical) relative to
the "step" interval between PDPs. A short "heartbeat" 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 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|
@@ -356,7 +352,7 @@ 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
u|15|/ "swt" expired
u|16|
|17|----* sample4, restart "hb", create "pdp" for step1 =
- |18| / = unknown due to 10 "u" labled secs > "hb"
+ |18| / = unknown due to 10 "u" labled secs > 0.5 * step
|19| /
|20| /
|21|----* sample5, restart "hb"
-1.2.27 2008-02-17 RRDCREATE(1)
+1.2.28 2008-07-23 RRDCREATE(1)
diff --git a/doc/rrddump.1 b/doc/rrddump.1
index 3df1a452fdefb8177ece8b9d5edcbc6539041ced..14df7e94abd01f47dab072a8c26b9ef655756ec5 100644 (file)
--- a/doc/rrddump.1
+++ b/doc/rrddump.1
.\" ========================================================================
.\"
.IX Title "RRDDUMP 1"
-.TH RRDDUMP 1 "2008-02-17" "1.2.27" "rrdtool"
+.TH RRDDUMP 1 "2008-07-23" "1.2.28" "rrdtool"
.SH "NAME"
rrddump \- dump the contents of an RRD to XML format
.SH "SYNOPSIS"
diff --git a/doc/rrddump.html b/doc/rrddump.html
index 2283122eb90f49c424f7a26cafb441db9a26e832..89749f453a6f7f178006951da7c68a8b7d061de7 100644 (file)
--- a/doc/rrddump.html
+++ b/doc/rrddump.html
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>
+<dt><strong><a name="item_filename_2errd"><em>filename.rrd</em></a></strong></dt>
<dd>
<p>The name of the <strong>RRD</strong> you want to dump.</p>
</dd>
-</li>
-<dt><strong><a name="item_filename_2exml"><em>filename.xml</em></a></strong>
+<dt><strong><a name="item_filename_2exml"><em>filename.xml</em></a></strong></dt>
<dd>
<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>
-</li>
</dl>
<p>
</p>
diff --git a/doc/rrddump.txt b/doc/rrddump.txt
index f995a56269d8d50662f3b90779c72c18151b5d7f..292d88aa76d0158ea47a2cd2999119f8dde808d4 100644 (file)
--- a/doc/rrddump.txt
+++ b/doc/rrddump.txt
-1.2.27 2008-02-17 RRDDUMP(1)
+1.2.28 2008-07-23 RRDDUMP(1)
diff --git a/doc/rrdfetch.1 b/doc/rrdfetch.1
index 9c20fb68ba0d76cb6d2964afbfa12303493bd3ec..492867bda1b61fce199c1e5e8934ad75f7f3388a 100644 (file)
--- a/doc/rrdfetch.1
+++ b/doc/rrdfetch.1
.\" ========================================================================
.\"
.IX Title "RRDFETCH 1"
-.TH RRDFETCH 1 "2008-02-17" "1.2.27" "rrdtool"
+.TH RRDFETCH 1 "2008-07-23" "1.2.28" "rrdtool"
.SH "NAME"
rrdfetch \- Fetch data from an RRD.
.SH "SYNOPSIS"
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"
.IX Subsection "AT-STYLE TIME SPECIFICATION"
diff --git a/doc/rrdfetch.html b/doc/rrdfetch.html
index 9e4e41ceaf8df6b367addbc415899a30da56602d..e4e682a52f8b6822d21a7d4470b990215748ce3c 100644 (file)
--- a/doc/rrdfetch.html
+++ b/doc/rrdfetch.html
represented by the string ``NaN'' depending on your OS's printf
function.</p>
<dl>
-<dt><strong><a name="item_filename"><em>filename</em></a></strong>
+<dt><strong><a name="item_filename"><em>filename</em></a></strong></dt>
<dd>
<p>the name of the <strong>RRD</strong> you want to fetch the data from.</p>
</dd>
-</li>
-<dt><strong><a name="item_cf"><em>CF</em></a></strong>
+<dt><strong><a name="item_cf"><em>CF</em></a></strong></dt>
<dd>
<p>the consolidation function that is applied to the data you
want to fetch (AVERAGE,MIN,MAX,LAST)</p>
</dd>
-</li>
-<dt><strong><a name="item_resolution"><strong>--resolution</strong>|<strong>-r</strong> <em>resolution</em> (default is the highest resolution)</a></strong>
+<dt><strong><a name="item_resolution"><strong>--resolution</strong>|<strong>-r</strong> <em>resolution</em> (default is the highest resolution)</a></strong></dt>
<dd>
<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.</p>
</dd>
-</li>
-<dt><strong><a name="item_start"><strong>--start</strong>|<strong>-s</strong> <em>start</em> (default end-1day)</a></strong>
+<dt><strong><a name="item_start"><strong>--start</strong>|<strong>-s</strong> <em>start</em> (default end-1day)</a></strong></dt>
<dd>
<p>start of the time series. A time in seconds since epoch (1970-01-01)
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.</p>
</dd>
-</li>
-<dt><strong><a name="item_end"><strong>--end</strong>|<strong>-e</strong> <em>end</em> (default now)</a></strong>
+<dt><strong><a name="item_end"><strong>--end</strong>|<strong>-e</strong> <em>end</em> (default now)</a></strong></dt>
<dd>
<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.</p>
</dd>
-</li>
</dl>
<p>
</p>
diff --git a/doc/rrdfetch.txt b/doc/rrdfetch.txt
index e2af859b29db2fc0488410750a0440fa81cc0c06..49e0b2a23f01f8787e2c4c047e9f92be34dda68d 100644 (file)
--- a/doc/rrdfetch.txt
+++ b/doc/rrdfetch.txt
-1.2.27 2008-02-17 RRDFETCH(1)
+1.2.28 2008-07-23 RRDFETCH(1)
diff --git a/doc/rrdfirst.1 b/doc/rrdfirst.1
index 57e7c1a675ab5d69610be42a0baceb466b3a0f44..88b777ef6d53f98232d34b480d318aa99f32b4f6 100644 (file)
--- a/doc/rrdfirst.1
+++ b/doc/rrdfirst.1
.\" ========================================================================
.\"
.IX Title "RRDFIRST 1"
-.TH RRDFIRST 1 "2008-02-17" "1.2.27" "rrdtool"
+.TH RRDFIRST 1 "2008-07-23" "1.2.28" "rrdtool"
.SH "NAME"
rrdfirst \- Return the date of the first data sample in an RRA within an RRD
.SH "SYNOPSIS"
diff --git a/doc/rrdfirst.html b/doc/rrdfirst.html
index 819171a73f1cceecefa91b76e48fc9e47e046824..78f2f833a4d365c9a09afa8e73929e5f587089c6 100644 (file)
--- a/doc/rrdfirst.html
+++ b/doc/rrdfirst.html
<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>
+<dt><strong><a name="item_filename"><em>filename</em></a></strong></dt>
<dd>
<p>The name of the <strong>RRD</strong> that contains the data.</p>
</dd>
-</li>
-<dt><strong><a name="item__2d_2drraindex_number"><em>--rraindex number</em></a></strong>
+<dt><strong><a name="item__2d_2drraindex_number"><em>--rraindex number</em></a></strong></dt>
<dd>
<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>.</p>
</dd>
-</li>
</dl>
<p>
</p>
diff --git a/doc/rrdfirst.txt b/doc/rrdfirst.txt
index 684e8bc58ecf4e583b7432df7ea93997c6094ffe..346e04e643effeb6429e108592b7d0d2765230e9 100644 (file)
--- a/doc/rrdfirst.txt
+++ b/doc/rrdfirst.txt
-1.2.27 2008-02-17 RRDFIRST(1)
+1.2.28 2008-07-23 RRDFIRST(1)
diff --git a/doc/rrdgraph.1 b/doc/rrdgraph.1
index 674a3704ce221e80823d5bd206bd368ab4a0404a..a03358c2994e0e53701d1d7c13570c80859f7a77 100644 (file)
--- a/doc/rrdgraph.1
+++ b/doc/rrdgraph.1
.\" ========================================================================
.\"
.IX Title "RRDGRAPH 1"
-.TH RRDGRAPH 1 "2008-02-17" "1.2.27" "rrdtool"
+.TH RRDGRAPH 1 "2008-07-23" "1.2.28" "rrdtool"
.SH "NAME"
rrdgraph \- Round Robin Database tool grapher functions
.SH "SYNOPSIS"
lines as they specify exactly that time.
.Sp
.Vb 1
-\& \-\-x\-grid HOUR:8:DAY:1:DAY:1:0:%A
+\& \-\-x\-grid HOUR:8:DAY:1:DAY:1:86400:%A
.Ve
.Sp
This places grid lines every 8 hours, major grid lines and labels
would look like this:
.Sp
.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
.Sp
[\fB\-c\fR|\fB\-\-color\fR \fI\s-1COLORTAG\s0\fR#\fIrrggbb\fR[\fIaa\fR]]
diff --git a/doc/rrdgraph.html b/doc/rrdgraph.html
index e7a9505f4dc15d9f694d3c4665f513588f5354e2..75539448c54de9b0b52a5b03e75fafcec232370f 100644 (file)
--- a/doc/rrdgraph.html
+++ b/doc/rrdgraph.html
<hr />
<h1><a name="options">OPTIONS</a></h1>
<dl>
-<dt><strong><a name="item_filename">filename</a></strong>
+<dt><strong><a name="item_filename">filename</a></strong></dt>
<dd>
<p>The name and path of the graph to generate. It is recommended to
end this in <code>.png</code>, <code>.svg</code> or <code>.eps</code>, but <strong>RRDtool</strong> does not enforce this.</p>
-</dd>
-<dd>
<p><em>filename</em> can be '<code>-</code>' to send the image to <code>stdout</code>. In
this case, no other output is generated.</p>
</dd>
-</li>
-<dt><strong><a name="item_time_range">Time range</a></strong>
+<dt><strong><a name="item_time_range">Time range</a></strong></dt>
<dd>
<p>[<strong>-s</strong>|<strong>--start</strong> <em>time</em>]
[<strong>-e</strong>|<strong>--end</strong> <em>time</em>]
[<strong>-S</strong>|<strong>--step</strong> <em>seconds</em>]</p>
-</dd>
-<dd>
<p>The start and end of the time series you would like to display, and which
<strong>RRA</strong> the data should come from. Defaults are: 1 day ago until
now, with the best possible resolution. <strong>Start</strong> and <strong>end</strong> can
@@ -110,55 +105,40 @@ If you want <strong>rrdtool graph</strong> to get data at a one-hour resolution
from the <strong>RRD</strong>, set <strong>step</strong> to 3'600. Note: a step smaller than
one pixel will silently be ignored.</p>
</dd>
-</li>
-<dt><strong><a name="item_labels">Labels</a></strong>
+<dt><strong><a name="item_labels">Labels</a></strong></dt>
<dd>
<p>[<strong>-t</strong>|<strong>--title</strong> <em>string</em>]
[<strong>-v</strong>|<strong>--vertical-label</strong> <em>string</em>]</p>
-</dd>
-<dd>
<p>A horizontal string at the top of the graph and/or a vertically
placed string at the left hand side of the graph.</p>
</dd>
-</li>
-<dt><strong><a name="item_size">Size</a></strong>
+<dt><strong><a name="item_size">Size</a></strong></dt>
<dd>
<p>[<strong>-w</strong>|<strong>--width</strong> <em>pixels</em>]
[<strong>-h</strong>|<strong>--height</strong> <em>pixels</em>]
[<strong>-j</strong>|<strong>--only-graph</strong>]</p>
-</dd>
-<dd>
<p>The width and height of the <strong>canvas</strong> (the part of the graph with
the actual data and such). This defaults to 400 pixels by 100 pixels.</p>
-</dd>
-<dd>
<p>If you specify the <strong>--only-graph</strong> 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.</p>
</dd>
-</li>
-<dt><strong><a name="item_limits">Limits</a></strong>
+<dt><strong><a name="item_limits">Limits</a></strong></dt>
<dd>
<p>[<strong>-u</strong>|<strong>--upper-limit</strong> <em>value</em>]
[<strong>-l</strong>|<strong>--lower-limit</strong> <em>value</em>]
[<strong>-r</strong>|<strong>--rigid</strong>]</p>
-</dd>
-<dd>
<p>By default the graph will be autoscaling so that it will adjust the
y-axis to the range of the data. You can change this behaviour by
explicitly setting the limits. The displayed y-axis will then range at
least from <strong>lower-limit</strong> to <strong>upper-limit</strong>. Autoscaling will still
permit those boundaries to be stretched unless the <strong>rigid</strong> option is
set.</p>
-</dd>
-<dd>
<p>[<strong>-A</strong>|<strong>--alt-autoscale</strong>]</p>
-</dd>
-<dd>
<p>Sometimes the default algorithm for selecting the y-axis scale is not
satisfactory. Normally the scale is selected from a predefined
set of ranges and this fails miserably when you need to graph something
@@ -166,31 +146,19 @@ like <code>260 + 0.001 * sin(x)</code>. This option calculates the minimum and
maximum y-axis from the actual minimum and maximum data values. Our example
would display slightly less than <code>260-0.001</code> to slightly more than
<code>260+0.001</code> (this feature was contributed by Sasha Mikheev).</p>
-</dd>
-<dd>
<p>[<strong>-J</strong>|<strong>--alt-autoscale-min</strong>]</p>
-</dd>
-<dd>
<p>Where <code>--alt-autoscale</code> 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.</p>
-</dd>
-<dd>
<p>[<strong>-M</strong>|<strong>--alt-autoscale-max</strong>]</p>
-</dd>
-<dd>
<p>Where <code>--alt-autoscale</code> 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.</p>
-</dd>
-<dd>
<p>[<strong>-N</strong>|<strong>--no-gridfit</strong>]</p>
-</dd>
-<dd>
<p>In order to avoid anti-aliasing effects gridlines are placed on
integer pixel values. This is by default done by extending
the scale so that gridlines happens to be spaced using an
and for linear scales where <strong>--alt-autoscale</strong> is needed.
Using <strong>--no-gridfit</strong> disables modification of the scale.</p>
</dd>
-</li>
-<dt><strong><a name="item_x_2dgrid">X-Grid</a></strong>
+<dt><strong><a name="item_x_2dgrid">X-Grid</a></strong></dt>
<dd>
<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>
-</dd>
-<dd>
<p>[<strong>-x</strong>|<strong>--x-grid</strong> <strong>none</strong>]</p>
-</dd>
-<dd>
<p>The x-axis label is quite complex to configure. If you don't have
very special needs it is probably best to rely on the autoconfiguration
to get this right. You can specify the string <code>none</code> to suppress the grid
and labels altogether.</p>
-</dd>
-<dd>
<p>The grid is defined by specifying a certain amount of time in the <em>?TM</em>
positions. You can choose from <code>SECOND</code>, <code>MINUTE</code>, <code>HOUR</code>, <code>DAY</code>,
<code>WEEK</code>, <code>MONTH</code> or <code>YEAR</code>. Then you define how many of these should
placed right under the corresponding line (useful for hours, dates
etcetera). If you specify a number of seconds here the label is
centered on this interval (useful for Monday, January etcetera).</p>
-</dd>
-<dd>
<pre>
--x-grid MINUTE:10:HOUR:1:HOUR:4:0:%X</pre>
-</dd>
-<dd>
<p>This places grid lines every 10 minutes, major grid lines every hour,
and labels every 4 hours. The labels are placed under the major grid
lines as they specify exactly that time.</p>
-</dd>
-<dd>
<pre>
- --x-grid HOUR:8:DAY:1:DAY:1:0:%A</pre>
-</dd>
-<dd>
+ --x-grid HOUR:8:DAY:1:DAY:1:86400:%A</pre>
<p>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.</p>
</dd>
-</li>
-<dt><strong><a name="item_y_2dgrid">Y-Grid</a></strong>
+<dt><strong><a name="item_y_2dgrid">Y-Grid</a></strong></dt>
<dd>
<p>[<strong>-y</strong>|<strong>--y-grid</strong> <em>grid step</em><strong>:</strong><em>label factor</em>]</p>
-</dd>
-<dd>
<p>[<strong>-y</strong>|<strong>--y-grid</strong> <strong>none</strong>]</p>
-</dd>
-<dd>
<p>Y-axis grid lines appear at each <em>grid step</em> interval. Labels are
placed every <em>label factor</em> lines. You can specify <code>-y none</code> to
suppress the grid and labels altogether. The default for this option is
to automatically select sensible values.</p>
-</dd>
-<dd>
<p>If you have set --y-grid to 'none' not only the labels get supressed, also
the space reserved for the labels is removed. You can still add space
manually if you use the --units-length command to explicitly reserve space.</p>
-</dd>
-<dd>
<p>[<strong>-Y</strong>|<strong>--alt-y-grid</strong>]</p>
-</dd>
-<dd>
<p>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).</p>
-</dd>
-<dd>
<p>[<strong>-o</strong>|<strong>--logarithmic</strong>]</p>
-</dd>
-<dd>
<p>Logarithmic y-axis scaling.</p>
-</dd>
-<dd>
<p>[<strong>-X</strong>|<strong>--units-exponent</strong> <em>value</em>]</p>
-</dd>
-<dd>
<p>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
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.</p>
-</dd>
-<dd>
<p>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
successful in labeling the graph under the given circumstances, it will switch
to the more robust <strong>--alt-y-grid</strong> mode.</p>
-</dd>
-<dd>
<p>[<strong>-L</strong>|<strong>--units-length</strong> <em>value</em>]</p>
-</dd>
-<dd>
<p>How many digits should rrdtool assume the y-axis labels to be? You
may have to use this option to make enough space once you start
fideling with the y-axis labeling.</p>
-</dd>
-<dd>
<p>[<strong>--units=si</strong>]</p>
-</dd>
-<dd>
<p>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, SI notation is used by default.</p>
</dd>
-</li>
-<dt><strong><a name="item_miscellaneous">Miscellaneous</a></strong>
+<dt><strong><a name="item_miscellaneous">Miscellaneous</a></strong></dt>
<dd>
<p>[<strong>-z</strong>|<strong>--lazy</strong>]</p>
-</dd>
-<dd>
<p>Only generate the graph if the current graph is out of date or not
existent.</p>
-</dd>
-<dd>
<p>[<strong>-f</strong>|<strong>--imginfo</strong> <em>printfstr</em>]</p>
-</dd>
-<dd>
<p>After the image has been created, the graph function uses printf
together with this format string to create output similar to the PRINT
function, only that the printf function is supplied with the parameters
<em>filename</em>, <em>xsize</em> and <em>ysize</em>. In order to generate an <strong>IMG</strong> tag
suitable for including the graph into a web page, the command line
would look like this:</p>
-</dd>
-<dd>
<pre>
--imginfo '<IMG SRC="/img/%s" WIDTH="%lu" HEIGHT="%lu" ALT="Demo">'</pre>
-</dd>
-<dd>
<p>[<strong>-c</strong>|<strong>--color</strong> <em>COLORTAG</em>#<em>rrggbb</em>[<em>aa</em>]]</p>
-</dd>
-<dd>
<p>Override the default colors for the standard elements of the graph. The
<em>COLORTAG</em> is one of <code>BACK</code> background, <code>CANVAS</code> for the background of
the actual graph, <code>SHADEA</code> for the left and top border, <code>SHADEB</code> for the
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>
-</dd>
-<dd>
<p>A green arrow is made by: <code>--color ARROW#00FF00</code></p>
-</dd>
-<dd>
<p>[<strong>--zoom</strong> <em>factor</em>]</p>
-</dd>
-<dd>
<p>Zoom the graphics by the given amount. The factor must be > 0</p>
-</dd>
-<dd>
<p>[<strong>-n</strong>|<strong>--font</strong> <em>FONTTAG</em><strong>:</strong><em>size</em><strong>:</strong>[<em>font</em>]]</p>
-</dd>
-<dd>
<p>This lets you customize which font to use for the various text
elements on the RRD graphs. <code>DEFAULT</code> sets the default value for all
elements, <code>TITLE</code> for the title, <code>AXIS</code> for the axis labels, <code>UNIT</code>
for the vertical unit label, <code>LEGEND</code> for the graph legend.</p>
-</dd>
-<dd>
<p>Use Times for the title: <code>--font TITLE:13:/usr/lib/fonts/times.ttf</code></p>
-</dd>
-<dd>
<p>If you do not give a font string you can modify just the sice of the default font:
<code>--font TITLE:13:</code>.</p>
-</dd>
-<dd>
<p>If you specify the size 0 then you can modify just the font without touching
the size. This is especially usefull for altering the default font without
resetting the default fontsizes: <code>--font DEFAULT:0:/usr/lib/fonts/times.ttf</code>.</p>
-</dd>
-<dd>
<p>RRDtool comes with a preset default font. You can set the environment
variable <code>RRD_DEFAULT_FONT</code> if you want to change this.</p>
-</dd>
-<dd>
<p>Truetype fonts are only supported for PNG output. See below.</p>
-</dd>
-<dd>
<p>[<strong>-R</strong>|<strong>--font-render-mode</strong> {<em>normal</em>,<em>light</em>,<em>mono</em>}]</p>
-</dd>
-<dd>
<p>This lets you customize the strength of the font smoothing,
or disable it entirely using <em>mono</em>. By default, <em>normal</em>
font smoothing is used.</p>
-</dd>
-<dd>
<p>[<strong>-B</strong>|<strong>--font-smoothing-threshold</strong> <em>size</em>]</p>
-</dd>
-<dd>
<p>This specifies the largest font size which will be rendered
bitmapped, that is, without any font smoothing. By default,
no text is rendered bitmapped.</p>
-</dd>
-<dd>
<p>[<strong>-E</strong>|<strong>--slope-mode</strong>]</p>
-</dd>
-<dd>
<p>RRDtool graphs are composed of stair case curves by default. This is in line with
the way RRDtool calculates its data. Some people favor a more 'organic' look
for their graphs even though it is not all that true.</p>
-</dd>
-<dd>
<p>[<strong>-a</strong>|<strong>--imgformat</strong> <strong>PNG</strong>|<strong>SVG</strong>|<strong>EPS</strong>|<strong>PDF</strong>]</p>
-</dd>
-<dd>
<p>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.</p>
-</dd>
-<dd>
<p>[<strong>-i</strong>|<strong>--interlaced</strong>]</p>
-</dd>
-<dd>
<p>If images are interlaced they become visible on browsers more quickly.</p>
-</dd>
-<dd>
<p>[<strong>-g</strong>|<strong>--no-legend</strong>]</p>
-</dd>
-<dd>
<p>Suppress generation of the legend; only render the graph.</p>
-</dd>
-<dd>
<p>[<strong>-F</strong>|<strong>--force-rules-legend</strong>]</p>
-</dd>
-<dd>
<p>Force the generation of HRULE and VRULE legends even if those HRULE or
VRULE will not be drawn because out of graph boundaries (mimics
behaviour of pre 1.0.42 versions).</p>
-</dd>
-<dd>
<p>[<strong>-T</strong>|<strong>--tabwidth</strong> <em>value</em>]</p>
-</dd>
-<dd>
<p>By default the tab-width is 40 pixels, use this option to change it.</p>
-</dd>
-<dd>
<p>[<strong>-b</strong>|<strong>--base</strong> <em>value</em>]</p>
-</dd>
-<dd>
<p>If you are graphing memory (and NOT network traffic) this switch
should be set to 1024 so that one Kb is 1024 byte. For traffic
measurement, 1 kb/s is 1000 b/s.</p>
-</dd>
-<dd>
<p>[<strong>-W</strong>|<strong>--watermark</strong> <em>string</em>]</p>
-</dd>
-<dd>
<p>Adds the given string as a watermark, horizontally centred, at the bottom
of the graph.</p>
</dd>
-</li>
-<dt><strong><a name="item_data_and_variables">Data and variables</a></strong>
+<dt><strong><a name="item_data_and_variables">Data and variables</a></strong></dt>
<dd>
<p><strong>DEF:</strong><em>vname</em><strong>=</strong><em>rrdfile</em><strong>:</strong><em>ds-name</em><strong>:</strong><em>CF</em>[<strong>:step=</strong><em>step</em>][<strong>:start=</strong><em>time</em>][<strong>:end=</strong><em>time</em>]</p>
-</dd>
-<dd>
<p><strong>CDEF:</strong><em>vname</em><strong>=</strong><em>RPN expression</em></p>
-</dd>
-<dd>
<p><strong>VDEF:</strong><em>vname</em><strong>=</strong><em>RPN expression</em></p>
-</dd>
-<dd>
<p>You need at least one <strong>DEF</strong> statement to generate anything. The
other statements are useful but optional.
See <a href="././rrdgraph_data.html">the rrdgraph_data manpage</a> and <a href="././rrdgraph_rpn.html">the rrdgraph_rpn manpage</a> for the exact format.</p>
</dd>
-</li>
-<dt><strong><a name="item_graph_and_print_elements">Graph and print elements</a></strong>
+<dt><strong><a name="item_graph_and_print_elements">Graph and print elements</a></strong></dt>
<dd>
<p>You need at least one graph element to generate an image and/or
at least one print statement to generate a report.
See <a href="././rrdgraph_graph.html">the rrdgraph_graph manpage</a> for the exact format.</p>
</dd>
-</li>
</dl>
<p>
</p>
diff --git a/doc/rrdgraph.pod b/doc/rrdgraph.pod
index 11b447e37cf5c1fa5378c03e7b88da04fbf6e7b7..c98ce9c55062c2f7bd76f07d55d999395b6f50bb 100644 (file)
--- a/doc/rrdgraph.pod
+++ b/doc/rrdgraph.pod
and labels every 4 hours. The labels are placed under the major grid
lines as they specify exactly that time.
- --x-grid HOUR:8:DAY:1:DAY:1:0:%A
+ --x-grid HOUR:8:DAY:1:DAY:1:86400:%A
This places grid lines every 8 hours, major grid lines and labels
each day. The labels are placed exactly between two major grid lines
diff --git a/doc/rrdgraph.txt b/doc/rrdgraph.txt
index d1a493afee18104d552f14f657cfa8ec4fd8df53..895dfc4321169a5acf9031d8ad2c33bb7c499177 100644 (file)
--- a/doc/rrdgraph.txt
+++ b/doc/rrdgraph.txt
hour, and labels every 4 hours. The labels are placed under the
major grid lines as they specify exactly that time.
- --x-grid HOUR:8:DAY:1:DAY:1:0:%A
+ --x-grid HOUR:8:DAY:1:DAY:1:86400:%A
This places grid lines every 8 hours, major grid lines and labels
each day. The labels are placed exactly between two major grid
-1.2.27 2008-02-17 RRDGRAPH(1)
+1.2.28 2008-07-23 RRDGRAPH(1)
diff --git a/doc/rrdgraph_data.1 b/doc/rrdgraph_data.1
index 5c427f69fdeec7eb9f4d8266e3cc55ca7c04d0e1..258c24e5ddd28f2487f2468330698fa8445370b1 100644 (file)
--- a/doc/rrdgraph_data.1
+++ b/doc/rrdgraph_data.1
.\" ========================================================================
.\"
.IX Title "RRDGRAPH_DATA 1"
-.TH RRDGRAPH_DATA 1 "2008-02-17" "1.2.27" "rrdtool"
+.TH RRDGRAPH_DATA 1 "2008-07-23" "1.2.28" "rrdtool"
.SH "NAME"
rrdgraph_data \- preparing data for graphing in rrdtool graph
.SH "SYNOPSIS"
diff --git a/doc/rrdgraph_data.txt b/doc/rrdgraph_data.txt
index e6f6923da270f94c559e546a138647797925a646..60130be04346ddc3b183bbbf7d45c106cbb59b44 100644 (file)
--- a/doc/rrdgraph_data.txt
+++ b/doc/rrdgraph_data.txt
-1.2.27 2008-02-17 RRDGRAPH_DATA(1)
+1.2.28 2008-07-23 RRDGRAPH_DATA(1)
index 80fd8424737380df6c130dbcbe63847ac1f769d7..191d9e2fc1e5ca80e00b8fc34024861814004931 100644 (file)
--- a/doc/rrdgraph_examples.1
+++ b/doc/rrdgraph_examples.1
.\" ========================================================================
.\"
.IX Title "RRDGRAPH_EXAMPLES 1"
-.TH RRDGRAPH_EXAMPLES 1 "2008-02-17" "1.2.27" "rrdtool"
+.TH RRDGRAPH_EXAMPLES 1 "2008-07-23" "1.2.28" "rrdtool"
.SH "NAME"
rrdgraph_examples \- Examples for rrdtool graph
.SH "SYNOPSIS"
index ca58ce7696ad29b0f477179e27f1b50f3a83e366..afcb52f0ffe9002e056abb8a47ecaf918332d7e6 100644 (file)
-1.2.27 2008-02-17 RRDGRAPH_EXAMPLES(1)
+1.2.28 2008-07-23 RRDGRAPH_EXAMPLES(1)
diff --git a/doc/rrdgraph_graph.1 b/doc/rrdgraph_graph.1
index f7429f9f109b835c54afc498a9a538351a63d4b5..4a174800494fbbaf210aaa710a4e0432b2d16657 100644 (file)
--- a/doc/rrdgraph_graph.1
+++ b/doc/rrdgraph_graph.1
.\" ========================================================================
.\"
.IX Title "RRDGRAPH_GRAPH 1"
-.TH RRDGRAPH_GRAPH 1 "2008-02-17" "1.2.27" "rrdtool"
+.TH RRDGRAPH_GRAPH 1 "2008-07-23" "1.2.28" "rrdtool"
.SH "NAME"
rrdgraph_graph \- rrdtool graph command reference
.SH "SYNOPSIS"
index 78aae248891171cbce61f122b8c4bf1044f2fa16..122a5b427e64f913c5c5321298a85d69b48f5cc8 100644 (file)
--- a/doc/rrdgraph_graph.html
+++ b/doc/rrdgraph_graph.html
</p>
<h2><a name="print">PRINT</a></h2>
<dl>
-<dt><strong><a name="item_print_3avname_3aformat_5b_3astrftime_5d"><strong>PRINT:</strong><em>vname</em><strong>:</strong><em>format</em>[<strong>:strftime</strong>]</a></strong>
+<dt><strong><a name="item_print_3avname_3aformat_5b_3astrftime_5d"><strong>PRINT:</strong><em>vname</em><strong>:</strong><em>format</em>[<strong>:strftime</strong>]</a></strong></dt>
<dd>
<p>Depending on the context, either the value component or the time
component of a <strong>VDEF</strong> is printed using <em>format</em>. It is an error
to specify a <em>vname</em> generated by a <strong>DEF</strong> or <strong>CDEF</strong>.</p>
-</dd>
-<dd>
<p>Any text in <em>format</em> is printed literally with one exception:
The percent character introduces a formatter string. This string
can be:</p>
-</dd>
-<dd>
<p>For printing values:</p>
-</dd>
-<dd>
<p><strong>%%</strong> - just prints a literal '%' character</p>
-</dd>
-<dd>
<p><strong>%#.#le</strong> - prints numbers like 1.2346e+04. The optional integers # denote field
width and decimal precision.</p>
-</dd>
-<dd>
<p><strong>%#.#lf</strong> - prints numbers like 12345.6789, with optional field width
and precision.</p>
-</dd>
-<dd>
<p><strong>%s</strong> - 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 -> 123.456 k).</p>
-</dd>
-<dd>
<p><strong>%S</strong> - 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.</p>
-</dd>
-<dd>
<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 clibrary. 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>
-</dd>
-<dd>
<p><strong>%a</strong> - The abbreviated weekday name according to the current locale.</p>
-</dd>
-<dd>
<p><strong>%A</strong> - The full weekday name according to the current locale.</p>
-</dd>
-<dd>
<p><strong>%b</strong> - The abbreviated month name according to the current locale.</p>
-</dd>
-<dd>
<p><strong>%B</strong> - The full month name according to the current locale.</p>
-</dd>
-<dd>
<p><strong>%c</strong> - The preferred date and time representation for the current locale.</p>
-</dd>
-<dd>
<p><strong>%d</strong> - The day of the month as a decimal number (range 01 to 31).</p>
-</dd>
-<dd>
<p><strong>%H</strong> - The hour as a decimal number using a 24-hour clock (range 00 to 23).</p>
-</dd>
-<dd>
<p><strong>%I</strong> - The hour as a decimal number using a 12-hour clock (range 01 to 12).</p>
-</dd>
-<dd>
<p><strong>%j</strong> - The day of the year as a decimal number (range 001 to 366).</p>
-</dd>
-<dd>
<p><strong>%m</strong> - The month as a decimal number (range 01 to 12).</p>
-</dd>
-<dd>
<p><strong>%M</strong> - The minute as a decimal number (range 00 to 59).</p>
-</dd>
-<dd>
<p><strong>%p</strong> - 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.</p>
-</dd>
-<dd>
<p><strong>%S</strong> - The second as a decimal number (range 00 to 61).</p>
-</dd>
-<dd>
<p><strong>%U</strong> - 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>
-<dd>
<p><strong>%V</strong> - 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.</p>
-</dd>
-<dd>
<p><strong>%w</strong> - The day of the week as a decimal, range 0 to 6, Sunday being 0. See also %u.</p>
-</dd>
-<dd>
<p><strong>%W</strong> - 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>
-<dd>
<p><strong>%x</strong> - The preferred date representation for the current locale without the time.</p>
-</dd>
-<dd>
<p><strong>%X</strong> - The preferred time representation for the current locale without the date.</p>
-</dd>
-<dd>
<p><strong>%y</strong> - The year as a decimal number without a century (range 00 to 99).</p>
-</dd>
-<dd>
<p><strong>%Y</strong> - The year as a decimal number including the century.</p>
-</dd>
-<dd>
<p><strong>%Z</strong> - The time zone or name or abbreviation.</p>
-</dd>
-<dd>
<p><strong>%%</strong> - A literal `%' character.</p>
</dd>
-</li>
-<dt><strong><a name="item_print_3avname_3acf_3aformat"><strong>PRINT:</strong><em>vname</em><strong>:</strong><em>CF</em><strong>:</strong><em>format</em></a></strong>
+<dt><strong><a name="item_print_3avname_3acf_3aformat"><strong>PRINT:</strong><em>vname</em><strong>:</strong><em>CF</em><strong>:</strong><em>format</em></a></strong></dt>
<dd>
<p><em>Deprecated. Use the new form of this command in new scripts.</em>
The first form of this command is to be used with <strong>CDEF</strong> <em>vname</em>s.</p>
</dd>
-</li>
</dl>
<p>
</p>
<h2><a name="graph">GRAPH</a></h2>
<dl>
-<dt><strong><a name="item_gprint_3avname_3aformat"><strong>GPRINT</strong><strong>:</strong><em>vname</em><strong>:</strong><em>format</em></a></strong>
+<dt><strong><a name="item_gprint_3avname_3aformat"><strong>GPRINT</strong><strong>:</strong><em>vname</em><strong>:</strong><em>format</em></a></strong></dt>
<dd>
<p>This is the same as <code>PRINT</code>, but printed inside the graph.</p>
</dd>
-</li>
-<dt><strong><a name="item_gprint_3avname_3acf_3aformat"><strong>GPRINT</strong><strong>:</strong><em>vname</em><strong>:</strong><em>CF</em><strong>:</strong><em>format</em></a></strong>
+<dt><strong><a name="item_gprint_3avname_3acf_3aformat"><strong>GPRINT</strong><strong>:</strong><em>vname</em><strong>:</strong><em>CF</em><strong>:</strong><em>format</em></a></strong></dt>
<dd>
<p><em>Deprecated. Use the new form of this command in new scripts.</em>
This is the same as <code>PRINT</code>, but printed inside the graph.</p>
</dd>
-</li>
-<dt><strong><a name="item_comment_3atext"><strong>COMMENT</strong><strong>:</strong><em>text</em></a></strong>
+<dt><strong><a name="item_comment_3atext"><strong>COMMENT</strong><strong>:</strong><em>text</em></a></strong></dt>
<dd>
<p>Text is printed literally in the legend section of the graph. Note that in
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>
</dd>
-</li>
-<dt><strong><a name="item_vrule_3atime_23color__5b_3alegend__5d"><strong>VRULE</strong><strong>:</strong><em>time</em><strong>#</strong><em>color</em> [<strong>:</strong><em>legend</em> ]</a></strong>
+<dt><strong><a name="item_vrule_3atime_23color__5b_3alegend__5d"><strong>VRULE</strong><strong>:</strong><em>time</em><strong>#</strong><em>color</em> [<strong>:</strong><em>legend</em> ]</a></strong></dt>
<dd>
<p>Draw a vertical line at <em>time</em>. Its color is composed from three
@@ -232,16 +165,14 @@ maximum) red, green and blue followed by an optional alpha. Optionally, a legend
printed in the legend section. <em>time</em> may be a number or a variable
from a <strong>VDEF</strong>. It is an error to use <em>vname</em>s from <strong>DEF</strong> or <strong>CDEF</strong> here.</p>
</dd>
-</li>
-<dt><strong><a name="item_hrule_3avalue_23color__5b__3alegend__5d"><strong>HRULE</strong><strong>:</strong><em>value</em><strong>#</strong><em>color</em> [ :<em>legend</em> ]</a></strong>
+<dt><strong><a name="item_hrule_3avalue_23color__5b__3alegend__5d"><strong>HRULE</strong><strong>:</strong><em>value</em><strong>#</strong><em>color</em> [ :<em>legend</em> ]</a></strong></dt>
<dd>
<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>
</dd>
-</li>
-<dt><strong><a name="item_line_5bwidth_5d_3avalue_5b_23color_5d_5b_3a_5blege"><strong>LINE</strong>[<em>width</em>]<strong>:</strong><em>value</em>[<strong>#</strong><em>color</em>][<strong>:</strong>[<em>legend</em>][<strong>:STACK</strong>]]</a></strong>
+<dt><strong><a name="item_line_5bwidth_5d_3avalue_5b_23color_5d_5b_3a_5blege"><strong>LINE</strong>[<em>width</em>]<strong>:</strong><em>value</em>[<strong>#</strong><em>color</em>][<strong>:</strong>[<em>legend</em>][<strong>:STACK</strong>]]</a></strong></dt>
<dd>
<p>Draw a line of the specified width onto the graph. <em>width</em> can be a
@@ -252,20 +183,16 @@ the legend section if specified. The <strong>value</strong> can be generated by
<strong>VDEF</strong>, and <strong>CDEF</strong>. If the optional <strong>STACK</strong> modifier is used, this line
is stacked on top of the previous element which can be a <strong>LINE</strong> or an
<strong>AREA</strong>.</p>
-</dd>
-<dd>
<p>When you do not specify a color, you cannot specify a legend. Should
you want to use STACK, use the ``LINEx:<value>::STACK'' form.</p>
</dd>
-</li>
-<dt><strong><a name="item_area_3avalue_5b_23color_5d_5b_3a_5blegend_5d_5b_3a"><strong>AREA</strong><strong>:</strong><em>value</em>[<strong>#</strong><em>color</em>][<strong>:</strong>[<em>legend</em>][<strong>:STACK</strong>]]</a></strong>
+<dt><strong><a name="item_area_3avalue_5b_23color_5d_5b_3a_5blegend_5d_5b_3a"><strong>AREA</strong><strong>:</strong><em>value</em>[<strong>#</strong><em>color</em>][<strong>:</strong>[<em>legend</em>][<strong>:STACK</strong>]]</a></strong></dt>
<dd>
<p>See <strong>LINE</strong>, however the area between the x-axis and the line will
be filled.</p>
</dd>
-</li>
-<dt><strong><a name="item_tick_3avname_23rrggbb_5baa_5d_5b_3afraction_5b_3al"><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></strong>
+<dt><strong><a name="item_tick_3avname_23rrggbb_5baa_5d_5b_3afraction_5b_3al"><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></strong></dt>
<dd>
<p>Plot a tick mark (a vertical line) for each value of <em>vname</em> that is
@@ -275,8 +202,7 @@ the axis). Note that the color specification is not optional. The TICK marks nor
start at the lower edge of the graphing area. If the fraction is negative they start
at the upper border of the graphing area.</p>
</dd>
-</li>
-<dt><strong><a name="item_shift_3avname_3aoffset"><strong>SHIFT</strong><strong>:</strong><em>vname</em><strong>:</strong><em>offset</em></a></strong>
+<dt><strong><a name="item_shift_3avname_3aoffset"><strong>SHIFT</strong><strong>:</strong><em>vname</em><strong>:</strong><em>offset</em></a></strong></dt>
<dd>
<p>Using this command <strong>RRDtool</strong> will graph the following elements
As with the other graphing elements, you can specify a number or
a variable here.</p>
</dd>
-</li>
-<dt><strong><a name="item_stack_3avname_23color_5b_3alegend_5d"><strong>STACK</strong><strong>:</strong><em>vname</em><strong>#</strong><em>color</em>[<strong>:</strong><em>legend</em>]</a></strong>
+<dt><strong><a name="item_stack_3avname_23color_5b_3alegend_5d"><strong>STACK</strong><strong>:</strong><em>vname</em><strong>#</strong><em>color</em>[<strong>:</strong><em>legend</em>]</a></strong></dt>
<dd>
<p><em>Deprecated. Use the <strong>STACK</strong> modifiers on the other commands.</em></p>
</dd>
-</li>
</dl>
<p><strong>Some notes on stacking</strong></p>
<p>When stacking, an element is not placed above the X-axis but rather
diff --git a/doc/rrdgraph_graph.txt b/doc/rrdgraph_graph.txt
index 800dcca6e79b3e6ad018559caaec01b2486793f8..268ec54abdcb3c2860850fb755ba44d7890fb7f1 100644 (file)
--- a/doc/rrdgraph_graph.txt
+++ b/doc/rrdgraph_graph.txt
-1.2.27 2008-02-17 RRDGRAPH_GRAPH(1)
+1.2.28 2008-07-23 RRDGRAPH_GRAPH(1)
diff --git a/doc/rrdgraph_rpn.1 b/doc/rrdgraph_rpn.1
index a51f542b380098ba35e9fff84b15b54da9afa2bf..82ff6d0ff0b1c592bb0227c42a71cc0943f9611c 100644 (file)
--- a/doc/rrdgraph_rpn.1
+++ b/doc/rrdgraph_rpn.1
.\" ========================================================================
.\"
.IX Title "RRDGRAPH_RPN 1"
-.TH RRDGRAPH_RPN 1 "2008-02-17" "1.2.27" "rrdtool"
+.TH RRDGRAPH_RPN 1 "2008-07-23" "1.2.28" "rrdtool"
.SH "NAME"
rrdgraph_rpn \- About RPN Math in rrdtool graph
.SH "SYNOPSIS"
diff --git a/doc/rrdgraph_rpn.html b/doc/rrdgraph_rpn.html
index a972313afc9ce6f654144cd929d415d9d6743b80..959dcfdf3aa9302211c3e9b7cd7d03e342f1a4e8 100644 (file)
--- a/doc/rrdgraph_rpn.html
+++ b/doc/rrdgraph_rpn.html
<hr />
<h1><a name="operators">OPERATORS</a></h1>
<dl>
-<dt><strong><a name="item_boolean_operators">Boolean operators</a></strong>
+<dt><strong><a name="item_boolean_operators">Boolean operators</a></strong></dt>
<dd>
<p><strong>LT, LE, GT, GE, EQ, NE</strong></p>
-</dd>
-<dd>
<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>
-</li>
-<dt><strong><a name="item_comparing_values">Comparing values</a></strong>
+<dt><strong><a name="item_comparing_values">Comparing values</a></strong></dt>
<dd>
<p><strong>MIN, MAX</strong></p>
-</dd>
-<dd>
<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>
-</li>
-<dt><strong><a name="item_arithmetics">Arithmetics</a></strong>
+<dt><strong><a name="item_arithmetics">Arithmetics</a></strong></dt>
<dd>
<p><strong>+, -, *, /, %</strong></p>
-</dd>
-<dd>
<p>Add, subtract, multiply, divide, modulo</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>
-</li>
-<dt><strong><a name="item_set_operations">Set Operations</a></strong>
+<dt><strong><a name="item_set_operations">Set Operations</a></strong></dt>
<dd>
<p><strong>SORT, REV</strong></p>
-</dd>
-<dd>
<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</strong></p>
-</dd>
-<dd>
<p>Create a ``sliding window'' average of another data series.</p>
-</dd>
-<dd>
<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>
+---!---!---!---!---!---!---!---!--->
now
<--------------->
delay t2
<---------------></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>
-</li>
-<dt><strong><a name="item_special_values">Special values</a></strong>
+<dt><strong><a name="item_special_values">Special values</a></strong></dt>
<dd>
<p><strong>UNKN</strong></p>
-</dd>
-<dd>
<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>
-</li>
-<dt><strong><a name="item_time">Time</a></strong>
+<dt><strong><a name="item_time">Time</a></strong></dt>
<dd>
<p>Time inside RRDtool is measured in seconds since the epoch. The
epoch is defined to be <code>Thu Jan 1 00:00:00 UTC 1970</code>.</p>
-</dd>
-<dd>
<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>
-</li>
-<dt><strong><a name="item_processing_the_stack_directly">Processing the stack directly</a></strong>
+<dt><strong><a name="item_processing_the_stack_directly">Processing the stack directly</a></strong></dt>
<dd>
<p><strong>DUP, POP, EXC</strong></p>
-</dd>
-<dd>
<p>Duplicate the top element, remove the top element, exchange the two
top elements.</p>
</dd>
-</li>
</dl>
<p>
</p>
<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>
+<dt><strong><a name="item_maximum_2c_minimum_2c_average">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>
-</dd>
-<dd>
<p>Example: <code>VDEF:avg=mydata,AVERAGE</code></p>
</dd>
-</li>
-<dt><strong><a name="item_last_2c_first">LAST, FIRST</a></strong>
+<dt><strong><a name="item_last_2c_first">LAST, FIRST</a></strong></dt>
<dd>
<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.</p>
-</dd>
-<dd>
<p>Example: <code>VDEF:first=mydata,FIRST</code></p>
</dd>
-</li>
-<dt><strong><a name="item_total">TOTAL</a></strong>
+<dt><strong><a name="item_total">TOTAL</a></strong></dt>
<dd>
<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.</p>
-</dd>
-<dd>
<p>Example: <code>VDEF:total=mydata,TOTAL</code></p>
</dd>
-</li>
-<dt><strong><a name="item_percent">PERCENT</a></strong>
+<dt><strong><a name="item_percent">PERCENT</a></strong></dt>
<dd>
<p>This should follow a <strong>DEF</strong> or <strong>CDEF</strong> <em>vname</em>. The <em>vname</em> is popped,
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 < -INF < finite values < INF)</p>
-</dd>
-<dd>
<p>Example: <code>VDEF:perc95=mydata,95,PERCENT</code></p>
</dd>
-</li>
-<dt><strong><a name="item_lslslope_2c_lslint_2c_lslcorrel">LSLSLOPE, LSLINT, LSLCORREL</a></strong>
+<dt><strong><a name="item_lslslope_2c_lslint_2c_lslcorrel">LSLSLOPE, LSLINT, LSLCORREL</a></strong></dt>
<dd>
<p>Return the parameters for a <strong>L</strong>east <strong>S</strong>quares <strong>L</strong>ine <em>(y = mx +b)</em>
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.</p>
-</dd>
-<dd>
<p>Example: <code>VDEF:slope=mydata,LSLSLOPE</code></p>
</dd>
-</li>
</dl>
<p>
</p>
diff --git a/doc/rrdgraph_rpn.txt b/doc/rrdgraph_rpn.txt
index 5f022a444a91bd80ecd83d1e478471a3a1fa6625..27879f40ac6b998a11840ed38a58d6cf5f5bd1dc 100644 (file)
--- a/doc/rrdgraph_rpn.txt
+++ b/doc/rrdgraph_rpn.txt
-1.2.27 2008-02-17 RRDGRAPH_RPN(1)
+1.2.28 2008-07-23 RRDGRAPH_RPN(1)
diff --git a/doc/rrdinfo.1 b/doc/rrdinfo.1
index bab666fa6e0a6fa43ead3f96a79ca6f32e723703..590fd99569ae1c4b85d9d30df116a906a7e06e51 100644 (file)
--- a/doc/rrdinfo.1
+++ b/doc/rrdinfo.1
.\" ========================================================================
.\"
.IX Title "RRDINFO 1"
-.TH RRDINFO 1 "2008-02-17" "1.2.27" "rrdtool"
+.TH RRDINFO 1 "2008-07-23" "1.2.28" "rrdtool"
.SH "NAME"
rrdinfo \- extract header information from an RRD
.SH "SYNOPSIS"
diff --git a/doc/rrdinfo.html b/doc/rrdinfo.html
index 8490112a2b39328d76ced2cfce54a7669974f9ed..a333f33003810cf8dfa15743396c7d9716beea16 100644 (file)
--- a/doc/rrdinfo.html
+++ b/doc/rrdinfo.html
rra[0].cdp_prep[1].value = nan
rra[0].cdp_prep[1].unknown_datapoints = 0</pre>
<dl>
-<dt><strong><a name="item_filename_2errd"><em>filename.rrd</em></a></strong>
+<dt><strong><a name="item_filename_2errd"><em>filename.rrd</em></a></strong></dt>
<dd>
<p>The name of the <strong>RRD</strong> you want to examine.</p>
</dd>
-</li>
</dl>
<p>
</p>
diff --git a/doc/rrdinfo.txt b/doc/rrdinfo.txt
index e6a173114f13381be267c09d08ef862d4adfe54d..ee7cf93e66e4ba253268b32fef011c240c12ce3a 100644 (file)
--- a/doc/rrdinfo.txt
+++ b/doc/rrdinfo.txt
-1.2.27 2008-02-17 RRDINFO(1)
+1.2.28 2008-07-23 RRDINFO(1)
diff --git a/doc/rrdlast.1 b/doc/rrdlast.1
index 41191397a0123d397d661904756e0a0ff37c16c2..34e00d5f49d7f1abd3e8f3342079e0bb01132d69 100644 (file)
--- a/doc/rrdlast.1
+++ b/doc/rrdlast.1
.\" ========================================================================
.\"
.IX Title "RRDLAST 1"
-.TH RRDLAST 1 "2008-02-17" "1.2.27" "rrdtool"
+.TH RRDLAST 1 "2008-07-23" "1.2.28" "rrdtool"
.SH "NAME"
rrdlast \- Return the date of the last data sample in an RRD
.SH "SYNOPSIS"
diff --git a/doc/rrdlast.html b/doc/rrdlast.html
index 0406125c59b00cac8bb677b93eeafa91a41ce6e3..d1feb13ad260d8466cf7b518fec0353644ab8879 100644 (file)
--- a/doc/rrdlast.html
+++ b/doc/rrdlast.html
<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>
+<dt><strong><a name="item_filename"><em>filename</em></a></strong></dt>
<dd>
<p>The name of the <strong>RRD</strong> that contains the data.</p>
</dd>
-</li>
</dl>
<p>
</p>
diff --git a/doc/rrdlast.txt b/doc/rrdlast.txt
index 14e28a3310d0b4c40b0ad12706b59def9e2e2d43..3692d182147605f18119ce0dff8c8a007fa41345 100644 (file)
--- a/doc/rrdlast.txt
+++ b/doc/rrdlast.txt
-1.2.27 2008-02-17 RRDLAST(1)
+1.2.28 2008-07-23 RRDLAST(1)
diff --git a/doc/rrdlastupdate.1 b/doc/rrdlastupdate.1
index 4d1a19d4b9d00fca58033782d4f3861923fd86e6..d205b47fe54a45a325745de22a3a59668a99f8c2 100644 (file)
--- a/doc/rrdlastupdate.1
+++ b/doc/rrdlastupdate.1
.\" ========================================================================
.\"
.IX Title "RRDLASTUPDATE 1"
-.TH RRDLASTUPDATE 1 "2008-02-17" "1.2.27" "rrdtool"
+.TH RRDLASTUPDATE 1 "2008-07-23" "1.2.28" "rrdtool"
.SH "NAME"
rrdlastupdate \- Return the most recent update to an RRD
.SH "SYNOPSIS"
diff --git a/doc/rrdlastupdate.html b/doc/rrdlastupdate.html
index 05ff42235976dd893c0c1dc898de79a8d2232b36..05fccf275ff6e65724e5c75d104015f713d37c24 100644 (file)
--- a/doc/rrdlastupdate.html
+++ b/doc/rrdlastupdate.html
<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>
+<dt><strong><a name="item_filename"><em>filename</em></a></strong></dt>
<dd>
<p>The name of the <strong>RRD</strong> that contains the data.</p>
</dd>
-</li>
</dl>
<p>
</p>
diff --git a/doc/rrdlastupdate.txt b/doc/rrdlastupdate.txt
index 70b5e863b4be4bff60260960e98927574d828a3d..648aeb5f591cf0d5f5c864e98fac1f09e60ec130 100644 (file)
--- a/doc/rrdlastupdate.txt
+++ b/doc/rrdlastupdate.txt
-1.2.27 2008-02-17 RRDLASTUPDATE(1)
+1.2.28 2008-07-23 RRDLASTUPDATE(1)
diff --git a/doc/rrdresize.1 b/doc/rrdresize.1
index 2ad3df2c14b1a47304183d830911a826f2225cd6..56c563b5de66fcbf488392150ef221a226db381e 100644 (file)
--- a/doc/rrdresize.1
+++ b/doc/rrdresize.1
.\" ========================================================================
.\"
.IX Title "RRDRESIZE 1"
-.TH RRDRESIZE 1 "2008-02-17" "1.2.27" "rrdtool"
+.TH RRDRESIZE 1 "2008-07-23" "1.2.28" "rrdtool"
.SH "NAME"
rrdresize \- alters the size of an RRA and creates a new .rrd file
.SH "SYNOPSIS"
diff --git a/doc/rrdresize.html b/doc/rrdresize.html
index 497044e164be49de65d72ff355169cc424cdbcf1..9303df23b9486b3c5c95fa50a76a450fa1dc089b 100644 (file)
--- a/doc/rrdresize.html
+++ b/doc/rrdresize.html
<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>
+<dt><strong><a name="item_filename"><em>filename</em></a></strong></dt>
<dd>
<p>the name of the <strong>RRD</strong> you want to alter.</p>
</dd>
-</li>
-<dt><strong><a name="item_rra_2dnum"><em>rra-num</em></a></strong>
+<dt><strong><a name="item_rra_2dnum"><em>rra-num</em></a></strong></dt>
<dd>
<p>the <strong>RRA</strong> you want to alter. You can find the number using <strong>rrdtool info</strong>.</p>
</dd>
-</li>
-<dt><strong><a name="item_grow"><strong>GROW</strong></a></strong>
+<dt><strong><a name="item_grow"><strong>GROW</strong></a></strong></dt>
<dd>
<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>
-</li>
-<dt><strong><a name="item_shrink"><strong>SHRINK</strong></a></strong>
+<dt><strong><a name="item_shrink"><strong>SHRINK</strong></a></strong></dt>
<dd>
<p>used if you want to remove rows from an RRA. The rows that will be removed
are the oldest rows.</p>
</dd>
-</li>
-<dt><strong><a name="item_rows"><em>rows</em></a></strong>
+<dt><strong><a name="item_rows"><em>rows</em></a></strong></dt>
<dd>
<p>the number of rows you want to add or remove.</p>
</dd>
-</li>
</dl>
<p>
</p>
diff --git a/doc/rrdresize.txt b/doc/rrdresize.txt
index 817090ec8d3e27a6fe2029029422a63c30f182fb..498fd4d0102985ff5de20c56a6a84d72f76cf929 100644 (file)
--- a/doc/rrdresize.txt
+++ b/doc/rrdresize.txt
-1.2.27 2008-02-17 RRDRESIZE(1)
+1.2.28 2008-07-23 RRDRESIZE(1)
diff --git a/doc/rrdrestore.1 b/doc/rrdrestore.1
index fcd8455e4e39ccc1a477f9f197a595c2210eb713..a56c89eb1598d47fa22cdebf252e56136df37878 100644 (file)
--- a/doc/rrdrestore.1
+++ b/doc/rrdrestore.1
.\" ========================================================================
.\"
.IX Title "RRDRESTORE 1"
-.TH RRDRESTORE 1 "2008-02-17" "1.2.27" "rrdtool"
+.TH RRDRESTORE 1 "2008-07-23" "1.2.28" "rrdtool"
.SH "NAME"
rrdrestore \- Restore the contents of an RRD from its XML dump format
.SH "SYNOPSIS"
diff --git a/doc/rrdrestore.html b/doc/rrdrestore.html
index 4f49fa59cc4333b4dd1dd3aad65b223f3422d0bb..142c29f8fc8a8ddb3ec079ceb951c0d01b235b3a 100644 (file)
--- a/doc/rrdrestore.html
+++ b/doc/rrdrestore.html
<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>
+<dt><strong><a name="item_filename_2exml"><em>filename.xml</em></a></strong></dt>
<dd>
<p>The name of the <strong>XML</strong> file you want to restore.</p>
</dd>
-</li>
-<dt><strong><a name="item_filename_2errd"><em>filename.rrd</em></a></strong>
+<dt><strong><a name="item_filename_2errd"><em>filename.rrd</em></a></strong></dt>
<dd>
<p>The name of the <strong>RRD</strong> to restore.</p>
</dd>
-</li>
-<dt><strong><a name="item__2d_2drange_2dcheck_7c_2dr"><strong>--range-check</strong>|<strong>-r</strong></a></strong>
+<dt><strong><a name="item__2d_2drange_2dcheck_7c_2dr"><strong>--range-check</strong>|<strong>-r</strong></a></strong></dt>
<dd>
<p>Make sure the values in the RRAs do not exceed the limits defined for
the various data sources.</p>
</dd>
-</li>
-<dt><strong><a name="item__2d_2dforce_2doverwrite_7c_2df"><strong>--force-overwrite</strong>|<strong>-f</strong></a></strong>
+<dt><strong><a name="item__2d_2dforce_2doverwrite_7c_2df"><strong>--force-overwrite</strong>|<strong>-f</strong></a></strong></dt>
<dd>
<p>Allows <strong>RRDtool</strong> to overwrite the destination <strong>RRD</strong>.</p>
</dd>
-</li>
</dl>
<p>
</p>
diff --git a/doc/rrdrestore.txt b/doc/rrdrestore.txt
index 49abd7690655e592f82c13f0b251c92209084366..800b8194f261bfe9480d800aaedf38e309491f37 100644 (file)
--- a/doc/rrdrestore.txt
+++ b/doc/rrdrestore.txt
-1.2.27 2008-02-17 RRDRESTORE(1)
+1.2.28 2008-07-23 RRDRESTORE(1)
diff --git a/doc/rrdthreads.1 b/doc/rrdthreads.1
index d3b496e322b62d72183ff4057e5715dd4be0936d..695a73573eb771228702e3d8dbaaa90e4cb31664 100644 (file)
--- a/doc/rrdthreads.1
+++ b/doc/rrdthreads.1
.\" ========================================================================
.\"
.IX Title "RRDTHREADS 1"
-.TH RRDTHREADS 1 "2008-02-17" "1.2.27" "rrdtool"
+.TH RRDTHREADS 1 "2008-07-23" "1.2.28" "rrdtool"
.SH "NAME"
rrdthreads \- Provisions for linking the RRD library to use in multi\-threaded programs
.SH "SYNOPSIS"
diff --git a/doc/rrdthreads.html b/doc/rrdthreads.html
index a20a11121058992396f1d18b8a470511cdc9656e..c6211f9ba7fe89a5ddb601d0fa4664733bd70aa6 100644 (file)
--- a/doc/rrdthreads.html
+++ b/doc/rrdthreads.html
<p>Many others (lookup documentation)</p>
</li>
</ul>
+</li>
<li>
<p>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
diff --git a/doc/rrdthreads.txt b/doc/rrdthreads.txt
index 86adb3a59cdbbf43176fc1714a1c1bf3a737be61..21734abbd02dfa2af4ba160c7c33fe1edaae43a7 100644 (file)
--- a/doc/rrdthreads.txt
+++ b/doc/rrdthreads.txt
-1.2.27 2008-02-17 RRDTHREADS(1)
+1.2.28 2008-07-23 RRDTHREADS(1)
diff --git a/doc/rrdtool.1 b/doc/rrdtool.1
index 4d20cc898ec9bc6041834efffb00030272eeea3b..cf0efe8990e960a6054d05ef7b141680c7fbb534 100644 (file)
--- a/doc/rrdtool.1
+++ b/doc/rrdtool.1
.\" ========================================================================
.\"
.IX Title "RRDTOOL 1"
-.TH RRDTOOL 1 "2008-02-17" "1.2.27" "rrdtool"
+.TH RRDTOOL 1 "2008-07-23" "1.2.28" "rrdtool"
.SH "NAME"
rrdtool \- Round Robin Database Tool
.SH "SYNOPSIS"
diff --git a/doc/rrdtool.html b/doc/rrdtool.html
index 2673b6b2d480bf03132568d893fd0fe393424bf2..a3cc6acea3435e0c7511505cdea24b0d7533a77d 100644 (file)
--- a/doc/rrdtool.html
+++ b/doc/rrdtool.html
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>
+<dt><strong><a name="item_create"><strong>create</strong></a></strong></dt>
<dd>
<p>Set up a new Round Robin Database (RRD). Check <a href="././rrdcreate.html">the rrdcreate manpage</a>.</p>
</dd>
-</li>
-<dt><strong><a name="item_update"><strong>update</strong></a></strong>
+<dt><strong><a name="item_update"><strong>update</strong></a></strong></dt>
<dd>
<p>Store new data values into an RRD. Check <a href="././rrdupdate.html">the rrdupdate manpage</a>.</p>
</dd>
-</li>
-<dt><strong><a name="item_updatev"><strong>updatev</strong></a></strong>
+<dt><strong><a name="item_updatev"><strong>updatev</strong></a></strong></dt>
<dd>
<p>Operationally equivalent to <strong>update</strong> except for output. Check <a href="././rrdupdate.html">the rrdupdate manpage</a>.</p>
</dd>
-</li>
-<dt><strong><a name="item_graph"><strong>graph</strong></a></strong>
+<dt><strong><a name="item_graph"><strong>graph</strong></a></strong></dt>
<dd>
<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>
-</li>
-<dt><strong><a name="item_dump"><strong>dump</strong></a></strong>
+<dt><strong><a name="item_dump"><strong>dump</strong></a></strong></dt>
<dd>
<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>.</p>
</dd>
-</li>
-<dt><strong><a name="item_restore"><strong>restore</strong></a></strong>
+<dt><strong><a name="item_restore"><strong>restore</strong></a></strong></dt>
<dd>
<p>Restore an RRD in XML format to a binary RRD. Check <a href="././rrdrestore.html">the rrdrestore manpage</a></p>
</dd>
-</li>
-<dt><strong><a name="item_fetch"><strong>fetch</strong></a></strong>
+<dt><strong><a name="item_fetch"><strong>fetch</strong></a></strong></dt>
<dd>
<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>
-</li>
-<dt><strong><a name="item_tune"><strong>tune</strong></a></strong>
+<dt><strong><a name="item_tune"><strong>tune</strong></a></strong></dt>
<dd>
<p>Alter setup of an RRD. Check <a href="././rrdtune.html">the rrdtune manpage</a>.</p>
</dd>
-</li>
-<dt><strong><a name="item_last"><strong>last</strong></a></strong>
+<dt><strong><a name="item_last"><strong>last</strong></a></strong></dt>
<dd>
<p>Find the last update time of an RRD. Check <a href="././rrdlast.html">the rrdlast manpage</a>.</p>
</dd>
-</li>
-<dt><strong><a name="item_info"><strong>info</strong></a></strong>
+<dt><strong><a name="item_info"><strong>info</strong></a></strong></dt>
<dd>
<p>Get information about an RRD. Check <a href="././rrdinfo.html">the rrdinfo manpage</a>.</p>
</dd>
-</li>
-<dt><strong><a name="item_rrdresize"><strong>rrdresize</strong></a></strong>
+<dt><strong><a name="item_rrdresize"><strong>rrdresize</strong></a></strong></dt>
<dd>
<p>Change the size of individual RRAs. This is dangerous! Check <a href="././rrdresize.html">the rrdresize manpage</a>.</p>
</dd>
-</li>
-<dt><strong><a name="item_xport"><strong>xport</strong></a></strong>
+<dt><strong><a name="item_xport"><strong>xport</strong></a></strong></dt>
<dd>
<p>Export data retrieved from one or several RRDs. Check <a href="././rrdxport.html">the rrdxport manpage</a></p>
</dd>
-</li>
-<dt><strong><a name="item_rrdcgi"><strong>rrdcgi</strong></a></strong>
+<dt><strong><a name="item_rrdcgi"><strong>rrdcgi</strong></a></strong></dt>
<dd>
<p>This is a standalone tool for producing RRD graphs on the fly. Check
<a href="././rrdcgi.html">the rrdcgi manpage</a>.</p>
</dd>
-</li>
</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>
+<dt><strong><a name="item_data_acquisition">Data Acquisition</a></strong></dt>
<dd>
<p>When monitoring the state of a system, it is convenient to have the
stored as well and is also taken into account when interpolating the
next log entry.</p>
</dd>
-</li>
-<dt><strong><a name="item_consolidation">Consolidation</a></strong>
+<dt><strong><a name="item_consolidation">Consolidation</a></strong></dt>
<dd>
<p>You may log data at a 1 minute interval, but you might also be
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>.</p>
</dd>
-</li>
-<dt><strong><a name="item_round_robin_archives">Round Robin Archives</a></strong>
+<dt><strong><a name="item_round_robin_archives">Round Robin Archives</a></strong></dt>
<dd>
<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.</p>
-</dd>
-<dd>
<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
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>
-</li>
-<dt><strong><a name="item_unknown_data">Unknown Data</a></strong>
+<dt><strong><a name="item_unknown_data">Unknown Data</a></strong></dt>
<dd>
<p>As mentioned earlier, the <strong>RRD</strong> stores data at a constant
data point is above a configurable level. If not, an <em>*UNKNOWN*</em> value
will be written to the <strong>RRA</strong>.</p>
</dd>
-</li>
-<dt><strong><a name="item_graphing">Graphing</a></strong>
+<dt><strong><a name="item_graphing">Graphing</a></strong></dt>
<dd>
<p><strong>RRDtool</strong> allows you to generate reports in numerical and
contents of the graph can be defined freely. Check <a href="././rrdgraph.html">the rrdgraph manpage</a>
for more information on this.</p>
</dd>
-</li>
-<dt><strong><a name="item_aberrant_behavior_detection">Aberrant Behavior Detection</a></strong>
+<dt><strong><a name="item_aberrant_behavior_detection">Aberrant Behavior Detection</a></strong></dt>
<dd>
<p>by Jake Brutlag</p>
-</dd>
-<dd>
<p><strong>RRDtool</strong> provides the building blocks for near real-time aberrant
behavior detection. These components include:</p>
-</dd>
<ul>
<li>
<p>An algorithm for predicting the value of a time series one time step
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>
diff --git a/doc/rrdtool.txt b/doc/rrdtool.txt
index 3e986ac73e196fc8ac19e57b0e6fc56f2cac3ab3..b5cfeeb3ccaebabd7b65728f3d124266e9ca0522 100644 (file)
--- a/doc/rrdtool.txt
+++ b/doc/rrdtool.txt
-1.2.27 2008-02-17 RRDTOOL(1)
+1.2.28 2008-07-23 RRDTOOL(1)
diff --git a/doc/rrdtune.1 b/doc/rrdtune.1
index a961ee86f35fd7dfa7bfbcd62628d59b91ae73aa..787d70c19b419f9e770a1f74d8bc013c9d070286 100644 (file)
--- a/doc/rrdtune.1
+++ b/doc/rrdtune.1
.\" ========================================================================
.\"
.IX Title "RRDTUNE 1"
-.TH RRDTUNE 1 "2008-02-17" "1.2.27" "rrdtool"
+.TH RRDTUNE 1 "2008-07-23" "1.2.28" "rrdtool"
.SH "NAME"
rrdtune \- Modify some basic properties of a Round Robin Database
.SH "SYNOPSIS"
diff --git a/doc/rrdtune.html b/doc/rrdtune.html
index 59925ff366177cbd23ca507a497df5a0c03407b3..6c289dfd730f1327c2e871c68696cad6cdfd68ef 100644 (file)
--- a/doc/rrdtune.html
+++ b/doc/rrdtune.html
<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>
+<dt><strong><a name="item_filename"><em>filename</em></a></strong></dt>
<dd>
<p>The name of the <strong>RRD</strong> you want to tune.</p>
</dd>
-</li>
-<dt><strong><a name="item__2d_2dheartbeat_7c_2dh_ds_2dname_3aheartbeat"><strong>--heartbeat</strong>|<strong>-h</strong> <em>ds-name</em>:<em>heartbeat</em></a></strong>
+<dt><strong><a name="item__2d_2dheartbeat_7c_2dh_ds_2dname_3aheartbeat"><strong>--heartbeat</strong>|<strong>-h</strong> <em>ds-name</em>:<em>heartbeat</em></a></strong></dt>
<dd>
<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>
-</li>
-<dt><strong><a name="item__2d_2dminimum_7c_2di_ds_2dname_3amin"><strong>--minimum</strong>|<strong>-i</strong> <em>ds-name</em>:<em>min</em></a></strong>
+<dt><strong><a name="item__2d_2dminimum_7c_2di_ds_2dname_3amin"><strong>--minimum</strong>|<strong>-i</strong> <em>ds-name</em>:<em>min</em></a></strong></dt>
<dd>
<p>alter the minimum value acceptable as input from the data source.
Setting <em>min</em> to 'U' will disable this limit.</p>
</dd>
-</li>
-<dt><strong><a name="item__2d_2dmaximum_7c_2da_ds_2dname_3amax"><strong>--maximum</strong>|<strong>-a</strong> <em>ds-name</em>:<em>max</em></a></strong>
+<dt><strong><a name="item__2d_2dmaximum_7c_2da_ds_2dname_3amax"><strong>--maximum</strong>|<strong>-a</strong> <em>ds-name</em>:<em>max</em></a></strong></dt>
<dd>
<p>alter the maximum value acceptable as input from the data source.
Setting <em>max</em> to 'U' will disable this limit.</p>
</dd>
-</li>
-<dt><strong><a name="item__2d_2ddata_2dsource_2dtype_7c_2dd_ds_2dname_3adst"><strong>--data-source-type</strong>|<strong>-d</strong> <em>ds-name</em>:<em>DST</em></a></strong>
+<dt><strong><a name="item__2d_2ddata_2dsource_2dtype_7c_2dd_ds_2dname_3adst"><strong>--data-source-type</strong>|<strong>-d</strong> <em>ds-name</em>:<em>DST</em></a></strong></dt>
<dd>
<p>alter the type <strong>DST</strong> of a data source.</p>
</dd>
-</li>
-<dt><strong><a name="item__2d_2ddata_2dsource_2drename_7c_2dr_old_2dname_3an"><strong>--data-source-rename</strong>|<strong>-r</strong> <em>old-name</em>:<em>new-name</em></a></strong>
+<dt><strong><a name="item__2d_2ddata_2dsource_2drename_7c_2dr_old_2dname_3an"><strong>--data-source-rename</strong>|<strong>-r</strong> <em>old-name</em>:<em>new-name</em></a></strong></dt>
<dd>
<p>rename a data source.</p>
</dd>
-</li>
-<dt><strong><a name="item__2d_2ddeltapos_scale_2dvalue"><strong>--deltapos</strong> <em>scale-value</em></a></strong>
+<dt><strong><a name="item__2d_2ddeltapos_scale_2dvalue"><strong>--deltapos</strong> <em>scale-value</em></a></strong></dt>
<dd>
<p>Alter the deviation scaling factor for the upper bound of the
scale factor need not to agree with the value used internally by the
FAILURES <strong>RRA</strong>.</p>
</dd>
-</li>
-<dt><strong><a name="item__2d_2ddeltaneg_scale_2dvalue"><strong>--deltaneg</strong> <em>scale-value</em></a></strong>
+<dt><strong><a name="item__2d_2ddeltaneg_scale_2dvalue"><strong>--deltaneg</strong> <em>scale-value</em></a></strong></dt>
<dd>
<p>Alter the deviation scaling factor for the lower bound of the confidence band
@@ -123,8 +116,7 @@ used internally to calculate violations for the FAILURES <strong>RRA</strong>. T
value is 2. As with <strong>--deltapos</strong>, this argument is unrelated to the scale
factor chosen when graphing confidence bounds.</p>
</dd>
-</li>
-<dt><strong><a name="item__2d_2dfailure_2dthreshold_failure_2dthreshold"><strong>--failure-threshold</strong> <em>failure-threshold</em></a></strong>
+<dt><strong><a name="item__2d_2dfailure_2dthreshold_failure_2dthreshold"><strong>--failure-threshold</strong> <em>failure-threshold</em></a></strong></dt>
<dd>
<p>Alter the number of confidence bound violations that constitute a failure for
the tune option, so one can reset failure-threshold and window-length
simultaneously. Setting this option will reset the count of violations to 0.</p>
</dd>
-</li>
-<dt><strong><a name="item__2d_2dwindow_2dlength_window_2dlength"><strong>--window-length</strong> <em>window-length</em></a></strong>
+<dt><strong><a name="item__2d_2dwindow_2dlength_window_2dlength"><strong>--window-length</strong> <em>window-length</em></a></strong></dt>
<dd>
<p>Alter the number of time points in the temporal window for determining
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.</p>
</dd>
-</li>
-<dt><strong><a name="item__2d_2dalpha_adaption_2dparameter"><strong>--alpha</strong> <em>adaption-parameter</em></a></strong>
+<dt><strong><a name="item__2d_2dalpha_adaption_2dparameter"><strong>--alpha</strong> <em>adaption-parameter</em></a></strong></dt>
<dd>
<p>Alter the intercept adaptation parameter for the Holt-Winters
forecasting algorithm. This parameter must be between 0 and 1.</p>
</dd>
-</li>
-<dt><strong><a name="item__2d_2dbeta_adaption_2dparameter"><strong>--beta</strong> <em>adaption-parameter</em></a></strong>
+<dt><strong><a name="item__2d_2dbeta_adaption_2dparameter"><strong>--beta</strong> <em>adaption-parameter</em></a></strong></dt>
<dd>
<p>Alter the slope adaptation parameter for the Holt-Winters forecasting
algorithm. This parameter must be between 0 and 1.</p>
</dd>
-</li>
-<dt><strong><a name="item__2d_2dgamma_adaption_2dparameter"><strong>--gamma</strong> <em>adaption-parameter</em></a></strong>
+<dt><strong><a name="item__2d_2dgamma_adaption_2dparameter"><strong>--gamma</strong> <em>adaption-parameter</em></a></strong></dt>
<dd>
<p>Alter the seasonal coefficient adaptation parameter for the SEASONAL
<strong>RRA</strong>. This parameter must be between 0 and 1.</p>
</dd>
-</li>
-<dt><strong><a name="item__2d_2dgamma_2ddeviation_adaption_2dparameter"><strong>--gamma-deviation</strong> <em>adaption-parameter</em></a></strong>
+<dt><strong><a name="item__2d_2dgamma_2ddeviation_adaption_2dparameter"><strong>--gamma-deviation</strong> <em>adaption-parameter</em></a></strong></dt>
<dd>
<p>Alter the seasonal deviation adaptation parameter for the DEVSEASONAL
<strong>RRA</strong>. This parameter must be between 0 and 1.</p>
</dd>
-</li>
-<dt><strong><a name="item__2d_2daberrant_2dreset_ds_2dname"><strong>--aberrant-reset</strong> <em>ds-name</em></a></strong>
+<dt><strong><a name="item__2d_2daberrant_2dreset_ds_2dname"><strong>--aberrant-reset</strong> <em>ds-name</em></a></strong></dt>
<dd>
<p>This option causes the aberrant behavior detection algorithm to reset
(the values of the HWPREDICT <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.</p>
-</dd>
-<dd>
<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
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>
-</li>
</dl>
<p>
</p>
diff --git a/doc/rrdtune.txt b/doc/rrdtune.txt
index 0ce504666de1d35b164a71e40a983375b57a0b30..0b62ea9e994e250c1b0e4bce041cb351142941c9 100644 (file)
--- a/doc/rrdtune.txt
+++ b/doc/rrdtune.txt
-1.2.27 2008-02-17 RRDTUNE(1)
+1.2.28 2008-07-23 RRDTUNE(1)
diff --git a/doc/rrdtutorial.1 b/doc/rrdtutorial.1
index 7efe014f5ce9bed028ca317f8adad3e5ffb19365..b1a69ada0f3c227857cfc5d5a823c2a36f63191a 100644 (file)
--- a/doc/rrdtutorial.1
+++ b/doc/rrdtutorial.1
.\" ========================================================================
.\"
.IX Title "RRDTUTORIAL 1"
-.TH RRDTUTORIAL 1 "2008-02-17" "1.2.27" "rrdtool"
+.TH RRDTUTORIAL 1 "2008-07-23" "1.2.28" "rrdtool"
.SH "NAME"
rrdtutorial \- Alex van den Bogaerdt's RRDtool tutorial
.SH "DESCRIPTION"
.PP
.Vb 6
\& M: meter
-\& KM: kilometer (= 1'000 meters).
+\& KM: kilometer (= 1\(aq000 meters).
\& H: hour
\& S: second
\& KM/H: kilometers per hour
To change a value that is measured in meters per second:
.PP
.Vb 3
-\& Calculate meters per hour: value * 3'600
-\& Calculate kilometers per hour: value / 1'000
-\& Together this makes: value * (3'600/1'000) or value * 3.6
+\& Calculate meters per hour: value * 3\(aq600
+\& Calculate kilometers per hour: value / 1\(aq000
+\& Together this makes: value * (3\(aq600/1\(aq000) or value * 3.6
.Ve
.PP
In our example database we made a mistake and we need to compensate for
this by multiplying with 1'000. Applying that correction:
.PP
.Vb 1
-\& value * 3.6 * 1'000 == value * 3'600
+\& value * 3.6 * 1\(aq000 == value * 3\(aq600
.Ve
.PP
Now let's create this \s-1PNG\s0, and add some more magic ...
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
maximum value of the counter + 1. For our car this would be:
.PP
.Vb 1
-\& Delta = 7 \- 999'987 = \-999'980 (instead of 1'000'007\-999'987=20)
+\& Delta = 7 \- 999\(aq987 = \-999\(aq980 (instead of 1\(aq000\(aq007\-999\(aq987=20)
.Ve
.PP
.Vb 1
-\& Real delta = \-999'980 + 999'999 + 1 = 20
+\& Real delta = \-999\(aq980 + 999\(aq999 + 1 = 20
.Ve
.PP
At the time of writing this document, RRDtool knows of counters that
following different values:
.PP
.Vb 2
-\& \- 32 bits: 0 .. 4'294'967'295
-\& \- 64 bits: 0 .. 18'446'744'073'709'551'615
+\& \- 32 bits: 0 .. 4\(aq294\(aq967\(aq295
+\& \- 64 bits: 0 .. 18\(aq446\(aq744\(aq073\(aq709\(aq551\(aq615
.Ve
.PP
If these numbers look strange to you, you can view them in
Correction numbers:
.PP
.Vb 3
-\& \- 32 bits: (4'294'967'295 + 1) = 4'294'967'296
-\& \- 64 bits: (18'446'744'073'709'551'615 + 1)
-\& \- correction1 = 18'446'744'069'414'584'320
+\& \- 32 bits: (4\(aq294\(aq967\(aq295 + 1) = 4\(aq294\(aq967\(aq296
+\& \- 64 bits: (18\(aq446\(aq744\(aq073\(aq709\(aq551\(aq615 + 1)
+\& \- correction1 = 18\(aq446\(aq744\(aq069\(aq414\(aq584\(aq320
.Ve
.PP
.Vb 6
-\& Before: 4'294'967'200
+\& Before: 4\(aq294\(aq967\(aq200
\& Increase: 100
-\& Should become: 4'294'967'300
+\& Should become: 4\(aq294\(aq967\(aq300
\& But really is: 4
-\& Delta: \-4'294'967'196
-\& Correction1: \-4'294'967'196 + 4'294'967'296 = 100
+\& Delta: \-4\(aq294\(aq967\(aq196
+\& Correction1: \-4\(aq294\(aq967\(aq196 + 4\(aq294\(aq967\(aq296 = 100
.Ve
.PP
.Vb 9
-\& Before: 18'446'744'073'709'551'000
+\& Before: 18\(aq446\(aq744\(aq073\(aq709\(aq551\(aq000
\& Increase: 800
-\& Should become: 18'446'744'073'709'551'800
+\& Should become: 18\(aq446\(aq744\(aq073\(aq709\(aq551\(aq800
\& But really is: 184
-\& Delta: \-18'446'744'073'709'550'816
-\& Correction1: \-18'446'744'073'709'550'816
-\& + 4'294'967'296 = \-18'446'744'069'414'583'520
-\& Correction2: \-18'446'744'069'414'583'520
-\& + 18'446'744'069'414'584'320 = 800
+\& Delta: \-18\(aq446\(aq744\(aq073\(aq709\(aq550\(aq816
+\& Correction1: \-18\(aq446\(aq744\(aq073\(aq709\(aq550\(aq816
+\& + 4\(aq294\(aq967\(aq296 = \-18\(aq446\(aq744\(aq069\(aq414\(aq583\(aq520
+\& Correction2: \-18\(aq446\(aq744\(aq069\(aq414\(aq583\(aq520
+\& + 18\(aq446\(aq744\(aq069\(aq414\(aq584\(aq320 = 800
.Ve
.PP
.Vb 7
-\& Before: 18'446'744'073'709'551'615 ( maximum value )
-\& Increase: 18'446'744'069'414'584'320 ( absurd increase, minimum for
-\& Should become: 36'893'488'143'124'135'935 this example to work )
-\& But really is: 18'446'744'069'414'584'319
-\& Delta: \-4'294'967'296
-\& Correction1: \-4'294'967'296 + 4'294'967'296 = 0
+\& Before: 18\(aq446\(aq744\(aq073\(aq709\(aq551\(aq615 ( maximum value )
+\& Increase: 18\(aq446\(aq744\(aq069\(aq414\(aq584\(aq320 ( absurd increase, minimum for
+\& Should become: 36\(aq893\(aq488\(aq143\(aq124\(aq135\(aq935 this example to work )
+\& But really is: 18\(aq446\(aq744\(aq069\(aq414\(aq584\(aq319
+\& Delta: \-4\(aq294\(aq967\(aq296
+\& Correction1: \-4\(aq294\(aq967\(aq296 + 4\(aq294\(aq967\(aq296 = 0
\& (not negative \-> no correction2)
.Ve
.PP
.Vb 7
-\& Before: 18'446'744'073'709'551'615 ( maximum value )
-\& Increase: 18'446'744'069'414'584'319 ( one less increase )
-\& Should become: 36'893'488'143'124'135'934
-\& But really is: 18'446'744'069'414'584'318
-\& Delta: \-4'294'967'297
-\& Correction1: \-4'294'967'297 + 4'294'967'296 = \-1
-\& Correction2: \-1 + 18'446'744'069'414'584'320 = 18'446'744'069'414'584'319
+\& Before: 18\(aq446\(aq744\(aq073\(aq709\(aq551\(aq615 ( maximum value )
+\& Increase: 18\(aq446\(aq744\(aq069\(aq414\(aq584\(aq319 ( one less increase )
+\& Should become: 36\(aq893\(aq488\(aq143\(aq124\(aq135\(aq934
+\& But really is: 18\(aq446\(aq744\(aq069\(aq414\(aq584\(aq318
+\& Delta: \-4\(aq294\(aq967\(aq297
+\& Correction1: \-4\(aq294\(aq967\(aq297 + 4\(aq294\(aq967\(aq296 = \-1
+\& Correction2: \-1 + 18\(aq446\(aq744\(aq069\(aq414\(aq584\(aq320 = 18\(aq446\(aq744\(aq069\(aq414\(aq584\(aq319
.Ve
.PP
As you can see from the last two examples, you need strange numbers
diff --git a/doc/rrdtutorial.txt b/doc/rrdtutorial.txt
index e223045993be53b431018be706c6e2bf98f1f9b5..2d4df983ca3f836d5ccf7da9698f7d35b41572cf 100644 (file)
--- a/doc/rrdtutorial.txt
+++ b/doc/rrdtutorial.txt
-1.2.27 2008-02-17 RRDTUTORIAL(1)
+1.2.28 2008-07-23 RRDTUTORIAL(1)
diff --git a/doc/rrdupdate.1 b/doc/rrdupdate.1
index cb1e9edd861b6ff0b05a64de888ac0a536a70087..bed61206935078fc4b055c848d4ab5fcdf83065d 100644 (file)
--- a/doc/rrdupdate.1
+++ b/doc/rrdupdate.1
.\" ========================================================================
.\"
.IX Title "RRDUPDATE 1"
-.TH RRDUPDATE 1 "2008-02-17" "1.2.27" "rrdtool"
+.TH RRDUPDATE 1 "2008-07-23" "1.2.28" "rrdtool"
.SH "NAME"
rrdupdate \- Store a new set of values into the RRD
.SH "SYNOPSIS"
diff --git a/doc/rrdupdate.html b/doc/rrdupdate.html
index 26f979ebd866f7ee820e0c788d0f0a91ff61e4e5..556515b10f93524a13852da5c9249989b64a5f69 100644 (file)
--- a/doc/rrdupdate.html
+++ b/doc/rrdupdate.html
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>
+<dt><strong><a name="item_updatev"><strong>updatev</strong></a></strong></dt>
<dd>
<p>This alternate version of <strong>update</strong> takes the same arguments and
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.</p>
</dd>
-</li>
-<dt><strong><a name="item_filename"><em>filename</em></a></strong>
+<dt><strong><a name="item_filename"><em>filename</em></a></strong></dt>
<dd>
<p>The name of the <strong>RRD</strong> you want to update.</p>
</dd>
-</li>
-<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>
+<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></dt>
<dd>
<p>By default, the <strong>update</strong> function expects its data input in the order
@@ -73,26 +71,19 @@ sources (i.e. if the third data source <strong>DST</strong> is COMPUTE, the thir
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.</p>
-</dd>
-<dd>
<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>
-</li>
-<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>
+<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></dt>
<dd>
<p>The data used for updating the RRD was acquired at a certain
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>.</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>
-</li>
</dl>
<p>
</p>
diff --git a/doc/rrdupdate.txt b/doc/rrdupdate.txt
index 582da4e677b194de6add50303f7a9bc11dbb9f0f..86fe5e4d4ae07472689f23333095ded5f1c304bf 100644 (file)
--- a/doc/rrdupdate.txt
+++ b/doc/rrdupdate.txt
-1.2.27 2008-02-17 RRDUPDATE(1)
+1.2.28 2008-07-23 RRDUPDATE(1)
diff --git a/doc/rrdxport.1 b/doc/rrdxport.1
index 276852a4f8dd9db9002b47e858c51c9ba41b54b8..fcb5e2d2b6d69f1fcb34b86e16a3c3a85f53966e 100644 (file)
--- a/doc/rrdxport.1
+++ b/doc/rrdxport.1
.\" ========================================================================
.\"
.IX Title "RRDXPORT 1"
-.TH RRDXPORT 1 "2008-02-17" "1.2.27" "rrdtool"
+.TH RRDXPORT 1 "2008-07-23" "1.2.28" "rrdtool"
.SH "NAME"
rrdxport \- Export data in XML format based on data from one or several RRD
.SH "SYNOPSIS"
diff --git a/doc/rrdxport.html b/doc/rrdxport.html
index 105baffaed4df5ae18e1281e88c40bd096801ae3..02316c3a370c97d5b440021573aaa22eadfcd5a3 100644 (file)
--- a/doc/rrdxport.html
+++ b/doc/rrdxport.html
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>
+<dt><strong><a name="item_seconds"><strong>-s</strong>|<strong>--start</strong> <em>seconds</em> (default end-1day)</a></strong></dt>
<dd>
<p>The time when the exported range should begin. Time in seconds since
See also AT-STYLE TIME SPECIFICATION section in the <em>rrdfetch</em>
documentation for a detailed explanation on how to specify time.</p>
</dd>
-</li>
-<dt><strong><strong>-e</strong>|<strong>--end</strong> <em>seconds</em> (default now)</strong>
+<dt><strong><strong>-e</strong>|<strong>--end</strong> <em>seconds</em> (default now)</strong></dt>
<dd>
<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.</p>
</dd>
-</li>
-<dt><strong><a name="item_rows"><strong>-m</strong>|<strong>--maxrows</strong> <em>rows</em> (default 400 rows)</a></strong>
+<dt><strong><a name="item_rows"><strong>-m</strong>|<strong>--maxrows</strong> <em>rows</em> (default 400 rows)</a></strong></dt>
<dd>
<p>This works like the <strong>-w</strong>|<strong>--width</strong> parameter of <em>rrdgraph</em>.
describe its purpose in this module. See <em>rrdgraph</em> documentation
for details.</p>
</dd>
-</li>
-<dt><strong><a name="item_value"><strong>--step</strong> <em>value</em> (default automatic)</a></strong>
+<dt><strong><a name="item_value"><strong>--step</strong> <em>value</em> (default automatic)</a></strong></dt>
<dd>
<p>See <a href="././rrdgraph.html">the rrdgraph manpage</a> documentation.</p>
</dd>
-</li>
-<dt><strong><a name="item__2d_2denumds"><strong>--enumds</strong></a></strong>
+<dt><strong><a name="item__2d_2denumds"><strong>--enumds</strong></a></strong></dt>
<dd>
<p>The generated xml should contain the data values in enumerated tags.</p>
-</dd>
-<dd>
<pre>
<v0>val</v0><v1>val</v1></pre>
</dd>
-</li>
-<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>
+<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></dt>
<dd>
<p>See <em>rrdgraph</em> documentation.</p>
</dd>
-</li>
-<dt><strong><a name="item_cdef_3avname_3drpn_2dexpression"><strong>CDEF:</strong><em>vname</em><strong>=</strong><em>rpn-expression</em></a></strong>
+<dt><strong><a name="item_cdef_3avname_3drpn_2dexpression"><strong>CDEF:</strong><em>vname</em><strong>=</strong><em>rpn-expression</em></a></strong></dt>
<dd>
<p>See <em>rrdgraph</em> documentation.</p>
</dd>
-</li>
-<dt><strong><a name="item_xport_3avname_3a_3alegend"><strong>XPORT:</strong><em>vname</em><strong>:</strong><strong>:</strong><em>legend</em></a></strong>
+<dt><strong><a name="item_xport_3avname_3a_3alegend"><strong>XPORT:</strong><em>vname</em><strong>:</strong><strong>:</strong><em>legend</em></a></strong></dt>
<dd>
<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>
-</li>
</dl>
<p>
</p>
diff --git a/doc/rrdxport.txt b/doc/rrdxport.txt
index b9f8d305d3f9a8f2c7119d25c9543b422d9e4004..283201c7ff7cfd3c2ca0bb9653dbd90194647c95 100644 (file)
--- a/doc/rrdxport.txt
+++ b/doc/rrdxport.txt
-1.2.27 2008-02-17 RRDXPORT(1)
+1.2.28 2008-07-23 RRDXPORT(1)
diff --git a/examples/Makefile.am b/examples/Makefile.am
index 9e7dc840ec7e443ded94e337d8200d44fa9081f9..62516fddb4e63053bf3cd51da36d3cdd2e016414 100644 (file)
--- a/examples/Makefile.am
+++ b/examples/Makefile.am
stripes.pl bigtops.pl minmax.pl 4charts.pl perftest.pl
cgi-demo.cgi: cgi-demo.cgi.in $(top_builddir)/config.status
- sed 's,@''exec_prefix@,$(exec_prefix),' cgi-demo.cgi.in > $@
+ sed 's,@''exec_prefix@,$(exec_prefix),' @srcdir@/cgi-demo.cgi.in > $@
chmod a+x $@
diff --git a/examples/Makefile.in b/examples/Makefile.in
index 40a8525a447e8eca2103e1967d216cb96078a18f..8052dc76694f2319dac5b0cbbbb385c78d3b83cf 100644 (file)
--- a/examples/Makefile.in
+++ b/examples/Makefile.in
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
MAKEINFO = @MAKEINFO@
MULTITHREAD_CFLAGS = @MULTITHREAD_CFLAGS@
MULTITHREAD_LDFLAGS = @MULTITHREAD_LDFLAGS@
+NMEDIT = @NMEDIT@
NROFF = @NROFF@
NUMVERS = @NUMVERS@
OBJEXT = @OBJEXT@
RRD_DEFAULT_FONT = @RRD_DEFAULT_FONT@
RUBY = @RUBY@
RUBY_MAKE_OPTIONS = @RUBY_MAKE_OPTIONS@
+SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
cgi-demo.cgi: cgi-demo.cgi.in $(top_builddir)/config.status
- sed 's,@''exec_prefix@,$(exec_prefix),' cgi-demo.cgi.in > $@
+ sed 's,@''exec_prefix@,$(exec_prefix),' @srcdir@/cgi-demo.cgi.in > $@
chmod a+x $@
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/netware/Makefile b/netware/Makefile
index e8d6a4730f6305865e6818bac49de5a436b30927..104e532789243e2097362e96b4f26aa038a6d321 100644 (file)
--- a/netware/Makefile
+++ b/netware/Makefile
#
DESCR = Round Robin Database Tool $(RRD_VERSION_STR)
-COPYR = Copyright (c) 1997-2007 by Tobias Oetiker
+COPYR = Copyright (c) 1997-2008 by Tobias Oetiker
WWWURL = http://www.rrdtool.org/
MTSAFE = YES
#SCREEN = $(DESCR)
# All library code is statically linked to avoid problems with other lib NLMs.
# Edit the path below to point to your libpng sources or set environment var.
ifndef LIBPNG
-LIBPNG = $(LIBBASE)/libpng-1.2.23
+LIBPNG = $(LIBBASE)/libpng-1.2.29
endif
# Edit the path below to point to your freetype sources or set environment var.
ifndef LIBFT2
-LIBFT2 = $(LIBBASE)/freetype-2.3.5
+LIBFT2 = $(LIBBASE)/freetype-2.3.7
endif
# Edit the path below to point to your libart sources or set environment var.
ifndef LIBART
# http://www.gknw.net/development/prgtools/awk.zip
AWK = awk
MV = mv -fv
-ifndef ARCBIN
+
+ifeq ($(ARCEXT),7z)
+ARCBIN = 7za a
+else
ARCBIN = zip -qzr9
ARCEXT = zip
-#ARCBIN = 7za a
-#ARCEXT = 7z
endif
-
# must be equal to DEBUG or NDEBUG
DB = NDEBUG
# DB = DEBUG
diff --git a/rrdtool.spec b/rrdtool.spec
index 4db9ea9da09f9a7f0fec21e5feb084d6dd58bb61..4063935d8714fe999dca0bd23e3bba243f34834a 100644 (file)
--- a/rrdtool.spec
+++ b/rrdtool.spec
Summary: Round Robin Database Tool to store and display time-series data
Name: rrdtool
-Version: 1.2.27
+Version: 1.2.28
Release: 5%{?dist}
License: GPL
Group: Applications/Databases
diff --git a/src/Makefile.in b/src/Makefile.in
index f3489dfe472cb05fb51edce3cf9e97fff205e79d..5125979f7e2025d096bc0441dfddbc0548b87c71 100644 (file)
--- a/src/Makefile.in
+++ b/src/Makefile.in
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
MAKEINFO = @MAKEINFO@
MULTITHREAD_CFLAGS = @MULTITHREAD_CFLAGS@
MULTITHREAD_LDFLAGS = @MULTITHREAD_LDFLAGS@
+NMEDIT = @NMEDIT@
NROFF = @NROFF@
NUMVERS = @NUMVERS@
OBJEXT = @OBJEXT@
RRD_DEFAULT_FONT = @RRD_DEFAULT_FONT@
RUBY = @RUBY@
RUBY_MAKE_OPTIONS = @RUBY_MAKE_OPTIONS@
+SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
diff --git a/src/parsetime.c b/src/parsetime.c
index 919dd50b340d74ed8806c59af2e9ae88b0082aaf..74063b200a876aa4a44e797d55ca0ac09a5c8261 100644 (file)
--- a/src/parsetime.c
+++ b/src/parsetime.c
break;
}
- if (mon > 19700101 && mon < 24000101){ /*works between 1900 and 2400 */
+ if (mon > 19700101 && mon < 24000101){ /*works between 1970 and 2400 */
char cmon[3],cmday[3],cyear[5];
strncpy(cyear,sc_token,4);cyear[4]='\0';
year = atol(cyear);
ptv->type = ABSOLUTE_TIME;
ptv->offset = 0;
ptv->tm = *localtime(&now);
- ptv->tm.tm_isdst = -1; /* mk time can figure this out for us ... */
+ ptv->tm.tm_isdst = -1; /* by default lets mk time guess dst status ... */
+
token();
switch (sc_tokid) {
panic(e("unparsable trailing text: '...%s%s'", sc_token, sct));
}
- ptv->tm.tm_isdst = -1; /* for mktime to guess DST status */
if( ptv->type == ABSOLUTE_TIME )
if( mktime( &ptv->tm ) == -1 ) { /* normalize & check */
/* can happen for "nonexistent" times, e.g. around 3am */
diff --git a/src/pngsize.c b/src/pngsize.c
index c9254d48f65f915ed315848df78939effd9f1dc6..ec95f985e2117f8b015cd523d041c6ce6e621b89 100644 (file)
--- a/src/pngsize.c
+++ b/src/pngsize.c
/*****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
*****************************************************************************
* pngsize.c determine the size of a PNG image
*****************************************************************************/
/* this is to make compile on aix work since they seem to define jmpbuf
to be _jmpbuf which breaks compilation */
+
+#ifndef png_jmpbuf
+#ifdef PNG_SETJMP_SUPPORTED
+# define png_jmpbuf(png_ptr) ((png_ptr)->PNG_jmpbuf)
+#else
#ifdef jmpbuf
#undef jmpbuf
#endif
-
-#ifndef png_jmpbuf
# define png_jmpbuf(png_ptr) ((png_ptr)->jmpbuf)
+#endif
#endif
if (setjmp(png_jmpbuf(png_read_ptr))){
diff --git a/src/rrd.h b/src/rrd.h
index d58662f7c9e5bc1d9cd110530b59506b629c4004..5495e9cf9451494f956aa3b259d552c367c3fbf9 100644 (file)
--- a/src/rrd.h
+++ b/src/rrd.h
/*****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
*****************************************************************************
* rrdlib.h Public header file for librrd
*****************************************************************************
- * $Id: rrd.h 1286 2008-02-17 10:08:10Z oetiker $
+ * $Id: rrd.h 1450 2008-07-23 13:45:41Z oetiker $
* $Log$
* Revision 1.9 2005/02/13 16:13:33 oetiker
* let rrd_graph return the actual value range it picked ...
diff --git a/src/rrd_afm.c b/src/rrd_afm.c
index 59ead88d6c7fc2d147404a6854216571e271d3c1..f3f07429cbc4f3ff16a82cf4be1189ee14bc4b35 100644 (file)
--- a/src/rrd_afm.c
+++ b/src/rrd_afm.c
/****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
****************************************************************************
* rrd_afm.h Parsing afm tables to find width of strings.
****************************************************************************
- * $Id: rrd_afm.c 1286 2008-02-17 10:08:10Z oetiker $
+ * $Id: rrd_afm.c 1450 2008-07-23 13:45:41Z oetiker $
*/
#if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__CYGWIN32__) && !defined(HAVE_CONFIG_H)
diff --git a/src/rrd_afm.h b/src/rrd_afm.h
index 94d93eb53bc10365bd07a0df1b72dcc097ba76f1..71191c22dadd776e52d211eee2baecc23a54cdbd 100644 (file)
--- a/src/rrd_afm.h
+++ b/src/rrd_afm.h
/****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
****************************************************************************
* rrd_afm.h Parsing afm tables to find width of strings.
****************************************************************************/
diff --git a/src/rrd_afm_data.c b/src/rrd_afm_data.c
index 2c7ab4419b643f0afc986cca0adb04bc9e140653..191c779859b38ebc8246a546e1a71be0ecebe33d 100644 (file)
--- a/src/rrd_afm_data.c
+++ b/src/rrd_afm_data.c
/****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
****************************************************************************
* rrd_afm_data.c Encoded afm (Adobe Font Metrics) for selected fonts.
****************************************************************************
diff --git a/src/rrd_afm_data.h b/src/rrd_afm_data.h
index 076e95950cd33ceb452a7b565f7158a71b6ac33b..b666f14c3d9accfbcb1c4a03190970122ffc2fcb 100644 (file)
--- a/src/rrd_afm_data.h
+++ b/src/rrd_afm_data.h
/****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
****************************************************************************
* rrd_afm_data.h Encoded afm (Adobe Font Metrics) for selected fonts.
****************************************************************************/
diff --git a/src/rrd_cgi.c b/src/rrd_cgi.c
index e87c70cc5bf59e46b32e7ebafe517f83bafbf3a9..fd333dd53f6d65797edd12b3c2e7ad1725fc5fd4 100644 (file)
--- a/src/rrd_cgi.c
+++ b/src/rrd_cgi.c
/*****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
*****************************************************************************
* rrd_cgi.c RRD Web Page Generator
*****************************************************************************/
diff --git a/src/rrd_create.c b/src/rrd_create.c
index 9e5b0557a8fa51d1a33fa33b4ca86e47ba3d2f40..3333a415841fb17f8eae966cb841ca71a5f8ed30 100644 (file)
--- a/src/rrd_create.c
+++ b/src/rrd_create.c
/*****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
*****************************************************************************
* rrd_create.c creates new rrds
*****************************************************************************/
+#include <stdlib.h>
+#include <time.h>
+
#include "rrd_tool.h"
#include "rrd_rpncalc.h"
#include "rrd_hw.h"
unsigned long FnvHash(const char *str);
int create_hw_contingent_rras(rrd_t *rrd, unsigned short period, unsigned long hashed_name);
void parseGENERIC_DS(const char *def,rrd_t *rrd, int ds_idx);
+long int rra_random_row(rra_def_t *);
int
rrd_create(int argc, char **argv)
break;
default:
rrd.rra_def[rrd.stat_head->rra_cnt].pdp_cnt = atoi(token);
+ if (atoi(token) < 1)
+ rrd_set_error("Invalid step: must be >= 1");
break;
}
break;
* the pointer a priori. */
for (i=0; i < rrd->stat_head->rra_cnt; i++)
{
- rrd->rra_ptr->cur_row = rrd->rra_def[i].row_cnt - 1;
+ rrd->rra_ptr->cur_row = rra_random_row(&rrd->rra_def[i]);
fwrite( rrd->rra_ptr, sizeof(rra_ptr_t),1,rrd_file);
}
rrd_free(rrd);
return (0);
}
+
+static int rand_init = 0;
+
+long int
+rra_random_row(rra_def_t *rra)
+{
+ if (!rand_init)
+ {
+ srandom((unsigned int)time(NULL) + (unsigned int)getpid());
+ rand_init++;
+ }
+
+ return random() % rra->row_cnt;
+}
diff --git a/src/rrd_diff.c b/src/rrd_diff.c
index d8ca8389f263052217a57032af16c1c98a3bbcdb..bf2d9915e827d94857b28a32b520dab05da429e2 100644 (file)
--- a/src/rrd_diff.c
+++ b/src/rrd_diff.c
/*****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
* This code is stolen from rateup (mrtg-2.x) by Dave Rand
*****************************************************************************
* diff calculate the difference between two very long integers available as
* strings
*****************************************************************************
- * $Id: rrd_diff.c 1286 2008-02-17 10:08:10Z oetiker $
+ * $Id: rrd_diff.c 1450 2008-07-23 13:45:41Z oetiker $
* $Log$
* Revision 1.4 2003/03/10 00:30:34 oetiker
* handle cases with two negative numbers
diff --git a/src/rrd_dump.c b/src/rrd_dump.c
index bb6859313749e51e8dfdf131ee949bcbad8a7d07..96522ce6fc935f8207b57591f9f3f1faa1464f8e 100644 (file)
--- a/src/rrd_dump.c
+++ b/src/rrd_dump.c
/*****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
*****************************************************************************
* rrd_dump Display a RRD
*****************************************************************************
- * $Id: rrd_dump.c 1286 2008-02-17 10:08:10Z oetiker $
+ * $Id: rrd_dump.c 1450 2008-07-23 13:45:41Z oetiker $
* $Log$
* Revision 1.7 2004/05/25 20:53:21 oetiker
* prevent small leak when resources are exhausted -- Mike Slifcak
diff --git a/src/rrd_error.c b/src/rrd_error.c
index 6aaf7f29fd6b07cc05feae00eb9cce4482ded506..fa600d073a7fd183fc2ef798fe9a5b08ee82ce46 100644 (file)
--- a/src/rrd_error.c
+++ b/src/rrd_error.c
/*****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
*****************************************************************************
* rrd_error.c Common Header File
*****************************************************************************
- * $Id: rrd_error.c 1286 2008-02-17 10:08:10Z oetiker $
+ * $Id: rrd_error.c 1450 2008-07-23 13:45:41Z oetiker $
* $Log$
* Revision 1.4 2003/02/22 21:57:03 oetiker
* a patch to avoid a memory leak and a Makefile.am patch to
diff --git a/src/rrd_fetch.c b/src/rrd_fetch.c
index 82d35f374b75450175c5e9c34d2bbc4ab4b033a3..033629edb2fa68274911c6de7e166bc47ed9f4d6 100644 (file)
--- a/src/rrd_fetch.c
+++ b/src/rrd_fetch.c
/*****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
*****************************************************************************
* rrd_fetch.c read date from an rrd to use for further processing
*****************************************************************************
- * $Id: rrd_fetch.c 1286 2008-02-17 10:08:10Z oetiker $
+ * $Id: rrd_fetch.c 1450 2008-07-23 13:45:41Z oetiker $
* $Log$
* Revision 1.8 2004/05/18 18:53:03 oetiker
* big spell checking patch -- slif@bellsouth.net
tmp_step_diff = labs(*step - (rrd.stat_head->pdp_step
* rrd.rra_def[i].pdp_cnt));
/* best full match */
- if(cal_end >= *end
- && cal_start <= *start){
+ if(cal_start <= *start){
if (first_full || (tmp_step_diff < best_full_step_diff)){
first_full=0;
best_full_step_diff = tmp_step_diff;
tmp_match = full_match;
if (cal_start>*start)
tmp_match -= (cal_start-*start);
- if (cal_end<*end)
- tmp_match -= (*end-cal_end);
if (first_part ||
(best_match < tmp_match) ||
(best_match == tmp_match &&
diff --git a/src/rrd_first.c b/src/rrd_first.c
index eba83be375d19cdfafcd5ed4e267973756fce1c9..aa6204e26a1e7c2c1fcf9fafa7647c8dff927cff 100644 (file)
--- a/src/rrd_first.c
+++ b/src/rrd_first.c
/*****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
*****************************************************************************
* rrd_first Return
*****************************************************************************
diff --git a/src/rrd_format.c b/src/rrd_format.c
index b7ca3a1eba756e03af4af6ac2fd3cba05d15a2d4..253b0789f4b4fdaec3e03029d6efb590d6bdcd99 100644 (file)
--- a/src/rrd_format.c
+++ b/src/rrd_format.c
/*****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
*****************************************************************************
* rrd_format.c RRD Database Format helper functions
*****************************************************************************
- * $Id: rrd_format.c 1286 2008-02-17 10:08:10Z oetiker $
+ * $Id: rrd_format.c 1450 2008-07-23 13:45:41Z oetiker $
* $Log$
* Revision 1.5 2004/05/18 18:53:03 oetiker
* big spell checking patch -- slif@bellsouth.net
diff --git a/src/rrd_format.h b/src/rrd_format.h
index b8c8a81c9968da0603b3556c4b9937e72db5c3ee..71a7138fbdc61de09cd211bc3d42e43be782cd0c 100644 (file)
--- a/src/rrd_format.h
+++ b/src/rrd_format.h
/*****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
*****************************************************************************
* rrd_format.h RRD Database Format header
*****************************************************************************/
diff --git a/src/rrd_getopt.c b/src/rrd_getopt.c
index b715ab0339d701efce02af16e45b1392e6765aaa..281baf4ef2595921079072cd2d0a21f172b4d3eb 100644 (file)
--- a/src/rrd_getopt.c
+++ b/src/rrd_getopt.c
#define _NO_PROTO
#endif
-#ifdef HAVE_CONFIG_H
-#include "../rrd_config.h"
-#endif
-
#if !defined (__STDC__) || !__STDC__
/* This is a separate conditional since some stdc systems
reject `defined (const)'. */
#endif
#endif
+#ifdef HAVE_CONFIG_H
+#include "../rrd_config.h"
+#endif
+
#include <stdio.h>
/* Comment out all this code if we are using the GNU C Library, and are not
diff --git a/src/rrd_getopt1.c b/src/rrd_getopt1.c
index 14e1e885685699156ed730d82b6c963ce75ee39a..ddf814974c662c97d6c80ba16320aea8475b34d1 100644 (file)
--- a/src/rrd_getopt1.c
+++ b/src/rrd_getopt1.c
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
\f
-#ifdef HAVE_CONFIG_H
-#include "../rrd_config.h"
-#endif
-
-#include "rrd_getopt.h"
-
#if !defined (__STDC__) || !__STDC__
/* This is a separate conditional since some stdc systems
reject `defined (const)'. */
#endif
#endif
+#ifdef HAVE_CONFIG_H
+#include "../rrd_config.h"
+#endif
+
+#include "rrd_getopt.h"
+
#include <stdio.h>
/* Comment out all this code if we are using the GNU C Library, and are not
diff --git a/src/rrd_gfx.c b/src/rrd_gfx.c
index a94afbf1b08af0220e868fc91b4660978d2434eb..e6df53890e4fe749d980395a34d6e55cf8af457e 100644 (file)
--- a/src/rrd_gfx.c
+++ b/src/rrd_gfx.c
/****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
****************************************************************************
* rrd_gfx.c graphics wrapper for rrdtool
**************************************************************************/
diff --git a/src/rrd_gfx.h b/src/rrd_gfx.h
index 15680a1bddd232cf5860a81d305b9897ea27b2b8..735d85be30d87ab4bbfb83654524a5bb41f9a75d 100644 (file)
--- a/src/rrd_gfx.h
+++ b/src/rrd_gfx.h
/****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
****************************************************************************
* rrd_gfx.h generic graphics adapter library
****************************************************************************/
diff --git a/src/rrd_graph.c b/src/rrd_graph.c
index deb23cf4723fc017671321f39c24e3d3fff46bfc..350a8dac5cb830aa066280c17b4fdef5f84d9308 100644 (file)
--- a/src/rrd_graph.c
+++ b/src/rrd_graph.c
/****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
****************************************************************************
* rrd__graph.c produce graphs from data in rrdfiles
****************************************************************************/
if (size > 0){
im->text_prop[propidx].size=size;
}
- if (strlen(prop) > end){
- if (prop[end] == ':'){
- strncpy(im->text_prop[propidx].font,prop+end+1,255);
+ if (strlen(optarg) > end){
+ if (optarg[end] == ':'){
+ strncpy(im->text_prop[propidx].font,optarg+end+1,255);
im->text_prop[propidx].font[255] = '\0';
} else {
- rrd_set_error("expected after font size in '%s'",prop);
+ rrd_set_error("expected : after font size in '%s'",optarg);
return;
}
}
+ /* only run the for loop for DEFAULT (0) for
+ all others, we break here. woodo programming */
if (propidx==sindex && sindex != 0) break;
}
} else {
{
graph_desc_t *src,*dst;
rrd_value_t *data;
- long step,steps;
+ long step,steps,end;
dst = &im->gdes[gdi];
src = &im->gdes[dst->vidx];
data = src->data + src->ds;
- steps = (src->end - src->start) / src->step;
-
+ end = (src->end_orig % src->step) == 0 ? src->end_orig : (src->end_orig + src->step - src->end_orig % src->step);
+ steps = (end - src->start) / src->step;
#if 0
printf("DEBUG: start == %lu, end == %lu, %lu steps\n"
,src->start
- ,src->end
+ ,src->end_orig
,steps
);
#endif
diff --git a/src/rrd_graph_helper.c b/src/rrd_graph_helper.c
index 86a2467aeeaa038583c9dbaebb42a404af12f1bf..0a12c057cff4c4776cfe99f6f68503197b4c01b0 100644 (file)
--- a/src/rrd_graph_helper.c
+++ b/src/rrd_graph_helper.c
/****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
****************************************************************************
* rrd_graph_helper.c commandline parser functions
* this code initially written by Alex van den Bogaerdt
diff --git a/src/rrd_hw.c b/src/rrd_hw.c
index 43158fde321b54e8501bdcadc105cdc9172ea33d..7928a0253a2fa0e519ca913ca6c4e64c0a8b02a7 100644 (file)
--- a/src/rrd_hw.c
+++ b/src/rrd_hw.c
/*****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
*****************************************************************************
* rrd_hw.c : Support for Holt-Winters Smoothing/ Aberrant Behavior Detection
*****************************************************************************
diff --git a/src/rrd_hw.h b/src/rrd_hw.h
index 54f150f97eeeebdd94ccbf17f71039a8d1052441..e3b83cbca86880faa4085747626f7b35e35f1e22 100644 (file)
--- a/src/rrd_hw.h
+++ b/src/rrd_hw.h
/*****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
*****************************************************************************
* rrd_hw.h : Support for Holt-Winters Smoothing/ Aberrant Behavior Detection
*****************************************************************************/
diff --git a/src/rrd_info.c b/src/rrd_info.c
index b2a55d959c923e8697600c913d965b195074ad13..a615c0ad66c228a420afc1a65b7b2cf0ee4a76fa 100644 (file)
--- a/src/rrd_info.c
+++ b/src/rrd_info.c
/*****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
*****************************************************************************
* rrd_info Get Information about the configuration of an RRD
*****************************************************************************/
info.u_cnt=rrd.rra_def[i].row_cnt;
cd=info_push(cd,sprintf_alloc("rra[%d].rows",i), RD_I_CNT, info);
+ info.u_cnt=rrd.rra_ptr[i].cur_row;
+ cd=info_push(cd,sprintf_alloc("rra[%d].cur_row",i), RD_I_CNT, info);
+
info.u_cnt=rrd.rra_def[i].pdp_cnt;
cd=info_push(cd,sprintf_alloc("rra[%d].pdp_per_row",i), RD_I_CNT, info);
index 15d876df93a09e28401cb21e4d1440140c6651f2..0c05c70b3275a2570ab974854240f9aaf710fa55 100644 (file)
--- a/src/rrd_is_thread_safe.h
+++ b/src/rrd_is_thread_safe.h
/*****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
* This file: Copyright 2003 Peter Stamfest <peter@stamfest.at>
* & Tobias Oetiker
* Distributed under the GPL
*****************************************************************************
* rrd_is_thread_safe.c Poisons some nasty function calls using GNU cpp
*****************************************************************************
- * $Id: rrd_is_thread_safe.h 1286 2008-02-17 10:08:10Z oetiker $
+ * $Id: rrd_is_thread_safe.h 1450 2008-07-23 13:45:41Z oetiker $
*************************************************************************** */
#ifndef _RRD_IS_THREAD_SAFE_H
diff --git a/src/rrd_last.c b/src/rrd_last.c
index a0a7cbbf785698da361e96c326300feba7a17dd0..72e7478cec3a36347aef865c7992f99bf4fa415c 100644 (file)
--- a/src/rrd_last.c
+++ b/src/rrd_last.c
/*****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
*****************************************************************************
* rrd_last.c
*****************************************************************************
diff --git a/src/rrd_lastupdate.c b/src/rrd_lastupdate.c
index 159aafaf28ef7f01e921fc01eed1c3118e186894..29587cdebeedd8d1f177353cf4fc9e76ebcf3b86 100644 (file)
--- a/src/rrd_lastupdate.c
+++ b/src/rrd_lastupdate.c
/*****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
*****************************************************************************
* rrd_lastupdate Get the last datum entered for each DS
*****************************************************************************/
index ccc40fff5cf4282c5059b471157345cdbeb5f32f..32fc10090e3208f91f2bb2db44689dc7bcc45ed9 100644 (file)
/*****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
* This file: Copyright 2003 Peter Stamfest <peter@stamfest.at>
* & Tobias Oetiker
* Distributed under the GPL
* rrd_not_thread_safe.c Contains routines used when thread safety is not
* an issue
*****************************************************************************
- * $Id: rrd_not_thread_safe.c 1286 2008-02-17 10:08:10Z oetiker $
+ * $Id: rrd_not_thread_safe.c 1450 2008-07-23 13:45:41Z oetiker $
*************************************************************************** */
#include "rrd.h"
#include "rrd_tool.h"
static struct rrd_context global_ctx = {
MAXLEN,
ERRBUFLEN,
+ rrd_liberror,
rrd_error,
- rrd_liberror
};
/* #include <stdarg.h> */
diff --git a/src/rrd_open.c b/src/rrd_open.c
index 72999eee32889691fa1cddae0fc5f168c8ce8843..1aa5227057504d9567b1c6d989cfc042d1c03190 100644 (file)
--- a/src/rrd_open.c
+++ b/src/rrd_open.c
/*****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
*****************************************************************************
* rrd_open.c Open an RRD File
*****************************************************************************
- * $Id: rrd_open.c 1286 2008-02-17 10:08:10Z oetiker $
+ * $Id: rrd_open.c 1450 2008-07-23 13:45:41Z oetiker $
* $Log$
* Revision 1.10 2004/05/26 22:11:12 oetiker
* reduce compiler warnings. Many small fixes. -- Mike Slifcak <slif@bellsouth.net>
diff --git a/src/rrd_resize.c b/src/rrd_resize.c
index 9779c9762a4da11b2f4ee3df7560dced5a5448c5..45ae8a5279fc9815aa2bde38509e0d5cc9a47e3f 100644 (file)
--- a/src/rrd_resize.c
+++ b/src/rrd_resize.c
/*****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
*****************************************************************************
* rrd_resize.c Alters size of an RRA
*****************************************************************************
diff --git a/src/rrd_restore.c b/src/rrd_restore.c
index 4fb1dab4a49c8ed14e0ed4ccd15cb706f5e69ba3..6385f54e123e9c5b79ba0e20ab714a4f703b2595 100644 (file)
--- a/src/rrd_restore.c
+++ b/src/rrd_restore.c
/*****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
*****************************************************************************
* rrd_restore.c creates new rrd from data dumped by rrd_dump.c
*****************************************************************************/
void parse_patch1028_RRA_params(char **buf, rrd_t *rrd, int rra_index);
void parse_patch1028_CDP_params(char **buf, rrd_t *rrd, int rra_index, int ds_index);
void parse_FAILURES_history(char **buf, rrd_t *rrd, int rra_index, int ds_index);
+long int rra_random_row(rra_def_t *);
/* convert all occurrences of <BlaBlaBla> to <blablabla> */
eat_tag(&ptr2,"cdp_prep");
for(i=0;i< (int)rrd->stat_head->ds_cnt;i++)
{
- eat_tag(&ptr2,"ds");
+ if (eat_tag(&ptr2, "ds") != 1){
+ rrd_set_error("expected to find %lu <ds> entries in <cdp_prep>",rrd->stat_head->ds_cnt);
+ return -1;
+ }
/* support to read CDP parameters */
rra_index = rrd->stat_head->rra_cnt-1;
skip(&ptr2);
return(-1);
}
- for(i=0; i < (int)rrd->stat_head->rra_cnt; i++) {
- /* last row in the xml file is the most recent; as
- * rrd_update increments the current row pointer, set cur_row
- * here to the last row. */
- rrd->rra_ptr[i].cur_row = rrd->rra_def[i].row_cnt-1;
- }
if (ptr==NULL)
return -1;
return 1;
int
rrd_write(char *file_name, rrd_t *rrd, char force_overwrite)
{
- unsigned long i,ii,val_cnt;
+ unsigned long i,ii,rra_offset;
FILE *rrd_file=NULL;
int fdflags;
int fd;
fwrite( rrd->cdp_prep, sizeof(cdp_prep_t),rrd->stat_head->rra_cnt*
rrd->stat_head->ds_cnt,rrd_file);
+
+ for(i=0; i < rrd->stat_head->rra_cnt; i++)
+ rrd->rra_ptr[i].cur_row = rra_random_row(&rrd->rra_def[i]);
+
fwrite( rrd->rra_ptr, sizeof(rra_ptr_t), rrd->stat_head->rra_cnt,rrd_file);
- /* calculate the number of rrd_values to dump */
- val_cnt=0;
+ /* Dump RRD values */
+ rra_offset=0;
for(i=0; i < rrd->stat_head->rra_cnt; i++)
- for(ii=0; ii < rrd->rra_def[i].row_cnt * rrd->stat_head->ds_cnt;ii++)
- val_cnt++;
- fwrite( rrd->rrd_value, sizeof(rrd_value_t),val_cnt,rrd_file);
+ {
+ unsigned long num_rows = rrd->rra_def[i].row_cnt;
+ unsigned long cur_row = rrd->rra_ptr[i].cur_row;
+ unsigned long ds_cnt = rrd->stat_head->ds_cnt;
+
+ fwrite(rrd->rrd_value + (rra_offset + num_rows-1 - cur_row) * ds_cnt,
+ sizeof(rrd_value_t), (cur_row+1)*ds_cnt, rrd_file);
+
+ fwrite(rrd->rrd_value + rra_offset * ds_cnt,
+ sizeof(rrd_value_t), (num_rows-1 - cur_row)*ds_cnt, rrd_file);
+
+ rra_offset += num_rows;
+ }
/* lets see if we had an error */
if(ferror(rrd_file)){
diff --git a/src/rrd_rpncalc.c b/src/rrd_rpncalc.c
index db1c883d176e3b026012237eab513fc00f7a56c6..a3faff22763adc407312858146c0864c74189179 100644 (file)
--- a/src/rrd_rpncalc.c
+++ b/src/rrd_rpncalc.c
/****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
****************************************************************************
* rrd_rpncalc.c RPN calculator functions
****************************************************************************/
diff --git a/src/rrd_rpncalc.h b/src/rrd_rpncalc.h
index b00cca928e5743614829246488cb41c20e13e296..bba4dde9c3c244bd0a70ea8d9e0be342f88c6ad8 100644 (file)
--- a/src/rrd_rpncalc.h
+++ b/src/rrd_rpncalc.h
/****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
****************************************************************************
* rrd_rpncalc.h RPN calculator functions
****************************************************************************/
diff --git a/src/rrd_thread_safe.c b/src/rrd_thread_safe.c
index f4e6a5482aee6bbeaf298563df08f542ef6e9fea..85d37ba212fb1304e8a288fcfc043fc3c6709e73 100644 (file)
--- a/src/rrd_thread_safe.c
+++ b/src/rrd_thread_safe.c
/*****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
* This file: Copyright 2003 Peter Stamfest <peter@stamfest.at>
* & Tobias Oetiker
* Distributed under the GPL
*****************************************************************************
* rrd_thread_safe.c Contains routines used when thread safety is required
*****************************************************************************
- * $Id: rrd_thread_safe.c 1286 2008-02-17 10:08:10Z oetiker $
+ * $Id: rrd_thread_safe.c 1450 2008-07-23 13:45:41Z oetiker $
*************************************************************************** */
#include <pthread.h>
index 13780abab762f1a5fd01a12679257354f8116820..5068214dbd544340731c89d09d4f1674e0b03013 100644 (file)
--- a/src/rrd_thread_safe_nt.c
+++ b/src/rrd_thread_safe_nt.c
/*****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
* This file: Copyright 2003 Peter Stamfest <peter@stamfest.at>
* & Tobias Oetiker
* Distributed under the GPL
* rrd_thread_safe.c Contains routines used when thread safety is required
* for win32
*****************************************************************************
- * $Id: rrd_thread_safe_nt.c 1286 2008-02-17 10:08:10Z oetiker $
+ * $Id: rrd_thread_safe_nt.c 1450 2008-07-23 13:45:41Z oetiker $
*************************************************************************** */
#include <windows.h>
diff --git a/src/rrd_tool.c b/src/rrd_tool.c
index 894b4df2c0f4de5ba9f7a599475d344844214dcc..85269f09afd6bbcbbcd43e61f21a6141d1fbe4d7 100644 (file)
--- a/src/rrd_tool.c
+++ b/src/rrd_tool.c
/*****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
*****************************************************************************
* rrd_tool.c Startup wrapper
*****************************************************************************/
diff --git a/src/rrd_tool.h b/src/rrd_tool.h
index 22c404f960cb4e15794fd37449c6d3b700d869ce..3461e167cf01ff558095f912f061d9db7d485c92 100644 (file)
--- a/src/rrd_tool.h
+++ b/src/rrd_tool.h
/*****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
*****************************************************************************
* rrd_tool.h Common Header File
*****************************************************************************/
#include <float.h> /* for _isnan */
#include <io.h> /* for chdir */
+#include <process.h> /* for getpid */
+
+#define random rand
+#define srandom srand
struct tm* localtime_r(const time_t *timep, struct tm* result);
char* ctime_r(const time_t *timep, char* result);
diff --git a/src/rrd_tune.c b/src/rrd_tune.c
index d7f08fd05323ea0cc1f03a439c556a010d58ec58..bb39f87a4000325c80a20fa88a42b7dcd8024b24 100644 (file)
--- a/src/rrd_tune.c
+++ b/src/rrd_tune.c
/*****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
*****************************************************************************
* change header parameters of an rrd
*****************************************************************************
- * $Id: rrd_tune.c 1286 2008-02-17 10:08:10Z oetiker $
+ * $Id: rrd_tune.c 1450 2008-07-23 13:45:41Z oetiker $
* $Log$
* Revision 1.6 2004/05/26 22:11:12 oetiker
* reduce compiler warnings. Many small fixes. -- Mike Slifcak <slif@bellsouth.net>
diff --git a/src/rrd_update.c b/src/rrd_update.c
index 57e0fbbeb74318496fc62425825eb0884db4de1a..26d9e7825a47f7366d3df99c44b6ea5941001950 100644 (file)
--- a/src/rrd_update.c
+++ b/src/rrd_update.c
/*****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
*****************************************************************************
* rrd_update.c RRD Update Function
*****************************************************************************
- * $Id: rrd_update.c 1286 2008-02-17 10:08:10Z oetiker $
+ * $Id: rrd_update.c 1450 2008-07-23 13:45:41Z oetiker $
*****************************************************************************/
#include "rrd_tool.h"
@@ -533,9 +533,9 @@ _rrd_update(const char *filename, const char *tmplt, int argc, const char **argv
if(current_time < rrd.live_head->last_up ||
(current_time == rrd.live_head->last_up &&
(long)current_time_usec <= (long)rrd.live_head->last_up_usec)) {
- rrd_set_error("illegal attempt to update using time %ld when "
+ rrd_set_error("%s: illegal attempt to update using time %ld when "
"last update time is %ld (minimum one second step)",
- current_time, rrd.live_head->last_up);
+ filename, current_time, rrd.live_head->last_up);
free(step_start);
break;
}
@@ -779,7 +779,7 @@ _rrd_update(const char *filename, const char *tmplt, int argc, const char **argv
> rrd.ds_def[i].par[DS_mrhb_cnt].u_cnt) || */
/* if the interval is larger thatn mrhb we get NAN */
(interval > rrd.ds_def[i].par[DS_mrhb_cnt].u_cnt) ||
- (occu_pdp_st-proc_pdp_st <=
+ (rrd.stat_head -> pdp_step / 2.0 <
rrd.pdp_prep[i].scratch[PDP_unkn_sec_cnt].u_cnt)) {
pdp_temp[i] = DNAN;
} else {
diff --git a/src/rrd_version.c b/src/rrd_version.c
index a2de839649381ba1f052f9a1b4597f22705f4022..61db0e4d260e236a94d30be6ac6f90009f3cc644 100644 (file)
--- a/src/rrd_version.c
+++ b/src/rrd_version.c
/*****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
*****************************************************************************
* rrd_version Return
*****************************************************************************
diff --git a/src/rrd_xport.c b/src/rrd_xport.c
index 0d4660e96f6067ad16f7940b69a05d18dd4bf258..45f272ac3fbf474db8b7d5bd0411133a79c853ca 100644 (file)
--- a/src/rrd_xport.c
+++ b/src/rrd_xport.c
/****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
****************************************************************************
* rrd_xport.c export RRD data
****************************************************************************/
diff --git a/src/rrd_xport.h b/src/rrd_xport.h
index 09fdeef1d6f43dbd230481872df4705a961135ed..29aa14eef358e5348f3f7f0bcf9ca598e1d6d070 100644 (file)
--- a/src/rrd_xport.h
+++ b/src/rrd_xport.h
/****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
****************************************************************************
* rrd_xport.h contains XML related constants
****************************************************************************/
diff --git a/src/rrdupdate.c b/src/rrdupdate.c
index f61061484600bf69e16795359e5f74153574455d..b8986b2c3161510122f1b8812dcd2703fedeb09f 100644 (file)
--- a/src/rrdupdate.c
+++ b/src/rrdupdate.c
/*****************************************************************************
- * RRDtool 1.2.27 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.2.28 Copyright by Tobi Oetiker, 1997-2008
*****************************************************************************
* rrdupdate.c Main program for the (standalone) rrdupdate utility
*****************************************************************************
- * $Id: rrdupdate.c 1286 2008-02-17 10:08:10Z oetiker $
+ * $Id: rrdupdate.c 1450 2008-07-23 13:45:41Z oetiker $
*****************************************************************************/
#if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__CYGWIN32__) && !defined(HAVE_CONFIG_H)
diff --git a/win32/Makefile b/win32/Makefile
index 6e3dc2c7728d8f8110dd66614c4387e9d46df9de..528caf596261d7b62b96a817a5073b60fffefd4e 100644 (file)
--- a/win32/Makefile
+++ b/win32/Makefile
#
DESCR = Round Robin Database Tool
-COPYR = Copyright (c) 1997-2007 by Tobias Oetiker
+COPYR = Copyright (c) 1997-2008 by Tobias Oetiker
WWWURL = http://www.rrdtool.org/
ICON = $(PROOT)/favicon.ico
# All library code is statically linked to avoid problems with other lib DLLs.
# Edit the path below to point to your libpng sources or set environment var.
ifndef LIBPNG
-LIBPNG = $(LIBBASE)/libpng-1.2.23
+LIBPNG = $(LIBBASE)/libpng-1.2.29
endif
# Edit the path below to point to your freetype sources or set environment var.
ifndef LIBFT2
-#LIBFT2 = $(LIBBASE)/freetype-2.3.5
-LIBFT2 = $(LIBBASE)/../mingw32/freetype-2.3.5
+#LIBFT2 = $(LIBBASE)/freetype-2.3.7
+LIBFT2 = $(LIBBASE)/../mingw32/freetype-2.3.7
endif
# Edit the path below to point to your libart sources or set environment var.
ifndef LIBART
# Here you can find a native Win32 binary of the original awk:
# http://www.gknw.net/development/prgtools/awk.zip
AWK = awk
-ifndef ARCBIN
+
+ifeq ($(ARCEXT),7z)
+ARCBIN = 7za a
+else
ARCBIN = zip -qzr9
ARCEXT = zip
-#ARCBIN = 7za a
-#ARCEXT = 7z
endif
# must be equal to DEBUG or NDEBUG