From: oetiker Date: Sat, 6 Sep 2008 10:43:07 +0000 (+0000) Subject: only link build and use rrd_getopt if there is no getopt_long provided by X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=58f0dbba0090989a047c65f2590698a29b70df36;p=rrdtool.git only link build and use rrd_getopt if there is no getopt_long provided by by the os ... this should also fix problems for solaris 2.8 and other non getopt_long oses who were not taken care of anymore after the intriduction of librrd.sym git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk/program@1481 a5681a0c-68f1-0310-ab6d-d61299d08faa --- diff --git a/bindings/perl-piped/RRDp.pm b/bindings/perl-piped/RRDp.pm index 0a28506..9f57774 100644 --- a/bindings/perl-piped/RRDp.pm +++ b/bindings/perl-piped/RRDp.pm @@ -102,6 +102,7 @@ For more information on how to use RRDtool, check the manpages. Tobias Oetiker =cut + #' this is to make cperl.el happy use strict; diff --git a/configure.ac b/configure.ac index 9089742..7bd2913 100644 --- a/configure.ac +++ b/configure.ac @@ -9,25 +9,25 @@ dnl tell automake the this script is for rrdtool dnl the official version number is dnl a.b.c -AC_INIT([rrdtool],[1.3.1]) +AC_INIT([rrdtool],[1.3.2]) dnl for testing a numberical version number comes handy dnl the released version are dnl a.bccc dnl the devel versions will be something like dnl a.b999yymmddhh -NUMVERS=1.3001 +NUMVERS=1.3002 AC_SUBST(NUMVERS) -dnl for the linker to understand which version the library is compatible with -dnl we must keep a separate library version cout of the format c:r:a if any -dnl if only implementation changed but all interfaces are kept, do r++ -dnl when only functionality was added do c++,r=0,a++ -dnl if any functionality was removed do c++,r=0,a=0. +dnl for the linker to understand which versions the library are compatible with +dnl each other we must keep a separate library version cout of the format c:r:a. +dnl - if only implementation changed but all interfaces are kept, do r++ +dnl - if only functionality was added do c++,r=0,a++ +dnl - if any functionality was removed do c++,r=0,a=0. dnl dnl see http://sourceware.org/autobook/autobook/autobook_91.html dnl -LIBVERS=4:0:0 +LIBVERS=4:1:0 AC_SUBST(LIBVERS) AC_CANONICAL_TARGET @@ -398,7 +398,6 @@ dnl Checks for libraries. AC_CHECK_FUNC(acos, , AC_CHECK_LIB(m, acos)) - dnl add pic flag in any case this makes sure all our code is relocatable eval `./libtool --config | grep pic_flag` CFLAGS="$CFLAGS $pic_flag" @@ -549,7 +548,7 @@ return 0; have_broken_isfinite=no],have_broken_isfinite=yes,[ case "${target}" in hppa*-*-hpux*) have_broken_isfinite=yes ;; - sparc-sun-solaris2.8) have_broken_isfinite=yes ;; + *-sun-solaris2.8) have_broken_isfinite=yes ;; *) have_broken_isfinite=no ;; esac]) ]) @@ -568,6 +567,17 @@ AC_FULL_IEEE CONFIGURE_PART(Resolve Portability Issues) +dnl Do we need getopt_long + +build_getopt=no +RRD_GETOPT_LONG="#" +AC_CHECK_FUNC(getopt_long,[],[ +RRD_GETOPT_LONG="getopt_long" +build_getopt=yes +]) +AC_SUBST(RRD_GETOPT_LONG) +AM_CONDITIONAL(BUILD_GETOPT,[test $build_getopt = yes]) + dnl what does realloc do if it gets called with a NULL pointer AC_CACHE_CHECK([if realloc can deal with NULL], rd_cv_null_realloc, @@ -917,6 +927,7 @@ AC_CONFIG_FILES([examples/Makefile]) AC_CONFIG_FILES([doc/Makefile]) AC_CONFIG_FILES([po/Makefile.in]) AC_CONFIG_FILES([src/Makefile]) +AC_CONFIG_FILES([src/librrd.sym]) AC_CONFIG_FILES([bindings/Makefile]) AC_CONFIG_FILES([bindings/tcl/Makefile]) AC_CONFIG_FILES([bindings/tcl/ifOctets.tcl]) @@ -944,6 +955,7 @@ echo "----------------------------------------------------------------" echo "Config is DONE!" echo echo " With MMAP IO: $enable_mmap" +echo " Build rrd_getopt: $build_getopt" echo " Static programs: $staticprogs" echo " Perl Modules: $COMP_PERL" echo " Perl Binary: $PERL" diff --git a/src/Makefile.am b/src/Makefile.am index c567679..a88eef3 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -14,8 +14,6 @@ RRD_DEFAULT_FONT=@RRD_DEFAULT_FONT@ AM_CPPFLAGS = -DRRD_DEFAULT_FONT=\"$(RRD_DEFAULT_FONT)\" -DNUMVERS=@NUMVERS@ UPD_C_FILES = \ - rrd_getopt.c \ - rrd_getopt1.c \ rrd_parsetime.c \ rrd_hw.c \ rrd_hw_math.c \ @@ -56,6 +54,11 @@ noinst_HEADERS = \ fnv.h rrd_graph.h \ rrd_is_thread_safe.h +if BUILD_GETOPT +noinst_HEADERS += rrd_getopt.h +UPD_C_FILES += rrd_getopt.c rrd_getopt1.c +endif + noinst_LTLIBRARIES = librrdupd.la lib_LTLIBRARIES = librrd.la @@ -99,6 +102,6 @@ rrdtool_LDADD = librrd.la # strftime is here because we do not usually need it. unices have propper # iso date support -EXTRA_DIST= strftime.c strftime.h \ +EXTRA_DIST= strftime.c strftime.h rrd_getopt.c rrd_getopt1.c rrd_getopt.h \ win32comp.c rrd_thread_safe_nt.c get_ver.awk librrd.sym diff --git a/src/librrd.sym b/src/librrd.sym deleted file mode 100644 index a1822c9..0000000 --- a/src/librrd.sym +++ /dev/null @@ -1,50 +0,0 @@ -rrd_clear_error -rrd_close -rrd_create -rrd_create_r -rrd_dontneed -rrd_dump -rrd_dump_r -rrd_fetch -rrd_fetch_r -rrd_first -rrd_first_r -rrd_flush -rrd_free -rrd_free_context -rrd_freemem -rrd_get_context -rrd_get_error -rrd_graph -rrd_graph_v -rrd_info -rrd_info_free -rrd_info_print -rrd_info_push -rrd_init -rrd_last -rrd_last_r -rrd_lastupdate -rrd_lock -rrd_new_context -rrd_open -rrd_parsetime -rrd_proc_start_end -rrd_read -rrd_resize -rrd_restore -rrd_seek -rrd_set_error -rrd_set_to_DINF -rrd_set_to_DNAN -rrd_strerror -rrd_strversion -rrd_tell -rrd_test_error -rrd_tune -rrd_update -rrd_update_r -rrd_update_v -rrd_version -rrd_write -rrd_xport diff --git a/src/librrd.sym.in b/src/librrd.sym.in new file mode 100644 index 0000000..a178f55 --- /dev/null +++ b/src/librrd.sym.in @@ -0,0 +1,51 @@ +rrd_clear_error +rrd_close +rrd_create +rrd_create_r +rrd_dontneed +rrd_dump +rrd_dump_r +rrd_fetch +rrd_fetch_r +rrd_first +rrd_first_r +rrd_flush +rrd_free +rrd_free_context +rrd_freemem +rrd_get_context +rrd_get_error +rrd_graph +rrd_graph_v +rrd_info +rrd_info_free +rrd_info_print +rrd_info_push +rrd_init +rrd_last +rrd_last_r +rrd_lastupdate +rrd_lock +rrd_new_context +rrd_open +rrd_parsetime +rrd_proc_start_end +rrd_read +rrd_resize +rrd_restore +rrd_seek +rrd_set_error +rrd_set_to_DINF +rrd_set_to_DNAN +rrd_strerror +rrd_strversion +rrd_tell +rrd_test_error +rrd_tune +rrd_update +rrd_update_r +rrd_update_v +rrd_version +rrd_write +rrd_xport +@RRD_GETOPT_LONG@ diff --git a/src/rrd_tool.h b/src/rrd_tool.h index 8f0e3c3..131dcbb 100644 --- a/src/rrd_tool.h +++ b/src/rrd_tool.h @@ -50,8 +50,12 @@ extern "C" { #endif /* local include files -- need to be after the system ones */ +#ifdef HAVE_GETOPT_LONG +#define _GNU_SOURCE +#include +#else #include "rrd_getopt.h" -#include "rrd_format.h" +#endif #ifndef max #define max(a,b) ((a) > (b) ? (a) : (b))