diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/BUGS gsl-1.8/BUGS *** gsl-1.7/BUGS Mon Aug 22 15:26:23 2005 --- gsl-1.8/BUGS Thu Mar 30 19:04:23 2006 *************** *** 92,95 **** initialization of another gsl_vector. ---------------------------------------------------------------------- ! Last assigned bug number = 41 --- 92,403 ---- initialization of another gsl_vector. ---------------------------------------------------------------------- ! BUG#42 -- gsl_sf_expint_E2 fails for x=0 ! ! The implementation for gsl_sf_expint_E2 uses a term "x*E1(x)" but ! E1(x) is infinite at x=0, so there is an error. E2 needs a ! separate implementation to handle this. Also the error term ! ! else if(x < 100.0) { ! const double ex = ( scale ? 1.0 : exp(-x) ); ! gsl_sf_result result_E1; ! int stat_E1 = expint_E1_impl(x, &result_E1, scale); ! result->val = ex - x*result_E1.val; ! result->err = fabs(x) * (GSL_DBL_EPSILON*ex + result_E1.err); ! result->err += 2.0 * GSL_DBL_EPSILON * fabs(result->val); ! return stat_E1; ! } ! ! should probably be ! ! result->err = GSL_DBL_EPSILON*ex + fabs(x) * result_E1.err; ! ! ---------------------------------------------------------------------- ! BUG#43 -- knuthran is out of date ! ! From: "Charles Karney" ! To: James Theiler ! Cc: Charles Karney , ! gsl-discuss ! Subject: Re: GSL 1.6 random numbers (gauss.c and rng.c) ! ! One final remark. knuthran.c is out of date! See ! ! http://www-cs-faculty.stanford.edu/~knuth/news02.html#rng ! http://www-cs-faculty.stanford.edu/~knuth/programs/rng.c ! ! There are two significant changes: ! ! (1) The generator is "warmed up" more thoroughly. (This avoids problems ! with correlations between random streams with adjacent seeds.) ! ! (2) Only 100 out of every 1009 random numbers are used. (This is needed ! so that the "birthday test" is satisfied.) ! ! -- ! Charles Karney ! Sarnoff Corporation, Princeton, NJ 08543-5300 ! ! URL: http://charles.karney.info ! Tel: +1 609 734 2312 ! Fax: +1 609 734 2323 ! ! ---------------------------------------------------------------------- ! BUG#44 -- gamma_inc_P and gamma_inc_Q only satisfy P+Q=1 within errors ! ! The sum of gamma_inc_P and gamma_inc_Q doesn't always satisfy the ! identity P+Q=1 exactly (although it is correct within errors), due the ! slightly different branch conditions for the series and continued ! fraction expansions. These could be made identical so that P+Q=1 exactly. ! ! #include ! #include ! ! int ! main (void) ! { ! gsl_sf_result r1, r2; ! double a = 0.3, x = 1.0; ! gsl_sf_gamma_inc_P_e (a, x, &r1); ! gsl_sf_gamma_inc_Q_e (a, x, &r2); ! printf("%.18e\n", r1.val); ! printf("%.18e\n", r2.val); ! printf("%.18e\n", r1.val + r2.val); ! } ! ! $ ./a.out ! 9.156741562411074842e-01 ! 8.432584375889111417e-02 ! 9.999999999999985567e-01 ! ! ====================================================================== ! BUG#44 - multifit array bounds error of n < p (FIXED) ! ! From: "Yajun Wang" ! To: bug-gsl@gnu.org ! Subject: Re: [Bug-gsl] bug in compute_gradient_direction? ! Date: Tue, 28 Mar 2006 17:09:01 +0800 ! Precedence: list ! ! Hi: ! ! I modified the example provided in gsl manual in the section of ! "Nonlinear Least-Squares Fitting". The original example have 40 terms ! to minimize, now I change it to 2. Though the error produced is not ! exactly the error from my program, I think the basically idea is the ! gsl behavior when the number of terms is less than the number of ! parameters: (N < p). ! ! The error is as follows: ! """""" ! gsl: covar.c:51: ERROR: Jacobian be rectangular M x N with M >= N ! Default GSL error handler invoked. ! """""" ! ! I suspect that gsl always expect N>= p, which might be reasonable. But ! the code should inform the user earlier, using some checkers. Because ! the error such as above is confusing for the users. ! ! Nevertheless, in my own program, I add one more dummy term to raise N ! up to p, which works quite well. Thanks for your work. ! ! regards, ! yalding ! ! ! On 3/28/06, Brian Gough wrote: ! > Yajun Wang writes: ! > > I want to use the Nonlinear Least Squares Fitting. I am working on the ! > > sum of 3-dimensional formulas. However, the program quits quietly ! > > whenever I have only 2 formulas to solve. ! > ! > Please can you send a example program which we can compile to ! > reproduce the problem -- thanks. ! > ! > -- ! > Brian Gough ! > ! > Network Theory Ltd, ! > Publishing the GSL Manual - http://www.network-theory.co.uk/gsl/manual/ ! > ! #include ! #include ! #include ! #include ! #include ! #include ! #include ! ! struct data { ! size_t n; ! double * y; ! double * sigma; ! }; ! ! void ! print_state (size_t iter, gsl_multifit_fdfsolver * s) ! { ! printf ("iter: %3u x = % 15.8f % 15.8f % 15.8f " ! "|f(x)| = %g\n", ! iter, ! gsl_vector_get (s->x, 0), ! gsl_vector_get (s->x, 1), ! gsl_vector_get (s->x, 2), ! gsl_blas_dnrm2 (s->f)); ! } ! ! ! int ! expb_f (const gsl_vector * x, void *params, ! gsl_vector * f) ! { ! size_t n = ((struct data *)params)->n; ! double *y = ((struct data *)params)->y; ! double *sigma = ((struct data *) params)->sigma; ! ! double A = gsl_vector_get (x, 0); ! double lambda = gsl_vector_get (x, 1); ! double b = gsl_vector_get (x, 2); ! ! size_t i; ! ! for (i = 0; i < n; i++) ! { ! /* Model Yi = A * exp(-lambda * i) + b */ ! double t = i; ! double Yi = A * exp (-lambda * t) + b; ! gsl_vector_set (f, i, (Yi - y[i])/sigma[i]); ! } ! ! return GSL_SUCCESS; ! } ! ! int ! expb_df (const gsl_vector * x, void *params, ! gsl_matrix * J) ! { ! size_t n = ((struct data *)params)->n; ! double *sigma = ((struct data *) params)->sigma; ! ! double A = gsl_vector_get (x, 0); ! double lambda = gsl_vector_get (x, 1); ! ! size_t i; ! ! for (i = 0; i < n; i++) ! { ! /* Jacobian matrix J(i,j) = dfi / dxj, */ ! /* where fi = (Yi - yi)/sigma[i], */ ! /* Yi = A * exp(-lambda * i) + b */ ! /* and the xj are the parameters (A,lambda,b) */ ! double t = i; ! double s = sigma[i]; ! double e = exp(-lambda * t); ! gsl_matrix_set (J, i, 0, e/s); ! gsl_matrix_set (J, i, 1, -t * A * e/s); ! gsl_matrix_set (J, i, 2, 1/s); ! } ! return GSL_SUCCESS; ! } ! ! int ! expb_fdf (const gsl_vector * x, void *params, ! gsl_vector * f, gsl_matrix * J) ! { ! expb_f (x, params, f); ! expb_df (x, params, J); ! ! return GSL_SUCCESS; ! } ! ! #define N 2 ! ! int ! main (void) ! { ! const gsl_multifit_fdfsolver_type *T; ! gsl_multifit_fdfsolver *s; ! ! int status; ! size_t i, iter = 0; ! ! const size_t n = N; ! const size_t p = 3; ! ! gsl_matrix *covar = gsl_matrix_alloc (p, p); ! double y[N], sigma[N]; ! struct data d = { n, y, sigma}; ! gsl_multifit_function_fdf f; ! double x_init[3] = { 1.0, 0.0, 0.0 }; ! gsl_vector_view x = gsl_vector_view_array (x_init, p); ! const gsl_rng_type * type; ! gsl_rng * r; ! ! gsl_rng_env_setup(); ! ! type = gsl_rng_default; ! r = gsl_rng_alloc (type); ! ! f.f = &expb_f; ! f.df = &expb_df; ! f.fdf = &expb_fdf; ! f.n = n; ! f.p = p; ! f.params = &d; ! ! /* This is the data to be fitted */ ! ! for (i = 0; i < n; i++) ! { ! double t = i; ! y[i] = 1.0 + 5 * exp (-0.1 * t) ! + gsl_ran_gaussian (r, 0.1); ! sigma[i] = 0.1; ! printf ("data: %d %g %g\n", i, y[i], sigma[i]); ! }; ! ! T = gsl_multifit_fdfsolver_lmsder; ! s = gsl_multifit_fdfsolver_alloc (T, n, p); ! gsl_multifit_fdfsolver_set (s, &f, &x.vector); ! ! print_state (iter, s); ! ! do ! { ! iter++; ! status = gsl_multifit_fdfsolver_iterate (s); ! ! printf ("status = %s\n", gsl_strerror (status)); ! ! print_state (iter, s); ! ! if (status) ! break; ! ! status = gsl_multifit_test_delta (s->dx, s->x, ! 1e-4, 1e-4); ! } ! while (status == GSL_CONTINUE && iter < 500); ! ! gsl_multifit_covar (s->J, 0.0, covar); ! ! #define FIT(i) gsl_vector_get(s->x, i) ! #define ERR(i) sqrt(gsl_matrix_get(covar,i,i)) ! ! printf ("A = %.5f +/- %.5f\n", FIT(0), ERR(0)); ! printf ("lambda = %.5f +/- %.5f\n", FIT(1), ERR(1)); ! printf ("b = %.5f +/- %.5f\n", FIT(2), ERR(2)); ! ! { ! double chi = gsl_blas_dnrm2(s->f); ! printf("chisq/dof = %g\n", pow(chi, 2.0)/ (n - p)); ! } ! ! printf ("status = %s\n", gsl_strerror (status)); ! ! gsl_multifit_fdfsolver_free (s); ! return 0; ! } ! ! ---------------------------------------------------------------------- ! Last assigned bug number = 43 diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/ChangeLog gsl-1.8/ChangeLog *** gsl-1.7/ChangeLog Mon Aug 22 15:26:23 2005 --- gsl-1.8/ChangeLog Fri Feb 17 16:09:52 2006 *************** *** 1,3 **** --- 1,16 ---- + 2006-02-15 Brian Gough + + * configure.ac: restrict darwin IEEE detection to powerpc, because + new x86 macs are different. + + * removed automatic addition of compilation flags on alpha, + these should be specified on the command-line through CFLAGS. + + 2006-01-07 Brian Gough + + * templates_on.h: added an FP=1 definition for the floating point + types, FP is undefined for integer types. + 2005-08-05 Brian Gough * gsl/Makefile.am: need to remove makefile with later versions of diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/INSTALL gsl-1.8/INSTALL *** gsl-1.7/INSTALL Mon Aug 22 15:26:23 2005 --- gsl-1.8/INSTALL Thu Mar 30 19:04:40 2006 *************** *** 142,152 **** Hints for Compaq/DEC Alpha ========================== ! The library should compile successfully with Compaq's C compiler using ! the -std and -ieee options. Use ! CC=cc ./configure ! make CFLAGS="-std -ieee" to build the library this way. --- 142,157 ---- Hints for Compaq/DEC Alpha ========================== ! When comping with GCC use the -mieee and -mfp-rounding-mode options ! as appropriate, e.g. ! ./configure CFLAGS="-mieee -mfp-rounding-mode=d -g -O2" ! ! The library should compile successfully with Compaq's C compiler on ! Tru64 Unix 'cc' using the -std, -ieee and -fprm options. Use ! ! ./configure CC=cc ! make CFLAGS="-std -ieee -fprm d" to build the library this way. *************** *** 237,244 **** Hints for Microsoft Windows =========================== ! GSL should compile cleanly with GCC under Cygwin or MinGW+MSYS on ! Microsoft Windows. Hints for OpenBSD ================= --- 242,248 ---- Hints for Microsoft Windows =========================== ! GSL should compile cleanly with GCC under Cygwin on Microsoft Windows. Hints for OpenBSD ================= diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/Makefile.in gsl-1.8/Makefile.in *** gsl-1.7/Makefile.in Tue Sep 13 10:05:27 2005 --- gsl-1.8/Makefile.in Fri Mar 31 17:47:46 2006 *************** *** 49,56 **** $(srcdir)/gsl-config.in $(srcdir)/gsl.pc.in \ $(srcdir)/gsl.spec.in $(srcdir)/gsl_version.h.in \ $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \ ! THANKS TODO acconfig.h config.guess config.sub depcomp \ ! install-sh ltmain.sh mdate-sh missing mkinstalldirs subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac --- 49,56 ---- $(srcdir)/gsl-config.in $(srcdir)/gsl.pc.in \ $(srcdir)/gsl.spec.in $(srcdir)/gsl_version.h.in \ $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \ ! THANKS TODO acconfig.h config.guess config.sub install-sh \ ! ltmain.sh mdate-sh missing mkinstalldirs subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac *************** *** 108,118 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgsl_la_SOURCES) $(gsl_histogram_SOURCES) \ $(gsl_randist_SOURCES) --- 108,118 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgsl_la_SOURCES) $(gsl_histogram_SOURCES) \ $(gsl_randist_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/NEWS gsl-1.8/NEWS *** gsl-1.7/NEWS Wed Sep 14 11:11:10 2005 --- gsl-1.8/NEWS Thu Mar 30 19:01:28 2006 *************** *** 1,4 **** ! * What is new in gsl-1.7: ** Switched gsl_randist_binomial to use the faster binomial random variate TPE algorithm by default. The previous binomial variate --- 1,68 ---- ! ** Added an error check to trap multifit calls with fewer observations ! than parameters. Previously calling the multifit routines with n

100*l*l to ! satisfy he requirement x>>l*l in the asymptotic expansion. ! ! ** The scaled bessel function gsl_sf_bessel_In_scaled now handles ! larger arguments x > 1e7 correctly for n < 150 using the uniform ! asymptotic expansion instead of the continued fraction expansion. ! ! ** The functions gsl_stats_min/max now return NaN if the data contains ! NaN. Similarly, the functions gsl_stats_min/max_index return the index ! of the first occurring NaN in the data when it contains a NaN. ! ! ** Fixed an invalid memory access that caused incorrect results for ! the special case in periodic cubic spline interpolation of 3 points. ! ! ** Added Debye functions for n=5 and n=6 ! ! ** Added the missing functions gsl_spline_name() and ! gsl_spline_min_size() ! ! ** The function gsl_rng_uniform_int(r,n) now returns an error for n=0, ! which can occur when passing an unsigned integer value of 2^32. ! ! * What was new in gsl-1.7: ** Switched gsl_randist_binomial to use the faster binomial random variate TPE algorithm by default. The previous binomial variate diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/THANKS gsl-1.8/THANKS *** gsl-1.7/THANKS Tue Sep 13 09:41:22 2005 --- gsl-1.8/THANKS Thu Mar 30 19:01:28 2006 *************** *** 308,314 **** * Joerg Wensch LQ decompositions ! * Jason Stover patch for cdf/beta.c * Ralph Menikoff bug report for gsl_sf_expint_scaled --- 308,315 ---- * Joerg Wensch LQ decompositions ! * Jason Stover patch for cdf/beta.c, ! inverse cumulative distributions, discrete cumulative distributions * Ralph Menikoff bug report for gsl_sf_expint_scaled *************** *** 334,340 **** * Dirk Eddelbuettel for bug reports and testing, and maintaining the Debian package for GSL. ! * Jari Häkkinen for svd bug reports * Marco Canini patch for IXP2400 Xscale --- 335,341 ---- * Dirk Eddelbuettel for bug reports and testing, and maintaining the Debian package for GSL. ! * Jari Häkkinen for svd bug reports, rng bug reports * Marco Canini patch for IXP2400 Xscale *************** *** 345,347 **** --- 346,376 ---- for Brent minimisation algorithm. * Gabriel Withington typo in docs + + * Stewart V. Wright patch for missing + spline functions + + * Richard Mathar additional Debye functions n=5,6 + + * Stefan Jahn bug fix for periodic cubic splines with n=3 + + * Yoram Burak bug report for scaled bessel function In_scaled + + * Mario Santos bug report for spherical bessel function + + * Vincent Plagnol bug report for gsl_randist_binomial_pdf + + * John Houck bug report for gsl_sf_synchrotron_1 + + * Jochen Voss ziggurat gaussian generator + + * John D Lamb Marsaglia-Tsang gamma generator + + * Giulio Bottazzi improved exponential + power distribution and gsl_multifit_linear_est + + * Charles Karney added Leva bounds to gaussian ratio method generator + + * Torquil Sorenson documentation bug fixes for FFTs + + * Yajun Wang - bug report for multifit n

conftest.$ac_ext ! if AC_TRY_EVAL(ac_compile); then ! case `/usr/bin/file conftest.$ac_objext` in ! *32-bit*) ! LD="${LD-ld} -32" ! ;; ! *N32*) ! LD="${LD-ld} -n32" ! ;; ! *64-bit*) ! LD="${LD-ld} -64" ! ;; ! esac ! fi ! rm -rf conftest* ! ;; ! *-*-sco3.2v5*) ! # On SCO OpenServer 5, we need -belf to get full-featured binaries. ! SAVE_CFLAGS="$CFLAGS" ! CFLAGS="$CFLAGS -belf" ! AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, ! [AC_LANG_SAVE ! AC_LANG_C ! AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) ! AC_LANG_RESTORE]) ! if test x"$lt_cv_cc_needs_belf" != x"yes"; then ! # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf ! CFLAGS="$SAVE_CFLAGS" ! fi ! ;; ! ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL], ! [*-*-cygwin* | *-*-mingw* | *-*-pw32*) ! AC_CHECK_TOOL(DLLTOOL, dlltool, false) ! AC_CHECK_TOOL(AS, as, false) ! AC_CHECK_TOOL(OBJDUMP, objdump, false) ! # recent cygwin and mingw systems supply a stub DllMain which the user ! # can override, but on older systems we have to supply one ! AC_CACHE_CHECK([if libtool should supply DllMain function], lt_cv_need_dllmain, ! [AC_TRY_LINK([], ! [extern int __attribute__((__stdcall__)) DllMain(void*, int, void*); ! DllMain (0, 0, 0);], ! [lt_cv_need_dllmain=no],[lt_cv_need_dllmain=yes])]) ! ! case $host/$CC in ! *-*-cygwin*/gcc*-mno-cygwin*|*-*-mingw*) ! # old mingw systems require "-dll" to link a DLL, while more recent ones ! # require "-mdll" ! SAVE_CFLAGS="$CFLAGS" ! CFLAGS="$CFLAGS -mdll" ! AC_CACHE_CHECK([how to link DLLs], lt_cv_cc_dll_switch, ! [AC_TRY_LINK([], [], [lt_cv_cc_dll_switch=-mdll],[lt_cv_cc_dll_switch=-dll])]) ! CFLAGS="$SAVE_CFLAGS" ;; ! *-*-cygwin* | *-*-pw32*) ! # cygwin systems need to pass --dll to the linker, and not link ! # crt.o which will require a WinMain@16 definition. ! lt_cv_cc_dll_switch="-Wl,--dll -nostartfiles" ;; ! esac ;; - ]) esac ! _LT_AC_LTCONFIG_HACK ! ]) ! # AC_LIBTOOL_HEADER_ASSERT ! # ------------------------ ! AC_DEFUN([AC_LIBTOOL_HEADER_ASSERT], ! [AC_CACHE_CHECK([whether $CC supports assert without backlinking], ! [lt_cv_func_assert_works], ! [case $host in ! *-*-solaris*) ! if test "$GCC" = yes && test "$with_gnu_ld" != yes; then ! case `$CC --version 2>/dev/null` in ! [[12]].*) lt_cv_func_assert_works=no ;; ! *) lt_cv_func_assert_works=yes ;; ! esac ! fi ! ;; ! esac]) ! if test "x$lt_cv_func_assert_works" = xyes; then ! AC_CHECK_HEADERS(assert.h) ! fi ! ])# AC_LIBTOOL_HEADER_ASSERT - # _LT_AC_CHECK_DLFCN - # -------------------- - AC_DEFUN([_LT_AC_CHECK_DLFCN], - [AC_CHECK_HEADERS(dlfcn.h) - ])# _LT_AC_CHECK_DLFCN ! # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE ! # --------------------------------- ! AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], ! [AC_REQUIRE([AC_CANONICAL_HOST]) ! AC_REQUIRE([AC_PROG_NM]) ! AC_REQUIRE([AC_OBJEXT]) ! # Check for command to grab the raw symbol name followed by C symbol from nm. ! AC_MSG_CHECKING([command to parse $NM output]) ! AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [dnl ! # These are sane defaults that work on at least a few old systems. ! # [They come from Ultrix. What could be older than Ultrix?!! ;)] ! # Character class describing NM global symbol codes. ! symcode='[[BCDEGRST]]' ! # Regexp to match symbols that can be accessed directly from C. ! sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' - # Transform the above into a raw symbol and a C symbol. - symxfrm='\1 \2\3 \3' ! # Transform an extracted symbol line into a proper C declaration ! lt_cv_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'" - # Transform an extracted symbol line into symbol name and symbol address - lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ! # Define system-specific variables. ! case $host_os in ! aix*) ! symcode='[[BCDT]]' ! ;; ! cygwin* | mingw* | pw32*) ! symcode='[[ABCDGISTW]]' ! ;; ! hpux*) # Its linker distinguishes data from code symbols ! lt_cv_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" ! lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ! ;; ! irix* | nonstopux*) ! symcode='[[BCDEGRST]]' ! ;; ! osf*) ! symcode='[[BCDEGQRST]]' ! ;; ! solaris* | sysv5*) ! symcode='[[BDT]]' ! ;; ! sysv4) ! symcode='[[DFNSTU]]' ! ;; ! esac ! # Handle CRLF in mingw tool chain ! opt_cr= ! case $host_os in ! mingw*) ! opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac ! # If we're using GNU nm, then use its standard symbol codes. ! if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then ! symcode='[[ABCDGISTW]]' fi ! # Try without a prefix undercore, then with it. ! for ac_symprfx in "" "_"; do ! ! # Write the raw and C identifiers. ! lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" ! ! # Check to see that the pipe works correctly. ! pipe_works=no ! rm -f conftest* ! cat > conftest.$ac_ext < $nlist) && test -s "$nlist"; then ! # Try sorting and uniquifying the output. ! if sort "$nlist" | uniq > "$nlist"T; then ! mv -f "$nlist"T "$nlist" ! else ! rm -f "$nlist"T ! fi ! ! # Make sure that we snagged all the symbols we need. ! if egrep ' nm_test_var$' "$nlist" >/dev/null; then ! if egrep ' nm_test_func$' "$nlist" >/dev/null; then ! cat < conftest.$ac_ext ! #ifdef __cplusplus ! extern "C" { ! #endif ! ! EOF ! # Now generate the symbol file. ! eval "$lt_cv_global_symbol_to_cdecl"' < "$nlist" >> conftest.$ac_ext' ! ! cat <> conftest.$ac_ext ! #if defined (__STDC__) && __STDC__ ! # define lt_ptr void * ! #else ! # define lt_ptr char * ! # define const ! #endif ! ! /* The mapping between symbol names and symbols. */ ! const struct { ! const char *name; ! lt_ptr address; ! } ! lt_preloaded_symbols[[]] = ! { ! EOF ! sed "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr) \&\2},/" < "$nlist" >> conftest.$ac_ext ! cat <<\EOF >> conftest.$ac_ext ! {0, (lt_ptr) 0} ! }; ! ! #ifdef __cplusplus ! } ! #endif ! EOF ! # Now try linking the two files. ! mv conftest.$ac_objext conftstm.$ac_objext ! save_LIBS="$LIBS" ! save_CFLAGS="$CFLAGS" ! LIBS="conftstm.$ac_objext" ! CFLAGS="$CFLAGS$no_builtin_flag" ! if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then ! pipe_works=yes ! fi ! LIBS="$save_LIBS" ! CFLAGS="$save_CFLAGS" ! else ! echo "cannot find nm_test_func in $nlist" >&AC_FD_CC ! fi ! else ! echo "cannot find nm_test_var in $nlist" >&AC_FD_CC ! fi ! else ! echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AC_FD_CC ! fi ! else ! echo "$progname: failed program was:" >&AC_FD_CC ! cat conftest.$ac_ext >&5 ! fi ! rm -f conftest* conftst* ! ! # Do not use the global_symbol_pipe unless it works. ! if test "$pipe_works" = yes; then ! break ! else ! lt_cv_sys_global_symbol_pipe= ! fi ! done ! ]) ! global_symbol_pipe="$lt_cv_sys_global_symbol_pipe" ! if test -z "$lt_cv_sys_global_symbol_pipe"; then ! global_symbol_to_cdecl= ! global_symbol_to_c_name_address= ! else ! global_symbol_to_cdecl="$lt_cv_global_symbol_to_cdecl" ! global_symbol_to_c_name_address="$lt_cv_global_symbol_to_c_name_address" ! fi ! if test -z "$global_symbol_pipe$global_symbol_to_cdec$global_symbol_to_c_name_address"; ! then ! AC_MSG_RESULT(failed) ! else ! AC_MSG_RESULT(ok) ! fi ! ]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE ! ! # _LT_AC_LIBTOOL_SYS_PATH_SEPARATOR ! # --------------------------------- ! AC_DEFUN([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR], ! [# Find the correct PATH separator. Usually this is `:', but ! # DJGPP uses `;' like DOS. ! if test "X${PATH_SEPARATOR+set}" != Xset; then ! UNAME=${UNAME-`uname 2>/dev/null`} ! case X$UNAME in ! *-DOS) lt_cv_sys_path_separator=';' ;; ! *) lt_cv_sys_path_separator=':' ;; ! esac ! PATH_SEPARATOR=$lt_cv_sys_path_separator ! fi ! ])# _LT_AC_LIBTOOL_SYS_PATH_SEPARATOR ! ! # _LT_AC_PROG_ECHO_BACKSLASH ! # -------------------------- ! # Add some code to the start of the generated configure script which ! # will find an echo command which doesn't interpret backslashes. ! AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], ! [ifdef([AC_DIVERSION_NOTICE], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], ! [AC_DIVERT_PUSH(NOTICE)]) ! _LT_AC_LIBTOOL_SYS_PATH_SEPARATOR ! ! # Check that we are running under the correct shell. ! SHELL=${CONFIG_SHELL-/bin/sh} ! ! case X$ECHO in ! X*--fallback-echo) ! # Remove one level of quotation (which was required for Make). ! ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ! ;; ! esac ! ! echo=${ECHO-echo} ! if test "X[$]1" = X--no-reexec; then ! # Discard the --no-reexec flag, and continue. ! shift ! elif test "X[$]1" = X--fallback-echo; then ! # Avoid inline document here, it may be left over ! : ! elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then ! # Yippee, $echo works! ! : ! else ! # Restart under the correct shell. ! exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} ! fi ! ! if test "X[$]1" = X--fallback-echo; then ! # used as fallback echo ! shift ! cat </dev/null && ! echo_test_string="`eval $cmd`" && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null then break --- 684,960 ---- AC_REQUIRE([AC_PROG_LD])dnl AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl AC_REQUIRE([AC_PROG_NM])dnl AC_REQUIRE([AC_PROG_LN_S])dnl AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl + # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! 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 + + AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl _LT_AC_PROG_ECHO_BACKSLASH ! ! case $host_os in ! aix3*) ! # AIX sometimes has problems with the GCC collect2 program. For some ! # reason, if we set the COLLECT_NAMES environment variable, the problems ! # vanish in a puff of smoke. ! if test "X${COLLECT_NAMES+set}" != Xset; then ! COLLECT_NAMES= ! export COLLECT_NAMES fi ;; esac + # Sed substitution that helps us do robust quoting. It backslashifies + # metacharacters that are still active within double-quoted strings. + Xsed='sed -e 1s/^X//' + [sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g'] + + # Same as above, but do not quote variable references. + [double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g'] + + # Sed substitution to delay expansion of an escaped shell variable in a + # double_quote_subst'ed string. + delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + + # Sed substitution to avoid accidental globbing in evaled expressions + no_glob_subst='s/\*/\\\*/g' + + # Constants: + rm="rm -f" + + # Global variables: + default_ofile=libtool + can_build_shared=yes + + # All known linkers require a `.a' archive for static linking (except MSVC, + # which needs '.lib'). + libext=a + ltmain="$ac_aux_dir/ltmain.sh" + ofile="$default_ofile" + with_gnu_ld="$lt_cv_prog_gnu_ld" + + AC_CHECK_TOOL(AR, ar, false) AC_CHECK_TOOL(RANLIB, ranlib, :) AC_CHECK_TOOL(STRIP, strip, :) ! old_CC="$CC" ! old_CFLAGS="$CFLAGS" ! # Set sane defaults for various variables ! test -z "$AR" && AR=ar ! test -z "$AR_FLAGS" && AR_FLAGS=cru ! test -z "$AS" && AS=as ! test -z "$CC" && CC=cc ! test -z "$LTCC" && LTCC=$CC ! test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS ! test -z "$DLLTOOL" && DLLTOOL=dlltool ! test -z "$LD" && LD=ld ! test -z "$LN_S" && LN_S="ln -s" ! test -z "$MAGIC_CMD" && MAGIC_CMD=file ! test -z "$NM" && NM=nm ! test -z "$SED" && SED=sed ! test -z "$OBJDUMP" && OBJDUMP=objdump ! test -z "$RANLIB" && RANLIB=: ! test -z "$STRIP" && STRIP=: ! 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_postinstall_cmds='chmod 644 $oldlib' ! old_postuninstall_cmds= ! if test -n "$RANLIB"; then ! case $host_os in ! openbsd*) ! old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ! ;; ! *) ! old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ! ;; ! esac ! old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" ! fi ! _LT_CC_BASENAME([$compiler]) ! # Only perform the check for file, if the check method requires it ! case $deplibs_check_method in ! file_magic*) ! if test "$file_magic_cmd" = '$MAGIC_CMD'; then ! AC_PATH_MAGIC ! fi ;; esac ! 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) ! AC_ARG_ENABLE([libtool-lock], ! [AC_HELP_STRING([--disable-libtool-lock], ! [avoid locking (might break parallel builds)])]) ! test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes ! AC_ARG_WITH([pic], ! [AC_HELP_STRING([--with-pic], ! [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], ! [pic_mode="$withval"], ! [pic_mode=default]) ! test -z "$pic_mode" && pic_mode=default ! # Use C for the default configuration in the libtool script ! tagname= ! AC_LIBTOOL_LANG_C_CONFIG ! _LT_AC_TAGCONFIG ! ])# AC_LIBTOOL_SETUP ! # _LT_AC_SYS_COMPILER ! # ------------------- ! AC_DEFUN([_LT_AC_SYS_COMPILER], ! [AC_REQUIRE([AC_PROG_CC])dnl ! # If no C compiler was specified, use CC. ! LTCC=${LTCC-"$CC"} ! # If no C compiler flags were specified, use CFLAGS. ! LTCFLAGS=${LTCFLAGS-"$CFLAGS"} ! # Allow CC to be a program name with arguments. ! compiler=$CC ! ])# _LT_AC_SYS_COMPILER ! # _LT_CC_BASENAME(CC) ! # ------------------- ! # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. ! AC_DEFUN([_LT_CC_BASENAME], ! [for cc_temp in $1""; do ! case $cc_temp in ! compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; ! distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; ! \-*) ;; ! *) break;; ! esac ! done ! cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` ! ]) ! # _LT_COMPILER_BOILERPLATE ! # ------------------------ ! # 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 ! eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err ! _lt_compiler_boilerplate=`cat conftest.err` ! $rm conftest* ! ])# _LT_COMPILER_BOILERPLATE ! ! ! # _LT_LINKER_BOILERPLATE ! # ---------------------- ! # 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 ! eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err ! _lt_linker_boilerplate=`cat conftest.err` ! $rm conftest* ! ])# _LT_LINKER_BOILERPLATE ! ! ! # _LT_AC_SYS_LIBPATH_AIX ! # ---------------------- ! # Links a minimal program and checks the executable ! # for the system default hardcoded library path. In most cases, ! # this is /usr/lib:/lib, but when the MPI compilers are used ! # the location of the communication and MPI libs are included too. ! # 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; } ! }'` ! # 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="/usr/lib:/lib"; fi ! ])# _LT_AC_SYS_LIBPATH_AIX ! ! ! # _LT_AC_SHELL_INIT(ARG) ! # ---------------------- ! AC_DEFUN([_LT_AC_SHELL_INIT], ! [ifdef([AC_DIVERSION_NOTICE], ! [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)], ! [AC_DIVERT_PUSH(NOTICE)]) ! $1 ! AC_DIVERT_POP ! ])# _LT_AC_SHELL_INIT ! ! # _LT_AC_PROG_ECHO_BACKSLASH ! # -------------------------- ! # Add some code to the start of the generated configure script which ! # will find an echo command which doesn't interpret backslashes. ! AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH], ! [_LT_AC_SHELL_INIT([ ! # Check that we are running under the correct shell. ! SHELL=${CONFIG_SHELL-/bin/sh} ! ! case X$ECHO in ! X*--fallback-echo) ! # Remove one level of quotation (which was required for Make). ! ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','` ;; esac ! echo=${ECHO-echo} ! if test "X[$]1" = X--no-reexec; then ! # Discard the --no-reexec flag, and continue. ! shift ! elif test "X[$]1" = X--fallback-echo; then ! # Avoid inline document here, it may be left over ! : ! elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then ! # Yippee, $echo works! ! : ! else ! # Restart under the correct shell. ! exec $SHELL "[$]0" --no-reexec ${1+"[$]@"} fi ! if test "X[$]1" = X--fallback-echo; then ! # used as fallback echo ! shift ! cat </dev/null 2>&1 && unset CDPATH if test -z "$ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... ! if (echo_test_string=`eval $cmd`) 2>/dev/null && ! echo_test_string=`eval $cmd` && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null then break *************** *** 1032,1039 **** # # So, first we look for a working echo in the user's PATH. ! IFS="${IFS= }"; save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && --- 973,981 ---- # # So, first we look for a working echo in the user's PATH. ! lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && *************** *** 1042,1048 **** break fi done ! IFS="$save_ifs" if test "X$echo" = Xecho; then # We didn't find a better echo, so look for alternatives. --- 984,990 ---- break fi done ! IFS="$lt_save_ifs" if test "X$echo" = Xecho; then # We didn't find a better echo, so look for alternatives. *************** *** 1115,1131 **** fi AC_SUBST(ECHO) ! AC_DIVERT_POP ! ])# _LT_AC_PROG_ECHO_BACKSLASH # _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) ! # ------------------------------------------------------------------ AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], ! [if test "$cross_compiling" = yes; then : [$4] else - AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < conftest.$ac_ext ! if AC_TRY_EVAL(ac_compile); then ! case `/usr/bin/file conftest.$ac_objext` in ! *ELF-32*) ! HPUX_IA64_MODE="32" ! ;; ! *ELF-64*) ! HPUX_IA64_MODE="64" ! ;; ! esac ! fi ! rm -rf conftest* ! ;; ! *-*-irix6*) ! # Find out which ABI we are using. ! echo '[#]line __oline__ "configure"' > conftest.$ac_ext ! if AC_TRY_EVAL(ac_compile); then ! if test "$lt_cv_prog_gnu_ld" = yes; then ! case `/usr/bin/file conftest.$ac_objext` in ! *32-bit*) ! LD="${LD-ld} -melf32bsmip" ! ;; ! *N32*) ! LD="${LD-ld} -melf32bmipn32" ! ;; ! *64-bit*) ! LD="${LD-ld} -melf64bmip" ! ;; ! esac ! else ! case `/usr/bin/file conftest.$ac_objext` in ! *32-bit*) ! LD="${LD-ld} -32" ! ;; ! *N32*) ! LD="${LD-ld} -n32" ! ;; ! *64-bit*) ! LD="${LD-ld} -64" ! ;; ! esac ! fi ! fi ! rm -rf conftest* ! ;; ! ! 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-*linux*) ! LD="${LD-ld} -m elf_i386" ! ;; ! ppc64-*linux*|powerpc64-*linux*) ! LD="${LD-ld} -m elf32ppclinux" ! ;; ! s390x-*linux*) ! LD="${LD-ld} -m elf_s390" ! ;; ! sparc64-*linux*) ! LD="${LD-ld} -m elf32_sparc" ! ;; ! esac ! ;; ! *64-bit*) ! case $host in ! x86_64-*linux*) ! LD="${LD-ld} -m elf_x86_64" ! ;; ! ppc*-*linux*|powerpc*-*linux*) ! LD="${LD-ld} -m elf64ppc" ! ;; ! s390*-*linux*) ! LD="${LD-ld} -m elf64_s390" ! ;; ! sparc*-*linux*) ! LD="${LD-ld} -m elf64_sparc" ! ;; ! esac ! ;; ! esac ! fi ! rm -rf conftest* ! ;; ! ! *-*-sco3.2v5*) ! # On SCO OpenServer 5, we need -belf to get full-featured binaries. ! SAVE_CFLAGS="$CFLAGS" ! CFLAGS="$CFLAGS -belf" ! AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, ! [AC_LANG_PUSH(C) ! AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) ! AC_LANG_POP]) ! if test x"$lt_cv_cc_needs_belf" != x"yes"; then ! # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf ! CFLAGS="$SAVE_CFLAGS" ! fi ! ;; ! sparc*-*solaris*) ! # 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 ! *64-bit*) ! case $lt_cv_prog_gnu_ld in ! yes*) LD="${LD-ld} -m elf64_sparc" ;; ! *) LD="${LD-ld} -64" ;; ! esac ! ;; ! esac ! fi ! rm -rf conftest* ! ;; ! ! AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], ! [*-*-cygwin* | *-*-mingw* | *-*-pw32*) ! AC_CHECK_TOOL(DLLTOOL, dlltool, false) ! AC_CHECK_TOOL(AS, as, false) ! AC_CHECK_TOOL(OBJDUMP, objdump, false) ! ;; ! ]) ! esac ! ! need_locks="$enable_libtool_lock" ! ! ])# _LT_AC_LOCK ! ! ! # AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, ! # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) ! # ---------------------------------------------------------------- ! # Check whether the given compiler option works ! AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], ! [AC_REQUIRE([LT_AC_PROG_SED]) ! 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 ! 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. ! # Note that $ac_compile itself does not contain backslashes and begins ! # with a dollar sign (not a hyphen), so the echo should work correctly. ! # The option is referenced via a variable to avoid confusing sed. ! lt_compile=`echo "$ac_compile" | $SED \ ! -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:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) ! (eval "$lt_compile" 2>conftest.err) ! ac_status=$? ! cat conftest.err >&AS_MESSAGE_LOG_FD ! echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD ! 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 ! $2=yes ! fi ! fi ! $rm conftest* ! ]) ! ! if test x"[$]$2" = xyes; then ! ifelse([$5], , :, [$5]) ! else ! ifelse([$6], , :, [$6]) ! fi ! ])# AC_LIBTOOL_COMPILER_OPTION ! ! ! # AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, ! # [ACTION-SUCCESS], [ACTION-FAILURE]) ! # ------------------------------------------------------------ ! # Check whether the given compiler option works ! AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], ! [AC_CACHE_CHECK([$1], [$2], ! [$2=no ! save_LDFLAGS="$LDFLAGS" ! LDFLAGS="$LDFLAGS $3" ! printf "$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 ! if test -s conftest.err; then ! # Append any errors to the config.log. ! cat conftest.err 1>&AS_MESSAGE_LOG_FD ! $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 ! $2=yes ! fi ! else ! $2=yes ! fi ! fi ! $rm conftest* ! LDFLAGS="$save_LDFLAGS" ! ]) ! ! if test x"[$]$2" = xyes; then ! ifelse([$4], , :, [$4]) ! else ! ifelse([$5], , :, [$5]) ! fi ! ])# AC_LIBTOOL_LINKER_OPTION ! ! ! # AC_LIBTOOL_SYS_MAX_CMD_LEN ! # -------------------------- ! AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], ! [# find the maximum length of command line arguments ! AC_MSG_CHECKING([the maximum length of command line arguments]) ! AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl ! i=0 ! teststring="ABCD" ! ! case $build_os in ! msdosdjgpp*) ! # On DJGPP, this test can blow up pretty badly due to problems in libc ! # (any single argument exceeding 2000 bytes causes a buffer overrun ! # during glob expansion). Even if it were fixed, the result of this ! # check would be larger than it should be. ! lt_cv_sys_max_cmd_len=12288; # 12K is about right ! ;; ! ! gnu*) ! # Under GNU Hurd, this test is not required because there is ! # no limit to the length of command line arguments. ! # Libtool will interpret -1 as no limit whatsoever ! lt_cv_sys_max_cmd_len=-1; ! ;; ! ! cygwin* | mingw*) ! # On Win9x/ME, this test blows up -- it succeeds, but takes ! # about 5 minutes as the teststring grows exponentially. ! # Worse, since 9x/ME are not pre-emptively multitasking, ! # you end up with a "frozen" computer, even though with patience ! # the test eventually succeeds (with a max line length of 256k). ! # Instead, let's just punt: use the minimum linelength reported by ! # all of the supported platforms: 8192 (on NT/2K/XP). ! lt_cv_sys_max_cmd_len=8192; ! ;; ! ! amigaos*) ! # On AmigaOS with pdksh, this test takes hours, literally. ! # So we just punt and use a minimum line length of 8192. ! lt_cv_sys_max_cmd_len=8192; ! ;; ! ! netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) ! # This has been around since 386BSD, at least. Likely further. ! if test -x /sbin/sysctl; then ! lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` ! elif test -x /usr/sbin/sysctl; then ! lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` ! else ! lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs ! fi ! # And add a safety zone ! 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` ! ;; ! ! interix*) ! # We know the value 262144 and hardcode it with a safety zone (like BSD) ! lt_cv_sys_max_cmd_len=196608 ! ;; ! ! osf*) ! # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure ! # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not ! # nice to cause kernel panics so lets avoid the loop below. ! # First set a reasonable default. ! lt_cv_sys_max_cmd_len=16384 ! # ! if test -x /sbin/sysconfig; then ! case `/sbin/sysconfig -q proc exec_disable_arg_limit` in ! *1*) lt_cv_sys_max_cmd_len=-1 ;; ! esac ! fi ! ;; ! sco3.2v5*) ! lt_cv_sys_max_cmd_len=102400 ! ;; ! sysv5* | sco5v6* | sysv4.2uw2*) ! kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` ! if test -n "$kargmax"; then ! lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` ! else ! lt_cv_sys_max_cmd_len=32768 ! 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` \ ! = "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` ! ;; ! esac ! ]) ! if test -n $lt_cv_sys_max_cmd_len ; then ! AC_MSG_RESULT($lt_cv_sys_max_cmd_len) ! else ! AC_MSG_RESULT(none) ! fi ! ])# AC_LIBTOOL_SYS_MAX_CMD_LEN ! ! ! # _LT_AC_CHECK_DLFCN ! # ------------------ ! AC_DEFUN([_LT_AC_CHECK_DLFCN], ! [AC_CHECK_HEADERS(dlfcn.h)dnl ! ])# _LT_AC_CHECK_DLFCN ! # _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) ! # --------------------------------------------------------------------- AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF], ! [AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl ! if test "$cross_compiling" = yes; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext </dev/null; then ! (./conftest; exit; ) 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; ! x$lt_unknown|x*) $3 ;; esac else : # compilation failed --- 1476,1494 ---- else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; /* dlclose (self); */ } + else + puts (dlerror ()); exit (status); }] EOF if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then ! (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; ! x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed *************** *** 1206,1215 **** rm -fr conftest* ])# _LT_AC_TRY_DLOPEN_SELF # AC_LIBTOOL_DLOPEN_SELF ! # ------------------- AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], ! [if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown --- 1498,1509 ---- rm -fr conftest* ])# _LT_AC_TRY_DLOPEN_SELF + # AC_LIBTOOL_DLOPEN_SELF ! # ---------------------- AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], ! [AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl ! if test "x$enable_dlopen" != xyes; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown *************** *** 1224,1247 **** lt_cv_dlopen_self=yes ;; ! cygwin* | mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; *) 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"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], ! [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [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"]) ]) ]) ]) --- 1518,1556 ---- lt_cv_dlopen_self=yes ;; ! mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + *) 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"], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen="dlopen"], [AC_CHECK_LIB([dl], [dlopen], ! [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], [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"]) ]) ]) ]) *************** *** 1259,1269 **** case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" - AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" ! eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" --- 1568,1577 ---- case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" ! wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" *************** *** 1276,1282 **** ]) if test "x$lt_cv_dlopen_self" = xyes; then ! LDFLAGS="$LDFLAGS $link_static_flag" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_AC_TRY_DLOPEN_SELF( --- 1584,1590 ---- ]) if test "x$lt_cv_dlopen_self" = xyes; then ! wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_AC_TRY_DLOPEN_SELF( *************** *** 1303,2894 **** fi ])# AC_LIBTOOL_DLOPEN_SELF - AC_DEFUN([_LT_AC_LTCONFIG_HACK], - [AC_REQUIRE([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])dnl - # Sed substitution that helps us do robust quoting. It backslashifies - # metacharacters that are still active within double-quoted strings. - Xsed='sed -e s/^X//' - sed_quote_subst='s/\([[\\"\\`$\\\\]]\)/\\\1/g' ! # Same as above, but do not quote variable references. ! double_quote_subst='s/\([[\\"\\`\\\\]]\)/\\\1/g' - # Sed substitution to delay expansion of an escaped shell variable in a - # double_quote_subst'ed string. - delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' ! # Constants: ! rm="rm -f" ! # Global variables: ! default_ofile=libtool ! can_build_shared=yes ! ! # All known linkers require a `.a' archive for static linking (except M$VC, ! # which needs '.lib'). ! libext=a ! ltmain="$ac_aux_dir/ltmain.sh" ! ofile="$default_ofile" ! with_gnu_ld="$lt_cv_prog_gnu_ld" ! need_locks="$enable_libtool_lock" ! ! old_CC="$CC" ! old_CFLAGS="$CFLAGS" - # Set sane defaults for various variables - test -z "$AR" && AR=ar - test -z "$AR_FLAGS" && AR_FLAGS=cru - test -z "$AS" && AS=as - test -z "$CC" && CC=cc - test -z "$DLLTOOL" && DLLTOOL=dlltool - test -z "$LD" && LD=ld - test -z "$LN_S" && LN_S="ln -s" - test -z "$MAGIC_CMD" && MAGIC_CMD=file - test -z "$NM" && NM=nm - test -z "$OBJDUMP" && OBJDUMP=objdump - test -z "$RANLIB" && RANLIB=: - test -z "$STRIP" && STRIP=: - test -z "$ac_objext" && ac_objext=o ! if test x"$host" != x"$build"; then ! ac_tool_prefix=${host_alias}- else ! ac_tool_prefix= fi - # Transform linux* to *-*-linux-gnu*, to support old configure scripts. - case $host_os in - linux-gnu*) ;; - linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` - esac ! case $host_os in ! aix3*) ! # AIX sometimes has problems with the GCC collect2 program. For some ! # reason, if we set the COLLECT_NAMES environment variable, the problems ! # vanish in a puff of smoke. ! if test "X${COLLECT_NAMES+set}" != Xset; then ! COLLECT_NAMES= ! export COLLECT_NAMES fi ! ;; ! esac ! # Determine commands to create old-style static archives. ! old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' ! old_postinstall_cmds='chmod 644 $oldlib' ! old_postuninstall_cmds= ! if test -n "$RANLIB"; then case $host_os in ! openbsd*) ! old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" ! ;; ! *) ! old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" ;; esac - old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi - # Allow CC to be a program name with arguments. - set dummy $CC - compiler="[$]2" ! AC_MSG_CHECKING([for objdir]) ! rm -f .libs 2>/dev/null ! mkdir .libs 2>/dev/null ! if test -d .libs; then ! objdir=.libs else ! # MS-DOS does not allow filenames that begin with a dot. ! objdir=_libs fi ! rmdir .libs 2>/dev/null ! AC_MSG_RESULT($objdir) ! ! AC_ARG_WITH(pic, ! [ --with-pic try to use only PIC/non-PIC objects [default=use both]], ! pic_mode="$withval", pic_mode=default) ! test -z "$pic_mode" && pic_mode=default ! # We assume here that the value for lt_cv_prog_cc_pic will not be cached ! # in isolation, and that seeing it set (from the cache) indicates that ! # the associated values are set (in the cache) correctly too. ! AC_MSG_CHECKING([for $compiler option to produce PIC]) ! AC_CACHE_VAL(lt_cv_prog_cc_pic, ! [ lt_cv_prog_cc_pic= ! lt_cv_prog_cc_shlib= ! lt_cv_prog_cc_wl= ! lt_cv_prog_cc_static= ! lt_cv_prog_cc_no_builtin= ! lt_cv_prog_cc_can_build_shared=$can_build_shared ! if test "$GCC" = yes; then ! lt_cv_prog_cc_wl='-Wl,' ! lt_cv_prog_cc_static='-static' ! case $host_os in ! aix*) ! # Below there is a dirty hack to force normal static linking with -ldl ! # The problem is because libdl dynamically linked with both libc and ! # libC (AIX C++ library), which obviously doesn't included in libraries ! # list by gcc. This cause undefined symbols with -static flags. ! # This hack allows C programs to be linked with "-static -ldl", but ! # not sure about C++ programs. ! lt_cv_prog_cc_static="$lt_cv_prog_cc_static ${lt_cv_prog_cc_wl}-lC" ! ;; ! amigaos*) ! # FIXME: we need at least 68020 code to build shared libraries, but ! # adding the `-m68020' flag to GCC prevents building anything better, ! # like `-m68040'. ! lt_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4' ! ;; ! beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) ! # PIC is the default for these OSes. ! ;; ! darwin* | rhapsody*) ! # PIC is the default on this platform ! # Common symbols not allowed in MH_DYLIB files ! lt_cv_prog_cc_pic='-fno-common' ! ;; ! cygwin* | mingw* | 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_cv_prog_cc_pic='-DDLL_EXPORT' ! ;; ! sysv4*MP*) ! if test -d /usr/nec; then ! lt_cv_prog_cc_pic=-Kconform_pic ! fi ! ;; ! *) ! lt_cv_prog_cc_pic='-fPIC' ! ;; ! esac else ! # PORTME Check for PIC flags for the system compiler. case $host_os in ! aix3* | aix4* | aix5*) ! lt_cv_prog_cc_wl='-Wl,' ! # All AIX code is PIC. ! if test "$host_cpu" = ia64; then ! # AIX 5 now supports IA64 processor ! lt_cv_prog_cc_static='-Bstatic' else ! lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp' fi ;; ! hpux9* | hpux10* | hpux11*) ! # Is there a better lt_cv_prog_cc_static that works with the bundled CC? ! lt_cv_prog_cc_wl='-Wl,' ! lt_cv_prog_cc_static="${lt_cv_prog_cc_wl}-a ${lt_cv_prog_cc_wl}archive" ! lt_cv_prog_cc_pic='+Z' ! ;; ! ! irix5* | irix6* | nonstopux*) ! lt_cv_prog_cc_wl='-Wl,' ! lt_cv_prog_cc_static='-non_shared' ! # PIC (with -KPIC) is the default. ! ;; ! ! cygwin* | mingw* | 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_cv_prog_cc_pic='-DDLL_EXPORT' ! ;; ! ! newsos6) ! lt_cv_prog_cc_pic='-KPIC' ! lt_cv_prog_cc_static='-Bstatic' ! ;; ! ! osf3* | osf4* | osf5*) ! # All OSF/1 code is PIC. ! lt_cv_prog_cc_wl='-Wl,' ! lt_cv_prog_cc_static='-non_shared' ! ;; ! sco3.2v5*) ! lt_cv_prog_cc_pic='-Kpic' ! lt_cv_prog_cc_static='-dn' ! lt_cv_prog_cc_shlib='-belf' ! ;; ! solaris*) ! lt_cv_prog_cc_pic='-KPIC' ! lt_cv_prog_cc_static='-Bstatic' ! lt_cv_prog_cc_wl='-Wl,' ! ;; ! sunos4*) ! lt_cv_prog_cc_pic='-PIC' ! lt_cv_prog_cc_static='-Bstatic' ! lt_cv_prog_cc_wl='-Qoption ld ' ! ;; ! sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ! lt_cv_prog_cc_pic='-KPIC' ! lt_cv_prog_cc_static='-Bstatic' ! lt_cv_prog_cc_wl='-Wl,' ! ;; ! uts4*) ! lt_cv_prog_cc_pic='-pic' ! lt_cv_prog_cc_static='-Bstatic' ;; ! ! sysv4*MP*) ! if test -d /usr/nec ;then ! lt_cv_prog_cc_pic='-Kconform_pic' ! lt_cv_prog_cc_static='-Bstatic' fi ;; ! ! *) ! lt_cv_prog_cc_can_build_shared=no ;; esac ! fi ! ]) ! if test -z "$lt_cv_prog_cc_pic"; then ! AC_MSG_RESULT([none]) ! else ! AC_MSG_RESULT([$lt_cv_prog_cc_pic]) ! # Check to make sure the pic_flag actually works. ! AC_MSG_CHECKING([if $compiler PIC flag $lt_cv_prog_cc_pic works]) ! AC_CACHE_VAL(lt_cv_prog_cc_pic_works, [dnl ! save_CFLAGS="$CFLAGS" ! CFLAGS="$CFLAGS $lt_cv_prog_cc_pic -DPIC" ! AC_TRY_COMPILE([], [], [dnl ! case $host_os in ! hpux9* | hpux10* | hpux11*) ! # On HP-UX, both CC and GCC only warn that PIC is supported... then ! # they create non-PIC objects. So, if there were any warnings, we ! # assume that PIC is not supported. ! if test -s conftest.err; then ! lt_cv_prog_cc_pic_works=no ! else ! lt_cv_prog_cc_pic_works=yes ! fi ! ;; ! *) ! lt_cv_prog_cc_pic_works=yes ! ;; ! esac ! ], [dnl ! lt_cv_prog_cc_pic_works=no ! ]) ! CFLAGS="$save_CFLAGS" ! ]) ! ! if test "X$lt_cv_prog_cc_pic_works" = Xno; then ! lt_cv_prog_cc_pic= ! lt_cv_prog_cc_can_build_shared=no ! else ! lt_cv_prog_cc_pic=" $lt_cv_prog_cc_pic" ! fi ! ! AC_MSG_RESULT([$lt_cv_prog_cc_pic_works]) ! fi ! # Check for any special shared library compilation flags. ! if test -n "$lt_cv_prog_cc_shlib"; then ! AC_MSG_WARN([\`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries]) ! if echo "$old_CC $old_CFLAGS " | egrep -e "[[ ]]$lt_cv_prog_cc_shlib[[ ]]" >/dev/null; then : else ! AC_MSG_WARN([add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure]) ! lt_cv_prog_cc_can_build_shared=no fi ! fi ! ! AC_MSG_CHECKING([if $compiler static flag $lt_cv_prog_cc_static works]) ! AC_CACHE_VAL([lt_cv_prog_cc_static_works], [dnl ! lt_cv_prog_cc_static_works=no ! save_LDFLAGS="$LDFLAGS" ! LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static" ! AC_TRY_LINK([], [], [lt_cv_prog_cc_static_works=yes]) ! LDFLAGS="$save_LDFLAGS" ! ]) ! ! # Belt *and* braces to stop my trousers falling down: ! test "X$lt_cv_prog_cc_static_works" = Xno && lt_cv_prog_cc_static= ! AC_MSG_RESULT([$lt_cv_prog_cc_static_works]) ! ! pic_flag="$lt_cv_prog_cc_pic" ! special_shlib_compile_flags="$lt_cv_prog_cc_shlib" ! wl="$lt_cv_prog_cc_wl" ! link_static_flag="$lt_cv_prog_cc_static" ! no_builtin_flag="$lt_cv_prog_cc_no_builtin" ! can_build_shared="$lt_cv_prog_cc_can_build_shared" ! ! ! # Check to see if options -o and -c are simultaneously supported by compiler ! AC_MSG_CHECKING([if $compiler supports -c -o file.$ac_objext]) ! AC_CACHE_VAL([lt_cv_compiler_c_o], [ ! $rm -r conftest 2>/dev/null ! mkdir conftest ! cd conftest ! echo "int some_variable = 0;" > conftest.$ac_ext ! mkdir out ! # According to Tom Tromey, Ian Lance Taylor reported there are C compilers ! # that will create temporary files in the current directory regardless of ! # the output directory. Thus, making CWD read-only will cause this test ! # to fail, enabling locking or at least warning the user not to do parallel ! # builds. ! chmod -w . ! save_CFLAGS="$CFLAGS" ! CFLAGS="$CFLAGS -o out/conftest2.$ac_objext" ! compiler_c_o=no ! if { (eval echo configure:__oline__: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then ! # The compiler can only warn and ignore the option if not recognized ! # So say no if there are warnings ! if test -s out/conftest.err; then ! lt_cv_compiler_c_o=no ! else ! lt_cv_compiler_c_o=yes ! fi ! else ! # Append any errors to the config.log. ! cat out/conftest.err 1>&AC_FD_CC ! lt_cv_compiler_c_o=no ! fi ! CFLAGS="$save_CFLAGS" ! chmod u+w . ! $rm conftest* out/* ! rmdir out ! cd .. ! rmdir conftest ! $rm -r conftest 2>/dev/null ! ]) ! compiler_c_o=$lt_cv_compiler_c_o ! AC_MSG_RESULT([$compiler_c_o]) ! if test x"$compiler_c_o" = x"yes"; then ! # Check to see if we can write to a .lo ! AC_MSG_CHECKING([if $compiler supports -c -o file.lo]) ! AC_CACHE_VAL([lt_cv_compiler_o_lo], [ ! lt_cv_compiler_o_lo=no ! save_CFLAGS="$CFLAGS" ! CFLAGS="$CFLAGS -c -o conftest.lo" ! save_objext="$ac_objext" ! ac_objext=lo ! AC_TRY_COMPILE([], [int some_variable = 0;], [dnl ! # The compiler can only warn and ignore the option if not recognized ! # So say no if there are warnings ! if test -s conftest.err; then ! lt_cv_compiler_o_lo=no ! else ! lt_cv_compiler_o_lo=yes ! fi ! ]) ! ac_objext="$save_objext" ! CFLAGS="$save_CFLAGS" ! ]) ! compiler_o_lo=$lt_cv_compiler_o_lo ! AC_MSG_RESULT([$compiler_o_lo]) ! else ! compiler_o_lo=no ! fi ! # Check to see if we can do hard links to lock some files if needed ! hard_links="nottested" ! if test "$compiler_c_o" = no && test "$need_locks" != no; then ! # do not overwrite the value of need_locks provided by the user ! AC_MSG_CHECKING([if we can lock with hard links]) ! hard_links=yes ! $rm conftest* ! ln conftest.a conftest.b 2>/dev/null && hard_links=no ! touch conftest.a ! ln conftest.a conftest.b 2>&5 || hard_links=no ! ln conftest.a conftest.b 2>/dev/null && hard_links=no ! AC_MSG_RESULT([$hard_links]) ! if test "$hard_links" = no; then ! AC_MSG_WARN([\`$CC' does not support \`-c -o', so \`make -j' may be unsafe]) ! need_locks=warn ! fi ! else ! need_locks=no ! fi ! if test "$GCC" = yes; then ! # Check to see if options -fno-rtti -fno-exceptions are supported by compiler ! AC_MSG_CHECKING([if $compiler supports -fno-rtti -fno-exceptions]) ! echo "int some_variable = 0;" > conftest.$ac_ext ! save_CFLAGS="$CFLAGS" ! CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext" ! compiler_rtti_exceptions=no ! AC_TRY_COMPILE([], [int some_variable = 0;], [dnl ! # The compiler can only warn and ignore the option if not recognized ! # So say no if there are warnings ! if test -s conftest.err; then ! compiler_rtti_exceptions=no ! else ! compiler_rtti_exceptions=yes ! fi ! ]) ! CFLAGS="$save_CFLAGS" ! AC_MSG_RESULT([$compiler_rtti_exceptions]) ! if test "$compiler_rtti_exceptions" = "yes"; then ! no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions' else ! no_builtin_flag=' -fno-builtin' ! fi ! fi ! ! # See if the linker supports building shared libraries. ! AC_MSG_CHECKING([whether the linker ($LD) supports shared libraries]) ! ! allow_undefined_flag= ! no_undefined_flag= ! need_lib_prefix=unknown ! need_version=unknown ! # when you set need_version to no, make sure it does not cause -set_version ! # flags to be left without arguments ! archive_cmds= ! archive_expsym_cmds= ! old_archive_from_new_cmds= ! old_archive_from_expsyms_cmds= ! export_dynamic_flag_spec= ! whole_archive_flag_spec= ! thread_safe_flag_spec= ! hardcode_into_libs=no ! hardcode_libdir_flag_spec= ! hardcode_libdir_separator= ! hardcode_direct=no ! hardcode_minus_L=no ! hardcode_shlibpath_var=unsupported ! runpath_var= ! link_all_deplibs=unknown ! always_export_symbols=no ! export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols' ! # include_expsyms should be a list of space-separated symbols to be *always* ! # included in the symbol list ! include_expsyms= ! # exclude_expsyms can be an egrep regular expression of symbols to exclude ! # 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_" ! # 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. ! extract_expsyms_cmds= ! ! case $host_os in ! cygwin* | mingw* | pw32*) ! # FIXME: the MSVC++ port hasn't been tested in a loooong time ! # When not using gcc, we currently assume that we are using ! # Microsoft Visual C++. ! if test "$GCC" != yes; then ! with_gnu_ld=no fi ! ;; ! openbsd*) ! with_gnu_ld=no ! ;; ! esac ! ! ld_shlibs=yes ! if test "$with_gnu_ld" = yes; then ! # If archive_cmds runs LD, not CC, wlarc should be empty ! wlarc='${wl}' ! ! # See if GNU ld supports shared libraries. case $host_os in ! aix3* | aix4* | aix5*) ! # On AIX, the GNU linker is very broken ! # Note:Check GNU linker on AIX 5-IA64 when/if it becomes available. ! ld_shlibs=no ! cat <&2 ! ! *** Warning: the GNU linker, at least up to release 2.9.1, is reported ! *** to be unable to reliably create shared libraries on AIX. ! *** Therefore, libtool is disabling shared libraries support. If you ! *** really care for shared libraries, you may want to modify your PATH ! *** so that a non-GNU linker is found, and then restart. ! ! EOF ;; ! ! amigaos*) ! archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ! hardcode_libdir_flag_spec='-L$libdir' ! hardcode_minus_L=yes ! ! # Samuel A. Falvo II reports ! # that the semantics of dynamic libraries on AmigaOS, at least up ! # to version 4, is to share data among multiple programs linked ! # with the same dynamic library. Since this doesn't match the ! # behavior of shared libraries on other platforms, we can use ! # them. ! ld_shlibs=no ;; ! ! beos*) ! if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ! allow_undefined_flag=unsupported ! # Joseph Beckenbach says some releases of gcc ! # support --undefined. This deserves some investigation. FIXME ! archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! else ! ld_shlibs=no ! fi ;; ! cygwin* | mingw* | pw32*) ! # hardcode_libdir_flag_spec is actually meaningless, as there is ! # no search path for DLLs. ! hardcode_libdir_flag_spec='-L$libdir' ! allow_undefined_flag=unsupported ! always_export_symbols=yes ! ! extract_expsyms_cmds='test -f $output_objdir/impgen.c || \ ! sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //;s/^# *$//; p; }" -e d < $''0 > $output_objdir/impgen.c~ ! test -f $output_objdir/impgen.exe || (cd $output_objdir && \ ! if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \ ! else $CC -o impgen impgen.c ; fi)~ ! $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def' ! ! old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib' ! ! # cygwin and mingw dlls have different entry points and sets of symbols ! # to exclude. ! # FIXME: what about values for MSVC? ! dll_entry=__cygwin_dll_entry@12 ! dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12~ ! case $host_os in ! mingw*) ! # mingw values ! dll_entry=_DllMainCRTStartup@12 ! dll_exclude_symbols=DllMain@12,DllMainCRTStartup@12,DllEntryPoint@12~ ! ;; ! esac ! # mingw and cygwin differ, and it's simplest to just exclude the union ! # of the two symbol sets. ! dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12 ! ! # recent cygwin and mingw systems supply a stub DllMain which the user ! # can override, but on older systems we have to supply one (in ltdll.c) ! if test "x$lt_cv_need_dllmain" = "xyes"; then ! ltdll_obj='$output_objdir/$soname-ltdll.'"$ac_objext " ! ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $''0 > $output_objdir/$soname-ltdll.c~ ! test -f $output_objdir/$soname-ltdll.$ac_objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~' else ! ltdll_obj= ! ltdll_cmds= fi ! ! # Extract the symbol export list from an `--export-all' def file, ! # then regenerate the def file from the symbol export list, so that ! # the compiled dll only exports the symbol export list. ! # Be careful not to strip the DATA tag left be newer dlltools. ! export_symbols_cmds="$ltdll_cmds"' ! $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~ ! sed -e "1,/EXPORTS/d" -e "s/ @ [[0-9]]*//" -e "s/ *;.*$//" < $output_objdir/$soname-def > $export_symbols' ! ! # If the export-symbols file already is a .def file (1st line ! # is EXPORTS), use it as is. ! # If DATA tags from a recent dlltool are present, honour them! ! archive_expsym_cmds='if test "x`sed 1q $export_symbols`" = xEXPORTS; then ! cp $export_symbols $output_objdir/$soname-def; ! else ! echo EXPORTS > $output_objdir/$soname-def; ! _lt_hint=1; ! cat $export_symbols | while read symbol; do ! set dummy \$symbol; ! case \[$]# in ! 2) echo " \[$]2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;; ! 4) echo " \[$]2 \[$]3 \[$]4 ; " >> $output_objdir/$soname-def; _lt_hint=`expr \$_lt_hint - 1`;; ! *) echo " \[$]2 @ \$_lt_hint \[$]3 ; " >> $output_objdir/$soname-def;; ! esac; ! _lt_hint=`expr 1 + \$_lt_hint`; ! done; ! fi~ ! '"$ltdll_cmds"' ! $CC -Wl,--base-file,$output_objdir/$soname-base '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ ! $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp~ ! $CC -Wl,--base-file,$output_objdir/$soname-base $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ ! $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp --output-lib $output_objdir/$libname.dll.a~ ! $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags' ;; ! ! netbsd*) ! if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ! archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' ! wlarc= ! else ! archive_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! archive_expsym_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ! fi ;; ! solaris* | sysv5*) ! if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then ! ld_shlibs=no ! cat <&2 ! ! *** Warning: The releases 2.8.* of the GNU linker cannot reliably ! *** create shared libraries on Solaris systems. Therefore, libtool ! *** is disabling shared libraries support. We urge you to upgrade GNU ! *** binutils to release 2.9.1 or newer. Another option is to modify ! *** your PATH or compiler configuration so that the native linker is ! *** used, and then restart. ! ! EOF ! elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ! archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ! else ! ld_shlibs=no ! fi ! ;; ! sunos4*) ! archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' ! wlarc= ! hardcode_direct=yes ! hardcode_shlibpath_var=no ;; - *) ! if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ! archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ! else ! ld_shlibs=no ! fi ;; esac ! if test "$ld_shlibs" = yes; then ! runpath_var=LD_RUN_PATH ! hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' ! export_dynamic_flag_spec='${wl}--export-dynamic' ! case $host_os in ! cygwin* | mingw* | pw32*) ! # dlltool doesn't understand --whole-archive et. al. ! whole_archive_flag_spec= ! ;; ! *) ! # ancient GNU ld didn't support --whole-archive et. al. ! if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then ! whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' ! else ! whole_archive_flag_spec= ! fi ! ;; ! esac ! fi ! else ! # PORTME fill in a description of your system's linker (not GNU ld) ! case $host_os in ! aix3*) ! allow_undefined_flag=unsupported ! always_export_symbols=yes ! archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' ! # Note: this linker hardcodes the directories in LIBPATH if there ! # are no directories specified by -L. ! hardcode_minus_L=yes ! if test "$GCC" = yes && test -z "$link_static_flag"; then ! # Neither direct hardcoding nor static linking is supported with a ! # broken collect2. ! hardcode_direct=unsupported ! fi ! ;; ! aix4* | aix5*) ! 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. ! aix_use_runtimelinking=no ! exp_sym_flag='-Bexport' ! no_entry_flag="" ! else ! aix_use_runtimelinking=no ! # 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*) ! for ld_flag in $LDFLAGS; do ! case $ld_flag in ! *-brtl*) ! aix_use_runtimelinking=yes ! break ! ;; ! esac ! done ! esac ! exp_sym_flag='-bexport' ! no_entry_flag='-bnoentry' ! fi ! # When large executables or shared objects are built, AIX ld can ! # have problems creating the table of contents. If linking a library ! # or program results in "error TOC overflow" add -mminimal-toc to ! # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not ! # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. ! hardcode_direct=yes ! archive_cmds='' ! hardcode_libdir_separator=':' ! if test "$GCC" = yes; then ! case $host_os in aix4.[[012]]|aix4.[[012]].*) ! collect2name=`${CC} -print-prog-name=collect2` ! if test -f "$collect2name" && \ ! strings "$collect2name" | grep resolve_lib_name >/dev/null ! then ! # We have reworked collect2 ! hardcode_direct=yes ! else ! # We have old collect2 ! hardcode_direct=unsupported ! # It fails to find uninstalled libraries when the uninstalled ! # path is not listed in the libpath. Setting hardcode_minus_L ! # to unsupported forces relinking ! hardcode_minus_L=yes ! hardcode_libdir_flag_spec='-L$libdir' ! hardcode_libdir_separator= ! fi esac ! shared_flag='-shared' ! else ! # not using gcc ! if test "$host_cpu" = ia64; then ! shared_flag='${wl}-G' ! else ! if test "$aix_use_runtimelinking" = yes; then ! shared_flag='${wl}-G' ! else ! shared_flag='${wl}-bM:SRE' ! fi ! fi ! fi ! # It seems that -bexpall can do strange things, so it is better to ! # generate a list of symbols to export. ! always_export_symbols=yes ! if test "$aix_use_runtimelinking" = yes; then ! # Warning - without using the other runtime loading flags (-brtl), ! # -berok will link without error, but may produce a broken library. ! allow_undefined_flag='-berok' ! hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib' ! archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" ! else ! if test "$host_cpu" = ia64; then ! hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' ! allow_undefined_flag="-z nodefs" ! archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname ${wl}-h$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" ! else ! hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib' ! # Warning - without using the other run time loading flags, ! # -berok will link without error, but may produce a broken library. ! allow_undefined_flag='${wl}-berok' ! # This is a bit strange, but is similar to how AIX traditionally builds ! # it's shared libraries. ! archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $objdir/$libname$release.a $objdir/$soname' ! fi ! fi ! ;; ! amigaos*) ! archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ! hardcode_libdir_flag_spec='-L$libdir' ! hardcode_minus_L=yes ! # see comment about different semantics on the GNU ld section ! ld_shlibs=no ! ;; ! cygwin* | mingw* | pw32*) ! # When not using gcc, we currently assume that we are using ! # Microsoft Visual C++. ! # hardcode_libdir_flag_spec is actually meaningless, as there is ! # no search path for DLLs. ! hardcode_libdir_flag_spec=' ' ! allow_undefined_flag=unsupported ! # Tell ltmain to make .lib files, not .a files. ! libext=lib ! # FIXME: Setting linknames here is a bad hack. ! archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames=' ! # 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' ! fix_srcfile_path='`cygpath -w "$srcfile"`' ! ;; ! ! darwin* | rhapsody*) ! case "$host_os" in ! rhapsody* | darwin1.[[012]]) ! allow_undefined_flag='-undefined suppress' ! ;; ! *) # Darwin 1.3 on ! allow_undefined_flag='-flat_namespace -undefined suppress' ! ;; ! esac ! # FIXME: Relying on posixy $() will cause problems for ! # cross-compilation, but unfortunately the echo tests do not ! # yet detect zsh echo's removal of \ escapes. Also zsh mangles ! # `"' quotes if we put them in here... so don't! ! archive_cmds='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs && $CC $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib ${lib}-master.o $deplibs$linker_flags $(test .$module != .yes && echo -install_name $rpath/$soname $verstring)' ! # We need to add '_' to the symbols in $export_symbols first ! #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols' ! hardcode_direct=yes ! hardcode_shlibpath_var=no ! whole_archive_flag_spec='-all_load $convenience' ! ;; ! ! freebsd1*) ! ld_shlibs=no ! ;; ! ! # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor ! # support. Future versions do this automatically, but an explicit c++rt0.o ! # does not break anything, and helps significantly (at the cost of a little ! # extra space). ! freebsd2.2*) ! archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' ! hardcode_libdir_flag_spec='-R$libdir' ! hardcode_direct=yes ! hardcode_shlibpath_var=no ! ;; ! # Unfortunately, older versions of FreeBSD 2 do not have this feature. ! freebsd2*) ! archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' ! hardcode_direct=yes ! hardcode_minus_L=yes ! hardcode_shlibpath_var=no ! ;; ! # FreeBSD 3 and greater uses gcc -shared to do shared libraries. ! freebsd*) ! archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' ! hardcode_libdir_flag_spec='-R$libdir' ! hardcode_direct=yes ! hardcode_shlibpath_var=no ! ;; ! hpux9* | hpux10* | hpux11*) case $host_os in ! hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;; ! *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;; esac ! hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' ! hardcode_libdir_separator=: ! hardcode_direct=yes ! hardcode_minus_L=yes # Not in the search PATH, but as the default ! # location of the library. ! export_dynamic_flag_spec='${wl}-E' ! ;; ! irix5* | irix6* | nonstopux*) ! if test "$GCC" = yes; then ! archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ! hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ! else ! archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ! hardcode_libdir_flag_spec='-rpath $libdir' ! fi ! hardcode_libdir_separator=: ! link_all_deplibs=yes ! ;; ! netbsd*) ! if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ! archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out ! else ! archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF ! fi ! hardcode_libdir_flag_spec='-R$libdir' ! hardcode_direct=yes ! hardcode_shlibpath_var=no ! ;; ! newsos6) ! archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ! hardcode_direct=yes ! hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ! hardcode_libdir_separator=: ! hardcode_shlibpath_var=no ! ;; - 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' - 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 - ;; ! os2*) ! hardcode_libdir_flag_spec='-L$libdir' ! hardcode_minus_L=yes ! allow_undefined_flag=unsupported ! archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' ! old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ! ;; ! osf3*) ! if test "$GCC" = yes; then ! allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' ! archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' else ! allow_undefined_flag=' -expect_unresolved \*' ! archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' fi ! hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ! hardcode_libdir_separator=: ! ;; ! osf4* | osf5*) # as osf3* with the addition of -msym flag ! if test "$GCC" = yes; then ! allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' ! archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ! hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ! else ! allow_undefined_flag=' -expect_unresolved \*' ! archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ! archive_expsym_cmds='for i in `cat $export_symbols`; do printf "-exported_symbol " >> $lib.exp; echo "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ ! $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' ! #Both c and cxx compiler support -rpath directly ! hardcode_libdir_flag_spec='-rpath $libdir' fi - hardcode_libdir_separator=: - ;; ! sco3.2v5*) ! archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ! hardcode_shlibpath_var=no ! runpath_var=LD_RUN_PATH ! hardcode_runpath_var=yes ! export_dynamic_flag_spec='${wl}-Bexport' ! ;; ! solaris*) ! # gcc --version < 3.0 without binutils cannot create self contained ! # shared libraries reliably, requiring libgcc.a to resolve some of ! # the object symbols generated in some cases. Libraries that use ! # assert need libgcc.a to resolve __eprintf, for example. Linking ! # a copy of libgcc.a into every shared library to guarantee resolving ! # such symbols causes other problems: According to Tim Van Holder ! # , C++ libraries end up with a separate ! # (to the application) exception stack for one thing. ! no_undefined_flag=' -z defs' ! if test "$GCC" = yes; then ! case `$CC --version 2>/dev/null` in ! [[12]].*) ! cat <&2 ! *** Warning: Releases of GCC earlier than version 3.0 cannot reliably ! *** create self contained shared libraries on Solaris systems, without ! *** introducing a dependency on libgcc.a. Therefore, libtool is disabling ! *** -no-undefined support, which will at least allow you to build shared ! *** libraries. However, you may find that when you link such libraries ! *** into an application without using GCC, you have to manually add ! *** \`gcc --print-libgcc-file-name\` to the link command. We urge you to ! *** upgrade to a newer version of GCC. Another option is to rebuild your ! *** current GCC to use the GNU linker from GNU binutils 2.9.1 or newer. ! EOF ! no_undefined_flag= ;; - esac - fi - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_shlibpath_var=no - case $host_os in - solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; - *) # Supported since Solaris 2.6 (maybe 2.5.1?) - whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; - esac - link_all_deplibs=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - sysv4) - case $host_vendor in - sni) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' - reload_cmds='$CC -r -o $output$reload_objs' - hardcode_direct=no - ;; - motorola) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=no #Motorola manual says yes, but my tests say they lie - ;; - esac - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var=no - ;; - - sysv4.3*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - export_dynamic_flag_spec='-Bexport' - ;; - - sysv5*) - no_undefined_flag=' -z text' - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - hardcode_libdir_flag_spec= - hardcode_shlibpath_var=no - runpath_var='LD_RUN_PATH' - ;; - - uts4*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; ! dgux*) ! archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ! hardcode_libdir_flag_spec='-L$libdir' ! hardcode_shlibpath_var=no ! ;; ! sysv4*MP*) ! if test -d /usr/nec; then ! archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ! hardcode_shlibpath_var=no ! runpath_var=LD_RUN_PATH ! hardcode_runpath_var=yes ! ld_shlibs=yes fi - ;; - - sysv4.2uw2*) - archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_minus_L=no - hardcode_shlibpath_var=no - hardcode_runpath_var=yes - runpath_var=LD_RUN_PATH - ;; - - sysv5uw7* | unixware7*) - no_undefined_flag='${wl}-z ${wl}text' - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ! runpath_var='LD_RUN_PATH' ! hardcode_shlibpath_var=no ! ;; ! ! *) ! ld_shlibs=no ! ;; ! esac ! fi ! AC_MSG_RESULT([$ld_shlibs]) ! test "$ld_shlibs" = no && can_build_shared=no ! ! # Check hardcoding attributes. ! AC_MSG_CHECKING([how to hardcode library paths into programs]) ! hardcode_action= ! if test -n "$hardcode_libdir_flag_spec" || \ ! test -n "$runpath_var"; then ! # We can hardcode non-existant directories. ! if test "$hardcode_direct" != no && ! # If the only mechanism to avoid hardcoding is shlibpath_var, we ! # have to relink, otherwise we might link with an installed library ! # when we should be linking with a yet-to-be-installed one ! ## test "$hardcode_shlibpath_var" != no && ! test "$hardcode_minus_L" != no; then ! # Linking always hardcodes the temporary library directory. ! hardcode_action=relink else ! # We can link without hardcoding, and we can hardcode nonexisting dirs. ! hardcode_action=immediate fi - else - # We cannot hardcode anything, or else we can only hardcode existing - # directories. - hardcode_action=unsupported fi ! AC_MSG_RESULT([$hardcode_action]) - striplib= - old_striplib= - AC_MSG_CHECKING([whether stripping libraries is possible]) - if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - fi ! reload_cmds='$LD$reload_flag -o $output$reload_objs' ! test -z "$deplibs_check_method" && deplibs_check_method=unknown - # PORTME Fill in your ld.so characteristics - AC_MSG_CHECKING([dynamic linker characteristics]) - library_names_spec= - libname_spec='lib$name' - soname_spec= - postinstall_cmds= - postuninstall_cmds= - finish_cmds= - finish_eval= - shlibpath_var= - shlibpath_overrides_runpath=unknown - version_type=none - dynamic_linker="$host_os ld.so" - sys_lib_dlsearch_path_spec="/lib /usr/lib" - sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" ! case $host_os in ! aix3*) ! version_type=linux ! library_names_spec='${libname}${release}.so$versuffix $libname.a' ! shlibpath_var=LIBPATH - # AIX has no versioning support, so we append a major version to the name. - soname_spec='${libname}${release}.so$major' - ;; ! aix4* | aix5*) ! version_type=linux ! need_lib_prefix=no ! need_version=no ! hardcode_into_libs=yes ! if test "$host_cpu" = ia64; then ! # AIX 5 supports IA64 ! library_names_spec='${libname}${release}.so$major ${libname}${release}.so$versuffix $libname.so' ! shlibpath_var=LD_LIBRARY_PATH ! else ! # With GCC up to 2.95.x, collect2 would create an import file ! # for dependence libraries. The import file would start with ! # the line `#! .'. This would cause the generated library to ! # depend on `.', always an invalid library. This was fixed in ! # development snapshots of GCC prior to 3.0. ! case $host_os in ! aix4 | aix4.[[01]] | aix4.[[01]].*) ! if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' ! echo ' yes ' ! echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then ! : ! else ! can_build_shared=no fi ! ;; ! esac ! # AIX (on Power*) has no versioning support, so currently we can ! # not hardcode correct soname into executable. Probably we can ! # add versioning support to collect2, so additional links can ! # be useful in future. ! if test "$aix_use_runtimelinking" = yes; then ! # If using run time linking (on AIX 4.2 or later) use lib.so ! # instead of lib.a to let people know that these are not ! # typical AIX shared libraries. ! library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ! else ! # We preserve .a as extension for shared libraries through AIX4.2 ! # and later when we are not doing run time linking. ! library_names_spec='${libname}${release}.a $libname.a' ! soname_spec='${libname}${release}.so$major' ! fi ! shlibpath_var=LIBPATH ! fi ! hardcode_into_libs=yes ! ;; - amigaos*) - library_names_spec='$libname.ixlibrary $libname.a' - # Create ${libname}_ixlibrary.a entries in /sys/libs. - finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' - ;; ! beos*) ! library_names_spec='${libname}.so' ! dynamic_linker="$host_os ld.so" ! shlibpath_var=LIBRARY_PATH ! ;; - bsdi4*) - version_type=linux - need_version=no - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' - shlibpath_var=LD_LIBRARY_PATH - sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" - sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - export_dynamic_flag_spec=-rdynamic - # the default ld.so.conf also contains /usr/contrib/lib and - # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow - # libtool to hard-code these into programs - ;; ! cygwin* | mingw* | pw32*) ! version_type=windows ! need_version=no ! need_lib_prefix=no ! case $GCC,$host_os in ! yes,cygwin*) ! library_names_spec='$libname.dll.a' ! soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll' ! postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i;echo \$dlname'\''`~ ! dldir=$destdir/`dirname \$dlpath`~ ! test -d \$dldir || mkdir -p \$dldir~ ! $install_prog .libs/$dlname \$dldir/$dlname' ! postuninstall_cmds='dldll=`bash 2>&1 -c '\''. $file; echo \$dlname'\''`~ ! dlpath=$dir/\$dldll~ ! $rm \$dlpath' ! ;; ! yes,mingw*) ! library_names_spec='${libname}`echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll' ! sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g" -e "s,=/,/,g"` ! ;; ! yes,pw32*) ! library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll' ! ;; ! *) ! library_names_spec='${libname}`echo ${release} | sed -e 's/[[.]]/-/g'`${versuffix}.dll $libname.lib' ! ;; ! esac ! dynamic_linker='Win32 ld.exe' ! # FIXME: first we should search . and the directory the executable is in ! shlibpath_var=PATH ! ;; - darwin* | rhapsody*) - dynamic_linker="$host_os dyld" - version_type=darwin - need_lib_prefix=no - need_version=no - # FIXME: Relying on posixy $() will cause problems for - # cross-compilation, but unfortunately the echo tests do not - # yet detect zsh echo's removal of \ escapes. - library_names_spec='${libname}${release}${versuffix}.$(test .$module = .yes && echo so || echo dylib) ${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib) ${libname}.$(test .$module = .yes && echo so || echo dylib)' - soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib)' - shlibpath_overrides_runpath=yes - shlibpath_var=DYLD_LIBRARY_PATH - ;; ! freebsd1*) ! dynamic_linker=no ! ;; ! freebsd*) ! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` ! version_type=freebsd-$objformat ! case $version_type in ! freebsd-elf*) ! library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' ! need_version=no ! need_lib_prefix=no ! ;; ! freebsd-*) ! library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix' ! need_version=yes ;; ! esac ! shlibpath_var=LD_LIBRARY_PATH ! case $host_os in ! freebsd2*) ! shlibpath_overrides_runpath=yes ! ;; ! *) ! shlibpath_overrides_runpath=no ! hardcode_into_libs=yes ! ;; ! esac ! ;; - gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so' - soname_spec='${libname}${release}.so$major' - shlibpath_var=LD_LIBRARY_PATH - hardcode_into_libs=yes - ;; ! hpux9* | hpux10* | hpux11*) ! # Give a soname corresponding to the major version so that dld.sl refuses to ! # link against other versions. ! dynamic_linker="$host_os dld.sl" ! version_type=sunos ! need_lib_prefix=no ! need_version=no ! shlibpath_var=SHLIB_PATH ! shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH ! library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' ! soname_spec='${libname}${release}.sl$major' ! # HP-UX runs *really* slowly unless shared libraries are mode 555. ! postinstall_cmds='chmod 555 $lib' ! ;; - irix5* | irix6* | nonstopux*) - case $host_os in - nonstopux*) version_type=nonstopux ;; - *) version_type=irix ;; - esac - need_lib_prefix=no - need_version=no - soname_spec='${libname}${release}.so$major' - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so' - case $host_os in - irix5* | nonstopux*) - libsuff= shlibsuff= - ;; - *) - case $LD in # libtool.m4 will add one of these switches to LD - *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;; - *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; - *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;; - *) libsuff= shlibsuff= libmagic=never-match;; - esac - ;; - esac - shlibpath_var=LD_LIBRARY${shlibsuff}_PATH - shlibpath_overrides_runpath=no - sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" - sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" - ;; ! # No shared lib support for Linux oldld, aout, or coff. ! linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) ! dynamic_linker=no ! ;; - # This must be Linux ELF. - linux-gnu*) - version_type=linux - need_lib_prefix=no - need_version=no - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - soname_spec='${libname}${release}.so$major' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' - shlibpath_var=LD_LIBRARY_PATH - shlibpath_overrides_runpath=no - # This implies no fast_install, which is unacceptable. - # Some rework will be needed to allow for fast_install - # before this can be enabled. - hardcode_into_libs=yes ! # We used to test for /lib/ld.so.1 and disable shared libraries on ! # powerpc, because MkLinux only supported shared libraries with the ! # GNU dynamic linker. Since this was broken with cross compilers, ! # most powerpc-linux boxes support dynamic linking these days and ! # people can always --disable-shared, the test was removed, and we ! # assume the GNU/Linux dynamic linker is in use. ! dynamic_linker='GNU/Linux ld.so' ! ;; ! netbsd*) ! version_type=sunos ! need_lib_prefix=no ! need_version=no ! if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ! library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ! finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ! dynamic_linker='NetBSD (a.out) ld.so' ! else ! library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so' ! soname_spec='${libname}${release}.so$major' ! dynamic_linker='NetBSD ld.elf_so' ! fi ! shlibpath_var=LD_LIBRARY_PATH ! shlibpath_overrides_runpath=yes ! hardcode_into_libs=yes ! ;; ! newsos6) ! version_type=linux ! library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ! shlibpath_var=LD_LIBRARY_PATH ! shlibpath_overrides_runpath=yes ! ;; ! openbsd*) ! version_type=sunos ! need_lib_prefix=no ! need_version=no ! if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ! case "$host_os" in ! openbsd2.[[89]] | openbsd2.[[89]].*) ! shlibpath_overrides_runpath=no ! ;; ! *) ! shlibpath_overrides_runpath=yes ! ;; esac ! else ! shlibpath_overrides_runpath=yes ! fi ! library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ! finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ! shlibpath_var=LD_LIBRARY_PATH ! ;; ! os2*) ! libname_spec='$name' ! need_lib_prefix=no ! library_names_spec='$libname.dll $libname.a' ! dynamic_linker='OS/2 ld.exe' ! shlibpath_var=LIBPATH ! ;; ! osf3* | osf4* | osf5*) ! version_type=osf ! need_version=no ! soname_spec='${libname}${release}.so$major' ! library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ! shlibpath_var=LD_LIBRARY_PATH ! sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" ! sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ! hardcode_into_libs=yes ! ;; ! sco3.2v5*) ! version_type=osf ! soname_spec='${libname}${release}.so$major' ! library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ! shlibpath_var=LD_LIBRARY_PATH ! ;; ! solaris*) ! version_type=linux ! need_lib_prefix=no ! need_version=no ! library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ! soname_spec='${libname}${release}.so$major' ! shlibpath_var=LD_LIBRARY_PATH ! shlibpath_overrides_runpath=yes ! hardcode_into_libs=yes ! # ldd complains unless libraries are executable ! postinstall_cmds='chmod +x $lib' ! ;; ! sunos4*) ! version_type=sunos ! library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' ! finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' ! shlibpath_var=LD_LIBRARY_PATH ! shlibpath_overrides_runpath=yes ! if test "$with_gnu_ld" = yes; then ! need_lib_prefix=no ! fi ! need_version=yes ! ;; ! sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ! version_type=linux ! library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ! soname_spec='${libname}${release}.so$major' ! shlibpath_var=LD_LIBRARY_PATH ! case $host_vendor in ! sni) ! shlibpath_overrides_runpath=no ! need_lib_prefix=no ! export_dynamic_flag_spec='${wl}-Blargedynsym' ! runpath_var=LD_RUN_PATH ! ;; ! siemens) ! need_lib_prefix=no ! ;; ! motorola) ! need_lib_prefix=no ! need_version=no ! shlibpath_overrides_runpath=no ! sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ! ;; ! esac ! ;; ! uts4*) ! version_type=linux ! library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ! soname_spec='${libname}${release}.so$major' ! shlibpath_var=LD_LIBRARY_PATH ! ;; ! dgux*) ! version_type=linux ! need_lib_prefix=no ! need_version=no ! library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ! soname_spec='${libname}${release}.so$major' ! shlibpath_var=LD_LIBRARY_PATH ! ;; ! sysv4*MP*) ! if test -d /usr/nec ;then ! version_type=linux ! library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' ! soname_spec='$libname.so.$major' ! shlibpath_var=LD_LIBRARY_PATH ! fi ;; ! *) ! dynamic_linker=no ;; esac ! AC_MSG_RESULT([$dynamic_linker]) ! test "$dynamic_linker" = no && can_build_shared=no - # Report the final consequences. AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) --- 1611,4539 ---- fi ])# AC_LIBTOOL_DLOPEN_SELF ! # AC_LIBTOOL_PROG_CC_C_O([TAGNAME]) ! # --------------------------------- ! # 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_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 ! $rm -r conftest 2>/dev/null ! mkdir conftest ! cd conftest ! mkdir out ! printf "$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 ! # (2) before a word containing "conftest.", or (3) at the end. ! # Note that $ac_compile itself does not contain backslashes and begins ! # with a dollar sign (not a hyphen), so the echo should work correctly. ! lt_compile=`echo "$ac_compile" | $SED \ ! -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:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD) ! (eval "$lt_compile" 2>out/conftest.err) ! ac_status=$? ! cat out/conftest.err >&AS_MESSAGE_LOG_FD ! echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD ! if (exit $ac_status) && test -s out/conftest2.$ac_objext ! then ! # The compiler can only warn and ignore the option if not recognized ! # So say no if there are warnings ! $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp ! $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 ! if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then ! _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes ! fi ! fi ! chmod u+w . 2>&AS_MESSAGE_LOG_FD ! $rm conftest* ! # SGI C++ compiler will create directory out/ii_files/ for ! # template instantiation ! test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files ! $rm out/* && rmdir out ! cd .. ! rmdir conftest ! $rm conftest* ! ]) ! ])# AC_LIBTOOL_PROG_CC_C_O ! # AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME]) ! # ----------------------------------------- ! # Check to see if we can do hard links to lock some files if needed ! AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], ! [AC_REQUIRE([_LT_AC_LOCK])dnl ! hard_links="nottested" ! if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then ! # do not overwrite the value of need_locks provided by the user ! AC_MSG_CHECKING([if we can lock with hard links]) ! hard_links=yes ! $rm conftest* ! ln conftest.a conftest.b 2>/dev/null && hard_links=no ! touch conftest.a ! ln conftest.a conftest.b 2>&5 || hard_links=no ! ln conftest.a conftest.b 2>/dev/null && hard_links=no ! AC_MSG_RESULT([$hard_links]) ! if test "$hard_links" = no; then ! AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) ! need_locks=warn ! fi ! else ! need_locks=no ! fi ! ])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS ! # AC_LIBTOOL_OBJDIR ! # ----------------- ! AC_DEFUN([AC_LIBTOOL_OBJDIR], ! [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], ! [rm -f .libs 2>/dev/null ! mkdir .libs 2>/dev/null ! if test -d .libs; then ! lt_cv_objdir=.libs else ! # MS-DOS does not allow filenames that begin with a dot. ! lt_cv_objdir=_libs fi + rmdir .libs 2>/dev/null]) + objdir=$lt_cv_objdir + ])# AC_LIBTOOL_OBJDIR ! # AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME]) ! # ---------------------------------------------- ! # Check hardcoding attributes. ! AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], ! [AC_MSG_CHECKING([how to hardcode library paths into programs]) ! _LT_AC_TAGVAR(hardcode_action, $1)= ! if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \ ! test -n "$_LT_AC_TAGVAR(runpath_var, $1)" || \ ! test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then ! ! # We can hardcode non-existant directories. ! if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no && ! # If the only mechanism to avoid hardcoding is shlibpath_var, we ! # have to relink, otherwise we might link with an installed library ! # when we should be linking with a yet-to-be-installed one ! ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no && ! test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then ! # Linking always hardcodes the temporary library directory. ! _LT_AC_TAGVAR(hardcode_action, $1)=relink ! else ! # We can link without hardcoding, and we can hardcode nonexisting dirs. ! _LT_AC_TAGVAR(hardcode_action, $1)=immediate fi ! else ! # We cannot hardcode anything, or else we can only hardcode existing ! # directories. ! _LT_AC_TAGVAR(hardcode_action, $1)=unsupported ! fi ! AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)]) ! if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then ! # Fast installation is not supported ! enable_fast_install=no ! elif test "$shlibpath_overrides_runpath" = yes || ! test "$enable_shared" = no; then ! # Fast installation is not necessary ! enable_fast_install=needless ! fi ! ])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH ! ! # AC_LIBTOOL_SYS_LIB_STRIP ! # ------------------------ ! AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP], ! [striplib= ! old_striplib= ! AC_MSG_CHECKING([whether stripping libraries is possible]) ! if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then ! test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" ! test -z "$striplib" && striplib="$STRIP --strip-unneeded" ! AC_MSG_RESULT([yes]) ! else ! # FIXME - insert some real tests, host_os isn't really good enough case $host_os in ! darwin*) ! if test -n "$STRIP" ; then ! striplib="$STRIP -x" ! AC_MSG_RESULT([yes]) ! else ! AC_MSG_RESULT([no]) ! fi ! ;; ! *) ! AC_MSG_RESULT([no]) ;; esac fi + ])# AC_LIBTOOL_SYS_LIB_STRIP ! # AC_LIBTOOL_SYS_DYNAMIC_LINKER ! # ----------------------------- ! # PORTME Fill in your ld.so characteristics ! AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], ! [AC_MSG_CHECKING([dynamic linker characteristics]) ! library_names_spec= ! libname_spec='lib$name' ! soname_spec= ! shrext_cmds=".so" ! postinstall_cmds= ! postuninstall_cmds= ! finish_cmds= ! finish_eval= ! shlibpath_var= ! shlibpath_overrides_runpath=unknown ! 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 ! # when you set need_version to no, make sure it does not cause -set_version ! # flags to be left without arguments ! need_version=unknown ! case $host_os in ! aix3*) ! version_type=linux ! library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' ! shlibpath_var=LIBPATH ! # AIX 3 has no versioning support, so we append a major version to the name. ! soname_spec='${libname}${release}${shared_ext}$major' ! ;; ! aix4* | aix5*) ! version_type=linux ! need_lib_prefix=no ! need_version=no ! hardcode_into_libs=yes ! if test "$host_cpu" = ia64; then ! # AIX 5 supports IA64 ! library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' ! shlibpath_var=LD_LIBRARY_PATH else ! # With GCC up to 2.95.x, collect2 would create an import file ! # for dependence libraries. The import file would start with ! # the line `#! .'. This would cause the generated library to ! # depend on `.', always an invalid library. This was fixed in ! # development snapshots of GCC prior to 3.0. case $host_os in ! aix4 | aix4.[[01]] | aix4.[[01]].*) ! if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' ! echo ' yes ' ! echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then ! : else ! can_build_shared=no fi ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; ! amigaos*) ! library_names_spec='$libname.ixlibrary $libname.a' ! # Create ${libname}_ixlibrary.a entries in /sys/libs. ! finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ! ;; ! beos*) ! library_names_spec='${libname}${shared_ext}' ! dynamic_linker="$host_os ld.so" ! shlibpath_var=LIBRARY_PATH ! ;; ! bsdi[[45]]*) ! version_type=linux ! need_version=no ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ! soname_spec='${libname}${release}${shared_ext}$major' ! finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' ! shlibpath_var=LD_LIBRARY_PATH ! sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" ! sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" ! # the default ld.so.conf also contains /usr/contrib/lib and ! # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow ! # libtool to hard-code these into programs ! ;; ! cygwin* | mingw* | pw32*) ! version_type=windows ! shrext_cmds=".dll" ! need_version=no ! need_lib_prefix=no ! case $GCC,$host_os in ! yes,cygwin* | yes,mingw* | yes,pw32*) ! library_names_spec='$libname.dll.a' ! # DLL is installed to $(libdir)/../bin by postinstall_cmds ! postinstall_cmds='base_file=`basename \${file}`~ ! dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ ! dldir=$destdir/`dirname \$dlpath`~ ! test -d \$dldir || mkdir -p \$dldir~ ! $install_prog $dir/$dlname \$dldir/$dlname~ ! chmod a+x \$dldir/$dlname' ! postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ ! dlpath=$dir/\$dldll~ ! $rm \$dlpath' ! shlibpath_overrides_runpath=yes ! case $host_os in ! cygwin*) ! # Cygwin DLLs use 'cyg' prefix rather than 'lib' ! soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ! sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" ;; ! mingw*) ! # MinGW DLLs use traditional 'lib' prefix ! soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ! 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 ';[c-zC-Z]:/' >/dev/null]; then ! # It is most probably a Windows format PATH printed by ! # mingw gcc, but we are running on Cygwin. Gcc prints its search ! # path with ; separators, and with drive letters. We can handle the ! # drive letters (cygwin fileutils understands them), so leave them, ! # especially as we might pass files found there to a mingw objdump, ! # which wouldn't understand a cygwinified path. Ahh. ! 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 ;; ! pw32*) ! # pw32 DLLs use 'pw' prefix rather than 'lib' ! library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' ;; esac ! ;; ! *) ! library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' ! ;; ! esac ! dynamic_linker='Win32 ld.exe' ! # FIXME: first we should search . and the directory the executable is in ! shlibpath_var=PATH ! ;; ! darwin* | rhapsody*) ! dynamic_linker="$host_os dyld" ! version_type=darwin ! need_lib_prefix=no ! need_version=no ! library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' ! soname_spec='${libname}${release}${major}$shared_ext' ! 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' ! ;; ! dgux*) ! version_type=linux ! need_lib_prefix=no ! need_version=no ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' ! soname_spec='${libname}${release}${shared_ext}$major' ! shlibpath_var=LD_LIBRARY_PATH ! ;; ! freebsd1*) ! dynamic_linker=no ! ;; ! kfreebsd*-gnu) ! version_type=linux ! need_lib_prefix=no ! need_version=no ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' ! soname_spec='${libname}${release}${shared_ext}$major' ! shlibpath_var=LD_LIBRARY_PATH ! shlibpath_overrides_runpath=no ! hardcode_into_libs=yes ! dynamic_linker='GNU ld.so' ! ;; ! freebsd* | dragonfly*) ! # DragonFly does not have aout. When/if they implement a new ! # versioning mechanism, adjust this. ! if test -x /usr/bin/objformat; then ! objformat=`/usr/bin/objformat` else ! case $host_os in ! freebsd[[123]]*) objformat=aout ;; ! *) objformat=elf ;; ! esac fi ! version_type=freebsd-$objformat ! case $version_type in ! freebsd-elf*) ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' ! need_version=no ! need_lib_prefix=no ! ;; ! freebsd-*) ! library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' ! need_version=yes ! ;; ! esac ! shlibpath_var=LD_LIBRARY_PATH case $host_os in ! freebsd2*) ! shlibpath_overrides_runpath=yes ;; ! freebsd3.[[01]]* | freebsdelf3.[[01]]*) ! shlibpath_overrides_runpath=yes ! hardcode_into_libs=yes ;; ! freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ ! freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) ! shlibpath_overrides_runpath=no ! hardcode_into_libs=yes ! ;; ! freebsd*) # from 4.6 on ! shlibpath_overrides_runpath=yes ! hardcode_into_libs=yes ;; + esac + ;; ! gnu*) ! version_type=linux ! need_lib_prefix=no ! need_version=no ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' ! soname_spec='${libname}${release}${shared_ext}$major' ! shlibpath_var=LD_LIBRARY_PATH ! hardcode_into_libs=yes ! ;; ! hpux9* | hpux10* | hpux11*) ! # Give a soname corresponding to the major version so that dld.sl refuses to ! # link against other versions. ! version_type=sunos ! need_lib_prefix=no ! need_version=no ! case $host_cpu in ! ia64*) ! shrext_cmds='.so' ! hardcode_into_libs=yes ! dynamic_linker="$host_os dld.so" ! shlibpath_var=LD_LIBRARY_PATH ! shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ! soname_spec='${libname}${release}${shared_ext}$major' ! if test "X$HPUX_IA64_MODE" = X32; then ! sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" else ! sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" fi ! sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; ! hppa*64*) ! shrext_cmds='.sl' ! hardcode_into_libs=yes ! dynamic_linker="$host_os dld.sl" ! shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH ! shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ! soname_spec='${libname}${release}${shared_ext}$major' ! sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" ! sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ! ;; ! *) ! shrext_cmds='.sl' ! dynamic_linker="$host_os dld.sl" ! shlibpath_var=SHLIB_PATH ! shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ! soname_spec='${libname}${release}${shared_ext}$major' ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; ! interix3*) ! version_type=linux ! need_lib_prefix=no ! need_version=no ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' ! soname_spec='${libname}${release}${shared_ext}$major' ! dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' ! shlibpath_var=LD_LIBRARY_PATH ! shlibpath_overrides_runpath=no ! hardcode_into_libs=yes ! ;; ! irix5* | irix6* | nonstopux*) ! case $host_os in ! nonstopux*) version_type=nonstopux ;; ! *) ! if test "$lt_cv_prog_gnu_ld" = yes; then ! version_type=linux ! else ! version_type=irix ! fi ;; ! esac ! need_lib_prefix=no ! need_version=no ! soname_spec='${libname}${release}${shared_ext}$major' ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' ! case $host_os in ! irix5* | nonstopux*) ! libsuff= shlibsuff= ;; *) ! case $LD in # libtool.m4 will add one of these switches to LD ! *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") ! libsuff= shlibsuff= libmagic=32-bit;; ! *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") ! libsuff=32 shlibsuff=N32 libmagic=N32;; ! *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") ! libsuff=64 shlibsuff=64 libmagic=64-bit;; ! *) libsuff= shlibsuff= libmagic=never-match;; ! esac ;; esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; ! # No shared lib support for Linux oldld, aout, or coff. ! linux*oldld* | linux*aout* | linux*coff*) ! dynamic_linker=no ! ;; ! # This must be Linux ELF. ! linux*) ! version_type=linux ! need_lib_prefix=no ! need_version=no ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ! soname_spec='${libname}${release}${shared_ext}$major' ! finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' ! shlibpath_var=LD_LIBRARY_PATH ! shlibpath_overrides_runpath=no ! # This implies no fast_install, which is unacceptable. ! # Some rework will be needed to allow for fast_install ! # before this can be enabled. ! hardcode_into_libs=yes ! # 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' ' '` ! sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" ! fi ! # We used to test for /lib/ld.so.1 and disable shared libraries on ! # powerpc, because MkLinux only supported shared libraries with the ! # GNU dynamic linker. Since this was broken with cross compilers, ! # most powerpc-linux boxes support dynamic linking these days and ! # people can always --disable-shared, the test was removed, and we ! # assume the GNU/Linux dynamic linker is in use. ! dynamic_linker='GNU/Linux ld.so' ! ;; ! knetbsd*-gnu) ! version_type=linux ! need_lib_prefix=no ! need_version=no ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' ! soname_spec='${libname}${release}${shared_ext}$major' ! shlibpath_var=LD_LIBRARY_PATH ! shlibpath_overrides_runpath=no ! hardcode_into_libs=yes ! dynamic_linker='GNU ld.so' ! ;; ! netbsd*) ! version_type=sunos ! need_lib_prefix=no ! need_version=no ! if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' ! finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ! dynamic_linker='NetBSD (a.out) ld.so' ! else ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' ! soname_spec='${libname}${release}${shared_ext}$major' ! dynamic_linker='NetBSD ld.elf_so' ! fi ! shlibpath_var=LD_LIBRARY_PATH ! shlibpath_overrides_runpath=yes ! hardcode_into_libs=yes ! ;; ! ! newsos6) ! version_type=linux ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ! shlibpath_var=LD_LIBRARY_PATH ! shlibpath_overrides_runpath=yes ! ;; ! ! nto-qnx*) ! version_type=linux ! need_lib_prefix=no ! need_version=no ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ! soname_spec='${libname}${release}${shared_ext}$major' ! shlibpath_var=LD_LIBRARY_PATH ! shlibpath_overrides_runpath=yes ! ;; ! ! openbsd*) ! version_type=sunos ! sys_lib_dlsearch_path_spec="/usr/lib" ! need_lib_prefix=no ! # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. ! case $host_os in ! openbsd3.3 | openbsd3.3.*) need_version=yes ;; ! *) need_version=no ;; ! esac ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' ! finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ! shlibpath_var=LD_LIBRARY_PATH ! if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ! case $host_os in ! openbsd2.[[89]] | openbsd2.[[89]].*) ! shlibpath_overrides_runpath=no ! ;; ! *) ! shlibpath_overrides_runpath=yes ! ;; esac + else + shlibpath_overrides_runpath=yes + fi + ;; ! os2*) ! libname_spec='$name' ! shrext_cmds=".dll" ! need_lib_prefix=no ! library_names_spec='$libname${shared_ext} $libname.a' ! dynamic_linker='OS/2 ld.exe' ! shlibpath_var=LIBPATH ! ;; ! osf3* | osf4* | osf5*) ! version_type=osf ! need_lib_prefix=no ! need_version=no ! soname_spec='${libname}${release}${shared_ext}$major' ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ! shlibpath_var=LD_LIBRARY_PATH ! sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" ! sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ! ;; ! solaris*) ! version_type=linux ! need_lib_prefix=no ! need_version=no ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ! soname_spec='${libname}${release}${shared_ext}$major' ! shlibpath_var=LD_LIBRARY_PATH ! shlibpath_overrides_runpath=yes ! hardcode_into_libs=yes ! # ldd complains unless libraries are executable ! postinstall_cmds='chmod +x $lib' ! ;; ! sunos4*) ! version_type=sunos ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' ! finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' ! shlibpath_var=LD_LIBRARY_PATH ! shlibpath_overrides_runpath=yes ! if test "$with_gnu_ld" = yes; then ! need_lib_prefix=no ! fi ! need_version=yes ! ;; ! sysv4 | sysv4.3*) ! version_type=linux ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ! soname_spec='${libname}${release}${shared_ext}$major' ! shlibpath_var=LD_LIBRARY_PATH ! case $host_vendor in ! sni) ! shlibpath_overrides_runpath=no ! need_lib_prefix=no ! export_dynamic_flag_spec='${wl}-Blargedynsym' ! runpath_var=LD_RUN_PATH ! ;; ! siemens) ! need_lib_prefix=no ! ;; ! motorola) ! need_lib_prefix=no ! need_version=no ! shlibpath_overrides_runpath=no ! sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ! ;; ! esac ! ;; ! sysv4*MP*) ! if test -d /usr/nec ;then ! version_type=linux ! library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' ! soname_spec='$libname${shared_ext}.$major' ! shlibpath_var=LD_LIBRARY_PATH ! fi ! ;; ! sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) ! version_type=freebsd-elf ! need_lib_prefix=no ! need_version=no ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' ! soname_spec='${libname}${release}${shared_ext}$major' ! shlibpath_var=LD_LIBRARY_PATH ! hardcode_into_libs=yes ! if test "$with_gnu_ld" = yes; then ! sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' ! shlibpath_overrides_runpath=no ! else ! sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' ! shlibpath_overrides_runpath=yes case $host_os in ! sco3.2v5*) ! sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ! ;; esac ! fi ! sys_lib_dlsearch_path_spec='/usr/lib' ! ;; ! uts4*) ! version_type=linux ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ! soname_spec='${libname}${release}${shared_ext}$major' ! shlibpath_var=LD_LIBRARY_PATH ! ;; ! *) ! dynamic_linker=no ! ;; ! esac ! AC_MSG_RESULT([$dynamic_linker]) ! test "$dynamic_linker" = no && can_build_shared=no ! 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" ! fi ! ])# AC_LIBTOOL_SYS_DYNAMIC_LINKER ! # _LT_AC_TAGCONFIG ! # ---------------- ! AC_DEFUN([_LT_AC_TAGCONFIG], ! [AC_ARG_WITH([tags], ! [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@], ! [include additional configurations @<:@automatic@:>@])], ! [tagnames="$withval"]) ! ! if test -f "$ltmain" && test -n "$tagnames"; then ! if test ! -f "${ofile}"; then ! AC_MSG_WARN([output file `$ofile' does not exist]) ! fi ! if test -z "$LTCC"; then ! eval "`$SHELL ${ofile} --config | grep '^LTCC='`" ! if test -z "$LTCC"; then ! AC_MSG_WARN([output file `$ofile' does not look like a libtool script]) else ! AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile']) fi ! fi ! if test -z "$LTCFLAGS"; then ! eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" ! fi ! # Extract list of available tagged configurations in $ofile. ! # Note that this assumes the entire list is on one line. ! available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` ! ! lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," ! for tagname in $tagnames; do ! IFS="$lt_save_ifs" ! # Check whether tagname contains only valid characters ! case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in ! "") ;; ! *) AC_MSG_ERROR([invalid tag name: $tagname]) ! ;; ! esac ! if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null ! then ! AC_MSG_ERROR([tag name \"$tagname\" already exists]) fi ! # Update the list of available tags. ! if test -n "$tagname"; then ! echo appending configuration tag \"$tagname\" to $ofile ! ! case $tagname in ! CXX) ! if test -n "$CXX" && ( test "X$CXX" != "Xno" && ! ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || ! (test "X$CXX" != "Xg++"))) ; then ! AC_LIBTOOL_LANG_CXX_CONFIG ! else ! tagname="" ! fi ! ;; ! F77) ! if test -n "$F77" && test "X$F77" != "Xno"; then ! AC_LIBTOOL_LANG_F77_CONFIG ! else ! tagname="" ! fi ! ;; ! GCJ) ! if test -n "$GCJ" && test "X$GCJ" != "Xno"; then ! AC_LIBTOOL_LANG_GCJ_CONFIG ! else ! tagname="" ! fi ! ;; ! RC) ! AC_LIBTOOL_LANG_RC_CONFIG ;; ! *) ! AC_MSG_ERROR([Unsupported tag name: $tagname]) ! ;; ! esac ! # Append the new tag name to the list of available tags. ! if test -n "$tagname" ; then ! available_tags="$available_tags $tagname" fi fi ! done ! IFS="$lt_save_ifs" ! # Now substitute the updated list of available tags. ! if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then ! mv "${ofile}T" "$ofile" ! chmod +x "$ofile" else ! rm -f "${ofile}T" ! AC_MSG_ERROR([unable to update list of available tagged configurations.]) fi fi ! ])# _LT_AC_TAGCONFIG ! # AC_LIBTOOL_DLOPEN ! # ----------------- ! # enable checks for dlopen support ! AC_DEFUN([AC_LIBTOOL_DLOPEN], ! [AC_BEFORE([$0],[AC_LIBTOOL_SETUP]) ! ])# AC_LIBTOOL_DLOPEN ! # AC_LIBTOOL_WIN32_DLL ! # -------------------- ! # declare package support for building win32 DLLs ! AC_DEFUN([AC_LIBTOOL_WIN32_DLL], ! [AC_BEFORE([$0], [AC_LIBTOOL_SETUP]) ! ])# AC_LIBTOOL_WIN32_DLL ! # AC_ENABLE_SHARED([DEFAULT]) ! # --------------------------- ! # implement the --enable-shared flag ! # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. ! AC_DEFUN([AC_ENABLE_SHARED], ! [define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl ! AC_ARG_ENABLE([shared], ! [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@], ! [build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])], ! [p=${PACKAGE-default} ! case $enableval in ! yes) enable_shared=yes ;; ! no) enable_shared=no ;; ! *) ! enable_shared=no ! # Look at the argument we got. We use all the common list separators. ! lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," ! for pkg in $enableval; do ! IFS="$lt_save_ifs" ! if test "X$pkg" = "X$p"; then ! enable_shared=yes fi ! done ! IFS="$lt_save_ifs" ! ;; ! esac], ! [enable_shared=]AC_ENABLE_SHARED_DEFAULT) ! ])# AC_ENABLE_SHARED ! # AC_DISABLE_SHARED ! # ----------------- ! # set the default shared flag to --disable-shared ! AC_DEFUN([AC_DISABLE_SHARED], ! [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ! AC_ENABLE_SHARED(no) ! ])# AC_DISABLE_SHARED ! # AC_ENABLE_STATIC([DEFAULT]) ! # --------------------------- ! # implement the --enable-static flag ! # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. ! AC_DEFUN([AC_ENABLE_STATIC], ! [define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl ! AC_ARG_ENABLE([static], ! [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@], ! [build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])], ! [p=${PACKAGE-default} ! case $enableval in ! yes) enable_static=yes ;; ! no) enable_static=no ;; ! *) ! enable_static=no ! # Look at the argument we got. We use all the common list separators. ! lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," ! for pkg in $enableval; do ! IFS="$lt_save_ifs" ! if test "X$pkg" = "X$p"; then ! enable_static=yes ! fi ! done ! IFS="$lt_save_ifs" ! ;; ! esac], ! [enable_static=]AC_ENABLE_STATIC_DEFAULT) ! ])# AC_ENABLE_STATIC ! # AC_DISABLE_STATIC ! # ----------------- ! # set the default static flag to --disable-static ! AC_DEFUN([AC_DISABLE_STATIC], ! [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ! AC_ENABLE_STATIC(no) ! ])# AC_DISABLE_STATIC ! ! # AC_ENABLE_FAST_INSTALL([DEFAULT]) ! # --------------------------------- ! # implement the --enable-fast-install flag ! # DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. ! AC_DEFUN([AC_ENABLE_FAST_INSTALL], ! [define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl ! AC_ARG_ENABLE([fast-install], ! [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], ! [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], ! [p=${PACKAGE-default} ! case $enableval in ! yes) enable_fast_install=yes ;; ! no) enable_fast_install=no ;; ! *) ! enable_fast_install=no ! # Look at the argument we got. We use all the common list separators. ! lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," ! for pkg in $enableval; do ! IFS="$lt_save_ifs" ! if test "X$pkg" = "X$p"; then ! enable_fast_install=yes ! fi ! done ! IFS="$lt_save_ifs" ;; ! esac], ! [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT) ! ])# AC_ENABLE_FAST_INSTALL ! # AC_DISABLE_FAST_INSTALL ! # ----------------------- ! # set the default to --disable-fast-install ! AC_DEFUN([AC_DISABLE_FAST_INSTALL], ! [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ! AC_ENABLE_FAST_INSTALL(no) ! ])# AC_DISABLE_FAST_INSTALL ! # AC_LIBTOOL_PICMODE([MODE]) ! # -------------------------- ! # implement the --with-pic flag ! # MODE is either `yes' or `no'. If omitted, it defaults to `both'. ! AC_DEFUN([AC_LIBTOOL_PICMODE], ! [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ! pic_mode=ifelse($#,1,$1,default) ! ])# AC_LIBTOOL_PICMODE ! # AC_PROG_EGREP ! # ------------- ! # This is predefined starting with Autoconf 2.54, so this conditional ! # definition can be removed once we require Autoconf 2.54 or later. ! m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP], ! [AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep], ! [if echo a | (grep -E '(a|b)') >/dev/null 2>&1 ! then ac_cv_prog_egrep='grep -E' ! else ac_cv_prog_egrep='egrep' ! fi]) ! EGREP=$ac_cv_prog_egrep ! AC_SUBST([EGREP]) ! ])]) ! ! ! # AC_PATH_TOOL_PREFIX ! # ------------------- ! # find a file program which can recognise shared library ! AC_DEFUN([AC_PATH_TOOL_PREFIX], ! [AC_REQUIRE([AC_PROG_EGREP])dnl ! AC_MSG_CHECKING([for $1]) ! AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, ! [case $MAGIC_CMD in ! [[\\/*] | ?:[\\/]*]) ! lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ! ;; ! *) ! lt_save_MAGIC_CMD="$MAGIC_CMD" ! lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ! dnl $ac_dummy forces splitting on constant user-supplied paths. ! dnl POSIX.2 word splitting is done only on the output of word expansions, ! dnl not every word. This closes a longstanding sh security hole. ! ac_dummy="ifelse([$2], , $PATH, [$2])" ! for ac_dir in $ac_dummy; do ! IFS="$lt_save_ifs" ! test -z "$ac_dir" && ac_dir=. ! if test -f $ac_dir/$1; then ! lt_cv_path_MAGIC_CMD="$ac_dir/$1" ! if test -n "$file_magic_test_file"; then ! case $deplibs_check_method in ! "file_magic "*) ! file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` ! MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ! if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | ! $EGREP "$file_magic_regex" > /dev/null; then ! : ! else ! cat <&2 ! ! *** Warning: the command libtool uses to detect shared libraries, ! *** $file_magic_cmd, produces output that libtool cannot recognize. ! *** The result is that libtool may fail to recognize shared libraries ! *** as such. This will affect the creation of libtool libraries that ! *** depend on shared libraries, but programs linked with such libtool ! *** libraries will work regardless of this problem. Nevertheless, you ! *** may want to report the problem to your system manager and/or to ! *** bug-libtool@gnu.org ! ! EOF ! fi ;; ! esac ! fi ! break ! fi ! done ! IFS="$lt_save_ifs" ! MAGIC_CMD="$lt_save_MAGIC_CMD" ! ;; ! esac]) ! MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ! if test -n "$MAGIC_CMD"; then ! AC_MSG_RESULT($MAGIC_CMD) ! else ! AC_MSG_RESULT(no) ! fi ! ])# AC_PATH_TOOL_PREFIX ! ! ! # AC_PATH_MAGIC ! # ------------- ! # find a file program which can recognise 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 ! if test -n "$ac_tool_prefix"; then ! AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) ! else ! MAGIC_CMD=: ! fi ! fi ! ])# AC_PATH_MAGIC ! ! ! # AC_PROG_LD ! # ---------- ! # find the pathname to the GNU or non-GNU linker ! AC_DEFUN([AC_PROG_LD], ! [AC_ARG_WITH([gnu-ld], ! [AC_HELP_STRING([--with-gnu-ld], ! [assume the C compiler uses GNU ld @<:@default=no@:>@])], ! [test "$withval" = no || with_gnu_ld=yes], ! [with_gnu_ld=no]) ! AC_REQUIRE([LT_AC_PROG_SED])dnl ! AC_REQUIRE([AC_PROG_CC])dnl ! AC_REQUIRE([AC_CANONICAL_HOST])dnl ! AC_REQUIRE([AC_CANONICAL_BUILD])dnl ! ac_prog=ld ! if test "$GCC" = yes; then ! # Check if gcc -print-prog-name=ld gives a path. ! AC_MSG_CHECKING([for ld used by $CC]) ! case $host in ! *-*-mingw*) ! # gcc leaves a trailing carriage return which upsets mingw ! ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; ! *) ! ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; ! esac ! case $ac_prog in ! # Accept absolute paths. ! [[\\/]]* | ?:[[\\/]]*) ! re_direlt='/[[^/]][[^/]]*/\.\./' ! # Canonicalize the pathname of ld ! ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` ! while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ! ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` ! done ! test -z "$LD" && LD="$ac_prog" ! ;; ! "") ! # If it fails, then pretend we aren't using GCC. ! ac_prog=ld ! ;; ! *) ! # If it is relative, then search for the first ld in PATH. ! with_gnu_ld=unknown ! ;; ! esac ! elif test "$with_gnu_ld" = yes; then ! AC_MSG_CHECKING([for GNU ld]) ! else ! AC_MSG_CHECKING([for non-GNU ld]) ! fi ! AC_CACHE_VAL(lt_cv_path_LD, ! [if test -z "$LD"; then ! lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ! for ac_dir in $PATH; do ! IFS="$lt_save_ifs" ! test -z "$ac_dir" && ac_dir=. ! if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then ! lt_cv_path_LD="$ac_dir/$ac_prog" ! # Check to see if the program is GNU ld. I'd rather use --version, ! # but apparently some variants of GNU ld only accept -v. ! # Break only if it was the GNU/non-GNU ld that we prefer. ! case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null; then ! case $host_cpu in ! i*86 ) ! # Not sure whether the presence of OpenBSD here was a mistake. ! # Let's accept both of them until this is cleared up. ! lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' ! lt_cv_file_magic_cmd=/usr/bin/file ! lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ! ;; ! esac ! else ! lt_cv_deplibs_check_method=pass_all ! fi ! ;; ! ! gnu*) ! lt_cv_deplibs_check_method=pass_all ! ;; ! ! hpux10.20* | hpux11*) ! lt_cv_file_magic_cmd=/usr/bin/file ! case $host_cpu in ! ia64*) ! lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' ! lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ! ;; ! hppa*64*) ! [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]'] ! lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ! ;; ! *) ! lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' ! lt_cv_file_magic_test_file=/usr/lib/libc.sl ! ;; ! esac ! ;; ! ! interix3*) ! # 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)$' ! ;; ! ! irix5* | irix6* | nonstopux*) ! case $LD in ! *-32|*"-32 ") libmagic=32-bit;; ! *-n32|*"-n32 ") libmagic=N32;; ! *-64|*"-64 ") libmagic=64-bit;; ! *) libmagic=never-match;; ! esac ! lt_cv_deplibs_check_method=pass_all ! ;; ! ! # This must be Linux ELF. ! linux*) ! lt_cv_deplibs_check_method=pass_all ! ;; ! ! netbsd*) ! if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then ! lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' ! else ! lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' ! fi ! ;; ! ! newos6*) ! lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' ! lt_cv_file_magic_cmd=/usr/bin/file ! lt_cv_file_magic_test_file=/usr/lib/libnls.so ! ;; ! ! nto-qnx*) ! lt_cv_deplibs_check_method=unknown ! ;; ! ! openbsd*) ! if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ! lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' ! else ! lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' ! fi ! ;; ! ! osf3* | osf4* | osf5*) ! lt_cv_deplibs_check_method=pass_all ! ;; ! ! solaris*) ! lt_cv_deplibs_check_method=pass_all ! ;; ! ! sysv4 | sysv4.3*) ! case $host_vendor in ! motorola) ! lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' ! lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ! ;; ! ncr) ! lt_cv_deplibs_check_method=pass_all ! ;; ! sequent) ! lt_cv_file_magic_cmd='/bin/file' ! lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ! ;; ! sni) ! lt_cv_file_magic_cmd='/bin/file' ! lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" ! lt_cv_file_magic_test_file=/lib/libc.so ! ;; ! siemens) ! lt_cv_deplibs_check_method=pass_all ! ;; ! pc) ! lt_cv_deplibs_check_method=pass_all ! ;; ! esac ! ;; ! ! sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) ! lt_cv_deplibs_check_method=pass_all ! ;; ! esac ! ]) ! file_magic_cmd=$lt_cv_file_magic_cmd ! deplibs_check_method=$lt_cv_deplibs_check_method ! test -z "$deplibs_check_method" && deplibs_check_method=unknown ! ])# AC_DEPLIBS_CHECK_METHOD ! ! ! # AC_PROG_NM ! # ---------- ! # find the pathname to a BSD-compatible name lister ! AC_DEFUN([AC_PROG_NM], ! [AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM, ! [if test -n "$NM"; then ! # Let the user override the test. ! lt_cv_path_NM="$NM" ! else ! lt_nm_to_check="${ac_tool_prefix}nm" ! 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_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ! for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do ! IFS="$lt_save_ifs" ! test -z "$ac_dir" && ac_dir=. ! tmp_nm="$ac_dir/$lt_tmp_nm" ! if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then ! # Check to see if the nm accepts a BSD-compat flag. ! # Adding the `sed 1q' prevents false positives on HP-UX, which says: ! # nm: unknown option "B" ignored ! # Tru64's nm complains that /dev/null is an invalid object file ! case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in ! */dev/null* | *'Invalid file or object type'*) ! lt_cv_path_NM="$tmp_nm -B" ! break ! ;; ! *) ! case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in ! */dev/null*) ! lt_cv_path_NM="$tmp_nm -p" ! break ! ;; ! *) ! lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but ! continue # so that we can try to find one that supports BSD flags ! ;; ! esac ! ;; ! esac ! fi ! done ! IFS="$lt_save_ifs" ! done ! test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm ! fi]) ! NM="$lt_cv_path_NM" ! ])# AC_PROG_NM ! ! ! # AC_CHECK_LIBM ! # ------------- ! # check for math library ! AC_DEFUN([AC_CHECK_LIBM], ! [AC_REQUIRE([AC_CANONICAL_HOST])dnl ! LIBM= ! case $host in ! *-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) ! # These system don't have libm, or don't need it ! ;; ! *-ncr-sysv4.3*) ! AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") ! AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ! ;; ! *) ! AC_CHECK_LIB(m, cos, LIBM="-lm") ! ;; ! esac ! ])# AC_CHECK_LIBM ! ! ! # AC_LIBLTDL_CONVENIENCE([DIRECTORY]) ! # ----------------------------------- ! # sets LIBLTDL to the link flags for the libltdl convenience library and ! # LTDLINCL to the include flags for the libltdl header and adds ! # --enable-ltdl-convenience to the configure arguments. Note that ! # AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, ! # it is assumed to be `libltdl'. LIBLTDL will be prefixed with ! # '${top_builddir}/' and LTDLINCL will be prefixed with '${top_srcdir}/' ! # (note the single quotes!). If your package is not flat and you're not ! # using automake, define top_builddir and top_srcdir appropriately in ! # the Makefiles. ! AC_DEFUN([AC_LIBLTDL_CONVENIENCE], ! [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ! case $enable_ltdl_convenience in ! no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; ! "") enable_ltdl_convenience=yes ! ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; ! esac ! LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la ! LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) ! # For backwards non-gettext consistent compatibility... ! INCLTDL="$LTDLINCL" ! ])# AC_LIBLTDL_CONVENIENCE ! ! ! # AC_LIBLTDL_INSTALLABLE([DIRECTORY]) ! # ----------------------------------- ! # sets LIBLTDL to the link flags for the libltdl installable library and ! # LTDLINCL to the include flags for the libltdl header and adds ! # --enable-ltdl-install to the configure arguments. Note that ! # AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided, ! # and an installed libltdl is not found, it is assumed to be `libltdl'. ! # LIBLTDL will be prefixed with '${top_builddir}/'# and LTDLINCL with ! # '${top_srcdir}/' (note the single quotes!). If your package is not ! # flat and you're not using automake, define top_builddir and top_srcdir ! # appropriately in the Makefiles. ! # In the future, this macro may have to be called after AC_PROG_LIBTOOL. ! AC_DEFUN([AC_LIBLTDL_INSTALLABLE], ! [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ! AC_CHECK_LIB(ltdl, lt_dlinit, ! [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], ! [if test x"$enable_ltdl_install" = xno; then ! AC_MSG_WARN([libltdl not installed, but installation disabled]) ! else ! enable_ltdl_install=yes ! fi ! ]) ! if test x"$enable_ltdl_install" = x"yes"; then ! ac_configure_args="$ac_configure_args --enable-ltdl-install" ! LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la ! LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) ! else ! ac_configure_args="$ac_configure_args --enable-ltdl-install=no" ! LIBLTDL="-lltdl" ! LTDLINCL= ! fi ! # For backwards non-gettext consistent compatibility... ! INCLTDL="$LTDLINCL" ! ])# AC_LIBLTDL_INSTALLABLE ! ! ! # AC_LIBTOOL_CXX ! # -------------- ! # enable support for C++ libraries ! AC_DEFUN([AC_LIBTOOL_CXX], ! [AC_REQUIRE([_LT_AC_LANG_CXX]) ! ])# AC_LIBTOOL_CXX ! ! ! # _LT_AC_LANG_CXX ! # --------------- ! AC_DEFUN([_LT_AC_LANG_CXX], ! [AC_REQUIRE([AC_PROG_CXX]) ! AC_REQUIRE([_LT_AC_PROG_CXXCPP]) ! _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}CXX]) ! ])# _LT_AC_LANG_CXX ! ! # _LT_AC_PROG_CXXCPP ! # ------------------ ! AC_DEFUN([_LT_AC_PROG_CXXCPP], ! [ ! AC_REQUIRE([AC_PROG_CXX]) ! if test -n "$CXX" && ( test "X$CXX" != "Xno" && ! ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || ! (test "X$CXX" != "Xg++"))) ; then ! AC_PROG_CXXCPP ! fi ! ])# _LT_AC_PROG_CXXCPP ! ! # AC_LIBTOOL_F77 ! # -------------- ! # enable support for Fortran 77 libraries ! AC_DEFUN([AC_LIBTOOL_F77], ! [AC_REQUIRE([_LT_AC_LANG_F77]) ! ])# AC_LIBTOOL_F77 ! ! ! # _LT_AC_LANG_F77 ! # --------------- ! AC_DEFUN([_LT_AC_LANG_F77], ! [AC_REQUIRE([AC_PROG_F77]) ! _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}F77]) ! ])# _LT_AC_LANG_F77 ! ! ! # AC_LIBTOOL_GCJ ! # -------------- ! # enable support for GCJ libraries ! AC_DEFUN([AC_LIBTOOL_GCJ], ! [AC_REQUIRE([_LT_AC_LANG_GCJ]) ! ])# AC_LIBTOOL_GCJ ! ! ! # _LT_AC_LANG_GCJ ! # --------------- ! AC_DEFUN([_LT_AC_LANG_GCJ], ! [AC_PROVIDE_IFELSE([AC_PROG_GCJ],[], ! [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[], ! [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[], ! [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])], ! [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])], ! [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])]) ! _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}GCJ]) ! ])# _LT_AC_LANG_GCJ ! ! ! # AC_LIBTOOL_RC ! # ------------- ! # enable support for Windows resource files ! AC_DEFUN([AC_LIBTOOL_RC], ! [AC_REQUIRE([LT_AC_PROG_RC]) ! _LT_AC_SHELL_INIT([tagnames=${tagnames+${tagnames},}RC]) ! ])# AC_LIBTOOL_RC ! ! ! # AC_LIBTOOL_LANG_C_CONFIG ! # ------------------------ ! # Ensure that the configuration vars for the C compiler are ! # suitably defined. Those variables are subsequently used by ! # AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. ! AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG]) ! AC_DEFUN([_LT_AC_LANG_C_CONFIG], ! [lt_save_CC="$CC" ! AC_LANG_PUSH(C) ! ! # Source file extension for C test sources. ! ac_ext=c ! ! # Object file extension for compiled C test sources. ! objext=o ! _LT_AC_TAGVAR(objext, $1)=$objext ! ! # Code to be used in simple compile tests ! lt_simple_compile_test_code="int some_variable = 0;\n" ! ! # Code to be used in simple link tests ! lt_simple_link_test_code='int main(){return(0);}\n' ! ! _LT_AC_SYS_COMPILER ! ! # save warnings/boilerplate of simple test code ! _LT_COMPILER_BOILERPLATE ! _LT_LINKER_BOILERPLATE ! ! AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) ! AC_LIBTOOL_PROG_COMPILER_PIC($1) ! AC_LIBTOOL_PROG_CC_C_O($1) ! AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) ! AC_LIBTOOL_PROG_LD_SHLIBS($1) ! AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) ! AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) ! AC_LIBTOOL_SYS_LIB_STRIP ! AC_LIBTOOL_DLOPEN_SELF ! ! # Report which library types will actually be built ! AC_MSG_CHECKING([if libtool supports shared libraries]) ! AC_MSG_RESULT([$can_build_shared]) ! ! AC_MSG_CHECKING([whether to build shared libraries]) ! test "$can_build_shared" = "no" && enable_shared=no ! ! # On AIX, shared libraries and static libraries use the same namespace, and ! # are all built from PIC. ! case $host_os in ! aix3*) ! test "$enable_shared" = yes && enable_static=no ! if test -n "$RANLIB"; then ! archive_cmds="$archive_cmds~\$RANLIB \$lib" ! postinstall_cmds='$RANLIB $lib' ! fi ! ;; ! ! aix4* | aix5*) ! if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then ! test "$enable_shared" = yes && enable_static=no ! fi ! ;; ! esac ! AC_MSG_RESULT([$enable_shared]) ! ! AC_MSG_CHECKING([whether to build static libraries]) ! # Make sure either enable_shared or enable_static is yes. ! test "$enable_shared" = yes || enable_static=yes ! AC_MSG_RESULT([$enable_static]) ! ! AC_LIBTOOL_CONFIG($1) ! ! AC_LANG_POP ! CC="$lt_save_CC" ! ])# AC_LIBTOOL_LANG_C_CONFIG ! ! ! # AC_LIBTOOL_LANG_CXX_CONFIG ! # -------------------------- ! # Ensure that the configuration vars for the C compiler are ! # suitably defined. Those variables are subsequently used by ! # AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. ! AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)]) ! AC_DEFUN([_LT_AC_LANG_CXX_CONFIG], ! [AC_LANG_PUSH(C++) ! AC_REQUIRE([AC_PROG_CXX]) ! AC_REQUIRE([_LT_AC_PROG_CXXCPP]) ! ! _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ! _LT_AC_TAGVAR(allow_undefined_flag, $1)= ! _LT_AC_TAGVAR(always_export_symbols, $1)=no ! _LT_AC_TAGVAR(archive_expsym_cmds, $1)= ! _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= ! _LT_AC_TAGVAR(hardcode_direct, $1)=no ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= ! _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= ! _LT_AC_TAGVAR(hardcode_minus_L, $1)=no ! _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported ! _LT_AC_TAGVAR(hardcode_automatic, $1)=no ! _LT_AC_TAGVAR(module_cmds, $1)= ! _LT_AC_TAGVAR(module_expsym_cmds, $1)= ! _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown ! _LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds ! _LT_AC_TAGVAR(no_undefined_flag, $1)= ! _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= ! _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no ! ! # Dependencies to place before and after the object being linked: ! _LT_AC_TAGVAR(predep_objects, $1)= ! _LT_AC_TAGVAR(postdep_objects, $1)= ! _LT_AC_TAGVAR(predeps, $1)= ! _LT_AC_TAGVAR(postdeps, $1)= ! _LT_AC_TAGVAR(compiler_lib_search_path, $1)= ! ! # Source file extension for C++ test sources. ! ac_ext=cpp ! ! # Object file extension for compiled C++ test sources. ! objext=o ! _LT_AC_TAGVAR(objext, $1)=$objext ! ! # Code to be used in simple compile tests ! lt_simple_compile_test_code="int some_variable = 0;\n" ! ! # Code to be used in simple link tests ! lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }\n' ! ! # ltmain only uses $CC for tagged configurations so make sure $CC is set. ! _LT_AC_SYS_COMPILER ! ! # save warnings/boilerplate of simple test code ! _LT_COMPILER_BOILERPLATE ! _LT_LINKER_BOILERPLATE ! ! # Allow CC to be a program name with arguments. ! lt_save_CC=$CC ! lt_save_LD=$LD ! lt_save_GCC=$GCC ! GCC=$GXX ! lt_save_with_gnu_ld=$with_gnu_ld ! lt_save_path_LD=$lt_cv_path_LD ! if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then ! lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx ! else ! $as_unset lt_cv_prog_gnu_ld ! fi ! if test -n "${lt_cv_path_LDCXX+set}"; then ! lt_cv_path_LD=$lt_cv_path_LDCXX ! else ! $as_unset lt_cv_path_LD ! fi ! test -z "${LDCXX+set}" || LD=$LDCXX ! CC=${CXX-"c++"} ! compiler=$CC ! _LT_AC_TAGVAR(compiler, $1)=$CC ! _LT_CC_BASENAME([$compiler]) ! ! # We don't want -fno-exception wen compiling C++ code, so set the ! # no_builtin_flag separately ! if test "$GXX" = yes; then ! _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ! else ! _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= ! fi ! ! if test "$GXX" = yes; then ! # Set up default GNU C++ configuration ! ! AC_PROG_LD ! ! # Check if GNU C++ uses GNU ld as the underlying linker, since the ! # archiving commands below assume that GNU ld is being used. ! if test "$with_gnu_ld" = yes; then ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' ! _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ! ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' ! _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' ! ! # If archive_cmds runs LD, not CC, wlarc should be empty ! # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to ! # investigate it a little bit more. (MM) ! wlarc='${wl}' ! ! # ancient GNU ld didn't support --whole-archive et. al. ! if eval "`$CC -print-prog-name=ld` --help 2>&1" | \ ! grep 'no-whole-archive' > /dev/null; then ! _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' ! else ! _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= ! fi ! else ! with_gnu_ld=no ! wlarc= ! ! # A generic and very simple default shared library creation ! # command for GNU C++ for the case where it uses the native ! # linker, instead of GNU ld. If possible, this setting should ! # overridden to take advantage of the native linker features on ! # the platform it is being used on. ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' ! fi ! ! # Commands to make compiler produce verbose output that lists ! # what "hidden" libraries, object files and flags are used when ! # linking a shared library. ! output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' ! ! else ! GXX=no ! with_gnu_ld=no ! wlarc= ! fi ! ! # PORTME: fill in a description of your system's C++ link characteristics ! AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) ! _LT_AC_TAGVAR(ld_shlibs, $1)=yes ! case $host_os in ! aix3*) ! # FIXME: insert proper C++ library support ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! ;; ! aix4* | aix5*) ! 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. ! aix_use_runtimelinking=no ! exp_sym_flag='-Bexport' ! no_entry_flag="" ! else ! aix_use_runtimelinking=no ! ! # 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*) ! for ld_flag in $LDFLAGS; do ! case $ld_flag in ! *-brtl*) ! aix_use_runtimelinking=yes ! break ! ;; ! esac ! done ! ;; ! esac ! ! exp_sym_flag='-bexport' ! no_entry_flag='-bnoentry' ! fi ! ! # When large executables or shared objects are built, AIX ld can ! # have problems creating the table of contents. If linking a library ! # or program results in "error TOC overflow" add -mminimal-toc to ! # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not ! # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. ! ! _LT_AC_TAGVAR(archive_cmds, $1)='' ! _LT_AC_TAGVAR(hardcode_direct, $1)=yes ! _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' ! _LT_AC_TAGVAR(link_all_deplibs, $1)=yes ! ! if test "$GXX" = yes; then ! case $host_os in aix4.[[012]]|aix4.[[012]].*) ! # We only want to do this on AIX 4.2 and lower, the check ! # below for broken collect2 doesn't work under 4.3+ ! collect2name=`${CC} -print-prog-name=collect2` ! if test -f "$collect2name" && \ ! 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 ! # It fails to find uninstalled libraries when the uninstalled ! # path is not listed in the libpath. Setting hardcode_minus_L ! # to unsupported forces relinking ! _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ! _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= ! fi ! ;; ! esac ! shared_flag='-shared' ! if test "$aix_use_runtimelinking" = yes; then ! shared_flag="$shared_flag "'${wl}-G' ! fi ! else ! # not using gcc ! if test "$host_cpu" = ia64; then ! # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release ! # chokes on -Wl,-G. The following line is correct: ! shared_flag='-G' ! else ! if test "$aix_use_runtimelinking" = yes; then ! shared_flag='${wl}-G' ! else ! shared_flag='${wl}-bM:SRE' ! fi ! fi ! fi ! ! # It seems that -bexpall does not export symbols beginning with ! # underscore (_), so it is better to generate a list of symbols to export. ! _LT_AC_TAGVAR(always_export_symbols, $1)=yes ! if test "$aix_use_runtimelinking" = yes; then ! # Warning - without using the other runtime loading flags (-brtl), ! # -berok will link without error, but may produce a broken library. ! _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' ! # Determine the default libpath from the value encoded in an empty executable. ! _LT_AC_SYS_LIBPATH_AIX ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" ! ! _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" ! else ! if test "$host_cpu" = ia64; then ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' ! _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" ! _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" ! else ! # Determine the default libpath from the value encoded in an empty executable. ! _LT_AC_SYS_LIBPATH_AIX ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" ! # Warning - without using the other run time loading flags, ! # -berok will link without error, but may produce a broken library. ! _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' ! _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' ! # Exported symbols can be pulled into shared objects from archives ! _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' ! _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes ! # This is similar to how AIX traditionally builds its shared libraries. ! _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' ! fi ! fi ! ;; ! ! beos*) ! if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then ! _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported ! # Joseph Beckenbach says some releases of gcc ! # support --undefined. This deserves some investigation. FIXME ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! else ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! fi ! ;; ! ! chorus*) ! case $cc_basename in ! *) ! # FIXME: insert proper C++ library support ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! ;; ! esac ! ;; ! ! cygwin* | mingw* | pw32*) ! # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, ! # as there is no search path for DLLs. ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ! _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 ! ! if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ! # If the export-symbols file already is a .def file (1st line ! # is EXPORTS), use it as is; otherwise, prepend... ! _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ! cp $export_symbols $output_objdir/$soname.def; ! else ! echo EXPORTS > $output_objdir/$soname.def; ! cat $export_symbols >> $output_objdir/$soname.def; ! fi~ ! $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ! else ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! 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 ! output_verbose_link_cmd='echo' ! if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then ! lt_int_apple_cc_single_mod=yes ! 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(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(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(ld_shlibs, $1)=no ! ;; ! esac ! fi ! ;; ! ! dgux*) ! case $cc_basename in ! ec++*) ! # FIXME: insert proper C++ library support ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! ;; ! ghcx*) ! # Green Hills C++ Compiler ! # FIXME: insert proper C++ library support ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! ;; ! *) ! # FIXME: insert proper C++ library support ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! ;; ! esac ! ;; ! freebsd[[12]]*) ! # C++ shared libraries reported to be fairly broken before switch to ELF ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! ;; ! freebsd-elf*) ! _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ! ;; ! freebsd* | kfreebsd*-gnu | dragonfly*) ! # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF ! # conventions ! _LT_AC_TAGVAR(ld_shlibs, $1)=yes ! ;; ! gnu*) ! ;; ! hpux9*) ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' ! _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ! _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ! _LT_AC_TAGVAR(hardcode_direct, $1)=yes ! _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, ! # but as the default ! # location of the library. ! ! case $cc_basename in ! CC*) ! # FIXME: insert proper C++ library support ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! ;; ! aCC*) ! _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ! # Commands to make compiler produce verbose output that lists ! # what "hidden" libraries, object files and flags are used when ! # linking a shared library. ! # ! # There doesn't appear to be a way to prevent this compiler from ! # explicitly linking system object files so we need to strip them ! # from the output so that they don't get included in the library ! # dependencies. ! output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "[[-]]L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ! ;; ! *) ! if test "$GXX" = yes; then ! _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ! else ! # FIXME: insert proper C++ library support ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! fi ! ;; ! esac ! ;; ! hpux10*|hpux11*) ! if test $with_gnu_ld = no; then ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' ! _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' ! ;; ! *) ! _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ! ;; ! esac ! fi ! case $host_cpu in ! hppa*64*|ia64*) ! _LT_AC_TAGVAR(hardcode_direct, $1)=no ! _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ! ;; ! *) ! _LT_AC_TAGVAR(hardcode_direct, $1)=yes ! _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, ! # but as the default ! # location of the library. ! ;; ! esac ! ! case $cc_basename in ! CC*) ! # FIXME: insert proper C++ library support ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! ;; ! aCC*) ! case $host_cpu in ! hppa*64*) ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ! ;; ! ia64*) ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ! ;; ! *) ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ! ;; ! esac ! # Commands to make compiler produce verbose output that lists ! # what "hidden" libraries, object files and flags are used when ! # linking a shared library. ! # ! # There doesn't appear to be a way to prevent this compiler from ! # explicitly linking system object files so we need to strip them ! # from the output so that they don't get included in the library ! # dependencies. ! output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ! ;; ! *) ! if test "$GXX" = yes; then ! if test $with_gnu_ld = no; then ! case $host_cpu in ! hppa*64*) ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ! ;; ! ia64*) ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ! ;; ! *) ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ! ;; ! esac ! fi ! else ! # FIXME: insert proper C++ library support ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! fi ! ;; ! esac ! ;; ! interix3*) ! _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}-E' ! # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. ! # Instead, shared libraries are loaded at an image base (0x10000000 by ! # default) and relocated if they conflict, which is a slow very memory ! # consuming and fragmenting process. To avoid this, we pick a random, ! # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link ! # time. Moving up from 0x10000000 also allows more sbrk(2) space. ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ! _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' ! ;; ! irix5* | irix6*) ! case $cc_basename in ! CC*) ! # SGI C++ ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ! ! # Archives containing C++ object files must be created using ! # "CC -ar", where "CC" is the IRIX C++ compiler. This is ! # necessary to make sure instantiated templates are included ! # in the archive. ! _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ! ;; ! *) ! if test "$GXX" = yes; then ! if test "$with_gnu_ld" = no; then ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ! else ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib' ! fi ! fi ! _LT_AC_TAGVAR(link_all_deplibs, $1)=yes ! ;; ! esac ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ! _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ! ;; ! linux*) ! case $cc_basename in ! KCC*) ! # Kuck and Associates, Inc. (KAI) C++ Compiler ! ! # KCC will only create a shared library if the output file ! # ends with ".so" (or ".sl" for HP-UX), so rename the library ! # to its proper name (with version) after linking. ! _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' ! _LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' ! # Commands to make compiler produce verbose output that lists ! # what "hidden" libraries, object files and flags are used when ! # linking a shared library. ! # ! # There doesn't appear to be a way to prevent this compiler from ! # explicitly linking system object files so we need to strip them ! # from the output so that they don't get included in the library ! # dependencies. ! output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' ! ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir' ! _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' ! ! # Archives containing C++ object files must be created using ! # "CC -Bstatic", where "CC" is the KAI C++ compiler. ! _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ! ;; ! icpc*) ! # Intel C++ ! with_gnu_ld=yes ! # version 8.0 and above of icpc choke on multiply defined symbols ! # if we add $predep_objects and $postdep_objects, however 7.1 and ! # earlier do not add the objects themselves. ! case `$CC -V 2>&1` in ! *"Version 7."*) ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' ! _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ! ;; ! *) # Version 8.0 or newer ! tmp_idyn= ! case $host_cpu in ! ia64*) tmp_idyn=' -i_dynamic';; ! esac ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ! ;; ! esac ! _LT_AC_TAGVAR(archive_cmds_need_lc, $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*) ! # 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' ! ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' ! _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' ! _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' ! ;; ! cxx*) ! # Compaq C++ ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' ! _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' ! ! runpath_var=LD_RUN_PATH ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ! _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ! ! # Commands to make compiler produce verbose output that lists ! # what "hidden" libraries, object files and flags are used when ! # linking a shared library. ! # ! # There doesn't appear to be a way to prevent this compiler from ! # explicitly linking system object files so we need to strip them ! # from the output so that they don't get included in the library ! # 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' ! ;; ! esac ! ;; ! lynxos*) ! # FIXME: insert proper C++ library support ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! ;; ! m88k*) ! # FIXME: insert proper C++ library support ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! ;; ! mvs*) ! case $cc_basename in ! cxx*) ! # FIXME: insert proper C++ library support ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! ;; ! *) ! # FIXME: insert proper C++ library support ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! ;; ! esac ! ;; ! netbsd*) ! if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ! _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' ! wlarc= ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ! _LT_AC_TAGVAR(hardcode_direct, $1)=yes ! _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ! fi ! # Workaround some broken pre-1.5 toolchains ! output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ! ;; ! openbsd2*) ! # C++ shared libraries are fairly broken ! _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' ! fi ! output_verbose_link_cmd='echo' ! ;; ! osf3*) ! case $cc_basename in ! KCC*) ! # Kuck and Associates, Inc. (KAI) C++ Compiler ! ! # KCC will only create a shared library if the output file ! # ends with ".so" (or ".sl" for HP-UX), so rename the library ! # to its proper name (with version) after linking. ! _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' ! ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ! _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ! ! # Archives containing C++ object files must be created using ! # "CC -Bstatic", where "CC" is the KAI C++ compiler. ! _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ! ! ;; ! RCC*) ! # Rational C++ 2.4.1 ! # FIXME: insert proper C++ library support ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! ;; ! cxx*) ! _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ! ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ! _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ! ! # Commands to make compiler produce verbose output that lists ! # what "hidden" libraries, object files and flags are used when ! # linking a shared library. ! # ! # There doesn't appear to be a way to prevent this compiler from ! # explicitly linking system object files so we need to strip them ! # from the output so that they don't get included in the library ! # dependencies. ! output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "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' ! ;; ! *) ! if test "$GXX" = yes && test "$with_gnu_ld" = no; then ! _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ! ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ! _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ! ! # Commands to make compiler produce verbose output that lists ! # what "hidden" libraries, object files and flags are used when ! # linking a shared library. ! output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' ! else ! # FIXME: insert proper C++ library support ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! fi ! ;; ! esac ! ;; ! osf4* | osf5*) ! case $cc_basename in ! KCC*) ! # Kuck and Associates, Inc. (KAI) C++ Compiler ! ! # KCC will only create a shared library if the output file ! # ends with ".so" (or ".sl" for HP-UX), so rename the library ! # to its proper name (with version) after linking. ! _LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' ! ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' ! _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ! ! # Archives containing C++ object files must be created using ! # the KAI C++ compiler. ! _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ! ;; ! RCC*) ! # Rational C++ 2.4.1 ! # FIXME: insert proper C++ library support ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! ;; ! cxx*) ! _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ! _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ ! echo "-hidden">> $lib.exp~ ! $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~ ! $rm $lib.exp' ! ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ! _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ! ! # Commands to make compiler produce verbose output that lists ! # what "hidden" libraries, object files and flags are used when ! # linking a shared library. ! # ! # There doesn't appear to be a way to prevent this compiler from ! # explicitly linking system object files so we need to strip them ! # from the output so that they don't get included in the library ! # dependencies. ! output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "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' ! ;; ! *) ! if test "$GXX" = yes && test "$with_gnu_ld" = no; then ! _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ! ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ! _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ! ! # Commands to make compiler produce verbose output that lists ! # what "hidden" libraries, object files and flags are used when ! # linking a shared library. ! output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"' ! else ! # FIXME: insert proper C++ library support ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! fi ! ;; ! esac ! ;; ! psos*) ! # FIXME: insert proper C++ library support ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! ;; ! sunos4*) ! case $cc_basename in ! CC*) ! # Sun C++ 4.x ! # FIXME: insert proper C++ library support ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! ;; ! lcc*) ! # Lucid ! # FIXME: insert proper C++ library support ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! ;; ! *) ! # FIXME: insert proper C++ library support ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! ;; ! esac ! ;; ! solaris*) ! case $cc_basename in ! CC*) ! # Sun C++ 4.2, 5.x and Centerline C++ ! _LT_AC_TAGVAR(archive_cmds_need_lc,$1)=yes ! _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)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ ! $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' ! ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ! _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ! 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. ! # 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' ! ;; ! esac ! _LT_AC_TAGVAR(link_all_deplibs, $1)=yes ! 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' ! ;; ! gcx*) ! # Green Hills C++ Compiler ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' ! ! # The C++ compiler must be used to create the archive. ! _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ! ;; ! *) ! # GNU C++ compiler with Solaris linker ! if test "$GXX" = yes && test "$with_gnu_ld" = no; then ! _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' ! if $CC --version | grep -v '^2\.7' > /dev/null; then ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' ! _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ ! $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' ! ! # Commands to make compiler produce verbose output that lists ! # what "hidden" libraries, object files and flags are used when ! # linking a shared library. ! output_verbose_link_cmd="$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" ! else ! # g++ 2.7 appears to require `-G' NOT `-shared' on this ! # platform. ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' ! _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ ! $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp' ! ! # Commands to make compiler produce verbose output that lists ! # what "hidden" libraries, object files and flags are used when ! # linking a shared library. ! output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\"" ! fi ! ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' ! fi ! ;; esac ! ;; ! 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 ! runpath_var='LD_RUN_PATH' ! case $cc_basename in ! CC*) ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ! _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ! ;; ! *) ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ! _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ! ;; ! esac ! ;; ! sysv5* | sco3.2v5* | sco5v6*) ! # Note: We can NOT use -z defs as we might desire, because we do not ! # link with -lc, and that would cause any symbols used from libc to ! # always be unresolved, which means just about no library would ! # ever link correctly. If we're not using GNU ld we use -z text ! # though, which does catch some bad symbols but isn't as heavy-handed ! # as -z defs. ! # For security reasons, it is highly recommended that you always ! # use absolute paths for naming shared libraries, and exclude the ! # DT_RUNPATH tag from executables and libraries. But doing so ! # requires that you compile everything twice, which is a pain. ! # So that behaviour is only enabled if SCOABSPATH is set to a ! # non-empty value in the environment. Most likely only useful for ! # creating official distributions of packages. ! # This is a hack until libtool officially supports absolute path ! # names for shared libraries. ! _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' ! _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' ! _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ! _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' ! _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' ! _LT_AC_TAGVAR(link_all_deplibs, $1)=yes ! _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' ! runpath_var='LD_RUN_PATH' ! case $cc_basename in ! CC*) ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ! _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ! ;; ! *) ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ! _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ! ;; ! esac ! ;; ! tandem*) ! case $cc_basename in ! NCC*) ! # NonStop-UX NCC 3.20 ! # FIXME: insert proper C++ library support ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! ;; ! *) ! # FIXME: insert proper C++ library support ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! ;; ! esac ! ;; ! vxworks*) ! # FIXME: insert proper C++ library support ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! ;; ! *) ! # FIXME: insert proper C++ library support ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! ;; ! esac ! AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) ! test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no ! _LT_AC_TAGVAR(GCC, $1)="$GXX" ! _LT_AC_TAGVAR(LD, $1)="$LD" ! AC_LIBTOOL_POSTDEP_PREDEP($1) ! AC_LIBTOOL_PROG_COMPILER_PIC($1) ! AC_LIBTOOL_PROG_CC_C_O($1) ! AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) ! AC_LIBTOOL_PROG_LD_SHLIBS($1) ! AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) ! AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) ! ! AC_LIBTOOL_CONFIG($1) ! ! AC_LANG_POP ! CC=$lt_save_CC ! LDCXX=$LD ! LD=$lt_save_LD ! GCC=$lt_save_GCC ! with_gnu_ldcxx=$with_gnu_ld ! with_gnu_ld=$lt_save_with_gnu_ld ! lt_cv_path_LDCXX=$lt_cv_path_LD ! lt_cv_path_LD=$lt_save_path_LD ! lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld ! lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld ! ])# AC_LIBTOOL_LANG_CXX_CONFIG ! ! # AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME]) ! # ------------------------------------ ! # Figure out "hidden" library dependencies from verbose ! # 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],[ ! 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 ! dnl tag define a new lt_????_link_test_code variable, ! dnl but it's only used here... ! ifelse([$1],[],[cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext ! ! if AC_TRY_EVAL(ac_compile); then ! soname=conftest ! lib=conftest ! libobjs=conftest.$ac_objext ! deplibs= ! wl=$lt_cv_prog_cc_wl ! compiler_flags=-v ! linker_flags=-v ! verstring= ! output_objdir=. ! libname=conftest ! save_allow_undefined_flag=$allow_undefined_flag ! allow_undefined_flag= ! if AC_TRY_EVAL(archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) ! then ! lt_cv_archive_cmds_need_lc=no ! else ! lt_cv_archive_cmds_need_lc=yes ! fi ! allow_undefined_flag=$save_allow_undefined_flag ! else ! cat conftest.err 1>&5 ! fi]) ! AC_MSG_RESULT([$lt_cv_archive_cmds_need_lc]) ! ;; ! esac ! fi ! need_lc=${lt_cv_archive_cmds_need_lc-yes} ! # The second clause should only fire when bootstrapping the ! # libtool distribution, otherwise you forgot to ship ltmain.sh ! # with your package, and you will get complaints that there are ! # no rules to generate ltmain.sh. ! if test -f "$ltmain"; then ! : ! else ! # If there is no Makefile yet, we rely on a make rule to execute ! # `config.status --recheck' to rerun these tests and create the ! # libtool script then. ! test -f Makefile && make "$ltmain" ! fi - if test -f "$ltmain"; then - trap "$rm \"${ofile}T\"; exit 1" 1 2 15 - $rm -f "${ofile}T" ! echo creating $ofile # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. ! for var in echo old_CC old_CFLAGS SED \ ! AR AR_FLAGS CC LD LN_S NM SHELL \ ! reload_flag reload_cmds wl \ ! pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \ ! thread_safe_flag_spec whole_archive_flag_spec libname_spec \ ! library_names_spec soname_spec \ ! RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ ! old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \ ! postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \ ! old_striplib striplib file_magic_cmd export_symbols_cmds \ ! deplibs_check_method allow_undefined_flag no_undefined_flag \ ! finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \ ! global_symbol_to_c_name_address \ ! hardcode_libdir_flag_spec hardcode_libdir_separator \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ ! compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do case $var in ! reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ ! old_postinstall_cmds | old_postuninstall_cmds | \ ! export_symbols_cmds | archive_cmds | archive_expsym_cmds | \ ! extract_expsyms_cmds | old_archive_from_expsyms_cmds | \ postinstall_cmds | postuninstall_cmds | \ ! finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; --- 4563,4763 ---- test "$enable_shared" = yes || enable_static=yes AC_MSG_RESULT([$enable_static]) ! _LT_AC_TAGVAR(GCC, $1)="$G77" ! _LT_AC_TAGVAR(LD, $1)="$LD" ! AC_LIBTOOL_PROG_COMPILER_PIC($1) ! AC_LIBTOOL_PROG_CC_C_O($1) ! AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) ! AC_LIBTOOL_PROG_LD_SHLIBS($1) ! AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) ! AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) ! AC_LIBTOOL_CONFIG($1) ! AC_LANG_POP ! CC="$lt_save_CC" ! ])# AC_LIBTOOL_LANG_F77_CONFIG ! # AC_LIBTOOL_LANG_GCJ_CONFIG ! # -------------------------- ! # Ensure that the configuration vars for the C compiler are ! # suitably defined. Those variables are subsequently used by ! # AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. ! AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)]) ! AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG], ! [AC_LANG_SAVE ! ! # Source file extension for Java test sources. ! ac_ext=java ! ! # Object file extension for compiled Java test sources. ! objext=o ! _LT_AC_TAGVAR(objext, $1)=$objext ! ! # Code to be used in simple compile tests ! lt_simple_compile_test_code="class foo {}\n" ! ! # Code to be used in simple link tests ! lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }\n' ! ! # ltmain only uses $CC for tagged configurations so make sure $CC is set. ! _LT_AC_SYS_COMPILER ! ! # save warnings/boilerplate of simple test code ! _LT_COMPILER_BOILERPLATE ! _LT_LINKER_BOILERPLATE ! ! # Allow CC to be a program name with arguments. ! lt_save_CC="$CC" ! CC=${GCJ-"gcj"} ! compiler=$CC ! _LT_AC_TAGVAR(compiler, $1)=$CC ! _LT_CC_BASENAME([$compiler]) ! ! # GCJ did not exist at the time GCC didn't implicitly link libc in. ! _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ! ! _LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds ! ! AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1) ! AC_LIBTOOL_PROG_COMPILER_PIC($1) ! AC_LIBTOOL_PROG_CC_C_O($1) ! AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1) ! AC_LIBTOOL_PROG_LD_SHLIBS($1) ! AC_LIBTOOL_SYS_DYNAMIC_LINKER($1) ! AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1) ! ! AC_LIBTOOL_CONFIG($1) ! ! AC_LANG_RESTORE ! CC="$lt_save_CC" ! ])# AC_LIBTOOL_LANG_GCJ_CONFIG ! ! ! # AC_LIBTOOL_LANG_RC_CONFIG ! # ------------------------- ! # Ensure that the configuration vars for the Windows resource compiler are ! # suitably defined. Those variables are subsequently used by ! # AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'. ! AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)]) ! AC_DEFUN([_LT_AC_LANG_RC_CONFIG], ! [AC_LANG_SAVE ! ! # Source file extension for RC test sources. ! ac_ext=rc ! ! # Object file extension for compiled RC test sources. ! objext=o ! _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' ! ! # Code to be used in simple link tests ! lt_simple_link_test_code="$lt_simple_compile_test_code" ! ! # ltmain only uses $CC for tagged configurations so make sure $CC is set. ! _LT_AC_SYS_COMPILER ! ! # save warnings/boilerplate of simple test code ! _LT_COMPILER_BOILERPLATE ! _LT_LINKER_BOILERPLATE + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + CC=${RC-"windres"} + compiler=$CC + _LT_AC_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + + AC_LIBTOOL_CONFIG($1) + + AC_LANG_RESTORE + CC="$lt_save_CC" + ])# AC_LIBTOOL_LANG_RC_CONFIG + + + # AC_LIBTOOL_CONFIG([TAGNAME]) + # ---------------------------- + # If TAGNAME is not passed, then create an initial libtool script + # with a default configuration from the untagged config vars. Otherwise + # add code to config.status for appending the configuration named by + # TAGNAME from the matching tagged config vars. + AC_DEFUN([AC_LIBTOOL_CONFIG], + [# The else clause should only fire when bootstrapping the + # libtool distribution, otherwise you forgot to ship ltmain.sh + # with your package, and you will get complaints that there are + # no rules to generate ltmain.sh. + if test -f "$ltmain"; then + # See if we are running on zsh, and set the options which allow our commands through + # without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. ! for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ ! SED SHELL STRIP \ ! libname_spec library_names_spec soname_spec extract_expsyms_cmds \ ! old_striplib striplib file_magic_cmd finish_cmds finish_eval \ ! deplibs_check_method reload_flag reload_cmds need_locks \ ! lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ ! lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ ! old_postinstall_cmds old_postuninstall_cmds \ ! _LT_AC_TAGVAR(compiler, $1) \ ! _LT_AC_TAGVAR(CC, $1) \ ! _LT_AC_TAGVAR(LD, $1) \ ! _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \ ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \ ! _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \ ! _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \ ! _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \ ! _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \ ! _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \ ! _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \ ! _LT_AC_TAGVAR(old_archive_cmds, $1) \ ! _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \ ! _LT_AC_TAGVAR(predep_objects, $1) \ ! _LT_AC_TAGVAR(postdep_objects, $1) \ ! _LT_AC_TAGVAR(predeps, $1) \ ! _LT_AC_TAGVAR(postdeps, $1) \ ! _LT_AC_TAGVAR(compiler_lib_search_path, $1) \ ! _LT_AC_TAGVAR(archive_cmds, $1) \ ! _LT_AC_TAGVAR(archive_expsym_cmds, $1) \ ! _LT_AC_TAGVAR(postinstall_cmds, $1) \ ! _LT_AC_TAGVAR(postuninstall_cmds, $1) \ ! _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \ ! _LT_AC_TAGVAR(allow_undefined_flag, $1) \ ! _LT_AC_TAGVAR(no_undefined_flag, $1) \ ! _LT_AC_TAGVAR(export_symbols_cmds, $1) \ ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \ ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \ ! _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \ ! _LT_AC_TAGVAR(hardcode_automatic, $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(exclude_expsyms, $1) \ ! _LT_AC_TAGVAR(include_expsyms, $1); do case $var in ! _LT_AC_TAGVAR(old_archive_cmds, $1) | \ ! _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \ ! _LT_AC_TAGVAR(archive_cmds, $1) | \ ! _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \ ! _LT_AC_TAGVAR(module_cmds, $1) | \ ! _LT_AC_TAGVAR(module_expsym_cmds, $1) | \ ! _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \ ! _LT_AC_TAGVAR(export_symbols_cmds, $1) | \ ! extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ ! old_postinstall_cmds | old_postuninstall_cmds | \ ! sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *************** *** 3033,3046 **** esac done ! cat <<__EOF__ > "${ofile}T" ! #! $SHELL ! # `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) # NOTE: Changes made to this file will be lost: look at ltmain.sh. # ! # Copyright (C) 1996-2000 Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 1996 # # This program is free software; you can redistribute it and/or modify --- 4767,4797 ---- esac done ! case $lt_echo in ! *'\[$]0 --fallback-echo"') ! lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'` ! ;; ! esac ! ifelse([$1], [], ! [cfgfile="${ofile}T" ! trap "$rm \"$cfgfile\"; exit 1" 1 2 15 ! $rm -f "$cfgfile" ! AC_MSG_NOTICE([creating $ofile])], ! [cfgfile="$ofile"]) ! ! cat <<__EOF__ >> "$cfgfile" ! ifelse([$1], [], ! [#! $SHELL ! ! # `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. # 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 ! # Free Software Foundation, Inc. ! # ! # This file is part of GNU Libtool: # Originally by Gordon Matzigkeit , 1996 # # This program is free software; you can redistribute it and/or modify *************** *** 3055,3078 **** # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software ! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. ! # A sed that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. ! Xsed="${SED} -e s/^X//" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. ! if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi ! # ### BEGIN LIBTOOL CONFIG # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: --- 4806,4833 ---- # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software ! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. ! # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. ! Xsed="$SED -e 1s/^X//" # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. ! (unset CDPATH) >/dev/null 2>&1 && unset CDPATH ! # The names of the tagged configurations supported by this script. ! available_tags= ! ! # ### BEGIN LIBTOOL CONFIG], ! [# ### BEGIN LIBTOOL TAG CONFIG: $tagname]) # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: *************** *** 3086,3092 **** build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. ! build_libtool_need_lc=$need_lc # Whether or not to optimize for fast installation. fast_install=$enable_fast_install --- 4841,4850 ---- build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. ! build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1) ! ! # Whether or not to disallow shared libs when runtime libs are static ! allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) # Whether or not to optimize for fast installation. fast_install=$enable_fast_install *************** *** 3094,3099 **** --- 4852,4863 ---- # The host system. host_alias=$host_alias host=$host + host_os=$host_os + + # The build system. + build_alias=$build_alias + build=$build + build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo *************** *** 3102,3115 **** AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS ! # The default C compiler. ! CC=$lt_CC # Is the compiler the GNU C compiler? ! with_gcc=$GCC # The linker used to build libraries. ! LD=$lt_LD # Whether we need hard or soft links. LN_S=$lt_LN_S --- 4866,4888 ---- AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS ! # A C compiler. ! LTCC=$lt_LTCC ! ! # LTCC compiler flags. ! LTCFLAGS=$lt_LTCFLAGS ! ! # A language-specific compiler. ! CC=$lt_[]_LT_AC_TAGVAR(compiler, $1) # Is the compiler the GNU C compiler? ! with_gcc=$_LT_AC_TAGVAR(GCC, $1) ! ! # An ERE matcher. ! EGREP=$lt_EGREP # The linker used to build libraries. ! LD=$lt_[]_LT_AC_TAGVAR(LD, $1) # Whether we need hard or soft links. LN_S=$lt_LN_S *************** *** 3118,3124 **** NM=$lt_NM # A symbol stripping program ! STRIP=$STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD --- 4891,4897 ---- NM=$lt_NM # A symbol stripping program ! STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD *************** *** 3140,3146 **** reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. ! wl=$lt_wl # Object file suffix (normally "o"). objext="$ac_objext" --- 4913,4919 ---- reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. ! wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) # Object file suffix (normally "o"). objext="$ac_objext" *************** *** 3148,4125 **** # Old archive suffix (normally "a"). libext="$libext" # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. ! pic_flag=$lt_pic_flag pic_mode=$pic_mode ! # Does compiler simultaneously support -c and -o options? ! compiler_c_o=$lt_compiler_c_o ! # Can we write directly to a .lo ? ! compiler_o_lo=$lt_compiler_o_lo ! # Must we lock files when doing compilation ? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix ! # Do we need a version for libraries? ! need_version=$need_version ! # Whether dlopen is supported. ! dlopen_support=$enable_dlopen ! # Whether dlopen of programs is supported. ! dlopen_self=$enable_dlopen_self ! # Whether dlopen of statically linked programs is supported. ! dlopen_self_static=$enable_dlopen_self_static ! # Compiler flag to prevent dynamic linking. ! link_static_flag=$lt_link_static_flag ! # Compiler flag to turn off builtin functions. ! no_builtin_flag=$lt_no_builtin_flag ! # Compiler flag to allow reflexive dlopens. ! export_dynamic_flag_spec=$lt_export_dynamic_flag_spec ! # Compiler flag to generate shared objects directly from archives. ! whole_archive_flag_spec=$lt_whole_archive_flag_spec ! # Compiler flag to generate thread-safe objects. ! thread_safe_flag_spec=$lt_thread_safe_flag_spec ! # Library versioning type. ! version_type=$version_type ! # Format of library name prefix. ! libname_spec=$lt_libname_spec ! # List of archive names. First name is the real one, the rest are links. ! # The last name is the one that the linker finds with -lNAME. ! library_names_spec=$lt_library_names_spec - # The coded name of the library, if different from the real name. - soname_spec=$lt_soname_spec ! # Commands used to build and install an old-style archive. ! RANLIB=$lt_RANLIB ! old_archive_cmds=$lt_old_archive_cmds ! old_postinstall_cmds=$lt_old_postinstall_cmds ! old_postuninstall_cmds=$lt_old_postuninstall_cmds ! # Create an old-style archive from a shared archive. ! old_archive_from_new_cmds=$lt_old_archive_from_new_cmds ! # Create a temporary old-style archive to link instead of a shared archive. ! old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds ! # Commands used to build and install a shared archive. ! archive_cmds=$lt_archive_cmds ! archive_expsym_cmds=$lt_archive_expsym_cmds ! postinstall_cmds=$lt_postinstall_cmds ! postuninstall_cmds=$lt_postuninstall_cmds ! # Commands to strip libraries. ! old_striplib=$lt_old_striplib ! striplib=$lt_striplib ! # Method to check whether dependent libraries are shared objects. ! deplibs_check_method=$lt_deplibs_check_method ! # Command to use when deplibs_check_method == file_magic. ! file_magic_cmd=$lt_file_magic_cmd ! # Flag that allows shared libraries with undefined symbols to be built. ! allow_undefined_flag=$lt_allow_undefined_flag ! # Flag that forces no undefined symbols. ! no_undefined_flag=$lt_no_undefined_flag ! # Commands used to finish a libtool library installation in a directory. ! finish_cmds=$lt_finish_cmds ! # Same as above, but a single script fragment to be evaled but not shown. ! finish_eval=$lt_finish_eval ! # Take the output of nm and produce a listing of raw symbols and C names. ! global_symbol_pipe=$lt_global_symbol_pipe ! # Transform the output of nm in a proper C declaration ! global_symbol_to_cdecl=$lt_global_symbol_to_cdecl ! # Transform the output of nm in a C name address pair ! global_symbol_to_c_name_address=$lt_global_symbol_to_c_name_address ! # This is the shared library runtime path variable. ! runpath_var=$runpath_var ! # This is the shared library path variable. ! shlibpath_var=$shlibpath_var ! # Is shlibpath searched before the hard-coded library search path? ! shlibpath_overrides_runpath=$shlibpath_overrides_runpath ! # How to hardcode a shared library path into an executable. ! hardcode_action=$hardcode_action ! # Whether we should hardcode library paths into libraries. ! hardcode_into_libs=$hardcode_into_libs ! # Flag to hardcode \$libdir into a binary during linking. ! # This must work even if \$libdir does not exist. ! hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec ! # Whether we need a single -rpath flag with a separated argument. ! hardcode_libdir_separator=$lt_hardcode_libdir_separator ! # Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the ! # resulting binary. ! hardcode_direct=$hardcode_direct ! # Set to yes if using the -LDIR flag during linking hardcodes DIR into the ! # resulting binary. ! hardcode_minus_L=$hardcode_minus_L ! # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into ! # the resulting binary. ! hardcode_shlibpath_var=$hardcode_shlibpath_var ! # Variables whose values should be saved in libtool wrapper scripts and ! # restored at relink time. ! variables_saved_for_relink="$variables_saved_for_relink" ! # Whether libtool must link a program against all its dependency libraries. ! link_all_deplibs=$link_all_deplibs ! # Compile-time system search path for libraries ! sys_lib_search_path_spec=$lt_sys_lib_search_path_spec ! # Run-time system search path for libraries ! 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" ! # Set to yes if exported symbols are required. ! always_export_symbols=$always_export_symbols ! # The commands to list exported symbols. ! export_symbols_cmds=$lt_export_symbols_cmds ! # The commands to extract the exported symbol list from a shared archive. ! extract_expsyms_cmds=$lt_extract_expsyms_cmds ! # Symbols that should not be listed in the preloaded symbols. ! exclude_expsyms=$lt_exclude_expsyms ! # Symbols that must always be exported. ! include_expsyms=$lt_include_expsyms ! # ### END LIBTOOL CONFIG ! __EOF__ ! case $host_os in ! aix3*) ! cat <<\EOF >> "${ofile}T" ! # AIX sometimes has problems with the GCC collect2 program. For some ! # reason, if we set the COLLECT_NAMES environment variable, the problems ! # vanish in a puff of smoke. ! if test "X${COLLECT_NAMES+set}" != Xset; then ! COLLECT_NAMES= ! export COLLECT_NAMES ! fi ! EOF ! ;; ! esac ! case $host_os in ! cygwin* | mingw* | pw32* | os2*) ! cat <<'EOF' >> "${ofile}T" ! # This is a source program that is used to create dlls on Windows ! # Don't remove nor modify the starting and closing comments ! # /* ltdll.c starts here */ ! # #define WIN32_LEAN_AND_MEAN ! # #include ! # #undef WIN32_LEAN_AND_MEAN ! # #include ! # ! # #ifndef __CYGWIN__ ! # # ifdef __CYGWIN32__ ! # # define __CYGWIN__ __CYGWIN32__ ! # # endif ! # #endif ! # ! # #ifdef __cplusplus ! # extern "C" { ! # #endif ! # BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); ! # #ifdef __cplusplus ! # } ! # #endif ! # ! # #ifdef __CYGWIN__ ! # #include ! # DECLARE_CYGWIN_DLL( DllMain ); ! # #endif ! # HINSTANCE __hDllInstance_base; ! # ! # BOOL APIENTRY ! # DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) ! # { ! # __hDllInstance_base = hInst; ! # return TRUE; ! # } ! # /* ltdll.c ends here */ ! # This is a source program that is used to create import libraries ! # on Windows for dlls which lack them. Don't remove nor modify the ! # starting and closing comments ! # /* impgen.c starts here */ ! # /* Copyright (C) 1999-2000 Free Software Foundation, Inc. ! # ! # This file is part of GNU libtool. ! # ! # This program is free software; you can redistribute it and/or modify ! # it under the terms of the GNU General Public License as published by ! # the Free Software Foundation; either version 2 of the License, or ! # (at your option) any later version. ! # ! # This program is distributed in the hope that it will be useful, ! # but WITHOUT ANY WARRANTY; without even the implied warranty of ! # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ! # GNU General Public License for more details. ! # ! # You should have received a copy of the GNU General Public License ! # along with this program; if not, write to the Free Software ! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ! # */ ! # ! # #include /* for printf() */ ! # #include /* for open(), lseek(), read() */ ! # #include /* for O_RDONLY, O_BINARY */ ! # #include /* for strdup() */ ! # ! # /* O_BINARY isn't required (or even defined sometimes) under Unix */ ! # #ifndef O_BINARY ! # #define O_BINARY 0 ! # #endif ! # ! # static unsigned int ! # pe_get16 (fd, offset) ! # int fd; ! # int offset; ! # { ! # unsigned char b[2]; ! # lseek (fd, offset, SEEK_SET); ! # read (fd, b, 2); ! # return b[0] + (b[1]<<8); ! # } ! # ! # static unsigned int ! # pe_get32 (fd, offset) ! # int fd; ! # int offset; ! # { ! # unsigned char b[4]; ! # lseek (fd, offset, SEEK_SET); ! # read (fd, b, 4); ! # return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); ! # } ! # ! # static unsigned int ! # pe_as32 (ptr) ! # void *ptr; ! # { ! # unsigned char *b = ptr; ! # return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); ! # } ! # ! # int ! # main (argc, argv) ! # int argc; ! # char *argv[]; ! # { ! # int dll; ! # unsigned long pe_header_offset, opthdr_ofs, num_entries, i; ! # unsigned long export_rva, export_size, nsections, secptr, expptr; ! # unsigned long name_rvas, nexp; ! # unsigned char *expdata, *erva; ! # char *filename, *dll_name; ! # ! # filename = argv[1]; ! # ! # dll = open(filename, O_RDONLY|O_BINARY); ! # if (dll < 1) ! # return 1; ! # ! # dll_name = filename; ! # ! # for (i=0; filename[i]; i++) ! # if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':') ! # dll_name = filename + i +1; ! # ! # pe_header_offset = pe_get32 (dll, 0x3c); ! # opthdr_ofs = pe_header_offset + 4 + 20; ! # num_entries = pe_get32 (dll, opthdr_ofs + 92); ! # ! # if (num_entries < 1) /* no exports */ ! # return 1; ! # ! # export_rva = pe_get32 (dll, opthdr_ofs + 96); ! # export_size = pe_get32 (dll, opthdr_ofs + 100); ! # nsections = pe_get16 (dll, pe_header_offset + 4 +2); ! # secptr = (pe_header_offset + 4 + 20 + ! # pe_get16 (dll, pe_header_offset + 4 + 16)); ! # ! # expptr = 0; ! # for (i = 0; i < nsections; i++) ! # { ! # char sname[8]; ! # unsigned long secptr1 = secptr + 40 * i; ! # unsigned long vaddr = pe_get32 (dll, secptr1 + 12); ! # unsigned long vsize = pe_get32 (dll, secptr1 + 16); ! # unsigned long fptr = pe_get32 (dll, secptr1 + 20); ! # lseek(dll, secptr1, SEEK_SET); ! # read(dll, sname, 8); ! # if (vaddr <= export_rva && vaddr+vsize > export_rva) ! # { ! # expptr = fptr + (export_rva - vaddr); ! # if (export_rva + export_size > vaddr + vsize) ! # export_size = vsize - (export_rva - vaddr); ! # break; ! # } ! # } ! # ! # expdata = (unsigned char*)malloc(export_size); ! # lseek (dll, expptr, SEEK_SET); ! # read (dll, expdata, export_size); ! # erva = expdata - export_rva; ! # ! # nexp = pe_as32 (expdata+24); ! # name_rvas = pe_as32 (expdata+32); ! # ! # printf ("EXPORTS\n"); ! # for (i = 0; i> "${ofile}T" || (rm -f "${ofile}T"; exit 1) ! mv -f "${ofile}T" "$ofile" || \ ! (rm -f "$ofile" && cp "${ofile}T" "$ofile" && rm -f "${ofile}T") ! chmod +x "$ofile" ! fi ! ])# _LT_AC_LTCONFIG_HACK ! # AC_LIBTOOL_DLOPEN - enable checks for dlopen support ! AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])]) ! # AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's ! AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])]) ! # AC_ENABLE_SHARED - implement the --enable-shared flag ! # Usage: AC_ENABLE_SHARED[(DEFAULT)] ! # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to ! # `yes'. ! AC_DEFUN([AC_ENABLE_SHARED], ! [define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl ! AC_ARG_ENABLE(shared, ! changequote(<<, >>)dnl ! << --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT], ! changequote([, ])dnl ! [p=${PACKAGE-default} ! case $enableval in ! yes) enable_shared=yes ;; ! no) enable_shared=no ;; ! *) ! enable_shared=no ! # Look at the argument we got. We use all the common list separators. ! IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," ! for pkg in $enableval; do ! if test "X$pkg" = "X$p"; then ! enable_shared=yes ! fi ! done ! IFS="$ac_save_ifs" ! ;; ! esac], ! enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl ! ]) ! # AC_DISABLE_SHARED - set the default shared flag to --disable-shared ! AC_DEFUN([AC_DISABLE_SHARED], ! [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ! AC_ENABLE_SHARED(no)]) ! # AC_ENABLE_STATIC - implement the --enable-static flag ! # Usage: AC_ENABLE_STATIC[(DEFAULT)] ! # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to ! # `yes'. ! AC_DEFUN([AC_ENABLE_STATIC], ! [define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl ! AC_ARG_ENABLE(static, ! changequote(<<, >>)dnl ! << --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT], ! changequote([, ])dnl ! [p=${PACKAGE-default} ! case $enableval in ! yes) enable_static=yes ;; ! no) enable_static=no ;; ! *) ! enable_static=no ! # Look at the argument we got. We use all the common list separators. ! IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," ! for pkg in $enableval; do ! if test "X$pkg" = "X$p"; then ! enable_static=yes ! fi ! done ! IFS="$ac_save_ifs" ! ;; ! esac], ! enable_static=AC_ENABLE_STATIC_DEFAULT)dnl ! ]) ! # AC_DISABLE_STATIC - set the default static flag to --disable-static ! AC_DEFUN([AC_DISABLE_STATIC], ! [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ! AC_ENABLE_STATIC(no)]) ! # AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag ! # Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)] ! # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to ! # `yes'. ! AC_DEFUN([AC_ENABLE_FAST_INSTALL], ! [define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl ! AC_ARG_ENABLE(fast-install, ! changequote(<<, >>)dnl ! << --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT], ! changequote([, ])dnl ! [p=${PACKAGE-default} ! case $enableval in ! yes) enable_fast_install=yes ;; ! no) enable_fast_install=no ;; ! *) ! enable_fast_install=no ! # Look at the argument we got. We use all the common list separators. ! IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," ! for pkg in $enableval; do ! if test "X$pkg" = "X$p"; then ! enable_fast_install=yes fi ! done ! IFS="$ac_save_ifs" ! ;; ! esac], ! enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl ! ]) ! # AC_DISABLE_FAST_INSTALL - set the default to --disable-fast-install ! AC_DEFUN([AC_DISABLE_FAST_INSTALL], ! [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ! AC_ENABLE_FAST_INSTALL(no)]) ! # AC_LIBTOOL_PICMODE - implement the --with-pic flag ! # Usage: AC_LIBTOOL_PICMODE[(MODE)] ! # Where MODE is either `yes' or `no'. If omitted, it defaults to ! # `both'. ! AC_DEFUN([AC_LIBTOOL_PICMODE], ! [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ! pic_mode=ifelse($#,1,$1,default)]) ! # AC_PATH_TOOL_PREFIX - find a file program which can recognise shared library ! AC_DEFUN([AC_PATH_TOOL_PREFIX], ! [AC_MSG_CHECKING([for $1]) ! AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, ! [case $MAGIC_CMD in ! /*) ! lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ! ;; ! ?:/*) ! lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. ! ;; ! *) ! ac_save_MAGIC_CMD="$MAGIC_CMD" ! IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ! dnl $ac_dummy forces splitting on constant user-supplied paths. ! dnl POSIX.2 word splitting is done only on the output of word expansions, ! dnl not every word. This closes a longstanding sh security hole. ! ac_dummy="ifelse([$2], , $PATH, [$2])" ! for ac_dir in $ac_dummy; do ! test -z "$ac_dir" && ac_dir=. ! if test -f $ac_dir/$1; then ! lt_cv_path_MAGIC_CMD="$ac_dir/$1" ! if test -n "$file_magic_test_file"; then ! case $deplibs_check_method in ! "file_magic "*) ! file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" ! MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ! if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | ! egrep "$file_magic_regex" > /dev/null; then ! : else ! cat <&2 ! ! *** Warning: the command libtool uses to detect shared libraries, ! *** $file_magic_cmd, produces output that libtool cannot recognize. ! *** The result is that libtool may fail to recognize shared libraries ! *** as such. This will affect the creation of libtool libraries that ! *** depend on shared libraries, but programs linked with such libtool ! *** libraries will work regardless of this problem. Nevertheless, you ! *** may want to report the problem to your system manager and/or to ! *** bug-libtool@gnu.org ! ! EOF ! fi ;; esac fi - break - fi - done - IFS="$ac_save_ifs" - MAGIC_CMD="$ac_save_MAGIC_CMD" - ;; - esac]) - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if test -n "$MAGIC_CMD"; then - AC_MSG_RESULT($MAGIC_CMD) - else - AC_MSG_RESULT(no) - fi - ]) ! # AC_PATH_MAGIC - find a file program which can recognise a shared library ! AC_DEFUN([AC_PATH_MAGIC], ! [AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl ! AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin:$PATH) ! if test -z "$lt_cv_path_MAGIC_CMD"; then ! if test -n "$ac_tool_prefix"; then ! AC_PATH_TOOL_PREFIX(file, /usr/bin:$PATH) ! else ! MAGIC_CMD=: ! fi ! fi ! ]) ! # AC_PROG_LD - find the path to the GNU or non-GNU linker ! AC_DEFUN([AC_PROG_LD], ! [AC_ARG_WITH(gnu-ld, ! [ --with-gnu-ld assume the C compiler uses GNU ld [default=no]], ! test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no) ! AC_REQUIRE([AC_PROG_CC])dnl ! AC_REQUIRE([AC_CANONICAL_HOST])dnl ! AC_REQUIRE([AC_CANONICAL_BUILD])dnl ! AC_REQUIRE([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR])dnl ! ac_prog=ld ! if test "$GCC" = yes; then ! # Check if gcc -print-prog-name=ld gives a path. ! AC_MSG_CHECKING([for ld used by GCC]) ! case $host in ! *-*-mingw*) ! # gcc leaves a trailing carriage return which upsets mingw ! ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; ! *) ! ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; ! esac ! case $ac_prog in ! # Accept absolute paths. ! [[\\/]]* | [[A-Za-z]]:[[\\/]]*) ! re_direlt='/[[^/]][[^/]]*/\.\./' ! # Canonicalize the path of ld ! ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` ! while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ! ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` ! done ! test -z "$LD" && LD="$ac_prog" ;; - "") - # If it fails, then pretend we aren't using GCC. - ac_prog=ld - ;; - *) - # If it is relative, then search for the first ld in PATH. - with_gnu_ld=unknown - ;; - esac - elif test "$with_gnu_ld" = yes; then - AC_MSG_CHECKING([for GNU ld]) - else - AC_MSG_CHECKING([for non-GNU ld]) - fi - AC_CACHE_VAL(lt_cv_path_LD, - [if test -z "$LD"; then - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR - for ac_dir in $PATH; do - test -z "$ac_dir" && ac_dir=. - if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then - lt_cv_path_LD="$ac_dir/$ac_prog" - # Check to see if the program is GNU ld. I'd rather use --version, - # but apparently some GNU ld's only accept -v. - # Break only if it was the GNU/non-GNU ld that we prefer. - if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then - test "$with_gnu_ld" != no && break - else - test "$with_gnu_ld" != yes && break - fi - fi - done - IFS="$ac_save_ifs" - else - lt_cv_path_LD="$LD" # Let the user override the test with a path. - fi]) - LD="$lt_cv_path_LD" - if test -n "$LD"; then - AC_MSG_RESULT($LD) - else - AC_MSG_RESULT(no) - fi - test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH]) - AC_PROG_LD_GNU - ]) ! # AC_PROG_LD_GNU - ! AC_DEFUN([AC_PROG_LD_GNU], ! [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld, ! [# I'd rather use --version here, but apparently some GNU ld's only accept -v. ! if $LD -v 2>&1 &5; then ! lt_cv_prog_gnu_ld=yes ! else ! lt_cv_prog_gnu_ld=no ! fi]) ! with_gnu_ld=$lt_cv_prog_gnu_ld ! ]) ! # AC_PROG_LD_RELOAD_FLAG - find reload flag for linker ! # -- PORTME Some linkers may need a different reload flag. ! AC_DEFUN([AC_PROG_LD_RELOAD_FLAG], ! [AC_CACHE_CHECK([for $LD option to reload object files], lt_cv_ld_reload_flag, ! [lt_cv_ld_reload_flag='-r']) ! reload_flag=$lt_cv_ld_reload_flag ! test -n "$reload_flag" && reload_flag=" $reload_flag" ! ]) ! # AC_DEPLIBS_CHECK_METHOD - 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], ! lt_cv_deplibs_check_method, ! [lt_cv_file_magic_cmd='$MAGIC_CMD' ! lt_cv_file_magic_test_file= ! lt_cv_deplibs_check_method='unknown' ! # Need to set the preceding variable on all platforms that support ! # interlibrary dependencies. ! # 'none' -- dependencies not supported. ! # `unknown' -- same as none, but documents that we really don't know. ! # 'pass_all' -- all dependencies passed with no checks. ! # 'test_compile' -- check by making test program. ! # 'file_magic [[regex]]' -- check by looking for files in library path ! # which responds to the $file_magic_cmd with a given egrep regex. ! # If you have `file' or equivalent on your system and you're not sure ! # whether `pass_all' will *always* work, you probably want this one. ! case $host_os in ! aix4* | aix5*) ! lt_cv_deplibs_check_method=pass_all ! ;; ! beos*) ! lt_cv_deplibs_check_method=pass_all ! ;; ! bsdi4*) ! lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' ! lt_cv_file_magic_cmd='/usr/bin/file -L' ! lt_cv_file_magic_test_file=/shlib/libc.so ! ;; ! cygwin* | mingw* | pw32*) ! lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' ! lt_cv_file_magic_cmd='$OBJDUMP -f' ! ;; ! darwin* | rhapsody*) ! lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library' ! lt_cv_file_magic_cmd='/usr/bin/file -L' ! case "$host_os" in ! rhapsody* | darwin1.[[012]]) ! lt_cv_file_magic_test_file=`echo /System/Library/Frameworks/System.framework/Versions/*/System | head -1` ! ;; ! *) # Darwin 1.3 on ! lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' ! ;; ! esac ! ;; ! freebsd*) ! if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then ! case $host_cpu in ! i*86 ) ! # Not sure whether the presence of OpenBSD here was a mistake. ! # Let's accept both of them until this is cleared up. ! lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library' ! lt_cv_file_magic_cmd=/usr/bin/file ! lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; - esac - else - lt_cv_deplibs_check_method=pass_all - fi - ;; ! gnu*) ! lt_cv_deplibs_check_method=pass_all ! ;; ! hpux10.20*|hpux11*) ! lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library' ! lt_cv_file_magic_cmd=/usr/bin/file ! lt_cv_file_magic_test_file=/usr/lib/libc.sl ! ;; ! irix5* | irix6* | nonstopux*) ! case $host_os in ! irix5* | nonstopux*) ! # this will be overridden with pass_all, but let us keep it just in case ! lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" ! ;; ! *) ! case $LD in ! *-32|*"-32 ") libmagic=32-bit;; ! *-n32|*"-n32 ") libmagic=N32;; ! *-64|*"-64 ") libmagic=64-bit;; ! *) libmagic=never-match;; ! esac ! # this will be overridden with pass_all, but let us keep it just in case ! lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[[1234]] dynamic lib MIPS - version 1" ! ;; ! esac ! lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*` ! lt_cv_deplibs_check_method=pass_all ! ;; ! # This must be Linux ELF. ! linux-gnu*) ! case $host_cpu in ! alpha* | hppa* | i*86 | mips | mipsel | powerpc* | sparc* | ia64*) ! lt_cv_deplibs_check_method=pass_all ;; ! *) ! # glibc up to 2.1.1 does not perform some relocations on ARM ! lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; ! esac ! lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` ! ;; ! netbsd*) ! if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then ! lt_cv_deplibs_check_method='match_pattern /lib[[^/\.]]+\.so\.[[0-9]]+\.[[0-9]]+$' ! else ! lt_cv_deplibs_check_method='match_pattern /lib[[^/\.]]+\.so$' ! fi ! ;; ! newos6*) ! lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' ! lt_cv_file_magic_cmd=/usr/bin/file ! lt_cv_file_magic_test_file=/usr/lib/libnls.so ! ;; ! openbsd*) ! lt_cv_file_magic_cmd=/usr/bin/file ! lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ! if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ! lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object' ! else ! lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' ! fi ! ;; ! osf3* | osf4* | osf5*) ! # this will be overridden with pass_all, but let us keep it just in case ! lt_cv_deplibs_check_method='file_magic COFF format alpha shared library' ! lt_cv_file_magic_test_file=/shlib/libc.so ! lt_cv_deplibs_check_method=pass_all ! ;; ! sco3.2v5*) ! lt_cv_deplibs_check_method=pass_all ! ;; ! solaris*) ! lt_cv_deplibs_check_method=pass_all ! lt_cv_file_magic_test_file=/lib/libc.so ! ;; ! sysv5uw[[78]]* | sysv4*uw2*) ! lt_cv_deplibs_check_method=pass_all ! ;; ! sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ! case $host_vendor in ! motorola) ! lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' ! lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ! ;; ! ncr) ! lt_cv_deplibs_check_method=pass_all ! ;; ! sequent) ! lt_cv_file_magic_cmd='/bin/file' ! lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ! ;; ! sni) ! lt_cv_file_magic_cmd='/bin/file' ! lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" ! lt_cv_file_magic_test_file=/lib/libc.so ! ;; ! siemens) ! lt_cv_deplibs_check_method=pass_all ! ;; ! esac ! ;; ! esac ! ]) ! file_magic_cmd=$lt_cv_file_magic_cmd ! deplibs_check_method=$lt_cv_deplibs_check_method ! ]) ! # AC_PROG_NM - find the path to a BSD-compatible name lister ! AC_DEFUN([AC_PROG_NM], ! [AC_REQUIRE([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR])dnl ! AC_MSG_CHECKING([for BSD-compatible nm]) ! AC_CACHE_VAL(lt_cv_path_NM, ! [if test -n "$NM"; then ! # Let the user override the test. ! lt_cv_path_NM="$NM" ! else ! IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ! for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do ! test -z "$ac_dir" && ac_dir=. ! tmp_nm=$ac_dir/${ac_tool_prefix}nm ! if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then ! # Check to see if the nm accepts a BSD-compat flag. ! # Adding the `sed 1q' prevents false positives on HP-UX, which says: ! # nm: unknown option "B" ignored ! # Tru64's nm complains that /dev/null is an invalid object file ! if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then ! lt_cv_path_NM="$tmp_nm -B" ! break ! elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then ! lt_cv_path_NM="$tmp_nm -p" ! break else ! lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but ! continue # so that we can try to find one that supports BSD flags fi ! fi ! done ! IFS="$ac_save_ifs" ! test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm ! fi]) ! NM="$lt_cv_path_NM" ! AC_MSG_RESULT([$NM]) ]) ! # AC_CHECK_LIBM - check for math library ! AC_DEFUN([AC_CHECK_LIBM], ! [AC_REQUIRE([AC_CANONICAL_HOST])dnl ! LIBM= ! case $host in ! *-*-beos* | *-*-cygwin* | *-*-pw32*) ! # These system don't have libm ! ;; ! *-ncr-sysv4.3*) ! AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") ! AC_CHECK_LIB(m, main, LIBM="$LIBM -lm") ! ;; ! *) ! AC_CHECK_LIB(m, main, LIBM="-lm") ;; esac ! ]) - # AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for - # the libltdl convenience library and LTDLINCL to the include flags for - # the libltdl header and adds --enable-ltdl-convenience to the - # configure arguments. Note that LIBLTDL and LTDLINCL are not - # AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If DIR is not - # provided, it is assumed to be `libltdl'. LIBLTDL will be prefixed - # with '${top_builddir}/' and LTDLINCL will be prefixed with - # '${top_srcdir}/' (note the single quotes!). If your package is not - # flat and you're not using automake, define top_builddir and - # top_srcdir appropriately in the Makefiles. - AC_DEFUN([AC_LIBLTDL_CONVENIENCE], - [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl - case $enable_ltdl_convenience in - no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;; - "") enable_ltdl_convenience=yes - ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;; - esac - LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la - LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) - # For backwards non-gettext consistent compatibility... - INCLTDL="$LTDLINCL" - ]) ! # AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for ! # the libltdl installable library and LTDLINCL to the include flags for ! # the libltdl header and adds --enable-ltdl-install to the configure ! # arguments. Note that LIBLTDL and LTDLINCL are not AC_SUBSTed, nor is ! # AC_CONFIG_SUBDIRS called. If DIR is not provided and an installed ! # libltdl is not found, it is assumed to be `libltdl'. LIBLTDL will ! # be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed ! # with '${top_srcdir}/' (note the single quotes!). If your package is ! # not flat and you're not using automake, define top_builddir and ! # top_srcdir appropriately in the Makefiles. ! # In the future, this macro may have to be called after AC_PROG_LIBTOOL. ! AC_DEFUN([AC_LIBLTDL_INSTALLABLE], ! [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl ! AC_CHECK_LIB(ltdl, main, ! [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no], ! [if test x"$enable_ltdl_install" = xno; then ! AC_MSG_WARN([libltdl not installed, but installation disabled]) ! else ! enable_ltdl_install=yes ! fi ! ]) ! if test x"$enable_ltdl_install" = x"yes"; then ! ac_configure_args="$ac_configure_args --enable-ltdl-install" ! LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la ! LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl']) ! else ! ac_configure_args="$ac_configure_args --enable-ltdl-install=no" ! LIBLTDL="-lltdl" ! LTDLINCL= ! fi ! # For backwards non-gettext consistent compatibility... ! INCLTDL="$LTDLINCL" ! ]) # old names AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) --- 4921,6899 ---- # Old archive suffix (normally "a"). libext="$libext" + # Shared library suffix (normally ".so"). + shrext_cmds='$shrext_cmds' + # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. ! pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) pic_mode=$pic_mode ! # What is the maximum length of a command? ! max_cmd_len=$lt_cv_sys_max_cmd_len ! # Does compiler simultaneously support -c and -o options? ! compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) ! # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? need_lib_prefix=$need_lib_prefix ! # Do we need a version for libraries? ! need_version=$need_version ! ! # Whether dlopen is supported. ! dlopen_support=$enable_dlopen ! ! # Whether dlopen of programs is supported. ! dlopen_self=$enable_dlopen_self ! ! # Whether dlopen of statically linked programs is supported. ! dlopen_self_static=$enable_dlopen_self_static ! ! # Compiler flag to prevent dynamic linking. ! link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1) ! ! # Compiler flag to turn off builtin functions. ! no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) ! ! # Compiler flag to allow reflexive dlopens. ! export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1) ! ! # Compiler flag to generate shared objects directly from archives. ! whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1) ! ! # Compiler flag to generate thread-safe objects. ! thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1) ! ! # Library versioning type. ! version_type=$version_type ! ! # Format of library name prefix. ! libname_spec=$lt_libname_spec ! ! # List of archive names. First name is the real one, the rest are links. ! # The last name is the one that the linker finds with -lNAME. ! library_names_spec=$lt_library_names_spec ! ! # The coded name of the library, if different from the real name. ! soname_spec=$lt_soname_spec ! ! # Commands used to build and install an old-style archive. ! RANLIB=$lt_RANLIB ! old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1) ! old_postinstall_cmds=$lt_old_postinstall_cmds ! old_postuninstall_cmds=$lt_old_postuninstall_cmds ! ! # Create an old-style archive from a shared archive. ! old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1) ! ! # Create a temporary old-style archive to link instead of a shared archive. ! old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) ! ! # Commands used to build and install a shared archive. ! archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1) ! archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1) ! postinstall_cmds=$lt_postinstall_cmds ! postuninstall_cmds=$lt_postuninstall_cmds ! ! # Commands used to build a loadable module (assumed same as above if empty) ! module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1) ! module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1) ! ! # Commands to strip libraries. ! old_striplib=$lt_old_striplib ! striplib=$lt_striplib ! ! # Dependencies to place before the objects being linked to create a ! # shared library. ! predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1) ! ! # Dependencies to place after the objects being linked to create a ! # shared library. ! postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) ! ! # Dependencies to place before the objects being linked to create a ! # shared library. ! predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1) ! ! # Dependencies to place after the objects being linked to create a ! # shared library. ! postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $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) ! ! # Method to check whether dependent libraries are shared objects. ! deplibs_check_method=$lt_deplibs_check_method ! ! # Command to use when deplibs_check_method == file_magic. ! file_magic_cmd=$lt_file_magic_cmd ! ! # Flag that allows shared libraries with undefined symbols to be built. ! allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1) ! ! # Flag that forces no undefined symbols. ! no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1) ! ! # Commands used to finish a libtool library installation in a directory. ! finish_cmds=$lt_finish_cmds ! ! # Same as above, but a single script fragment to be evaled but not shown. ! finish_eval=$lt_finish_eval ! ! # Take the output of nm and produce a listing of raw symbols and C names. ! global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe ! ! # Transform the output of nm in a proper C declaration ! global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl ! ! # Transform the output of nm in a C name address pair ! global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address ! ! # This is the shared library runtime path variable. ! runpath_var=$runpath_var ! ! # This is the shared library path variable. ! shlibpath_var=$shlibpath_var ! ! # Is shlibpath searched before the hard-coded library search path? ! shlibpath_overrides_runpath=$shlibpath_overrides_runpath ! ! # How to hardcode a shared library path into an executable. ! hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1) ! ! # Whether we should hardcode library paths into libraries. ! hardcode_into_libs=$hardcode_into_libs ! ! # Flag to hardcode \$libdir into a binary during linking. ! # This must work even if \$libdir does not exist. ! hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) ! ! # If ld is used when linking, flag to hardcode \$libdir into ! # a binary during linking. This must work even if \$libdir does ! # not exist. ! hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) ! ! # Whether we need a single -rpath flag with a separated argument. ! hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1) ! ! # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the ! # resulting binary. ! hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1) ! ! # Set to yes if using the -LDIR flag during linking hardcodes DIR into the ! # resulting binary. ! hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1) ! ! # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into ! # the resulting binary. ! hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1) ! ! # Set to yes if building a shared library automatically hardcodes DIR into the library ! # and all subsequent libraries and executables linked against it. ! hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1) ! ! # Variables whose values should be saved in libtool wrapper scripts and ! # restored at relink time. ! variables_saved_for_relink="$variables_saved_for_relink" ! ! # Whether libtool must link a program against all its dependency libraries. ! link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1) ! ! # Compile-time system search path for libraries ! sys_lib_search_path_spec=$lt_sys_lib_search_path_spec ! ! # Run-time system search path for libraries ! 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)" ! ! # Set to yes if exported symbols are required. ! always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1) ! ! # The commands to list exported symbols. ! export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1) ! ! # The commands to extract the exported symbol list from a shared archive. ! extract_expsyms_cmds=$lt_extract_expsyms_cmds ! ! # Symbols that should not be listed in the preloaded symbols. ! exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1) ! ! # Symbols that must always be exported. ! include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1) ! ! ifelse([$1],[], ! [# ### END LIBTOOL CONFIG], ! [# ### END LIBTOOL TAG CONFIG: $tagname]) ! ! __EOF__ ! ! ifelse([$1],[], [ ! case $host_os in ! aix3*) ! cat <<\EOF >> "$cfgfile" ! ! # AIX sometimes has problems with the GCC collect2 program. For some ! # reason, if we set the COLLECT_NAMES environment variable, the problems ! # vanish in a puff of smoke. ! if test "X${COLLECT_NAMES+set}" != Xset; then ! COLLECT_NAMES= ! export COLLECT_NAMES ! fi ! EOF ! ;; ! esac ! ! # We use sed instead of cat because bash on DJGPP gets confused if ! # if finds mixed CR/LF and LF-only lines. Since sed operates in ! # text mode, it properly converts lines to CR/LF. This bash problem ! # is reportedly fixed, but why not run on old versions too? ! sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) ! ! mv -f "$cfgfile" "$ofile" || \ ! (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") ! chmod +x "$ofile" ! ]) ! else ! # If there is no Makefile yet, we rely on a make rule to execute ! # `config.status --recheck' to rerun these tests and create the ! # libtool script then. ! ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` ! if test -f "$ltmain_in"; then ! test -f Makefile && make "$ltmain" ! fi ! fi ! ])# AC_LIBTOOL_CONFIG ! ! ! # AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME]) ! # ------------------------------------------- ! AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], ! [AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl ! ! _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= ! ! if test "$GCC" = yes; then ! _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ! ! AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], ! lt_cv_prog_compiler_rtti_exceptions, ! [-fno-rtti -fno-exceptions], [], ! [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) ! fi ! ])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI ! ! ! # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE ! # --------------------------------- ! AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], ! [AC_REQUIRE([AC_CANONICAL_HOST]) ! AC_REQUIRE([AC_PROG_NM]) ! AC_REQUIRE([AC_OBJEXT]) ! # Check for command to grab the raw symbol name followed by C symbol from nm. ! AC_MSG_CHECKING([command to parse $NM output from $compiler object]) ! AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], ! [ ! # These are sane defaults that work on at least a few old systems. ! # [They come from Ultrix. What could be older than Ultrix?!! ;)] ! ! # Character class describing NM global symbol codes. ! symcode='[[BCDEGRST]]' ! ! # Regexp to match symbols that can be accessed directly from C. ! sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' ! ! # Transform an extracted symbol line into a proper C declaration ! lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" ! ! # Transform an extracted symbol line into symbol name and symbol address ! lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ! ! # Define system-specific variables. ! case $host_os in ! aix*) ! symcode='[[BCDT]]' ! ;; ! cygwin* | mingw* | pw32*) ! symcode='[[ABCDGISTW]]' ! ;; ! hpux*) # Its linker distinguishes data from code symbols ! if test "$host_cpu" = ia64; then ! symcode='[[ABCDEGRST]]' ! fi ! lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" ! lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ! ;; ! linux*) ! if test "$host_cpu" = ia64; then ! symcode='[[ABCDGIRSTW]]' ! lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" ! lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ! fi ! ;; ! irix* | nonstopux*) ! symcode='[[BCDEGRST]]' ! ;; ! osf*) ! symcode='[[BCDEGQRST]]' ! ;; ! solaris*) ! symcode='[[BDRT]]' ! ;; ! sco3.2v5*) ! symcode='[[DT]]' ! ;; ! sysv4.2uw2*) ! symcode='[[DT]]' ! ;; ! sysv5* | sco5v6* | unixware* | OpenUNIX*) ! symcode='[[ABDT]]' ! ;; ! sysv4) ! symcode='[[DFNSTU]]' ! ;; ! esac ! ! # Handle CRLF in mingw tool chain ! opt_cr= ! case $build_os in ! mingw*) ! opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ! ;; ! esac ! ! # If we're using GNU nm, then use its standard symbol codes. ! case `$NM -V 2>&1` in ! *GNU* | *'with BFD'*) ! symcode='[[ABCDGIRSTW]]' ;; ! esac ! ! # Try without a prefix undercore, then with it. ! for ac_symprfx in "" "_"; do ! # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. ! symxfrm="\\1 $ac_symprfx\\2 \\2" ! # Write the raw and C identifiers. ! lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" ! # Check to see that the pipe works correctly. ! pipe_works=no ! rm -f conftest* ! cat > conftest.$ac_ext < $nlist) && test -s "$nlist"; then ! # Try sorting and uniquifying the output. ! if sort "$nlist" | uniq > "$nlist"T; then ! mv -f "$nlist"T "$nlist" ! else ! rm -f "$nlist"T ! fi ! # Make sure that we snagged all the symbols we need. ! if grep ' nm_test_var$' "$nlist" >/dev/null; then ! if grep ' nm_test_func$' "$nlist" >/dev/null; then ! cat < conftest.$ac_ext ! #ifdef __cplusplus ! extern "C" { ! #endif ! EOF ! # Now generate the symbol file. ! eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' ! cat <> conftest.$ac_ext ! #if defined (__STDC__) && __STDC__ ! # define lt_ptr_t void * ! #else ! # define lt_ptr_t char * ! # define const ! #endif ! /* The mapping between symbol names and symbols. */ ! const struct { ! const char *name; ! lt_ptr_t address; ! } ! lt_preloaded_symbols[[]] = ! { ! EOF ! $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext ! cat <<\EOF >> conftest.$ac_ext ! {0, (lt_ptr_t) 0} ! }; ! #ifdef __cplusplus ! } ! #endif ! EOF ! # Now try linking the two files. ! mv conftest.$ac_objext conftstm.$ac_objext ! lt_save_LIBS="$LIBS" ! lt_save_CFLAGS="$CFLAGS" ! LIBS="conftstm.$ac_objext" ! CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" ! if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then ! pipe_works=yes ! fi ! LIBS="$lt_save_LIBS" ! CFLAGS="$lt_save_CFLAGS" ! else ! echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD ! fi ! else ! echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD ! fi ! else ! echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD ! fi ! else ! echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD ! cat conftest.$ac_ext >&5 ! fi ! rm -f conftest* conftst* ! # Do not use the global_symbol_pipe unless it works. ! if test "$pipe_works" = yes; then ! break ! else ! lt_cv_sys_global_symbol_pipe= ! fi ! done ! ]) ! if test -z "$lt_cv_sys_global_symbol_pipe"; then ! lt_cv_sys_global_symbol_to_cdecl= ! fi ! if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then ! AC_MSG_RESULT(failed) ! else ! AC_MSG_RESULT(ok) ! fi ! ]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE ! # AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME]) ! # --------------------------------------- ! AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC], ! [_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)= ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= ! _LT_AC_TAGVAR(lt_prog_compiler_static, $1)= ! AC_MSG_CHECKING([for $compiler option to produce PIC]) ! ifelse([$1],[CXX],[ ! # C++ specific cases for pic, static, wl, etc. ! if test "$GXX" = yes; then ! _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ! _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' ! case $host_os in ! aix*) ! # All AIX code is PIC. ! if test "$host_cpu" = ia64; then ! # AIX 5 now supports IA64 processor ! _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ! fi ! ;; ! amigaos*) ! # FIXME: we need at least 68020 code to build shared libraries, but ! # adding the `-m68020' flag to GCC prevents building anything better, ! # like `-m68040'. ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ! ;; ! beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) ! # PIC is the default for these OSes. ! ;; ! mingw* | 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' ! ;; ! darwin* | rhapsody*) ! # PIC is the default on this platform ! # Common symbols not allowed in MH_DYLIB files ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ! ;; ! *djgpp*) ! # DJGPP does not support shared libraries at all ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= ! ;; ! interix3*) ! # Interix 3.x gcc -fpic/-fPIC options generate broken code. ! # Instead, we relocate shared libraries at runtime. ! ;; ! sysv4*MP*) ! if test -d /usr/nec; then ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic ! fi ! ;; ! hpux*) ! # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but ! # not for PA HP-UX. ! case $host_cpu in ! hppa*64*|ia64*) ! ;; ! *) ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ! ;; ! esac ! ;; ! *) ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ! ;; ! esac ! else ! case $host_os in ! aix4* | aix5*) ! # All AIX code is PIC. ! if test "$host_cpu" = ia64; then ! # AIX 5 now supports IA64 processor ! _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ! else ! _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' ! fi ! ;; ! chorus*) ! case $cc_basename in ! cxch68*) ! # Green Hills C++ Compiler ! # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ! ;; ! esac ! ;; ! darwin*) ! # PIC is the default on this platform ! # Common symbols not allowed in MH_DYLIB files ! case $cc_basename in ! xlc*) ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' ! _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ! ;; ! esac ! ;; ! dgux*) ! case $cc_basename in ! ec++*) ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ! ;; ! ghcx*) ! # Green Hills C++ Compiler ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ! ;; ! *) ! ;; ! esac ! ;; ! freebsd* | kfreebsd*-gnu | dragonfly*) ! # FreeBSD uses GNU C++ ! ;; ! hpux9* | hpux10* | hpux11*) ! case $cc_basename in ! CC*) ! _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ! _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ! if test "$host_cpu" != ia64; then ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ! fi ! ;; ! aCC*) ! _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ! _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ! case $host_cpu in ! hppa*64*|ia64*) ! # +Z the default ! ;; ! *) ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ! ;; ! esac ! ;; ! *) ! ;; ! esac ! ;; ! interix*) ! # This is c89, which is MS Visual C++ (no shared libs) ! # Anyone wants to do a port? ! ;; ! irix5* | irix6* | nonstopux*) ! case $cc_basename in ! CC*) ! _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ! _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ! # CC pic flag -KPIC is the default. ! ;; ! *) ! ;; ! esac ! ;; ! linux*) ! case $cc_basename in ! KCC*) ! # KAI C++ Compiler ! _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ! ;; ! icpc* | ecpc*) ! # Intel C++ ! _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ! _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' ! ;; ! pgCC*) ! # 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)='-Bstatic' ! ;; ! cxx*) ! # Compaq C++ ! # Make sure the PIC flag is empty. It appears that all Alpha ! # Linux and Compaq Tru64 Unix objects are PIC. ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= ! _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ! ;; ! *) ! ;; ! esac ! ;; ! lynxos*) ! ;; ! m88k*) ! ;; ! mvs*) ! case $cc_basename in ! cxx*) ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ! ;; ! *) ! ;; ! esac ! ;; ! netbsd*) ! ;; ! osf3* | osf4* | osf5*) ! case $cc_basename in ! KCC*) ! _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ! ;; ! RCC*) ! # Rational C++ 2.4.1 ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ! ;; ! cxx*) ! # Digital/Compaq C++ ! _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ! # Make sure the PIC flag is empty. It appears that all Alpha ! # Linux and Compaq Tru64 Unix objects are PIC. ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= ! _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ! ;; ! *) ! ;; ! esac ! ;; ! psos*) ! ;; ! solaris*) ! case $cc_basename in ! CC*) ! # Sun C++ 4.2, 5.x and Centerline C++ ! _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 ' ! ;; ! gcx*) ! # Green Hills C++ Compiler ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ! ;; ! *) ! ;; ! esac ! ;; ! sunos4*) ! case $cc_basename in ! CC*) ! # Sun C++ 4.x ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ! _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ! ;; ! lcc*) ! # Lucid ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ! ;; ! *) ! ;; ! esac ! ;; ! tandem*) ! case $cc_basename in ! NCC*) ! # NonStop-UX NCC 3.20 ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ! ;; ! *) ! ;; ! esac ! ;; ! sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) ! case $cc_basename in ! CC*) ! _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ! _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ! ;; ! esac ! ;; ! vxworks*) ! ;; ! *) ! _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ! ;; ! esac ! fi ! ], ! [ ! if test "$GCC" = yes; then ! _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ! _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' ! case $host_os in ! aix*) ! # All AIX code is PIC. ! if test "$host_cpu" = ia64; then ! # AIX 5 now supports IA64 processor ! _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ! fi ! ;; ! amigaos*) ! # FIXME: we need at least 68020 code to build shared libraries, but ! # adding the `-m68020' flag to GCC prevents building anything better, ! # like `-m68040'. ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ! ;; ! beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) ! # PIC is the default for these OSes. ! ;; ! mingw* | 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' ! ;; ! darwin* | rhapsody*) ! # PIC is the default on this platform ! # Common symbols not allowed in MH_DYLIB files ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ! ;; ! interix3*) ! # Interix 3.x gcc -fpic/-fPIC options generate broken code. ! # Instead, we relocate shared libraries at runtime. ! ;; ! msdosdjgpp*) ! # Just because we use GCC doesn't mean we suddenly get shared libraries ! # on systems that don't support them. ! _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ! enable_shared=no ! ;; ! sysv4*MP*) ! if test -d /usr/nec; then ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic ! fi ! ;; ! hpux*) ! # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but ! # not for PA HP-UX. ! case $host_cpu in ! hppa*64*|ia64*) ! # +Z the default ! ;; ! *) ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ! ;; ! esac ! ;; ! *) ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ! ;; ! esac ! else ! # PORTME Check for flag to pass linker flags through the system compiler. ! case $host_os in ! aix*) ! _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ! if test "$host_cpu" = ia64; then ! # AIX 5 now supports IA64 processor ! _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ! else ! _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' ! fi ! ;; ! darwin*) ! # PIC is the default on this platform ! # Common symbols not allowed in MH_DYLIB files ! case $cc_basename in ! xlc*) ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-qnocommon' ! _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ! ;; ! esac ! ;; ! mingw* | 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' ! ;; ! ! hpux9* | hpux10* | hpux11*) ! _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ! # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but ! # not for PA HP-UX. ! case $host_cpu in ! hppa*64*|ia64*) ! # +Z the default ! ;; ! *) ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ! ;; ! esac ! # Is there a better lt_prog_compiler_static that works with the bundled CC? ! _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' ! ;; ! irix5* | irix6* | nonstopux*) ! _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ! # PIC (with -KPIC) is the default. ! _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ! ;; ! newsos6) ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ! _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ! ;; ! linux*) ! case $cc_basename in ! icc* | ecc*) ! _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ! _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' ! ;; ! pgcc* | pgf77* | pgf90* | pgf95*) ! # Portland Group compilers (*not* the Pentium gcc compiler, ! # which looks to be a dead project) ! _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)='-Bstatic' ! ;; ! ccc*) ! _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ! # All Alpha code is PIC. ! _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ! ;; ! esac ! ;; ! osf3* | osf4* | osf5*) ! _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ! # All OSF/1 code is PIC. ! _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' ! case $cc_basename in ! f77* | f90* | f95*) ! _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; ! *) ! _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; ! esac ! ;; ! sunos4*) ! _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ! _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ! ;; ! sysv4 | sysv4.2uw2* | sysv4.3*) ! _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ! _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ! ;; ! sysv4*MP*) ! if test -d /usr/nec ;then ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' ! _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ! fi ! ;; ! sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) ! _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ! _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ! ;; ! unicos*) ! _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ! _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ! ;; ! uts4*) ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ! _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ! ;; ! *) ! _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ! ;; ! esac ! fi ! ]) ! AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)]) ! # ! # Check to make sure the PIC flag actually works. ! # ! 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_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [], ! [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in ! "" | " "*) ;; ! *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;; ! esac], ! [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= ! _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) ! fi ! case $host_os in ! # For platforms which do not support PIC, -DPIC is meaningless: ! *djgpp*) ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= ! ;; ! *) ! _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])" ! ;; ! esac ! # ! # Check to make sure the static flag actually works. ! # ! 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_tmp_static_flag, ! [], ! [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) ! ]) ! # AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME]) ! # ------------------------------------ ! # 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]) ! 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*) ! # 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)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' ! else ! _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' ! fi ! ;; ! pw32*) ! _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 '\''s/.* //'\'' | sort | uniq > $export_symbols' ! ;; ! esac ! ],[ ! runpath_var= ! _LT_AC_TAGVAR(allow_undefined_flag, $1)= ! _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no ! _LT_AC_TAGVAR(archive_cmds, $1)= ! _LT_AC_TAGVAR(archive_expsym_cmds, $1)= ! _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)= ! _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)= ! _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= ! _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= ! _LT_AC_TAGVAR(thread_safe_flag_spec, $1)= ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)= ! _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= ! _LT_AC_TAGVAR(hardcode_direct, $1)=no ! _LT_AC_TAGVAR(hardcode_minus_L, $1)=no ! _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported ! _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown ! _LT_AC_TAGVAR(hardcode_automatic, $1)=no ! _LT_AC_TAGVAR(module_cmds, $1)= ! _LT_AC_TAGVAR(module_expsym_cmds, $1)= ! _LT_AC_TAGVAR(always_export_symbols, $1)=no ! _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ! # include_expsyms should be a list of space-separated symbols to be *always* ! # included in the symbol list ! _LT_AC_TAGVAR(include_expsyms, $1)= ! # exclude_expsyms can be an extended regexp of symbols to exclude ! # 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_" ! # 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. ! extract_expsyms_cmds= ! # Just being paranoid about ensuring that cc_basename is set. ! _LT_CC_BASENAME([$compiler]) ! case $host_os in ! cygwin* | mingw* | pw32*) ! # FIXME: the MSVC++ port hasn't been tested in a loooong time ! # When not using gcc, we currently assume that we are using ! # Microsoft Visual C++. ! if test "$GCC" != yes; then ! with_gnu_ld=no ! fi ! ;; ! interix*) ! # we just hope/assume this is gcc and not c89 (= MSVC++) ! with_gnu_ld=yes ! ;; ! openbsd*) ! with_gnu_ld=no ! ;; ! esac ! _LT_AC_TAGVAR(ld_shlibs, $1)=yes ! if test "$with_gnu_ld" = yes; then ! # If archive_cmds runs LD, not CC, wlarc should be empty ! wlarc='${wl}' ! # Set some defaults for GNU ld with shared library support. These ! # are reset later if shared libraries are not supported. Putting them ! # here allows them to be overridden if necessary. ! runpath_var=LD_RUN_PATH ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' ! _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' ! # ancient GNU ld didn't support --whole-archive et. al. ! if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then ! _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' ! else ! _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= ! fi ! supports_anon_versioning=no ! case `$LD -v 2>/dev/null` in ! *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 ! *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... ! *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... ! *\ 2.11.*) ;; # other 2.11 versions ! *) supports_anon_versioning=yes ;; ! esac ! # See if GNU ld supports shared libraries. ! case $host_os in ! aix3* | aix4* | aix5*) ! # On AIX/PPC, the GNU linker is very broken ! if test "$host_cpu" != ia64; then ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! cat <&2 ! *** Warning: the GNU linker, at least up to release 2.9.1, is reported ! *** to be unable to reliably create shared libraries on AIX. ! *** Therefore, libtool is disabling shared libraries support. If you ! *** really care for shared libraries, you may want to modify your PATH ! *** so that a non-GNU linker is found, and then restart. ! EOF ! fi ! ;; ! amigaos*) ! _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ! _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes ! ! # Samuel A. Falvo II reports ! # that the semantics of dynamic libraries on AmigaOS, at least up ! # to version 4, is to share data among multiple programs linked ! # with the same dynamic library. Since this doesn't match the ! # behavior of shared libraries on other platforms, we can't use ! # them. ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! ;; ! beos*) ! if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then ! _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported ! # Joseph Beckenbach says some releases of gcc ! # support --undefined. This deserves some investigation. FIXME ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! else ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! fi ! ;; ! cygwin* | mingw* | pw32*) ! # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, ! # as there is no search path for DLLs. ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ! _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' ! ! 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' ! # If the export-symbols file already is a .def file (1st line ! # is EXPORTS), use it as is; otherwise, prepend... ! _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ! cp $export_symbols $output_objdir/$soname.def; ! else ! echo EXPORTS > $output_objdir/$soname.def; ! cat $export_symbols >> $output_objdir/$soname.def; ! fi~ ! $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ! else ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! fi ! ;; ! interix3*) ! _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}-E' ! # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. ! # Instead, shared libraries are loaded at an image base (0x10000000 by ! # default) and relocated if they conflict, which is a slow very memory ! # consuming and fragmenting process. To avoid this, we pick a random, ! # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link ! # time. Moving up from 0x10000000 also allows more sbrk(2) space. ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ! _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*) ! if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then ! tmp_addflag= ! case $cc_basename,$host_cpu in ! pgcc*) # Portland Group C compiler ! _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' ! tmp_addflag=' $pic_flag' ! ;; ! pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers ! _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' ! tmp_addflag=' $pic_flag -Mnomain' ;; ! ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 ! tmp_addflag=' -i_dynamic' ;; ! efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 ! tmp_addflag=' -i_dynamic -nofor_main' ;; ! 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' ! 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' ! fi ! else ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! fi ! ;; ! netbsd*) ! if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ! _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' ! wlarc= ! else ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ! fi ! ;; ! solaris*) ! if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! cat <&2 ! *** Warning: The releases 2.8.* of the GNU linker cannot reliably ! *** create shared libraries on Solaris systems. Therefore, libtool ! *** is disabling shared libraries support. We urge you to upgrade GNU ! *** binutils to release 2.9.1 or newer. Another option is to modify ! *** your PATH or compiler configuration so that the native linker is ! *** used, and then restart. ! EOF ! elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ! else ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! fi ! ;; ! sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) ! case `$LD -v 2>&1` in ! *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! cat <<_LT_EOF 1>&2 ! *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not ! *** reliably create shared libraries on SCO systems. Therefore, libtool ! *** is disabling shared libraries support. We urge you to upgrade GNU ! *** binutils to release 2.16.91.0.3 or newer. Another option is to modify ! *** your PATH or compiler configuration so that the native linker is ! *** used, and then restart. ! _LT_EOF ! ;; ! *) ! if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' ! _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' ! else ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! fi ! ;; ! esac ! ;; ! sunos4*) ! _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' ! wlarc= ! _LT_AC_TAGVAR(hardcode_direct, $1)=yes ! _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ! ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_AC_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac ! if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no; then ! runpath_var= ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)= ! _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)= ! _LT_AC_TAGVAR(whole_archive_flag_spec, $1)= fi ! else ! # PORTME fill in a description of your system's linker (not GNU ld) ! case $host_os in ! aix3*) ! _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported ! _LT_AC_TAGVAR(always_export_symbols, $1)=yes ! _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' ! # Note: this linker hardcodes the directories in LIBPATH if there ! # are no directories specified by -L. ! _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes ! if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then ! # Neither direct hardcoding nor static linking is supported with a ! # broken collect2. ! _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported ! fi ! ;; ! aix4* | aix5*) ! 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. ! aix_use_runtimelinking=no ! exp_sym_flag='-Bexport' ! no_entry_flag="" ! else ! # 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)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' ! else ! _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols' ! fi ! aix_use_runtimelinking=no ! # 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*) ! for ld_flag in $LDFLAGS; do ! if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then ! aix_use_runtimelinking=yes ! break ! fi ! done ! ;; ! esac + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi ! # When large executables or shared objects are built, AIX ld can ! # have problems creating the table of contents. If linking a library ! # or program results in "error TOC overflow" add -mminimal-toc to ! # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not ! # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. ! ! _LT_AC_TAGVAR(archive_cmds, $1)='' ! _LT_AC_TAGVAR(hardcode_direct, $1)=yes ! _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' ! _LT_AC_TAGVAR(link_all_deplibs, $1)=yes ! ! if test "$GCC" = yes; then ! case $host_os in aix4.[[012]]|aix4.[[012]].*) ! # We only want to do this on AIX 4.2 and lower, the check ! # below for broken collect2 doesn't work under 4.3+ ! collect2name=`${CC} -print-prog-name=collect2` ! if test -f "$collect2name" && \ ! 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 ! # It fails to find uninstalled libraries when the uninstalled ! # path is not listed in the libpath. Setting hardcode_minus_L ! # to unsupported forces relinking ! _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ! _LT_AC_TAGVAR(hardcode_libdir_separator, $1)= ! fi ! ;; esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi fi + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_AC_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an empty executable. + _LT_AC_SYS_LIBPATH_AIX + _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared libraries. + _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; ! amigaos*) ! _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ! _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes ! # see comment about different semantics on the GNU ld section ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! ;; + bsdi[[45]]*) + _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; ! cygwin* | mingw* | pw32*) ! # When not using gcc, we currently assume that we are using ! # Microsoft Visual C++. ! # hardcode_libdir_flag_spec is actually meaningless, as there is ! # no search path for DLLs. ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' ! _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported ! # Tell ltmain to make .lib files, not .a files. ! libext=lib ! # Tell ltmain to make .dll files, not .so files. ! shrext_cmds=".dll" ! # FIXME: Setting linknames here is a bad hack. ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' ! # 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(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' ! _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; ! 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 "$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}' ! 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(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(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(ld_shlibs, $1)=no ! ;; ! esac ! fi ! ;; ! dgux*) ! _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ! _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ! ;; ! freebsd1*) ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! ;; ! # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor ! # support. Future versions do this automatically, but an explicit c++rt0.o ! # does not break anything, and helps significantly (at the cost of a little ! # extra space). ! freebsd2.2*) ! _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ! _LT_AC_TAGVAR(hardcode_direct, $1)=yes ! _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ! ;; ! # Unfortunately, older versions of FreeBSD 2 do not have this feature. ! freebsd2*) ! _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' ! _LT_AC_TAGVAR(hardcode_direct, $1)=yes ! _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes ! _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ! ;; ! # FreeBSD 3 and greater uses gcc -shared to do shared libraries. ! freebsd* | kfreebsd*-gnu | dragonfly*) ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ! _LT_AC_TAGVAR(hardcode_direct, $1)=yes ! _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ! ;; ! hpux9*) ! if test "$GCC" = yes; then ! _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ! else ! _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ! fi ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' ! _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ! _LT_AC_TAGVAR(hardcode_direct, $1)=yes ! ! # hardcode_minus_L: Not really in the search PATH, ! # but as the default location of the library. ! _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes ! _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ! ;; ! hpux10*) ! if test "$GCC" = yes -a "$with_gnu_ld" = no; then ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ! else ! _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ! fi ! if test "$with_gnu_ld" = no; then ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' ! _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ! ! _LT_AC_TAGVAR(hardcode_direct, $1)=yes ! _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ! ! # hardcode_minus_L: Not really in the search PATH, ! # but as the default location of the library. ! _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes ! fi ! ;; ! hpux11*) ! if test "$GCC" = yes -a "$with_gnu_ld" = no; then ! case $host_cpu in ! hppa*64*) ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ! ;; ! ia64*) ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ! ;; ! *) ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ! ;; ! esac ! else ! case $host_cpu in ! hppa*64*) ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ! ;; ! ia64*) ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ! ;; ! *) ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ! ;; ! esac ! fi ! if test "$with_gnu_ld" = no; then ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' ! _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' ! _LT_AC_TAGVAR(hardcode_direct, $1)=no ! _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ! ;; ! *) ! _LT_AC_TAGVAR(hardcode_direct, $1)=yes ! _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' ! ! # hardcode_minus_L: Not really in the search PATH, ! # but as the default location of the library. ! _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes ! ;; ! esac ! fi ;; ! irix5* | irix6* | nonstopux*) ! if test "$GCC" = yes; then ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ! else ! _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir' ! fi ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ! _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ! _LT_AC_TAGVAR(link_all_deplibs, $1)=yes ! ;; ! netbsd*) ! if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ! _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out ! else ! _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF ! fi ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ! _LT_AC_TAGVAR(hardcode_direct, $1)=yes ! _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ! ;; ! newsos6) ! _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ! _LT_AC_TAGVAR(hardcode_direct, $1)=yes ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ! _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ! _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ! ;; ! 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' ! 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 ! ;; ! os2*) ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ! _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes ! _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported ! _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' ! _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ! ;; ! osf3*) ! if test "$GCC" = yes; then ! _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ! else ! _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' ! _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ! fi ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ! _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ! ;; ! osf4* | osf5*) # as osf3* with the addition of -msym flag ! if test "$GCC" = yes; then ! _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' ! else ! _LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' ! _LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ! _LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ ! $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' ! # Both c and cxx compiler support -rpath directly ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ! fi ! _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: ! ;; ! solaris*) ! _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text' ! if test "$GCC" = yes; then ! wlarc='${wl}' ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ! _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ ! $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' ! else ! wlarc='' ! _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' ! _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ ! $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' ! fi ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' ! _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ! 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. ! # 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 ;; ! esac ! _LT_AC_TAGVAR(link_all_deplibs, $1)=yes ! ;; ! sunos4*) ! if test "x$host_vendor" = xsequent; then ! # Use $CC to link under sequent, because it throws in some extra .o ! # files that make .init and .fini sections work. ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' ! else ! _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' ! fi ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ! _LT_AC_TAGVAR(hardcode_direct, $1)=yes ! _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes ! _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ! ;; ! sysv4) ! case $host_vendor in ! sni) ! _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ! _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ! ;; ! siemens) ! ## LD is ld it makes a PLAMLIB ! ## CC just makes a GrossModule. ! _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' ! _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' ! _LT_AC_TAGVAR(hardcode_direct, $1)=no ! ;; ! motorola) ! _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ! _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ! ;; ! esac ! runpath_var='LD_RUN_PATH' ! _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ! ;; ! sysv4.3*) ! _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ! _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ! _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ! ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_AC_TAGVAR(ld_shlibs, $1)=yes + fi + ;; ! sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7*) ! _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 ! runpath_var='LD_RUN_PATH' ! ! if test "$GCC" = yes; then ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ! _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ! _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ! ;; ! ! sysv5* | sco3.2v5* | sco5v6*) ! # Note: We can NOT use -z defs as we might desire, because we do not ! # link with -lc, and that would cause any symbols used from libc to ! # always be unresolved, which means just about no library would ! # ever link correctly. If we're not using GNU ld we use -z text ! # though, which does catch some bad symbols but isn't as heavy-handed ! # as -z defs. ! _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' ! _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' ! _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ! _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' ! _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':' ! _LT_AC_TAGVAR(link_all_deplibs, $1)=yes ! _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' ! runpath_var='LD_RUN_PATH' ! ! if test "$GCC" = yes; then ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ! _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ! else ! _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ! _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ! fi ! ;; ! ! uts4*) ! _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ! _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ! _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no ! ;; ! ! *) ! _LT_AC_TAGVAR(ld_shlibs, $1)=no ! ;; ! esac ! fi ]) + AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)]) + test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no ! # ! # Do we need to explicitly link libc? ! # ! case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in ! x|xyes) ! # Assume -lc should be added ! _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes ! ! if test "$enable_shared" = yes && test "$GCC" = yes; then ! case $_LT_AC_TAGVAR(archive_cmds, $1) in ! *'~'*) ! # FIXME: we may have to deal with multi-command sequences. ! ;; ! '$CC '*) ! # Test whether the compiler implicitly links with -lc since on some ! # systems, -lgcc has to come before -lc. If gcc already passes -lc ! # to ld, don't add -lc before -lgcc. ! AC_MSG_CHECKING([whether -lc should be explicitly linked in]) ! $rm conftest* ! printf "$lt_simple_compile_test_code" > conftest.$ac_ext ! ! if AC_TRY_EVAL(ac_compile) 2>conftest.err; then ! soname=conftest ! lib=conftest ! libobjs=conftest.$ac_objext ! deplibs= ! wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) ! pic_flag=$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) ! compiler_flags=-v ! linker_flags=-v ! verstring= ! output_objdir=. ! libname=conftest ! lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1) ! _LT_AC_TAGVAR(allow_undefined_flag, $1)= ! if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) ! then ! _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ! else ! _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes ! fi ! _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag ! else ! cat conftest.err 1>&5 ! fi ! $rm conftest* ! AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)]) ! ;; ! esac ! fi ;; esac ! ])# AC_LIBTOOL_PROG_LD_SHLIBS ! # _LT_AC_FILE_LTDLL_C ! # ------------------- ! # Be careful that the start marker always follows a newline. ! AC_DEFUN([_LT_AC_FILE_LTDLL_C], [ ! # /* ltdll.c starts here */ ! # #define WIN32_LEAN_AND_MEAN ! # #include ! # #undef WIN32_LEAN_AND_MEAN ! # #include ! # ! # #ifndef __CYGWIN__ ! # # ifdef __CYGWIN32__ ! # # define __CYGWIN__ __CYGWIN32__ ! # # endif ! # #endif ! # ! # #ifdef __cplusplus ! # extern "C" { ! # #endif ! # BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); ! # #ifdef __cplusplus ! # } ! # #endif ! # ! # #ifdef __CYGWIN__ ! # #include ! # DECLARE_CYGWIN_DLL( DllMain ); ! # #endif ! # HINSTANCE __hDllInstance_base; ! # ! # BOOL APIENTRY ! # DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) ! # { ! # __hDllInstance_base = hInst; ! # return TRUE; ! # } ! # /* ltdll.c ends here */ ! ])# _LT_AC_FILE_LTDLL_C ! ! ! # _LT_AC_TAGVAR(VARNAME, [TAGNAME]) ! # --------------------------------- ! AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])]) ! # old names AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL]) *************** *** 4133,4138 **** --- 6907,6922 ---- # This is just to silence aclocal about the macro not being used ifelse([AC_DISABLE_FAST_INSTALL]) + AC_DEFUN([LT_AC_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj, no) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS) + ]) + + AC_DEFUN([LT_AC_PROG_RC], + [AC_CHECK_TOOL(RC, windres, no) + ]) + # 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 # *************** *** 4146,4224 **** AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. - as_executable_p="test -f" 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_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ! if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then ! _sed_list="$_sed_list $as_dir/$ac_prog$ac_exec_ext" fi done done done ! ! # Create a temporary directory, and hook for its removal unless debugging. ! $debug || ! { ! trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 ! trap '{ (exit 1); exit 1; }' 1 2 13 15 ! } ! ! # Create a (secure) tmp directory for tmp files. ! : ${TMPDIR=/tmp} ! { ! tmp=`(umask 077 && mktemp -d -q "$TMPDIR/sedXXXXXX") 2>/dev/null` && ! test -n "$tmp" && test -d "$tmp" ! } || ! { ! tmp=$TMPDIR/sed$$-$RANDOM ! (umask 077 && mkdir $tmp) ! } || ! { ! echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ! { (exit 1); exit 1; } ! } ! _max=0 ! _count=0 ! # Add /usr/xpg4/bin/sed as it is typically found on Solaris ! # along with /bin/sed that truncates output. ! for _sed in $_sed_list /usr/xpg4/bin/sed; do ! test ! -f ${_sed} && break ! cat /dev/null > "$tmp/sed.in" ! _count=0 ! echo ${ECHO_N-$ac_n} "0123456789${ECHO_C-$ac_c}" >"$tmp/sed.in" ! # Check for GNU sed and select it if it is found. ! if "${_sed}" --version 2>&1 < /dev/null | egrep '(GNU)' > /dev/null; then ! lt_cv_path_SED=${_sed} ! break fi - while true; do - cat "$tmp/sed.in" "$tmp/sed.in" >"$tmp/sed.tmp" - mv "$tmp/sed.tmp" "$tmp/sed.in" - cp "$tmp/sed.in" "$tmp/sed.nl" - echo >>"$tmp/sed.nl" - ${_sed} -e 's/a$//' < "$tmp/sed.nl" >"$tmp/sed.out" || break - cmp -s "$tmp/sed.out" "$tmp/sed.nl" || break - # 40000 chars as input seems more than enough - test $_count -gt 10 && break - _count=`expr $_count + 1` - if test $_count -gt $_max; then - _max=$_count - lt_cv_path_SED=$_sed - fi - done done ! rm -rf "$tmp" ]) ! if test "X$SED" != "X"; then ! lt_cv_path_SED=$SED ! else ! SED=$lt_cv_path_SED ! fi AC_MSG_RESULT([$SED]) ]) --- 6930,6980 ---- AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS 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 ! lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done ! lt_ac_max=0 ! lt_ac_count=0 ! # Add /usr/xpg4/bin/sed as it is typically found on Solaris ! # along with /bin/sed that truncates output. ! for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do ! test ! -f $lt_ac_sed && continue ! cat /dev/null > conftest.in ! lt_ac_count=0 ! echo $ECHO_N "0123456789$ECHO_C" >conftest.in ! # Check for GNU sed and select it if it is found. ! if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then ! lt_cv_path_SED=$lt_ac_sed ! break ! fi ! while true; do ! cat conftest.in conftest.in >conftest.tmp ! mv conftest.tmp conftest.in ! cp conftest.in conftest.nl ! echo >>conftest.nl ! $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break ! cmp -s conftest.out conftest.nl || break ! # 10000 chars as input seems more than enough ! test $lt_ac_count -gt 10 && break ! lt_ac_count=`expr $lt_ac_count + 1` ! if test $lt_ac_count -gt $lt_ac_max; then ! lt_ac_max=$lt_ac_count ! lt_cv_path_SED=$lt_ac_sed fi done ! done ]) ! SED=$lt_cv_path_SED AC_MSG_RESULT([$SED]) ]) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/blas/Makefile.in gsl-1.8/blas/Makefile.in *** gsl-1.7/blas/Makefile.in Tue Sep 13 10:04:34 2005 --- gsl-1.8/blas/Makefile.in Fri Mar 31 17:47:29 2006 *************** *** 56,66 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslblas_la_SOURCES) DIST_SOURCES = $(libgslblas_la_SOURCES) --- 56,66 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslblas_la_SOURCES) DIST_SOURCES = $(libgslblas_la_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/block/Makefile.in gsl-1.8/block/Makefile.in *** gsl-1.7/block/Makefile.in Tue Sep 13 10:04:35 2005 --- gsl-1.8/block/Makefile.in Fri Mar 31 17:47:29 2006 *************** *** 62,72 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslblock_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslblock_la_SOURCES) $(test_SOURCES) --- 62,72 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslblock_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslblock_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/cblas/Makefile.in gsl-1.8/cblas/Makefile.in *** gsl-1.7/cblas/Makefile.in Tue Sep 13 10:04:36 2005 --- gsl-1.8/cblas/Makefile.in Fri Mar 31 17:47:30 2006 *************** *** 105,115 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslcblas_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslcblas_la_SOURCES) $(test_SOURCES) --- 105,115 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslcblas_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslcblas_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/cdf/ChangeLog gsl-1.8/cdf/ChangeLog *** gsl-1.7/cdf/ChangeLog Wed Jun 22 14:53:06 2005 --- gsl-1.8/cdf/ChangeLog Thu Mar 9 15:53:02 2006 *************** *** 1,3 **** --- 1,40 ---- + 2006-03-07 Brian Gough + + * poisson.c: added poisson cdf + + * nbinomial.c: added negative binomial cdf + + * hypergeometric.c: added hypergeometric cdf + + * geometric.c: added geometric cdf + + * binomial.c (gsl_cdf_binomial_Q): added binomial cdf + + * test.c: added discrete function tests + + * gamma.c (gsl_cdf_gamma_P, gsl_cdf_gamma_Q): clean up unused + code, ensure that branches make P+Q=1 always true + + * fdistinv.c (gsl_cdf_fdist_Pinv): use P instead of p for consistency + + * fdist.c (gsl_cdf_fdist_Q): use Q instead of P for consistency + + * beta.c (gsl_cdf_beta_Q): use Q instead of P for consistency + + 2006-02-27 Brian Gough + + * fdistinv.c (gsl_cdf_fdist_Pinv, gsl_cdf_fdist_Qinv): added + inverse functions + + * betainv.c (gsl_cdf_beta_Pinv, gsl_cdf_beta_Qinv): added inverse + functions + + * tdistinv.c (gsl_cdf_tdist_Qinv, gsl_cdf_tdist_Pinv): max 32 + iterations, prevent infinite loop + + * gammainv.c (gsl_cdf_gamma_Qinv, gsl_cdf_gamma_Pinv): max 32 + iterations, prevent infinite loop + 2005-06-20 Brian Gough * test.c: removed tests using subnormal values, since they tend to diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/cdf/Makefile.am gsl-1.8/cdf/Makefile.am *** gsl-1.7/cdf/Makefile.am Fri Nov 12 17:17:25 2004 --- gsl-1.8/cdf/Makefile.am Thu Mar 9 15:53:02 2006 *************** *** 5,13 **** INCLUDES= -I$(top_builddir) ! libgslcdf_la_SOURCES = beta.c cauchy.c cauchyinv.c chisq.c chisqinv.c exponential.c exponentialinv.c exppow.c fdist.c flat.c flatinv.c gamma.c gammainv.c gauss.c gaussinv.c gumbel1.c gumbel1inv.c gumbel2.c gumbel2inv.c laplace.c laplaceinv.c logistic.c logisticinv.c lognormal.c lognormalinv.c pareto.c paretoinv.c rayleigh.c rayleighinv.c tdist.c tdistinv.c weibull.c weibullinv.c ! noinst_HEADERS = beta_inc.c rat_eval.h test_auto.c TESTS = $(check_PROGRAMS) --- 5,13 ---- INCLUDES= -I$(top_builddir) ! libgslcdf_la_SOURCES = beta.c betainv.c cauchy.c cauchyinv.c chisq.c chisqinv.c exponential.c exponentialinv.c exppow.c fdist.c fdistinv.c flat.c flatinv.c gamma.c gammainv.c gauss.c gaussinv.c gumbel1.c gumbel1inv.c gumbel2.c gumbel2inv.c laplace.c laplaceinv.c logistic.c logisticinv.c lognormal.c lognormalinv.c pareto.c paretoinv.c rayleigh.c rayleighinv.c tdist.c tdistinv.c weibull.c weibullinv.c binomial.c poisson.c geometric.c nbinomial.c pascal.c hypergeometric.c ! noinst_HEADERS = beta_inc.c rat_eval.h test_auto.c error.h TESTS = $(check_PROGRAMS) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/cdf/Makefile.in gsl-1.8/cdf/Makefile.in *** gsl-1.7/cdf/Makefile.in Tue Sep 13 10:04:37 2005 --- gsl-1.8/cdf/Makefile.in Fri Mar 31 17:47:30 2006 *************** *** 50,63 **** CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libgslcdf_la_LIBADD = ! am_libgslcdf_la_OBJECTS = beta.lo cauchy.lo cauchyinv.lo chisq.lo \ ! chisqinv.lo exponential.lo exponentialinv.lo exppow.lo \ ! fdist.lo flat.lo flatinv.lo gamma.lo gammainv.lo gauss.lo \ ! gaussinv.lo gumbel1.lo gumbel1inv.lo gumbel2.lo gumbel2inv.lo \ ! laplace.lo laplaceinv.lo logistic.lo logisticinv.lo \ ! lognormal.lo lognormalinv.lo pareto.lo paretoinv.lo \ ! rayleigh.lo rayleighinv.lo tdist.lo tdistinv.lo weibull.lo \ ! weibullinv.lo libgslcdf_la_OBJECTS = $(am_libgslcdf_la_OBJECTS) am_test_OBJECTS = test.$(OBJEXT) test_OBJECTS = $(am_test_OBJECTS) --- 50,64 ---- CONFIG_CLEAN_FILES = LTLIBRARIES = $(noinst_LTLIBRARIES) libgslcdf_la_LIBADD = ! am_libgslcdf_la_OBJECTS = beta.lo betainv.lo cauchy.lo cauchyinv.lo \ ! chisq.lo chisqinv.lo exponential.lo exponentialinv.lo \ ! exppow.lo fdist.lo fdistinv.lo flat.lo flatinv.lo gamma.lo \ ! gammainv.lo gauss.lo gaussinv.lo gumbel1.lo gumbel1inv.lo \ ! gumbel2.lo gumbel2inv.lo laplace.lo laplaceinv.lo logistic.lo \ ! logisticinv.lo lognormal.lo lognormalinv.lo pareto.lo \ ! paretoinv.lo rayleigh.lo rayleighinv.lo tdist.lo tdistinv.lo \ ! weibull.lo weibullinv.lo binomial.lo poisson.lo geometric.lo \ ! nbinomial.lo pascal.lo hypergeometric.lo libgslcdf_la_OBJECTS = $(am_libgslcdf_la_OBJECTS) am_test_OBJECTS = test.$(OBJEXT) test_OBJECTS = $(am_test_OBJECTS) *************** *** 70,80 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslcdf_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslcdf_la_SOURCES) $(test_SOURCES) --- 71,81 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslcdf_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslcdf_la_SOURCES) $(test_SOURCES) *************** *** 200,207 **** noinst_LTLIBRARIES = libgslcdf.la pkginclude_HEADERS = gsl_cdf.h INCLUDES = -I$(top_builddir) ! libgslcdf_la_SOURCES = beta.c cauchy.c cauchyinv.c chisq.c chisqinv.c exponential.c exponentialinv.c exppow.c fdist.c flat.c flatinv.c gamma.c gammainv.c gauss.c gaussinv.c gumbel1.c gumbel1inv.c gumbel2.c gumbel2inv.c laplace.c laplaceinv.c logistic.c logisticinv.c lognormal.c lognormalinv.c pareto.c paretoinv.c rayleigh.c rayleighinv.c tdist.c tdistinv.c weibull.c weibullinv.c ! noinst_HEADERS = beta_inc.c rat_eval.h test_auto.c TESTS = $(check_PROGRAMS) test_SOURCES = test.c test_LDADD = libgslcdf.la ../randist/libgslrandist.la ../rng/libgslrng.la ../specfunc/libgslspecfunc.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la --- 201,208 ---- noinst_LTLIBRARIES = libgslcdf.la pkginclude_HEADERS = gsl_cdf.h INCLUDES = -I$(top_builddir) ! libgslcdf_la_SOURCES = beta.c betainv.c cauchy.c cauchyinv.c chisq.c chisqinv.c exponential.c exponentialinv.c exppow.c fdist.c fdistinv.c flat.c flatinv.c gamma.c gammainv.c gauss.c gaussinv.c gumbel1.c gumbel1inv.c gumbel2.c gumbel2inv.c laplace.c laplaceinv.c logistic.c logisticinv.c lognormal.c lognormalinv.c pareto.c paretoinv.c rayleigh.c rayleighinv.c tdist.c tdistinv.c weibull.c weibullinv.c binomial.c poisson.c geometric.c nbinomial.c pascal.c hypergeometric.c ! noinst_HEADERS = beta_inc.c rat_eval.h test_auto.c error.h TESTS = $(check_PROGRAMS) test_SOURCES = test.c test_LDADD = libgslcdf.la ../randist/libgslrandist.la ../rng/libgslrng.la ../specfunc/libgslspecfunc.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/cdf/beta.c gsl-1.8/cdf/beta.c *** gsl-1.7/cdf/beta.c Mon Oct 11 14:33:44 2004 --- gsl-1.8/cdf/beta.c Thu Mar 9 15:53:02 2006 *************** *** 48,54 **** double gsl_cdf_beta_Q (const double x, const double a, const double b) { ! double P; if ( x >= 1.0) { --- 48,54 ---- double gsl_cdf_beta_Q (const double x, const double a, const double b) { ! double Q; if ( x >= 1.0) { *************** *** 60,66 **** return 1.0; } ! P = beta_inc_AXPY (-1.0, 1.0, a, b, x); ! return P; } --- 60,66 ---- return 1.0; } ! Q = beta_inc_AXPY (-1.0, 1.0, a, b, x); ! return Q; } diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/cdf/betainv.c gsl-1.8/cdf/betainv.c *** gsl-1.7/cdf/betainv.c Thu Jan 1 00:00:00 1970 --- gsl-1.8/cdf/betainv.c Mon Feb 27 19:48:34 2006 *************** *** 0 **** --- 1,191 ---- + /* cdf/betainv.c + * + * Copyright (C) 2004 Free Software Foundation, Inc. + * Copyright (C) 2006 Brian Gough + * Written by Jason H. Stover. + * Modified for GSL by Brian Gough + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ + + /* + * Invert the Beta distribution. + * + * References: + * + * Roger W. Abernathy and Robert P. Smith. "Applying Series Expansion + * to the Inverse Beta Distribution to Find Percentiles of the + * F-Distribution," ACM Transactions on Mathematical Software, volume + * 19, number 4, December 1993, pages 474-480. + * + * G.W. Hill and A.W. Davis. "Generalized asymptotic expansions of a + * Cornish-Fisher type," Annals of Mathematical Statistics, volume 39, + * number 8, August 1968, pages 1264-1273. + */ + + #include + #include + #include + #include + #include + #include + #include + + #include "error.h" + + double + gsl_cdf_beta_Pinv (const double P, const double a, const double b) + { + double x, mean; + + if (P < 0.0 || P > 1.0) + { + CDF_ERROR ("P must be in range 0 < P < 1", GSL_EDOM); + } + + if (a < 0.0) + { + CDF_ERROR ("a < 0", GSL_EDOM); + } + + if (b < 0.0) + { + CDF_ERROR ("b < 0", GSL_EDOM); + } + + if (P == 0.0) + { + return 0.0; + } + + if (P == 1.0) + { + return 1.0; + } + + if (P > 0.5) + { + return gsl_cdf_beta_Qinv (1 - P, a, b); + } + + mean = a / (a + b); + + if (P < 0.1) + { + /* small x */ + + double lg_ab = gsl_sf_lngamma (a + b); + double lg_a = gsl_sf_lngamma (a); + double lg_b = gsl_sf_lngamma (b); + + double lx = (log (a) + lg_a + lg_b - lg_ab + log (P)) / a; + x = exp (lx); /* first approximation */ + x *= pow (1 - x, -(b - 1) / a); /* second approximation */ + + if (x > mean) + x = mean; + } + else + { + /* Use expected value as first guess */ + x = mean; + } + + { + double lambda, dP, phi; + unsigned int n = 0; + + start: + dP = P - gsl_cdf_beta_P (x, a, b); + phi = gsl_ran_beta_pdf (x, a, b); + + if (dP == 0.0 || n++ > 64) + goto end; + + lambda = dP / GSL_MAX (2 * fabs (dP / x), phi); + + { + double step0 = lambda; + double step1 = -((a - 1) / x - (b - 1) / (1 - x)) * lambda * lambda / 2; + + double step = step0; + + if (fabs (step1) < fabs (step0)) + { + step += step1; + } + else + { + /* scale back step to a reasonable size when too large */ + step *= 2 * fabs (step0 / step1); + }; + + if (x + step > 0 && x + step < 1) + { + x += step; + } + else + { + x = sqrt (x) * sqrt (mean); /* try a new starting point */ + } + + if (fabs (step0) > 1e-10 * x) + goto start; + } + + end: + return x; + + } + } + + double + gsl_cdf_beta_Qinv (double Q, double a, double b) + { + + if (Q < 0.0 || Q > 1.0) + { + CDF_ERROR ("Q must be inside range 0 < Q < 1", GSL_EDOM); + } + + if (a < 0.0) + { + CDF_ERROR ("a < 0", GSL_EDOM); + } + + if (b < 0.0) + { + CDF_ERROR ("b < 0", GSL_EDOM); + } + + if (Q == 0.0) + { + return 1.0; + } + + if (Q == 1.0) + { + return 0.0; + } + + if (Q > 0.5) + { + return gsl_cdf_beta_Pinv (1 - Q, a, b); + } + else + { + return 1 - gsl_cdf_beta_Pinv (Q, b, a); + }; + } diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/cdf/binomial.c gsl-1.8/cdf/binomial.c *** gsl-1.7/cdf/binomial.c Thu Jan 1 00:00:00 1970 --- gsl-1.8/cdf/binomial.c Thu Mar 9 15:53:02 2006 *************** *** 0 **** --- 1,108 ---- + /* cdf/binomial.c + * + * Copyright (C) 2004 Jason H. Stover. + * Copyright (C) 2004 Giulio Bottazzi + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + + #include + #include + #include + #include + #include + + #include "error.h" + + /* Computes the cumulative distribution function for a binomial + random variable. For a binomial random variable X with n trials + and success probability p, + + Pr( X <= k ) = Pr( Y >= p ) + + where Y is a beta random variable with parameters k+1 and n-k. + + The binomial distribution has the form, + + prob(k) = n!/(k!(n-k)!) * p^k (1-p)^(n-k) for k = 0, 1, ..., n + + The cumulated distributions can be expressed in terms of normalized + incomplete beta functions (see Abramowitz & Stegun eq. 26.5.26 and + eq. 6.6.3). + + Reference: + + W. Feller, "An Introduction to Probability and Its + Applications," volume 1. Wiley, 1968. Exercise 45, page 173, + chapter 6. + */ + + #include + #include + #include + #include + #include + + double + gsl_cdf_binomial_P (const unsigned int k, const double p, const unsigned int n) + { + double P; + double a; + double b; + + if (p > 1.0 || p < 0.0) + { + CDF_ERROR ("p < 0 or p > 1", GSL_EDOM); + } + + if (k >= n) + { + P = 1.0; + } + else + { + a = (double) k + 1.0; + b = (double) n - k; + P = gsl_cdf_beta_Q (p, a, b); + } + + return P; + } + + double + gsl_cdf_binomial_Q (const unsigned int k, const double p, const unsigned int n) + { + double Q; + double a; + double b; + + if (p > 1.0 || p < 0.0) + { + CDF_ERROR ("p < 0 or p > 1", GSL_EDOM); + } + + if (k >= n) + { + Q = 0.0; + } + else + { + a = (double) k + 1.0; + b = (double) n - k; + Q = gsl_cdf_beta_P (p, a, b); + } + + return Q; + } diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/cdf/error.h gsl-1.8/cdf/error.h *** gsl-1.7/cdf/error.h Thu Jan 1 00:00:00 1970 --- gsl-1.8/cdf/error.h Mon Feb 27 19:48:34 2006 *************** *** 0 **** --- 1,4 ---- + /* CDF_ERROR: call the error handler, and return a NAN. */ + + #define CDF_ERROR(reason, gsl_errno) GSL_ERROR_VAL(reason, gsl_errno, GSL_NAN) + diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/cdf/fdist.c gsl-1.8/cdf/fdist.c *** gsl-1.7/cdf/fdist.c Sat Jul 26 13:46:07 2003 --- gsl-1.8/cdf/fdist.c Thu Mar 9 15:53:02 2006 *************** *** 1,6 **** ! /* cdf/f.c * * Copyright (C) 2002 Przemyslaw Sliwa and Jason H. Stover. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by --- 1,7 ---- ! /* cdf/fdist.c * * Copyright (C) 2002 Przemyslaw Sliwa and Jason H. Stover. + * Copyright (C) 2006 Brian Gough * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by *************** *** 18,33 **** --- 19,37 ---- */ #include + #include #include #include #include #include + #include "error.h" #include "beta_inc.c" /* * Lower tail. */ + double gsl_cdf_fdist_P (const double x, const double nu1, const double nu2) { *************** *** 53,76 **** /* * Upper tail. */ double gsl_cdf_fdist_Q (const double x, const double nu1, const double nu2) { ! double P; double r = nu2 / nu1; if (x < r) { double u = x / (r + x); ! P = beta_inc_AXPY (-1.0, 1.0, nu1 / 2.0, nu2 / 2.0, u); } else { double u = r / (r + x); ! P = beta_inc_AXPY (1.0, 0.0, nu2 / 2.0, nu1 / 2.0, u); } ! return P; } --- 57,81 ---- /* * Upper tail. */ + double gsl_cdf_fdist_Q (const double x, const double nu1, const double nu2) { ! double Q; double r = nu2 / nu1; if (x < r) { double u = x / (r + x); ! Q = beta_inc_AXPY (-1.0, 1.0, nu1 / 2.0, nu2 / 2.0, u); } else { double u = r / (r + x); ! Q = beta_inc_AXPY (1.0, 0.0, nu2 / 2.0, nu1 / 2.0, u); } ! return Q; } diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/cdf/fdistinv.c gsl-1.8/cdf/fdistinv.c *** gsl-1.7/cdf/fdistinv.c Thu Jan 1 00:00:00 1970 --- gsl-1.8/cdf/fdistinv.c Thu Mar 9 15:53:02 2006 *************** *** 0 **** --- 1,104 ---- + /* cdf/fdistinv.c + * + * Copyright (C) 2002 Przemyslaw Sliwa and Jason H. Stover. + * Copyright (C) 2006 Brian Gough + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ + + #include + #include + #include + #include + + #include "error.h" + + double + gsl_cdf_fdist_Pinv (const double P, const double nu1, const double nu2) + { + double result; + double y; + + if (P < 0.0) + { + CDF_ERROR ("P < 0.0", GSL_EDOM); + } + if (P > 1.0) + { + CDF_ERROR ("P > 1.0", GSL_EDOM); + } + if (nu1 < 1.0) + { + CDF_ERROR ("nu1 < 1", GSL_EDOM); + } + if (nu2 < 1.0) + { + CDF_ERROR ("nu2 < 1", GSL_EDOM); + } + + if (P < 0.5) + { + y = gsl_cdf_beta_Pinv (P, nu1 / 2.0, nu2 / 2.0); + + result = nu2 * y / (nu1 * (1.0 - y)); + } + else + { + y = gsl_cdf_beta_Qinv (P, nu2 / 2.0, nu1 / 2.0); + + result = nu2 * (1 - y) / (nu1 * y); + } + + return result; + } + + double + gsl_cdf_fdist_Qinv (const double Q, const double nu1, const double nu2) + { + double result; + double y; + + if (Q < 0.0) + { + CDF_ERROR ("Q < 0.0", GSL_EDOM); + } + if (Q > 1.0) + { + CDF_ERROR ("Q > 1.0", GSL_EDOM); + } + if (nu1 < 1.0) + { + CDF_ERROR ("nu1 < 1", GSL_EDOM); + } + if (nu2 < 1.0) + { + CDF_ERROR ("nu2 < 1", GSL_EDOM); + } + + if (Q > 0.5) + { + y = gsl_cdf_beta_Qinv (Q, nu1 / 2.0, nu2 / 2.0); + + result = nu2 * y / (nu1 * (1.0 - y)); + } + else + { + y = gsl_cdf_beta_Pinv (Q, nu2 / 2.0, nu1 / 2.0); + + result = nu2 * (1 - y) / (nu1 * y); + } + + return result; + } diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/cdf/gamma.c gsl-1.8/cdf/gamma.c *** gsl-1.7/cdf/gamma.c Tue Jul 29 19:47:37 2003 --- gsl-1.8/cdf/gamma.c Thu Mar 9 15:53:02 2006 *************** *** 27,81 **** #include #include - #define LARGE_A 85 - - /* - * Use the normal approximation as defined in - * - * D.B. Peizer and J.W. Pratt. "A Normal Approximation - * for Binomial, F, Beta, and Other Common, Related Tail - * Probabilities, I." Journal of the American Statistical - * Association, volume 63, issue 324, Dec. 1968. pp 1416-1456. - * - * This initial coding of the approximation is giving obviously - * incorrect errors. - */ - - #if 0 - static double - norm_arg (double x, double a) - { - double t; - double arg = x + (1.0 / 3.0) - a - (0.02 / a); - double u = (a - 0.5) / x; - - if (fabs (u - 1.0) < GSL_DBL_EPSILON) - { - t = 0.0; - } - else if (fabs (u) < GSL_DBL_EPSILON) - { - t = 1.0; - } - else if (u > 0.0) - { - double v = 1.0 - u; - t = (1.0 - u * u + 2 * u * log (u)) / (v * v); - } - else - { - t = GSL_NAN; - } - - arg *= sqrt ((1 + t) / x); - - return arg; - } - #endif - - /* - * Wrapper for the functions that do the work. - */ double gsl_cdf_gamma_P (const double x, const double a, const double b) { --- 27,32 ---- *************** *** 87,102 **** return 0.0; } ! #if 0 /* Not currently working to sufficient accuracy in tails */ ! if (a > LARGE_A) { ! /* Use Peizer and Pratt's normal approximation for large A. */ ! ! double z = norm_arg (y, a); ! P = gsl_cdf_ugaussian_P (z); } else - #endif { P = gsl_sf_gamma_inc_P (a, y); } --- 38,48 ---- return 0.0; } ! if (y > a) { ! P = 1 - gsl_sf_gamma_inc_Q (a, y); } else { P = gsl_sf_gamma_inc_P (a, y); } *************** *** 107,113 **** double gsl_cdf_gamma_Q (const double x, const double a, const double b) { ! double P; double y = x / b; if (x <= 0.0) --- 53,59 ---- double gsl_cdf_gamma_Q (const double x, const double a, const double b) { ! double Q; double y = x / b; if (x <= 0.0) *************** *** 115,134 **** return 1.0; } ! #if 0 /* Not currently working to sufficient accuracy in tails */ ! if (a > LARGE_A) { ! /* ! * Peizer and Pratt's approximation mentioned above. ! */ ! double z = norm_arg (y, a); ! P = gsl_cdf_ugaussian_Q (z); } else - #endif { ! P = gsl_sf_gamma_inc_Q (a, y); } ! return P; } --- 61,74 ---- return 1.0; } ! if (y < a) { ! Q = 1 - gsl_sf_gamma_inc_P (a, y); } else { ! Q = gsl_sf_gamma_inc_Q (a, y); } ! return Q; } diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/cdf/gammainv.c gsl-1.8/cdf/gammainv.c *** gsl-1.7/cdf/gammainv.c Sat Jul 26 13:47:05 2003 --- gsl-1.8/cdf/gammainv.c Mon Feb 27 19:48:14 2006 *************** *** 69,80 **** { double lambda, dP, phi; start: dP = P - gsl_cdf_gamma_P (x, a, 1.0); phi = gsl_ran_gamma_pdf (x, a, 1.0); ! if (dP == 0.0) goto end; lambda = dP / GSL_MAX (2 * fabs (dP / x), phi); --- 69,81 ---- { double lambda, dP, phi; + unsigned int n = 0; start: dP = P - gsl_cdf_gamma_P (x, a, 1.0); phi = gsl_ran_gamma_pdf (x, a, 1.0); ! if (dP == 0.0 || n++ > 32) goto end; lambda = dP / GSL_MAX (2 * fabs (dP / x), phi); *************** *** 147,158 **** { double lambda, dQ, phi; start: dQ = Q - gsl_cdf_gamma_Q (x, a, 1.0); phi = gsl_ran_gamma_pdf (x, a, 1.0); ! if (dQ == 0.0) goto end; lambda = -dQ / GSL_MAX (2 * fabs (dQ / x), phi); --- 148,160 ---- { double lambda, dQ, phi; + unsigned int n = 0; start: dQ = Q - gsl_cdf_gamma_Q (x, a, 1.0); phi = gsl_ran_gamma_pdf (x, a, 1.0); ! if (dQ == 0.0 || n++ > 32) goto end; lambda = -dQ / GSL_MAX (2 * fabs (dQ / x), phi); diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/cdf/geometric.c gsl-1.8/cdf/geometric.c *** gsl-1.7/cdf/geometric.c Thu Jan 1 00:00:00 1970 --- gsl-1.8/cdf/geometric.c Thu Mar 9 15:53:02 2006 *************** *** 0 **** --- 1,89 ---- + /* cdf/geometric.c + * + * Copyright (C) 2004 Jason H. Stover. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ + + #include + #include + #include + #include + #include + + #include "error.h" + + /* Pr (X <= k), i.e., the probability of n or fewer failures until the + first success. */ + + double + gsl_cdf_geometric_P (const unsigned int k, const double p) + { + double P, a, q; + + if (p > 1.0 || p < 0.0) + { + CDF_ERROR ("p < 0 or p > 1", GSL_EDOM); + } + + if (k < 1) + { + return 0.0; + } + + q = 1.0 - p; + a = (double) k; + + if (p < 0.5) + { + P = -expm1 (a * log1p (-p)); + } + else + { + P = 1.0 - pow (q, a); + } + + return P; + } + + double + gsl_cdf_geometric_Q (const unsigned int k, const double p) + { + double Q, a, q; + + if (p > 1.0 || p < 0.0) + { + CDF_ERROR ("p < 0 or p > 1", GSL_EDOM); + } + + if (k < 1) + { + Q = 1.0; + } + + q = 1.0 - p; + a = (double) k; + + if (p < 0.5) + { + Q = exp (a * log1p (-p)); + } + else + { + Q = pow (q, a); + } + + return Q; + } diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/cdf/gsl_cdf.h gsl-1.8/cdf/gsl_cdf.h *** gsl-1.7/cdf/gsl_cdf.h Fri Nov 12 17:17:25 2004 --- gsl-1.8/cdf/gsl_cdf.h Thu Mar 9 15:53:02 2006 *************** *** 94,102 **** --- 94,108 ---- double gsl_cdf_fdist_P (const double x, const double nu1, const double nu2); double gsl_cdf_fdist_Q (const double x, const double nu1, const double nu2); + double gsl_cdf_fdist_Pinv (const double P, const double nu1, const double nu2); + double gsl_cdf_fdist_Qinv (const double Q, const double nu1, const double nu2); + double gsl_cdf_beta_P (const double x, const double a, const double b); double gsl_cdf_beta_Q (const double x, const double a, const double b); + double gsl_cdf_beta_Pinv (const double P, const double a, const double b); + double gsl_cdf_beta_Qinv (const double Q, const double a, const double b); + double gsl_cdf_flat_P (const double x, const double a, const double b); double gsl_cdf_flat_Q (const double x, const double a, const double b); *************** *** 139,144 **** --- 145,170 ---- double gsl_cdf_logistic_Pinv (const double P, const double a); double gsl_cdf_logistic_Qinv (const double Q, const double a); + double gsl_cdf_binomial_P (const unsigned int k, const double p, const unsigned int n); + double gsl_cdf_binomial_Q (const unsigned int k, const double p, const unsigned int n); + + double gsl_cdf_poisson_P (const unsigned int k, const double mu); + double gsl_cdf_poisson_Q (const unsigned int k, const double mu); + + double gsl_cdf_geometric_P (const unsigned int k, const double p); + double gsl_cdf_geometric_Q (const unsigned int k, const double p); + + double gsl_cdf_negative_binomial_P (const unsigned int k, const double p, const double n); + double gsl_cdf_negative_binomial_Q (const unsigned int k, const double p, const double n); + + double gsl_cdf_pascal_P (const unsigned int k, const double p, const unsigned int n); + double gsl_cdf_pascal_Q (const unsigned int k, const double p, const unsigned int n); + + double gsl_cdf_hypergeometric_P (const unsigned int k, const unsigned int n1, + const unsigned int n2, const unsigned int t); + double gsl_cdf_hypergeometric_Q (const unsigned int k, const unsigned int n1, + const unsigned int n2, const unsigned int t); + __END_DECLS #endif /* __GSL_CDF_H__ */ diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/cdf/hypergeometric.c gsl-1.8/cdf/hypergeometric.c *** gsl-1.7/cdf/hypergeometric.c Thu Jan 1 00:00:00 1970 --- gsl-1.8/cdf/hypergeometric.c Thu Mar 9 15:53:02 2006 *************** *** 0 **** --- 1,183 ---- + /* cdf/hypergeometric.c + * + * Copyright (C) 2004 Jason H. Stover. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ + + /* + * Computes the cumulative distribution function for a hypergeometric + * random variable. A hypergeometric random variable X is the number + * of elements of type 1 in a sample of size t, drawn from a population + * of size n1 + n2, in which n1 are of type 1 and n2 are of type 2. + * + * This algorithm computes Pr( X <= k ) by summing the terms from + * the mass function, Pr( X = k ). + * + * References: + * + * T. Wu. An accurate computation of the hypergeometric distribution + * function. ACM Transactions on Mathematical Software. Volume 19, number 1, + * March 1993. + * This algorithm is not used, since it requires factoring the + * numerator and denominator, then cancelling. It is more accurate + * than the algorithm used here, but the cancellation requires more + * time than the algorithm used here. + * + * W. Feller. An Introduction to Probability Theory and Its Applications, + * third edition. 1968. Chapter 2, section 6. + */ + + #include + #include + #include + #include + #include + #include + + #include "error.h" + + static double + lower_tail (const unsigned int k, const unsigned int n1, + const unsigned int n2, const unsigned int t) + { + double relerr; + int i = k; + double s, P; + + s = gsl_ran_hypergeometric_pdf (i, n1, n2, t); + P = s; + + while (i > 0) + { + double factor = + (i / (n1 - i + 1.0)) * ((n2 + i - t) / (t - i + 1.0)); + s *= factor; + P += s; + relerr = s / P; + if (relerr < GSL_DBL_EPSILON) + break; + i--; + } + + return P; + } + + static double + upper_tail (const unsigned int k, const unsigned int n1, + const unsigned int n2, const unsigned int t) + { + double relerr; + unsigned int i = k + 1; + double s, Q; + + s = gsl_ran_hypergeometric_pdf (i, n1, n2, t); + Q = s; + + while (i < t) + { + double factor = + ((n1 - i) / (i + 1.0)) * ((t - i) / (n2 + i + 1.0 - t)); + s *= factor; + Q += s; + relerr = s / Q; + if (relerr < GSL_DBL_EPSILON) + break; + i++; + } + + return Q; + } + + + + + /* + * Pr (X <= k) + */ + double + gsl_cdf_hypergeometric_P (const unsigned int k, + const unsigned int n1, + const unsigned int n2, const unsigned int t) + { + double P; + + if (t > (n1 + n2)) + { + CDF_ERROR ("t larger than population size", GSL_EDOM); + } + else if (k >= n1 || k >= t) + { + P = 1.0; + } + else if (k < 0.0) + { + P = 0.0; + } + else + { + double midpoint = (int) (t * n1 / (n1 + n2)); + + if (k >= midpoint) + { + P = 1 - upper_tail (k, n1, n2, t); + } + else + { + P = lower_tail (k, n1, n2, t); + } + } + + return P; + } + + /* + * Pr (X > k) + */ + double + gsl_cdf_hypergeometric_Q (const unsigned int k, + const unsigned int n1, + const unsigned int n2, const unsigned int t) + { + double Q; + + if (t > (n1 + n2)) + { + CDF_ERROR ("t larger than population size", GSL_EDOM); + } + else if (k >= n1 || k >= t) + { + Q = 0.0; + } + else if (k < 0.0) + { + Q = 1.0; + } + else + { + double midpoint = (int) (t * n1 / (n1 + n2)); + + if (k < midpoint) + { + Q = 1 - lower_tail (k, n1, n2, t); + } + else + { + Q = upper_tail (k, n1, n2, t); + } + } + + return Q; + } diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/cdf/nbinomial.c gsl-1.8/cdf/nbinomial.c *** gsl-1.7/cdf/nbinomial.c Thu Jan 1 00:00:00 1970 --- gsl-1.8/cdf/nbinomial.c Thu Mar 9 15:53:02 2006 *************** *** 0 **** --- 1,83 ---- + /* cdf/negbinom.c + * + * Copyright (C) 2004 Jason H. Stover. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ + + #include + #include + #include + #include + #include + + #include "error.h" + + /* + * Pr(X <= k) for a negative binomial random variable X, i.e., + * the probability of k or fewer failuers before success n. + */ + + double + gsl_cdf_negative_binomial_P (const unsigned int k, const double p, const double n) + { + double P; + double a; + double b; + + if (p > 1.0 || p < 0.0) + { + CDF_ERROR ("p < 0 or p > 1", GSL_EDOM); + } + + if (n < 0) + { + CDF_ERROR ("n < 0", GSL_EDOM); + } + + a = (double) n; + b = (double) k + 1.0; + P = gsl_cdf_beta_P (p, a, b); + + return P; + } + + /* + * Pr ( X > k ). + */ + + double + gsl_cdf_negative_binomial_Q (const unsigned int k, const double p, const double n) + { + double Q; + double a; + double b; + + if (p > 1.0 || p < 0.0) + { + CDF_ERROR ("p < 0 or p > 1", GSL_EDOM); + } + + if (n < 0) + { + CDF_ERROR ("n < 0", GSL_EDOM); + } + + a = (double) n; + b = (double) k + 1.0; + Q = gsl_cdf_beta_Q (p, a, b); + + return Q; + } diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/cdf/pascal.c gsl-1.8/cdf/pascal.c *** gsl-1.7/cdf/pascal.c Thu Jan 1 00:00:00 1970 --- gsl-1.8/cdf/pascal.c Thu Mar 9 15:53:02 2006 *************** *** 0 **** --- 1,40 ---- + /* cdf/pascal.c + * + * Copyright (C) 2006 Brian Gough + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + + #include + #include + #include + #include + + /* The Pascal distribution is a negative binomial with valued integer n */ + + + double + gsl_cdf_pascal_P (const unsigned int k, const double p, const unsigned int n) + { + double P = gsl_cdf_negative_binomial_P (k, p, (double) n); + return P; + } + + double + gsl_cdf_pascal_Q (const unsigned int k, const double p, const unsigned int n) + { + double Q = gsl_cdf_negative_binomial_Q (k, p, (double) n); + return Q; + } diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/cdf/poisson.c gsl-1.8/cdf/poisson.c *** gsl-1.7/cdf/poisson.c Thu Jan 1 00:00:00 1970 --- gsl-1.8/cdf/poisson.c Thu Mar 9 15:53:02 2006 *************** *** 0 **** --- 1,84 ---- + /* cdf/poisson.c + * + * Copyright (C) 2004 Jason H. Stover. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ + + /* + * Computes the cumulative distribution function for a Poisson + * random variable. For a Poisson random variable X with parameter + * mu, + * + * Pr( X <= k ) = Pr( Y >= p ) + * + * where Y is a gamma random variable with parameters k+1 and 1. + * + * Reference: + * + * W. Feller, "An Introduction to Probability and Its + * Applications," volume 1. Wiley, 1968. Exercise 46, page 173, + * chapter 6. + */ + + #include + #include + #include + #include + #include + + #include "error.h" + + /* + * Pr (X <= k) for a Poisson random variable X. + */ + + double + gsl_cdf_poisson_P (const unsigned int k, const double mu) + { + double P; + double a; + + if (mu <= 0.0) + { + CDF_ERROR ("mu <= 0", GSL_EDOM); + } + + a = (double) k + 1.0; + P = gsl_cdf_gamma_Q (mu, a, 1.0); + + return P; + } + + /* + * Pr ( X > k ) for a Possion random variable X. + */ + + double + gsl_cdf_poisson_Q (const unsigned int k, const double mu) + { + double Q; + double a; + + if (mu <= 0.0) + { + CDF_ERROR ("mu <= 0", GSL_EDOM); + } + + a = (double) k + 1.0; + Q = gsl_cdf_gamma_P (mu, a, 1.0); + + return Q; + } diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/cdf/tdistinv.c gsl-1.8/cdf/tdistinv.c *** gsl-1.7/cdf/tdistinv.c Fri Jul 25 15:18:09 2003 --- gsl-1.8/cdf/tdistinv.c Mon Feb 27 19:48:14 2006 *************** *** 99,110 **** { double dP, phi; start: dP = P - gsl_cdf_tdist_P (x, nu); phi = gsl_ran_tdist_pdf (x, nu); ! if (dP == 0.0) goto end; { --- 99,111 ---- { double dP, phi; + unsigned int n = 0; start: dP = P - gsl_cdf_tdist_P (x, nu); phi = gsl_ran_tdist_pdf (x, nu); ! if (dP == 0.0 || n++ > 32) goto end; { *************** *** 192,203 **** { double dQ, phi; start: dQ = Q - gsl_cdf_tdist_Q (x, nu); phi = gsl_ran_tdist_pdf (x, nu); ! if (dQ == 0.0) goto end; { --- 193,205 ---- { double dQ, phi; + unsigned int n = 0; start: dQ = Q - gsl_cdf_tdist_Q (x, nu); phi = gsl_ran_tdist_pdf (x, nu); ! if (dQ == 0.0 || n++ > 32) goto end; { diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/cdf/test.c gsl-1.8/cdf/test.c *** gsl-1.7/cdf/test.c Wed Jun 22 14:53:06 2005 --- gsl-1.8/cdf/test.c Thu Mar 9 15:53:02 2006 *************** *** 22,27 **** --- 22,28 ---- #include #include #include + #include #include #include #include *************** *** 49,62 **** void test_gammainv (void); void test_chisqinv (void); void test_tdistinv (void); #include "test_auto.c" int main (void) { gsl_ieee_env_setup (); ! /* Tests for gaussian cumulative distribution function Function values computed with PARI, 28 digits precision */ --- 50,341 ---- void test_gammainv (void); void test_chisqinv (void); void test_tdistinv (void); + void test_betainv (void); + void test_finv (void); #include "test_auto.c" + struct range { unsigned int min; unsigned int max; } ; + double test_binomial_pdf (unsigned int n); + double test_binomial_cdf_P (unsigned int n); + double test_binomial_cdf_Q (unsigned int n); + + struct range + test_binomial_range (void) + { + struct range r = {0, 5}; + return r; + } + + double + test_binomial_pdf (unsigned int k) + { + return gsl_ran_binomial_pdf (k, 0.3, 5); + } + + double + test_binomial_cdf_P (unsigned int k) + { + return gsl_cdf_binomial_P (k, 0.3, 5); + } + + double + test_binomial_cdf_Q (unsigned int k) + { + return gsl_cdf_binomial_Q (k, 0.3, 5); + } + + struct range + test_poisson_range (void) + { + struct range r = {0, 25}; + return r; + } + + double + test_poisson_pdf (unsigned int k) + { + return gsl_ran_poisson_pdf (k, 2.3); + } + + double + test_poisson_cdf_P (unsigned int k) + { + return gsl_cdf_poisson_P (k, 2.3); + } + + double + test_poisson_cdf_Q (unsigned int k) + { + return gsl_cdf_poisson_Q (k, 2.3); + } + + struct range + test_geometric_range (void) + { + struct range r = {0, 25}; + return r; + } + + double + test_geometric_pdf (unsigned int k) + { + return gsl_ran_geometric_pdf (k, 0.3); + } + + double + test_geometric_cdf_P (unsigned int k) + { + return gsl_cdf_geometric_P (k, 0.3); + } + + double + test_geometric_cdf_Q (unsigned int k) + { + return gsl_cdf_geometric_Q (k, 0.3); + } + + struct range + test_negative_binomial_range (void) + { + struct range r = {0, 15}; + return r; + } + + double + test_negative_binomial_pdf (unsigned int k) + { + return gsl_ran_negative_binomial_pdf (k, 0.3, 5.3); + } + + double + test_negative_binomial_cdf_P (unsigned int k) + { + return gsl_cdf_negative_binomial_P (k, 0.3, 5.3); + } + + double + test_negative_binomial_cdf_Q (unsigned int k) + { + return gsl_cdf_negative_binomial_Q (k, 0.3, 5.3); + } + + struct range + test_pascal_range (void) + { + struct range r = {0, 15}; + return r; + } + + double + test_pascal_pdf (unsigned int k) + { + return gsl_ran_pascal_pdf (k, 0.3, 5); + } + + double + test_pascal_cdf_P (unsigned int k) + { + return gsl_cdf_pascal_P (k, 0.3, 5); + } + + double + test_pascal_cdf_Q (unsigned int k) + { + return gsl_cdf_pascal_Q (k, 0.3, 5); + } + + struct range + test_hypergeometric_range (void) + { + struct range r = {0, 26}; + return r; + } + + double + test_hypergeometric_pdf (unsigned int k) + { + return gsl_ran_hypergeometric_pdf (k, 7, 19, 13); + } + + double + test_hypergeometric_cdf_P (unsigned int k) + { + return gsl_cdf_hypergeometric_P (k, 7, 19, 13); + } + + double + test_hypergeometric_cdf_Q (unsigned int k) + { + return gsl_cdf_hypergeometric_Q (k, 7, 19, 13); + } + + #ifdef LOGARITHMIC + struct range + test_logarithmic_range (void) + { + struct range r = {1, 200}; + return r; + } + + double + test_logarithmic_pdf (unsigned int k) + { + return gsl_ran_logarithmic_pdf (k, 0.9); + } + + double + test_logarithmic_cdf_P (unsigned int k) + { + return gsl_cdf_logarithmic_P (k, 0.9); + } + + double + test_logarithmic_cdf_Q (unsigned int k) + { + return gsl_cdf_logarithmic_Q (k, 0.9); + } + #endif + + void + test_discrete_cdf_P (double (*pdf)(unsigned int), + double (*cdf_P)(unsigned int), + struct range (*range)(void), + const char * desc) + { + double sum; + double tol = TEST_TOL2; + int i, min, max; + + struct range r = range(); + + min = r.min; + max = r.max; + sum = 0.0; + + for (i = min; i <= max; i++) + { + double pi = pdf(i); + double Pi = cdf_P(i); + sum += pi; + gsl_test_rel (Pi, sum, tol, desc, i); + } + } + + void + test_discrete_cdf_Q (double (*pdf)(unsigned int), + double (*cdf_Q)(unsigned int), + struct range (*range)(void), + const char * desc) + { + double sum; + double tol = TEST_TOL2; + int i, min, max; + + struct range r = range(); + + min = r.min; + max = r.max; + sum = cdf_Q(max); + + for (i = max; i >= min; i--) + { + double pi = pdf(i); + double Qi = cdf_Q(i); + gsl_test_rel (Qi, sum, tol, desc, i); + sum += pi; + } + } + + void + test_discrete_cdf_PQ (double (*cdf_P)(unsigned int), + double (*cdf_Q)(unsigned int), + struct range (*range)(void), + const char * desc) + { + double sum; + double tol = GSL_DBL_EPSILON; + int i, min, max; + + struct range r = range(); + + min = r.min; + max = r.max; + + for (i = min; i <= max; i++) + { + double Pi = cdf_P(i); + double Qi = cdf_Q(i); + sum = Pi + Qi; + gsl_test_rel (sum, 1.0, tol, desc, i); + } + + } + + #define TEST_DISCRETE(name) do { \ + test_discrete_cdf_P(&test_ ## name ## _pdf, &test_ ## name ## _cdf_P, &test_ ## name ## _range, "test gsl_cdf_" #name "_P (k=%d)") ; \ + test_discrete_cdf_Q(&test_ ## name ## _pdf, &test_ ## name ## _cdf_Q, &test_ ## name ## _range, "test gsl_cdf_" #name "_Q (k=%d)") ; \ + test_discrete_cdf_PQ(&test_ ## name ## _cdf_P, &test_ ## name ## _cdf_Q, &test_ ## name ## _range, "test gsl_cdf_" #name "_P+Q (k=%d)") ; \ + } while (0); + int main (void) { gsl_ieee_env_setup (); ! ! TEST_DISCRETE(binomial); ! TEST_DISCRETE(poisson); ! TEST_DISCRETE(geometric); ! TEST_DISCRETE(negative_binomial); ! TEST_DISCRETE(pascal); ! TEST_DISCRETE(hypergeometric); ! ! #ifdef LOGARITHMIC ! TEST_DISCRETE(logarithmic); ! #endif ! ! exit (gsl_test_summary ()); ! /* Tests for gaussian cumulative distribution function Function values computed with PARI, 28 digits precision */ *************** *** 74,79 **** --- 353,360 ---- test_gammainv (); test_chisqinv (); test_tdistinv (); + test_betainv (); + test_finv (); test_auto_beta (); test_auto_fdist (); *************** *** 550,555 **** --- 831,949 ---- TEST (gsl_cdf_fdist_Q, (10000.0, 200.0, 500.0), 0.0, 0.0); } + void test_finv (void) { + TEST (gsl_cdf_fdist_Pinv, (0.0, 1.2, 1.3), 0.0, 0.0); + TEST (gsl_cdf_fdist_Pinv, ( 6.98194275525039002e-61, 1.2, 1.3), 1e-100, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 1.10608485860238564e-2, 1.2, 1.3), 0.001, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 4.38636757068313850e-2, 1.2, 1.3), 0.01, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 1.68242392712840734e-1, 1.2, 1.3), 0.1, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 3.14130045246195449e-1, 1.2, 1.3), 0.325, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 5.09630779074755253e-01, 1.2, 1.3), 1.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 5.83998640641553852e-1, 1.2, 1.3), 1.5, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 6.34733581351938787e-1, 1.2, 1.3), 2.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 8.48446237879200975e-1, 1.2, 1.3), 10.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 9.00987726336875039e-1, 1.2, 1.3), 20.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 9.64489127047688435e-1, 1.2, 1.3), 100.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 9.92012051694116388e-1, 1.2, 1.3), 1000.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 9.98210862808842585e-1, 1.2, 1.3), 10000.0, TEST_TOL6); + + TEST (gsl_cdf_fdist_Qinv, ( 1.0, 1.2, 1.3), 0.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 9.88939151413976144e-1, 1.2, 1.3), 0.001, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 9.56136324293168615e-1, 1.2, 1.3), 0.01, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 8.31757607287159265e-1, 1.2, 1.3), 0.1, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 6.85869954753804551e-1, 1.2, 1.3), 0.325, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 4.90369220925244747e-1, 1.2, 1.3), 1.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 4.16001359358446148e-1, 1.2, 1.3), 1.5, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 3.65266418648061213e-1, 1.2, 1.3), 2.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 1.51553762120799025e-1, 1.2, 1.3), 10.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 9.90122736631249612e-2, 1.2, 1.3), 20.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 3.55108729523115643e-2, 1.2, 1.3), 100.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 7.98794830588361109e-3, 1.2, 1.3), 1000.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 1.7891371911574145e-3, 1.2, 1.3), 10000.0, TEST_TOL6); + + + TEST (gsl_cdf_fdist_Pinv, ( 0.0, 500.0, 1.3), 0.0, 0.0); + + TEST (gsl_cdf_fdist_Pinv, ( 9.83434460393304765e-141, 500.0, 1.3), 0.001, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 1.45915624888550014e-26, 500.0, 1.3), 0.01, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 5.89976509619688165e-4, 500.0, 1.3), 0.1, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 6.86110486051542533e-2, 500.0, 1.3), 0.325, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 3.38475053806404615e-1, 500.0, 1.3), 1.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 4.52016245247457422e-1, 500.0, 1.3), 1.5, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 5.27339068937388798e-1, 500.0, 1.3), 2.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 8.16839628578413905e-1, 500.0, 1.3), 10.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 8.81784623056911406e-1, 500.0, 1.3), 20.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 9.58045057204221295e-1, 500.0, 1.3), 100.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 9.90585749380655275e-1, 500.0, 1.3), 1000.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 9.97891924831461387e-1, 500.0, 1.3), 10000.0, TEST_TOL6); + + TEST (gsl_cdf_fdist_Qinv, ( 1.0, 500.0, 1.3), 0.0, TEST_TOL6); + + /* + * The algorithm currently implemented in gsl_cdf_fdist_Qinv and Pinv + * are not accurate for very large degrees of freedom, so the tests + * here are commented out. Another algorithm more suitable for + * these extreme values might pass these tests. + */ + + TEST (gsl_cdf_fdist_Qinv, ( 9.99410023490380312e-1, 500.0, 1.3), 0.1, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 9.31388951394845747e-1, 500.0, 1.3), 0.325, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 6.61524946193595385e-1, 500.0, 1.3), 1.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 5.47983754752542572e-1, 500.0, 1.3), 1.5, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 4.72660931062611202e-1, 500.0, 1.3), 2.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 1.83160371421586096e-1, 500.0, 1.3), 10.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 1.18215376943088595e-1, 500.0, 1.3), 20.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 4.19549427957787016e-2, 500.0, 1.3), 100.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 9.41425061934473424e-3, 500.0, 1.3), 1000.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 2.10807516853862603e-3, 500.0, 1.3), 10000.0, TEST_TOL6); + + TEST (gsl_cdf_fdist_Pinv, ( 0.0, 1.2, 500.0), 0.0, 0.0); + TEST (gsl_cdf_fdist_Pinv, ( 8.23342055585482999e-61, 1.2, 500.0), 1e-100, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 1.30461496441289529e-2, 1.2, 500.0), 0.001, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 5.18324224608033294e-2, 1.2, 500.0), 0.01, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 2.02235101716076289e-1, 1.2, 500.0), 0.1, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 3.90502983219393749e-1, 1.2, 500.0), 0.325, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 6.67656191574653619e-1, 1.2, 500.0), 1.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 7.75539230271467054e-1, 1.2, 500.0), 1.5, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 8.45209114904613705e-1, 1.2, 500.0), 2.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 9.99168017659120988e-1, 1.2, 500.0), 10.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 9.99998005738371669e-1, 1.2, 500.0), 20.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 1.0, 1.2, 500.0), GSL_POSINF, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 1.0, 1.2, 500.0), GSL_POSINF, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 1.0, 1.2, 500.0), GSL_POSINF, TEST_TOL6); + + TEST (gsl_cdf_fdist_Qinv, ( 1.0, 1.2, 500.0), 0.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 9.86953850355871047e-1, 1.2, 500.0), 0.001, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 9.48167577539196671e-1, 1.2, 500.0), 0.01, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 7.97764898283923711e-1, 1.2, 500.0), 0.1, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 6.09497016780606251e-1, 1.2, 500.0), 0.325, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 3.32343808425346381e-1, 1.2, 500.0), 1.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 2.24460769728532946e-1, 1.2, 500.0), 1.5, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 1.54790885095386295e-1, 1.2, 500.0), 2.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 8.3198234087901168e-4, 1.2, 500.0), 10.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 1.99426162833131e-6, 1.2, 500.0), 20.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 6.23302662288217117e-25, 1.2, 500.0), 100.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 1.14328577259666930e-134, 1.2, 500.0), 1000.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 0.0, 1.2, 500.0), GSL_POSINF, 0.0); + + TEST (gsl_cdf_fdist_Pinv, ( 0.0, 200.0, 500.0), 0.0, 0.0); + TEST (gsl_cdf_fdist_Pinv, ( 4.09325080403669893e-251, 200.0, 500.0), 0.001, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 1.17894325419628688e-151, 200.0, 500.0), 0.01, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 5.92430940796861258e-57, 200.0, 500.0), 0.1, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 3.18220452357263554e-18, 200.0, 500.0), 0.325, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 5.06746326121168266e-1, 200.0, 500.0), 1.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 9.99794175718712438e-1, 200.0, 500.0), 1.5, TEST_TOL6); + TEST (gsl_cdf_fdist_Pinv, ( 1.0, 200.0, 500.0), GSL_POSINF, TEST_TOL6); + + TEST (gsl_cdf_fdist_Qinv, ( 1.0, 200.0, 500.0), 0.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 4.93253673878831734e-1, 200.0, 500.0), 1.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 2.05824281287561795e-4, 200.0, 500.0), 1.5, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 4.71763848371410786e-10, 200.0, 500.0), 2.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 5.98048337181948436e-96, 200.0, 500.0), 10.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 2.92099265879979502e-155, 200.0, 500.0), 20.0, TEST_TOL6); + TEST (gsl_cdf_fdist_Qinv, ( 0.0, 200.0, 500.0), GSL_POSINF, 0.0); + } + /* Tests for gamma distribution */ /* p(x, a, b) := gammaP(b, x / a) */ *************** *** 708,713 **** --- 1102,1133 ---- TEST (gsl_cdf_beta_Q, (1.0, 1.2, 1.3), 0.0, TEST_TOL6); } + void test_betainv (void) { + TEST (gsl_cdf_beta_Pinv, (0.0, 1.2, 1.3), 0.0, 0.0); + TEST (gsl_cdf_beta_Pinv, ( 1.34434944656489596e-120, 1.2, 1.3), 1e-100, TEST_TOL6); + TEST (gsl_cdf_beta_Pinv, ( 3.37630042504535813e-4, 1.2, 1.3), 0.001, TEST_TOL6); + TEST (gsl_cdf_beta_Pinv, ( 5.34317264038929473e-3, 1.2, 1.3), 0.01, TEST_TOL6); + TEST (gsl_cdf_beta_Pinv, ( 8.33997828306748346e-2, 1.2, 1.3), 0.1, TEST_TOL6); + TEST (gsl_cdf_beta_Pinv, ( 3.28698654180583916e-1, 1.2, 1.3), 0.325, TEST_TOL6); + TEST (gsl_cdf_beta_Pinv, ( 5.29781429451299081e-1, 1.2, 1.3), 0.5, TEST_TOL6); + TEST (gsl_cdf_beta_Pinv, ( 9.38529397224430659e-1, 1.2, 1.3), 0.9, TEST_TOL6); + TEST (gsl_cdf_beta_Pinv, ( 9.96886438341254380e-1, 1.2, 1.3), 0.99, TEST_TOL6); + TEST (gsl_cdf_beta_Pinv, ( 9.99843792833067634e-1, 1.2, 1.3), 0.999, TEST_TOL6); + TEST (gsl_cdf_beta_Pinv, ( 1.0, 1.2, 1.3), 1.0, TEST_TOL6); + + TEST (gsl_cdf_beta_Qinv, ( 1.0, 1.2, 1.3), 0.0, 0.0); + TEST (gsl_cdf_beta_Qinv, ( 1e0, 1.2, 1.3), 0.0, TEST_TOL6); + TEST (gsl_cdf_beta_Qinv, ( 9.99662369957495464e-1, 1.2, 1.3), 0.001, TEST_TOL6); + TEST (gsl_cdf_beta_Qinv, ( 9.94656827359610705e-1, 1.2, 1.3), 0.01, TEST_TOL6); + TEST (gsl_cdf_beta_Qinv, ( 9.16600217169325165e-1, 1.2, 1.3), 0.1, TEST_TOL6); + TEST (gsl_cdf_beta_Qinv, ( 6.71301345819416084e-1, 1.2, 1.3), 0.325, TEST_TOL6); + TEST (gsl_cdf_beta_Qinv, ( 4.70218570548700919e-1, 1.2, 1.3), 0.5, TEST_TOL6); + TEST (gsl_cdf_beta_Qinv, ( 6.14706027755693408e-2, 1.2, 1.3), 0.9, TEST_TOL6); + TEST (gsl_cdf_beta_Qinv, ( 3.11356165874561958e-3, 1.2, 1.3), 0.99, TEST_TOL6); + TEST (gsl_cdf_beta_Qinv, ( 1.56207166932365759e-4, 1.2, 1.3), 0.999, TEST_TOL6); + TEST (gsl_cdf_beta_Qinv, ( 0.0, 1.2, 1.3), 1.0, TEST_TOL6); + } + void test_gammainv (void) { TEST (gsl_cdf_gamma_Pinv, (0.0, 1.0, 1.0), 0.0, 0.0); TEST (gsl_cdf_gamma_Pinv, (1e-100, 1.0, 1.0), 1e-100, TEST_TOL6); diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/cheb/Makefile.in gsl-1.8/cheb/Makefile.in *** gsl-1.7/cheb/Makefile.in Tue Sep 13 10:04:38 2005 --- gsl-1.8/cheb/Makefile.in Fri Mar 31 17:47:30 2006 *************** *** 62,72 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslcheb_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslcheb_la_SOURCES) $(test_SOURCES) --- 62,72 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslcheb_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslcheb_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/combination/Makefile.in gsl-1.8/combination/Makefile.in *** gsl-1.7/combination/Makefile.in Tue Sep 13 10:04:39 2005 --- gsl-1.8/combination/Makefile.in Fri Mar 31 17:47:31 2006 *************** *** 63,73 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslcombination_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslcombination_la_SOURCES) $(test_SOURCES) --- 63,73 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslcombination_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslcombination_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/complex/Makefile.in gsl-1.8/complex/Makefile.in *** gsl-1.7/complex/Makefile.in Tue Sep 13 10:04:41 2005 --- gsl-1.8/complex/Makefile.in Fri Mar 31 17:47:31 2006 *************** *** 62,72 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslcomplex_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslcomplex_la_SOURCES) $(test_SOURCES) --- 62,72 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslcomplex_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslcomplex_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/config.guess gsl-1.8/config.guess *** gsl-1.7/config.guess Mon Jun 16 09:54:25 2003 --- gsl-1.8/config.guess Tue Mar 21 15:21:43 2006 *************** *** 1,9 **** #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, ! # 2000, 2001, 2002 Free Software Foundation, Inc. ! timestamp='2002-10-21' # 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 --- 1,9 ---- #! /bin/sh # Attempt to guess a canonical system name. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, ! # 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ! timestamp='2005-12-13' # 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 *************** *** 17,29 **** # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software ! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. --- 17,31 ---- # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software ! # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA ! # 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. + # Originally written by Per Bothner . # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. *************** *** 53,59 **** GNU config.guess ($timestamp) Originally written by Per Bothner. ! Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO --- 55,61 ---- GNU config.guess ($timestamp) Originally written by Per Bothner. ! Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO *************** *** 66,76 **** while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) ! echo "$timestamp" ; exit 0 ;; --version | -v ) ! echo "$version" ; exit 0 ;; --help | --h* | -h ) ! echo "$usage"; exit 0 ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. --- 68,78 ---- while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) ! echo "$timestamp" ; exit ;; --version | -v ) ! echo "$version" ; exit ;; --help | --h* | -h ) ! echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. *************** *** 98,111 **** # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. ! # This shell variable is my proudest work .. or something. --bje ! set_cc_for_build='tmpdir=${TMPDIR-/tmp}/config-guess-$$ ; ! (old=`umask` && umask 077 && mkdir $tmpdir && umask $old && unset old) ! || (echo "$me: cannot create $tmpdir" >&2 && exit 1) ; ! dummy=$tmpdir/dummy ; ! files="$dummy.c $dummy.o $dummy.rel $dummy" ; ! trap '"'"'rm -f $files; rmdir $tmpdir; exit 1'"'"' 1 2 15 ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do --- 100,117 ---- # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. ! # Portable tmp directory creation inspired by the Autoconf team. ! set_cc_for_build=' ! trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; ! trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; ! : ${TMPDIR=/tmp} ; ! { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || ! { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || ! { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || ! { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; ! dummy=$tmp/dummy ; ! tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > $dummy.c ; for c in cc gcc c89 c99 ; do *************** *** 113,127 **** CC_FOR_BUILD="$c"; break ; fi ; done ; - rm -f $files ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; ! esac ; ! unset files' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) --- 119,131 ---- CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; ! esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) *************** *** 178,321 **** ;; esac # The OS release ! release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" ! exit 0 ;; ! amiga:OpenBSD:*:*) ! echo m68k-unknown-openbsd${UNAME_RELEASE} ! exit 0 ;; ! arc:OpenBSD:*:*) ! echo mipsel-unknown-openbsd${UNAME_RELEASE} ! exit 0 ;; ! hp300:OpenBSD:*:*) ! echo m68k-unknown-openbsd${UNAME_RELEASE} ! exit 0 ;; ! mac68k:OpenBSD:*:*) ! echo m68k-unknown-openbsd${UNAME_RELEASE} ! exit 0 ;; ! macppc:OpenBSD:*:*) ! echo powerpc-unknown-openbsd${UNAME_RELEASE} ! exit 0 ;; ! mvme68k:OpenBSD:*:*) ! echo m68k-unknown-openbsd${UNAME_RELEASE} ! exit 0 ;; ! mvme88k:OpenBSD:*:*) ! echo m88k-unknown-openbsd${UNAME_RELEASE} ! exit 0 ;; ! mvmeppc:OpenBSD:*:*) ! echo powerpc-unknown-openbsd${UNAME_RELEASE} ! exit 0 ;; ! pmax:OpenBSD:*:*) ! echo mipsel-unknown-openbsd${UNAME_RELEASE} ! exit 0 ;; ! sgi:OpenBSD:*:*) ! echo mipseb-unknown-openbsd${UNAME_RELEASE} ! exit 0 ;; ! sun3:OpenBSD:*:*) ! echo m68k-unknown-openbsd${UNAME_RELEASE} ! exit 0 ;; ! wgrisc:OpenBSD:*:*) ! echo mipsel-unknown-openbsd${UNAME_RELEASE} ! exit 0 ;; *:OpenBSD:*:*) ! echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} ! exit 0 ;; alpha:OSF1:*:*) ! if test $UNAME_RELEASE = "V4.0"; then UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ! fi # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. ! eval $set_cc_for_build ! cat <$dummy.s ! .data ! \$Lformat: ! .byte 37,100,45,37,120,10,0 # "%d-%x\n" ! ! .text ! .globl main ! .align 4 ! .ent main ! main: ! .frame \$30,16,\$26,0 ! ldgp \$29,0(\$27) ! .prologue 1 ! .long 0x47e03d80 # implver \$0 ! lda \$2,-1 ! .long 0x47e20c21 # amask \$2,\$1 ! lda \$16,\$Lformat ! mov \$0,\$17 ! not \$1,\$18 ! jsr \$26,printf ! ldgp \$29,0(\$26) ! mov 0,\$16 ! jsr \$26,exit ! .end main ! EOF ! $CC_FOR_BUILD -o $dummy $dummy.s 2>/dev/null ! if test "$?" = 0 ; then ! case `$dummy` in ! 0-0) ! UNAME_MACHINE="alpha" ! ;; ! 1-0) ! UNAME_MACHINE="alphaev5" ! ;; ! 1-1) ! UNAME_MACHINE="alphaev56" ! ;; ! 1-101) ! UNAME_MACHINE="alphapca56" ! ;; ! 2-303) ! UNAME_MACHINE="alphaev6" ! ;; ! 2-307) ! UNAME_MACHINE="alphaev67" ! ;; ! 2-1307) ! UNAME_MACHINE="alphaev68" ! ;; ! 3-1307) ! UNAME_MACHINE="alphaev7" ! ;; ! esac ! fi ! rm -f $dummy.s $dummy && rmdir $tmpdir ! echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` ! exit 0 ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix ! exit 0 ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 ! exit 0 ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 ! exit 0;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos ! exit 0 ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos ! exit 0 ;; *:OS/390:*:*) echo i370-ibm-openedition ! exit 0 ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} ! exit 0;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp ! exit 0;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then --- 182,306 ---- ;; esac # The OS release ! # Debian GNU/NetBSD machines have a different userland, and ! # thus, need a distinct triplet. However, they do not need ! # kernel version information, so it can be replaced with a ! # suitable tag, in the style of linux-gnu. ! case "${UNAME_VERSION}" in ! Debian*) ! release='-gnu' ! ;; ! *) ! release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` ! ;; ! esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" ! exit ;; *:OpenBSD:*:*) ! UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` ! echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} ! exit ;; ! *:ekkoBSD:*:*) ! echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} ! exit ;; ! macppc:MirBSD:*:*) ! echo powerppc-unknown-mirbsd${UNAME_RELEASE} ! exit ;; ! *:MirBSD:*:*) ! echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} ! exit ;; alpha:OSF1:*:*) ! case $UNAME_RELEASE in ! *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ! ;; ! *5.*) ! UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ! ;; ! esac ! # According to Compaq, /usr/sbin/psrinfo has been available on ! # OSF/1 and Tru64 systems produced since 1995. I hope that ! # covers most systems running today. This code pipes the CPU ! # types through head -n 1, so we only detect the type of CPU 0. ! ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` ! case "$ALPHA_CPU_TYPE" in ! "EV4 (21064)") ! UNAME_MACHINE="alpha" ;; ! "EV4.5 (21064)") ! UNAME_MACHINE="alpha" ;; ! "LCA4 (21066/21068)") ! UNAME_MACHINE="alpha" ;; ! "EV5 (21164)") ! UNAME_MACHINE="alphaev5" ;; ! "EV5.6 (21164A)") ! UNAME_MACHINE="alphaev56" ;; ! "EV5.6 (21164PC)") ! UNAME_MACHINE="alphapca56" ;; ! "EV5.7 (21164PC)") ! UNAME_MACHINE="alphapca57" ;; ! "EV6 (21264)") ! UNAME_MACHINE="alphaev6" ;; ! "EV6.7 (21264A)") ! UNAME_MACHINE="alphaev67" ;; ! "EV6.8CB (21264C)") ! UNAME_MACHINE="alphaev68" ;; ! "EV6.8AL (21264B)") ! UNAME_MACHINE="alphaev68" ;; ! "EV6.8CX (21264D)") ! UNAME_MACHINE="alphaev68" ;; ! "EV6.9A (21264/EV69A)") ! UNAME_MACHINE="alphaev69" ;; ! "EV7 (21364)") ! UNAME_MACHINE="alphaev7" ;; ! "EV7.9 (21364A)") ! UNAME_MACHINE="alphaev79" ;; ! esac ! # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. ! echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` ! exit ;; Alpha\ *:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # Should we change UNAME_MACHINE based on the output of uname instead # of the specific Alpha model? echo alpha-pc-interix ! exit ;; 21064:Windows_NT:50:3) echo alpha-dec-winnt3.5 ! exit ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 ! exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-amigaos ! exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo ${UNAME_MACHINE}-unknown-morphos ! exit ;; *:OS/390:*:*) echo i370-ibm-openedition ! exit ;; ! *:z/VM:*:*) ! echo s390-ibm-zvmoe ! exit ;; ! *:OS400:*:*) ! echo powerpc-ibm-os400 ! exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix${UNAME_RELEASE} ! exit ;; ! arm:riscos:*:*|arm:RISCOS:*:*) ! echo arm-unknown-riscos ! exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp ! exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then *************** *** 323,351 **** else echo pyramid-pyramid-bsd fi ! exit 0 ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 ! exit 0 ;; ! DRS?6000:UNIX_SV:4.2*:7*) case `/usr/bin/uname -p` in ! sparc) echo sparc-icl-nx7 && exit 0 ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ! exit 0 ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ! exit 0 ;; i86pc:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ! exit 0 ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ! exit 0 ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) --- 308,339 ---- else echo pyramid-pyramid-bsd fi ! exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 ! exit ;; ! DRS?6000:unix:4.0:6*) ! echo sparc-icl-nx6 ! exit ;; ! DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in ! sparc) echo sparc-icl-nx7; exit ;; esac ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ! exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ! exit ;; i86pc:SunOS:5.*:*) echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ! exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ! exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) *************** *** 354,363 **** esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` ! exit 0 ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} ! exit 0 ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 --- 342,351 ---- esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` ! exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos${UNAME_RELEASE} ! exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 *************** *** 369,378 **** echo sparc-sun-sunos${UNAME_RELEASE} ;; esac ! exit 0 ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} ! exit 0 ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor --- 357,366 ---- echo sparc-sun-sunos${UNAME_RELEASE} ;; esac ! exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos${UNAME_RELEASE} ! exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor *************** *** 383,419 **** # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} ! exit 0 ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} ! exit 0 ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} ! exit 0 ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} ! exit 0 ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} ! exit 0 ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} ! exit 0 ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} ! exit 0 ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 ! exit 0 ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} ! exit 0 ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} ! exit 0 ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} ! exit 0 ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c --- 371,410 ---- # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} ! exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} ! exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint${UNAME_RELEASE} ! exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint${UNAME_RELEASE} ! exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint${UNAME_RELEASE} ! exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint${UNAME_RELEASE} ! exit ;; ! m68k:machten:*:*) ! echo m68k-apple-machten${UNAME_RELEASE} ! exit ;; powerpc:machten:*:*) echo powerpc-apple-machten${UNAME_RELEASE} ! exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 ! exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix${UNAME_RELEASE} ! exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix${UNAME_RELEASE} ! exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix${UNAME_RELEASE} ! exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c *************** *** 437,469 **** exit (-1); } EOF ! $CC_FOR_BUILD -o $dummy $dummy.c \ ! && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ ! && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 ! rm -f $dummy.c $dummy && rmdir $tmpdir echo mips-mips-riscos${UNAME_RELEASE} ! exit 0 ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax ! exit 0 ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax ! exit 0 ;; ! Night_Hawk:*:*:PowerMAX_OS) echo powerpc-harris-powermax ! exit 0 ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix ! exit 0 ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 ! exit 0 ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 ! exit 0 ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 ! exit 0 ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` --- 428,460 ---- exit (-1); } EOF ! $CC_FOR_BUILD -o $dummy $dummy.c && ! dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && ! SYSTEM_NAME=`$dummy $dummyarg` && ! { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos${UNAME_RELEASE} ! exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax ! exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax ! exit ;; ! Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax ! exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix ! exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 ! exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 ! exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 ! exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` *************** *** 479,507 **** else echo i586-dg-dgux${UNAME_RELEASE} fi ! exit 0 ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 ! exit 0 ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 ! exit 0 ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 ! exit 0 ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd ! exit 0 ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` ! exit 0 ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. ! echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id ! exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix ! exit 0 ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` --- 470,498 ---- else echo i586-dg-dgux${UNAME_RELEASE} fi ! exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 ! exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 ! exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 ! exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd ! exit ;; *:IRIX*:*:*) echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` ! exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. ! echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id ! exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix ! exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` *************** *** 509,515 **** IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} ! exit 0 ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build --- 500,506 ---- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} ! exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval $set_cc_for_build *************** *** 524,538 **** exit(0); } EOF ! $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 ! rm -f $dummy.c $dummy && rmdir $tmpdir ! echo rs6000-ibm-aix3.2.5 elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi ! exit 0 ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then --- 515,532 ---- exit(0); } EOF ! if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` ! then ! echo "$SYSTEM_NAME" ! else ! echo rs6000-ibm-aix3.2.5 ! fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi ! exit ;; *:AIX:*:[45]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then *************** *** 546,573 **** IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} ! exit 0 ;; *:AIX:*:*) echo rs6000-ibm-aix ! exit 0 ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 ! exit 0 ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to ! exit 0 ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx ! exit 0 ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 ! exit 0 ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd ! exit 0 ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 ! exit 0 ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in --- 540,567 ---- IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} fi echo ${IBM_ARCH}-ibm-aix${IBM_REV} ! exit ;; *:AIX:*:*) echo rs6000-ibm-aix ! exit ;; ibmrt:4.4BSD:*|romp-ibm:BSD:*) echo romp-ibm-bsd4.4 ! exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to ! exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx ! exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 ! exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd ! exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 ! exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` case "${UNAME_MACHINE}" in *************** *** 624,639 **** } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` ! if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi ! rm -f $dummy.c $dummy && rmdir $tmpdir fi ;; esac echo ${HP_ARCH}-hp-hpux${HPUX_REV} ! exit 0 ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} ! exit 0 ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c --- 618,653 ---- } EOF (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` ! test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac + if [ ${HP_ARCH} = "hppa2.0w" ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + grep __LP64__ >/dev/null + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi echo ${HP_ARCH}-hp-hpux${HPUX_REV} ! exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux${HPUX_REV} ! exit ;; 3050*:HI-UX:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c *************** *** 661,806 **** exit (0); } EOF ! $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 ! rm -f $dummy.c $dummy && rmdir $tmpdir echo unknown-hitachi-hiuxwe2 ! exit 0 ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd ! exit 0 ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd ! exit 0 ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix ! exit 0 ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf ! exit 0 ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf ! exit 0 ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi ! exit 0 ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites ! exit 0 ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd ! exit 0 ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi ! exit 0 ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd ! exit 0 ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd ! exit 0 ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd ! exit 0 ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ! exit 0 ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' ! exit 0 ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ! exit 0 ;; ! CRAY*T3D:*:*:*) ! echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ! exit 0 ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ! exit 0 ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ! exit 0 ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ! exit 0 ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} ! exit 0 ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} ! exit 0 ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} ! exit 0 ;; *:FreeBSD:*:*) ! # Determine whether the default compiler uses glibc. ! eval $set_cc_for_build ! sed 's/^ //' << EOF >$dummy.c ! #include ! #if __GLIBC__ >= 2 ! LIBC=gnu ! #else ! LIBC= ! #endif ! EOF ! eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` ! rm -f $dummy.c && rmdir $tmpdir ! echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC} ! exit 0 ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin ! exit 0 ;; i*:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 ! exit 0 ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 ! exit 0 ;; ! x86:Interix*:3*) ! echo i386-pc-interix3 ! exit 0 ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? ! echo i386-pc-interix ! exit 0 ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin ! exit 0 ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin ! exit 0 ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ! exit 0 ;; *:GNU:*:*) echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` ! exit 0 ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix ! exit 0 ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu ! exit 0 ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu ! exit 0 ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu ! exit 0 ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c --- 675,840 ---- exit (0); } EOF ! $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && ! { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 ! exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) echo hppa1.1-hp-bsd ! exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd ! exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix ! exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) echo hppa1.1-hp-osf ! exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf ! exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo ${UNAME_MACHINE}-unknown-osf1mk else echo ${UNAME_MACHINE}-unknown-osf1 fi ! exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites ! exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd ! exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi ! exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd ! exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd ! exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd ! exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ! exit ;; CRAY*[A-Z]90:*:*:*) echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' ! exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ! exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ! exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ! exit ;; ! *:UNICOS/mp:*:*) ! echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' ! exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ! exit ;; ! 5000:UNIX_System_V:4.*:*) ! FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` ! FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` ! echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" ! exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} ! exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi${UNAME_RELEASE} ! exit ;; *:BSD/OS:*:*) echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} ! exit ;; *:FreeBSD:*:*) ! echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ! exit ;; i*:CYGWIN*:*) echo ${UNAME_MACHINE}-pc-cygwin ! exit ;; i*:MINGW*:*) echo ${UNAME_MACHINE}-pc-mingw32 ! exit ;; ! i*:windows32*:*) ! # uname -m includes "-pc" on this system. ! echo ${UNAME_MACHINE}-mingw32 ! exit ;; i*:PW*:*) echo ${UNAME_MACHINE}-pc-pw32 ! exit ;; ! x86:Interix*:[345]*) ! echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//' ! exit ;; ! [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) ! echo i${UNAME_MACHINE}-pc-mks ! exit ;; i*:Windows_NT*:* | Pentium*:Windows_NT*:*) # How do we know it's Interix rather than the generic POSIX subsystem? # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we # UNAME_MACHINE based on the output of uname instead of i386? ! echo i586-pc-interix ! exit ;; i*:UWIN*:*) echo ${UNAME_MACHINE}-pc-uwin ! exit ;; ! amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) ! echo x86_64-unknown-cygwin ! exit ;; p*:CYGWIN*:*) echo powerpcle-unknown-cygwin ! exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` ! exit ;; *:GNU:*:*) + # the GNU system echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` ! exit ;; ! *:GNU/*:*:*) ! # other systems with GNU libc and userland ! echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu ! exit ;; i*86:Minix:*:*) echo ${UNAME_MACHINE}-pc-minix ! exit ;; arm*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu ! exit ;; ! cris:Linux:*:*) ! echo cris-axis-linux-gnu ! exit ;; ! crisv32:Linux:*:*) ! echo crisv32-axis-linux-gnu ! exit ;; ! frv:Linux:*:*) ! echo frv-unknown-linux-gnu ! exit ;; ia64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu ! exit ;; ! m32r*:Linux:*:*) ! echo ${UNAME_MACHINE}-unknown-linux-gnu ! exit ;; m68*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu ! exit ;; mips:Linux:*:*) eval $set_cc_for_build sed 's/^ //' << EOF >$dummy.c *************** *** 817,832 **** #endif #endif EOF ! eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=` ! rm -f $dummy.c && rmdir $tmpdir ! test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0 ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu ! exit 0 ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu ! exit 0 ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; --- 851,887 ---- #endif #endif EOF ! eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '/^CPU/{s: ::g;p;}'`" ! test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ! ;; ! mips64:Linux:*:*) ! eval $set_cc_for_build ! sed 's/^ //' << EOF >$dummy.c ! #undef CPU ! #undef mips64 ! #undef mips64el ! #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) ! CPU=mips64el ! #else ! #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) ! CPU=mips64 ! #else ! CPU= ! #endif ! #endif ! EOF ! eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '/^CPU/{s: ::g;p;}'`" ! test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ;; + or32:Linux:*:*) + echo or32-unknown-linux-gnu + exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-gnu ! exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-gnu ! exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; *************** *** 840,846 **** objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ! exit 0 ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in --- 895,901 ---- objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ! exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in *************** *** 848,869 **** PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac ! exit 0 ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu ! exit 0 ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux ! exit 0 ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu ! exit 0 ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu ! exit 0 ;; x86_64:Linux:*:*) echo x86_64-unknown-linux-gnu ! exit 0 ;; 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 --- 903,930 ---- PA8*) echo hppa2.0-unknown-linux-gnu ;; *) echo hppa-unknown-linux-gnu ;; esac ! exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-gnu ! exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo ${UNAME_MACHINE}-ibm-linux ! exit ;; ! sh64*:Linux:*:*) ! echo ${UNAME_MACHINE}-unknown-linux-gnu ! exit ;; sh*:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu ! exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo ${UNAME_MACHINE}-unknown-linux-gnu ! exit ;; ! vax:Linux:*:*) ! echo ${UNAME_MACHINE}-dec-linux-gnu ! exit ;; x86_64:Linux:*:*) echo x86_64-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 *************** *** 881,895 **** ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" ! exit 0 ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" ! exit 0 ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" ! exit 0 ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build --- 942,956 ---- ;; a.out-i386-linux) echo "${UNAME_MACHINE}-pc-linux-gnuaout" ! exit ;; coff-i386) echo "${UNAME_MACHINE}-pc-linux-gnucoff" ! exit ;; "") # Either a pre-BFD a.out linker (linux-gnuoldld) or # one that does not give us useful --help. echo "${UNAME_MACHINE}-pc-linux-gnuoldld" ! exit ;; esac # Determine whether the default compiler is a.out or elf eval $set_cc_for_build *************** *** 906,929 **** LIBC=gnulibc1 # endif #else ! #ifdef __INTEL_COMPILER LIBC=gnu #else LIBC=gnuaout #endif #endif EOF ! eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=` ! rm -f $dummy.c && rmdir $tmpdir ! test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0 ! test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0 ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 ! exit 0 ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... --- 967,995 ---- LIBC=gnulibc1 # endif #else ! #if defined(__INTEL_COMPILER) || defined(__PGI) LIBC=gnu #else LIBC=gnuaout #endif #endif + #ifdef __dietlibc__ + LIBC=dietlibc + #endif EOF ! eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '/^LIBC/{s: ::g;p;}'`" ! test x"${LIBC}" != x && { ! echo "${UNAME_MACHINE}-pc-linux-${LIBC}" ! exit ! } ! test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; } ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 ! exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... *************** *** 931,937 **** # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} ! exit 0 ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then --- 997,1023 ---- # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} ! exit ;; ! i*86:OS/2:*:*) ! # If we were able to find `uname', then EMX Unix compatibility ! # is probably installed. ! echo ${UNAME_MACHINE}-pc-os2-emx ! exit ;; ! i*86:XTS-300:*:STOP) ! echo ${UNAME_MACHINE}-unknown-stop ! exit ;; ! i*86:atheos:*:*) ! echo ${UNAME_MACHINE}-unknown-atheos ! exit ;; ! i*86:syllable:*:*) ! echo ${UNAME_MACHINE}-pc-syllable ! exit ;; ! i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) ! echo i386-unknown-lynxos${UNAME_RELEASE} ! exit ;; ! i*86:*DOS:*:*) ! echo ${UNAME_MACHINE}-pc-msdosdjgpp ! exit ;; i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then *************** *** 939,953 **** else echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} fi ! exit 0 ;; ! i*86:*:5:[78]*) case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} ! exit 0 ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi ! exit 0 ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv ! exit 0 ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv ! exit 0 ;; ! M68*:*:R3V[567]*:*) ! test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; ! 3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ ! && echo i486-ncr-sysv4.3${OS_REL} && exit 0 /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ ! && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ ! && echo i486-ncr-sysv4 && exit 0 ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} ! exit 0 ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 ! exit 0 ;; ! i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*) ! echo i386-unknown-lynxos${UNAME_RELEASE} ! exit 0 ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} ! exit 0 ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} ! exit 0 ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} ! exit 0 ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} ! exit 0 ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 ! exit 0 ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 ! exit 0 ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` --- 1052,1124 ---- else echo ${UNAME_MACHINE}-pc-sysv32 fi ! exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i386. echo i386-pc-msdosdjgpp ! exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 ! exit ;; paragon:*:*:*) echo i860-intel-osf1 ! exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 fi ! exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv ! exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv ! exit ;; ! M680?0:D-NIX:5.3:*) ! echo m68k-diab-dnix ! exit ;; ! M68*:*:R3V[5678]*:*) ! test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; ! 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ ! && { echo i486-ncr-sysv4.3${OS_REL}; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ ! && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ ! && { echo i486-ncr-sysv4; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos${UNAME_RELEASE} ! exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 ! exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos${UNAME_RELEASE} ! exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos${UNAME_RELEASE} ! exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*) echo powerpc-unknown-lynxos${UNAME_RELEASE} ! exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv${UNAME_RELEASE} ! exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 ! exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 ! exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` *************** *** 1042,1105 **** else echo ns32k-sni-sysv fi ! exit 0 ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 ! exit 0 ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 ! exit 0 ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 ! exit 0 ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos ! exit 0 ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} ! exit 0 ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 ! exit 0 ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi ! exit 0 ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos ! exit 0 ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos ! exit 0 ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos ! exit 0 ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} ! exit 0 ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} ! exit 0 ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} ! exit 0 ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} ! exit 0 ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} ! exit 0 ;; *:Darwin:*:*) ! echo `uname -p`-apple-darwin${UNAME_RELEASE} ! exit 0 ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then --- 1126,1197 ---- else echo ns32k-sni-sysv fi ! exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 ! exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 ! exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 ! exit ;; ! i*86:VOS:*:*) ! # From Paul.Green@stratus.com. ! echo ${UNAME_MACHINE}-stratus-vos ! exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos ! exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux${UNAME_RELEASE} ! exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 ! exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv${UNAME_RELEASE} else echo mips-unknown-sysv${UNAME_RELEASE} fi ! exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos ! exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos ! exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos ! exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} ! exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux${UNAME_RELEASE} ! exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux${UNAME_RELEASE} ! exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody${UNAME_RELEASE} ! exit ;; *:Rhapsody:*:*) echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} ! exit ;; *:Darwin:*:*) ! UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown ! case $UNAME_PROCESSOR in ! unknown) UNAME_PROCESSOR=powerpc ;; ! esac ! echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} ! exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = "x86"; then *************** *** 1107,1128 **** UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} ! exit 0 ;; *:QNX:*:4*) echo i386-pc-qnx ! exit 0 ;; ! NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} ! exit 0 ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux ! exit 0 ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv ! exit 0 ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} ! exit 0 ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 --- 1199,1223 ---- UNAME_MACHINE=pc fi echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} ! exit ;; *:QNX:*:4*) echo i386-pc-qnx ! exit ;; ! NSE-?:NONSTOP_KERNEL:*:*) ! echo nse-tandem-nsk${UNAME_RELEASE} ! exit ;; ! NSR-?:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk${UNAME_RELEASE} ! exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux ! exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv ! exit ;; DS/*:UNIX_System_V:*:*) echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} ! exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 *************** *** 1133,1168 **** UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 ! exit 0 ;; ! i*86:OS/2:*:*) ! # If we were able to find `uname', then EMX Unix compatibility ! # is probably installed. ! echo ${UNAME_MACHINE}-pc-os2-emx ! exit 0 ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 ! exit 0 ;; *:TENEX:*:*) echo pdp10-unknown-tenex ! exit 0 ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 ! exit 0 ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 ! exit 0 ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 ! exit 0 ;; *:ITS:*:*) echo pdp10-unknown-its ! exit 0 ;; ! i*86:XTS-300:*:STOP) ! echo ${UNAME_MACHINE}-unknown-stop ! exit 0 ;; ! i*86:atheos:*:*) ! echo ${UNAME_MACHINE}-unknown-atheos ! exit 0 ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 --- 1228,1274 ---- UNAME_MACHINE="$cputype" fi echo ${UNAME_MACHINE}-unknown-plan9 ! exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 ! exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex ! exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 ! exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 ! exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 ! exit ;; *:ITS:*:*) echo pdp10-unknown-its ! exit ;; ! SEI:*:*:SEIUX) ! echo mips-sei-seiux${UNAME_RELEASE} ! exit ;; ! *:DragonFly:*:*) ! echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ! exit ;; ! *:*VMS:*:*) ! UNAME_MACHINE=`(uname -p) 2>/dev/null` ! case "${UNAME_MACHINE}" in ! A*) echo alpha-dec-vms ; exit ;; ! I*) echo ia64-dec-vms ; exit ;; ! V*) echo vax-dec-vms ; exit ;; ! esac ;; ! *:XENIX:*:SysV) ! echo i386-pc-xenix ! exit ;; ! i*86:skyos:*:*) ! echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' ! exit ;; ! i*86:rdos:*:*) ! echo ${UNAME_MACHINE}-pc-rdos ! exit ;; esac #echo '(No uname command or uname output not recognized.)' 1>&2 *************** *** 1194,1200 **** #endif #if defined (__arm) && defined (__acorn) && defined (__unix) ! printf ("arm-acorn-riscix"); exit (0); #endif #if defined (hp300) && !defined (hpux) --- 1300,1306 ---- #endif #if defined (__arm) && defined (__acorn) && defined (__unix) ! printf ("arm-acorn-riscix\n"); exit (0); #endif #if defined (hp300) && !defined (hpux) *************** *** 1283,1294 **** } EOF ! $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0 ! rm -f $dummy.c $dummy && rmdir $tmpdir # Apollos put the system type in the environment. ! test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } # Convex versions that predate uname can use getsysinfo(1) --- 1389,1400 ---- } EOF ! $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && ! { echo "$SYSTEM_NAME"; exit; } # Apollos put the system type in the environment. ! test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } # Convex versions that predate uname can use getsysinfo(1) *************** *** 1297,1318 **** case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd ! exit 0 ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi ! exit 0 ;; c34*) echo c34-convex-bsd ! exit 0 ;; c38*) echo c38-convex-bsd ! exit 0 ;; c4*) echo c4-convex-bsd ! exit 0 ;; esac fi --- 1403,1424 ---- case `getsysinfo -f cpu_type` in c1*) echo c1-convex-bsd ! exit ;; c2*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi ! exit ;; c34*) echo c34-convex-bsd ! exit ;; c38*) echo c38-convex-bsd ! exit ;; c4*) echo c4-convex-bsd ! exit ;; esac fi *************** *** 1323,1329 **** the operating system you are using. It is advised that you download the most up to date version of the config scripts from ! ftp://ftp.gnu.org/pub/gnu/config/ If the version you run ($0) is already up to date, please send the following data and any information you think might be --- 1429,1437 ---- the operating system you are using. It is advised that you download the most up to date version of the config scripts from ! http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess ! and ! http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub If the version you run ($0) is already up to date, please send the following data and any information you think might be diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/config.h.in gsl-1.8/config.h.in *** gsl-1.7/config.h.in Tue Sep 13 10:18:05 2005 --- gsl-1.8/config.h.in Fri Mar 31 18:24:31 2006 *************** *** 276,278 **** --- 276,281 ---- #if defined(GSL_RANGE_CHECK_OFF) || !defined(GSL_RANGE_CHECK) #define GSL_RANGE_CHECK 0 /* turn off range checking by default internally */ #endif + + /* Disable deprecated functions and enums while building */ + #define GSL_DISABLE_DEPRECATED 1 diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/config.sub gsl-1.8/config.sub *** gsl-1.7/config.sub Mon Jun 16 09:54:25 2003 --- gsl-1.8/config.sub Tue Mar 21 15:21:43 2006 *************** *** 1,9 **** #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, ! # 2000, 2001, 2002 Free Software Foundation, Inc. ! timestamp='2002-09-05' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software --- 1,9 ---- #! /bin/sh # Configuration validation subroutine script. # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, ! # 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ! timestamp='2005-12-11' # This file is (in principle) common to ALL GNU software. # The presence of a machine in this file suggests that SOME GNU software *************** *** 21,34 **** # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software ! # Foundation, Inc., 59 Temple Place - Suite 330, ! # Boston, MA 02111-1307, USA. ! # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # --- 21,35 ---- # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software ! # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA ! # 02110-1301, USA. ! # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. + # Please send patches to . Submit a context # diff and a properly formatted ChangeLog entry. # *************** *** 70,76 **** version="\ GNU config.sub ($timestamp) ! Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO --- 71,77 ---- version="\ GNU config.sub ($timestamp) ! Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO *************** *** 83,93 **** while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) ! echo "$timestamp" ; exit 0 ;; --version | -v ) ! echo "$version" ; exit 0 ;; --help | --h* | -h ) ! echo "$usage"; exit 0 ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. --- 84,94 ---- while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) ! echo "$timestamp" ; exit ;; --version | -v ) ! echo "$version" ; exit ;; --help | --h* | -h ) ! echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. *************** *** 99,105 **** *local*) # First pass through any local machine types. echo $1 ! exit 0;; * ) break ;; --- 100,106 ---- *local*) # First pass through any local machine types. echo $1 ! exit ;; * ) break ;; *************** *** 118,124 **** # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in ! nto-qnx* | linux-gnu* | freebsd*-gnu* | storm-chaos* | os2-emx* | windows32-* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; --- 119,127 ---- # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in ! nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ ! uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ ! storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; *************** *** 144,150 **** -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ ! -apple | -axis) os= basic_machine=$1 ;; --- 147,153 ---- -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ ! -apple | -axis | -knuth | -cray) os= basic_machine=$1 ;; *************** *** 169,174 **** --- 172,181 ---- -hiux*) os=-hiuxwe2 ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; -sco5) os=-sco3.2v5 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` *************** *** 185,190 **** --- 192,201 ---- # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; -sco*) os=-sco3.2v2 basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` *************** *** 228,241 **** | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ ! | clipper \ | d10v | d30v | dlx | dsp16xx \ | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ ! | ip2k \ ! | m32r | m68000 | m68k | m88k | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ --- 239,254 ---- | a29k \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \ ! | bfin \ ! | c4x | clipper \ | d10v | d30v | dlx | dsp16xx \ | fr30 | frv \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | i370 | i860 | i960 | ia64 \ ! | ip2k | iq2000 \ ! | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ *************** *** 244,271 **** | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mipsisa32 | mipsisa32el \ | mipsisa64 | mipsisa64el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | ns16k | ns32k \ ! | openrisc | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ ! | sh | sh[1234] | sh3e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ ! | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \ | strongarm \ ! | tahoe | thumb | tic80 | tron \ | v850 | v850e \ | we32k \ ! | x86 | xscale | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown --- 257,293 ---- | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ + | mt \ + | msp430 \ | ns16k | ns32k \ ! | or32 \ | pdp10 | pdp11 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ | pyramid \ ! | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ ! | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \ ! | sparcv8 | sparcv9 | sparcv9b \ | strongarm \ ! | tahoe | thumb | tic4x | tic80 | tron \ | v850 | v850e \ | we32k \ ! | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \ | z8k) basic_machine=$basic_machine-unknown ;; + m32c) + basic_machine=$basic_machine-unknown + ;; m6811 | m68hc11 | m6812 | m68hc12) # Motorola 68HC11/12. basic_machine=$basic_machine-unknown *************** *** 273,278 **** --- 295,303 ---- ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) ;; + ms1) + basic_machine=mt-unknown + ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and *************** *** 293,311 **** | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* \ ! | bs2000-* \ ! | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* \ ! | clipper-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ ! | ip2k-* \ ! | m32r-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ ! | m88110-* | m88k-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ --- 318,336 ---- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* \ ! | bfin-* | bs2000-* \ ! | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ ! | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | elxsi-* \ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | i*86-* | i860-* | i960-* | ia64-* \ ! | ip2k-* | iq2000-* \ ! | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ ! | m88110-* | m88k-* | maxq-* | mcore-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ *************** *** 314,342 **** | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ ! | mipstx39 | mipstx39el \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ ! | sh-* | sh[1234]-* | sh3e-* | sh[34]eb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ ! | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \ ! | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ ! | tahoe-* | thumb-* | tic30-* | tic4x-* | tic54x-* | tic80-* | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ ! | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \ ! | xtensa-* \ | ymp-* \ | z8k-*) ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) --- 339,378 ---- | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ ! | mipstx39-* | mipstx39el-* \ ! | mmix-* \ ! | mt-* \ ! | msp430-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ | pyramid-* \ | romp-* | rs6000-* \ ! | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ ! | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \ ! | sparclite-* \ ! | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \ ! | tahoe-* | thumb-* \ ! | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ ! | tron-* \ | v850-* | v850e-* | vax-* \ | we32k-* \ ! | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \ ! | xstormy16-* | xtensa-* \ | ymp-* \ | z8k-*) ;; + m32c-*) + ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) *************** *** 353,358 **** --- 389,397 ---- basic_machine=a29k-amd os=-udi ;; + abacus) + basic_machine=abacus-unknown + ;; adobe68k) basic_machine=m68010-adobe os=-scout *************** *** 367,372 **** --- 406,417 ---- basic_machine=a29k-none os=-bsd ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; amdahl) basic_machine=580-amdahl os=-sysv *************** *** 426,437 **** --- 471,497 ---- basic_machine=j90-cray os=-unicos ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16c) + basic_machine=cr16c-unknown + os=-elf + ;; crds | unos) basic_machine=m68k-crds ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; da30 | da30-*) basic_machine=m68k-da30 ;; *************** *** 454,459 **** --- 514,523 ---- basic_machine=m88k-motorola os=-sysv3 ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx *************** *** 632,641 **** mips3*) basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown ;; - mmix*) - basic_machine=mmix-knuth - os=-mmixware - ;; monitor) basic_machine=m68k-rom68k os=-coff --- 696,701 ---- *************** *** 648,653 **** --- 708,716 ---- basic_machine=i386-pc os=-msdos ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; mvs) basic_machine=i370-ibm os=-mvs *************** *** 723,731 **** basic_machine=hppa1.1-oki os=-proelf ;; ! or32 | or32-*) basic_machine=or32-unknown ! os=-coff ;; OSE68000 | ose68000) basic_machine=m68000-ericsson --- 786,797 ---- basic_machine=hppa1.1-oki os=-proelf ;; ! openrisc | openrisc-*) basic_machine=or32-unknown ! ;; ! os400) ! basic_machine=powerpc-ibm ! os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson *************** *** 758,775 **** pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; ! pentiumii | pentium2) basic_machine=i686-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ! pentiumii-* | pentium2-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; --- 824,847 ---- pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; ! pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; + pentium4) + basic_machine=i786-pc + ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; ! pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; pn) basic_machine=pn-gould ;; *************** *** 802,807 **** --- 874,883 ---- basic_machine=i586-unknown os=-pw32 ;; + rdos) + basic_machine=i386-pc + os=-rdos + ;; rom68k) basic_machine=m68k-rom68k os=-coff *************** *** 828,833 **** --- 904,913 ---- sb1el) basic_machine=mipsisa64sb1el-unknown ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; sequent) basic_machine=i386-sequent ;; *************** *** 835,840 **** --- 915,923 ---- basic_machine=sh-hitachi os=-hms ;; + sh64) + basic_machine=sh64-unknown + ;; sparclite-wrs | simso-wrs) basic_machine=sparclite-wrs os=-vxworks *************** *** 901,910 **** basic_machine=i386-sequent os=-dynix ;; - t3d) - basic_machine=alpha-cray - os=-unicos - ;; t3e) basic_machine=alphaev5-cray os=-unicos --- 984,989 ---- *************** *** 913,926 **** basic_machine=t90-cray os=-unicos ;; - tic4x | c4x*) - basic_machine=tic4x-unknown - os=-coff - ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; tx39) basic_machine=mipstx39-unknown ;; --- 992,1009 ---- basic_machine=t90-cray os=-unicos ;; tic54x | c54x*) basic_machine=tic54x-unknown os=-coff ;; + tic55x | c55x*) + basic_machine=tic55x-unknown + os=-coff + ;; + tic6x | c6x*) + basic_machine=tic6x-unknown + os=-coff + ;; tx39) basic_machine=mipstx39-unknown ;; *************** *** 934,939 **** --- 1017,1026 ---- tower | tower-32) basic_machine=m68k-ncr ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; udi29k) basic_machine=a29k-amd os=-udi *************** *** 977,985 **** basic_machine=hppa1.1-winbond os=-proelf ;; ! windows32) ! basic_machine=i386-pc ! os=-windows32-msvcrt ;; xps | xps100) basic_machine=xps100-honeywell --- 1064,1072 ---- basic_machine=hppa1.1-winbond os=-proelf ;; ! xbox) ! basic_machine=i686-pc ! os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell *************** *** 1011,1016 **** --- 1098,1106 ---- romp) basic_machine=romp-ibm ;; + mmix) + basic_machine=mmix-knuth + ;; rs6000) basic_machine=rs6000-ibm ;; *************** *** 1027,1039 **** we32k) basic_machine=we32k-att ;; ! sh3 | sh4 | sh3eb | sh4eb | sh[1234]le | sh3ele) basic_machine=sh-unknown ;; ! sh64) ! basic_machine=sh64-unknown ! ;; ! sparc | sparcv9 | sparcv9b) basic_machine=sparc-sun ;; cydra) --- 1117,1126 ---- we32k) basic_machine=we32k-att ;; ! sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; ! sparc | sparcv8 | sparcv9 | sparcv9b) basic_machine=sparc-sun ;; cydra) *************** *** 1106,1123 **** | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ ! | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ ! | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ ! | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ ! | -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ ! | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* | -powermax*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) --- 1193,1214 ---- | -aos* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ ! | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \ ! | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ ! | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ | -chorusos* | -chorusrdb* \ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ ! | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ ! | -uxpv* | -beos* | -mpeix* | -udk* \ ! | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ ! | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ ! | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ ! | -skyos* | -haiku* | -rdos*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) *************** *** 1129,1144 **** ;; esac ;; -nto*) ! os=-nto-qnx ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ ! | -windows* | -osx | -abug | -netware* | -os9* | -beos* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; --- 1220,1240 ---- ;; esac ;; + -nto-qnx*) + ;; -nto*) ! os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ ! | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo $os | sed -e 's|mac|macos|'` ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; *************** *** 1151,1156 **** --- 1247,1255 ---- -opened*) os=-openedition ;; + -os400*) + os=-os400 + ;; -wince*) os=-wince ;; *************** *** 1172,1177 **** --- 1271,1279 ---- -atheos*) os=-atheos ;; + -syllable*) + os=-syllable + ;; -386bsd) os=-bsd ;; *************** *** 1194,1199 **** --- 1296,1304 ---- -sinix*) os=-sysv4 ;; + -tpf*) + os=-tpf + ;; -triton*) os=-sysv3 ;; *************** *** 1224,1229 **** --- 1329,1343 ---- -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; + -aros*) + os=-aros + ;; + -kaos*) + os=-kaos + ;; + -zvmoe) + os=-zvmoe + ;; -none) ;; *) *************** *** 1255,1260 **** --- 1369,1377 ---- arm*-semi) os=-aout ;; + c4x-* | tic4x-*) + os=-coff + ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 *************** *** 1298,1306 **** --- 1415,1429 ---- *-be) os=-beos ;; + *-haiku) + os=-haiku + ;; *-ibm) os=-aix ;; + *-knuth) + os=-mmixware + ;; *-wec) os=-proelf ;; *************** *** 1433,1441 **** --- 1556,1570 ---- -mvs* | -opened*) vendor=ibm ;; + -os400*) + vendor=ibm + ;; -ptx*) vendor=sequent ;; + -tpf*) + vendor=ibm + ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; *************** *** 1460,1466 **** esac echo $basic_machine$os ! exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) --- 1589,1595 ---- esac echo $basic_machine$os ! exit # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/configure gsl-1.8/configure *** gsl-1.7/configure Tue Sep 13 10:17:14 2005 --- gsl-1.8/configure Fri Mar 31 17:47:47 2006 *************** *** 1,6 **** #! /bin/sh # Guess values for system-dependent variables and create Makefiles. ! # Generated by GNU Autoconf 2.59 for gsl 1.7. # # Copyright (C) 2003 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation --- 1,6 ---- #! /bin/sh # Guess values for system-dependent variables and create Makefiles. ! # Generated by GNU Autoconf 2.59 for gsl 1.8. # # Copyright (C) 2003 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation *************** *** 241,257 **** $as_unset CDPATH - # Find the correct PATH separator. Usually this is `:', but - # DJGPP uses `;' like DOS. - if test "X${PATH_SEPARATOR+set}" != Xset; then - UNAME=${UNAME-`uname 2>/dev/null`} - case X$UNAME in - *-DOS) lt_cv_sys_path_separator=';' ;; - *) lt_cv_sys_path_separator=':' ;; - esac - PATH_SEPARATOR=$lt_cv_sys_path_separator - fi - # Check that we are running under the correct shell. SHELL=${CONFIG_SHELL-/bin/sh} --- 241,246 ---- *************** *** 270,276 **** elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : ! elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then # Yippee, $echo works! : else --- 259,265 ---- elif test "X$1" = X--fallback-echo; then # Avoid inline document here, it may be left over : ! elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then # Yippee, $echo works! : else *************** *** 282,303 **** # used as fallback echo shift cat </dev/null && ! echo_test_string="`eval $cmd`" && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null then break --- 271,292 ---- # used as fallback echo shift cat </dev/null 2>&1 && unset CDPATH if test -z "$ECHO"; then if test "X${echo_test_string+set}" != Xset; then # find a string as large as possible, as long as the shell can cope with it for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... ! if (echo_test_string=`eval $cmd`) 2>/dev/null && ! echo_test_string=`eval $cmd` && (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null then break *************** *** 316,323 **** # # So, first we look for a working echo in the user's PATH. ! IFS="${IFS= }"; save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && --- 305,313 ---- # # So, first we look for a working echo in the user's PATH. ! lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && *************** *** 326,332 **** break fi done ! IFS="$save_ifs" if test "X$echo" = Xecho; then # We didn't find a better echo, so look for alternatives. --- 316,322 ---- break fi done ! IFS="$lt_save_ifs" if test "X$echo" = Xecho; then # We didn't find a better echo, so look for alternatives. *************** *** 400,405 **** --- 390,396 ---- + # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. *************** *** 426,433 **** # Identity of this package. PACKAGE_NAME='gsl' PACKAGE_TARNAME='gsl' ! PACKAGE_VERSION='1.7' ! PACKAGE_STRING='gsl 1.7' PACKAGE_BUGREPORT='' ac_unique_file="gsl_math.h" --- 417,424 ---- # Identity of this package. PACKAGE_NAME='gsl' PACKAGE_TARNAME='gsl' ! PACKAGE_VERSION='1.8' ! PACKAGE_STRING='gsl 1.8' PACKAGE_BUGREPORT='' ac_unique_file="gsl_math.h" *************** *** 468,474 **** # include #endif" ! ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT GSL_LT_VERSION GSL_LT_CBLAS_VERSION RELEASED build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP LN_S RANLIB ac_ct_RANLIB AR ac_ct_AR ECHO EGREP LIBTOOL GSL_CFLAGS GSL_LIBS HAVE_INLINE LIBOBJS HAVE_PRINTF_LONGDOUBLE HAVE_EXTENDED_PRECISION_REGISTERS HAVE_GNUSPARC_IEEE_INTERFACE HAVE_GNUM68K_IEEE_INTERFACE HAVE_GNUPPC_IEEE_INTERFACE HAVE_GNUX86_IEEE_INTERFACE HAVE_SUNOS4_IEEE_INTERFACE HAVE_SOLARIS_IEEE_INTERFACE HAVE_HPUX11_IEEE_INTERFACE HAVE_HPUX_IEEE_INTERFACE HAVE_TRU64_IEEE_INTERFACE HAVE_IRIX_IEEE_INTERFACE HAVE_AIX_IEEE_INTERFACE HAVE_FREEBSD_IEEE_INTERFACE HAVE_OS2EMX_IEEE_INTERFACE HAVE_NETBSD_IEEE_INTERFACE HAVE_OPENBSD_IEEE_INTERFACE HAVE_DARWIN_IEEE_INTERFACE HAVE_IEEE_COMPARISONS HAVE_IEEE_DENORMALS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. --- 459,465 ---- # include #endif" ! ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT GSL_LT_VERSION GSL_LT_CBLAS_VERSION RELEASED build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP LN_S EGREP ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB LIBTOOL GSL_CFLAGS GSL_LIBS HAVE_INLINE LIBOBJS HAVE_PRINTF_LONGDOUBLE HAVE_EXTENDED_PRECISION_REGISTERS HAVE_GNUSPARC_IEEE_INTERFACE HAVE_GNUM68K_IEEE_INTERFACE HAVE_GNUPPC_IEEE_INTERFACE HAVE_GNUX86_IEEE_INTERFACE HAVE_SUNOS4_IEEE_INTERFACE HAVE_SOLARIS_IEEE_INTERFACE HAVE_HPUX11_IEEE_INTERFACE HAVE_HPUX_IEEE_INTERFACE HAVE_TRU64_IEEE_INTERFACE HAVE_IRIX_IEEE_INTERFACE HAVE_AIX_IEEE_INTERFACE HAVE_FREEBSD_IEEE_INTERFACE HAVE_OS2EMX_IEEE_INTERFACE HAVE_NETBSD_IEEE_INTERFACE HAVE_OPENBSD_IEEE_INTERFACE HAVE_DARWIN_IEEE_INTERFACE HAVE_IEEE_COMPARISONS HAVE_IEEE_DENORMALS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. *************** *** 937,943 **** # 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 gsl 1.7 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... --- 928,934 ---- # 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 gsl 1.8 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... *************** *** 1003,1009 **** if test -n "$ac_init_help"; then case $ac_init_help in ! short | recursive ) echo "Configuration of gsl 1.7:";; esac cat <<\_ACEOF --- 994,1000 ---- if test -n "$ac_init_help"; then case $ac_init_help in ! short | recursive ) echo "Configuration of gsl 1.8:";; esac cat <<\_ACEOF *************** *** 1012,1027 **** --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer ! --enable-shared=PKGS build shared libraries default=yes ! --enable-static=PKGS build static libraries default=yes ! --enable-fast-install=PKGS optimize for fast installation default=yes --disable-libtool-lock avoid locking (might break parallel builds) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) ! --with-gnu-ld assume the C compiler uses GNU ld default=no ! --with-pic try to use only PIC/non-PIC objects default=use both Some influential environment variables: CC C compiler command --- 1003,1024 ---- --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer ! --enable-shared[=PKGS] ! build shared libraries [default=yes] ! --enable-static[=PKGS] ! build static libraries [default=yes] ! --enable-fast-install[=PKGS] ! optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) ! --with-gnu-ld assume the C compiler uses GNU ld [default=no] ! --with-pic try to use only PIC/non-PIC objects [default=use ! both] ! --with-tags[=TAGS] ! include additional configurations [automatic] Some influential environment variables: CC C compiler command *************** *** 1130,1136 **** test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF ! gsl configure 1.7 generated by GNU Autoconf 2.59 Copyright (C) 2003 Free Software Foundation, Inc. --- 1127,1133 ---- test -n "$ac_init_help" && exit 0 if $ac_init_version; then cat <<\_ACEOF ! gsl configure 1.8 generated by GNU Autoconf 2.59 Copyright (C) 2003 Free Software Foundation, Inc. *************** *** 1144,1150 **** This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. ! It was created by gsl $as_me 1.7, which was generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ --- 1141,1147 ---- This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. ! It was created by gsl $as_me 1.8, which was generated by GNU Autoconf 2.59. Invocation command line was $ $0 $@ *************** *** 1789,1795 **** # Define the identity of the package. PACKAGE='gsl' ! VERSION='1.7' cat >>confdefs.h <<_ACEOF --- 1786,1792 ---- # Define the identity of the package. PACKAGE='gsl' ! VERSION='1.8' cat >>confdefs.h <<_ACEOF *************** *** 1947,1953 **** ! GSL_LT_VERSION="8:0:8" GSL_LT_CBLAS_VERSION="0:0:0" --- 1944,1950 ---- ! GSL_LT_VERSION="9:0:9" GSL_LT_CBLAS_VERSION="0:0:0" *************** *** 3313,3555 **** echo "${ECHO_T}no, using $LN_S" >&6 fi - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. - set dummy ${ac_tool_prefix}ranlib; ac_word=$2 - echo "$as_me:$LINENO: checking for $ac_word" >&5 - echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 - if test "${ac_cv_prog_RANLIB+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 - else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. - else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR - for as_dir in $PATH - do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" - echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi - done - done - - fi - fi - RANLIB=$ac_cv_prog_RANLIB - if test -n "$RANLIB"; then - echo "$as_me:$LINENO: result: $RANLIB" >&5 - echo "${ECHO_T}$RANLIB" >&6 - else - echo "$as_me:$LINENO: result: no" >&5 - echo "${ECHO_T}no" >&6 - fi ! fi ! if test -z "$ac_cv_prog_RANLIB"; then ! ac_ct_RANLIB=$RANLIB ! # Extract the first word of "ranlib", so it can be a program name with args. ! set dummy ranlib; ac_word=$2 ! 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_RANLIB+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! if test -n "$ac_ct_RANLIB"; then ! ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else ! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ! for as_dir in $PATH ! do ! IFS=$as_save_IFS ! test -z "$as_dir" && as_dir=. ! for ac_exec_ext in '' $ac_executable_extensions; do ! if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ! ac_cv_prog_ac_ct_RANLIB="ranlib" ! echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ! break 2 ! fi ! done ! done ! test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" ! fi ! fi ! ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB ! if test -n "$ac_ct_RANLIB"; then ! echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 ! echo "${ECHO_T}$ac_ct_RANLIB" >&6 else ! echo "$as_me:$LINENO: result: no" >&5 ! echo "${ECHO_T}no" >&6 ! fi ! RANLIB=$ac_ct_RANLIB else ! RANLIB="$ac_cv_prog_RANLIB" ! fi ! if test -n "$ac_tool_prefix"; then ! # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. ! set dummy ${ac_tool_prefix}ar; ac_word=$2 ! echo "$as_me:$LINENO: checking for $ac_word" >&5 ! echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ! if test "${ac_cv_prog_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! if test -n "$AR"; then ! ac_cv_prog_AR="$AR" # 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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ! ac_cv_prog_AR="${ac_tool_prefix}ar" ! echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ! break 2 ! fi ! done done ! ! fi ! fi ! AR=$ac_cv_prog_AR ! if test -n "$AR"; then ! echo "$as_me:$LINENO: result: $AR" >&5 ! echo "${ECHO_T}$AR" >&6 ! else ! echo "$as_me:$LINENO: result: no" >&5 ! echo "${ECHO_T}no" >&6 ! fi ! ! fi ! if test -z "$ac_cv_prog_AR"; then ! ac_ct_AR=$AR ! # Extract the first word of "ar", so it can be a program name with args. ! set dummy ar; ac_word=$2 ! 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_AR+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! if test -n "$ac_ct_AR"; then ! ac_cv_prog_ac_ct_AR="$ac_ct_AR" # 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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ! ac_cv_prog_ac_ct_AR="ar" ! echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ! break 2 fi ! done done - test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR=":" - fi - fi - ac_ct_AR=$ac_cv_prog_ac_ct_AR - if test -n "$ac_ct_AR"; then - echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 - echo "${ECHO_T}$ac_ct_AR" >&6 - else - echo "$as_me:$LINENO: result: no" >&5 - echo "${ECHO_T}no" >&6 fi ! AR=$ac_ct_AR ! else ! AR="$ac_cv_prog_AR" ! fi ! #AC_PROG_RANLIB ! # Check whether --enable-shared or --disable-shared was given. ! if test "${enable_shared+set}" = set; then ! enableval="$enable_shared" ! p=${PACKAGE-default} ! case $enableval in ! yes) enable_shared=yes ;; ! no) enable_shared=no ;; ! *) ! enable_shared=no ! # Look at the argument we got. We use all the common list separators. ! IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," ! for pkg in $enableval; do ! if test "X$pkg" = "X$p"; then ! enable_shared=yes ! fi ! done ! IFS="$ac_save_ifs" ! ;; ! esac ! else ! enable_shared=yes ! fi; ! # Check whether --enable-static or --disable-static was given. ! if test "${enable_static+set}" = set; then ! enableval="$enable_static" ! p=${PACKAGE-default} ! case $enableval in ! yes) enable_static=yes ;; ! no) enable_static=no ;; ! *) ! enable_static=no ! # Look at the argument we got. We use all the common list separators. ! IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," ! for pkg in $enableval; do ! if test "X$pkg" = "X$p"; then ! enable_static=yes ! fi ! done ! IFS="$ac_save_ifs" ! ;; ! esac else ! enable_static=yes ! fi; ! # Check whether --enable-fast-install or --disable-fast-install was given. ! if test "${enable_fast_install+set}" = set; then ! enableval="$enable_fast_install" ! p=${PACKAGE-default} ! case $enableval in ! yes) enable_fast_install=yes ;; ! no) enable_fast_install=no ;; ! *) ! enable_fast_install=no ! # Look at the argument we got. We use all the common list separators. ! IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," ! for pkg in $enableval; do ! if test "X$pkg" = "X$p"; then ! enable_fast_install=yes fi - done - IFS="$ac_save_ifs" - ;; - esac - else - enable_fast_install=yes - fi; - # Find the correct PATH separator. Usually this is `:', but - # DJGPP uses `;' like DOS. - if test "X${PATH_SEPARATOR+set}" != Xset; then - UNAME=${UNAME-`uname 2>/dev/null`} - case X$UNAME in - *-DOS) lt_cv_sys_path_separator=';' ;; - *) lt_cv_sys_path_separator=':' ;; - esac - PATH_SEPARATOR=$lt_cv_sys_path_separator fi # Check whether --with-gnu-ld or --without-gnu-ld was given. --- 3310,3459 ---- echo "${ECHO_T}no, using $LN_S" >&6 fi ! # Check whether --enable-shared or --disable-shared was given. ! if test "${enable_shared+set}" = set; then ! enableval="$enable_shared" ! p=${PACKAGE-default} ! case $enableval in ! yes) enable_shared=yes ;; ! no) enable_shared=no ;; ! *) ! enable_shared=no ! # Look at the argument we got. We use all the common list separators. ! lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," ! for pkg in $enableval; do ! IFS="$lt_save_ifs" ! if test "X$pkg" = "X$p"; then ! enable_shared=yes ! fi ! done ! IFS="$lt_save_ifs" ! ;; ! esac else ! enable_shared=yes ! fi; ! # Check whether --enable-static or --disable-static was given. ! if test "${enable_static+set}" = set; then ! enableval="$enable_static" ! p=${PACKAGE-default} ! case $enableval in ! yes) enable_static=yes ;; ! no) enable_static=no ;; ! *) ! enable_static=no ! # Look at the argument we got. We use all the common list separators. ! lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," ! for pkg in $enableval; do ! IFS="$lt_save_ifs" ! if test "X$pkg" = "X$p"; then ! enable_static=yes ! fi ! done ! IFS="$lt_save_ifs" ! ;; ! esac else ! enable_static=yes ! fi; ! # Check whether --enable-fast-install or --disable-fast-install was given. ! if test "${enable_fast_install+set}" = set; then ! enableval="$enable_fast_install" ! p=${PACKAGE-default} ! case $enableval in ! yes) enable_fast_install=yes ;; ! no) enable_fast_install=no ;; ! *) ! enable_fast_install=no ! # Look at the argument we got. We use all the common list separators. ! lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," ! for pkg in $enableval; do ! IFS="$lt_save_ifs" ! if test "X$pkg" = "X$p"; then ! enable_fast_install=yes ! fi ! done ! IFS="$lt_save_ifs" ! ;; ! esac else ! enable_fast_install=yes ! fi; ! echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 ! echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6 ! if test "${lt_cv_path_SED+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! # Loop through the user's path and test for sed and gsed. ! # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS 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 ! lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" ! fi ! done ! done done ! lt_ac_max=0 ! lt_ac_count=0 ! # Add /usr/xpg4/bin/sed as it is typically found on Solaris ! # along with /bin/sed that truncates output. ! for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do ! test ! -f $lt_ac_sed && continue ! cat /dev/null > conftest.in ! lt_ac_count=0 ! echo $ECHO_N "0123456789$ECHO_C" >conftest.in ! # Check for GNU sed and select it if it is found. ! if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then ! lt_cv_path_SED=$lt_ac_sed ! break fi ! while true; do ! cat conftest.in conftest.in >conftest.tmp ! mv conftest.tmp conftest.in ! cp conftest.in conftest.nl ! echo >>conftest.nl ! $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break ! cmp -s conftest.out conftest.nl || break ! # 10000 chars as input seems more than enough ! test $lt_ac_count -gt 10 && break ! lt_ac_count=`expr $lt_ac_count + 1` ! if test $lt_ac_count -gt $lt_ac_max; then ! lt_ac_max=$lt_ac_count ! lt_cv_path_SED=$lt_ac_sed ! fi ! done done fi ! SED=$lt_cv_path_SED ! echo "$as_me:$LINENO: result: $SED" >&5 ! echo "${ECHO_T}$SED" >&6 ! echo "$as_me:$LINENO: checking for egrep" >&5 ! echo $ECHO_N "checking for egrep... $ECHO_C" >&6 ! if test "${ac_cv_prog_egrep+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 else ! if echo a | (grep -E '(a|b)') >/dev/null 2>&1 ! then ac_cv_prog_egrep='grep -E' ! else ac_cv_prog_egrep='egrep' fi fi + echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 + echo "${ECHO_T}$ac_cv_prog_egrep" >&6 + EGREP=$ac_cv_prog_egrep + # Check whether --with-gnu-ld or --without-gnu-ld was given. *************** *** 3562,3569 **** ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. ! echo "$as_me:$LINENO: checking for ld used by GCC" >&5 ! echo $ECHO_N "checking for ld used by GCC... $ECHO_C" >&6 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw --- 3466,3473 ---- ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. ! echo "$as_me:$LINENO: checking for ld used by $CC" >&5 ! echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw *************** *** 3573,3584 **** esac case $ac_prog in # Accept absolute paths. ! [\\/]* | [A-Za-z]:[\\/]*) re_direlt='/[^/][^/]*/\.\./' ! # Canonicalize the path of ld ! ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ! ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; --- 3477,3488 ---- esac case $ac_prog in # Accept absolute paths. ! [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' ! # Canonicalize the pathname of ld ! ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'` while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do ! ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD="$ac_prog" ;; *************** *** 3602,3623 **** echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then ! IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, ! # but apparently some GNU ld's only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. ! if "$lt_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then test "$with_gnu_ld" != no && break ! else test "$with_gnu_ld" != yes && break ! fi fi done ! IFS="$ac_save_ifs" else lt_cv_path_LD="$LD" # Let the user override the test with a path. fi --- 3506,3531 ---- echo $ECHO_N "(cached) $ECHO_C" >&6 else if test -z "$LD"; then ! lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do + IFS="$lt_save_ifs" test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD="$ac_dir/$ac_prog" # Check to see if the program is GNU ld. I'd rather use --version, ! # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. ! case `"$lt_cv_path_LD" -v 2>&1 &6 else ! # I'd rather use --version here, but apparently some GNU ld's only accept -v. ! if $LD -v 2>&1 &5; then lt_cv_prog_gnu_ld=yes ! else lt_cv_prog_gnu_ld=no ! fi fi echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 --- 3547,3561 ---- if test "${lt_cv_prog_gnu_ld+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! # I'd rather use --version here, but apparently some GNU lds only accept -v. ! case `$LD -v 2>&1 &5 echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6 *************** *** 3661,3791 **** echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6 reload_flag=$lt_cv_ld_reload_flag ! test -n "$reload_flag" && reload_flag=" $reload_flag" ! ! echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 ! echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6 ! if test "${lt_cv_path_NM+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! if test -n "$NM"; then ! # Let the user override the test. ! lt_cv_path_NM="$NM" ! else ! IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ! for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do ! test -z "$ac_dir" && ac_dir=. ! tmp_nm=$ac_dir/${ac_tool_prefix}nm ! if test -f $tmp_nm || test -f $tmp_nm$ac_exeext ; then ! # Check to see if the nm accepts a BSD-compat flag. ! # Adding the `sed 1q' prevents false positives on HP-UX, which says: ! # nm: unknown option "B" ignored ! # Tru64's nm complains that /dev/null is an invalid object file ! if ($tmp_nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep '(/dev/null|Invalid file or object type)' >/dev/null; then ! lt_cv_path_NM="$tmp_nm -B" ! break ! elif ($tmp_nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then ! lt_cv_path_NM="$tmp_nm -p" ! break ! else ! lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but ! continue # so that we can try to find one that supports BSD flags ! fi fi ! done ! IFS="$ac_save_ifs" ! test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm ! fi ! fi ! ! NM="$lt_cv_path_NM" ! echo "$as_me:$LINENO: result: $NM" >&5 ! echo "${ECHO_T}$NM" >&6 ! echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 ! echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6 ! if test "${lt_cv_path_SED+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! # Loop through the user's path and test for sed and gsed. ! # Then use that list of sed's as ones to test for truncation. ! as_executable_p="test -f" ! 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_prog in sed gsed; do ! for ac_exec_ext in '' $ac_executable_extensions; do ! if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then ! _sed_list="$_sed_list $as_dir/$ac_prog$ac_exec_ext" ! fi ! done ! done ! done ! ! # Create a temporary directory, and hook for its removal unless debugging. ! $debug || ! { ! trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0 ! trap '{ (exit 1); exit 1; }' 1 2 13 15 ! } ! ! # Create a (secure) tmp directory for tmp files. ! : ${TMPDIR=/tmp} ! { ! tmp=`(umask 077 && mktemp -d -q "$TMPDIR/sedXXXXXX") 2>/dev/null` && ! test -n "$tmp" && test -d "$tmp" ! } || ! { ! tmp=$TMPDIR/sed$$-$RANDOM ! (umask 077 && mkdir $tmp) ! } || ! { ! echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ! { (exit 1); exit 1; } ! } ! _max=0 ! _count=0 ! # Add /usr/xpg4/bin/sed as it is typically found on Solaris ! # along with /bin/sed that truncates output. ! for _sed in $_sed_list /usr/xpg4/bin/sed; do ! test ! -f ${_sed} && break ! cat /dev/null > "$tmp/sed.in" ! _count=0 ! echo ${ECHO_N-$ac_n} "0123456789${ECHO_C-$ac_c}" >"$tmp/sed.in" ! # Check for GNU sed and select it if it is found. ! if "${_sed}" --version 2>&1 < /dev/null | egrep '(GNU)' > /dev/null; then ! lt_cv_path_SED=${_sed} ! break ! fi ! while true; do ! cat "$tmp/sed.in" "$tmp/sed.in" >"$tmp/sed.tmp" ! mv "$tmp/sed.tmp" "$tmp/sed.in" ! cp "$tmp/sed.in" "$tmp/sed.nl" ! echo >>"$tmp/sed.nl" ! ${_sed} -e 's/a$//' < "$tmp/sed.nl" >"$tmp/sed.out" || break ! cmp -s "$tmp/sed.out" "$tmp/sed.nl" || break ! # 40000 chars as input seems more than enough ! test $_count -gt 10 && break ! _count=`expr $_count + 1` ! if test $_count -gt $_max; then ! _max=$_count ! lt_cv_path_SED=$_sed fi done done ! rm -rf "$tmp" ! fi - - if test "X$SED" != "X"; then - lt_cv_path_SED=$SED - else - SED=$lt_cv_path_SED fi ! echo "$as_me:$LINENO: result: $SED" >&5 ! echo "${ECHO_T}$SED" >&6 echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5 echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6 --- 3572,3644 ---- echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5 echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6 reload_flag=$lt_cv_ld_reload_flag ! case $reload_flag in ! "" | " "*) ;; ! *) reload_flag=" $reload_flag" ;; ! esac ! reload_cmds='$LD$reload_flag -o $output$reload_objs' ! case $host_os in ! darwin*) ! if test "$GCC" = yes; then ! reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' ! else ! reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ! ;; ! esac ! echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5 ! echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6 ! if test "${lt_cv_path_NM+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! if test -n "$NM"; then ! # Let the user override the test. ! lt_cv_path_NM="$NM" ! else ! lt_nm_to_check="${ac_tool_prefix}nm" ! 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_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ! for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do ! IFS="$lt_save_ifs" ! test -z "$ac_dir" && ac_dir=. ! tmp_nm="$ac_dir/$lt_tmp_nm" ! if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then ! # Check to see if the nm accepts a BSD-compat flag. ! # Adding the `sed 1q' prevents false positives on HP-UX, which says: ! # nm: unknown option "B" ignored ! # Tru64's nm complains that /dev/null is an invalid object file ! case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in ! */dev/null* | *'Invalid file or object type'*) ! lt_cv_path_NM="$tmp_nm -B" ! break ! ;; ! *) ! case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in ! */dev/null*) ! lt_cv_path_NM="$tmp_nm -p" ! break ! ;; ! *) ! lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but ! continue # so that we can try to find one that supports BSD flags ! ;; ! esac ! ;; ! esac fi done + IFS="$lt_save_ifs" done ! test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm fi fi ! echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5 ! echo "${ECHO_T}$lt_cv_path_NM" >&6 ! NM="$lt_cv_path_NM" echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5 echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6 *************** *** 3802,3808 **** # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path ! # which responds to the $file_magic_cmd with a given egrep regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. --- 3655,3661 ---- # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path ! # which responds to the $file_magic_cmd with a given extended regex. # If you have `file' or equivalent on your system and you're not sure # whether `pass_all' will *always* work, you probably want this one. *************** *** 3815,3851 **** lt_cv_deplibs_check_method=pass_all ;; ! bsdi4*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; ! cygwin* | mingw* | pw32*) lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) ! lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library' ! lt_cv_file_magic_cmd='/usr/bin/file -L' ! case "$host_os" in ! rhapsody* | darwin1.[012]) ! lt_cv_file_magic_test_file=`echo /System/Library/Frameworks/System.framework/Versions/*/System | head -1` ! ;; ! *) # Darwin 1.3 on ! lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib' ! ;; ! esac ;; ! freebsd*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. ! lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; --- 3668,3703 ---- lt_cv_deplibs_check_method=pass_all ;; ! bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; ! cygwin*) ! # func_win32_libid is a shell function defined in ltmain.sh ! lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' ! lt_cv_file_magic_cmd='func_win32_libid' ! ;; ! ! 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' ;; darwin* | rhapsody*) ! lt_cv_deplibs_check_method=pass_all ;; ! freebsd* | kfreebsd*-gnu | dragonfly*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. ! lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; *************** *** 3859,3908 **** lt_cv_deplibs_check_method=pass_all ;; ! hpux10.20*|hpux11*) ! lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' lt_cv_file_magic_cmd=/usr/bin/file ! lt_cv_file_magic_test_file=/usr/lib/libc.sl ! ;; ! ! irix5* | irix6* | nonstopux*) ! case $host_os in ! irix5* | nonstopux*) ! # this will be overridden with pass_all, but let us keep it just in case ! lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1" ;; *) ! case $LD in ! *-32|*"-32 ") libmagic=32-bit;; ! *-n32|*"-n32 ") libmagic=N32;; ! *-64|*"-64 ") libmagic=64-bit;; ! *) libmagic=never-match;; ! esac ! # this will be overridden with pass_all, but let us keep it just in case ! lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1" ;; esac ! lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*` lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. ! linux-gnu*) ! case $host_cpu in ! alpha* | hppa* | i*86 | mips | mipsel | powerpc* | sparc* | ia64*) ! lt_cv_deplibs_check_method=pass_all ;; ! *) ! # glibc up to 2.1.1 does not perform some relocations on ARM ! lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; ! esac ! lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so` ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then ! lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$' else ! lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so$' fi ;; --- 3711,3759 ---- lt_cv_deplibs_check_method=pass_all ;; ! hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file ! case $host_cpu in ! ia64*) ! lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' ! lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ! ;; ! hppa*64*) ! lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' ! lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) ! lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' ! lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ! ;; ! ! interix3*) ! # 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)$' ! ;; ! ! irix5* | irix6* | nonstopux*) ! case $LD in ! *-32|*"-32 ") libmagic=32-bit;; ! *-n32|*"-n32 ") libmagic=N32;; ! *-64|*"-64 ") libmagic=64-bit;; ! *) libmagic=never-match;; ! esac lt_cv_deplibs_check_method=pass_all ;; # This must be Linux ELF. ! linux*) ! lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then ! lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else ! lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; *************** *** 3912,3948 **** lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; openbsd*) - lt_cv_file_magic_cmd=/usr/bin/file - lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ! lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB shared object' else ! lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library' fi ;; osf3* | osf4* | osf5*) - # this will be overridden with pass_all, but let us keep it just in case - lt_cv_deplibs_check_method='file_magic COFF format alpha shared library' - lt_cv_file_magic_test_file=/shlib/libc.so - lt_cv_deplibs_check_method=pass_all - ;; - - sco3.2v5*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all - lt_cv_file_magic_test_file=/lib/libc.so ;; ! sysv5uw[78]* | sysv4*uw2*) ! lt_cv_deplibs_check_method=pass_all ! ;; ! ! sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' --- 3763,3789 ---- lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; + nto-qnx*) + lt_cv_deplibs_check_method=unknown + ;; + openbsd*) if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ! lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else ! lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; ! sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' *************** *** 3963,3970 **** --- 3804,3818 ---- siemens) lt_cv_deplibs_check_method=pass_all ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; esac ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; esac fi *************** *** 3972,4197 **** echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6 file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method ! # 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" >&5 ! echo $ECHO_N "checking command to parse $NM output... $ECHO_C" >&6 ! if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! ! # These are sane defaults that work on at least a few old systems. ! # [They come from Ultrix. What could be older than Ultrix?!! ;)] ! ! # Character class describing NM global symbol codes. ! symcode='[BCDEGRST]' ! ! # Regexp to match symbols that can be accessed directly from C. ! sympat='\([_A-Za-z][_A-Za-z0-9]*\)' ! ! # Transform the above into a raw symbol and a C symbol. ! symxfrm='\1 \2\3 \3' ! ! # Transform an extracted symbol line into a proper C declaration ! lt_cv_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern char \1;/p'" ! ! # Transform an extracted symbol line into symbol name and symbol address ! lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ! ! # Define system-specific variables. ! case $host_os in ! aix*) ! symcode='[BCDT]' ! ;; ! cygwin* | mingw* | pw32*) ! symcode='[ABCDGISTW]' ! ;; ! hpux*) # Its linker distinguishes data from code symbols ! lt_cv_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern char \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" ! lt_cv_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ! ;; ! irix* | nonstopux*) ! symcode='[BCDEGRST]' ! ;; ! osf*) ! symcode='[BCDEGQRST]' ! ;; ! solaris* | sysv5*) ! symcode='[BDT]' ! ;; ! sysv4) ! symcode='[DFNSTU]' ! ;; ! esac ! ! # Handle CRLF in mingw tool chain ! opt_cr= ! case $host_os in ! mingw*) ! opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ! ;; ! esac ! ! # If we're using GNU nm, then use its standard symbol codes. ! if $NM -V 2>&1 | egrep '(GNU|with BFD)' > /dev/null; then ! symcode='[ABCDGISTW]' ! fi ! ! # Try without a prefix undercore, then with it. ! for ac_symprfx in "" "_"; do ! ! # Write the raw and C identifiers. ! lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'" ! # Check to see that the pipe works correctly. ! pipe_works=no ! rm -f conftest* ! cat > conftest.$ac_ext <&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then ! # Now try to grab the symbols. ! nlist=conftest.nm ! if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 ! (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); } && test -s "$nlist"; then ! # Try sorting and uniquifying the output. ! if sort "$nlist" | uniq > "$nlist"T; then ! mv -f "$nlist"T "$nlist" ! else ! rm -f "$nlist"T ! fi ! ! # Make sure that we snagged all the symbols we need. ! if egrep ' nm_test_var$' "$nlist" >/dev/null; then ! if egrep ' nm_test_func$' "$nlist" >/dev/null; then ! cat < conftest.$ac_ext ! #ifdef __cplusplus ! extern "C" { ! #endif ! ! EOF ! # Now generate the symbol file. ! eval "$lt_cv_global_symbol_to_cdecl"' < "$nlist" >> conftest.$ac_ext' ! cat <> conftest.$ac_ext ! #if defined (__STDC__) && __STDC__ ! # define lt_ptr void * ! #else ! # define lt_ptr char * ! # define const ! #endif ! /* The mapping between symbol names and symbols. */ ! const struct { ! const char *name; ! lt_ptr address; ! } ! lt_preloaded_symbols[] = { - EOF - sed "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr) \&\2},/" < "$nlist" >> conftest.$ac_ext - cat <<\EOF >> conftest.$ac_ext - {0, (lt_ptr) 0} - }; ! #ifdef __cplusplus } ! #endif ! EOF ! # Now try linking the two files. ! mv conftest.$ac_objext conftstm.$ac_objext ! save_LIBS="$LIBS" ! save_CFLAGS="$CFLAGS" ! LIBS="conftstm.$ac_objext" ! CFLAGS="$CFLAGS$no_builtin_flag" ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); } && test -s conftest$ac_exeext; then ! pipe_works=yes ! fi ! LIBS="$save_LIBS" ! CFLAGS="$save_CFLAGS" ! else ! echo "cannot find nm_test_func in $nlist" >&5 ! fi ! else ! echo "cannot find nm_test_var in $nlist" >&5 ! fi ! else ! echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 ! fi ! else ! echo "$progname: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! fi ! rm -f conftest* conftst* ! ! # Do not use the global_symbol_pipe unless it works. ! if test "$pipe_works" = yes; then ! break ! else ! lt_cv_sys_global_symbol_pipe= ! fi ! done fi - global_symbol_pipe="$lt_cv_sys_global_symbol_pipe" - if test -z "$lt_cv_sys_global_symbol_pipe"; then - global_symbol_to_cdecl= - global_symbol_to_c_name_address= - else - global_symbol_to_cdecl="$lt_cv_global_symbol_to_cdecl" - global_symbol_to_c_name_address="$lt_cv_global_symbol_to_c_name_address" - fi - if test -z "$global_symbol_pipe$global_symbol_to_cdec$global_symbol_to_c_name_address"; - then - echo "$as_me:$LINENO: result: failed" >&5 - echo "${ECHO_T}failed" >&6 - else - echo "$as_me:$LINENO: result: ok" >&5 - echo "${ECHO_T}ok" >&6 fi ! echo "$as_me:$LINENO: checking for egrep" >&5 ! echo $ECHO_N "checking for egrep... $ECHO_C" >&6 ! if test "${ac_cv_prog_egrep+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! if echo a | (grep -E '(a|b)') >/dev/null 2>&1 ! then ac_cv_prog_egrep='grep -E' ! else ac_cv_prog_egrep='egrep' ! fi ! fi ! echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 ! echo "${ECHO_T}$ac_cv_prog_egrep" >&6 ! EGREP=$ac_cv_prog_egrep echo "$as_me:$LINENO: checking for ANSI C header files" >&5 --- 3820,4052 ---- echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6 file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method + test -z "$deplibs_check_method" && deplibs_check_method=unknown + # If no C compiler was specified, use CC. + LTCC=${LTCC-"$CC"} + # If no C compiler flags were specified, use CFLAGS. + LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + # Allow CC to be a program name with arguments. + compiler=$CC ! # Check whether --enable-libtool-lock or --disable-libtool-lock was given. ! if test "${enable_libtool_lock+set}" = set; then ! enableval="$enable_libtool_lock" ! fi; ! test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + # Some flags need to be propagated to the compiler or linker for good + # libtool support. + case $host in + ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then ! case `/usr/bin/file conftest.$ac_objext` in ! *ELF-32*) ! HPUX_IA64_MODE="32" ! ;; ! *ELF-64*) ! HPUX_IA64_MODE="64" ! ;; ! esac ! fi ! rm -rf conftest* ! ;; ! *-*-irix6*) ! # Find out which ABI we are using. ! echo '#line 3869 "configure"' > conftest.$ac_ext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; then ! if test "$lt_cv_prog_gnu_ld" = yes; then ! case `/usr/bin/file conftest.$ac_objext` in ! *32-bit*) ! LD="${LD-ld} -melf32bsmip" ! ;; ! *N32*) ! LD="${LD-ld} -melf32bmipn32" ! ;; ! *64-bit*) ! LD="${LD-ld} -melf64bmip" ! ;; ! esac ! else ! case `/usr/bin/file conftest.$ac_objext` in ! *32-bit*) ! LD="${LD-ld} -32" ! ;; ! *N32*) ! LD="${LD-ld} -n32" ! ;; ! *64-bit*) ! LD="${LD-ld} -64" ! ;; ! esac ! fi ! fi ! rm -rf conftest* ! ;; ! 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 ! (eval $ac_compile) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; then ! case `/usr/bin/file conftest.o` in ! *32-bit*) ! case $host in ! x86_64-*linux*) ! LD="${LD-ld} -m elf_i386" ! ;; ! ppc64-*linux*|powerpc64-*linux*) ! LD="${LD-ld} -m elf32ppclinux" ! ;; ! s390x-*linux*) ! LD="${LD-ld} -m elf_s390" ! ;; ! sparc64-*linux*) ! LD="${LD-ld} -m elf32_sparc" ! ;; ! esac ! ;; ! *64-bit*) ! case $host in ! x86_64-*linux*) ! LD="${LD-ld} -m elf_x86_64" ! ;; ! ppc*-*linux*|powerpc*-*linux*) ! LD="${LD-ld} -m elf64ppc" ! ;; ! s390*-*linux*) ! LD="${LD-ld} -m elf64_s390" ! ;; ! sparc*-*linux*) ! LD="${LD-ld} -m elf64_sparc" ! ;; ! esac ! ;; ! esac ! fi ! rm -rf conftest* ! ;; ! *-*-sco3.2v5*) ! # On SCO OpenServer 5, we need -belf to get full-featured binaries. ! SAVE_CFLAGS="$CFLAGS" ! CFLAGS="$CFLAGS -belf" ! echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 ! echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6 ! if test "${lt_cv_cc_needs_belf+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! ac_ext=c ! ac_cpp='$CPP $CPPFLAGS' ! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ! ac_compiler_gnu=$ac_cv_c_compiler_gnu ! ! 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 { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&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); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest$ac_exeext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; }; then ! lt_cv_cc_needs_belf=yes ! else ! echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 + lt_cv_cc_needs_belf=no fi + rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c + ac_cpp='$CPP $CPPFLAGS' + ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' + ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' + ac_compiler_gnu=$ac_cv_c_compiler_gnu fi + echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 + echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6 + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; + sparc*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) LD="${LD-ld} -m elf64_sparc" ;; + *) LD="${LD-ld} -64" ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; ! esac ! ! need_locks="$enable_libtool_lock" ! echo "$as_me:$LINENO: checking for ANSI C header files" >&5 *************** *** 4583,4741 **** done ! ! # Only perform the check for file, if the check method requires it ! case $deplibs_check_method in ! file_magic*) ! if test "$file_magic_cmd" = '$MAGIC_CMD'; then ! echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 ! echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6 ! if test "${lt_cv_path_MAGIC_CMD+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! case $MAGIC_CMD in ! /*) ! lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ! ;; ! ?:/*) ! lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. ! ;; *) ! ac_save_MAGIC_CMD="$MAGIC_CMD" ! IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ! ac_dummy="/usr/bin:$PATH" ! for ac_dir in $ac_dummy; do ! test -z "$ac_dir" && ac_dir=. ! if test -f $ac_dir/${ac_tool_prefix}file; then ! lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" ! if test -n "$file_magic_test_file"; then ! case $deplibs_check_method in ! "file_magic "*) ! file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" ! MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ! if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | ! egrep "$file_magic_regex" > /dev/null; then ! : ! else ! cat <&2 ! ! *** Warning: the command libtool uses to detect shared libraries, ! *** $file_magic_cmd, produces output that libtool cannot recognize. ! *** The result is that libtool may fail to recognize shared libraries ! *** as such. This will affect the creation of libtool libraries that ! *** depend on shared libraries, but programs linked with such libtool ! *** libraries will work regardless of this problem. Nevertheless, you ! *** may want to report the problem to your system manager and/or to ! *** bug-libtool@gnu.org - EOF - fi ;; - esac - fi - break - fi - done - IFS="$ac_save_ifs" - MAGIC_CMD="$ac_save_MAGIC_CMD" - ;; - esac fi ! MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ! if test -n "$MAGIC_CMD"; then ! echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 ! echo "${ECHO_T}$MAGIC_CMD" >&6 else ! echo "$as_me:$LINENO: result: no" >&5 ! echo "${ECHO_T}no" >&6 fi ! if test -z "$lt_cv_path_MAGIC_CMD"; then ! if test -n "$ac_tool_prefix"; then ! echo "$as_me:$LINENO: checking for file" >&5 ! echo $ECHO_N "checking for file... $ECHO_C" >&6 ! if test "${lt_cv_path_MAGIC_CMD+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else - case $MAGIC_CMD in - /*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. - ;; - ?:/*) - lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a dos path. - ;; - *) - ac_save_MAGIC_CMD="$MAGIC_CMD" - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="/usr/bin:$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/file; then - lt_cv_path_MAGIC_CMD="$ac_dir/file" - if test -n "$file_magic_test_file"; then - case $deplibs_check_method in - "file_magic "*) - file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`" - MAGIC_CMD="$lt_cv_path_MAGIC_CMD" - if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | - egrep "$file_magic_regex" > /dev/null; then - : - else - cat <&2 ! *** Warning: the command libtool uses to detect shared libraries, ! *** $file_magic_cmd, produces output that libtool cannot recognize. ! *** The result is that libtool may fail to recognize shared libraries ! *** as such. This will affect the creation of libtool libraries that ! *** depend on shared libraries, but programs linked with such libtool ! *** libraries will work regardless of this problem. Nevertheless, you ! *** may want to report the problem to your system manager and/or to ! *** bug-libtool@gnu.org EOF ! fi ;; ! esac fi ! break fi ! done ! IFS="$ac_save_ifs" ! MAGIC_CMD="$ac_save_MAGIC_CMD" ! ;; ! esac fi ! MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ! if test -n "$MAGIC_CMD"; then ! echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 ! echo "${ECHO_T}$MAGIC_CMD" >&6 else ! echo "$as_me:$LINENO: result: no" >&5 ! echo "${ECHO_T}no" >&6 fi ! else ! MAGIC_CMD=: ! fi fi fi ;; esac if test -n "$ac_tool_prefix"; then ! # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. ! set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ! if test "${ac_cv_prog_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! if test -n "$RANLIB"; then ! ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH --- 4438,4852 ---- done + # 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 + if test "${lt_cv_sys_max_cmd_len+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; ! netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) ! # This has been around since 386BSD, at least. Likely further. ! if test -x /sbin/sysctl; then ! lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` ! elif test -x /usr/sbin/sysctl; then ! lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` ! else ! lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs ! fi ! # And add a safety zone ! 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` ! ;; ! ! interix*) ! # We know the value 262144 and hardcode it with a safety zone (like BSD) ! lt_cv_sys_max_cmd_len=196608 ! ;; ! ! osf*) ! # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure ! # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not ! # nice to cause kernel panics so lets avoid the loop below. ! # First set a reasonable default. ! lt_cv_sys_max_cmd_len=16384 ! # ! if test -x /sbin/sysconfig; then ! case `/sbin/sysconfig -q proc exec_disable_arg_limit` in ! *1*) lt_cv_sys_max_cmd_len=-1 ;; ! esac ! fi ! ;; ! sco3.2v5*) ! lt_cv_sys_max_cmd_len=102400 ! ;; ! sysv5* | sco5v6* | sysv4.2uw2*) ! kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` ! if test -n "$kargmax"; then ! lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` ! else ! lt_cv_sys_max_cmd_len=32768 ! 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` \ ! = "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` ! ;; ! esac fi ! if test -n $lt_cv_sys_max_cmd_len ; then ! echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5 ! echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6 else ! echo "$as_me:$LINENO: result: none" >&5 ! echo "${ECHO_T}none" >&6 fi ! ! ! ! # 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 ! if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! # These are sane defaults that work on at least a few old systems. ! # [They come from Ultrix. What could be older than Ultrix?!! ;)] ! ! # Character class describing NM global symbol codes. ! symcode='[BCDEGRST]' ! ! # Regexp to match symbols that can be accessed directly from C. ! sympat='\([_A-Za-z][_A-Za-z0-9]*\)' ! ! # Transform an extracted symbol line into a proper C declaration ! lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'" ! ! # Transform an extracted symbol line into symbol name and symbol address ! lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ! ! # Define system-specific variables. ! case $host_os in ! aix*) ! symcode='[BCDT]' ! ;; ! cygwin* | mingw* | pw32*) ! symcode='[ABCDGISTW]' ! ;; ! hpux*) # Its linker distinguishes data from code symbols ! if test "$host_cpu" = ia64; then ! symcode='[ABCDEGRST]' ! fi ! lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" ! lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ! ;; ! linux*) ! if test "$host_cpu" = ia64; then ! symcode='[ABCDGIRSTW]' ! lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" ! lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" ! fi ! ;; ! irix* | nonstopux*) ! symcode='[BCDEGRST]' ! ;; ! osf*) ! symcode='[BCDEGQRST]' ! ;; ! solaris*) ! symcode='[BDRT]' ! ;; ! sco3.2v5*) ! symcode='[DT]' ! ;; ! sysv4.2uw2*) ! symcode='[DT]' ! ;; ! sysv5* | sco5v6* | unixware* | OpenUNIX*) ! symcode='[ABDT]' ! ;; ! sysv4) ! symcode='[DFNSTU]' ! ;; ! esac ! ! # Handle CRLF in mingw tool chain ! opt_cr= ! case $build_os in ! mingw*) ! opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp ! ;; ! esac ! ! # If we're using GNU nm, then use its standard symbol codes. ! case `$NM -V 2>&1` in ! *GNU* | *'with BFD'*) ! symcode='[ABCDGIRSTW]' ;; ! esac + # Try without a prefix undercore, then with it. + for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <&5 ! (eval $ac_compile) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; then ! # Now try to grab the symbols. ! nlist=conftest.nm ! if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5 ! (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); } && test -s "$nlist"; then ! # Try sorting and uniquifying the output. ! if sort "$nlist" | uniq > "$nlist"T; then ! mv -f "$nlist"T "$nlist" ! else ! rm -f "$nlist"T fi ! ! # Make sure that we snagged all the symbols we need. ! if grep ' nm_test_var$' "$nlist" >/dev/null; then ! if grep ' nm_test_func$' "$nlist" >/dev/null; then ! cat < conftest.$ac_ext ! #ifdef __cplusplus ! extern "C" { ! #endif ! ! EOF ! # Now generate the symbol file. ! eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext' ! ! cat <> conftest.$ac_ext ! #if defined (__STDC__) && __STDC__ ! # define lt_ptr_t void * ! #else ! # define lt_ptr_t char * ! # define const ! #endif ! ! /* The mapping between symbol names and symbols. */ ! const struct { ! const char *name; ! lt_ptr_t address; ! } ! lt_preloaded_symbols[] = ! { ! EOF ! $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext ! cat <<\EOF >> conftest.$ac_ext ! {0, (lt_ptr_t) 0} ! }; ! ! #ifdef __cplusplus ! } ! #endif ! EOF ! # Now try linking the two files. ! mv conftest.$ac_objext conftstm.$ac_objext ! lt_save_LIBS="$LIBS" ! lt_save_CFLAGS="$CFLAGS" ! LIBS="conftstm.$ac_objext" ! CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); } && test -s conftest${ac_exeext}; then ! pipe_works=yes ! fi ! LIBS="$lt_save_LIBS" ! CFLAGS="$lt_save_CFLAGS" ! else ! echo "cannot find nm_test_func in $nlist" >&5 ! fi ! else ! echo "cannot find nm_test_var in $nlist" >&5 ! fi ! else ! echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi ! else ! echo "$progname: failed program was:" >&5 ! cat conftest.$ac_ext >&5 ! fi ! rm -f conftest* conftst* ! ! # Do not use the global_symbol_pipe unless it works. ! if test "$pipe_works" = yes; then ! break ! else ! lt_cv_sys_global_symbol_pipe= ! fi ! done ! fi ! if test -z "$lt_cv_sys_global_symbol_pipe"; then ! lt_cv_sys_global_symbol_to_cdecl= ! fi ! if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then ! echo "$as_me:$LINENO: result: failed" >&5 ! echo "${ECHO_T}failed" >&6 else ! echo "$as_me:$LINENO: result: ok" >&5 ! echo "${ECHO_T}ok" >&6 fi ! echo "$as_me:$LINENO: checking for objdir" >&5 ! echo $ECHO_N "checking for objdir... $ECHO_C" >&6 ! if test "${lt_cv_objdir+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! rm -f .libs 2>/dev/null ! mkdir .libs 2>/dev/null ! if test -d .libs; then ! lt_cv_objdir=.libs ! else ! # MS-DOS does not allow filenames that begin with a dot. ! lt_cv_objdir=_libs fi + rmdir .libs 2>/dev/null + fi + echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5 + echo "${ECHO_T}$lt_cv_objdir" >&6 + objdir=$lt_cv_objdir + + + + + case $host_os in + aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES fi ;; esac + # Sed substitution that helps us do robust quoting. It backslashifies + # metacharacters that are still active within double-quoted strings. + Xsed='sed -e 1s/^X//' + sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' + + # Same as above, but do not quote variable references. + double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' + + # Sed substitution to delay expansion of an escaped shell variable in a + # double_quote_subst'ed string. + delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + + # Sed substitution to avoid accidental globbing in evaled expressions + no_glob_subst='s/\*/\\\*/g' + + # Constants: + rm="rm -f" + + # Global variables: + default_ofile=libtool + can_build_shared=yes + + # All known linkers require a `.a' archive for static linking (except MSVC, + # which needs '.lib'). + libext=a + ltmain="$ac_aux_dir/ltmain.sh" + ofile="$default_ofile" + with_gnu_ld="$lt_cv_prog_gnu_ld" + if test -n "$ac_tool_prefix"; then ! # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. ! set dummy ${ac_tool_prefix}ar; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ! if test "${ac_cv_prog_AR+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! if test -n "$AR"; then ! ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH *************** *** 4744,4750 **** test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ! ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi --- 4855,4861 ---- test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ! ac_cv_prog_AR="${ac_tool_prefix}ar" echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi *************** *** 4753,4773 **** fi fi ! RANLIB=$ac_cv_prog_RANLIB ! if test -n "$RANLIB"; then ! echo "$as_me:$LINENO: result: $RANLIB" >&5 ! echo "${ECHO_T}$RANLIB" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ! if test -z "$ac_cv_prog_RANLIB"; then ! ac_ct_RANLIB=$RANLIB ! # Extract the first word of "ranlib", so it can be a program name with args. ! set dummy ranlib; ac_word=$2 ! 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_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 --- 4864,4964 ---- fi fi ! AR=$ac_cv_prog_AR ! if test -n "$AR"; then ! echo "$as_me:$LINENO: result: $AR" >&5 ! echo "${ECHO_T}$AR" >&6 else echo "$as_me:$LINENO: result: no" >&5 echo "${ECHO_T}no" >&6 fi fi ! if test -z "$ac_cv_prog_AR"; then ! ac_ct_AR=$AR ! # Extract the first word of "ar", so it can be a program name with args. ! set dummy ar; ac_word=$2 ! 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_AR+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! if test -n "$ac_ct_AR"; then ! ac_cv_prog_ac_ct_AR="$ac_ct_AR" # 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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ! ac_cv_prog_ac_ct_AR="ar" ! echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ! break 2 ! fi ! done ! done ! ! test -z "$ac_cv_prog_ac_ct_AR" && ac_cv_prog_ac_ct_AR="false" ! fi ! fi ! ac_ct_AR=$ac_cv_prog_ac_ct_AR ! if test -n "$ac_ct_AR"; then ! echo "$as_me:$LINENO: result: $ac_ct_AR" >&5 ! echo "${ECHO_T}$ac_ct_AR" >&6 ! else ! echo "$as_me:$LINENO: result: no" >&5 ! echo "${ECHO_T}no" >&6 ! fi ! ! AR=$ac_ct_AR ! else ! AR="$ac_cv_prog_AR" ! fi ! ! if test -n "$ac_tool_prefix"; then ! # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. ! set dummy ${ac_tool_prefix}ranlib; ac_word=$2 ! echo "$as_me:$LINENO: checking for $ac_word" >&5 ! echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ! if test "${ac_cv_prog_RANLIB+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! if test -n "$RANLIB"; then ! ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. ! else ! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ! for as_dir in $PATH ! do ! IFS=$as_save_IFS ! test -z "$as_dir" && as_dir=. ! for ac_exec_ext in '' $ac_executable_extensions; do ! if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ! ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" ! echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ! break 2 ! fi ! done ! done ! ! fi ! fi ! RANLIB=$ac_cv_prog_RANLIB ! if test -n "$RANLIB"; then ! echo "$as_me:$LINENO: result: $RANLIB" >&5 ! echo "${ECHO_T}$RANLIB" >&6 ! else ! echo "$as_me:$LINENO: result: no" >&5 ! echo "${ECHO_T}no" >&6 ! fi ! ! fi ! if test -z "$ac_cv_prog_RANLIB"; then ! ac_ct_RANLIB=$RANLIB ! # Extract the first word of "ranlib", so it can be a program name with args. ! set dummy ranlib; ac_word=$2 ! 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_RANLIB+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 *************** *** 4887,5036 **** fi - enable_dlopen=no - enable_win32_dll=no - - # Check whether --enable-libtool-lock or --disable-libtool-lock was given. - if test "${enable_libtool_lock+set}" = set; then - enableval="$enable_libtool_lock" - - fi; - test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes - - # Some flags need to be propagated to the compiler or linker for good - # libtool support. - case $host in - *-*-irix6*) - # Find out which ABI we are using. - echo '#line 4905 "configure"' > conftest.$ac_ext - if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - case `/usr/bin/file conftest.$ac_objext` in - *32-bit*) - LD="${LD-ld} -32" - ;; - *N32*) - LD="${LD-ld} -n32" - ;; - *64-bit*) - LD="${LD-ld} -64" - ;; - esac - fi - rm -rf conftest* - ;; - - *-*-sco3.2v5*) - # On SCO OpenServer 5, we need -belf to get full-featured binaries. - SAVE_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -belf" - echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5 - echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6 - if test "${lt_cv_cc_needs_belf+set}" = set; then - echo $ECHO_N "(cached) $ECHO_C" >&6 - else - - - ac_ext=c - ac_cpp='$CPP $CPPFLAGS' - ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' - ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' - ac_compiler_gnu=$ac_cv_c_compiler_gnu - - 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 { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&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); } && - { ac_try='test -z "$ac_c_werror_flag" - || test ! -s conftest.err' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; } && - { ac_try='test -s conftest$ac_exeext' - { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 - (eval $ac_try) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - lt_cv_cc_needs_belf=yes - else - echo "$as_me: failed program was:" >&5 - sed 's/^/| /' conftest.$ac_ext >&5 - - lt_cv_cc_needs_belf=no - fi - rm -f conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - ac_ext=c - ac_cpp='$CPP $CPPFLAGS' - ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' - ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' - ac_compiler_gnu=$ac_cv_c_compiler_gnu - - fi - echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5 - echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6 - if test x"$lt_cv_cc_needs_belf" != x"yes"; then - # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf - CFLAGS="$SAVE_CFLAGS" - fi - ;; - - - esac - - # Sed substitution that helps us do robust quoting. It backslashifies - # metacharacters that are still active within double-quoted strings. - Xsed='sed -e s/^X//' - sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g' - - # Same as above, but do not quote variable references. - double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g' - - # Sed substitution to delay expansion of an escaped shell variable in a - # double_quote_subst'ed string. - delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' - - # Constants: - rm="rm -f" - - # Global variables: - default_ofile=libtool - can_build_shared=yes - - # All known linkers require a `.a' archive for static linking (except M$VC, - # which needs '.lib'). - libext=a - ltmain="$ac_aux_dir/ltmain.sh" - ofile="$default_ofile" - with_gnu_ld="$lt_cv_prog_gnu_ld" - need_locks="$enable_libtool_lock" - old_CC="$CC" old_CFLAGS="$CFLAGS" --- 5078,5083 ---- *************** *** 5039,5078 **** test -z "$AR_FLAGS" && AR_FLAGS=cru test -z "$AS" && AS=as test -z "$CC" && CC=cc test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$LD" && LD=ld test -z "$LN_S" && LN_S="ln -s" test -z "$MAGIC_CMD" && MAGIC_CMD=file test -z "$NM" && NM=nm test -z "$OBJDUMP" && OBJDUMP=objdump test -z "$RANLIB" && RANLIB=: test -z "$STRIP" && STRIP=: test -z "$ac_objext" && ac_objext=o - if test x"$host" != x"$build"; then - ac_tool_prefix=${host_alias}- - else - ac_tool_prefix= - fi - - # Transform linux* to *-*-linux-gnu*, to support old configure scripts. - case $host_os in - linux-gnu*) ;; - linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'` - esac - - case $host_os in - aix3*) - # AIX sometimes has problems with the GCC collect2 program. For some - # reason, if we set the COLLECT_NAMES environment variable, the problems - # vanish in a puff of smoke. - if test "X${COLLECT_NAMES+set}" != Xset; then - COLLECT_NAMES= - export COLLECT_NAMES - fi - ;; - esac - # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' old_postinstall_cmds='chmod 644 $oldlib' --- 5086,5104 ---- test -z "$AR_FLAGS" && AR_FLAGS=cru test -z "$AS" && AS=as test -z "$CC" && CC=cc + test -z "$LTCC" && LTCC=$CC + test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$LD" && LD=ld test -z "$LN_S" && LN_S="ln -s" test -z "$MAGIC_CMD" && MAGIC_CMD=file test -z "$NM" && NM=nm + test -z "$SED" && SED=sed test -z "$OBJDUMP" && OBJDUMP=objdump test -z "$RANLIB" && RANLIB=: test -z "$STRIP" && STRIP=: 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_postinstall_cmds='chmod 644 $oldlib' *************** *** 5081,5113 **** if test -n "$RANLIB"; then case $host_os in openbsd*) ! old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds" ;; *) ! old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi ! # Allow CC to be a program name with arguments. ! set dummy $CC ! compiler="$2" ! ! echo "$as_me:$LINENO: checking for objdir" >&5 ! echo $ECHO_N "checking for objdir... $ECHO_C" >&6 ! rm -f .libs 2>/dev/null ! mkdir .libs 2>/dev/null ! if test -d .libs; then ! objdir=.libs ! else ! # MS-DOS does not allow filenames that begin with a dot. ! objdir=_libs ! fi ! rmdir .libs 2>/dev/null ! echo "$as_me:$LINENO: result: $objdir" >&5 ! echo "${ECHO_T}$objdir" >&6 ! # Check whether --with-pic or --without-pic was given. --- 5107,5276 ---- if test -n "$RANLIB"; then case $host_os in openbsd*) ! old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" ;; *) ! old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" fi ! for cc_temp in $compiler""; do ! case $cc_temp in ! compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; ! distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; ! \-*) ;; ! *) break;; ! esac ! done ! cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` ! ! ! # Only perform the check for file, if the check method requires it ! case $deplibs_check_method in ! file_magic*) ! if test "$file_magic_cmd" = '$MAGIC_CMD'; then ! echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5 ! echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6 ! if test "${lt_cv_path_MAGIC_CMD+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! case $MAGIC_CMD in ! [\\/*] | ?:[\\/]*) ! lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ! ;; ! *) ! lt_save_MAGIC_CMD="$MAGIC_CMD" ! lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ! ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" ! for ac_dir in $ac_dummy; do ! IFS="$lt_save_ifs" ! test -z "$ac_dir" && ac_dir=. ! if test -f $ac_dir/${ac_tool_prefix}file; then ! lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" ! if test -n "$file_magic_test_file"; then ! case $deplibs_check_method in ! "file_magic "*) ! file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` ! MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ! if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | ! $EGREP "$file_magic_regex" > /dev/null; then ! : ! else ! cat <&2 ! ! *** Warning: the command libtool uses to detect shared libraries, ! *** $file_magic_cmd, produces output that libtool cannot recognize. ! *** The result is that libtool may fail to recognize shared libraries ! *** as such. This will affect the creation of libtool libraries that ! *** depend on shared libraries, but programs linked with such libtool ! *** libraries will work regardless of this problem. Nevertheless, you ! *** may want to report the problem to your system manager and/or to ! *** bug-libtool@gnu.org ! ! EOF ! fi ;; ! esac ! fi ! break ! fi ! done ! IFS="$lt_save_ifs" ! MAGIC_CMD="$lt_save_MAGIC_CMD" ! ;; ! esac ! fi ! ! MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ! if test -n "$MAGIC_CMD"; then ! echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 ! echo "${ECHO_T}$MAGIC_CMD" >&6 ! else ! echo "$as_me:$LINENO: result: no" >&5 ! echo "${ECHO_T}no" >&6 ! fi ! ! if test -z "$lt_cv_path_MAGIC_CMD"; then ! if test -n "$ac_tool_prefix"; then ! echo "$as_me:$LINENO: checking for file" >&5 ! echo $ECHO_N "checking for file... $ECHO_C" >&6 ! if test "${lt_cv_path_MAGIC_CMD+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! case $MAGIC_CMD in ! [\\/*] | ?:[\\/]*) ! lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. ! ;; ! *) ! lt_save_MAGIC_CMD="$MAGIC_CMD" ! lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR ! ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" ! for ac_dir in $ac_dummy; do ! IFS="$lt_save_ifs" ! test -z "$ac_dir" && ac_dir=. ! if test -f $ac_dir/file; then ! lt_cv_path_MAGIC_CMD="$ac_dir/file" ! if test -n "$file_magic_test_file"; then ! case $deplibs_check_method in ! "file_magic "*) ! file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` ! MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ! if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | ! $EGREP "$file_magic_regex" > /dev/null; then ! : ! else ! cat <&2 ! ! *** Warning: the command libtool uses to detect shared libraries, ! *** $file_magic_cmd, produces output that libtool cannot recognize. ! *** The result is that libtool may fail to recognize shared libraries ! *** as such. This will affect the creation of libtool libraries that ! *** depend on shared libraries, but programs linked with such libtool ! *** libraries will work regardless of this problem. Nevertheless, you ! *** may want to report the problem to your system manager and/or to ! *** bug-libtool@gnu.org ! ! EOF ! fi ;; ! esac ! fi ! break ! fi ! done ! IFS="$lt_save_ifs" ! MAGIC_CMD="$lt_save_MAGIC_CMD" ! ;; ! esac ! fi ! ! MAGIC_CMD="$lt_cv_path_MAGIC_CMD" ! if test -n "$MAGIC_CMD"; then ! echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5 ! echo "${ECHO_T}$MAGIC_CMD" >&6 ! else ! echo "$as_me:$LINENO: result: no" >&5 ! echo "${ECHO_T}no" >&6 ! fi ! ! else ! MAGIC_CMD=: ! fi ! fi ! ! fi ! ;; ! esac ! ! enable_dlopen=no ! enable_win32_dll=no ! ! # Check whether --enable-libtool-lock or --disable-libtool-lock was given. ! if test "${enable_libtool_lock+set}" = set; then ! enableval="$enable_libtool_lock" ! ! fi; ! test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes # Check whether --with-pic or --without-pic was given. *************** *** 5119,5382 **** fi; test -z "$pic_mode" && pic_mode=default ! # We assume here that the value for lt_cv_prog_cc_pic will not be cached ! # in isolation, and that seeing it set (from the cache) indicates that ! # the associated values are set (in the cache) correctly too. ! echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 ! echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 ! if test "${lt_cv_prog_cc_pic+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! lt_cv_prog_cc_pic= ! lt_cv_prog_cc_shlib= ! lt_cv_prog_cc_wl= ! lt_cv_prog_cc_static= ! lt_cv_prog_cc_no_builtin= ! lt_cv_prog_cc_can_build_shared=$can_build_shared if test "$GCC" = yes; then ! lt_cv_prog_cc_wl='-Wl,' ! lt_cv_prog_cc_static='-static' case $host_os in ! aix*) ! # Below there is a dirty hack to force normal static linking with -ldl ! # The problem is because libdl dynamically linked with both libc and ! # libC (AIX C++ library), which obviously doesn't included in libraries ! # list by gcc. This cause undefined symbols with -static flags. ! # This hack allows C programs to be linked with "-static -ldl", but ! # not sure about C++ programs. ! lt_cv_prog_cc_static="$lt_cv_prog_cc_static ${lt_cv_prog_cc_wl}-lC" ;; amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. ! lt_cv_prog_cc_pic='-m68020 -resident32 -malways-restore-a4' ;; ! beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files ! lt_cv_prog_cc_pic='-fno-common' ;; ! cygwin* | mingw* | 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_cv_prog_cc_pic='-DDLL_EXPORT' ;; sysv4*MP*) if test -d /usr/nec; then ! lt_cv_prog_cc_pic=-Kconform_pic fi ;; *) ! lt_cv_prog_cc_pic='-fPIC' ;; esac else ! # PORTME Check for PIC flags for the system compiler. case $host_os in ! aix3* | aix4* | aix5*) ! lt_cv_prog_cc_wl='-Wl,' ! # All AIX code is PIC. if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor ! lt_cv_prog_cc_static='-Bstatic' else ! lt_cv_prog_cc_static='-bnso -bI:/lib/syscalls.exp' fi ;; hpux9* | hpux10* | hpux11*) ! # Is there a better lt_cv_prog_cc_static that works with the bundled CC? ! lt_cv_prog_cc_wl='-Wl,' ! lt_cv_prog_cc_static="${lt_cv_prog_cc_wl}-a ${lt_cv_prog_cc_wl}archive" ! lt_cv_prog_cc_pic='+Z' ;; irix5* | irix6* | nonstopux*) ! lt_cv_prog_cc_wl='-Wl,' ! lt_cv_prog_cc_static='-non_shared' # PIC (with -KPIC) is the default. ;; ! cygwin* | mingw* | 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_cv_prog_cc_pic='-DDLL_EXPORT' ;; ! newsos6) ! lt_cv_prog_cc_pic='-KPIC' ! lt_cv_prog_cc_static='-Bstatic' ;; osf3* | osf4* | osf5*) # All OSF/1 code is PIC. ! lt_cv_prog_cc_wl='-Wl,' ! lt_cv_prog_cc_static='-non_shared' ! ;; ! ! sco3.2v5*) ! lt_cv_prog_cc_pic='-Kpic' ! lt_cv_prog_cc_static='-dn' ! lt_cv_prog_cc_shlib='-belf' ;; solaris*) ! lt_cv_prog_cc_pic='-KPIC' ! lt_cv_prog_cc_static='-Bstatic' ! lt_cv_prog_cc_wl='-Wl,' ;; sunos4*) ! lt_cv_prog_cc_pic='-PIC' ! lt_cv_prog_cc_static='-Bstatic' ! lt_cv_prog_cc_wl='-Qoption ld ' ! ;; ! ! sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) ! lt_cv_prog_cc_pic='-KPIC' ! lt_cv_prog_cc_static='-Bstatic' ! lt_cv_prog_cc_wl='-Wl,' ;; ! uts4*) ! lt_cv_prog_cc_pic='-pic' ! lt_cv_prog_cc_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then ! lt_cv_prog_cc_pic='-Kconform_pic' ! lt_cv_prog_cc_static='-Bstatic' fi ;; *) ! lt_cv_prog_cc_can_build_shared=no ;; esac fi fi ! if test -z "$lt_cv_prog_cc_pic"; then ! echo "$as_me:$LINENO: result: none" >&5 ! echo "${ECHO_T}none" >&6 else ! echo "$as_me:$LINENO: result: $lt_cv_prog_cc_pic" >&5 ! echo "${ECHO_T}$lt_cv_prog_cc_pic" >&6 ! # Check to make sure the pic_flag actually works. ! echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_cv_prog_cc_pic works" >&5 ! echo $ECHO_N "checking if $compiler PIC flag $lt_cv_prog_cc_pic works... $ECHO_C" >&6 ! if test "${lt_cv_prog_cc_pic_works+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! save_CFLAGS="$CFLAGS" ! CFLAGS="$CFLAGS $lt_cv_prog_cc_pic -DPIC" ! cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! int ! main () ! { ! ; ! return 0; ! } ! _ACEOF ! rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 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); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; }; then ! case $host_os in ! hpux9* | hpux10* | hpux11*) ! # On HP-UX, both CC and GCC only warn that PIC is supported... then ! # they create non-PIC objects. So, if there were any warnings, we ! # assume that PIC is not supported. ! if test -s conftest.err; then ! lt_cv_prog_cc_pic_works=no ! else ! lt_cv_prog_cc_pic_works=yes ! fi ! ;; ! *) ! lt_cv_prog_cc_pic_works=yes ! ;; ! esac else ! echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 - lt_cv_prog_cc_pic_works=no ! fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ! CFLAGS="$save_CFLAGS" fi ! if test "X$lt_cv_prog_cc_pic_works" = Xno; then ! lt_cv_prog_cc_pic= ! lt_cv_prog_cc_can_build_shared=no ! else ! lt_cv_prog_cc_pic=" $lt_cv_prog_cc_pic" fi ! ! echo "$as_me:$LINENO: result: $lt_cv_prog_cc_pic_works" >&5 ! echo "${ECHO_T}$lt_cv_prog_cc_pic_works" >&6 fi ! # Check for any special shared library compilation flags. ! if test -n "$lt_cv_prog_cc_shlib"; then ! { echo "$as_me:$LINENO: WARNING: \`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries" >&5 ! echo "$as_me: WARNING: \`$CC' requires \`$lt_cv_prog_cc_shlib' to build shared libraries" >&2;} ! if echo "$old_CC $old_CFLAGS " | egrep -e "[ ]$lt_cv_prog_cc_shlib[ ]" >/dev/null; then : else ! { echo "$as_me:$LINENO: WARNING: add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&5 ! echo "$as_me: WARNING: add \`$lt_cv_prog_cc_shlib' to the CC or CFLAGS env variable and reconfigure" >&2;} ! lt_cv_prog_cc_can_build_shared=no ! fi ! fi ! echo "$as_me:$LINENO: checking if $compiler static flag $lt_cv_prog_cc_static works" >&5 ! echo $ECHO_N "checking if $compiler static flag $lt_cv_prog_cc_static works... $ECHO_C" >&6 ! if test "${lt_cv_prog_cc_static_works+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! lt_cv_prog_cc_static_works=no ! save_LDFLAGS="$LDFLAGS" ! LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static" ! cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 5282,6185 ---- fi; test -z "$pic_mode" && pic_mode=default ! # Use C for the default configuration in the libtool script ! tagname= ! lt_save_CC="$CC" ! ac_ext=c ! ac_cpp='$CPP $CPPFLAGS' ! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ! ac_compiler_gnu=$ac_cv_c_compiler_gnu ! ! ! # Source file extension for C test sources. ! ac_ext=c ! ! # Object file extension for compiled C test sources. ! objext=o ! objext=$objext ! ! # Code to be used in simple compile tests ! lt_simple_compile_test_code="int some_variable = 0;\n" ! ! # Code to be used in simple link tests ! lt_simple_link_test_code='int main(){return(0);}\n' ! ! ! # If no C compiler was specified, use CC. ! LTCC=${LTCC-"$CC"} ! ! # If no C compiler flags were specified, use CFLAGS. ! LTCFLAGS=${LTCFLAGS-"$CFLAGS"} ! ! # Allow CC to be a program name with arguments. ! compiler=$CC ! ! ! # save warnings/boilerplate of simple test code ! ac_outfile=conftest.$ac_objext ! printf "$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 ! eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err ! _lt_linker_boilerplate=`cat conftest.err` ! $rm conftest* ! ! ! ! lt_prog_compiler_no_builtin_flag= ! ! if test "$GCC" = yes; then ! lt_prog_compiler_no_builtin_flag=' -fno-builtin' ! ! ! echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 ! echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 ! if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else ! lt_cv_prog_compiler_rtti_exceptions=no ! ac_outfile=conftest.$ac_objext ! printf "$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. ! # Note that $ac_compile itself does not contain backslashes and begins ! # with a dollar sign (not a hyphen), so the echo should work correctly. ! # The option is referenced via a variable to avoid confusing sed. ! lt_compile=`echo "$ac_compile" | $SED \ ! -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:5358: $lt_compile\"" >&5) ! (eval "$lt_compile" 2>conftest.err) ! ac_status=$? ! cat conftest.err >&5 ! echo "$as_me:5362: \$? = $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_cv_prog_compiler_rtti_exceptions=yes ! fi ! fi ! $rm conftest* ! ! fi ! echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 ! echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6 ! ! if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then ! lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" ! else ! : ! fi ! ! fi ! ! lt_prog_compiler_wl= ! lt_prog_compiler_pic= ! lt_prog_compiler_static= ! ! echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5 ! echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6 if test "$GCC" = yes; then ! lt_prog_compiler_wl='-Wl,' ! lt_prog_compiler_static='-static' case $host_os in ! aix*) ! # All AIX code is PIC. ! if test "$host_cpu" = ia64; then ! # AIX 5 now supports IA64 processor ! lt_prog_compiler_static='-Bstatic' ! fi ;; + amigaos*) # FIXME: we need at least 68020 code to build shared libraries, but # adding the `-m68020' flag to GCC prevents building anything better, # like `-m68040'. ! lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; ! ! beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; + + mingw* | 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' + ;; + darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files ! lt_prog_compiler_pic='-fno-common' ;; ! ! interix3*) ! # Interix 3.x gcc -fpic/-fPIC options generate broken code. ! # Instead, we relocate shared libraries at runtime. ! ;; ! ! msdosdjgpp*) ! # Just because we use GCC doesn't mean we suddenly get shared libraries ! # on systems that don't support them. ! lt_prog_compiler_can_build_shared=no ! enable_shared=no ;; + sysv4*MP*) if test -d /usr/nec; then ! lt_prog_compiler_pic=-Kconform_pic fi ;; + + hpux*) + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + *) ! lt_prog_compiler_pic='-fPIC' ;; esac else ! # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in ! aix*) ! lt_prog_compiler_wl='-Wl,' if test "$host_cpu" = ia64; then # AIX 5 now supports IA64 processor ! lt_prog_compiler_static='-Bstatic' else ! lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; + darwin*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + case $cc_basename in + xlc*) + lt_prog_compiler_pic='-qnocommon' + lt_prog_compiler_wl='-Wl,' + ;; + esac + ;; + + mingw* | 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' + ;; hpux9* | hpux10* | hpux11*) ! lt_prog_compiler_wl='-Wl,' ! # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but ! # not for PA HP-UX. ! case $host_cpu in ! hppa*64*|ia64*) ! # +Z the default ! ;; ! *) ! lt_prog_compiler_pic='+Z' ! ;; ! esac ! # Is there a better lt_prog_compiler_static that works with the bundled CC? ! lt_prog_compiler_static='${wl}-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) ! lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' ;; ! newsos6) ! lt_prog_compiler_pic='-KPIC' ! lt_prog_compiler_static='-Bstatic' ;; ! linux*) ! case $cc_basename in ! icc* | ecc*) ! lt_prog_compiler_wl='-Wl,' ! lt_prog_compiler_pic='-KPIC' ! lt_prog_compiler_static='-static' ! ;; ! pgcc* | pgf77* | pgf90* | pgf95*) ! # Portland Group compilers (*not* the Pentium gcc compiler, ! # which looks to be a dead project) ! lt_prog_compiler_wl='-Wl,' ! lt_prog_compiler_pic='-fpic' ! lt_prog_compiler_static='-Bstatic' ! ;; ! ccc*) ! lt_prog_compiler_wl='-Wl,' ! # All Alpha code is PIC. ! lt_prog_compiler_static='-non_shared' ! ;; ! esac ;; osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. ! lt_prog_compiler_static='-non_shared' ;; solaris*) ! lt_prog_compiler_pic='-KPIC' ! lt_prog_compiler_static='-Bstatic' ! case $cc_basename in ! f77* | f90* | f95*) ! lt_prog_compiler_wl='-Qoption ld ';; ! *) ! lt_prog_compiler_wl='-Wl,';; ! esac ;; sunos4*) ! lt_prog_compiler_wl='-Qoption ld ' ! lt_prog_compiler_pic='-PIC' ! lt_prog_compiler_static='-Bstatic' ;; ! sysv4 | sysv4.2uw2* | sysv4.3*) ! lt_prog_compiler_wl='-Wl,' ! lt_prog_compiler_pic='-KPIC' ! lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec ;then ! lt_prog_compiler_pic='-Kconform_pic' ! lt_prog_compiler_static='-Bstatic' fi ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + *) ! lt_prog_compiler_can_build_shared=no ;; esac fi + echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5 + echo "${ECHO_T}$lt_prog_compiler_pic" >&6 + + # + # Check to make sure the PIC flag actually works. + # + if test -n "$lt_prog_compiler_pic"; then + + 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 + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + lt_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + printf "$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. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -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:5626: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:5630: \$? = $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 + 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 ! if test x"$lt_prog_compiler_pic_works" = xyes; then ! case $lt_prog_compiler_pic in ! "" | " "*) ;; ! *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; ! esac else ! lt_prog_compiler_pic= ! lt_prog_compiler_can_build_shared=no ! fi ! fi ! case $host_os in ! # For platforms which do not support PIC, -DPIC is meaningless: ! *djgpp*) ! lt_prog_compiler_pic= ! ;; ! *) ! lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ! ;; ! esac ! # ! # Check to make sure the static flag actually works. ! # ! 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 ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! lt_prog_compiler_static_works=no ! save_LDFLAGS="$LDFLAGS" ! LDFLAGS="$LDFLAGS $lt_tmp_static_flag" ! printf "$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 ! if test -s conftest.err; then ! # Append any errors to the config.log. ! cat conftest.err 1>&5 ! $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 ! fi ! else ! lt_prog_compiler_static_works=yes ! fi ! fi ! $rm 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 + if test x"$lt_prog_compiler_static_works" = xyes; then + : else ! lt_prog_compiler_static= ! fi ! echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 ! echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 ! if test "${lt_cv_prog_compiler_c_o+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! lt_cv_prog_compiler_c_o=no ! $rm -r conftest 2>/dev/null ! mkdir conftest ! cd conftest ! mkdir out ! printf "$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 ! # (2) before a word containing "conftest.", or (3) at the end. ! # Note that $ac_compile itself does not contain backslashes and begins ! # with a dollar sign (not a hyphen), so the echo should work correctly. ! lt_compile=`echo "$ac_compile" | $SED \ ! -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:5730: $lt_compile\"" >&5) ! (eval "$lt_compile" 2>out/conftest.err) ! ac_status=$? ! cat out/conftest.err >&5 ! echo "$as_me:5734: \$? = $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 ! # So say no if there are warnings ! $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp ! $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 ! if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then ! lt_cv_prog_compiler_c_o=yes ! fi ! fi ! chmod u+w . 2>&5 ! $rm conftest* ! # SGI C++ compiler will create directory out/ii_files/ for ! # template instantiation ! test -d out/ii_files && $rm out/ii_files/* && rmdir out/ii_files ! $rm out/* && rmdir out ! cd .. ! rmdir conftest ! $rm conftest* fi + echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5 + echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6 ! hard_links="nottested" ! if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then ! # do not overwrite the value of need_locks provided by the user ! echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 ! echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 ! hard_links=yes ! $rm conftest* ! ln conftest.a conftest.b 2>/dev/null && hard_links=no ! touch conftest.a ! ln conftest.a conftest.b 2>&5 || hard_links=no ! ln conftest.a conftest.b 2>/dev/null && hard_links=no ! echo "$as_me:$LINENO: result: $hard_links" >&5 ! echo "${ECHO_T}$hard_links" >&6 ! if test "$hard_links" = no; then ! { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 ! echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} ! need_locks=warn fi ! else ! need_locks=no fi ! echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5 ! echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6 ! ! runpath_var= ! allow_undefined_flag= ! enable_shared_with_static_runtimes=no ! archive_cmds= ! archive_expsym_cmds= ! old_archive_From_new_cmds= ! old_archive_from_expsyms_cmds= ! export_dynamic_flag_spec= ! whole_archive_flag_spec= ! thread_safe_flag_spec= ! hardcode_libdir_flag_spec= ! hardcode_libdir_flag_spec_ld= ! hardcode_libdir_separator= ! hardcode_direct=no ! hardcode_minus_L=no ! hardcode_shlibpath_var=unsupported ! link_all_deplibs=unknown ! hardcode_automatic=no ! module_cmds= ! module_expsym_cmds= ! always_export_symbols=no ! export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ! # include_expsyms should be a list of space-separated symbols to be *always* ! # included in the symbol list ! include_expsyms= ! # exclude_expsyms can be an extended regexp of symbols to exclude ! # 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_" ! # 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. ! extract_expsyms_cmds= ! # Just being paranoid about ensuring that cc_basename is set. ! for cc_temp in $compiler""; do ! case $cc_temp in ! compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; ! distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; ! \-*) ;; ! *) break;; ! esac ! done ! cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` ! ! case $host_os in ! cygwin* | mingw* | pw32*) ! # FIXME: the MSVC++ port hasn't been tested in a loooong time ! # When not using gcc, we currently assume that we are using ! # Microsoft Visual C++. ! if test "$GCC" != yes; then ! with_gnu_ld=no ! fi ! ;; ! interix*) ! # we just hope/assume this is gcc and not c89 (= MSVC++) ! with_gnu_ld=yes ! ;; ! openbsd*) ! with_gnu_ld=no ! ;; ! esac ! ! ld_shlibs=yes ! if test "$with_gnu_ld" = yes; then ! # If archive_cmds runs LD, not CC, wlarc should be empty ! wlarc='${wl}' ! ! # Set some defaults for GNU ld with shared library support. These ! # are reset later if shared libraries are not supported. Putting them ! # here allows them to be overridden if necessary. ! runpath_var=LD_RUN_PATH ! hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' ! export_dynamic_flag_spec='${wl}--export-dynamic' ! # ancient GNU ld didn't support --whole-archive et. al. ! if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then ! whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' ! else ! whole_archive_flag_spec= ! fi ! supports_anon_versioning=no ! case `$LD -v 2>/dev/null` in ! *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 ! *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... ! *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... ! *\ 2.11.*) ;; # other 2.11 versions ! *) supports_anon_versioning=yes ;; ! esac ! ! # See if GNU ld supports shared libraries. ! case $host_os in ! aix3* | aix4* | aix5*) ! # On AIX/PPC, the GNU linker is very broken ! if test "$host_cpu" != ia64; then ! ld_shlibs=no ! cat <&2 ! ! *** Warning: the GNU linker, at least up to release 2.9.1, is reported ! *** to be unable to reliably create shared libraries on AIX. ! *** Therefore, libtool is disabling shared libraries support. If you ! *** really care for shared libraries, you may want to modify your PATH ! *** so that a non-GNU linker is found, and then restart. ! ! EOF ! fi ! ;; ! ! amigaos*) ! archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ! hardcode_libdir_flag_spec='-L$libdir' ! hardcode_minus_L=yes ! ! # Samuel A. Falvo II reports ! # that the semantics of dynamic libraries on AmigaOS, at least up ! # to version 4, is to share data among multiple programs linked ! # with the same dynamic library. Since this doesn't match the ! # behavior of shared libraries on other platforms, we can't use ! # them. ! ld_shlibs=no ! ;; ! ! beos*) ! if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then ! allow_undefined_flag=unsupported ! # Joseph Beckenbach says some releases of gcc ! # support --undefined. This deserves some investigation. FIXME ! archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! else ! ld_shlibs=no ! fi ! ;; ! ! cygwin* | mingw* | pw32*) ! # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, ! # as there is no search path for DLLs. ! hardcode_libdir_flag_spec='-L$libdir' ! 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' ! ! 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' ! # If the export-symbols file already is a .def file (1st line ! # is EXPORTS), use it as is; otherwise, prepend... ! archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then ! cp $export_symbols $output_objdir/$soname.def; ! else ! echo EXPORTS > $output_objdir/$soname.def; ! cat $export_symbols >> $output_objdir/$soname.def; ! fi~ ! $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' ! else ! ld_shlibs=no ! fi ! ;; ! ! interix3*) ! hardcode_direct=no ! hardcode_shlibpath_var=no ! hardcode_libdir_flag_spec='${wl}-rpath,$libdir' ! export_dynamic_flag_spec='${wl}-E' ! # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. ! # Instead, shared libraries are loaded at an image base (0x10000000 by ! # default) and relocated if they conflict, which is a slow very memory ! # consuming and fragmenting process. To avoid this, we pick a random, ! # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link ! # time. Moving up from 0x10000000 also allows more sbrk(2) space. ! archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ! 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*) ! if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then ! tmp_addflag= ! case $cc_basename,$host_cpu in ! pgcc*) # Portland Group C compiler ! whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' ! tmp_addflag=' $pic_flag' ! ;; ! pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers ! whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' ! tmp_addflag=' $pic_flag -Mnomain' ;; ! ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 ! tmp_addflag=' -i_dynamic' ;; ! efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 ! tmp_addflag=' -i_dynamic -nofor_main' ;; ! 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' ! ! 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' ! fi ! else ! ld_shlibs=no ! fi ! ;; ! ! netbsd*) ! if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ! archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' ! wlarc= ! else ! archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ! fi ! ;; ! ! solaris*) ! if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then ! ld_shlibs=no ! cat <&2 ! ! *** Warning: The releases 2.8.* of the GNU linker cannot reliably ! *** create shared libraries on Solaris systems. Therefore, libtool ! *** is disabling shared libraries support. We urge you to upgrade GNU ! *** binutils to release 2.9.1 or newer. Another option is to modify ! *** your PATH or compiler configuration so that the native linker is ! *** used, and then restart. ! ! EOF ! elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then ! archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ! else ! ld_shlibs=no ! fi ! ;; ! ! sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) ! case `$LD -v 2>&1` in ! *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ! ld_shlibs=no ! cat <<_LT_EOF 1>&2 ! ! *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not ! *** reliably create shared libraries on SCO systems. Therefore, libtool ! *** is disabling shared libraries support. We urge you to upgrade GNU ! *** binutils to release 2.16.91.0.3 or newer. Another option is to modify ! *** your PATH or compiler configuration so that the native linker is ! *** used, and then restart. ! ! _LT_EOF ! ;; ! *) ! if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then ! hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' ! archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib' ! archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname,\${SCOABSPATH:+${install_libdir}/}$soname,-retain-symbols-file,$export_symbols -o $lib' ! else ! ld_shlibs=no ! fi ! ;; ! esac ! ;; ! ! sunos4*) ! archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' ! wlarc= ! hardcode_direct=yes ! hardcode_shlibpath_var=no ! ;; ! ! *) ! if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then ! archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ! else ! ld_shlibs=no ! fi ! ;; ! esac ! ! if test "$ld_shlibs" = no; then ! runpath_var= ! hardcode_libdir_flag_spec= ! export_dynamic_flag_spec= ! whole_archive_flag_spec= ! fi else ! # PORTME fill in a description of your system's linker (not GNU ld) ! case $host_os in ! aix3*) ! allow_undefined_flag=unsupported ! always_export_symbols=yes ! archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' ! # Note: this linker hardcodes the directories in LIBPATH if there ! # are no directories specified by -L. ! hardcode_minus_L=yes ! if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then ! # Neither direct hardcoding nor static linking is supported with a ! # broken collect2. ! hardcode_direct=unsupported ! fi ! ;; ! aix4* | aix5*) ! 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. ! aix_use_runtimelinking=no ! exp_sym_flag='-Bexport' ! no_entry_flag="" ! else ! # 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 ! export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' ! else ! export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$2 == "T") || (\$2 == "D") || (\$2 == "B")) && (substr(\$3,1,1) != ".")) { print \$3 } }'\'' | sort -u > $export_symbols' ! fi ! aix_use_runtimelinking=no ! ! # 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*) ! for ld_flag in $LDFLAGS; do ! if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then ! aix_use_runtimelinking=yes ! break ! fi ! done ! ;; ! esac ! ! exp_sym_flag='-bexport' ! no_entry_flag='-bnoentry' ! fi ! ! # When large executables or shared objects are built, AIX ld can ! # have problems creating the table of contents. If linking a library ! # or program results in "error TOC overflow" add -mminimal-toc to ! # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not ! # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. ! ! archive_cmds='' ! hardcode_direct=yes ! hardcode_libdir_separator=':' ! link_all_deplibs=yes ! ! if test "$GCC" = yes; then ! case $host_os in aix4.[012]|aix4.[012].*) ! # We only want to do this on AIX 4.2 and lower, the check ! # below for broken collect2 doesn't work under 4.3+ ! collect2name=`${CC} -print-prog-name=collect2` ! if test -f "$collect2name" && \ ! strings "$collect2name" | grep resolve_lib_name >/dev/null ! then ! # We have reworked collect2 ! hardcode_direct=yes ! else ! # We have old collect2 ! hardcode_direct=unsupported ! # It fails to find uninstalled libraries when the uninstalled ! # path is not listed in the libpath. Setting hardcode_minus_L ! # to unsupported forces relinking ! hardcode_minus_L=yes ! hardcode_libdir_flag_spec='-L$libdir' ! hardcode_libdir_separator= ! fi ! ;; ! esac ! shared_flag='-shared' ! if test "$aix_use_runtimelinking" = yes; then ! shared_flag="$shared_flag "'${wl}-G' ! fi ! else ! # not using gcc ! if test "$host_cpu" = ia64; then ! # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release ! # chokes on -Wl,-G. The following line is correct: ! shared_flag='-G' ! else ! if test "$aix_use_runtimelinking" = yes; then ! shared_flag='${wl}-G' ! else ! shared_flag='${wl}-bM:SRE' ! fi ! fi ! fi ! ! # It seems that -bexpall does not export symbols beginning with ! # underscore (_), so it is better to generate a list of symbols to export. ! always_export_symbols=yes ! if test "$aix_use_runtimelinking" = yes; then ! # Warning - without using the other runtime loading flags (-brtl), ! # -berok will link without error, but may produce a broken library. ! allow_undefined_flag='-berok' ! # Determine the default libpath from the value encoded in an empty executable. ! cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext *************** *** 5413,5419 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ! lt_cv_prog_cc_static_works=yes else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 --- 6216,6227 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then ! ! aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } ! }'` ! # 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 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 *************** *** 5421,5506 **** fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ! LDFLAGS="$save_LDFLAGS" ! ! fi ! ! ! # Belt *and* braces to stop my trousers falling down: ! test "X$lt_cv_prog_cc_static_works" = Xno && lt_cv_prog_cc_static= ! echo "$as_me:$LINENO: result: $lt_cv_prog_cc_static_works" >&5 ! echo "${ECHO_T}$lt_cv_prog_cc_static_works" >&6 ! ! pic_flag="$lt_cv_prog_cc_pic" ! special_shlib_compile_flags="$lt_cv_prog_cc_shlib" ! wl="$lt_cv_prog_cc_wl" ! link_static_flag="$lt_cv_prog_cc_static" ! no_builtin_flag="$lt_cv_prog_cc_no_builtin" ! can_build_shared="$lt_cv_prog_cc_can_build_shared" ! ! ! # Check to see if options -o and -c are simultaneously supported by compiler ! echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5 ! echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6 ! if test "${lt_cv_compiler_c_o+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! $rm -r conftest 2>/dev/null ! mkdir conftest ! cd conftest ! echo "int some_variable = 0;" > conftest.$ac_ext ! mkdir out ! # According to Tom Tromey, Ian Lance Taylor reported there are C compilers ! # that will create temporary files in the current directory regardless of ! # the output directory. Thus, making CWD read-only will cause this test ! # to fail, enabling locking or at least warning the user not to do parallel ! # builds. ! chmod -w . ! save_CFLAGS="$CFLAGS" ! CFLAGS="$CFLAGS -o out/conftest2.$ac_objext" ! compiler_c_o=no ! if { (eval echo configure:5463: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then ! # The compiler can only warn and ignore the option if not recognized ! # So say no if there are warnings ! if test -s out/conftest.err; then ! lt_cv_compiler_c_o=no ! else ! lt_cv_compiler_c_o=yes ! fi ! else ! # Append any errors to the config.log. ! cat out/conftest.err 1>&5 ! lt_cv_compiler_c_o=no ! fi ! CFLAGS="$save_CFLAGS" ! chmod u+w . ! $rm conftest* out/* ! rmdir out ! cd .. ! rmdir conftest ! $rm -r conftest 2>/dev/null ! ! fi ! ! compiler_c_o=$lt_cv_compiler_c_o ! echo "$as_me:$LINENO: result: $compiler_c_o" >&5 ! echo "${ECHO_T}$compiler_c_o" >&6 ! ! if test x"$compiler_c_o" = x"yes"; then ! # Check to see if we can write to a .lo ! echo "$as_me:$LINENO: checking if $compiler supports -c -o file.lo" >&5 ! echo $ECHO_N "checking if $compiler supports -c -o file.lo... $ECHO_C" >&6 ! if test "${lt_cv_compiler_o_lo+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! ! lt_cv_compiler_o_lo=no ! save_CFLAGS="$CFLAGS" ! CFLAGS="$CFLAGS -c -o conftest.lo" ! save_objext="$ac_objext" ! ac_objext=lo ! cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext --- 6229,6246 ---- fi rm -f conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ! if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ! hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" ! archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" ! else ! if test "$host_cpu" = ia64; then ! hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' ! allow_undefined_flag="-z nodefs" ! archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" ! else ! # Determine the default libpath from the value encoded in an empty executable. ! cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext *************** *** 5510,5523 **** int main () { ! int some_variable = 0; ; return 0; } _ACEOF ! rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 --- 6250,6263 ---- int main () { ! ; return 0; } _ACEOF ! rm -f conftest.$ac_objext conftest$ac_exeext ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 *************** *** 5531,6412 **** ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then - # The compiler can only warn and ignore the option if not recognized - # So say no if there are warnings - if test -s conftest.err; then - lt_cv_compiler_o_lo=no - else - lt_cv_compiler_o_lo=yes - fi else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ! ac_objext="$save_objext" ! CFLAGS="$save_CFLAGS" ! fi ! compiler_o_lo=$lt_cv_compiler_o_lo ! echo "$as_me:$LINENO: result: $compiler_o_lo" >&5 ! echo "${ECHO_T}$compiler_o_lo" >&6 ! else ! compiler_o_lo=no ! fi ! # Check to see if we can do hard links to lock some files if needed ! hard_links="nottested" ! if test "$compiler_c_o" = no && test "$need_locks" != no; then ! # do not overwrite the value of need_locks provided by the user ! echo "$as_me:$LINENO: checking if we can lock with hard links" >&5 ! echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6 ! hard_links=yes ! $rm conftest* ! ln conftest.a conftest.b 2>/dev/null && hard_links=no ! touch conftest.a ! ln conftest.a conftest.b 2>&5 || hard_links=no ! ln conftest.a conftest.b 2>/dev/null && hard_links=no ! echo "$as_me:$LINENO: result: $hard_links" >&5 ! echo "${ECHO_T}$hard_links" >&6 ! if test "$hard_links" = no; then ! { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 ! echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} ! need_locks=warn ! fi ! else ! need_locks=no ! fi ! if test "$GCC" = yes; then ! # Check to see if options -fno-rtti -fno-exceptions are supported by compiler ! echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 ! echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6 ! echo "int some_variable = 0;" > conftest.$ac_ext ! save_CFLAGS="$CFLAGS" ! CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext" ! compiler_rtti_exceptions=no ! cat >conftest.$ac_ext <<_ACEOF ! /* confdefs.h. */ ! _ACEOF ! cat confdefs.h >>conftest.$ac_ext ! cat >>conftest.$ac_ext <<_ACEOF ! /* end confdefs.h. */ ! int ! main () ! { ! int some_variable = 0; ! ; ! return 0; ! } ! _ACEOF ! rm -f conftest.$ac_objext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 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); } && ! { ac_try='test -z "$ac_c_werror_flag" ! || test ! -s conftest.err' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; } && ! { ac_try='test -s conftest.$ac_objext' ! { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ! (eval $ac_try) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; }; then ! # The compiler can only warn and ignore the option if not recognized ! # So say no if there are warnings ! if test -s conftest.err; then ! compiler_rtti_exceptions=no else ! compiler_rtti_exceptions=yes fi ! else ! echo "$as_me: failed program was:" >&5 ! sed 's/^/| /' conftest.$ac_ext >&5 ! fi ! rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ! CFLAGS="$save_CFLAGS" ! echo "$as_me:$LINENO: result: $compiler_rtti_exceptions" >&5 ! echo "${ECHO_T}$compiler_rtti_exceptions" >&6 ! if test "$compiler_rtti_exceptions" = "yes"; then ! no_builtin_flag=' -fno-builtin -fno-rtti -fno-exceptions' ! else ! no_builtin_flag=' -fno-builtin' ! fi ! fi ! # See if the linker supports building shared libraries. ! echo "$as_me:$LINENO: checking whether the linker ($LD) supports shared libraries" >&5 ! echo $ECHO_N "checking whether the linker ($LD) supports shared libraries... $ECHO_C" >&6 ! allow_undefined_flag= ! no_undefined_flag= ! need_lib_prefix=unknown ! need_version=unknown ! # when you set need_version to no, make sure it does not cause -set_version ! # flags to be left without arguments ! archive_cmds= ! archive_expsym_cmds= ! old_archive_from_new_cmds= ! old_archive_from_expsyms_cmds= ! export_dynamic_flag_spec= ! whole_archive_flag_spec= ! thread_safe_flag_spec= ! hardcode_into_libs=no ! hardcode_libdir_flag_spec= ! hardcode_libdir_separator= ! hardcode_direct=no ! hardcode_minus_L=no ! hardcode_shlibpath_var=unsupported ! runpath_var= ! link_all_deplibs=unknown ! always_export_symbols=no ! export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | sed '\''s/.* //'\'' | sort | uniq > $export_symbols' ! # include_expsyms should be a list of space-separated symbols to be *always* ! # included in the symbol list ! include_expsyms= ! # exclude_expsyms can be an egrep regular expression of symbols to exclude ! # 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_" ! # 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. ! extract_expsyms_cmds= ! case $host_os in ! cygwin* | mingw* | pw32*) ! # FIXME: the MSVC++ port hasn't been tested in a loooong time ! # When not using gcc, we currently assume that we are using ! # Microsoft Visual C++. ! if test "$GCC" != yes; then ! with_gnu_ld=no ! fi ! ;; ! openbsd*) ! with_gnu_ld=no ! ;; ! esac ! ld_shlibs=yes ! if test "$with_gnu_ld" = yes; then ! # If archive_cmds runs LD, not CC, wlarc should be empty ! wlarc='${wl}' ! # See if GNU ld supports shared libraries. ! case $host_os in ! aix3* | aix4* | aix5*) ! # On AIX, the GNU linker is very broken ! # Note:Check GNU linker on AIX 5-IA64 when/if it becomes available. ! ld_shlibs=no ! cat <&2 ! *** Warning: the GNU linker, at least up to release 2.9.1, is reported ! *** to be unable to reliably create shared libraries on AIX. ! *** Therefore, libtool is disabling shared libraries support. If you ! *** really care for shared libraries, you may want to modify your PATH ! *** so that a non-GNU linker is found, and then restart. ! EOF ! ;; ! amigaos*) ! archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ! hardcode_libdir_flag_spec='-L$libdir' ! hardcode_minus_L=yes ! ! # Samuel A. Falvo II reports ! # that the semantics of dynamic libraries on AmigaOS, at least up ! # to version 4, is to share data among multiple programs linked ! # with the same dynamic library. Since this doesn't match the ! # behavior of shared libraries on other platforms, we can use ! # them. ! ld_shlibs=no ! ;; ! beos*) ! if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported ! # Joseph Beckenbach says some releases of gcc ! # support --undefined. This deserves some investigation. FIXME ! archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! else ! ld_shlibs=no ! fi ! ;; ! cygwin* | mingw* | pw32*) ! # hardcode_libdir_flag_spec is actually meaningless, as there is ! # no search path for DLLs. ! hardcode_libdir_flag_spec='-L$libdir' ! allow_undefined_flag=unsupported ! always_export_symbols=yes ! ! extract_expsyms_cmds='test -f $output_objdir/impgen.c || \ ! sed -e "/^# \/\* impgen\.c starts here \*\//,/^# \/\* impgen.c ends here \*\// { s/^# //;s/^# *$//; p; }" -e d < $''0 > $output_objdir/impgen.c~ ! test -f $output_objdir/impgen.exe || (cd $output_objdir && \ ! if test "x$HOST_CC" != "x" ; then $HOST_CC -o impgen impgen.c ; \ ! else $CC -o impgen impgen.c ; fi)~ ! $output_objdir/impgen $dir/$soroot > $output_objdir/$soname-def' ! ! old_archive_from_expsyms_cmds='$DLLTOOL --as=$AS --dllname $soname --def $output_objdir/$soname-def --output-lib $output_objdir/$newlib' ! ! # cygwin and mingw dlls have different entry points and sets of symbols ! # to exclude. ! # FIXME: what about values for MSVC? ! dll_entry=__cygwin_dll_entry@12 ! dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12~ ! case $host_os in ! mingw*) ! # mingw values ! dll_entry=_DllMainCRTStartup@12 ! dll_exclude_symbols=DllMain@12,DllMainCRTStartup@12,DllEntryPoint@12~ ;; - esac ! # mingw and cygwin differ, and it's simplest to just exclude the union ! # of the two symbol sets. ! dll_exclude_symbols=DllMain@12,_cygwin_dll_entry@12,_cygwin_noncygwin_dll_entry@12,DllMainCRTStartup@12,DllEntryPoint@12 ! ! # recent cygwin and mingw systems supply a stub DllMain which the user ! # can override, but on older systems we have to supply one (in ltdll.c) ! if test "x$lt_cv_need_dllmain" = "xyes"; then ! ltdll_obj='$output_objdir/$soname-ltdll.'"$ac_objext " ! ltdll_cmds='test -f $output_objdir/$soname-ltdll.c || sed -e "/^# \/\* ltdll\.c starts here \*\//,/^# \/\* ltdll.c ends here \*\// { s/^# //; p; }" -e d < $''0 > $output_objdir/$soname-ltdll.c~ ! test -f $output_objdir/$soname-ltdll.$ac_objext || (cd $output_objdir && $CC -c $soname-ltdll.c)~' ! else ! ltdll_obj= ! ltdll_cmds= ! fi ! # Extract the symbol export list from an `--export-all' def file, ! # then regenerate the def file from the symbol export list, so that ! # the compiled dll only exports the symbol export list. ! # Be careful not to strip the DATA tag left be newer dlltools. ! export_symbols_cmds="$ltdll_cmds"' ! $DLLTOOL --export-all --exclude-symbols '$dll_exclude_symbols' --output-def $output_objdir/$soname-def '$ltdll_obj'$libobjs $convenience~ ! sed -e "1,/EXPORTS/d" -e "s/ @ [0-9]*//" -e "s/ *;.*$//" < $output_objdir/$soname-def > $export_symbols' ! ! # If the export-symbols file already is a .def file (1st line ! # is EXPORTS), use it as is. ! # If DATA tags from a recent dlltool are present, honour them! ! archive_expsym_cmds='if test "x`sed 1q $export_symbols`" = xEXPORTS; then ! cp $export_symbols $output_objdir/$soname-def; else ! echo EXPORTS > $output_objdir/$soname-def; ! _lt_hint=1; ! cat $export_symbols | while read symbol; do ! set dummy \$symbol; ! case \$# in ! 2) echo " \$2 @ \$_lt_hint ; " >> $output_objdir/$soname-def;; ! 4) echo " \$2 \$3 \$4 ; " >> $output_objdir/$soname-def; _lt_hint=`expr \$_lt_hint - 1`;; ! *) echo " \$2 @ \$_lt_hint \$3 ; " >> $output_objdir/$soname-def;; ! esac; ! _lt_hint=`expr 1 + \$_lt_hint`; ! done; ! fi~ ! '"$ltdll_cmds"' ! $CC -Wl,--base-file,$output_objdir/$soname-base '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ ! $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp~ ! $CC -Wl,--base-file,$output_objdir/$soname-base $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags~ ! $DLLTOOL --as=$AS --dllname $soname --exclude-symbols '$dll_exclude_symbols' --def $output_objdir/$soname-def --base-file $output_objdir/$soname-base --output-exp $output_objdir/$soname-exp --output-lib $output_objdir/$libname.dll.a~ ! $CC $output_objdir/$soname-exp '$lt_cv_cc_dll_switch' -Wl,-e,'$dll_entry' -o $output_objdir/$soname '$ltdll_obj'$libobjs $deplibs $compiler_flags' ! ;; ! ! netbsd*) ! if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ! archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' ! wlarc= ! else ! archive_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! archive_expsym_cmds='$CC -shared -nodefaultlibs $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ! fi ! ;; ! solaris* | sysv5*) ! if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then ! ld_shlibs=no ! cat <&2 ! *** Warning: The releases 2.8.* of the GNU linker cannot reliably ! *** create shared libraries on Solaris systems. Therefore, libtool ! *** is disabling shared libraries support. We urge you to upgrade GNU ! *** binutils to release 2.9.1 or newer. Another option is to modify ! *** your PATH or compiler configuration so that the native linker is ! *** used, and then restart. ! EOF ! elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ! archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ! else ! ld_shlibs=no ! fi ! ;; ! sunos4*) ! archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' ! wlarc= ! hardcode_direct=yes ! hardcode_shlibpath_var=no ! ;; ! *) ! if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then ! archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' ! archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' ! else ! ld_shlibs=no ! fi ! ;; ! esac ! if test "$ld_shlibs" = yes; then ! runpath_var=LD_RUN_PATH ! hardcode_libdir_flag_spec='${wl}--rpath ${wl}$libdir' ! export_dynamic_flag_spec='${wl}--export-dynamic' ! case $host_os in ! cygwin* | mingw* | pw32*) ! # dlltool doesn't understand --whole-archive et. al. ! whole_archive_flag_spec= ;; ! *) ! # ancient GNU ld didn't support --whole-archive et. al. ! if $LD --help 2>&1 | egrep 'no-whole-archive' > /dev/null; then ! whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' else ! whole_archive_flag_spec= fi ;; esac fi - else - # PORTME fill in a description of your system's linker (not GNU ld) - case $host_os in - aix3*) - allow_undefined_flag=unsupported - always_export_symbols=yes - archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' - # Note: this linker hardcodes the directories in LIBPATH if there - # are no directories specified by -L. - hardcode_minus_L=yes - if test "$GCC" = yes && test -z "$link_static_flag"; then - # Neither direct hardcoding nor static linking is supported with a - # broken collect2. - hardcode_direct=unsupported - fi - ;; ! aix4* | aix5*) ! 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. ! aix_use_runtimelinking=no ! exp_sym_flag='-Bexport' ! no_entry_flag="" ! else ! aix_use_runtimelinking=no ! # 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*) ! for ld_flag in $LDFLAGS; do ! case $ld_flag in ! *-brtl*) ! aix_use_runtimelinking=yes ! break ! ;; ! esac ! done ! esac ! ! exp_sym_flag='-bexport' ! no_entry_flag='-bnoentry' ! fi ! ! # When large executables or shared objects are built, AIX ld can ! # have problems creating the table of contents. If linking a library ! # or program results in "error TOC overflow" add -mminimal-toc to ! # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not ! # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. ! ! hardcode_direct=yes ! archive_cmds='' ! hardcode_libdir_separator=':' ! if test "$GCC" = yes; then ! case $host_os in aix4.[012]|aix4.[012].*) ! collect2name=`${CC} -print-prog-name=collect2` ! if test -f "$collect2name" && \ ! strings "$collect2name" | grep resolve_lib_name >/dev/null ! then ! # We have reworked collect2 ! hardcode_direct=yes ! else ! # We have old collect2 ! hardcode_direct=unsupported ! # It fails to find uninstalled libraries when the uninstalled ! # path is not listed in the libpath. Setting hardcode_minus_L ! # to unsupported forces relinking ! hardcode_minus_L=yes ! hardcode_libdir_flag_spec='-L$libdir' ! hardcode_libdir_separator= ! fi ! esac ! ! shared_flag='-shared' ! else ! # not using gcc ! if test "$host_cpu" = ia64; then ! shared_flag='${wl}-G' ! else ! if test "$aix_use_runtimelinking" = yes; then ! shared_flag='${wl}-G' ! else ! shared_flag='${wl}-bM:SRE' ! fi ! fi ! fi ! # It seems that -bexpall can do strange things, so it is better to ! # generate a list of symbols to export. ! always_export_symbols=yes ! if test "$aix_use_runtimelinking" = yes; then ! # Warning - without using the other runtime loading flags (-brtl), ! # -berok will link without error, but may produce a broken library. ! allow_undefined_flag='-berok' ! hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib' ! archive_expsym_cmds="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag" ! else ! if test "$host_cpu" = ia64; then ! hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' ! allow_undefined_flag="-z nodefs" ! archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname ${wl}-h$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols" else ! hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib' ! # Warning - without using the other run time loading flags, ! # -berok will link without error, but may produce a broken library. ! allow_undefined_flag='${wl}-berok' ! # This is a bit strange, but is similar to how AIX traditionally builds ! # it's shared libraries. ! archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"' ~$AR -crlo $objdir/$libname$release.a $objdir/$soname' fi ! fi ! ;; ! ! amigaos*) ! archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ! hardcode_libdir_flag_spec='-L$libdir' ! hardcode_minus_L=yes ! # see comment about different semantics on the GNU ld section ! ld_shlibs=no ! ;; ! ! cygwin* | mingw* | pw32*) ! # When not using gcc, we currently assume that we are using ! # Microsoft Visual C++. ! # hardcode_libdir_flag_spec is actually meaningless, as there is ! # no search path for DLLs. ! hardcode_libdir_flag_spec=' ' ! allow_undefined_flag=unsupported ! # Tell ltmain to make .lib files, not .a files. ! libext=lib ! # FIXME: Setting linknames here is a bad hack. ! archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | sed -e '\''s/ -lc$//'\''` -link -dll~linknames=' ! # 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' ! fix_srcfile_path='`cygpath -w "$srcfile"`' ! ;; ! ! darwin* | rhapsody*) ! case "$host_os" in ! rhapsody* | darwin1.[012]) ! allow_undefined_flag='-undefined suppress' ;; - *) # Darwin 1.3 on - allow_undefined_flag='-flat_namespace -undefined suppress' - ;; - esac - # FIXME: Relying on posixy $() will cause problems for - # cross-compilation, but unfortunately the echo tests do not - # yet detect zsh echo's removal of \ escapes. Also zsh mangles - # `"' quotes if we put them in here... so don't! - archive_cmds='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs && $CC $(test .$module = .yes && echo -bundle || echo -dynamiclib) $allow_undefined_flag -o $lib ${lib}-master.o $deplibs$linker_flags $(test .$module != .yes && echo -install_name $rpath/$soname $verstring)' - # We need to add '_' to the symbols in $export_symbols first - #archive_expsym_cmds="$archive_cmds"' && strip -s $export_symbols' - hardcode_direct=yes - hardcode_shlibpath_var=no - whole_archive_flag_spec='-all_load $convenience' - ;; - - freebsd1*) - ld_shlibs=no - ;; - - # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor - # support. Future versions do this automatically, but an explicit c++rt0.o - # does not break anything, and helps significantly (at the cost of a little - # extra space). - freebsd2.2*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - # Unfortunately, older versions of FreeBSD 2 do not have this feature. - freebsd2*) - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd*) - archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - hpux9* | hpux10* | hpux11*) - case $host_os in - hpux9*) archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ;; - *) archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ;; - esac - hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_direct=yes - hardcode_minus_L=yes # Not in the search PATH, but as the default - # location of the library. - export_dynamic_flag_spec='${wl}-E' - ;; - - irix5* | irix6* | nonstopux*) - if test "$GCC" = yes; then - archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='-rpath $libdir' - fi - hardcode_libdir_separator=: - link_all_deplibs=yes - ;; - - netbsd*) - if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then - archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out - else - archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF - fi - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - hardcode_shlibpath_var=no - ;; - - newsos6) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - hardcode_shlibpath_var=no - ;; - - 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' - 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 - ;; - - os2*) - hardcode_libdir_flag_spec='-L$libdir' - hardcode_minus_L=yes - allow_undefined_flag=unsupported - archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' - old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' - ;; - - osf3*) - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - fi - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - hardcode_libdir_separator=: - ;; - - osf4* | osf5*) # as osf3* with the addition of -msym flag - if test "$GCC" = yes; then - allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' - archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' - hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - else - allow_undefined_flag=' -expect_unresolved \*' - archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' - archive_expsym_cmds='for i in `cat $export_symbols`; do printf "-exported_symbol " >> $lib.exp; echo "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ - $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp' - - #Both c and cxx compiler support -rpath directly - hardcode_libdir_flag_spec='-rpath $libdir' - fi - hardcode_libdir_separator=: - ;; - - sco3.2v5*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - export_dynamic_flag_spec='${wl}-Bexport' - ;; - - solaris*) - # gcc --version < 3.0 without binutils cannot create self contained - # shared libraries reliably, requiring libgcc.a to resolve some of - # the object symbols generated in some cases. Libraries that use - # assert need libgcc.a to resolve __eprintf, for example. Linking - # a copy of libgcc.a into every shared library to guarantee resolving - # such symbols causes other problems: According to Tim Van Holder - # , C++ libraries end up with a separate - # (to the application) exception stack for one thing. - no_undefined_flag=' -z defs' - if test "$GCC" = yes; then - case `$CC --version 2>/dev/null` in - [12].*) - cat <&2 - - *** Warning: Releases of GCC earlier than version 3.0 cannot reliably - *** create self contained shared libraries on Solaris systems, without - *** introducing a dependency on libgcc.a. Therefore, libtool is disabling - *** -no-undefined support, which will at least allow you to build shared - *** libraries. However, you may find that when you link such libraries - *** into an application without using GCC, you have to manually add - *** \`gcc --print-libgcc-file-name\` to the link command. We urge you to - *** upgrade to a newer version of GCC. Another option is to rebuild your - *** current GCC to use the GNU linker from GNU binutils 2.9.1 or newer. - - EOF - no_undefined_flag= - ;; - esac - fi - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - hardcode_libdir_flag_spec='-R$libdir' - hardcode_shlibpath_var=no - case $host_os in - solaris2.[0-5] | solaris2.[0-5].*) ;; - *) # Supported since Solaris 2.6 (maybe 2.5.1?) - whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; - esac - link_all_deplibs=yes - ;; - - sunos4*) - if test "x$host_vendor" = xsequent; then - # Use $CC to link under sequent, because it throws in some extra .o - # files that make .init and .fini sections work. - archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' - fi - hardcode_libdir_flag_spec='-L$libdir' - hardcode_direct=yes - hardcode_minus_L=yes - hardcode_shlibpath_var=no - ;; - - sysv4) - case $host_vendor in - sni) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes # is this really true??? - ;; - siemens) - ## LD is ld it makes a PLAMLIB - ## CC just makes a GrossModule. - archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' - reload_cmds='$CC -r -o $output$reload_objs' - hardcode_direct=no - ;; - motorola) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=no #Motorola manual says yes, but my tests say they lie - ;; esac - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var=no - ;; - - sysv4.3*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - export_dynamic_flag_spec='-Bexport' - ;; - - sysv5*) - no_undefined_flag=' -z text' - # $CC -shared without GNU ld will not create a library from C++ - # object files and a static libstdc++, better avoid it by now - archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' - archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ - $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' - hardcode_libdir_flag_spec= - hardcode_shlibpath_var=no - runpath_var='LD_RUN_PATH' - ;; - - uts4*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - dgux*) - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_libdir_flag_spec='-L$libdir' - hardcode_shlibpath_var=no - ;; - - sysv4*MP*) - if test -d /usr/nec; then - archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' - hardcode_shlibpath_var=no - runpath_var=LD_RUN_PATH - hardcode_runpath_var=yes - ld_shlibs=yes - fi - ;; - - sysv4.2uw2*) - archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' - hardcode_direct=yes - hardcode_minus_L=no - hardcode_shlibpath_var=no - hardcode_runpath_var=yes - runpath_var=LD_RUN_PATH - ;; - - sysv5uw7* | unixware7*) - no_undefined_flag='${wl}-z ${wl}text' - if test "$GCC" = yes; then - archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - else - archive_cmds='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' - fi - runpath_var='LD_RUN_PATH' - hardcode_shlibpath_var=no - ;; - - *) - ld_shlibs=no - ;; - esac - fi - echo "$as_me:$LINENO: result: $ld_shlibs" >&5 - echo "${ECHO_T}$ld_shlibs" >&6 - test "$ld_shlibs" = no && can_build_shared=no - - # Check hardcoding attributes. - echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 - echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 - hardcode_action= - if test -n "$hardcode_libdir_flag_spec" || \ - test -n "$runpath_var"; then - - # We can hardcode non-existant directories. - if test "$hardcode_direct" != no && - # If the only mechanism to avoid hardcoding is shlibpath_var, we - # have to relink, otherwise we might link with an installed library - # when we should be linking with a yet-to-be-installed one - ## test "$hardcode_shlibpath_var" != no && - test "$hardcode_minus_L" != no; then - # Linking always hardcodes the temporary library directory. - hardcode_action=relink - else - # We can link without hardcoding, and we can hardcode nonexisting dirs. - hardcode_action=immediate fi ! else ! # We cannot hardcode anything, or else we can only hardcode existing ! # directories. ! hardcode_action=unsupported ! fi ! echo "$as_me:$LINENO: result: $hardcode_action" >&5 ! echo "${ECHO_T}$hardcode_action" >&6 ! ! striplib= ! old_striplib= ! echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 ! echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6 ! if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then ! test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" ! test -z "$striplib" && striplib="$STRIP --strip-unneeded" ! echo "$as_me:$LINENO: result: yes" >&5 ! echo "${ECHO_T}yes" >&6 ! else ! echo "$as_me:$LINENO: result: no" >&5 ! echo "${ECHO_T}no" >&6 ! fi ! ! reload_cmds='$LD$reload_flag -o $output$reload_objs' ! test -z "$deplibs_check_method" && deplibs_check_method=unknown - # PORTME Fill in your ld.so characteristics echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= postinstall_cmds= postuninstall_cmds= finish_cmds= --- 6271,6815 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; } && ! { ac_try='test -s conftest$ac_exeext' { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 (eval $ac_try) 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then + aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } + }'` + # 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 else echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi ! rm -f conftest.err conftest.$ac_objext \ ! conftest$ac_exeext conftest.$ac_ext ! if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi ! hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" ! # Warning - without using the other run time loading flags, ! # -berok will link without error, but may produce a broken library. ! no_undefined_flag=' ${wl}-bernotok' ! allow_undefined_flag=' ${wl}-berok' ! # Exported symbols can be pulled into shared objects from archives ! whole_archive_flag_spec='$convenience' ! archive_cmds_need_lc=yes ! # This is similar to how AIX traditionally builds its shared libraries. ! archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' ! fi ! fi ! ;; ! amigaos*) ! archive_cmds='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' ! hardcode_libdir_flag_spec='-L$libdir' ! hardcode_minus_L=yes ! # see comment about different semantics on the GNU ld section ! ld_shlibs=no ! ;; ! bsdi[45]*) ! export_dynamic_flag_spec=-rdynamic ! ;; ! cygwin* | mingw* | pw32*) ! # When not using gcc, we currently assume that we are using ! # Microsoft Visual C++. ! # hardcode_libdir_flag_spec is actually meaningless, as there is ! # no search path for DLLs. ! hardcode_libdir_flag_spec=' ' ! allow_undefined_flag=unsupported ! # Tell ltmain to make .lib files, not .a files. ! libext=lib ! # Tell ltmain to make .dll files, not .so files. ! shrext_cmds=".dll" ! # FIXME: Setting linknames here is a bad hack. ! archive_cmds='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames=' ! # 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' ! fix_srcfile_path='`cygpath -w "$srcfile"`' ! enable_shared_with_static_runtimes=yes ! ;; ! darwin* | rhapsody*) ! case $host_os in ! rhapsody* | darwin1.[012]) ! allow_undefined_flag='${wl}-undefined ${wl}suppress' ! ;; ! *) # Darwin 1.3 on ! if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then ! allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ! else ! case ${MACOSX_DEPLOYMENT_TARGET} in ! 10.[012]) ! allow_undefined_flag='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ! ;; ! 10.*) ! allow_undefined_flag='${wl}-undefined ${wl}dynamic_lookup' ! ;; ! esac ! fi ! ;; ! esac ! archive_cmds_need_lc=no ! hardcode_direct=no ! hardcode_automatic=yes ! hardcode_shlibpath_var=unsupported ! whole_archive_flag_spec='' ! 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}' 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' ! 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}' ! 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}' ! ;; ! *) ! ld_shlibs=no ! ;; ! esac fi + ;; ! dgux*) ! archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ! hardcode_libdir_flag_spec='-L$libdir' ! hardcode_shlibpath_var=no ! ;; ! freebsd1*) ! ld_shlibs=no ! ;; ! # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor ! # support. Future versions do this automatically, but an explicit c++rt0.o ! # does not break anything, and helps significantly (at the cost of a little ! # extra space). ! freebsd2.2*) ! archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' ! hardcode_libdir_flag_spec='-R$libdir' ! hardcode_direct=yes ! hardcode_shlibpath_var=no ! ;; ! # Unfortunately, older versions of FreeBSD 2 do not have this feature. ! freebsd2*) ! archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' ! hardcode_direct=yes ! hardcode_minus_L=yes ! hardcode_shlibpath_var=no ! ;; ! # FreeBSD 3 and greater uses gcc -shared to do shared libraries. ! freebsd* | kfreebsd*-gnu | dragonfly*) ! archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' ! hardcode_libdir_flag_spec='-R$libdir' ! hardcode_direct=yes ! hardcode_shlibpath_var=no ! ;; ! hpux9*) ! if test "$GCC" = yes; then ! archive_cmds='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ! else ! archive_cmds='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' ! fi ! hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' ! hardcode_libdir_separator=: ! hardcode_direct=yes ! ! # hardcode_minus_L: Not really in the search PATH, ! # but as the default location of the library. ! hardcode_minus_L=yes ! export_dynamic_flag_spec='${wl}-E' ! ;; ! hpux10*) ! if test "$GCC" = yes -a "$with_gnu_ld" = no; then ! archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ! else ! archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' ! fi ! if test "$with_gnu_ld" = no; then ! hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' ! hardcode_libdir_separator=: ! ! hardcode_direct=yes ! export_dynamic_flag_spec='${wl}-E' ! ! # hardcode_minus_L: Not really in the search PATH, ! # but as the default location of the library. ! hardcode_minus_L=yes ! fi ! ;; ! hpux11*) ! if test "$GCC" = yes -a "$with_gnu_ld" = no; then ! case $host_cpu in ! hppa*64*) ! archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ! ;; ! ia64*) ! archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ! ;; ! *) ! archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ! ;; ! esac ! else ! case $host_cpu in ! hppa*64*) ! archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ! ;; ! ia64*) ! archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ! ;; ! *) ! archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ! ;; ! esac ! fi ! if test "$with_gnu_ld" = no; then ! hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' ! hardcode_libdir_separator=: ! ! case $host_cpu in ! hppa*64*|ia64*) ! hardcode_libdir_flag_spec_ld='+b $libdir' ! hardcode_direct=no ! hardcode_shlibpath_var=no ! ;; ! *) ! hardcode_direct=yes ! export_dynamic_flag_spec='${wl}-E' ! # hardcode_minus_L: Not really in the search PATH, ! # but as the default location of the library. ! hardcode_minus_L=yes ! ;; ! esac ! fi ! ;; ! irix5* | irix6* | nonstopux*) ! if test "$GCC" = yes; then ! archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ! else ! archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ! hardcode_libdir_flag_spec_ld='-rpath $libdir' ! fi ! hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ! hardcode_libdir_separator=: ! link_all_deplibs=yes ! ;; ! netbsd*) ! if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ! archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out ! else ! archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF ! fi ! hardcode_libdir_flag_spec='-R$libdir' ! hardcode_direct=yes ! hardcode_shlibpath_var=no ! ;; ! newsos6) ! archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ! hardcode_direct=yes ! hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ! hardcode_libdir_separator=: ! hardcode_shlibpath_var=no ! ;; ! ! 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' ! 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 ! ;; ! ! os2*) ! hardcode_libdir_flag_spec='-L$libdir' ! hardcode_minus_L=yes allow_undefined_flag=unsupported ! archive_cmds='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' ! old_archive_From_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' ! ;; ! osf3*) ! if test "$GCC" = yes; then ! allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' ! archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ! else ! allow_undefined_flag=' -expect_unresolved \*' ! archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ! fi ! hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ! hardcode_libdir_separator=: ;; ! osf4* | osf5*) # as osf3* with the addition of -msym flag ! if test "$GCC" = yes; then ! allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' ! archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' ! hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' ! else ! allow_undefined_flag=' -expect_unresolved \*' ! archive_cmds='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib' ! archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~ ! $LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib~$rm $lib.exp' ! ! # Both c and cxx compiler support -rpath directly ! hardcode_libdir_flag_spec='-rpath $libdir' ! fi ! hardcode_libdir_separator=: ! ;; ! solaris*) ! no_undefined_flag=' -z text' ! if test "$GCC" = yes; then ! wlarc='${wl}' ! archive_cmds='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' ! archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ ! $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp' else ! wlarc='' ! archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' ! archive_expsym_cmds='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~ ! $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp' ! fi ! hardcode_libdir_flag_spec='-R$libdir' ! hardcode_shlibpath_var=no ! 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. ! # 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 ;; ! esac ! link_all_deplibs=yes ! ;; ! sunos4*) ! if test "x$host_vendor" = xsequent; then ! # Use $CC to link under sequent, because it throws in some extra .o ! # files that make .init and .fini sections work. ! archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' ! else ! archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' ! fi ! hardcode_libdir_flag_spec='-L$libdir' ! hardcode_direct=yes ! hardcode_minus_L=yes ! hardcode_shlibpath_var=no ! ;; ! sysv4) ! case $host_vendor in ! sni) ! archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ! hardcode_direct=yes # is this really true??? ! ;; ! siemens) ! ## LD is ld it makes a PLAMLIB ! ## CC just makes a GrossModule. ! archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' ! reload_cmds='$CC -r -o $output$reload_objs' ! hardcode_direct=no ! ;; ! motorola) ! archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ! hardcode_direct=no #Motorola manual says yes, but my tests say they lie ! ;; ! esac ! runpath_var='LD_RUN_PATH' ! hardcode_shlibpath_var=no ! ;; ! sysv4.3*) ! archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ! hardcode_shlibpath_var=no ! export_dynamic_flag_spec='-Bexport' ! ;; ! sysv4*MP*) ! if test -d /usr/nec; then ! archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' ! hardcode_shlibpath_var=no ! runpath_var=LD_RUN_PATH ! hardcode_runpath_var=yes ! ld_shlibs=yes ! fi ! ;; ! sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) ! no_undefined_flag='${wl}-z,text' ! archive_cmds_need_lc=no ! hardcode_shlibpath_var=no ! runpath_var='LD_RUN_PATH' ! if test "$GCC" = yes; then ! archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ! archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ! else ! archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ! archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ! fi ;; ! ! sysv5* | sco3.2v5* | sco5v6*) ! # Note: We can NOT use -z defs as we might desire, because we do not ! # link with -lc, and that would cause any symbols used from libc to ! # always be unresolved, which means just about no library would ! # ever link correctly. If we're not using GNU ld we use -z text ! # though, which does catch some bad symbols but isn't as heavy-handed ! # as -z defs. ! no_undefined_flag='${wl}-z,text' ! allow_undefined_flag='${wl}-z,nodefs' ! archive_cmds_need_lc=no ! hardcode_shlibpath_var=no ! hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' ! hardcode_libdir_separator=':' ! link_all_deplibs=yes ! export_dynamic_flag_spec='${wl}-Bexport' ! runpath_var='LD_RUN_PATH' ! ! if test "$GCC" = yes; then ! archive_cmds='$CC -shared ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ! archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' else ! archive_cmds='$CC -G ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' ! archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,\${SCOABSPATH:+${install_libdir}/}$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; esac fi ! echo "$as_me:$LINENO: result: $ld_shlibs" >&5 ! echo "${ECHO_T}$ld_shlibs" >&6 ! test "$ld_shlibs" = no && can_build_shared=no ! # ! # Do we need to explicitly link libc? ! # ! case "x$archive_cmds_need_lc" in ! x|xyes) ! # Assume -lc should be added ! archive_cmds_need_lc=yes ! ! if test "$enable_shared" = yes && test "$GCC" = yes; then ! case $archive_cmds in ! *'~'*) ! # FIXME: we may have to deal with multi-command sequences. ! ;; ! '$CC '*) ! # Test whether the compiler implicitly links with -lc since on some ! # systems, -lgcc has to come before -lc. If gcc already passes -lc ! # to ld, don't add -lc before -lgcc. ! 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 ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); } 2>conftest.err; then ! soname=conftest ! lib=conftest ! libobjs=conftest.$ac_objext ! deplibs= ! wl=$lt_prog_compiler_wl ! pic_flag=$lt_prog_compiler_pic ! compiler_flags=-v ! linker_flags=-v ! verstring= ! output_objdir=. ! libname=conftest ! lt_save_allow_undefined_flag=$allow_undefined_flag ! allow_undefined_flag= ! if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 ! (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); } ! then ! archive_cmds_need_lc=no ! else ! archive_cmds_need_lc=yes ! fi ! allow_undefined_flag=$lt_save_allow_undefined_flag else ! cat conftest.err 1>&5 fi ! $rm conftest* ! echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5 ! echo "${ECHO_T}$archive_cmds_need_lc" >&6 ;; esac fi ! ;; ! esac echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5 echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6 library_names_spec= libname_spec='lib$name' soname_spec= + shrext_cmds=".so" postinstall_cmds= postuninstall_cmds= finish_cmds= *************** *** 6416,6431 **** version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" ! sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" case $host_os in aix3*) version_type=linux ! library_names_spec='${libname}${release}.so$versuffix $libname.a' shlibpath_var=LIBPATH ! # AIX has no versioning support, so we append a major version to the name. ! soname_spec='${libname}${release}.so$major' ;; aix4* | aix5*) --- 6819,6853 ---- 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 ! ! # when you set need_version to no, make sure it does not cause -set_version ! # flags to be left without arguments ! need_version=unknown case $host_os in aix3*) version_type=linux ! library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' shlibpath_var=LIBPATH ! # AIX 3 has no versioning support, so we append a major version to the name. ! soname_spec='${libname}${release}${shared_ext}$major' ;; aix4* | aix5*) *************** *** 6435,6441 **** hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 ! library_names_spec='${libname}${release}.so$major ${libname}${release}.so$versuffix $libname.so' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file --- 6857,6863 ---- hardcode_into_libs=yes if test "$host_cpu" = ia64; then # AIX 5 supports IA64 ! library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file *************** *** 6445,6501 **** # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) ! if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' ! echo ' yes ' ! echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then ! : ! else ! can_build_shared=no ! fi ! ;; esac ! # AIX (on Power*) has no versioning support, so currently we can ! # not hardcode correct soname into executable. Probably we can ! # add versioning support to collect2, so additional links can ! # be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. ! library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' ! soname_spec='${libname}${release}.so$major' fi shlibpath_var=LIBPATH fi - hardcode_into_libs=yes ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. ! finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done' ;; beos*) ! library_names_spec='${libname}.so' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; ! bsdi4*) version_type=linux need_version=no ! library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ! soname_spec='${libname}${release}.so$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" - export_dynamic_flag_spec=-rdynamic # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs --- 6867,6920 ---- # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) ! if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' ! echo ' yes ' ! echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then ! : ! else ! can_build_shared=no ! fi ! ;; esac ! # AIX (on Power*) has no versioning support, so currently we can not hardcode correct ! # soname into executable. Probably we can add versioning support to ! # collect2, so additional links can be useful in future. if test "$aix_use_runtimelinking" = yes; then # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' else # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='${libname}${release}.a $libname.a' ! soname_spec='${libname}${release}${shared_ext}$major' fi shlibpath_var=LIBPATH fi ;; amigaos*) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. ! finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; beos*) ! library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; ! bsdi[45]*) version_type=linux need_version=no ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ! soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs *************** *** 6503,6531 **** cygwin* | mingw* | pw32*) version_type=windows need_version=no need_lib_prefix=no case $GCC,$host_os in ! yes,cygwin*) library_names_spec='$libname.dll.a' ! soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll' ! postinstall_cmds='dlpath=`bash 2>&1 -c '\''. $dir/${file}i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ ! $install_prog .libs/$dlname \$dldir/$dlname' ! postuninstall_cmds='dldll=`bash 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' ;; ! yes,mingw*) ! library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll' ! sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g" -e "s,=/,/,g"` ! ;; ! yes,pw32*) ! library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | sed -e 's/./-/g'`${versuffix}.dll' ! ;; *) ! library_names_spec='${libname}`echo ${release} | sed -e 's/[.]/-/g'`${versuffix}.dll $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' --- 6922,6977 ---- cygwin* | mingw* | pw32*) version_type=windows + shrext_cmds=".dll" need_version=no need_lib_prefix=no + case $GCC,$host_os in ! yes,cygwin* | yes,mingw* | yes,pw32*) library_names_spec='$libname.dll.a' ! # DLL is installed to $(libdir)/../bin by postinstall_cmds ! postinstall_cmds='base_file=`basename \${file}`~ ! dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ ! $install_prog $dir/$dlname \$dldir/$dlname~ ! chmod a+x \$dldir/$dlname' ! postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $rm \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + 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 ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + 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 + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac ;; ! *) ! library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' ;; esac dynamic_linker='Win32 ld.exe' *************** *** 6538,6567 **** version_type=darwin need_lib_prefix=no need_version=no ! # FIXME: Relying on posixy $() will cause problems for ! # cross-compilation, but unfortunately the echo tests do not ! # yet detect zsh echo's removal of \ escapes. ! library_names_spec='${libname}${release}${versuffix}.$(test .$module = .yes && echo so || echo dylib) ${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib) ${libname}.$(test .$module = .yes && echo so || echo dylib)' ! soname_spec='${libname}${release}${major}.$(test .$module = .yes && echo so || echo dylib)' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; ! freebsd*) ! objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout` version_type=freebsd-$objformat case $version_type in freebsd-elf*) ! library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so $libname.so' need_version=no need_lib_prefix=no ;; freebsd-*) ! library_names_spec='${libname}${release}.so$versuffix $libname.so$versuffix' need_version=yes ;; esac --- 6984,7048 ---- version_type=darwin need_lib_prefix=no need_version=no ! library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext' ! soname_spec='${libname}${release}${major}$shared_ext' 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' + ;; + + dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH ;; freebsd1*) dynamic_linker=no ;; ! kfreebsd*-gnu) ! version_type=linux ! need_lib_prefix=no ! need_version=no ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' ! soname_spec='${libname}${release}${shared_ext}$major' ! shlibpath_var=LD_LIBRARY_PATH ! shlibpath_overrides_runpath=no ! hardcode_into_libs=yes ! dynamic_linker='GNU ld.so' ! ;; ! ! freebsd* | dragonfly*) ! # DragonFly does not have aout. When/if they implement a new ! # versioning mechanism, adjust this. ! if test -x /usr/bin/objformat; then ! objformat=`/usr/bin/objformat` ! else ! case $host_os in ! freebsd[123]*) objformat=aout ;; ! *) objformat=elf ;; ! esac ! fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' need_version=no need_lib_prefix=no ;; freebsd-*) ! library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' need_version=yes ;; esac *************** *** 6570,6579 **** freebsd2*) shlibpath_overrides_runpath=yes ;; ! *) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; esac ;; --- 7051,7069 ---- freebsd2*) shlibpath_overrides_runpath=yes ;; ! freebsd3.[01]* | freebsdelf3.[01]*) ! shlibpath_overrides_runpath=yes ! hardcode_into_libs=yes ! ;; ! freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ ! freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; + freebsd*) # from 4.6 on + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; esac ;; *************** *** 6581,6588 **** version_type=linux need_lib_prefix=no need_version=no ! library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so${major} ${libname}.so' ! soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; --- 7071,7078 ---- version_type=linux need_lib_prefix=no need_version=no ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' ! soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH hardcode_into_libs=yes ;; *************** *** 6590,6625 **** hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. - dynamic_linker="$host_os dld.sl" version_type=sunos need_lib_prefix=no need_version=no ! shlibpath_var=SHLIB_PATH ! shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH ! library_names_spec='${libname}${release}.sl$versuffix ${libname}${release}.sl$major $libname.sl' ! soname_spec='${libname}${release}.sl$major' # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; ! *) version_type=irix ;; esac need_lib_prefix=no need_version=no ! soname_spec='${libname}${release}.so$major' ! library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so $libname.so' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD ! *-32|*"-32 ") libsuff= shlibsuff= libmagic=32-bit;; ! *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; ! *-64|*"-64 ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; --- 7080,7166 ---- hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no ! case $host_cpu in ! ia64*) ! shrext_cmds='.so' ! hardcode_into_libs=yes ! dynamic_linker="$host_os dld.so" ! shlibpath_var=LD_LIBRARY_PATH ! shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ! soname_spec='${libname}${release}${shared_ext}$major' ! if test "X$HPUX_IA64_MODE" = X32; then ! sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" ! else ! sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" ! fi ! sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ! ;; ! hppa*64*) ! shrext_cmds='.sl' ! hardcode_into_libs=yes ! dynamic_linker="$host_os dld.sl" ! shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH ! shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ! soname_spec='${libname}${release}${shared_ext}$major' ! sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" ! sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ! ;; ! *) ! shrext_cmds='.sl' ! dynamic_linker="$host_os dld.sl" ! shlibpath_var=SHLIB_PATH ! shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ! soname_spec='${libname}${release}${shared_ext}$major' ! ;; ! esac # HP-UX runs *really* slowly unless shared libraries are mode 555. postinstall_cmds='chmod 555 $lib' ;; + interix3*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; ! *) ! if test "$lt_cv_prog_gnu_ld" = yes; then ! version_type=linux ! else ! version_type=irix ! fi ;; esac need_lib_prefix=no need_version=no ! soname_spec='${libname}${release}${shared_ext}$major' ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD ! *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") ! libsuff= shlibsuff= libmagic=32-bit;; ! *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") ! libsuff=32 shlibsuff=N32 libmagic=N32;; ! *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") ! libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; *************** *** 6628,6647 **** shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" ;; # No shared lib support for Linux oldld, aout, or coff. ! linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*) dynamic_linker=no ;; # This must be Linux ELF. ! linux-gnu*) version_type=linux need_lib_prefix=no need_version=no ! library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ! soname_spec='${libname}${release}.so$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no --- 7169,7189 ---- shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. ! linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; # This must be Linux ELF. ! linux*) version_type=linux need_lib_prefix=no need_version=no ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ! soname_spec='${libname}${release}${shared_ext}$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no *************** *** 6650,6655 **** --- 7192,7203 ---- # before this can be enabled. hardcode_into_libs=yes + # 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' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, *************** *** 6659,6675 **** dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ! library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else ! library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major ${libname}${release}.so ${libname}.so' ! soname_spec='${libname}${release}.so$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH --- 7207,7235 ---- dynamic_linker='GNU/Linux ld.so' ;; + knetbsd*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='GNU ld.so' + ;; + netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' ! soname_spec='${libname}${release}${shared_ext}$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH *************** *** 6679,6742 **** newsos6) version_type=linux ! library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos need_lib_prefix=no ! need_version=no if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ! case "$host_os" in ! openbsd2.[89] | openbsd2.[89].*) ! shlibpath_overrides_runpath=no ! ;; ! *) ! shlibpath_overrides_runpath=yes ! ;; ! esac else shlibpath_overrides_runpath=yes fi - library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' - finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' - shlibpath_var=LD_LIBRARY_PATH ;; os2*) libname_spec='$name' need_lib_prefix=no ! library_names_spec='$libname.dll $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf need_version=no ! soname_spec='${libname}${release}.so$major' ! library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" - hardcode_into_libs=yes - ;; - - sco3.2v5*) - version_type=osf - soname_spec='${libname}${release}.so$major' - library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' - shlibpath_var=LD_LIBRARY_PATH ;; solaris*) version_type=linux need_lib_prefix=no need_version=no ! library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ! soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes --- 7239,7311 ---- newsos6) version_type=linux ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ! shlibpath_var=LD_LIBRARY_PATH ! shlibpath_overrides_runpath=yes ! ;; ! ! nto-qnx*) ! version_type=linux ! need_lib_prefix=no ! need_version=no ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ! soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; openbsd*) version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" need_lib_prefix=no ! # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. ! case $host_os in ! openbsd3.3 | openbsd3.3.*) need_version=yes ;; ! *) need_version=no ;; ! esac ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' ! finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' ! shlibpath_var=LD_LIBRARY_PATH if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then ! case $host_os in ! openbsd2.[89] | openbsd2.[89].*) ! shlibpath_overrides_runpath=no ! ;; ! *) ! shlibpath_overrides_runpath=yes ! ;; ! esac else shlibpath_overrides_runpath=yes fi ;; os2*) libname_spec='$name' + shrext_cmds=".dll" need_lib_prefix=no ! library_names_spec='$libname${shared_ext} $libname.a' dynamic_linker='OS/2 ld.exe' shlibpath_var=LIBPATH ;; osf3* | osf4* | osf5*) version_type=osf + need_lib_prefix=no need_version=no ! soname_spec='${libname}${release}${shared_ext}$major' ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" ;; solaris*) version_type=linux need_lib_prefix=no need_version=no ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ! soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes *************** *** 6746,6752 **** sunos4*) version_type=sunos ! library_names_spec='${libname}${release}.so$versuffix ${libname}.so$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes --- 7315,7321 ---- sunos4*) version_type=sunos ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes *************** *** 6756,6765 **** need_version=yes ;; ! sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) version_type=linux ! library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ! soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) --- 7325,7334 ---- need_version=yes ;; ! sysv4 | sysv4.3*) version_type=linux ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ! soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) *************** *** 6780,6808 **** esac ;; ! uts4*) ! version_type=linux ! library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ! soname_spec='${libname}${release}.so$major' ! shlibpath_var=LD_LIBRARY_PATH ;; ! dgux*) ! version_type=linux need_lib_prefix=no need_version=no ! library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so' ! soname_spec='${libname}${release}.so$major' shlibpath_var=LD_LIBRARY_PATH ;; ! sysv4*MP*) ! if test -d /usr/nec ;then ! version_type=linux ! library_names_spec='$libname.so.$versuffix $libname.so.$major $libname.so' ! soname_spec='$libname.so.$major' ! shlibpath_var=LD_LIBRARY_PATH ! fi ;; *) --- 7349,7391 ---- esac ;; ! sysv4*MP*) ! if test -d /usr/nec ;then ! version_type=linux ! library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' ! soname_spec='$libname${shared_ext}.$major' ! shlibpath_var=LD_LIBRARY_PATH ! fi ;; ! sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) ! version_type=freebsd-elf need_lib_prefix=no need_version=no ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' ! soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + shlibpath_overrides_runpath=no + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + shlibpath_overrides_runpath=yes + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' ;; ! uts4*) ! version_type=linux ! library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' ! soname_spec='${libname}${release}${shared_ext}$major' ! shlibpath_var=LD_LIBRARY_PATH ;; *) *************** *** 6813,6854 **** echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no ! # Report the final consequences. ! echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 ! echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 ! echo "$as_me:$LINENO: result: $can_build_shared" >&5 ! echo "${ECHO_T}$can_build_shared" >&6 ! ! echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 ! echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 ! test "$can_build_shared" = "no" && enable_shared=no ! # On AIX, shared libraries and static libraries use the same namespace, and ! # are all built from PIC. ! case "$host_os" in ! aix3*) ! test "$enable_shared" = yes && enable_static=no ! if test -n "$RANLIB"; then ! archive_cmds="$archive_cmds~\$RANLIB \$lib" ! postinstall_cmds='$RANLIB $lib' ! fi ! ;; ! aix4*) ! if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then ! test "$enable_shared" = yes && enable_static=no fi ! ;; ! esac ! echo "$as_me:$LINENO: result: $enable_shared" >&5 ! echo "${ECHO_T}$enable_shared" >&6 ! ! echo "$as_me:$LINENO: checking whether to build static libraries" >&5 ! echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 ! # Make sure either enable_shared or enable_static is yes. ! test "$enable_shared" = yes || enable_static=yes ! echo "$as_me:$LINENO: result: $enable_static" >&5 ! echo "${ECHO_T}$enable_static" >&6 if test "$hardcode_action" = relink; then # Fast installation is not supported --- 7396,7433 ---- echo "${ECHO_T}$dynamic_linker" >&6 test "$dynamic_linker" = no && can_build_shared=no ! 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" ! fi ! echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5 ! echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6 ! hardcode_action= ! if test -n "$hardcode_libdir_flag_spec" || \ ! test -n "$runpath_var" || \ ! test "X$hardcode_automatic" = "Xyes" ; then ! # We can hardcode non-existant directories. ! if test "$hardcode_direct" != no && ! # If the only mechanism to avoid hardcoding is shlibpath_var, we ! # have to relink, otherwise we might link with an installed library ! # when we should be linking with a yet-to-be-installed one ! ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, )" != no && ! test "$hardcode_minus_L" != no; then ! # Linking always hardcodes the temporary library directory. ! hardcode_action=relink ! else ! # We can link without hardcoding, and we can hardcode nonexisting dirs. ! hardcode_action=immediate fi ! else ! # We cannot hardcode anything, or else we can only hardcode existing ! # directories. ! hardcode_action=unsupported ! fi ! echo "$as_me:$LINENO: result: $hardcode_action" >&5 ! echo "${ECHO_T}$hardcode_action" >&6 if test "$hardcode_action" = relink; then # Fast installation is not supported *************** *** 6859,6867 **** enable_fast_install=needless fi ! 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" fi if test "x$enable_dlopen" != xyes; then --- 7438,7470 ---- enable_fast_install=needless fi ! striplib= ! old_striplib= ! echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5 ! echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6 ! if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then ! test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" ! test -z "$striplib" && striplib="$STRIP --strip-unneeded" ! echo "$as_me:$LINENO: result: yes" >&5 ! echo "${ECHO_T}yes" >&6 ! else ! # FIXME - insert some real tests, host_os isn't really good enough ! case $host_os in ! darwin*) ! if test -n "$STRIP" ; then ! striplib="$STRIP -x" ! echo "$as_me:$LINENO: result: yes" >&5 ! echo "${ECHO_T}yes" >&6 ! else ! echo "$as_me:$LINENO: result: no" >&5 ! echo "${ECHO_T}no" >&6 ! fi ! ;; ! *) ! echo "$as_me:$LINENO: result: no" >&5 ! echo "${ECHO_T}no" >&6 ! ;; ! esac fi if test "x$enable_dlopen" != xyes; then *************** *** 6879,6889 **** lt_cv_dlopen_self=yes ;; ! cygwin* | mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; *) echo "$as_me:$LINENO: checking for shl_load" >&5 echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 --- 7482,7575 ---- lt_cv_dlopen_self=yes ;; ! mingw* | pw32*) lt_cv_dlopen="LoadLibrary" lt_cv_dlopen_libs= ;; + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5 + echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6 + if test "${ac_cv_lib_dl_dlopen+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 + else + ac_check_lib_save_LIBS=$LIBS + LIBS="-ldl $LIBS" + cat >conftest.$ac_ext <<_ACEOF + /* confdefs.h. */ + _ACEOF + cat confdefs.h >>conftest.$ac_ext + cat >>conftest.$ac_ext <<_ACEOF + /* end confdefs.h. */ + + /* Override any gcc2 internal prototype to avoid an error. */ + #ifdef __cplusplus + extern "C" + #endif + /* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ + char dlopen (); + int + main () + { + dlopen (); + ; + return 0; + } + _ACEOF + rm -f conftest.$ac_objext conftest$ac_exeext + if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&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); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_lib_dl_dlopen=yes + else + echo "$as_me: failed program was:" >&5 + sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_lib_dl_dlopen=no + fi + rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS=$ac_check_lib_save_LIBS + fi + echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5 + echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6 + if test $ac_cv_lib_dl_dlopen = yes; then + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" + else + + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + + fi + + ;; + *) echo "$as_me:$LINENO: checking for shl_load" >&5 echo $ECHO_N "checking for shl_load... $ECHO_C" >&6 *************** *** 7367,7376 **** case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" ! test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" ! eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" --- 8053,8062 ---- case $lt_cv_dlopen in dlopen) save_CPPFLAGS="$CPPFLAGS" ! test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS="$LDFLAGS" ! wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS="$LIBS" LIBS="$lt_cv_dlopen_libs $LIBS" *************** *** 7383,7392 **** if test "$cross_compiling" = yes; then : lt_cv_dlopen_self=cross else ! lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < conftest.$ac_ext <&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then ! (./conftest; exit; ) 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; ! x$lt_unknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed --- 8140,8151 ---- ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then ! (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; ! x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed *************** *** 7472,7478 **** echo "${ECHO_T}$lt_cv_dlopen_self" >&6 if test "x$lt_cv_dlopen_self" = xyes; then ! LDFLAGS="$LDFLAGS $link_static_flag" echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self_static+set}" = set; then --- 8160,8166 ---- echo "${ECHO_T}$lt_cv_dlopen_self" >&6 if test "x$lt_cv_dlopen_self" = xyes; then ! wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5 echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6 if test "${lt_cv_dlopen_self_static+set}" = set; then *************** *** 7481,7490 **** if test "$cross_compiling" = yes; then : lt_cv_dlopen_self_static=cross else ! lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < conftest.$ac_ext <&5 - (eval $ac_link) 2>&5 - ac_status=$? - echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then - (./conftest; exit; ) 2>/dev/null - lt_status=$? - case x$lt_status in - x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; - x$lt_unknown|x*) lt_cv_dlopen_self_static=no ;; - esac - else : - # compilation failed - lt_cv_dlopen_self_static=no - fi - fi - rm -fr conftest* ! fi ! echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 ! echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6 ! fi ! CPPFLAGS="$save_CPPFLAGS" ! LDFLAGS="$save_LDFLAGS" ! LIBS="$save_LIBS" ! ;; ! esac ! case $lt_cv_dlopen_self in ! yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; ! *) enable_dlopen_self=unknown ;; ! esac ! case $lt_cv_dlopen_self_static in ! yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; ! *) enable_dlopen_self_static=unknown ;; ! esac ! fi ! if test "$enable_shared" = yes && test "$GCC" = yes; then ! case $archive_cmds in ! *'~'*) ! # FIXME: we may have to deal with multi-command sequences. ! ;; ! '$CC '*) ! # Test whether the compiler implicitly links with -lc since on some ! # systems, -lgcc has to come before -lc. If gcc already passes -lc ! # to ld, don't add -lc before -lgcc. ! 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 ! if test "${lt_cv_archive_cmds_need_lc+set}" = set; then ! echo $ECHO_N "(cached) $ECHO_C" >&6 ! else ! $rm conftest* ! echo 'static int dummy;' > conftest.$ac_ext ! if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ! (eval $ac_compile) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); }; then ! soname=conftest ! lib=conftest ! libobjs=conftest.$ac_objext ! deplibs= ! wl=$lt_cv_prog_cc_wl ! compiler_flags=-v ! linker_flags=-v ! verstring= ! output_objdir=. ! libname=conftest ! save_allow_undefined_flag=$allow_undefined_flag ! allow_undefined_flag= ! if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5 ! (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); } ! then ! lt_cv_archive_cmds_need_lc=no ! else ! lt_cv_archive_cmds_need_lc=yes ! fi ! allow_undefined_flag=$save_allow_undefined_flag ! else ! cat conftest.err 1>&5 ! fi ! fi ! echo "$as_me:$LINENO: result: $lt_cv_archive_cmds_need_lc" >&5 ! echo "${ECHO_T}$lt_cv_archive_cmds_need_lc" >&6 ! ;; esac ! fi ! need_lc=${lt_cv_archive_cmds_need_lc-yes} ! # The second clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then ! : ! else ! # If there is no Makefile yet, we rely on a make rule to execute ! # `config.status --recheck' to rerun these tests and create the ! # libtool script then. ! test -f Makefile && make "$ltmain" ! fi ! ! if test -f "$ltmain"; then ! trap "$rm \"${ofile}T\"; exit 1" 1 2 15 ! $rm -f "${ofile}T" ! ! echo creating $ofile ! # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. ! for var in echo old_CC old_CFLAGS SED \ ! AR AR_FLAGS CC LD LN_S NM SHELL \ ! reload_flag reload_cmds wl \ ! pic_flag link_static_flag no_builtin_flag export_dynamic_flag_spec \ ! thread_safe_flag_spec whole_archive_flag_spec libname_spec \ ! library_names_spec soname_spec \ ! RANLIB old_archive_cmds old_archive_from_new_cmds old_postinstall_cmds \ ! old_postuninstall_cmds archive_cmds archive_expsym_cmds postinstall_cmds \ ! postuninstall_cmds extract_expsyms_cmds old_archive_from_expsyms_cmds \ ! old_striplib striplib file_magic_cmd export_symbols_cmds \ ! deplibs_check_method allow_undefined_flag no_undefined_flag \ ! finish_cmds finish_eval global_symbol_pipe global_symbol_to_cdecl \ ! global_symbol_to_c_name_address \ ! hardcode_libdir_flag_spec hardcode_libdir_separator \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ ! compiler_c_o compiler_o_lo need_locks exclude_expsyms include_expsyms; do case $var in ! reload_cmds | old_archive_cmds | old_archive_from_new_cmds | \ ! old_postinstall_cmds | old_postuninstall_cmds | \ ! export_symbols_cmds | archive_cmds | archive_expsym_cmds | \ ! extract_expsyms_cmds | old_archive_from_expsyms_cmds | \ postinstall_cmds | postuninstall_cmds | \ ! finish_cmds | sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; --- 8213,9021 ---- # endif #endif ! #ifdef __cplusplus ! extern "C" void exit (int); ! #endif ! ! void fnord() { int i=42;} ! int main () ! { ! void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); ! int status = $lt_dlunknown; ! ! if (self) ! { ! if (dlsym (self,"fnord")) status = $lt_dlno_uscore; ! else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; ! /* dlclose (self); */ ! } ! else ! puts (dlerror ()); ! ! exit (status); ! } ! EOF ! if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ! (eval $ac_link) 2>&5 ! ac_status=$? ! echo "$as_me:$LINENO: \$? = $ac_status" >&5 ! (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then ! (./conftest; exit; ) >&5 2>/dev/null ! lt_status=$? ! case x$lt_status in ! x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; ! x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; ! x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; ! esac ! else : ! # compilation failed ! lt_cv_dlopen_self_static=no ! fi ! fi ! rm -fr conftest* ! ! ! fi ! echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5 ! echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6 ! fi ! ! CPPFLAGS="$save_CPPFLAGS" ! LDFLAGS="$save_LDFLAGS" ! LIBS="$save_LIBS" ! ;; ! esac ! ! case $lt_cv_dlopen_self in ! yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; ! *) enable_dlopen_self=unknown ;; ! esac ! ! case $lt_cv_dlopen_self_static in ! yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; ! *) enable_dlopen_self_static=unknown ;; ! esac ! fi ! ! ! # Report which library types will actually be built ! echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5 ! echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6 ! echo "$as_me:$LINENO: result: $can_build_shared" >&5 ! echo "${ECHO_T}$can_build_shared" >&6 ! ! echo "$as_me:$LINENO: checking whether to build shared libraries" >&5 ! echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6 ! test "$can_build_shared" = "no" && enable_shared=no ! ! # On AIX, shared libraries and static libraries use the same namespace, and ! # are all built from PIC. ! case $host_os in ! aix3*) ! test "$enable_shared" = yes && enable_static=no ! if test -n "$RANLIB"; then ! archive_cmds="$archive_cmds~\$RANLIB \$lib" ! postinstall_cmds='$RANLIB $lib' ! fi ! ;; ! ! aix4* | aix5*) ! if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then ! test "$enable_shared" = yes && enable_static=no ! fi ! ;; ! esac ! echo "$as_me:$LINENO: result: $enable_shared" >&5 ! echo "${ECHO_T}$enable_shared" >&6 ! ! echo "$as_me:$LINENO: checking whether to build static libraries" >&5 ! echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6 ! # Make sure either enable_shared or enable_static is yes. ! test "$enable_shared" = yes || enable_static=yes ! echo "$as_me:$LINENO: result: $enable_static" >&5 ! echo "${ECHO_T}$enable_static" >&6 ! ! # The else clause should only fire when bootstrapping the ! # libtool distribution, otherwise you forgot to ship ltmain.sh ! # with your package, and you will get complaints that there are ! # no rules to generate ltmain.sh. ! if test -f "$ltmain"; then ! # See if we are running on zsh, and set the options which allow our commands through ! # without removal of \ escapes. ! if test -n "${ZSH_VERSION+set}" ; then ! setopt NO_GLOB_SUBST ! fi ! # Now quote all the things that may contain metacharacters while being ! # careful not to overquote the AC_SUBSTed values. We take copies of the ! # variables and quote the copies for generation of the libtool script. ! for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ ! SED SHELL STRIP \ ! libname_spec library_names_spec soname_spec extract_expsyms_cmds \ ! old_striplib striplib file_magic_cmd finish_cmds finish_eval \ ! deplibs_check_method reload_flag reload_cmds need_locks \ ! lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ ! lt_cv_sys_global_symbol_to_c_name_address \ ! sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ ! old_postinstall_cmds old_postuninstall_cmds \ ! compiler \ ! CC \ ! LD \ ! lt_prog_compiler_wl \ ! lt_prog_compiler_pic \ ! lt_prog_compiler_static \ ! lt_prog_compiler_no_builtin_flag \ ! export_dynamic_flag_spec \ ! thread_safe_flag_spec \ ! whole_archive_flag_spec \ ! enable_shared_with_static_runtimes \ ! old_archive_cmds \ ! old_archive_from_new_cmds \ ! predep_objects \ ! postdep_objects \ ! predeps \ ! postdeps \ ! compiler_lib_search_path \ ! archive_cmds \ ! archive_expsym_cmds \ ! postinstall_cmds \ ! postuninstall_cmds \ ! old_archive_from_expsyms_cmds \ ! allow_undefined_flag \ ! no_undefined_flag \ ! export_symbols_cmds \ ! hardcode_libdir_flag_spec \ ! hardcode_libdir_flag_spec_ld \ ! hardcode_libdir_separator \ ! hardcode_automatic \ ! module_cmds \ ! module_expsym_cmds \ ! lt_cv_prog_compiler_c_o \ ! exclude_expsyms \ ! include_expsyms; do ! ! case $var in ! old_archive_cmds | \ ! old_archive_from_new_cmds | \ ! archive_cmds | \ ! archive_expsym_cmds | \ ! module_cmds | \ ! module_expsym_cmds | \ ! old_archive_from_expsyms_cmds | \ ! export_symbols_cmds | \ ! extract_expsyms_cmds | reload_cmds | finish_cmds | \ ! postinstall_cmds | postuninstall_cmds | \ ! old_postinstall_cmds | old_postuninstall_cmds | \ ! sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) ! # Double-quote double-evaled strings. ! eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ! ;; ! *) ! eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\"" ! ;; ! esac ! done ! ! case $lt_echo in ! *'\$0 --fallback-echo"') ! lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ! ;; ! esac ! ! cfgfile="${ofile}T" ! trap "$rm \"$cfgfile\"; exit 1" 1 2 15 ! $rm -f "$cfgfile" ! { echo "$as_me:$LINENO: creating $ofile" >&5 ! echo "$as_me: creating $ofile" >&6;} ! ! cat <<__EOF__ >> "$cfgfile" ! #! $SHELL ! ! # `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services. ! # 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 ! # Free Software Foundation, Inc. ! # ! # This file is part of GNU Libtool: ! # Originally by Gordon Matzigkeit , 1996 ! # ! # This program is free software; you can redistribute it and/or modify ! # it under the terms of the GNU General Public License as published by ! # the Free Software Foundation; either version 2 of the License, or ! # (at your option) any later version. ! # ! # This program is distributed in the hope that it will be useful, but ! # WITHOUT ANY WARRANTY; without even the implied warranty of ! # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ! # General Public License for more details. ! # ! # You should have received a copy of the GNU General Public License ! # along with this program; if not, write to the Free Software ! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ! # ! # As a special exception to the GNU General Public License, if you ! # distribute this file as part of a program that contains a ! # configuration script generated by Autoconf, you may include it under ! # the same distribution terms that you use for the rest of that program. ! ! # A sed program that does not truncate output. ! SED=$lt_SED ! ! # Sed that helps us avoid accidentally triggering echo(1) options like -n. ! Xsed="$SED -e 1s/^X//" ! ! # The HP-UX ksh and POSIX shell print the target directory to stdout ! # if CDPATH is set. ! (unset CDPATH) >/dev/null 2>&1 && unset CDPATH ! ! # The names of the tagged configurations supported by this script. ! available_tags= ! ! # ### BEGIN LIBTOOL CONFIG ! ! # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: ! ! # Shell to use when invoking shell scripts. ! SHELL=$lt_SHELL ! ! # Whether or not to build shared libraries. ! build_libtool_libs=$enable_shared ! ! # Whether or not to build static libraries. ! build_old_libs=$enable_static ! ! # Whether or not to add -lc for building shared libraries. ! build_libtool_need_lc=$archive_cmds_need_lc ! ! # Whether or not to disallow shared libs when runtime libs are static ! allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes ! ! # Whether or not to optimize for fast installation. ! fast_install=$enable_fast_install ! ! # The host system. ! host_alias=$host_alias ! host=$host ! host_os=$host_os ! ! # The build system. ! build_alias=$build_alias ! build=$build ! build_os=$build_os ! ! # An echo program that does not interpret backslashes. ! echo=$lt_echo ! ! # The archiver. ! AR=$lt_AR ! AR_FLAGS=$lt_AR_FLAGS ! ! # A C compiler. ! LTCC=$lt_LTCC ! ! # LTCC compiler flags. ! LTCFLAGS=$lt_LTCFLAGS ! ! # A language-specific compiler. ! CC=$lt_compiler ! ! # Is the compiler the GNU C compiler? ! with_gcc=$GCC ! ! # An ERE matcher. ! EGREP=$lt_EGREP ! ! # The linker used to build libraries. ! LD=$lt_LD ! ! # Whether we need hard or soft links. ! LN_S=$lt_LN_S ! ! # A BSD-compatible nm program. ! NM=$lt_NM ! ! # A symbol stripping program ! STRIP=$lt_STRIP ! ! # Used to examine libraries when file_magic_cmd begins "file" ! MAGIC_CMD=$MAGIC_CMD ! ! # Used on cygwin: DLL creation program. ! DLLTOOL="$DLLTOOL" ! ! # Used on cygwin: object dumper. ! OBJDUMP="$OBJDUMP" ! ! # Used on cygwin: assembler. ! AS="$AS" ! ! # The name of the directory that contains temporary libtool files. ! objdir=$objdir ! ! # How to create reloadable object files. ! reload_flag=$lt_reload_flag ! reload_cmds=$lt_reload_cmds ! ! # How to pass a linker flag through the compiler. ! wl=$lt_lt_prog_compiler_wl ! ! # Object file suffix (normally "o"). ! objext="$ac_objext" ! ! # Old archive suffix (normally "a"). ! libext="$libext" ! ! # Shared library suffix (normally ".so"). ! shrext_cmds='$shrext_cmds' ! ! # Executable file suffix (normally ""). ! exeext="$exeext" ! ! # Additional compiler flags for building library objects. ! pic_flag=$lt_lt_prog_compiler_pic ! pic_mode=$pic_mode ! ! # What is the maximum length of a command? ! max_cmd_len=$lt_cv_sys_max_cmd_len ! ! # Does compiler simultaneously support -c and -o options? ! compiler_c_o=$lt_lt_cv_prog_compiler_c_o ! ! # Must we lock files when doing compilation? ! need_locks=$lt_need_locks ! ! # Do we need the lib prefix for modules? ! need_lib_prefix=$need_lib_prefix ! ! # Do we need a version for libraries? ! need_version=$need_version ! ! # Whether dlopen is supported. ! dlopen_support=$enable_dlopen ! ! # Whether dlopen of programs is supported. ! dlopen_self=$enable_dlopen_self ! ! # Whether dlopen of statically linked programs is supported. ! dlopen_self_static=$enable_dlopen_self_static ! ! # Compiler flag to prevent dynamic linking. ! link_static_flag=$lt_lt_prog_compiler_static ! ! # Compiler flag to turn off builtin functions. ! no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag ! ! # Compiler flag to allow reflexive dlopens. ! export_dynamic_flag_spec=$lt_export_dynamic_flag_spec ! ! # Compiler flag to generate shared objects directly from archives. ! whole_archive_flag_spec=$lt_whole_archive_flag_spec ! ! # Compiler flag to generate thread-safe objects. ! thread_safe_flag_spec=$lt_thread_safe_flag_spec ! ! # Library versioning type. ! version_type=$version_type ! ! # Format of library name prefix. ! libname_spec=$lt_libname_spec ! ! # List of archive names. First name is the real one, the rest are links. ! # The last name is the one that the linker finds with -lNAME. ! library_names_spec=$lt_library_names_spec ! ! # The coded name of the library, if different from the real name. ! soname_spec=$lt_soname_spec ! ! # Commands used to build and install an old-style archive. ! RANLIB=$lt_RANLIB ! old_archive_cmds=$lt_old_archive_cmds ! old_postinstall_cmds=$lt_old_postinstall_cmds ! old_postuninstall_cmds=$lt_old_postuninstall_cmds ! ! # Create an old-style archive from a shared archive. ! old_archive_from_new_cmds=$lt_old_archive_from_new_cmds ! ! # Create a temporary old-style archive to link instead of a shared archive. ! old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds ! ! # Commands used to build and install a shared archive. ! archive_cmds=$lt_archive_cmds ! archive_expsym_cmds=$lt_archive_expsym_cmds ! postinstall_cmds=$lt_postinstall_cmds ! postuninstall_cmds=$lt_postuninstall_cmds ! ! # Commands used to build a loadable module (assumed same as above if empty) ! module_cmds=$lt_module_cmds ! module_expsym_cmds=$lt_module_expsym_cmds ! ! # Commands to strip libraries. ! old_striplib=$lt_old_striplib ! striplib=$lt_striplib ! ! # Dependencies to place before the objects being linked to create a ! # shared library. ! predep_objects=$lt_predep_objects ! ! # Dependencies to place after the objects being linked to create a ! # shared library. ! postdep_objects=$lt_postdep_objects ! ! # Dependencies to place before the objects being linked to create a ! # shared library. ! predeps=$lt_predeps ! ! # Dependencies to place after the objects being linked to create a ! # shared library. ! postdeps=$lt_postdeps ! ! # The library search path used internally by the compiler when linking ! # a shared library. ! compiler_lib_search_path=$lt_compiler_lib_search_path ! ! # Method to check whether dependent libraries are shared objects. ! deplibs_check_method=$lt_deplibs_check_method ! ! # Command to use when deplibs_check_method == file_magic. ! file_magic_cmd=$lt_file_magic_cmd ! ! # Flag that allows shared libraries with undefined symbols to be built. ! allow_undefined_flag=$lt_allow_undefined_flag ! ! # Flag that forces no undefined symbols. ! no_undefined_flag=$lt_no_undefined_flag ! ! # Commands used to finish a libtool library installation in a directory. ! finish_cmds=$lt_finish_cmds ! ! # Same as above, but a single script fragment to be evaled but not shown. ! finish_eval=$lt_finish_eval ! ! # Take the output of nm and produce a listing of raw symbols and C names. ! global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe ! ! # Transform the output of nm in a proper C declaration ! global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl ! ! # Transform the output of nm in a C name address pair ! global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address ! ! # This is the shared library runtime path variable. ! runpath_var=$runpath_var ! ! # This is the shared library path variable. ! shlibpath_var=$shlibpath_var ! ! # Is shlibpath searched before the hard-coded library search path? ! shlibpath_overrides_runpath=$shlibpath_overrides_runpath ! ! # How to hardcode a shared library path into an executable. ! hardcode_action=$hardcode_action ! ! # Whether we should hardcode library paths into libraries. ! hardcode_into_libs=$hardcode_into_libs ! ! # Flag to hardcode \$libdir into a binary during linking. ! # This must work even if \$libdir does not exist. ! hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec ! ! # If ld is used when linking, flag to hardcode \$libdir into ! # a binary during linking. This must work even if \$libdir does ! # not exist. ! hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld ! ! # Whether we need a single -rpath flag with a separated argument. ! hardcode_libdir_separator=$lt_hardcode_libdir_separator ! ! # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the ! # resulting binary. ! hardcode_direct=$hardcode_direct ! ! # Set to yes if using the -LDIR flag during linking hardcodes DIR into the ! # resulting binary. ! hardcode_minus_L=$hardcode_minus_L ! ! # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into ! # the resulting binary. ! hardcode_shlibpath_var=$hardcode_shlibpath_var ! ! # Set to yes if building a shared library automatically hardcodes DIR into the library ! # and all subsequent libraries and executables linked against it. ! hardcode_automatic=$hardcode_automatic ! ! # Variables whose values should be saved in libtool wrapper scripts and ! # restored at relink time. ! variables_saved_for_relink="$variables_saved_for_relink" ! ! # Whether libtool must link a program against all its dependency libraries. ! link_all_deplibs=$link_all_deplibs ! ! # Compile-time system search path for libraries ! sys_lib_search_path_spec=$lt_sys_lib_search_path_spec ! ! # Run-time system search path for libraries ! 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" ! ! # Set to yes if exported symbols are required. ! always_export_symbols=$always_export_symbols ! ! # The commands to list exported symbols. ! export_symbols_cmds=$lt_export_symbols_cmds ! ! # The commands to extract the exported symbol list from a shared archive. ! extract_expsyms_cmds=$lt_extract_expsyms_cmds ! ! # Symbols that should not be listed in the preloaded symbols. ! exclude_expsyms=$lt_exclude_expsyms ! ! # Symbols that must always be exported. ! include_expsyms=$lt_include_expsyms ! ! # ### END LIBTOOL CONFIG ! ! __EOF__ ! ! ! case $host_os in ! aix3*) ! cat <<\EOF >> "$cfgfile" ! ! # AIX sometimes has problems with the GCC collect2 program. For some ! # reason, if we set the COLLECT_NAMES environment variable, the problems ! # vanish in a puff of smoke. ! if test "X${COLLECT_NAMES+set}" != Xset; then ! COLLECT_NAMES= ! export COLLECT_NAMES ! fi ! EOF ! ;; ! esac ! ! # We use sed instead of cat because bash on DJGPP gets confused if ! # if finds mixed CR/LF and LF-only lines. Since sed operates in ! # text mode, it properly converts lines to CR/LF. This bash problem ! # is reportedly fixed, but why not run on old versions too? ! sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1) ! ! mv -f "$cfgfile" "$ofile" || \ ! (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") ! chmod +x "$ofile" ! ! else ! # If there is no Makefile yet, we rely on a make rule to execute ! # `config.status --recheck' to rerun these tests and create the ! # libtool script then. ! ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` ! if test -f "$ltmain_in"; then ! test -f Makefile && make "$ltmain" ! fi ! fi ! ! ! ac_ext=c ! ac_cpp='$CPP $CPPFLAGS' ! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ! ac_compiler_gnu=$ac_cv_c_compiler_gnu ! ! CC="$lt_save_CC" ! ! ! # Check whether --with-tags or --without-tags was given. ! if test "${with_tags+set}" = set; then ! withval="$with_tags" ! tagnames="$withval" ! fi; ! ! if test -f "$ltmain" && test -n "$tagnames"; then ! if test ! -f "${ofile}"; then ! { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5 ! echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;} ! fi ! ! if test -z "$LTCC"; then ! eval "`$SHELL ${ofile} --config | grep '^LTCC='`" ! if test -z "$LTCC"; then ! { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5 ! echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;} ! else ! { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5 ! echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;} ! fi ! fi ! if test -z "$LTCFLAGS"; then ! eval "`$SHELL ${ofile} --config | grep '^LTCFLAGS='`" ! fi ! ! # Extract list of available tagged configurations in $ofile. ! # Note that this assumes the entire list is on one line. ! available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'` ! ! lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," ! for tagname in $tagnames; do ! IFS="$lt_save_ifs" ! # Check whether tagname contains only valid characters ! case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in ! "") ;; ! *) { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5 ! echo "$as_me: error: invalid tag name: $tagname" >&2;} ! { (exit 1); exit 1; }; } ! ;; ! esac ! ! if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null ! then ! { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5 ! echo "$as_me: error: tag name \"$tagname\" already exists" >&2;} ! { (exit 1); exit 1; }; } ! fi ! ! # Update the list of available tags. ! if test -n "$tagname"; then ! echo appending configuration tag \"$tagname\" to $ofile ! ! case $tagname in ! CXX) ! if test -n "$CXX" && ( test "X$CXX" != "Xno" && ! ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || ! (test "X$CXX" != "Xg++"))) ; then ! : ! else ! tagname="" ! fi ! ;; ! ! F77) ! if test -n "$F77" && test "X$F77" != "Xno"; then ! : ! else ! tagname="" ! fi ! ;; ! GCJ) ! if test -n "$GCJ" && test "X$GCJ" != "Xno"; then ! : ! else ! tagname="" ! fi ! ;; ! RC) ! # Source file extension for RC test sources. ! ac_ext=rc ! # Object file extension for compiled RC test sources. ! objext=o ! objext_RC=$objext ! # Code to be used in simple compile tests ! lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n' ! # Code to be used in simple link tests ! lt_simple_link_test_code="$lt_simple_compile_test_code" + # ltmain only uses $CC for tagged configurations so make sure $CC is set. ! # If no C compiler was specified, use CC. ! LTCC=${LTCC-"$CC"} ! # If no C compiler flags were specified, use CFLAGS. ! LTCFLAGS=${LTCFLAGS-"$CFLAGS"} ! # Allow CC to be a program name with arguments. ! compiler=$CC ! ! ! # save warnings/boilerplate of simple test code ! ac_outfile=conftest.$ac_objext ! printf "$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 ! eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err ! _lt_linker_boilerplate=`cat conftest.err` ! $rm conftest* ! ! ! # Allow CC to be a program name with arguments. ! lt_save_CC="$CC" ! CC=${RC-"windres"} ! compiler=$CC ! compiler_RC=$CC ! for cc_temp in $compiler""; do ! case $cc_temp in ! compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; ! distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; ! \-*) ;; ! *) break;; esac ! done ! cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` ! lt_cv_prog_compiler_c_o_RC=yes ! ! # The else clause should only fire when bootstrapping the # libtool distribution, otherwise you forgot to ship ltmain.sh # with your package, and you will get complaints that there are # no rules to generate ltmain.sh. if test -f "$ltmain"; then ! # See if we are running on zsh, and set the options which allow our commands through ! # without removal of \ escapes. ! if test -n "${ZSH_VERSION+set}" ; then ! setopt NO_GLOB_SUBST ! fi # Now quote all the things that may contain metacharacters while being # careful not to overquote the AC_SUBSTed values. We take copies of the # variables and quote the copies for generation of the libtool script. ! for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC LTCFLAGS NM \ ! SED SHELL STRIP \ ! libname_spec library_names_spec soname_spec extract_expsyms_cmds \ ! old_striplib striplib file_magic_cmd finish_cmds finish_eval \ ! deplibs_check_method reload_flag reload_cmds need_locks \ ! lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \ ! lt_cv_sys_global_symbol_to_c_name_address \ sys_lib_search_path_spec sys_lib_dlsearch_path_spec \ ! old_postinstall_cmds old_postuninstall_cmds \ ! compiler_RC \ ! CC_RC \ ! LD_RC \ ! lt_prog_compiler_wl_RC \ ! lt_prog_compiler_pic_RC \ ! lt_prog_compiler_static_RC \ ! lt_prog_compiler_no_builtin_flag_RC \ ! export_dynamic_flag_spec_RC \ ! thread_safe_flag_spec_RC \ ! whole_archive_flag_spec_RC \ ! enable_shared_with_static_runtimes_RC \ ! old_archive_cmds_RC \ ! old_archive_from_new_cmds_RC \ ! predep_objects_RC \ ! postdep_objects_RC \ ! predeps_RC \ ! postdeps_RC \ ! compiler_lib_search_path_RC \ ! archive_cmds_RC \ ! archive_expsym_cmds_RC \ ! postinstall_cmds_RC \ ! postuninstall_cmds_RC \ ! old_archive_from_expsyms_cmds_RC \ ! allow_undefined_flag_RC \ ! no_undefined_flag_RC \ ! export_symbols_cmds_RC \ ! hardcode_libdir_flag_spec_RC \ ! hardcode_libdir_flag_spec_ld_RC \ ! hardcode_libdir_separator_RC \ ! hardcode_automatic_RC \ ! module_cmds_RC \ ! module_expsym_cmds_RC \ ! lt_cv_prog_compiler_c_o_RC \ ! exclude_expsyms_RC \ ! include_expsyms_RC; do case $var in ! old_archive_cmds_RC | \ ! old_archive_from_new_cmds_RC | \ ! archive_cmds_RC | \ ! archive_expsym_cmds_RC | \ ! module_cmds_RC | \ ! module_expsym_cmds_RC | \ ! old_archive_from_expsyms_cmds_RC | \ ! export_symbols_cmds_RC | \ ! extract_expsyms_cmds | reload_cmds | finish_cmds | \ postinstall_cmds | postuninstall_cmds | \ ! old_postinstall_cmds | old_postuninstall_cmds | \ ! sys_lib_search_path_spec | sys_lib_dlsearch_path_spec) # Double-quote double-evaled strings. eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\"" ;; *************** *** 7700,7745 **** esac done ! cat <<__EOF__ > "${ofile}T" ! #! $SHELL ! ! # `$echo "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. ! # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) ! # NOTE: Changes made to this file will be lost: look at ltmain.sh. ! # ! # Copyright (C) 1996-2000 Free Software Foundation, Inc. ! # Originally by Gordon Matzigkeit , 1996 ! # ! # This program is free software; you can redistribute it and/or modify ! # it under the terms of the GNU General Public License as published by ! # the Free Software Foundation; either version 2 of the License, or ! # (at your option) any later version. ! # ! # This program is distributed in the hope that it will be useful, but ! # WITHOUT ANY WARRANTY; without even the implied warranty of ! # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ! # General Public License for more details. ! # ! # You should have received a copy of the GNU General Public License ! # along with this program; if not, write to the Free Software ! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ! # ! # As a special exception to the GNU General Public License, if you ! # distribute this file as part of a program that contains a ! # configuration script generated by Autoconf, you may include it under ! # the same distribution terms that you use for the rest of that program. ! ! # A sed that does not truncate output. ! SED=$lt_SED ! ! # Sed that helps us avoid accidentally triggering echo(1) options like -n. ! Xsed="${SED} -e s/^X//" ! # The HP-UX ksh and POSIX shell print the target directory to stdout ! # if CDPATH is set. ! if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi ! # ### BEGIN LIBTOOL CONFIG # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: --- 9025,9040 ---- esac done ! case $lt_echo in ! *'\$0 --fallback-echo"') ! lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\$0 --fallback-echo"$/$0 --fallback-echo"/'` ! ;; ! esac ! cfgfile="$ofile" ! cat <<__EOF__ >> "$cfgfile" ! # ### BEGIN LIBTOOL TAG CONFIG: $tagname # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: *************** *** 7753,7759 **** build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. ! build_libtool_need_lc=$need_lc # Whether or not to optimize for fast installation. fast_install=$enable_fast_install --- 9048,9057 ---- build_old_libs=$enable_static # Whether or not to add -lc for building shared libraries. ! build_libtool_need_lc=$archive_cmds_need_lc_RC ! ! # Whether or not to disallow shared libs when runtime libs are static ! allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_RC # Whether or not to optimize for fast installation. fast_install=$enable_fast_install *************** *** 7761,7766 **** --- 9059,9070 ---- # The host system. host_alias=$host_alias host=$host + host_os=$host_os + + # The build system. + build_alias=$build_alias + build=$build + build_os=$build_os # An echo program that does not interpret backslashes. echo=$lt_echo *************** *** 7769,7782 **** AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS ! # The default C compiler. ! CC=$lt_CC # Is the compiler the GNU C compiler? ! with_gcc=$GCC # The linker used to build libraries. ! LD=$lt_LD # Whether we need hard or soft links. LN_S=$lt_LN_S --- 9073,9095 ---- AR=$lt_AR AR_FLAGS=$lt_AR_FLAGS ! # A C compiler. ! LTCC=$lt_LTCC ! ! # LTCC compiler flags. ! LTCFLAGS=$lt_LTCFLAGS ! ! # A language-specific compiler. ! CC=$lt_compiler_RC # Is the compiler the GNU C compiler? ! with_gcc=$GCC_RC ! ! # An ERE matcher. ! EGREP=$lt_EGREP # The linker used to build libraries. ! LD=$lt_LD_RC # Whether we need hard or soft links. LN_S=$lt_LN_S *************** *** 7785,7791 **** NM=$lt_NM # A symbol stripping program ! STRIP=$STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD --- 9098,9104 ---- NM=$lt_NM # A symbol stripping program ! STRIP=$lt_STRIP # Used to examine libraries when file_magic_cmd begins "file" MAGIC_CMD=$MAGIC_CMD *************** *** 7807,7813 **** reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. ! wl=$lt_wl # Object file suffix (normally "o"). objext="$ac_objext" --- 9120,9126 ---- reload_cmds=$lt_reload_cmds # How to pass a linker flag through the compiler. ! wl=$lt_lt_prog_compiler_wl_RC # Object file suffix (normally "o"). objext="$ac_objext" *************** *** 7815,7834 **** # Old archive suffix (normally "a"). libext="$libext" # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. ! pic_flag=$lt_pic_flag pic_mode=$pic_mode ! # Does compiler simultaneously support -c and -o options? ! compiler_c_o=$lt_compiler_c_o ! # Can we write directly to a .lo ? ! compiler_o_lo=$lt_compiler_o_lo ! # Must we lock files when doing compilation ? need_locks=$lt_need_locks # Do we need the lib prefix for modules? --- 9128,9150 ---- # Old archive suffix (normally "a"). libext="$libext" + # Shared library suffix (normally ".so"). + shrext_cmds='$shrext_cmds' + # Executable file suffix (normally ""). exeext="$exeext" # Additional compiler flags for building library objects. ! pic_flag=$lt_lt_prog_compiler_pic_RC pic_mode=$pic_mode ! # What is the maximum length of a command? ! max_cmd_len=$lt_cv_sys_max_cmd_len ! # Does compiler simultaneously support -c and -o options? ! compiler_c_o=$lt_lt_cv_prog_compiler_c_o_RC ! # Must we lock files when doing compilation? need_locks=$lt_need_locks # Do we need the lib prefix for modules? *************** *** 7847,7865 **** dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. ! link_static_flag=$lt_link_static_flag # Compiler flag to turn off builtin functions. ! no_builtin_flag=$lt_no_builtin_flag # Compiler flag to allow reflexive dlopens. ! export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. ! whole_archive_flag_spec=$lt_whole_archive_flag_spec # Compiler flag to generate thread-safe objects. ! thread_safe_flag_spec=$lt_thread_safe_flag_spec # Library versioning type. version_type=$version_type --- 9163,9181 ---- dlopen_self_static=$enable_dlopen_self_static # Compiler flag to prevent dynamic linking. ! link_static_flag=$lt_lt_prog_compiler_static_RC # Compiler flag to turn off builtin functions. ! no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_RC # Compiler flag to allow reflexive dlopens. ! export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_RC # Compiler flag to generate shared objects directly from archives. ! whole_archive_flag_spec=$lt_whole_archive_flag_spec_RC # Compiler flag to generate thread-safe objects. ! thread_safe_flag_spec=$lt_thread_safe_flag_spec_RC # Library versioning type. version_type=$version_type *************** *** 7876,7901 **** # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB ! old_archive_cmds=$lt_old_archive_cmds old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. ! old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. ! old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build and install a shared archive. ! archive_cmds=$lt_archive_cmds ! archive_expsym_cmds=$lt_archive_expsym_cmds postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method --- 9192,9241 ---- # Commands used to build and install an old-style archive. RANLIB=$lt_RANLIB ! old_archive_cmds=$lt_old_archive_cmds_RC old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Create an old-style archive from a shared archive. ! old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_RC # Create a temporary old-style archive to link instead of a shared archive. ! old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_RC # Commands used to build and install a shared archive. ! archive_cmds=$lt_archive_cmds_RC ! archive_expsym_cmds=$lt_archive_expsym_cmds_RC postinstall_cmds=$lt_postinstall_cmds postuninstall_cmds=$lt_postuninstall_cmds + # Commands used to build a loadable module (assumed same as above if empty) + module_cmds=$lt_module_cmds_RC + module_expsym_cmds=$lt_module_expsym_cmds_RC + # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib + # Dependencies to place before the objects being linked to create a + # shared library. + predep_objects=$lt_predep_objects_RC + + # Dependencies to place after the objects being linked to create a + # shared library. + postdep_objects=$lt_postdep_objects_RC + + # Dependencies to place before the objects being linked to create a + # shared library. + predeps=$lt_predeps_RC + + # Dependencies to place after the objects being linked to create a + # shared library. + postdeps=$lt_postdeps_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 + # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method *************** *** 7903,7912 **** file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. ! allow_undefined_flag=$lt_allow_undefined_flag # Flag that forces no undefined symbols. ! no_undefined_flag=$lt_no_undefined_flag # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds --- 9243,9252 ---- file_magic_cmd=$lt_file_magic_cmd # Flag that allows shared libraries with undefined symbols to be built. ! allow_undefined_flag=$lt_allow_undefined_flag_RC # Flag that forces no undefined symbols. ! no_undefined_flag=$lt_no_undefined_flag_RC # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds *************** *** 7915,7927 **** finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. ! global_symbol_pipe=$lt_global_symbol_pipe # Transform the output of nm in a proper C declaration ! global_symbol_to_cdecl=$lt_global_symbol_to_cdecl # Transform the output of nm in a C name address pair ! global_symbol_to_c_name_address=$lt_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var --- 9255,9267 ---- finish_eval=$lt_finish_eval # Take the output of nm and produce a listing of raw symbols and C names. ! global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration ! global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm in a C name address pair ! global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # This is the shared library runtime path variable. runpath_var=$runpath_var *************** *** 7933,7968 **** shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. ! hardcode_action=$hardcode_action # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. ! hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # Whether we need a single -rpath flag with a separated argument. ! hardcode_libdir_separator=$lt_hardcode_libdir_separator ! # Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the # resulting binary. ! hardcode_direct=$hardcode_direct # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. ! hardcode_minus_L=$hardcode_minus_L # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. ! hardcode_shlibpath_var=$hardcode_shlibpath_var # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. ! link_all_deplibs=$link_all_deplibs # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec --- 9273,9317 ---- shlibpath_overrides_runpath=$shlibpath_overrides_runpath # How to hardcode a shared library path into an executable. ! hardcode_action=$hardcode_action_RC # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist. ! hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_RC ! ! # If ld is used when linking, flag to hardcode \$libdir into ! # a binary during linking. This must work even if \$libdir does ! # not exist. ! hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_RC # Whether we need a single -rpath flag with a separated argument. ! hardcode_libdir_separator=$lt_hardcode_libdir_separator_RC ! # Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the # resulting binary. ! hardcode_direct=$hardcode_direct_RC # Set to yes if using the -LDIR flag during linking hardcodes DIR into the # resulting binary. ! hardcode_minus_L=$hardcode_minus_L_RC # Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into # the resulting binary. ! hardcode_shlibpath_var=$hardcode_shlibpath_var_RC ! ! # Set to yes if building a shared library automatically hardcodes DIR into the library ! # and all subsequent libraries and executables linked against it. ! hardcode_automatic=$hardcode_automatic_RC # Variables whose values should be saved in libtool wrapper scripts and # restored at relink time. variables_saved_for_relink="$variables_saved_for_relink" # Whether libtool must link a program against all its dependency libraries. ! link_all_deplibs=$link_all_deplibs_RC # Compile-time system search path for libraries sys_lib_search_path_spec=$lt_sys_lib_search_path_spec *************** *** 7971,8204 **** 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" # Set to yes if exported symbols are required. ! always_export_symbols=$always_export_symbols # The commands to list exported symbols. ! export_symbols_cmds=$lt_export_symbols_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. ! exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. ! include_expsyms=$lt_include_expsyms ! # ### END LIBTOOL CONFIG __EOF__ - case $host_os in - aix3*) - cat <<\EOF >> "${ofile}T" ! # AIX sometimes has problems with the GCC collect2 program. For some ! # reason, if we set the COLLECT_NAMES environment variable, the problems ! # vanish in a puff of smoke. ! if test "X${COLLECT_NAMES+set}" != Xset; then ! COLLECT_NAMES= ! export COLLECT_NAMES fi - EOF - ;; - esac - case $host_os in - cygwin* | mingw* | pw32* | os2*) - cat <<'EOF' >> "${ofile}T" - # This is a source program that is used to create dlls on Windows - # Don't remove nor modify the starting and closing comments - # /* ltdll.c starts here */ - # #define WIN32_LEAN_AND_MEAN - # #include - # #undef WIN32_LEAN_AND_MEAN - # #include - # - # #ifndef __CYGWIN__ - # # ifdef __CYGWIN32__ - # # define __CYGWIN__ __CYGWIN32__ - # # endif - # #endif - # - # #ifdef __cplusplus - # extern "C" { - # #endif - # BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved); - # #ifdef __cplusplus - # } - # #endif - # - # #ifdef __CYGWIN__ - # #include - # DECLARE_CYGWIN_DLL( DllMain ); - # #endif - # HINSTANCE __hDllInstance_base; - # - # BOOL APIENTRY - # DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) - # { - # __hDllInstance_base = hInst; - # return TRUE; - # } - # /* ltdll.c ends here */ - # This is a source program that is used to create import libraries - # on Windows for dlls which lack them. Don't remove nor modify the - # starting and closing comments - # /* impgen.c starts here */ - # /* Copyright (C) 1999-2000 Free Software Foundation, Inc. - # - # This file is part of GNU libtool. - # - # This program is free software; you can redistribute it and/or modify - # it under the terms of the GNU General Public License as published by - # the Free Software Foundation; either version 2 of the License, or - # (at your option) any later version. - # - # This program is distributed in the hope that it will be useful, - # but WITHOUT ANY WARRANTY; without even the implied warranty of - # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - # GNU General Public License for more details. - # - # You should have received a copy of the GNU General Public License - # along with this program; if not, write to the Free Software - # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - # */ - # - # #include /* for printf() */ - # #include /* for open(), lseek(), read() */ - # #include /* for O_RDONLY, O_BINARY */ - # #include /* for strdup() */ - # - # /* O_BINARY isn't required (or even defined sometimes) under Unix */ - # #ifndef O_BINARY - # #define O_BINARY 0 - # #endif - # - # static unsigned int - # pe_get16 (fd, offset) - # int fd; - # int offset; - # { - # unsigned char b[2]; - # lseek (fd, offset, SEEK_SET); - # read (fd, b, 2); - # return b[0] + (b[1]<<8); - # } - # - # static unsigned int - # pe_get32 (fd, offset) - # int fd; - # int offset; - # { - # unsigned char b[4]; - # lseek (fd, offset, SEEK_SET); - # read (fd, b, 4); - # return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); - # } - # - # static unsigned int - # pe_as32 (ptr) - # void *ptr; - # { - # unsigned char *b = ptr; - # return b[0] + (b[1]<<8) + (b[2]<<16) + (b[3]<<24); - # } - # - # int - # main (argc, argv) - # int argc; - # char *argv[]; - # { - # int dll; - # unsigned long pe_header_offset, opthdr_ofs, num_entries, i; - # unsigned long export_rva, export_size, nsections, secptr, expptr; - # unsigned long name_rvas, nexp; - # unsigned char *expdata, *erva; - # char *filename, *dll_name; - # - # filename = argv[1]; - # - # dll = open(filename, O_RDONLY|O_BINARY); - # if (dll < 1) - # return 1; - # - # dll_name = filename; - # - # for (i=0; filename[i]; i++) - # if (filename[i] == '/' || filename[i] == '\\' || filename[i] == ':') - # dll_name = filename + i +1; - # - # pe_header_offset = pe_get32 (dll, 0x3c); - # opthdr_ofs = pe_header_offset + 4 + 20; - # num_entries = pe_get32 (dll, opthdr_ofs + 92); - # - # if (num_entries < 1) /* no exports */ - # return 1; - # - # export_rva = pe_get32 (dll, opthdr_ofs + 96); - # export_size = pe_get32 (dll, opthdr_ofs + 100); - # nsections = pe_get16 (dll, pe_header_offset + 4 +2); - # secptr = (pe_header_offset + 4 + 20 + - # pe_get16 (dll, pe_header_offset + 4 + 16)); - # - # expptr = 0; - # for (i = 0; i < nsections; i++) - # { - # char sname[8]; - # unsigned long secptr1 = secptr + 40 * i; - # unsigned long vaddr = pe_get32 (dll, secptr1 + 12); - # unsigned long vsize = pe_get32 (dll, secptr1 + 16); - # unsigned long fptr = pe_get32 (dll, secptr1 + 20); - # lseek(dll, secptr1, SEEK_SET); - # read(dll, sname, 8); - # if (vaddr <= export_rva && vaddr+vsize > export_rva) - # { - # expptr = fptr + (export_rva - vaddr); - # if (export_rva + export_size > vaddr + vsize) - # export_size = vsize - (export_rva - vaddr); - # break; - # } - # } - # - # expdata = (unsigned char*)malloc(export_size); - # lseek (dll, expptr, SEEK_SET); - # read (dll, expdata, export_size); - # erva = expdata - export_rva; - # - # nexp = pe_as32 (expdata+24); - # name_rvas = pe_as32 (expdata+32); - # - # printf ("EXPORTS\n"); - # for (i = 0; i> "${ofile}T" || (rm -f "${ofile}T"; exit 1) ! mv -f "${ofile}T" "$ofile" || \ ! (rm -f "$ofile" && cp "${ofile}T" "$ofile" && rm -f "${ofile}T") ! chmod +x "$ofile" ! fi --- 9320,9394 ---- 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" # Set to yes if exported symbols are required. ! always_export_symbols=$always_export_symbols_RC # The commands to list exported symbols. ! export_symbols_cmds=$lt_export_symbols_cmds_RC # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Symbols that should not be listed in the preloaded symbols. ! exclude_expsyms=$lt_exclude_expsyms_RC # Symbols that must always be exported. ! include_expsyms=$lt_include_expsyms_RC ! # ### END LIBTOOL TAG CONFIG: $tagname __EOF__ ! else ! # If there is no Makefile yet, we rely on a make rule to execute ! # `config.status --recheck' to rerun these tests and create the ! # libtool script then. ! ltmain_in=`echo $ltmain | sed -e 's/\.sh$/.in/'` ! if test -f "$ltmain_in"; then ! test -f Makefile && make "$ltmain" ! fi fi ! ac_ext=c ! ac_cpp='$CPP $CPPFLAGS' ! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ! ac_compiler_gnu=$ac_cv_c_compiler_gnu ! CC="$lt_save_CC" ! ;; ! ! *) ! { { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5 ! echo "$as_me: error: Unsupported tag name: $tagname" >&2;} ! { (exit 1); exit 1; }; } ! ;; ! esac + # Append the new tag name to the list of available tags. + if test -n "$tagname" ; then + available_tags="$available_tags $tagname" + fi + fi + done + IFS="$lt_save_ifs" + # Now substitute the updated list of available tags. + if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then + mv "${ofile}T" "$ofile" + chmod +x "$ofile" + else + rm -f "${ofile}T" + { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5 + echo "$as_me: error: unable to update list of available tagged configurations." >&2;} + { (exit 1); exit 1; }; } + fi + fi *************** *** 8212,8217 **** --- 9402,9414 ---- + + + + + + + echo "$as_me:$LINENO: checking for size_t" >&5 echo $ECHO_N "checking for size_t... $ECHO_C" >&6 if test "${ac_cv_type_size_t+set}" = set; then *************** *** 10248,10254 **** *-*-irix*) ac_cv_c_ieee_interface=irix ;; ! *-*-*darwin*) ac_cv_c_ieee_interface=darwin ;; *-*-*netbsd*) --- 11445,11451 ---- *-*-irix*) ac_cv_c_ieee_interface=irix ;; ! powerpc-*-*darwin*) ac_cv_c_ieee_interface=darwin ;; *-*-*netbsd*) *************** *** 10360,10367 **** - - save_cflags="$CFLAGS" echo "$as_me:$LINENO: checking for IEEE compiler flags" >&5 echo $ECHO_N "checking for IEEE compiler flags... $ECHO_C" >&6 --- 11557,11562 ---- *************** *** 10931,10937 **** } >&5 cat >&5 <<_CSEOF ! This file was extended by gsl $as_me 1.7, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES --- 12126,12132 ---- } >&5 cat >&5 <<_CSEOF ! This file was extended by gsl $as_me 1.8, which was generated by GNU Autoconf 2.59. Invocation command line was CONFIG_FILES = $CONFIG_FILES *************** *** 10991,10997 **** cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ ! gsl config.status 1.7 configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" --- 12186,12192 ---- cat >>$CONFIG_STATUS <<_ACEOF ac_cs_version="\\ ! gsl config.status 1.8 configured by $0, generated by GNU Autoconf 2.59, with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" *************** *** 11275,11286 **** s,@OBJEXT@,$OBJEXT,;t t s,@CPP@,$CPP,;t t s,@LN_S@,$LN_S,;t t ! s,@RANLIB@,$RANLIB,;t t ! s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t s,@AR@,$AR,;t t s,@ac_ct_AR@,$ac_ct_AR,;t t ! s,@ECHO@,$ECHO,;t t ! s,@EGREP@,$EGREP,;t t s,@LIBTOOL@,$LIBTOOL,;t t s,@GSL_CFLAGS@,$GSL_CFLAGS,;t t s,@GSL_LIBS@,$GSL_LIBS,;t t --- 12470,12481 ---- s,@OBJEXT@,$OBJEXT,;t t s,@CPP@,$CPP,;t t s,@LN_S@,$LN_S,;t t ! s,@EGREP@,$EGREP,;t t ! s,@ECHO@,$ECHO,;t t s,@AR@,$AR,;t t s,@ac_ct_AR@,$ac_ct_AR,;t t ! s,@RANLIB@,$RANLIB,;t t ! s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t s,@LIBTOOL@,$LIBTOOL,;t t s,@GSL_CFLAGS@,$GSL_CFLAGS,;t t s,@GSL_LIBS@,$GSL_LIBS,;t t diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/configure.ac gsl-1.8/configure.ac *** gsl-1.7/configure.ac Tue Sep 13 09:45:03 2005 --- gsl-1.8/configure.ac Fri Mar 31 17:46:43 2006 *************** *** 1,6 **** dnl Process this file with autoconf to produce a configure script. ! AC_INIT([gsl],[1.7]) AC_CONFIG_SRCDIR(gsl_math.h) AM_INIT_AUTOMAKE([gnu no-dependencies]) --- 1,6 ---- dnl Process this file with autoconf to produce a configure script. ! AC_INIT([gsl],[1.8]) AC_CONFIG_SRCDIR(gsl_math.h) AM_INIT_AUTOMAKE([gnu no-dependencies]) *************** *** 19,26 **** dnl gsl-1.5 libgsl 6:0:6 libgslcblas 0:0:0 dnl gsl-1.6 libgsl 7:0:7 libgslcblas 0:0:0 dnl gsl-1.7 libgsl 8:0:8 libgslcblas 0:0:0 ! GSL_LT_VERSION="8:0:8" AC_SUBST(GSL_LT_VERSION) GSL_LT_CBLAS_VERSION="0:0:0" AC_SUBST(GSL_LT_CBLAS_VERSION) --- 19,27 ---- dnl gsl-1.5 libgsl 6:0:6 libgslcblas 0:0:0 dnl gsl-1.6 libgsl 7:0:7 libgslcblas 0:0:0 dnl gsl-1.7 libgsl 8:0:8 libgslcblas 0:0:0 + dnl gsl-1.8 libgsl 9:0:9 libgslcblas 0:0:0 ! GSL_LT_VERSION="9:0:9" AC_SUBST(GSL_LT_VERSION) GSL_LT_CBLAS_VERSION="0:0:0" AC_SUBST(GSL_LT_CBLAS_VERSION) *************** *** 48,56 **** AC_PROG_CPP AC_PROG_INSTALL AC_PROG_LN_S ! AC_CHECK_TOOL(RANLIB, ranlib, :) ! AC_CHECK_TOOL(AR, ar, :) ! #AC_PROG_RANLIB AC_PROG_LIBTOOL dnl Check compiler features --- 49,59 ---- AC_PROG_CPP AC_PROG_INSTALL AC_PROG_LN_S ! ! dnl Disable unnecessary libtool tests for c++,fortran,java ! define([AC_LIBTOOL_LANG_CXX_CONFIG], [:])dnl ! define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl ! define([AC_LIBTOOL_LANG_GCJ_CONFIG], [:])dnl AC_PROG_LIBTOOL dnl Check compiler features *************** *** 233,239 **** *-*-irix*) ac_cv_c_ieee_interface=irix ;; ! *-*-*darwin*) ac_cv_c_ieee_interface=darwin ;; *-*-*netbsd*) --- 236,242 ---- *-*-irix*) ac_cv_c_ieee_interface=irix ;; ! powerpc-*-*darwin*) ac_cv_c_ieee_interface=darwin ;; *-*-*netbsd*) *************** *** 286,293 **** AC_SUBST(HAVE_OPENBSD_IEEE_INTERFACE) AC_SUBST(HAVE_DARWIN_IEEE_INTERFACE) - - dnl Check for IEEE control flags save_cflags="$CFLAGS" --- 289,294 ---- diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/const/ChangeLog gsl-1.8/const/ChangeLog *** gsl-1.7/const/ChangeLog Thu May 27 12:05:35 2004 --- gsl-1.8/const/ChangeLog Tue Mar 21 14:26:46 2006 *************** *** 1,3 **** --- 1,11 ---- + 2006-03-21 Brian Gough + + * test.c (main): added some extra tests + + 2006-03-17 Brian Gough + + * const.el (gsl-electrical-constants): added debye unit + 2004-05-26 Brian Gough * test.c: added stdlib.h for exit() diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/const/Makefile.in gsl-1.8/const/Makefile.in *** gsl-1.7/const/Makefile.in Tue Sep 13 10:04:42 2005 --- gsl-1.8/const/Makefile.in Fri Mar 31 17:47:31 2006 *************** *** 57,67 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(test_SOURCES) DIST_SOURCES = $(test_SOURCES) --- 57,67 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(test_SOURCES) DIST_SOURCES = $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/const/gsl_const_cgs.h gsl-1.8/const/gsl_const_cgs.h *** gsl-1.7/const/gsl_const_cgs.h Sun Jun 26 13:25:34 2005 --- gsl-1.8/const/gsl_const_cgs.h Fri Mar 17 15:52:09 2006 *************** *** 1,6 **** /* const/gsl_const_cgs.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 Brian Gough * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by --- 1,7 ---- /* const/gsl_const_cgs.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ! * 2006 Brian Gough * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/const/gsl_const_cgsm.h gsl-1.8/const/gsl_const_cgsm.h *** gsl-1.7/const/gsl_const_cgsm.h Sun Jun 26 13:25:34 2005 --- gsl-1.8/const/gsl_const_cgsm.h Fri Mar 17 15:52:09 2006 *************** *** 1,6 **** /* const/gsl_const_cgsm.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 Brian Gough * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by --- 1,7 ---- /* const/gsl_const_cgsm.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ! * 2006 Brian Gough * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/const/gsl_const_mks.h gsl-1.8/const/gsl_const_mks.h *** gsl-1.7/const/gsl_const_mks.h Sun Jun 26 13:25:34 2005 --- gsl-1.8/const/gsl_const_mks.h Tue Mar 21 14:26:46 2006 *************** *** 1,6 **** /* const/gsl_const_mks.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 Brian Gough * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by --- 1,7 ---- /* const/gsl_const_mks.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ! * 2006 Brian Gough * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by *************** *** 120,124 **** --- 121,126 ---- #define GSL_CONST_MKS_THOMSON_CROSS_SECTION (6.65245853542e-29) /* m^2 */ #define GSL_CONST_MKS_VACUUM_PERMITTIVITY (8.854187817e-12) /* A^2 s^4 / kg m^3 */ #define GSL_CONST_MKS_VACUUM_PERMEABILITY (1.25663706144e-6) /* kg m / A^2 s^2 */ + #define GSL_CONST_MKS_DEBYE (3.33564095198e-30) /* A s^2 / m^2 */ #endif /* __GSL_CONST_MKS__ */ diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/const/gsl_const_mksa.h gsl-1.8/const/gsl_const_mksa.h *** gsl-1.7/const/gsl_const_mksa.h Sun Jun 26 13:25:34 2005 --- gsl-1.8/const/gsl_const_mksa.h Tue Mar 21 14:26:46 2006 *************** *** 1,6 **** /* const/gsl_const_mksa.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 Brian Gough * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by --- 1,7 ---- /* const/gsl_const_mksa.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ! * 2006 Brian Gough * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by *************** *** 120,124 **** --- 121,126 ---- #define GSL_CONST_MKSA_THOMSON_CROSS_SECTION (6.65245853542e-29) /* m^2 */ #define GSL_CONST_MKSA_VACUUM_PERMITTIVITY (8.854187817e-12) /* A^2 s^4 / kg m^3 */ #define GSL_CONST_MKSA_VACUUM_PERMEABILITY (1.25663706144e-6) /* kg m / A^2 s^2 */ + #define GSL_CONST_MKSA_DEBYE (3.33564095198e-30) /* A s^2 / m^2 */ #endif /* __GSL_CONST_MKSA__ */ diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/const/gsl_const_num.h gsl-1.8/const/gsl_const_num.h *** gsl-1.7/const/gsl_const_num.h Sun Jun 26 13:25:34 2005 --- gsl-1.8/const/gsl_const_num.h Fri Mar 17 15:52:09 2006 *************** *** 1,6 **** /* const/gsl_const_num.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 Brian Gough * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by --- 1,7 ---- /* const/gsl_const_num.h * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ! * 2006 Brian Gough * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/const/test.c gsl-1.8/const/test.c *** gsl-1.7/const/test.c Sun Jun 26 13:25:34 2005 --- gsl-1.8/const/test.c Thu Mar 30 19:04:07 2006 *************** *** 20,25 **** --- 20,26 ---- #include #include #include + #include #include #include *************** *** 72,77 **** --- 73,97 ---- gsl_test_rel (mega/kilo, 1/(micro*kilo), 1e-10, "kilo (mega/kilo, 1/(micro*kilo))"); } + { + double d = GSL_CONST_MKSA_DEBYE; + double c = GSL_CONST_MKSA_SPEED_OF_LIGHT; + double desu = d * c * 1000.0; + + gsl_test_rel (desu, 1e-18, 1e-10, "debye (esu)"); + } + + { + double k = GSL_CONST_MKSA_BOLTZMANN; + double c = GSL_CONST_MKSA_SPEED_OF_LIGHT; + double h = GSL_CONST_MKSA_PLANCKS_CONSTANT_H; + double s = 2 * pow(M_PI, 5.0) * pow(k, 4.0) / (15 * pow(c, 2.0) * pow(h, 3.0)); + double sigma = GSL_CONST_MKSA_STEFAN_BOLTZMANN_CONSTANT; + + gsl_test_rel(s, sigma, 1e-10, "stefan boltzmann constant"); + } + + exit (gsl_test_summary ()); } Only in gsl-1.7: depcomp diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/deriv/Makefile.in gsl-1.8/deriv/Makefile.in *** gsl-1.7/deriv/Makefile.in Tue Sep 13 10:04:43 2005 --- gsl-1.8/deriv/Makefile.in Fri Mar 31 17:47:32 2006 *************** *** 62,72 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslderiv_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslderiv_la_SOURCES) $(test_SOURCES) --- 62,72 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslderiv_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslderiv_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/dht/Makefile.in gsl-1.8/dht/Makefile.in *** gsl-1.7/dht/Makefile.in Tue Sep 13 10:04:44 2005 --- gsl-1.8/dht/Makefile.in Fri Mar 31 17:47:32 2006 *************** *** 62,72 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgsldht_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgsldht_la_SOURCES) $(test_SOURCES) --- 62,72 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgsldht_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgsldht_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/diff/Makefile.in gsl-1.8/diff/Makefile.in *** gsl-1.7/diff/Makefile.in Tue Sep 13 10:04:45 2005 --- gsl-1.8/diff/Makefile.in Fri Mar 31 17:47:32 2006 *************** *** 62,72 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgsldiff_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgsldiff_la_SOURCES) $(test_SOURCES) --- 62,72 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgsldiff_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgsldiff_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/ChangeLog gsl-1.8/doc/ChangeLog *** gsl-1.7/doc/ChangeLog Thu May 8 18:58:51 2003 --- gsl-1.8/doc/ChangeLog Thu Feb 9 17:16:58 2006 *************** *** 1,3 **** --- 1,8 ---- + 2006-02-09 Brian Gough + + * Makefile.am: disable pdf, as it would require maintaining a + separate set of figure files. + Mon Apr 7 12:54:30 MDT 2003 G. Jungman * specfunc-gamma.texi: added entry for gsl_sf_gamma_inc_(), diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/Makefile.am gsl-1.8/doc/Makefile.am *** gsl-1.7/doc/Makefile.am Fri May 27 11:11:52 2005 --- gsl-1.8/doc/Makefile.am Mon Feb 27 20:31:18 2006 *************** *** 6,20 **** man_MANS = gsl.3 gsl-config.1 gsl-randist.1 gsl-histogram.1 ! figures = multimin.eps siman-test.eps siman-energy.eps 12-cities.eps initial-route.eps final-route.eps fft-complex-radix2-f.eps fft-complex-radix2-t.eps fft-complex-radix2.eps fft-real-mixedradix.eps roots-bisection.eps roots-false-position.eps roots-newtons-method.eps roots-secant-method.eps histogram.eps histogram2d.eps min-interval.eps fit-wlinear.eps fit-wlinear2.eps fit-exp.eps ntuple.eps qrng.eps cheb.eps vdp.eps interp2.eps rand-beta.tex rand-binomial.tex rand-cauchy.tex rand-chisq.tex rand-erlang.tex rand-exponential.tex rand-fdist.tex rand-flat.tex rand-gamma.tex rand-gaussian.tex rand-geometric.tex rand-laplace.tex rand-logarithmic.tex rand-logistic.tex rand-lognormal.tex rand-pareto.tex rand-poisson.tex rand-hypergeometric.tex rand-nbinomial.tex rand-pascal.tex rand-bivariate-gaussian.tex rand-rayleigh.tex rand-rayleigh-tail.tex rand-tdist.tex rand-weibull.tex random-walk.tex randplots.gnp rand-exppow.tex rand-levy.tex rand-levyskew.tex rand-gumbel.tex rand-bernoulli.tex rand-gaussian-tail.tex rand-gumbel1.tex rand-gumbel2.tex landau.dat rand-landau.tex dwt-orig.eps dwt-samp.eps ! ! examples_src = examples/blas.c examples/block.c examples/cblas.c examples/cdf.c examples/cheb.c examples/combination.c examples/const.c examples/demo_fn.c examples/diff.c examples/eigen.c examples/fft.c examples/fftmr.c examples/fftreal.c examples/fitting.c examples/fitting2.c examples/fitting3.c examples/histogram.c examples/histogram2d.c examples/ieee.c examples/ieeeround.c examples/integration.c examples/interp.c examples/intro.c examples/linalglu.c examples/matrix.c examples/matrixw.c examples/min.c examples/monte.c examples/ntupler.c examples/ntuplew.c examples/ode-initval.c examples/odefixed.c examples/permseq.c examples/permshuffle.c examples/polyroots.c examples/qrng.c examples/randpoisson.c examples/randwalk.c examples/rng.c examples/rngunif.c examples/rootnewt.c examples/roots.c examples/siman.c examples/sortsmall.c examples/specfun.c examples/specfun_e.c examples/stat.c examples/statsort.c examples/sum.c examples/vector.c examples/vectorr.c examples/vectorview.c examples/vectorw.c examples/demo_fn.h examples/dwt.c ! ! ! examples_out = examples/blas.out examples/block.out examples/cblas.out examples/cdf.out examples/combination.out examples/const.out examples/diff.out examples/integration.out examples/intro.out examples/linalglu.out examples/min.out examples/polyroots.out examples/randpoisson.2.out examples/randpoisson.out examples/rng.out examples/rngunif.2.out examples/rngunif.out examples/sortsmall.out examples/specfun.out examples/specfun_e.out examples/stat.out examples/statsort.out examples/sum.out examples/vectorview.out examples/ecg.dat examples/dwt.dat noinst_DATA = $(examples_src) $(examples_out) $(figures) EXTRA_DIST = $(man_MANS) $(noinst_DATA) gsl-design.texi fftalgorithms.tex fftalgorithms.bib algorithm.sty algorithmic.sty calc.sty --- 6,21 ---- man_MANS = gsl.3 gsl-config.1 gsl-randist.1 gsl-histogram.1 ! figures = multimin.eps siman-test.eps siman-energy.eps 12-cities.eps initial-route.eps final-route.eps fft-complex-radix2-f.eps fft-complex-radix2-t.eps fft-complex-radix2.eps fft-real-mixedradix.eps roots-bisection.eps roots-false-position.eps roots-newtons-method.eps roots-secant-method.eps histogram.eps histogram2d.eps min-interval.eps fit-wlinear.eps fit-wlinear2.eps fit-exp.eps ntuple.eps qrng.eps cheb.eps vdp.eps interp2.eps rand-beta.tex rand-binomial.tex rand-cauchy.tex rand-chisq.tex rand-erlang.tex rand-exponential.tex rand-fdist.tex rand-flat.tex rand-gamma.tex rand-gaussian.tex rand-geometric.tex rand-laplace.tex rand-logarithmic.tex rand-logistic.tex rand-lognormal.tex rand-pareto.tex rand-poisson.tex rand-hypergeometric.tex rand-nbinomial.tex rand-pascal.tex rand-bivariate-gaussian.tex rand-rayleigh.tex rand-rayleigh-tail.tex rand-tdist.tex rand-weibull.tex random-walk.tex randplots.gnp rand-exppow.tex rand-levy.tex rand-levyskew.tex rand-gumbel.tex rand-bernoulli.tex rand-gaussian-tail.tex rand-gumbel1.tex rand-gumbel2.tex landau.dat rand-landau.tex dwt-orig.eps dwt-samp.eps interpp2.eps + examples_src = examples/blas.c examples/block.c examples/cblas.c examples/cdf.c examples/cheb.c examples/combination.c examples/const.c examples/demo_fn.c examples/diff.c examples/eigen.c examples/fft.c examples/fftmr.c examples/fftreal.c examples/fitting.c examples/fitting2.c examples/fitting3.c examples/histogram.c examples/histogram2d.c examples/ieee.c examples/ieeeround.c examples/integration.c examples/interp.c examples/intro.c examples/linalglu.c examples/matrix.c examples/matrixw.c examples/min.c examples/monte.c examples/ntupler.c examples/ntuplew.c examples/ode-initval.c examples/odefixed.c examples/permseq.c examples/permshuffle.c examples/polyroots.c examples/qrng.c examples/randpoisson.c examples/randwalk.c examples/rng.c examples/rngunif.c examples/rootnewt.c examples/roots.c examples/siman.c examples/sortsmall.c examples/specfun.c examples/specfun_e.c examples/stat.c examples/statsort.c examples/sum.c examples/vector.c examples/vectorr.c examples/vectorview.c examples/vectorw.c examples/demo_fn.h examples/dwt.c examples/expfit.c examples/nlfit.c examples/interpp.c + examples_out = examples/blas.out examples/block.out examples/cblas.out examples/cdf.out examples/combination.out examples/const.out examples/diff.out examples/integration.out examples/intro.out examples/linalglu.out examples/min.out examples/polyroots.out examples/randpoisson.2.out examples/randpoisson.out examples/rng.out examples/rngunif.2.out examples/rngunif.out examples/sortsmall.out examples/specfun.out examples/specfun_e.out examples/stat.out examples/statsort.out examples/sum.out examples/vectorview.out examples/ecg.dat examples/dwt.dat noinst_DATA = $(examples_src) $(examples_out) $(figures) EXTRA_DIST = $(man_MANS) $(noinst_DATA) gsl-design.texi fftalgorithms.tex fftalgorithms.bib algorithm.sty algorithmic.sty calc.sty + + # pdf disabled, use postscript and ps2pdf + .PHONY: pdf + pdf: diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/Makefile.in gsl-1.8/doc/Makefile.in *** gsl-1.7/doc/Makefile.in Tue Sep 13 10:04:46 2005 --- gsl-1.8/doc/Makefile.in Fri Mar 31 17:47:33 2006 *************** *** 222,228 **** random-walk.tex randplots.gnp rand-exppow.tex rand-levy.tex \ rand-levyskew.tex rand-gumbel.tex rand-bernoulli.tex \ rand-gaussian-tail.tex rand-gumbel1.tex rand-gumbel2.tex \ ! landau.dat rand-landau.tex dwt-orig.eps dwt-samp.eps examples_src = examples/blas.c examples/block.c examples/cblas.c \ examples/cdf.c examples/cheb.c examples/combination.c \ examples/const.c examples/demo_fn.c examples/diff.c \ --- 222,229 ---- random-walk.tex randplots.gnp rand-exppow.tex rand-levy.tex \ rand-levyskew.tex rand-gumbel.tex rand-bernoulli.tex \ rand-gaussian-tail.tex rand-gumbel1.tex rand-gumbel2.tex \ ! landau.dat rand-landau.tex dwt-orig.eps dwt-samp.eps \ ! interpp2.eps examples_src = examples/blas.c examples/block.c examples/cblas.c \ examples/cdf.c examples/cheb.c examples/combination.c \ examples/const.c examples/demo_fn.c examples/diff.c \ *************** *** 241,248 **** examples/specfun.c examples/specfun_e.c examples/stat.c \ examples/statsort.c examples/sum.c examples/vector.c \ examples/vectorr.c examples/vectorview.c examples/vectorw.c \ ! examples/demo_fn.h examples/dwt.c ! examples_out = examples/blas.out examples/block.out examples/cblas.out examples/cdf.out examples/combination.out examples/const.out examples/diff.out examples/integration.out examples/intro.out examples/linalglu.out examples/min.out examples/polyroots.out examples/randpoisson.2.out examples/randpoisson.out examples/rng.out examples/rngunif.2.out examples/rngunif.out examples/sortsmall.out examples/specfun.out examples/specfun_e.out examples/stat.out examples/statsort.out examples/sum.out examples/vectorview.out examples/ecg.dat examples/dwt.dat noinst_DATA = $(examples_src) $(examples_out) $(figures) EXTRA_DIST = $(man_MANS) $(noinst_DATA) gsl-design.texi fftalgorithms.tex fftalgorithms.bib algorithm.sty algorithmic.sty calc.sty all: all-am --- 242,250 ---- examples/specfun.c examples/specfun_e.c examples/stat.c \ examples/statsort.c examples/sum.c examples/vector.c \ examples/vectorr.c examples/vectorview.c examples/vectorw.c \ ! examples/demo_fn.h examples/dwt.c examples/expfit.c \ ! examples/nlfit.c examples/interpp.c ! examples_out = examples/blas.out examples/block.out examples/cblas.out examples/cdf.out examples/combination.out examples/const.out examples/diff.out examples/integration.out examples/intro.out examples/linalglu.out examples/min.out examples/polyroots.out examples/randpoisson.2.out examples/randpoisson.out examples/rng.out examples/rngunif.2.out examples/rngunif.out examples/sortsmall.out examples/specfun.out examples/specfun_e.out examples/stat.out examples/statsort.out examples/sum.out examples/vectorview.out examples/ecg.dat examples/dwt.dat noinst_DATA = $(examples_src) $(examples_out) $(figures) EXTRA_DIST = $(man_MANS) $(noinst_DATA) gsl-design.texi fftalgorithms.tex fftalgorithms.bib algorithm.sty algorithmic.sty calc.sty all: all-am *************** *** 638,645 **** mostlyclean-am: mostlyclean-aminfo mostlyclean-generic \ mostlyclean-libtool mostlyclean-vti - pdf: pdf-am - pdf-am: $(PDFS) ps: ps-am --- 640,645 ---- *************** *** 663,668 **** --- 663,672 ---- pdf-am ps ps-am uninstall uninstall-am uninstall-info-am \ uninstall-man uninstall-man1 uninstall-man3 + + # pdf disabled, use postscript and ps2pdf + .PHONY: pdf + pdf: # 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. .NOEXPORT: diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/autoconf.texi gsl-1.8/doc/autoconf.texi *** gsl-1.7/doc/autoconf.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/autoconf.texi Thu Mar 16 18:00:21 2006 *************** *** 13,18 **** --- 13,19 ---- AC_CHECK_LIB(gslcblas,main) AC_CHECK_LIB(gsl,main) @end example + @noindent It is important to check for @code{libm} and @code{libgslcblas} before @code{libgsl}, otherwise the tests will fail. Assuming the libraries *************** *** 23,28 **** --- 24,30 ---- checking for main in -lgslcblas... yes checking for main in -lgsl... yes @end example + @noindent If the library is found then the tests will define the macros @code{HAVE_LIBGSL}, @code{HAVE_LIBGSLCBLAS}, @code{HAVE_LIBM} and add *************** *** 40,45 **** --- 42,48 ---- [action-if-found], [action-if-not-found]) @end example + @noindent The argument @code{GSL_VERSION} should be the two or three digit @sc{major.minor} or @sc{major.minor.micro} version number of the release *************** *** 48,53 **** --- 51,57 ---- @example AC_MSG_ERROR(could not find required version of GSL) @end example + @noindent Then you can add the variables @code{GSL_LIBS} and @code{GSL_CFLAGS} to your Makefile.am files to obtain the correct compiler flags. *************** *** 58,63 **** --- 62,68 ---- @example libfoo_la_LDFLAGS = -lfoo $(GSL_LIBS) -lgslcblas @end example + @noindent Note that the macro @code{AM_PATH_GSL} needs to use the C compiler so it should appear in the @file{configure.in} file before the macro *************** *** 74,79 **** --- 79,85 ---- AC_SUBST(HAVE_INLINE) fi @end example + @noindent and the macro will then be defined in the compilation flags or by including the file @file{config.h} before any library headers. *************** *** 107,112 **** --- 113,119 ---- @example AC_CHECK_FUNCS(hypot) @end example + @noindent and place the following macro definitions in the file @file{config.h.in}, *************** *** 118,123 **** --- 125,131 ---- #define hypot gsl_hypot #endif @end example + @noindent The application source files can then use the include command @code{#include } to substitute @code{gsl_hypot} for each diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/blas.texi gsl-1.8/doc/blas.texi *** gsl-1.7/doc/blas.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/blas.texi Thu Mar 16 18:00:21 2006 *************** *** 42,47 **** --- 42,48 ---- @item Level 3 Matrix-matrix operations, e.g. @math{C = \alpha A B + C} @end table + @noindent Each routine has a name which specifies the operation, the type of matrices involved and their precisions. Some of the most common *************** *** 61,66 **** --- 62,68 ---- @item SM matrix-matrix solve, @math{inv(A) B} @end table + @noindent The types of matrices are, *************** *** 88,93 **** --- 90,96 ---- @item TP triangular packed @end table + @noindent Each operation is defined for four precisions, *************** *** 101,106 **** --- 104,110 ---- @item Z double complex @end table + @noindent Thus, for example, the name @sc{sgemm} stands for ``single-precision general matrix-matrix multiply'' and @sc{zgemm} stands for *************** *** 184,190 **** ||x||_2 = \sqrt @{\sum (\Re(x_i)^2 + \Im(x_i)^2)@}. @end example @end ifinfo - @noindent @end deftypefun @deftypefun float gsl_blas_sasum (const gsl_vector_float * @var{x}) --- 188,193 ---- *************** *** 284,289 **** --- 287,293 ---- [ c s ] [ a ] = [ r ] [ -s c ] [ b ] [ 0 ] @end example + @end ifinfo @noindent The variables @var{a} and @var{b} are overwritten by the routine. *************** *** 619,624 **** --- 623,629 ---- [ 0.21 0.22 0.23 ] [ 1021 1022 ] = [ 674.06 674.72 ] [ 1031 1032 ] @end example + @end ifinfo @noindent The matrices are stored in row major order, according to the C convention *************** *** 627,632 **** --- 632,638 ---- @example @verbatiminclude examples/blas.c @end example + @noindent Here is the output from the program, *************** *** 650,655 **** --- 656,662 ---- @cite{BLAS Technical Forum} @* @uref{http://www.netlib.org/cgi-bin/checkout/blast/blast.pl} @end itemize + @noindent The following papers contain the specifications for Level 1, Level 2 and Level 3 @sc{blas}. *************** *** 670,675 **** --- 677,683 ---- Level 3 Basic Linear Algebra Subprograms'', @cite{ACM Transactions on Mathematical Software}, Vol.@: 16 (1990), Pages 1--28. @end itemize + @noindent Postscript versions of the latter two papers are available from @uref{http://www.netlib.org/blas/}. A @sc{cblas} wrapper for Fortran @sc{blas} diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/cblas.texi gsl-1.8/doc/cblas.texi *** gsl-1.7/doc/cblas.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/cblas.texi Thu Mar 16 18:00:21 2006 *************** *** 485,490 **** --- 485,491 ---- [ 0.21 0.22 0.23 ] [ 1021 1022 ] = [ 674.06 674.72 ] [ 1031 1032 ] @end example + @end ifinfo @noindent The matrices are stored in row major order but could be stored in column *************** *** 494,505 **** --- 495,508 ---- @example @verbatiminclude examples/cblas.c @end example + @noindent To compile the program use the following command line, @example $ gcc -Wall demo.c -lgslcblas @end example + @noindent There is no need to link with the main library @code{-lgsl} in this case as the @sc{cblas} library is an independent unit. Here is the output diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/cheb.texi gsl-1.8/doc/cheb.texi *** gsl-1.7/doc/cheb.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/cheb.texi Thu Mar 16 18:00:21 2006 *************** *** 36,43 **** int order; /* order of expansion */ double a; /* lower interval point */ double b; /* upper interval point */ ! @} gsl_cheb_struct @end example @noindent The approximation is made over the range @math{[a,b]} using @var{order}+1 terms, including the coefficient @math{c[0]}. The series --- 36,45 ---- int order; /* order of expansion */ double a; /* lower interval point */ double b; /* upper interval point */ ! ... ! @} gsl_cheb_series @end example + @noindent The approximation is made over the range @math{[a,b]} using @var{order}+1 terms, including the coefficient @math{c[0]}. The series *************** *** 54,59 **** --- 56,62 ---- @example f(x) = (c_0 / 2) + \sum_@{n=1@} c_n T_n(x) @end example + @end ifinfo @noindent which is needed when accessing the coefficients directly. *************** *** 150,155 **** --- 153,159 ---- @example @verbatiminclude examples/cheb.c @end example + @noindent The output from the program gives the original function, 10-th order approximation and 40-th order approximation, all sampled at intervals of diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/combination.texi gsl-1.8/doc/combination.texi *** gsl-1.7/doc/combination.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/combination.texi Thu Mar 16 18:00:21 2006 *************** *** 40,45 **** --- 40,46 ---- @} gsl_combination; @end example @comment + @noindent @node Combination allocation *************** *** 188,193 **** --- 189,195 ---- @example @verbatiminclude examples/combination.c @end example + @noindent Here is the output from the program, *************** *** 213,218 **** --- 215,221 ---- Generation, Enumeration and Search}, 1998, CRC Press LLC, ISBN 084933988X @end itemize + @noindent diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/complex.texi gsl-1.8/doc/complex.texi *** gsl-1.7/doc/complex.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/complex.texi Thu Mar 16 18:00:21 2006 *************** *** 51,56 **** --- 51,57 ---- double dat[2]; @} gsl_complex; @end example + @noindent The real and imaginary part are stored in contiguous elements of a two element array. This eliminates any padding between the real and *************** *** 82,87 **** --- 83,89 ---- @example GSL_SET_COMPLEX(&z, 3, 4) @end example + @noindent sets @var{z} to be @math{3 + 4i}. @end defmac *************** *** 464,469 **** --- 466,472 ---- handling'', @cite{ACM Transactions on Mathematical Software}, Volume 23 (1997) pp 299--335 @end itemize + @noindent The general formulas and details of branch cuts can be found in the following books, diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/const.texi gsl-1.8/doc/const.texi *** gsl-1.7/doc/const.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/const.texi Fri Mar 17 15:52:09 2006 *************** *** 164,169 **** --- 164,172 ---- @item GSL_CONST_MKSA_THOMSON_CROSS_SECTION The Thomson cross section, @math{\sigma_T}. + + @item GSL_CONST_MKSA_DEBYE + The electric dipole moment of 1 Debye, @math{D}. @end table *************** *** 547,552 **** --- 550,556 ---- @example @verbatiminclude examples/const.c @end example + @noindent Here is the output from the program, diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/debug.texi gsl-1.8/doc/debug.texi *** gsl-1.7/doc/debug.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/debug.texi Thu Mar 16 18:00:21 2006 *************** *** 23,28 **** --- 23,29 ---- break gsl_error @end example @comment + @noindent into your @file{.gdbinit} file in the directory where your program is started. *************** *** 37,42 **** --- 38,44 ---- @smallexample status = gsl_fft_complex_wavetable_alloc (0, &complex_wavetable); @end smallexample + @noindent The function @code{gsl_fft_complex_wavetable_alloc} takes the length of an FFT as its first argument. When this line is executed an error will *************** *** 56,61 **** --- 58,64 ---- Breakpoint 1 at 0x8050b1e: file error.c, line 14. @end smallexample + @noindent When we run the program this breakpoint catches the error and shows the reason for it. *************** *** 71,76 **** --- 74,80 ---- 14 if (gsl_error_handler) @end smallexample @comment + @noindent The first argument of @code{gsl_error} is always a string describing the error. Now we can look at the backtrace to see what caused the problem, *************** *** 88,93 **** --- 92,98 ---- #3 0x80488be in ___crt_dummy__ () @end smallexample @comment + @noindent We can see that the error was generated in the function @code{gsl_fft_complex_wavetable_alloc} when it was called with an *************** *** 109,114 **** --- 114,120 ---- &complex_wavetable); @end smallexample @comment + @noindent Thus we have found the line that caused the problem. From this point we could also print out the values of other variables such as *************** *** 138,143 **** --- 144,150 ---- fopoff: 0x08086820 fopsel: 0x002b @end smallexample + @noindent Individual registers can be examined using the variables @var{$reg}, where @var{reg} is the register name. *************** *** 160,165 **** --- 167,173 ---- Signal Stop Print Pass to program Description SIGFPE Yes Yes Yes Arithmetic exception @end smallexample + @noindent Unless the program uses a signal handler the default setting should be changed so that SIGFPE is not passed to the program, as this would cause *************** *** 170,175 **** --- 178,184 ---- Signal Stop Print Pass to program Description SIGFPE Yes Yes No Arithmetic exception @end smallexample + @noindent Depending on the platform it may be necessary to instruct the kernel to generate signals for floating point exceptions. For programs using GSL *************** *** 252,257 **** --- 261,267 ---- -Wwrite-strings -Wnested-externs -fshort-enums -fno-common -Dinline= -g -O4 @end example + @noindent For details of each option consult the manual @cite{Using and Porting GCC}. The following table gives a brief explanation of what types of *************** *** 365,370 **** --- 375,381 ---- R.M. Stallman, R.H. Pesch, @cite{Debugging with GDB: The GNU Source-Level Debugger}, Free Software Foundation, ISBN 1882114779 @end itemize + @noindent For a tutorial introduction to the GNU C Compiler and related programs, see diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/dht.texi gsl-1.8/doc/dht.texi *** gsl-1.7/doc/dht.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/dht.texi Thu Mar 16 18:00:21 2006 *************** *** 30,35 **** --- 30,41 ---- $$ \afterdisplay @end tex + @ifinfo + @example + g_m = \int_0^1 t dt J_\nu(j_(\nu,m)t) f(t), + @end example + + @end ifinfo @noindent so that, @tex *************** *** 39,44 **** --- 45,56 ---- $$ \afterdisplay @end tex + @ifinfo + @example + f(t) = \sum_@{m=1@}^\infty (2 J_\nu(j_(\nu,m)x) / J_(\nu+1)(j_(\nu,m))^2) g_m. + @end example + + @end ifinfo @noindent Suppose that @math{f} is band-limited in the sense that @math{g_m=0} for @math{m > M}. Then we have the following *************** *** 52,57 **** --- 64,77 ---- $$ \afterdisplay @end tex + @ifinfo + @example + g_m = (2 / j_(\nu,M)^2) + \sum_@{k=1@}^@{M-1@} f(j_(\nu,k)/j_(\nu,M)) + (J_\nu(j_(\nu,m) j_(\nu,k) / j_(\nu,M)) / J_(\nu+1)(j_(\nu,k))^2). + @end example + + @end ifinfo @noindent It is this discrete expression which defines the discrete Hankel transform. The kernel in the summation above defines the matrix of the diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/diff.texi gsl-1.8/doc/diff.texi *** gsl-1.7/doc/diff.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/diff.texi Thu Mar 16 18:00:21 2006 *************** *** 80,85 **** --- 80,86 ---- @example @verbatiminclude examples/diff.c @end example + @noindent Here is the output of the program, diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/dwt.texi gsl-1.8/doc/dwt.texi *** gsl-1.7/doc/dwt.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/dwt.texi Thu Mar 16 18:00:21 2006 *************** *** 21,26 **** --- 21,27 ---- The continuous wavelet transform and its inverse are defined by the relations, + @iftex @tex \beforedisplay $$ *************** *** 28,38 **** --- 29,41 ---- $$ \afterdisplay @end tex + @end iftex @ifinfo @example w(s,\tau) = \int f(t) * \psi^*_@{s,\tau@}(t) dt @end example + @end ifinfo @noindent and, *************** *** 48,53 **** --- 51,57 ---- @example f(t) = \int \int_@{-\infty@}^\infty w(s, \tau) * \psi_@{s,\tau@}(t) d\tau ds @end example + @end ifinfo @noindent where the basis functions @c{$\psi_{s,\tau}$} *************** *** 241,250 **** (s_@{-1,0@}, d_@{0,0@}, d_@{1,0@}, d_@{1,1@}, d_@{2,0@}, ..., d_@{j,k@}, ..., d_@{J-1,2^@{J-1@}-1@}) @end example @end ifinfo @noindent ! where the first element is the smoothing coefficient @math{s_{-1,0}}, ! followed by the detail coefficients @math{d_{j,k}} for each level @math{j}. The backward transform inverts these coefficients to obtain the original data. --- 245,256 ---- (s_@{-1,0@}, d_@{0,0@}, d_@{1,0@}, d_@{1,1@}, d_@{2,0@}, ..., d_@{j,k@}, ..., d_@{J-1,2^@{J-1@}-1@}) @end example + @end ifinfo @noindent ! where the first element is the smoothing coefficient @c{$s_{-1,0}$} ! @math{s_@{-1,0@}}, followed by the detail coefficients @c{$d_{j,k}$} ! @math{d_@{j,k@}} for each level @math{j}. The backward transform inverts these coefficients to obtain the original data. *************** *** 333,338 **** --- 339,345 ---- @example @verbatiminclude examples/dwt.c @end example + @noindent The output can be used with the @sc{gnu} plotutils @code{graph} program, *************** *** 368,373 **** --- 375,381 ---- @cite{CBMS-NSF Regional Conference Series in Applied Mathematics} (1992), SIAM, ISBN 0898712742. @end itemize + @noindent An easy to read introduction to the subject with an emphasis on the application of the wavelet transform in various branches of science is, *************** *** 377,382 **** --- 385,391 ---- Paul S. Addison. @cite{The Illustrated Wavelet Transform Handbook}. Institute of Physics Publishing (2002), ISBN 0750306920. @end itemize + @noindent For extensive coverage of signal analysis by wavelets, wavelet packets and local cosine bases see, *************** *** 386,391 **** --- 395,401 ---- S. G. Mallat. @cite{A wavelet tour of signal processing} (Second edition). Academic Press (1999), ISBN 012466606X. @end itemize + @noindent The concept of multiresolution analysis underlying the wavelet transform is described in, *************** *** 404,409 **** --- 414,420 ---- @cite{IEEE Transactions on Pattern Analysis and Machine Intelligence}, 11, 1989, 674--693. @end itemize + @noindent The coefficients for the individual wavelet families implemented by the library can be found in the following papers, diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/eigen.texi gsl-1.8/doc/eigen.texi *** gsl-1.7/doc/eigen.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/eigen.texi Thu Mar 16 18:00:21 2006 *************** *** 176,181 **** --- 176,182 ---- @example @verbatiminclude examples/eigen.c @end example + @noindent Here is the beginning of the output from the program, *************** *** 189,194 **** --- 190,196 ---- 0.514553 ... @end example + @noindent This can be compared with the corresponding output from @sc{gnu octave}, *************** *** 210,215 **** --- 212,218 ---- 0.791411 0.100228 0.509579 0.322416 -0.514553 0.638283 0.514048 0.252161 @end example + @noindent Note that the eigenvectors can differ by a change of sign, since the sign of an eigenvector is arbitrary. *************** *** 225,230 **** --- 228,234 ---- G. H. Golub, C. F. Van Loan, @cite{Matrix Computations} (3rd Ed, 1996), Johns Hopkins University Press, ISBN 0-8018-5414-8. @end itemize + @noindent The @sc{lapack} library is described in, *************** *** 235,240 **** --- 239,245 ---- @uref{http://www.netlib.org/lapack} @end itemize + @noindent The @sc{lapack} source code can be found at the website above along with an online copy of the users guide. diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/err.texi gsl-1.8/doc/err.texi *** gsl-1.7/doc/err.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/err.texi Thu Mar 16 18:00:21 2006 *************** *** 108,113 **** --- 108,114 ---- @example printf ("error: %s\n", gsl_strerror (status)); @end example + @noindent would print an error message like @code{error: output range error} for a status value of @code{GSL_ERANGE}. *************** *** 153,158 **** --- 154,160 ---- @end example @end deftp @comment + @noindent To request the use of your own error handler you need to call the function @code{gsl_set_error_handler} which is also declared in *************** *** 179,184 **** --- 181,187 ---- /* restore original handler */ gsl_set_error_handler (old_handler); @end example + @noindent To use the default behavior (@code{abort} on error) set the error handler to @code{NULL}, *************** *** 222,227 **** --- 225,231 ---- gsl_error (reason, __FILE__, __LINE__, gsl_errno); return gsl_errno; @end example + @noindent The macro definition in @file{gsl_errno.h} actually wraps the code in a @code{do @{ ... @} while (0)} block to prevent possible *************** *** 289,294 **** --- 293,299 ---- ... @end example @comment + @noindent The function @code{gsl_fft_complex_radix2} only accepts integer lengths which are a power of two. If the variable @code{n} is not a power of diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/examples/expfit.c gsl-1.8/doc/examples/expfit.c *** gsl-1.7/doc/examples/expfit.c Thu Jan 1 00:00:00 1970 --- gsl-1.8/doc/examples/expfit.c Fri Feb 17 15:54:11 2006 *************** *** 0 **** --- 1,70 ---- + /* expfit.c -- model functions for exponential + background */ + + struct data { + size_t n; + double * y; + double * sigma; + }; + + int + expb_f (const gsl_vector * x, void *data, + gsl_vector * f) + { + size_t n = ((struct data *)data)->n; + double *y = ((struct data *)data)->y; + double *sigma = ((struct data *) data)->sigma; + + double A = gsl_vector_get (x, 0); + double lambda = gsl_vector_get (x, 1); + double b = gsl_vector_get (x, 2); + + size_t i; + + for (i = 0; i < n; i++) + { + /* Model Yi = A * exp(-lambda * i) + b */ + double t = i; + double Yi = A * exp (-lambda * t) + b; + gsl_vector_set (f, i, (Yi - y[i])/sigma[i]); + } + + return GSL_SUCCESS; + } + + int + expb_df (const gsl_vector * x, void *data, + gsl_matrix * J) + { + size_t n = ((struct data *)data)->n; + double *sigma = ((struct data *) data)->sigma; + + double A = gsl_vector_get (x, 0); + double lambda = gsl_vector_get (x, 1); + + size_t i; + + for (i = 0; i < n; i++) + { + /* Jacobian matrix J(i,j) = dfi / dxj, */ + /* where fi = (Yi - yi)/sigma[i], */ + /* Yi = A * exp(-lambda * i) + b */ + /* and the xj are the parameters (A,lambda,b) */ + double t = i; + double s = sigma[i]; + double e = exp(-lambda * t); + gsl_matrix_set (J, i, 0, e/s); + gsl_matrix_set (J, i, 1, -t * A * e/s); + gsl_matrix_set (J, i, 2, 1/s); + } + return GSL_SUCCESS; + } + + int + expb_fdf (const gsl_vector * x, void *data, + gsl_vector * f, gsl_matrix * J) + { + expb_f (x, data, f); + expb_df (x, data, J); + + return GSL_SUCCESS; + } diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/examples/interpp.c gsl-1.8/doc/examples/interpp.c *** gsl-1.7/doc/examples/interpp.c Thu Jan 1 00:00:00 1970 --- gsl-1.8/doc/examples/interpp.c Sat Dec 24 17:34:49 2005 *************** *** 0 **** --- 1,40 ---- + #include + #include + #include + #include + #include + + int + main (void) + { + int N = 4; + double x[4] = {0.00, 0.10, 0.27, 0.30}; + double y[4] = {0.15, 0.70, -0.10, 0.15}; /* Note: first = last + for periodic data */ + + gsl_interp_accel *acc = gsl_interp_accel_alloc (); + const gsl_interp_type *t = gsl_interp_cspline_periodic; + gsl_spline *spline = gsl_spline_alloc (t, N); + + int i; double xi, yi; + + printf ("#m=0,S=5\n"); + for (i = 0; i < N; i++) + { + printf ("%g %g\n", x[i], y[i]); + } + + printf ("#m=1,S=0\n"); + gsl_spline_init (spline, x, y, N); + + for (i = 0; i <= 100; i++) + { + xi = (1 - i / 100.0) * x[0] + (i / 100.0) * x[N-1]; + yi = gsl_spline_eval (spline, xi, acc); + printf ("%g %g\n", xi, yi); + } + + gsl_spline_free (spline); + gsl_interp_accel_free (acc); + return 0; + } diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/examples/nlfit.c gsl-1.8/doc/examples/nlfit.c *** gsl-1.7/doc/examples/nlfit.c Thu Jan 1 00:00:00 1970 --- gsl-1.8/doc/examples/nlfit.c Fri Feb 17 15:54:11 2006 *************** *** 0 **** --- 1,115 ---- + #include + #include + #include + #include + #include + #include + #include + + #include "expfit.c" + + #define N 40 + + void print_state (size_t iter, gsl_multifit_fdfsolver * s); + + int + main (void) + { + const gsl_multifit_fdfsolver_type *T; + gsl_multifit_fdfsolver *s; + + int status; + size_t i, iter = 0; + + const size_t n = N; + const size_t p = 3; + + gsl_matrix *covar = gsl_matrix_alloc (p, p); + double y[N], sigma[N]; + struct data d = { n, y, sigma}; + gsl_multifit_function_fdf f; + double x_init[3] = { 1.0, 0.0, 0.0 }; + gsl_vector_view x = gsl_vector_view_array (x_init, p); + const gsl_rng_type * type; + gsl_rng * r; + + gsl_rng_env_setup(); + + type = gsl_rng_default; + r = gsl_rng_alloc (type); + + f.f = &expb_f; + f.df = &expb_df; + f.fdf = &expb_fdf; + f.n = n; + f.p = p; + f.params = &d; + + /* This is the data to be fitted */ + + for (i = 0; i < n; i++) + { + double t = i; + y[i] = 1.0 + 5 * exp (-0.1 * t) + + gsl_ran_gaussian (r, 0.1); + sigma[i] = 0.1; + printf ("data: %d %g %g\n", i, y[i], sigma[i]); + }; + + T = gsl_multifit_fdfsolver_lmsder; + s = gsl_multifit_fdfsolver_alloc (T, n, p); + gsl_multifit_fdfsolver_set (s, &f, &x.vector); + + print_state (iter, s); + + do + { + iter++; + status = gsl_multifit_fdfsolver_iterate (s); + + printf ("status = %s\n", gsl_strerror (status)); + + print_state (iter, s); + + if (status) + break; + + status = gsl_multifit_test_delta (s->dx, s->x, + 1e-4, 1e-4); + } + while (status == GSL_CONTINUE && iter < 500); + + gsl_multifit_covar (s->J, 0.0, covar); + + #define FIT(i) gsl_vector_get(s->x, i) + #define ERR(i) sqrt(gsl_matrix_get(covar,i,i)) + + { + double chi = gsl_blas_dnrm2(s->f); + double dof = n - p; + double c = GSL_MAX_DBL(1, chi / sqrt(dof)); + + printf("chisq/dof = %g\n", pow(chi, 2.0) / dof); + + printf ("A = %.5f +/- %.5f\n", FIT(0), c*ERR(0)); + printf ("lambda = %.5f +/- %.5f\n", FIT(1), c*ERR(1)); + printf ("b = %.5f +/- %.5f\n", FIT(2), c*ERR(2)); + } + + printf ("status = %s\n", gsl_strerror (status)); + + gsl_multifit_fdfsolver_free (s); + return 0; + } + + void + print_state (size_t iter, gsl_multifit_fdfsolver * s) + { + printf ("iter: %3u x = % 15.8f % 15.8f % 15.8f " + "|f(x)| = %g\n", + iter, + gsl_vector_get (s->x, 0), + gsl_vector_get (s->x, 1), + gsl_vector_get (s->x, 2), + gsl_blas_dnrm2 (s->f)); + } diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/fft.texi gsl-1.8/doc/fft.texi *** gsl-1.7/doc/fft.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/fft.texi Thu Mar 16 18:00:21 2006 *************** *** 79,84 **** --- 79,85 ---- @example x_j = \sum_@{k=0@}^@{N-1@} z_k \exp(-2\pi i j k / N) @end example + @end ifinfo @noindent and the definition of the @dfn{inverse fourier transform}, *************** *** 96,101 **** --- 97,103 ---- @example z_j = @{1 \over N@} \sum_@{k=0@}^@{N-1@} x_k \exp(2\pi i j k / N). @end example + @end ifinfo @noindent The factor of @math{1/N} makes this a true inverse. For example, a call *************** *** 125,130 **** --- 127,133 ---- @example z^@{backwards@}_j = \sum_@{k=0@}^@{N-1@} x_k \exp(2\pi i j k / N). @end example + @end ifinfo @noindent When the overall scale of the result is unimportant it is often *************** *** 145,150 **** --- 148,154 ---- double x[3*2]; gsl_complex_packed_array data = x; @end example + @noindent can be used to hold an array of three complex numbers, @code{z[3]}, in the following way, *************** *** 157,162 **** --- 161,167 ---- data[4] = Re(z[2]) data[5] = Im(z[2]) @end example + @noindent The array indices for the data have the same ordering as those in the definition of the DFT---i.e. there are no index transformations *************** *** 205,210 **** --- 210,216 ---- N-2 z(t = N-2) x(f = -2/(N Delta)) N-1 z(t = N-1) x(f = -1/(N Delta)) @end example + @noindent When @math{N} is even the location @math{N/2} contains the most positive and negative frequencies (@math{+1/(2 \Delta)}, @math{-1/(2 \Delta)}) *************** *** 271,276 **** --- 277,283 ---- @example @verbatiminclude examples/fft.c @end example + @noindent Note that we have assumed that the program is using the default error handler (which calls @code{abort} for any errors). If you are not using *************** *** 385,390 **** --- 392,398 ---- @var{wavetable}. The wavetable can be freed if no further FFTs of the same length will be needed. @end deftypefun + @noindent These functions operate on a @code{gsl_fft_complex_wavetable} structure which contains internal parameters for the FFT. It is not necessary to *************** *** 422,427 **** --- 430,436 ---- factors for each pass. @end table @end deftp + @noindent The mixed radix algorithms require additional working space to hold the intermediate steps of the transform. *************** *** 491,496 **** --- 500,506 ---- @example @verbatiminclude examples/fftmr.c @end example + @noindent Note that we have assumed that the program is using the default @code{gsl} error handler (which calls @code{abort} for any errors). If *************** *** 516,521 **** --- 526,532 ---- @example z_k = z_@{N-k@}^* @end example + @end ifinfo @noindent A sequence with this symmetry is called @dfn{conjugate-complex} or *************** *** 532,546 **** @tex \beforedisplay $$ ! c_k = \sum_{j=0}^{N-1} x_k \exp(-2 \pi i j k /N) $$ \afterdisplay @end tex @ifinfo @example ! c_k = \sum_@{j=0@}^@{N-1@} x_k \exp(-2 \pi i j k /N) @end example @end ifinfo @noindent Functions in @code{gsl_fft_halfcomplex} compute inverse or backwards --- 543,558 ---- @tex \beforedisplay $$ ! c_k = \sum_{j=0}^{N-1} x_j \exp(-2 \pi i j k /N) $$ \afterdisplay @end tex @ifinfo @example ! c_k = \sum_@{j=0@}^@{N-1@} x_j \exp(-2 \pi i j k /N) @end example + @end ifinfo @noindent Functions in @code{gsl_fft_halfcomplex} compute inverse or backwards *************** *** 558,563 **** --- 570,576 ---- @example x_j = @{1 \over N@} \sum_@{k=0@}^@{N-1@} c_k \exp(2 \pi i j k /N) @end example + @end ifinfo @noindent The symmetry of the half-complex sequence implies that only half of the *************** *** 618,624 **** complex[k].imag = data[N-k] ............... ................ complex[N/2].real = data[N/2] ! complex[N/2].real = 0 ............... ................ complex[k'].real = data[k] k' = N - k complex[k'].imag = -data[N-k] --- 631,637 ---- complex[k].imag = data[N-k] ............... ................ complex[N/2].real = data[N/2] ! complex[N/2].imag = 0 ............... ................ complex[k'].real = data[k] k' = N - k complex[k'].imag = -data[N-k] *************** *** 691,696 **** --- 704,710 ---- complex[4].real = halfcomplex[1] complex[4].imag = -halfcomplex[2] @end example + @noindent The upper elements of the @var{complex} array, @code{complex[3]} and @code{complex[4]} are filled in using the symmetry condition. The *************** *** 714,719 **** --- 728,734 ---- complex[5].real = halfcomplex[1] complex[5].imag = -halfcomplex[2] @end example + @noindent The upper elements of the @var{complex} array, @code{complex[4]} and @code{complex[5]} are filled in using the symmetry condition. Both *************** *** 748,753 **** --- 763,769 ---- @var{wavetable}. The wavetable can be freed if no further FFTs of the same length will be needed. @end deftypefun + @noindent The mixed radix algorithms require additional working space to hold the intermediate steps of the transform, *************** *** 763,768 **** --- 779,785 ---- @var{workspace}. The workspace can be freed if no further FFTs of the same length will be needed. @end deftypefun + @noindent The following functions compute the transforms of real and half-complex data, *************** *** 879,884 **** --- 896,902 ---- Fast fourier transforms: A tutorial review and a state of the art. @cite{Signal Processing}, 19:259--299, 1990. @end itemize + @noindent To find out about the algorithms used in the GSL routines you may want to consult the document @cite{GSL FFT Algorithms} (it is included *************** *** 903,908 **** --- 921,927 ---- @cite{DFT/FFT and Convolution Algorithms}. Wiley, 1984. @end itemize + @noindent Both these introductory books cover the radix-2 FFT in some detail. The mixed-radix algorithm at the heart of the @sc{fftpack} routines is *************** *** 914,919 **** --- 933,939 ---- Self-sorting mixed-radix fast fourier transforms. @cite{Journal of Computational Physics}, 52(1):1--23, 1983. @end itemize + @noindent The derivation of FFTs for real-valued data is explained in the following two articles, *************** *** 954,959 **** --- 974,980 ---- @comment @end itemize @comment @noindent @comment The notes are available from @url{http://www-dsp.rice.edu/res/fft/fftnote.asc}. + @noindent For large-scale FFT work we recommend the use of the dedicated FFTW library by Frigo and Johnson. The FFTW library is self-optimizing---it *************** *** 964,969 **** --- 985,991 ---- @item FFTW Website, @uref{http://www.fftw.org/} @end itemize + @noindent The source code for @sc{fftpack} is available from Netlib, diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/fitting.texi gsl-1.8/doc/fitting.texi *** gsl-1.7/doc/fitting.texi Wed Jul 27 15:40:00 2005 --- gsl-1.8/doc/fitting.texi Thu Mar 16 18:00:21 2006 *************** *** 2,18 **** @cindex least squares fit @cindex regression, least squares @cindex weighted linear fits This chapter describes routines for performing least squares fits to ! experimental data using linear combinations of functions. The data may ! be weighted or unweighted. For weighted data the functions compute the ! best fit parameters and their associated covariance matrix. For ! unweighted data the covariance matrix is estimated from the scatter of ! the points, giving a variance-covariance matrix. The functions are ! divided into separate versions for simple one- or two-parameter ! regression and multiple-parameter fits. The functions are declared in ! the header file @file{gsl_fit.h}. @menu * Linear regression:: * Linear fitting without a constant term:: * Multi-parameter fitting:: --- 2,22 ---- @cindex least squares fit @cindex regression, least squares @cindex weighted linear fits + @cindex unweighted linear fits This chapter describes routines for performing least squares fits to ! experimental data using linear combinations of functions. The data ! may be weighted or unweighted, i.e. with known or unknown errors. For ! weighted data the functions compute the best fit parameters and their ! associated covariance matrix. For unweighted data the covariance ! matrix is estimated from the scatter of the points, giving a ! variance-covariance matrix. ! ! The functions are divided into separate versions for simple one- or ! two-parameter regression and multiple-parameter fits. The functions ! are declared in the header file @file{gsl_fit.h}. @menu + * Fitting Overview:: * Linear regression:: * Linear fitting without a constant term:: * Multi-parameter fitting:: *************** *** 20,79 **** * Fitting References and Further Reading:: @end menu ! @node Linear regression ! @section Linear regression ! @cindex linear regression ! The functions described in this section can be used to perform ! least-squares fits to a straight line model, @math{Y = c_0 + c_1 X}. ! For weighted data the best-fit is found by minimizing the weighted sum of ! squared residuals, @math{\chi^2}, @tex \beforedisplay $$ ! \chi^2 = \sum_i w_i (y_i - (c_0 + c_1 x_i))^2 $$ \afterdisplay @end tex @ifinfo @example ! \chi^2 = \sum_i w_i (y_i - (c_0 + c_1 x_i))^2 @end example @end ifinfo @noindent ! for the parameters @math{c_0}, @math{c_1}. For unweighted data the ! sum is computed with @math{w_i = 1}. @cindex covariance matrix, from linear regression @deftypefun int gsl_fit_linear (const double * @var{x}, const size_t @var{xstride}, const double * @var{y}, const size_t @var{ystride}, size_t @var{n}, double * @var{c0}, double * @var{c1}, double * @var{cov00}, double * @var{cov01}, double * @var{cov11}, double * @var{sumsq}) This function computes the best-fit linear regression coefficients ! (@var{c0},@var{c1}) of the model @math{Y = c_0 + c_1 X} for the datasets (@var{x}, @var{y}), two vectors of length @var{n} with strides ! @var{xstride} and @var{ystride}. The variance-covariance matrix for the parameters (@var{c0}, @var{c1}) is estimated from the scatter of the points around the best-fit line and returned via the parameters ! (@var{cov00}, @var{cov01}, @var{cov11}). The sum of squares of the ! residuals from the best-fit line is returned in @var{sumsq}. @end deftypefun @deftypefun int gsl_fit_wlinear (const double * @var{x}, const size_t @var{xstride}, const double * @var{w}, const size_t @var{wstride}, const double * @var{y}, const size_t @var{ystride}, size_t @var{n}, double * @var{c0}, double * @var{c1}, double * @var{cov00}, double * @var{cov01}, double * @var{cov11}, double * @var{chisq}) This function computes the best-fit linear regression coefficients (@var{c0},@var{c1}) of the model @math{Y = c_0 + c_1 X} for the weighted ! datasets (@var{x}, @var{y}), two vectors of length @var{n} with strides @var{xstride} and @var{ystride}. The vector @var{w}, of length @var{n} and stride @var{wstride}, specifies the weight of each datapoint. The weight is the reciprocal of the variance for each datapoint in @var{y}. The covariance matrix for the parameters (@var{c0}, @var{c1}) is ! estimated from weighted data and returned via the parameters ! (@var{cov00}, @var{cov01}, @var{cov11}). The weighted sum of squares of ! the residuals from the best-fit line, @math{\chi^2}, is returned in @var{chisq}. @end deftypefun @deftypefun int gsl_fit_linear_est (double @var{x}, double @var{c0}, double @var{c1}, double @var{c00}, double @var{c01}, double @var{c11}, double * @var{y}, double * @var{y_err}) This function uses the best-fit linear regression coefficients ! @var{c0},@var{c1} and their estimated covariance @var{cov00},@var{cov01},@var{cov11} to compute the fitted function @var{y} and its standard deviation @var{y_err} for the model @math{Y = c_0 + c_1 X} at the point @var{x}. --- 24,154 ---- * Fitting References and Further Reading:: @end menu ! @node Fitting Overview ! @section Overview ! ! Least-squares fits are found by minimizing @math{\chi^2} ! (chi-squared), the weighted sum of squared residuals over @math{n} ! experimental datapoints @math{(x_i, y_i)} for the model @math{Y(c,x)}, @tex \beforedisplay $$ ! \chi^2 = \sum_i w_i (y_i - Y(c, x_i))^2 $$ \afterdisplay @end tex @ifinfo @example ! \chi^2 = \sum_i w_i (y_i - Y(c, x_i))^2 @end example + @end ifinfo @noindent ! The @math{p} parameters of the model are @c{$c = \{c_0, c_1, \dots\}$} ! @math{c = @{c_0, c_1, @dots{}@}}. The ! weight factors @math{w_i} are given by @math{w_i = 1/\sigma_i^2}, ! where @math{\sigma_i} is the experimental error on the data-point ! @math{y_i}. The errors are assumed to be ! gaussian and uncorrelated. ! For unweighted data the chi-squared sum is computed without any weight factors. ! ! The fitting routines return the best-fit parameters @math{c} and their ! @math{p \times p} covariance matrix. The covariance matrix measures the ! statistical errors on the best-fit parameters resulting from the ! errors on the data @math{\sigma_i}, and is defined ! @cindex covariance matrix, linear fits ! as @c{$C_{ab} = \langle \delta c_a \delta c_b \rangle$} ! @math{C_@{ab@} = <\delta c_a \delta c_b>} where @math{\langle \, \rangle} denotes an ! average over the gaussian error distributions of the underlying datapoints. ! ! The covariance matrix is calculated by error propagation from the data ! errors @math{\sigma_i}. The change in a fitted parameter @math{\delta ! c_a} caused by a small change in the data @math{\delta y_i} is given ! by ! @tex ! \beforedisplay ! $$ ! \delta c_a = \sum_i {\partial c_a \over \partial y_i} \delta y_i ! $$ ! \afterdisplay ! @end tex ! ! @noindent ! allowing the covariance matrix to be written in terms of the errors on the data, ! @tex ! \beforedisplay ! $$ ! C_{ab} = \sum_{i,j} {\partial c_a \over \partial y_i} ! {\partial c_b \over \partial y_j} \langle \delta y_i \delta y_j \rangle ! $$ ! \afterdisplay ! @end tex ! ! @noindent ! For uncorrelated data the fluctuations of the underlying datapoints satisfy ! @c{$\langle \delta y_i \delta y_j \rangle = \sigma_i^2 \delta_{ij}$} ! @math{<\delta y_i \delta y_j> = \sigma_i^2 \delta_@{ij@}}, giving a ! corresponding parameter covariance matrix of ! @tex ! \beforedisplay ! $$ ! C_{ab} = \sum_{i} {1 \over w_i} {\partial c_a \over \partial y_i} {\partial c_b \over \partial y_i} ! $$ ! \afterdisplay ! @end tex ! ! @noindent ! When computing the covariance matrix for unweighted data, i.e. data with unknown errors, ! the weight factors @math{w_i} in this sum are replaced by the single estimate @math{w = ! 1/\sigma^2}, where @math{\sigma^2} is the computed variance of the ! residuals about the best-fit model, @math{\sigma^2 = \sum (y_i - Y(c,x_i))^2 / (n-p)}. ! This is referred to as the @dfn{variance-covariance matrix}. ! @cindex variance-covariance matrix, linear fits ! ! The standard deviations of the best-fit parameters are given by the ! square root of the corresponding diagonal elements of ! the covariance matrix, @c{$\sigma_{c_a} = \sqrt{C_{aa}}$} ! @math{\sigma_@{c_a@} = \sqrt@{C_@{aa@}@}}. ! ! @node Linear regression ! @section Linear regression ! @cindex linear regression ! The functions described in this section can be used to perform ! least-squares fits to a straight line model, @math{Y(c,x) = c_0 + c_1 x}. @cindex covariance matrix, from linear regression @deftypefun int gsl_fit_linear (const double * @var{x}, const size_t @var{xstride}, const double * @var{y}, const size_t @var{ystride}, size_t @var{n}, double * @var{c0}, double * @var{c1}, double * @var{cov00}, double * @var{cov01}, double * @var{cov11}, double * @var{sumsq}) This function computes the best-fit linear regression coefficients ! (@var{c0},@var{c1}) of the model @math{Y = c_0 + c_1 X} for the dataset (@var{x}, @var{y}), two vectors of length @var{n} with strides ! @var{xstride} and @var{ystride}. The errors on @var{y} are assumed unknown so ! the variance-covariance matrix for the parameters (@var{c0}, @var{c1}) is estimated from the scatter of the points around the best-fit line and returned via the parameters ! (@var{cov00}, @var{cov01}, @var{cov11}). ! The sum of squares of the residuals from the best-fit line is returned ! in @var{sumsq}. @end deftypefun @deftypefun int gsl_fit_wlinear (const double * @var{x}, const size_t @var{xstride}, const double * @var{w}, const size_t @var{wstride}, const double * @var{y}, const size_t @var{ystride}, size_t @var{n}, double * @var{c0}, double * @var{c1}, double * @var{cov00}, double * @var{cov01}, double * @var{cov11}, double * @var{chisq}) This function computes the best-fit linear regression coefficients (@var{c0},@var{c1}) of the model @math{Y = c_0 + c_1 X} for the weighted ! dataset (@var{x}, @var{y}), two vectors of length @var{n} with strides @var{xstride} and @var{ystride}. The vector @var{w}, of length @var{n} and stride @var{wstride}, specifies the weight of each datapoint. The weight is the reciprocal of the variance for each datapoint in @var{y}. The covariance matrix for the parameters (@var{c0}, @var{c1}) is ! computed using the weights and returned via the parameters ! (@var{cov00}, @var{cov01}, @var{cov11}). The weighted sum of squares ! of the residuals from the best-fit line, @math{\chi^2}, is returned in @var{chisq}. @end deftypefun @deftypefun int gsl_fit_linear_est (double @var{x}, double @var{c0}, double @var{c1}, double @var{c00}, double @var{c01}, double @var{c11}, double * @var{y}, double * @var{y_err}) This function uses the best-fit linear regression coefficients ! @var{c0},@var{c1} and their covariance @var{cov00},@var{cov01},@var{cov11} to compute the fitted function @var{y} and its standard deviation @var{y_err} for the model @math{Y = c_0 + c_1 X} at the point @var{x}. *************** *** 84,113 **** The functions described in this section can be used to perform least-squares fits to a straight line model without a constant term, ! @math{Y = c_1 X}. For weighted data the best-fit is found by minimizing ! the weighted sum of squared residuals, @math{\chi^2}, ! @tex ! \beforedisplay ! $$ ! \chi^2 = \sum_i w_i (y_i - c_1 x_i)^2 ! $$ ! \afterdisplay ! @end tex ! @ifinfo ! ! @example ! \chi^2 = \sum_i w_i (y_i - c_1 x_i)^2 ! @end example ! @end ifinfo ! @noindent ! for the parameter @math{c_1}. For unweighted data the sum is ! computed with @math{w_i = 1}. @deftypefun int gsl_fit_mul (const double * @var{x}, const size_t @var{xstride}, const double * @var{y}, const size_t @var{ystride}, size_t @var{n}, double * @var{c1}, double * @var{cov11}, double * @var{sumsq}) This function computes the best-fit linear regression coefficient @var{c1} of the model @math{Y = c_1 X} for the datasets (@var{x}, @var{y}), two vectors of length @var{n} with strides @var{xstride} and ! @var{ystride}. The variance of the parameter @var{c1} is estimated from the scatter of the points around the best-fit line and returned via the parameter @var{cov11}. The sum of squares of the residuals from the best-fit line is returned in @var{sumsq}. --- 159,172 ---- The functions described in this section can be used to perform least-squares fits to a straight line model without a constant term, ! @math{Y = c_1 X}. @deftypefun int gsl_fit_mul (const double * @var{x}, const size_t @var{xstride}, const double * @var{y}, const size_t @var{ystride}, size_t @var{n}, double * @var{c1}, double * @var{cov11}, double * @var{sumsq}) This function computes the best-fit linear regression coefficient @var{c1} of the model @math{Y = c_1 X} for the datasets (@var{x}, @var{y}), two vectors of length @var{n} with strides @var{xstride} and ! @var{ystride}. The errors on @var{y} are assumed unknown so the ! variance of the parameter @var{c1} is estimated from the scatter of the points around the best-fit line and returned via the parameter @var{cov11}. The sum of squares of the residuals from the best-fit line is returned in @var{sumsq}. *************** *** 121,135 **** and stride @var{wstride}, specifies the weight of each datapoint. The weight is the reciprocal of the variance for each datapoint in @var{y}. ! The variance of the parameter @var{c1} is estimated from the weighted ! data and returned via the parameter @var{cov11}. The weighted sum of squares of the residuals from the best-fit line, @math{\chi^2}, is returned in @var{chisq}. @end deftypefun @deftypefun int gsl_fit_mul_est (double @var{x}, double @var{c1}, double @var{c11}, double * @var{y}, double * @var{y_err}) This function uses the best-fit linear regression coefficient @var{c1} ! and its estimated covariance @var{cov11} to compute the fitted function @var{y} and its standard deviation @var{y_err} for the model @math{Y = c_1 X} at the point @var{x}. @end deftypefun --- 180,194 ---- and stride @var{wstride}, specifies the weight of each datapoint. The weight is the reciprocal of the variance for each datapoint in @var{y}. ! The variance of the parameter @var{c1} is computed using the weights ! and returned via the parameter @var{cov11}. The weighted sum of squares of the residuals from the best-fit line, @math{\chi^2}, is returned in @var{chisq}. @end deftypefun @deftypefun int gsl_fit_mul_est (double @var{x}, double @var{c1}, double @var{c11}, double * @var{y}, double * @var{y_err}) This function uses the best-fit linear regression coefficient @var{c1} ! and its covariance @var{cov11} to compute the fitted function @var{y} and its standard deviation @var{y_err} for the model @math{Y = c_1 X} at the point @var{x}. @end deftypefun *************** *** 143,168 **** @math{n} observations, @math{X} is an @math{n} by @math{p} matrix of predictor variables, and the elements of the vector @math{c} are the @math{p} unknown best-fit parameters which are to be estimated. - The best-fit is found by minimizing the weighted sums of squared - residuals, @math{\chi^2}, - @tex - \beforedisplay - $$ - \chi^2 = (y - X c)^T W (y - X c) - $$ - \afterdisplay - @end tex - @ifinfo - - @example - \chi^2 = (y - X c)^T W (y - X c) - @end example - @end ifinfo - @noindent - with respect to the parameters @math{c}. The weights are specified by - the diagonal elements of the @math{n} by @math{n} matrix @math{W}. For - unweighted data @math{W} is replaced by the identity matrix. - This formulation can be used for fits to any number of functions and/or variables by preparing the @math{n}-by-@math{p} matrix @math{X} appropriately. For example, to fit to a @math{p}-th order polynomial in --- 202,207 ---- *************** *** 179,184 **** --- 218,224 ---- @example X_@{ij@} = x_i^j @end example + @end ifinfo @noindent where the index @math{i} runs over the observations and the index *************** *** 198,203 **** --- 238,244 ---- @example X_@{ij@} = sin(\omega_j x_i) @end example + @end ifinfo @noindent To fit to @math{p} independent variables @math{x_1}, @math{x_2}, @dots{}, *************** *** 214,219 **** --- 255,261 ---- @example X_@{ij@} = x_j(i) @end example + @end ifinfo @noindent where @math{x_j(i)} is the @math{i}-th value of the predictor variable *************** *** 252,258 **** In the second form of the function the components are discarded if the ratio of singular values @math{s_i/s_0} falls below the user-specified tolerance @var{tol}, and the effective rank is returned in @var{rank}. - @end deftypefun @deftypefun int gsl_multifit_wlinear (const gsl_matrix * @var{X}, const gsl_vector * @var{w}, const gsl_vector * @var{y}, gsl_vector * @var{c}, gsl_matrix * @var{cov}, double * @var{chisq}, gsl_multifit_linear_workspace * @var{work}) --- 294,299 ---- *************** *** 261,267 **** This function computes the best-fit parameters @var{c} of the weighted model @math{y = X c} for the observations @var{y} with weights @var{w} and the matrix of predictor variables @var{X}. The covariance matrix of ! the model parameters @var{cov} is estimated from the weighted data. The weighted sum of squares of the residuals from the best-fit, @math{\chi^2}, is returned in @var{chisq}. --- 302,308 ---- This function computes the best-fit parameters @var{c} of the weighted model @math{y = X c} for the observations @var{y} with weights @var{w} and the matrix of predictor variables @var{X}. The covariance matrix of ! the model parameters @var{cov} is computed with the given weights. The weighted sum of squares of the residuals from the best-fit, @math{\chi^2}, is returned in @var{chisq}. *************** *** 274,289 **** rank is returned in @var{rank}. @end deftypefun @node Fitting Examples @section Examples The following program computes a least squares straight-line fit to a ! simple (fictitious) dataset, and outputs the best-fit line and its associated one standard-deviation error bars. @example @verbatiminclude examples/fitting.c @end example @noindent The following commands extract the data from the output of the program and display it using the @sc{gnu} plotutils @code{graph} utility, --- 315,339 ---- rank is returned in @var{rank}. @end deftypefun + @deftypefun int gsl_multifit_linear_est (const gsl_vector * @var{x}, const gsl_vector * @var{c}, const gsl_matrix * @var{cov}, double * @var{y}, double * @var{y_err}) + This function uses the best-fit multilinear regression coefficients + @var{c} and their covariance matrix + @var{cov} to compute the fitted function value + @var{y} and its standard deviation @var{y_err} for the model @math{y = x.c} + at the point @var{x}. + @end deftypefun + @node Fitting Examples @section Examples The following program computes a least squares straight-line fit to a ! simple dataset, and outputs the best-fit line and its associated one standard-deviation error bars. @example @verbatiminclude examples/fitting.c @end example + @noindent The following commands extract the data from the output of the program and display it using the @sc{gnu} plotutils @code{graph} utility, *************** *** 332,337 **** --- 382,388 ---- 1 , x_2 , x_2^2 ; ... , ... , ... ] @end example + @end ifinfo @noindent where the column of ones corresponds to the constant term @math{c_0}. *************** *** 345,350 **** --- 396,402 ---- @example @verbatiminclude examples/fitting2.c @end example + @noindent A suitable set of data for fitting can be generated using the following program. It outputs a set of points with gaussian errors from the curve *************** *** 353,358 **** --- 405,411 ---- @example @verbatiminclude examples/fitting3.c @end example + @noindent The data can be prepared by running the resulting executable program, *************** *** 367,372 **** --- 420,426 ---- 0.6 1.92475 0.182212 .... @end example + @noindent To fit the data use the previous program, with the number of data points given as the first argument. In this case there are 19 data points. *************** *** 383,388 **** --- 437,443 ---- +1.94389e-02, -8.48761e-02, +5.60243e-02 ] # chisq = 23.0987 @end example + @noindent The parameters of the quadratic fit match the coefficients of the expansion of @math{e^x}, taking into account the errors on the *************** *** 410,415 **** --- 465,471 ---- R.M. Barnett et al., Physical Review D54, 1 (1996) @uref{http://pdg.lbl.gov/} @end itemize + @noindent The Review of Particle Physics is available online at the website given above. diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/gsl-design.texi gsl-1.8/doc/gsl-design.texi *** gsl-1.7/doc/gsl-design.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/gsl-design.texi Thu Mar 30 19:03:16 2006 *************** *** 340,345 **** --- 340,346 ---- * Memory allocation and ownership:: * Memory layout:: * Linear Algebra Levels:: + * Error estimates:: * Exceptions and Error handling:: * Persistence:: * Using Return Values:: *************** *** 545,550 **** --- 546,552 ---- Kiem-Phong Vo, ``The Discipline and Method Architecture for Reusable Libraries'', Software - Practice & Experience, v.30, pp.107-128, 2000. @end itemize + @noindent It is available from @uref{http://www.research.att.com/sw/tools/sfio/dm-spe.ps} or the earlier *************** *** 578,583 **** --- 580,586 ---- @example indent -gnu -nut *.c *.h @end example + @noindent The @code{-nut} option converts tabs into spaces. *************** *** 620,625 **** --- 623,629 ---- @item SIAM Journal of Scientific Computing @end itemize @end enumerate + @noindent Keep in mind that GSL is not a research project. Making a good implementation is difficult enough, without also needing to invent new *************** *** 661,673 **** (or GNU) software, and some have been made with proprietary programs. These should be replaced with output from GNU plotutils. ! When citing references be sure to use the standard, definitive and best ! reference books in the field, rather than lesser known text-books or ! introductory books which happen to be available (e.g. from undergraduate ! studies). For example, references concerning algorithms should be to ! Knuth, references concerning statistics should be to Kendall & Stuart, ! references concerning special functions should be to Abramowitz & Stegun ! (Handbook of Mathematical Functions AMS-55), etc. The standard references have a better chance of being available in an accessible library for the user. If they are not available and the user --- 665,680 ---- (or GNU) software, and some have been made with proprietary programs. These should be replaced with output from GNU plotutils. ! When citing references be sure to use the standard, definitive and ! best reference books in the field, rather than lesser known text-books ! or introductory books which happen to be available (e.g. from ! undergraduate studies). For example, references concerning algorithms ! should be to Knuth, references concerning statistics should be to ! Kendall & Stuart, references concerning special functions should be to ! Abramowitz & Stegun (Handbook of Mathematical Functions AMS-55), etc. ! Whereever possible refer to Abramowitz & Stegun rather than other ! reference books because it is a public domain work, so it is ! inexpensive and freely redistributable. The standard references have a better chance of being available in an accessible library for the user. If they are not available and the user *************** *** 688,703 **** access to good libraries who have offered to help GSL developers get copies of papers. ! [JT section: written by James Theiler - And we furthermore promise to try as hard as possible to document - the software: this will ideally involve discussion of why you might want - to use it, what precisely it does, how precisely to invoke it, - how more-or-less it works, and where we learned about the algorithm, - and (unless we wrote it from scratch) where we got the code. - We do not plan to write this entire package from scratch, but to cannibalize - existing mathematical freeware, just as we expect our own software to - be cannibalized.] @node Namespace, Header files, Documentation, Design @section Namespace --- 695,765 ---- access to good libraries who have offered to help GSL developers get copies of papers. ! @c [JT section: written by James Theiler ! ! @c And we furthermore promise to try as hard as possible to document ! @c the software: this will ideally involve discussion of why you might want ! @c to use it, what precisely it does, how precisely to invoke it, ! @c how more-or-less it works, and where we learned about the algorithm, ! @c and (unless we wrote it from scratch) where we got the code. ! @c We do not plan to write this entire package from scratch, but to cannibalize ! @c existing mathematical freeware, just as we expect our own software to ! @c be cannibalized.] ! ! To write mathematics in the texinfo file you can use the @code{@@math} ! command with @emph{simple} TeX commands. These are automatically ! surrounded by @code{$...$} for math mode. For example, ! ! @example ! to calculate the coefficient @@math@{\alpha@} use the function... ! @end example ! ! @noindent ! will be correctly formatted in both online and TeX versions of the ! documentation. ! ! Note that you cannot use the special characters @{ and @} ! inside the @code{@@math} command because these conflict between TeX ! and Texinfo. This is a problem if you want to write something like ! @code{\sqrt@{x+y@}}. ! ! To work around it you can preceed the math command with a special ! macro @code{@@c} which contains the explicit TeX commands you want to ! use (no restrictions), and put an ASCII approximation into the ! @code{@@math} command (you can write @code{@@@{} and ! @code{@@@}} there for the left and right braces). The explicit TeX ! commands are used in the TeX ouput and the argument of @code{@@math} ! in the plain info output. ! ! Note that the @code{@@c@{@}} macro must go at the end of the ! preceeding line, because everything else after it is ignored---as far ! as texinfo is concerned it's actually a 'comment'. The comment ! command @@c has been modified to capture a TeX expression which is ! output by the next @@math command. For ordinary comments use the @@comment ! command. ! ! For example, ! ! @example ! this is a test @@c@{$\sqrt@{x+y@}$@} ! @@math@{\sqrt@@@{x+y@@@}@} ! @end example ! ! @noindent ! is equivalent to @code{this is a test $\sqrt@{x+y@}$} in plain TeX ! and @code{this is a test @@math@{\sqrt@@@{x+y@@@}@}} in Info. ! ! It looks nicer if some of the more cryptic TeX commands are given ! a C-style ascii version, e.g. ! ! @example ! for @@c@{$x \ge y$@} ! @@math@{x >= y@} ! @end example ! ! @noindent ! will be appropriately displayed in both TeX and Info. @node Namespace, Header files, Documentation, Design @section Namespace *************** *** 766,771 **** --- 828,834 ---- @example SUBROUTINE RESIZE (X, K, ND, K1) @end example + @noindent where X(K,D) represents a grid to be resized to X(K1,D) you can make this more readable by introducing a struct, *************** *** 783,788 **** --- 846,852 ---- ... @} @end smallexample + @noindent Similarly, if you have a frequently recurring code fragment within a single file you can define a static or static inline function for it. *************** *** 850,856 **** pointer-to-pointer arrays. The matrices are stored in row-major order -- i.e. the column index (second index) moves continuously through memory. ! @node Linear Algebra Levels, Exceptions and Error handling, Memory layout, Design @section Linear Algebra Levels Functions using linear algebra are divided into two levels: --- 914,920 ---- pointer-to-pointer arrays. The matrices are stored in row-major order -- i.e. the column index (second index) moves continuously through memory. ! @node Linear Algebra Levels, Error estimates, Memory layout, Design @section Linear Algebra Levels Functions using linear algebra are divided into two levels: *************** *** 883,889 **** Please use BLAS routines internally within the library whenever possible for efficiency. ! @node Exceptions and Error handling, Persistence, Linear Algebra Levels, Design @section Exceptions and Error handling The basic error handling procedure is the return code (see gsl_errno.h --- 947,963 ---- Please use BLAS routines internally within the library whenever possible for efficiency. ! @node Error estimates, Exceptions and Error handling, Linear Algebra Levels, Design ! @section Error estimates ! ! In the special functions error bounds are given as twice the expected ! ``gaussian'' error. i.e. 2-sigma, so the result is inside the error ! 98% of the time. People expect the true value to be within +/- the ! quoted error (this wouldn't be the case 32% of the time for 1 sigma). ! Obviously the errors are not gaussian but a factor of two works well ! in practice. ! ! @node Exceptions and Error handling, Persistence, Error estimates, Design @section Exceptions and Error handling The basic error handling procedure is the return code (see gsl_errno.h *************** *** 919,924 **** --- 993,999 ---- int gsl_foo_fscanf (FILE * stream, gsl_foo * v); int gsl_foo_fprintf (FILE * stream, const gsl_foo * v, const char *format); @end smallexample + @noindent Only dump out the blocks of memory, not any associated parameters such as lengths. The idea is for the user to build higher level input/output *************** *** 932,937 **** --- 1007,1013 ---- int gsl_block_fscanf (FILE * stream, gsl_block * b); int gsl_block_fprintf (FILE * stream, const gsl_block * b, const char *format); @end smallexample + @noindent or *************** *** 943,948 **** --- 1019,1025 ---- int gsl_block_raw_fprintf (FILE * stream, const double * b, size_t n, size_t str ide, const char *format); @end smallexample + @noindent to do the actual reading and writing. *************** *** 959,964 **** --- 1036,1042 ---- @example a = f(g(h(x,y))) @end example + @noindent use temporary variables to store the intermediate values, @example *************** *** 968,973 **** --- 1046,1052 ---- a = f(v); @} @end example + @noindent These can then be inspected more easily in the debugger, and breakpoints can be placed more precisely. The compiler will eliminate the temporary *************** *** 1035,1046 **** --- 1114,1127 ---- @example for (i = N - 1; i >= 0; i--) @{ ... @} /* DOESN'T WORK */ @end example + @noindent use something like @example for (i = N; i > 0 && i--;) @{ ... @} @end example + @noindent to avoid problems with wrap-around at @code{i=0}. *************** *** 1094,1099 **** --- 1175,1181 ---- f *= 2; @} @end example + @noindent is better written as, *************** *** 1174,1185 **** --- 1256,1269 ---- return 0.0; /* residual is zero within round-off error */ @} @end example + @noindent This should be rewritten as, @example return residual; @end example + @noindent in order to allow the user to determine whether the residual is significant or not. *************** *** 1244,1249 **** --- 1328,1334 ---- -Wstrict-prototypes -fshort-enums -fno-common -Wmissing-prototypes -Wnested-externs -Dinline= -g -O4" @end smallexample + @noindent Also use @code{checkergcc} to check for memory problems on the stack and the heap. It's the best memory checking tool. If checkergcc isn't diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/gsl-ref.texi gsl-1.8/doc/gsl-ref.texi *** gsl-1.7/doc/gsl-ref.texi Tue Sep 13 09:41:22 2005 --- gsl-1.8/doc/gsl-ref.texi Thu Mar 30 19:03:50 2006 *************** *** 5,12 **** @setfilename gsl-ref.info @settitle GNU Scientific Library -- Reference Manual @finalout - @ifset publish @set frontcontents @setchapternewpage odd @end ifset @c %**end of header --- 5,12 ---- @setfilename gsl-ref.info @settitle GNU Scientific Library -- Reference Manual @finalout @set frontcontents + @ifset publish @setchapternewpage odd @end ifset @c %**end of header *************** *** 122,130 **** @include version-ref.texi @set GSL @i{GNU Scientific Library} - @iftex @copying ! Copyright @copyright{} 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 The GSL Team. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or --- 122,129 ---- @include version-ref.texi @set GSL @i{GNU Scientific Library} @copying ! Copyright @copyright{} 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 The GSL Team. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or *************** *** 137,155 **** (a) The Back-Cover Text is: ``You have freedom to copy and modify this GNU Manual, like GNU software.'' - - The Texinfo source for this manual may be obtained from @* - @code{ftp://ftp.gnu.org/gnu/gsl/} - - @ifclear publish - Printed copies of this manual can be purchased from Network Theory Ltd - at@* @uref{http://www.network-theory.co.uk/gsl/manual/}. - - The money raised from sales of the manual helps support the - development of GSL. - @end ifclear @end copying - @end iftex @titlepage @title GNU Scientific Library --- 136,142 ---- *************** *** 200,205 **** --- 187,199 ---- @page @vskip 0pt plus 1filll @insertcopying + @ifclear publish + Printed copies of this manual can be purchased from Network Theory Ltd + at @uref{http://www.network-theory.co.uk/gsl/manual/}. + + The money raised from sales of the manual helps support the + development of GSL. + @end ifclear @end titlepage @ifset frontcontents *************** *** 218,232 **** More information about GSL can be found at the project homepage, @uref{http://www.gnu.org/software/gsl/}. - Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License. - Printed copies of this manual can be purchased from Network Theory Ltd ! at @uref{http://www.network-theory.co.uk/gsl/manual/}. ! ! The money raised from sales of the manual helps support the ! development of GSL. @end ifnottex @menu --- 212,223 ---- More information about GSL can be found at the project homepage, @uref{http://www.gnu.org/software/gsl/}. Printed copies of this manual can be purchased from Network Theory Ltd ! at @uref{http://www.network-theory.co.uk/gsl/manual/}. The money ! raised from sales of the manual helps support the development of GSL. + @insertcopying + @sp 1 @end ifnottex @menu diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/histogram.texi gsl-1.8/doc/histogram.texi *** gsl-1.7/doc/histogram.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/histogram.texi Fri Mar 31 17:44:53 2006 *************** *** 61,66 **** --- 61,67 ---- @end table @end deftp @comment + @noindent The range for @var{bin}[i] is given by @var{range}[i] to @var{range}[i+1]. For @math{n} bins there are @math{n+1} entries in the *************** *** 78,83 **** --- 79,85 ---- @display bin[i] corresponds to range[i] <= x < range[i+1] @end display + @end ifinfo @noindent Here is a diagram of the correspondence between ranges and bins on the *************** *** 90,95 **** --- 92,98 ---- r[0] r[1] r[2] r[3] r[4] r[5] @end smallexample + @noindent In this picture the values of the @var{range} array are denoted by @math{r}. On the left-hand side of each bin the square bracket *************** *** 192,197 **** --- 195,201 ---- gsl_histogram_set_ranges (h, range, 4); @end example + @noindent Note that the size of the @var{range} array should be defined to be one element bigger than the number of bins. The additional element is *************** *** 220,225 **** --- 224,230 ---- ...... bin[n-1] corresponds to xmin + (n-1)d <= x < xmax @end display + @end ifinfo @noindent where @math{d} is the bin spacing, @math{d = (xmax-xmin)/n}. *************** *** 460,465 **** --- 465,471 ---- .... range[n-1] range[n] bin[n-1] @end example + @noindent The values of the ranges are formatted using @var{range_format} and the value of the bins are formatted using @var{bin_format}. Each line *************** *** 502,507 **** --- 508,514 ---- @example p(x) = n_i/ (N w_i) @end example + @end ifinfo @noindent In this equation @math{n_i} is the number of events in the bin which *************** *** 541,546 **** --- 548,554 ---- @end table @end deftp @comment + @noindent The following functions allow you to create a @code{gsl_histogram_pdf} struct which represents this probability distribution and generate *************** *** 584,589 **** --- 592,598 ---- @example s = range[i] + delta * (range[i+1] - range[i]) @end example + @end ifinfo @noindent where @math{i} is the index which satisfies *************** *** 608,613 **** --- 617,623 ---- @example @verbatiminclude examples/histogram.c @end example + @noindent Here is an example of the program in use. We generate 10000 random samples from a Cauchy distribution with a width of 30 and histogram *************** *** 617,622 **** --- 627,633 ---- $ gsl-randist 0 10000 cauchy 30 | gsl-histogram -100 100 200 > histogram.dat @end example + @noindent A plot of the resulting histogram shows the familiar shape of the Cauchy distribution and the fluctuations caused by the finite sample *************** *** 670,675 **** --- 681,687 ---- @end table @end deftp @comment + @noindent The range for @code{bin(i,j)} is given by @code{xrange[i]} to @code{xrange[i+1]} in the x-direction and @code{yrange[j]} to *************** *** 691,696 **** --- 703,709 ---- bin(i,j) corresponds to xrange[i] <= x < xrange[i+1] and yrange[j] <= y < yrange[j+1] @end display + @end ifinfo @noindent Note that any samples which fall on the upper sides of the histogram are *************** *** 1030,1035 **** --- 1043,1049 ---- .... xrange[nx-1] xrange[nx] yrange[ny-1] yrange[ny] bin(nx-1,ny-1) @end smallexample + @noindent Each line contains the lower and upper limits of the bin and the contents of the bin. Since the upper limits of the each bin are the *************** *** 1069,1074 **** --- 1083,1089 ---- @example p(x,y) = n_@{ij@}/ (N A_@{ij@}) @end example + @end ifinfo @noindent In this equation *************** *** 1097,1102 **** --- 1112,1118 ---- @end table @end deftp @comment + @noindent The following functions allow you to create a @code{gsl_histogram2d_pdf} struct which represents a two dimensional probability distribution and *************** *** 1143,1155 **** @example @verbatiminclude examples/histogram2d.c @end example @noindent The following plot shows the distribution of the simulated events. Using a higher resolution grid we can see the original underlying histogram and also the statistical fluctuations caused by the events being uniformly distributed over the area of the original bins. - @iftex @sp 1 @center @image{histogram2d,3.4in} @end iftex --- 1159,1172 ---- @example @verbatiminclude examples/histogram2d.c @end example + @noindent + @iftex The following plot shows the distribution of the simulated events. Using a higher resolution grid we can see the original underlying histogram and also the statistical fluctuations caused by the events being uniformly distributed over the area of the original bins. @sp 1 @center @image{histogram2d,3.4in} @end iftex diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/ieee754.texi gsl-1.8/doc/ieee754.texi *** gsl-1.7/doc/ieee754.texi Sat May 21 13:30:36 2005 --- gsl-1.8/doc/ieee754.texi Thu Mar 16 18:00:21 2006 *************** *** 35,40 **** --- 35,41 ---- @example (-1)^s (1.fffff...) 2^E @end example + @end ifinfo @noindent @cindex normalized form, IEEE format *************** *** 71,76 **** --- 72,78 ---- @example (-1)^s (0.fffff...) 2^(E_min) @end example + @end ifinfo @noindent @cindex zero, IEEE format *************** *** 83,88 **** --- 85,91 ---- @math{2^(E_min - 1)} and infinities with the exponent of @c{$2^{E_{max}+1}$} @math{2^(E_max + 1)}. + @noindent @cindex single precision, IEEE format The format for single precision numbers uses 32 bits divided in the *************** *** 95,100 **** --- 98,104 ---- e = exponent, 8 bits (E_min=-126, E_max=127, bias=127) f = fraction, 23 bits @end smallexample + @noindent @cindex double precision, IEEE format The format for double precision numbers uses 64 bits divided in the *************** *** 107,112 **** --- 111,117 ---- e = exponent, 11 bits (E_min=-1022, E_max=1023, bias=1023) f = fraction, 52 bits @end smallexample + @noindent It is often useful to be able to investigate the behavior of a calculation at the bit-level and the library provides functions for *************** *** 152,157 **** --- 157,163 ---- These functions output a formatted version of the IEEE floating-point number pointed to by @var{x} to the stream @code{stdout}. @end deftypefun + @noindent The following program demonstrates the use of the functions by printing the single and double precision representations of the fraction *************** *** 161,166 **** --- 167,173 ---- @example @verbatiminclude examples/ieee.c @end example + @noindent The binary representation of @math{1/3} is @math{0.01010101... }. The output below shows that the IEEE format normalizes this fraction to give *************** *** 171,176 **** --- 178,184 ---- fd= 1.0101010101010101010101100000000000000000000000000000*2^-2 d= 1.0101010101010101010101010101010101010101010101010101*2^-2 @end smallexample + @noindent The output also shows that a single-precision number is promoted to double-precision by adding zeros in the binary representation. *************** *** 232,237 **** --- 240,246 ---- @display @code{GSL_IEEE_MODE} = "@var{keyword},@var{keyword},..." @end display + @noindent where @var{keyword} is one of the following mode-names, *************** *** 297,307 **** --- 306,318 ---- "mask-underflow,"\ "mask-denormalized" @end example + @noindent This choice ignores any errors relating to small numbers (either denormalized, or underflowing to zero) but traps overflows, division by zero and invalid operations. @end deftypefun + @noindent To demonstrate the effects of different rounding modes consider the following program which computes @math{e}, the base of natural *************** *** 325,330 **** --- 336,342 ---- @example @verbatiminclude examples/ieeeround.c @end example + @noindent Here are the results of running the program in @code{round-to-nearest} mode. This is the IEEE default so it isn't really necessary to specify *************** *** 338,343 **** --- 350,356 ---- i=18 sum=2.718281828459045535 error=4.44089e-16 i=19 sum=2.718281828459045535 error=4.44089e-16 @end example + @noindent After nineteen terms the sum converges to within @c{$4 \times 10^{-16}$} @math{4 \times 10^-16} of the correct value. *************** *** 350,355 **** --- 363,369 ---- .... i=19 sum=2.718281828459041094 error=-3.9968e-15 @end example + @noindent The result is about @c{$4 \times 10^{-15}$} *************** *** 378,383 **** --- 392,398 ---- .... i=12 sum=2.718281984329223633 error=1.5587e-07 @end example + @noindent with an error of @c{$O(10^{-7})$} *************** *** 395,400 **** --- 410,416 ---- @item ANSI/IEEE Std 754-1985, IEEE Standard for Binary Floating-Point Arithmetic. @end itemize + @noindent A more pedagogical introduction to the standard can be found in the following paper, *************** *** 411,416 **** --- 427,433 ---- Know About Floating-Point Arithmetic''. @cite{ACM Computing Surveys}, Vol.@: 24, No.@: 3 (September 1992), page 319. @end itemize + @noindent A detailed textbook on IEEE arithmetic and its practical use is *************** *** 421,426 **** --- 438,444 ---- Michael L. Overton, @cite{Numerical Computing with IEEE Floating Point Arithmetic}, SIAM Press, ISBN 0898715717. @end itemize + @noindent @comment to turn on math exception handling use __setfpucw, see diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/integration.texi gsl-1.8/doc/integration.texi *** gsl-1.7/doc/integration.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/integration.texi Thu Mar 16 18:00:21 2006 *************** *** 50,55 **** --- 50,56 ---- @example I = \int_a^b f(x) w(x) dx @end example + @end ifinfo @noindent where @math{w(x)} is a weight function (for general integrands @math{w(x)=1}). *************** *** 68,73 **** --- 69,75 ---- @example |RESULT - I| <= max(epsabs, epsrel |I|) @end example + @end ifinfo @noindent where *************** *** 89,94 **** --- 91,97 ---- @example |RESULT - I| <= ABSERR <= max(epsabs, epsrel |I|) @end example + @end ifinfo @noindent The routines will fail to converge if the error bounds are too *************** *** 114,119 **** --- 117,123 ---- @code{F} - Fourier integral @code{C} - Cauchy principal value @end display + @noindent The algorithms are built on pairs of quadrature rules, a higher order rule and a lower order rule. The higher order rule is used to compute *************** *** 121,126 **** --- 125,137 ---- difference between the results of the higher order rule and the lower order rule gives an estimate of the error in the approximation. + @menu + * Integrands without weight functions:: + * Integrands with weight functions:: + * Integrands with singular weight functions:: + @end menu + + @node Integrands without weight functions @subsection Integrands without weight functions @cindex Gauss-Kronrod quadrature The algorithms for general functions (without a weight function) are *************** *** 136,141 **** --- 147,153 ---- integral, and the difference between the two rules is used as an estimate of the error in the approximation. + @node Integrands with weight functions @subsection Integrands with weight functions @cindex Clenshaw-Curtis quadrature @cindex Modified Clenshaw-Curtis quadrature *************** *** 149,154 **** --- 161,167 ---- orders to improve the approximation and provide an estimate of the error. + @node Integrands with singular weight functions @subsection Integrands with singular weight functions The presence of singularities (or other behavior) in the integrand can *************** *** 224,229 **** --- 237,243 ---- GSL_INTEG_GAUSS51 (key = 5) GSL_INTEG_GAUSS61 (key = 6) @end example + @noindent corresponding to the 15, 21, 31, 41, 51 and 61 point Gauss-Kronrod rules. The higher-order rules give better accuracy for smooth functions, *************** *** 287,292 **** --- 301,307 ---- pts[3] = x_3 pts[4] = b @end example + @noindent with @var{npts} = 5. *************** *** 318,323 **** --- 333,339 ---- \int_@{-\infty@}^@{+\infty@} dx f(x) = \int_0^1 dt (f((1-t)/t) + f((-1+t)/t))/t^2. @end example + @end ifinfo @noindent It is then integrated using the QAGS algorithm. The normal 21-point *************** *** 345,350 **** --- 361,367 ---- \int_@{a@}^@{+\infty@} dx f(x) = \int_0^1 dt f(a + (1-t)/t)/t^2 @end example + @end ifinfo @noindent and then integrated using the QAGS algorithm. *************** *** 368,373 **** --- 385,391 ---- \int_@{+\infty@}^@{b@} dx f(x) = \int_0^1 dt f(b - (1-t)/t)/t^2 @end example + @end ifinfo @noindent and then integrated using the QAGS algorithm. *************** *** 398,403 **** --- 416,422 ---- @example I = \int_a^b dx f(x) / (x - c) @end example + @end ifinfo @noindent The adaptive bisection algorithm of QAG is used, with modifications to *************** *** 435,440 **** --- 454,460 ---- @example W(x) = (x-a)^alpha (b-x)^beta log^mu (x-a) log^nu (b-x) @end example + @end ifinfo @noindent where @math{\alpha > -1}, @math{\beta > -1}, and @math{\mu = 0, 1}, *************** *** 464,469 **** --- 484,490 ---- W(x) = (x-a)^alpha (b-x)^beta log(b-x) (mu = 0, nu = 1) W(x) = (x-a)^alpha (b-x)^beta log(x-a) log(b-x) (mu = 1, nu = 1) @end example + @end ifinfo @noindent The singular points @math{(a,b)} do not have to be specified until the *************** *** 505,510 **** --- 526,532 ---- @example I = \int_a^b dx f(x) (x-a)^alpha (b-x)^beta log^mu (x-a) log^nu (b-x). @end example + @end ifinfo @noindent The adaptive bisection algorithm of QAG is used. When a subinterval *************** *** 543,548 **** --- 565,571 ---- W(x) = sin(omega x) W(x) = cos(omega x) @end example + @end ifinfo @noindent The parameter @var{L} must be the length of the interval over which the *************** *** 554,559 **** --- 577,583 ---- GSL_INTEG_COSINE GSL_INTEG_SINE @end example + @noindent The @code{gsl_integration_qawo_table} is a table of the trigonometric coefficients required in the integration process. The parameter @var{n} *************** *** 601,606 **** --- 625,631 ---- I = \int_a^b dx f(x) sin(omega x) I = \int_a^b dx f(x) cos(omega x) @end example + @end ifinfo @noindent The results are extrapolated using the epsilon-algorithm to accelerate *************** *** 669,674 **** --- 694,700 ---- ... = ... C_k = [a + (k-1) c, a + k c] @end example + @end ifinfo @noindent where *************** *** 694,699 **** --- 720,726 ---- @example TOL_k = u_k abserr @end example + @end ifinfo @noindent where *************** *** 716,721 **** --- 743,749 ---- @example TOL_k = u_k max(abserr, max_@{i interp.dat + $ graph -T ps < interp.dat > interp.ps + @end example + + @iftex + @sp 1 + @center @image{interpp2,3.4in} + @end iftex + + @noindent + The result shows a periodic interpolation of the original points. The + slope of the fitted curve is the same at the beginning and end of the + data, and the second derivative is also. @node Interpolation References and Further Reading @section References and Further Reading Descriptions of the interpolation algorithms and further references can ! be found in the following books: @itemize @asis @item C.W. Ueberhuber, @cite{Numerical Computation (Volume 1), Chapter 9 ``Interpolation''}, Springer (1997), ISBN 3-540-62058-3. + + @item D.M. Young, R.T. Gregory + @cite{A Survey of Numerical Mathematics (Volume 1), Chapter 6.8}, + Dover (1988), ISBN 0-486-65691-8. @end itemize + @noindent diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/interpp2.eps gsl-1.8/doc/interpp2.eps *** gsl-1.7/doc/interpp2.eps Thu Jan 1 00:00:00 1970 --- gsl-1.8/doc/interpp2.eps Sat Dec 24 17:34:49 2005 *************** *** 0 **** --- 1,2004 ---- + %!PS-Adobe-3.0 EPSF-3.0 + %%Creator: GNU libplot drawing library 4.1 + %%Title: PostScript plot + %%CreationDate: Sat Dec 24 16:36:40 2005 + %%DocumentData: Clean7Bit + %%LanguageLevel: 1 + %%Pages: 1 + %%PageOrder: Ascend + %%Orientation: Portrait + %%BoundingBox: 92 197 497 580 + %%DocumentNeededResources: font Helvetica + %%DocumentSuppliedResources: procset GNU_libplot 1.0 0 + %%EndComments + + %%BeginDefaults + %%PageResources: font Helvetica + %%EndDefaults + + %%BeginProlog + %%EndProlog + + %%BeginSetup + %%IncludeResource: font Helvetica + /DrawDict 50 dict def + DrawDict begin + /ISOLatin1Encoding [ + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright + /parenleft/parenright/asterisk/plus/comma/minus/period/slash + /zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon + /less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N + /O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright + /asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m + /n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef + /.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve + /dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut + /ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar + /section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot + /hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior + /acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine + /guillemotright/onequarter/onehalf/threequarters/questiondown + /Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla + /Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex + /Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis + /multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute + /Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis + /aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave + /iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex + /otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis + /yacute/thorn/ydieresis + ] def + /reencodeISO { + dup dup findfont dup length dict begin + { 1 index /FID ne { def }{ pop pop } ifelse } forall + /Encoding ISOLatin1Encoding def + currentdict end definefont + } def + /Helvetica reencodeISO def + %%BeginResource procset GNU_libplot 1.0 0 + /none null def + /numGraphicParameters 17 def + /stringLimit 65535 def + /arrowHeight 8 def + /eoFillRule true def + + /Begin { save numGraphicParameters dict begin } def + /End { end restore } def + + /SetB { + dup type /nulltype eq { + pop + false /brushRightArrow idef + false /brushLeftArrow idef + true /brushNone idef + } { + /brushDashOffset idef + /brushDashArray idef + 0 ne /brushRightArrow idef + 0 ne /brushLeftArrow idef + /brushWidth idef + false /brushNone idef + } ifelse + } def + + /SetCFg { + /fgblue idef + /fggreen idef + /fgred idef + } def + + /SetCBg { + /bgblue idef + /bggreen idef + /bgred idef + } def + + /SetF { + /printSize idef + /printFont idef + } def + + /SetP { + dup type /nulltype eq { + pop true /patternNone idef + } { + /patternGrayLevel idef + patternGrayLevel -1 eq { + /patternString idef + } if + false /patternNone idef + } ifelse + } def + + /BSpl { + 0 begin + storexyn + newpath + n 1 gt { + 0 0 0 0 0 0 1 1 true subspline + n 2 gt { + 0 0 0 0 1 1 2 2 false subspline + 1 1 n 3 sub { + /i exch def + i 1 sub dup i dup i 1 add dup i 2 add dup false subspline + } for + n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline + } if + n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline + patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if + brushNone not { istroke } if + 0 0 1 1 leftarrow + n 2 sub dup 1 sub dup rightarrow + } if + end + } dup 0 4 dict put def + + /Circ { + newpath + 0 360 arc + closepath + patternNone not { ifill } if + brushNone not { istroke } if + } def + + /CBSpl { + 0 begin + dup 2 gt { + storexyn + newpath + n 1 sub dup 0 0 1 1 2 2 true subspline + 1 1 n 3 sub { + /i exch def + i 1 sub dup i dup i 1 add dup i 2 add dup false subspline + } for + n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline + n 2 sub dup n 1 sub dup 0 0 1 1 false subspline + patternNone not { ifill } if + brushNone not { istroke } if + } { + Poly + } ifelse + end + } dup 0 4 dict put def + + /Elli { + 0 begin + newpath + 4 2 roll + translate + scale + 0 0 1 0 360 arc + closepath + patternNone not { ifill } if + brushNone not { istroke } if + end + } dup 0 1 dict put def + + /Line { + 0 begin + 2 storexyn + newpath + x 0 get y 0 get moveto + x 1 get y 1 get lineto + brushNone not { istroke } if + 0 0 1 1 leftarrow + 0 0 1 1 rightarrow + end + } dup 0 4 dict put def + + /MLine { + 0 begin + storexyn + newpath + n 1 gt { + x 0 get y 0 get moveto + 1 1 n 1 sub { + /i exch def + x i get y i get lineto + } for + patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if + brushNone not { istroke } if + 0 0 1 1 leftarrow + n 2 sub dup n 1 sub dup rightarrow + } if + end + } dup 0 4 dict put def + + /Poly { + 3 1 roll + newpath + moveto + -1 add + { lineto } repeat + closepath + patternNone not { ifill } if + brushNone not { istroke } if + } def + + /Rect { + 0 begin + /t exch def + /r exch def + /b exch def + /l exch def + newpath + l b moveto + l t lineto + r t lineto + r b lineto + closepath + patternNone not { ifill } if + brushNone not { istroke } if + end + } dup 0 4 dict put def + + /Text { + ishow + } def + + /idef { + dup where { pop pop pop } { exch def } ifelse + } def + + /ifill { + 0 begin + gsave + patternGrayLevel -1 ne { + fgred bgred fgred sub patternGrayLevel mul add + fggreen bggreen fggreen sub patternGrayLevel mul add + fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor + eoFillRule { eofill } { fill } ifelse + } { + eoFillRule { eoclip } { clip } ifelse + originalCTM setmatrix + pathbbox /t exch def /r exch def /b exch def /l exch def + /w r l sub ceiling cvi def + /h t b sub ceiling cvi def + /imageByteWidth w 8 div ceiling cvi def + /imageHeight h def + bgred bggreen bgblue setrgbcolor + eoFillRule { eofill } { fill } ifelse + fgred fggreen fgblue setrgbcolor + w 0 gt h 0 gt and { + l b translate w h scale + w h true [w 0 0 h neg 0 h] { patternproc } imagemask + } if + } ifelse + grestore + end + } dup 0 8 dict put def + + /istroke { + gsave + brushDashOffset -1 eq { + [] 0 setdash + 1 setgray + } { + brushDashArray brushDashOffset setdash + fgred fggreen fgblue setrgbcolor + } ifelse + brushWidth setlinewidth + originalCTM setmatrix + stroke + grestore + } def + + /ishow { + 0 begin + gsave + fgred fggreen fgblue setrgbcolor + /fontDict printFont findfont printSize scalefont dup setfont def + /descender fontDict begin 0 /FontBBox load 1 get FontMatrix end + transform exch pop def + /vertoffset 1 printSize sub descender sub def { + 0 vertoffset moveto show + /vertoffset vertoffset printSize sub def + } forall + grestore + end + } dup 0 3 dict put def + + /patternproc { + 0 begin + /patternByteLength patternString length def + /patternHeight patternByteLength 8 mul sqrt cvi def + /patternWidth patternHeight def + /patternByteWidth patternWidth 8 idiv def + /imageByteMaxLength imageByteWidth imageHeight mul + stringLimit patternByteWidth sub min def + /imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv + patternHeight mul patternHeight max def + /imageHeight imageHeight imageMaxHeight sub store + /imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def + 0 1 imageMaxHeight 1 sub { + /y exch def + /patternRow y patternByteWidth mul patternByteLength mod def + /patternRowString patternString patternRow patternByteWidth getinterval def + /imageRow y imageByteWidth mul def + 0 patternByteWidth imageByteWidth 1 sub { + /x exch def + imageString imageRow x add patternRowString putinterval + } for + } for + imageString + end + } dup 0 12 dict put def + + /min { + dup 3 2 roll dup 4 3 roll lt { exch } if pop + } def + + /max { + dup 3 2 roll dup 4 3 roll gt { exch } if pop + } def + + /midpoint { + 0 begin + /y1 exch def + /x1 exch def + /y0 exch def + /x0 exch def + x0 x1 add 2 div + y0 y1 add 2 div + end + } dup 0 4 dict put def + + /thirdpoint { + 0 begin + /y1 exch def + /x1 exch def + /y0 exch def + /x0 exch def + x0 2 mul x1 add 3 div + y0 2 mul y1 add 3 div + end + } dup 0 4 dict put def + + /subspline { + 0 begin + /movetoNeeded exch def + y exch get /y3 exch def + x exch get /x3 exch def + y exch get /y2 exch def + x exch get /x2 exch def + y exch get /y1 exch def + x exch get /x1 exch def + y exch get /y0 exch def + x exch get /x0 exch def + x1 y1 x2 y2 thirdpoint + /p1y exch def + /p1x exch def + x2 y2 x1 y1 thirdpoint + /p2y exch def + /p2x exch def + x1 y1 x0 y0 thirdpoint + p1x p1y midpoint + /p0y exch def + /p0x exch def + x2 y2 x3 y3 thirdpoint + p2x p2y midpoint + /p3y exch def + /p3x exch def + movetoNeeded { p0x p0y moveto } if + p1x p1y p2x p2y p3x p3y curveto + end + } dup 0 17 dict put def + + /storexyn { + /n exch def + /y n array def + /x n array def + n 1 sub -1 0 { + /i exch def + y i 3 2 roll put + x i 3 2 roll put + } for + } def + + /arrowhead { + 0 begin + transform originalCTM itransform + /taily exch def + /tailx exch def + transform originalCTM itransform + /tipy exch def + /tipx exch def + /dy tipy taily sub def + /dx tipx tailx sub def + /angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def + gsave + originalCTM setmatrix + tipx tipy translate + angle rotate + newpath + arrowHeight neg arrowWidth 2 div moveto + 0 0 lineto + arrowHeight neg arrowWidth 2 div neg lineto + patternNone not { + originalCTM setmatrix + /padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul + arrowWidth div def + /padtail brushWidth 2 div def + tipx tipy translate + angle rotate + padtip 0 translate + arrowHeight padtip add padtail add arrowHeight div dup scale + arrowheadpath + ifill + } if + brushNone not { + originalCTM setmatrix + tipx tipy translate + angle rotate + arrowheadpath + istroke + } if + grestore + end + } dup 0 9 dict put def + + /arrowheadpath { + newpath + arrowHeight neg arrowWidth 2 div moveto + 0 0 lineto + arrowHeight neg arrowWidth 2 div neg lineto + } def + + /leftarrow { + 0 begin + y exch get /taily exch def + x exch get /tailx exch def + y exch get /tipy exch def + x exch get /tipx exch def + brushLeftArrow { tipx tipy tailx taily arrowhead } if + end + } dup 0 4 dict put def + + /rightarrow { + 0 begin + y exch get /tipy exch def + x exch get /tipx exch def + y exch get /taily exch def + x exch get /tailx exch def + brushRightArrow { tipx tipy tailx taily arrowhead } if + end + } dup 0 4 dict put def + %%EndResource + %%EndSetup + + %%Page: 1 1 + %%PageResources: font Helvetica + %%PageBoundingBox: 92 197 497 580 + %%BeginPageSetup + %I Idraw 8 + + Begin + %I b u + %I cfg u + %I cbg u + %I f u + %I p u + %I t + [ 1 0 0 1 0 0 ] concat + /originalCTM matrix currentmatrix def + /trueoriginalCTM matrix currentmatrix def + %%EndPageSetup + + Begin %I Rect + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I + 2304 2304 9216 9216 Rect + End + + Begin %I Text + %I cfg Black + 0 0 0 SetCFg + %I f -*-helvetica-medium-r-normal-*-18-*-*-*-*-*-*-* + /Helvetica 18.144000 SetF + %I t + [ 1 0 0 1 115.5459 214.1855 ] concat + %I + [ + (0.00) + ] Text + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 2304 9216 + 2304 9078 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 2304 2304 + 2304 2442 + 2 MLine + End + + Begin %I Text + %I cfg Black + 0 0 0 SetCFg + %I f -*-helvetica-medium-r-normal-*-18-*-*-*-*-*-*-* + /Helvetica 18.144000 SetF + %I t + [ 1 0 0 1 173.1459 214.1855 ] concat + %I + [ + (0.05) + ] Text + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 3456 9216 + 3456 9078 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 3456 2304 + 3456 2442 + 2 MLine + End + + Begin %I Text + %I cfg Black + 0 0 0 SetCFg + %I f -*-helvetica-medium-r-normal-*-18-*-*-*-*-*-*-* + /Helvetica 18.144000 SetF + %I t + [ 1 0 0 1 230.7459 214.1855 ] concat + %I + [ + (0.10) + ] Text + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 4608 9216 + 4608 9078 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 4608 2304 + 4608 2442 + 2 MLine + End + + Begin %I Text + %I cfg Black + 0 0 0 SetCFg + %I f -*-helvetica-medium-r-normal-*-18-*-*-*-*-*-*-* + /Helvetica 18.144000 SetF + %I t + [ 1 0 0 1 288.3459 214.1855 ] concat + %I + [ + (0.15) + ] Text + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 5760 9216 + 5760 9078 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 5760 2304 + 5760 2442 + 2 MLine + End + + Begin %I Text + %I cfg Black + 0 0 0 SetCFg + %I f -*-helvetica-medium-r-normal-*-18-*-*-*-*-*-*-* + /Helvetica 18.144000 SetF + %I t + [ 1 0 0 1 345.9459 214.1855 ] concat + %I + [ + (0.20) + ] Text + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 6912 9216 + 6912 9078 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 6912 2304 + 6912 2442 + 2 MLine + End + + Begin %I Text + %I cfg Black + 0 0 0 SetCFg + %I f -*-helvetica-medium-r-normal-*-18-*-*-*-*-*-*-* + /Helvetica 18.144000 SetF + %I t + [ 1 0 0 1 403.5459 214.1855 ] concat + %I + [ + (0.25) + ] Text + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 8064 9216 + 8064 9078 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 8064 2304 + 8064 2442 + 2 MLine + End + + Begin %I Text + %I cfg Black + 0 0 0 SetCFg + %I f -*-helvetica-medium-r-normal-*-18-*-*-*-*-*-*-* + /Helvetica 18.144000 SetF + %I t + [ 1 0 0 1 461.1459 214.1855 ] concat + %I + [ + (0.30) + ] Text + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 9216 9216 + 9216 9078 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 9216 2304 + 9216 2442 + 2 MLine + End + + Begin %I Text + %I cfg Black + 0 0 0 SetCFg + %I f -*-helvetica-medium-r-normal-*-18-*-*-*-*-*-*-* + /Helvetica 18.144000 SetF + %I t + [ 1 0 0 1 92.19974 229.8568 ] concat + %I + [ + (-0.2) + ] Text + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 9216 2304 + 9078 2304 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 2304 2304 + 2442 2304 + 2 MLine + End + + Begin %I Text + %I cfg Black + 0 0 0 SetCFg + %I f -*-helvetica-medium-r-normal-*-18-*-*-*-*-*-*-* + /Helvetica 18.144000 SetF + %I t + [ 1 0 0 1 102.7958 298.9768 ] concat + %I + [ + (0.0) + ] Text + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 9216 3686 + 9078 3686 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 2304 3686 + 2442 3686 + 2 MLine + End + + Begin %I Text + %I cfg Black + 0 0 0 SetCFg + %I f -*-helvetica-medium-r-normal-*-18-*-*-*-*-*-*-* + /Helvetica 18.144000 SetF + %I t + [ 1 0 0 1 102.7958 368.0968 ] concat + %I + [ + (0.2) + ] Text + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 9216 5069 + 9078 5069 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 2304 5069 + 2442 5069 + 2 MLine + End + + Begin %I Text + %I cfg Black + 0 0 0 SetCFg + %I f -*-helvetica-medium-r-normal-*-18-*-*-*-*-*-*-* + /Helvetica 18.144000 SetF + %I t + [ 1 0 0 1 102.7958 437.2168 ] concat + %I + [ + (0.4) + ] Text + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 9216 6451 + 9078 6451 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 2304 6451 + 2442 6451 + 2 MLine + End + + Begin %I Text + %I cfg Black + 0 0 0 SetCFg + %I f -*-helvetica-medium-r-normal-*-18-*-*-*-*-*-*-* + /Helvetica 18.144000 SetF + %I t + [ 1 0 0 1 102.7958 506.3368 ] concat + %I + [ + (0.6) + ] Text + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 9216 7834 + 9078 7834 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 2304 7834 + 2442 7834 + 2 MLine + End + + Begin %I Text + %I cfg Black + 0 0 0 SetCFg + %I f -*-helvetica-medium-r-normal-*-18-*-*-*-*-*-*-* + /Helvetica 18.144000 SetF + %I t + [ 1 0 0 1 102.7958 575.4568 ] concat + %I + [ + (0.8) + ] Text + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 9216 9216 + 9078 9216 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 2304 9216 + 2442 9216 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 9216 2304 + 9161 2304 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 2304 2304 + 2359 2304 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 9216 2995 + 9161 2995 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 2304 2995 + 2359 2995 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 9216 3686 + 9161 3686 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 2304 3686 + 2359 3686 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 9216 4378 + 9161 4378 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 2304 4378 + 2359 4378 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 9216 5069 + 9161 5069 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 2304 5069 + 2359 5069 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 9216 5760 + 9161 5760 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 2304 5760 + 2359 5760 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 9216 6451 + 9161 6451 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 2304 6451 + 2359 6451 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 9216 7142 + 9161 7142 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 2304 7142 + 2359 7142 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 9216 7834 + 9161 7834 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 2304 7834 + 2359 7834 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 9216 8525 + 9161 8525 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 2304 8525 + 2359 8525 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 9216 9216 + 9161 9216 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 2304 9216 + 2359 9216 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 34952 + 1 0 0 [ 1.48 4.43 ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 2304 3686 + 9216 3686 + 2 MLine + End + + Begin %I MLine + [0.324 0 0 0.324 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 2239 4658 + 2369 4788 + 2 MLine + End + + Begin %I MLine + [0.324 0 0 0.324 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 2369 4658 + 2239 4788 + 2 MLine + End + + Begin %I MLine + [0.324 0 0 0.324 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 4543 8460 + 4673 8590 + 2 MLine + End + + Begin %I MLine + [0.324 0 0 0.324 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 4673 8460 + 4543 8590 + 2 MLine + End + + Begin %I MLine + [0.324 0 0 0.324 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 8460 2930 + 8590 3060 + 2 MLine + End + + Begin %I MLine + [0.324 0 0 0.324 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 8590 2930 + 8460 3060 + 2 MLine + End + + Begin %I MLine + [0.324 0 0 0.324 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 9151 4658 + 9281 4788 + 2 MLine + End + + Begin %I MLine + [0.324 0 0 0.324 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 2 + 9281 4658 + 9151 4788 + 2 MLine + End + + Begin %I MLine + [0.6776471 0 0 0.6776471 0 0 ] trueoriginalCTM originalCTM + concatmatrix pop + 0 setlinecap 0 setlinejoin 10.43 setmiterlimit + /eoFillRule true def + %I b 65535 + 1 0 0 [ ] 0 SetB + %I cfg Black + 0 0 0 SetCFg + %I cbg White + 1 1 1 SetCBg + %I p + none SetP + %I t + [0.05 0 0 0.05 18 108 ] concat + %I 101 + 2304 4723 + 2373 4920 + 2442 5115 + 2511 5308 + 2580 5499 + 2650 5687 + 2719 5872 + 2788 6054 + 2857 6232 + 2926 6406 + 2995 6576 + 3064 6741 + 3133 6901 + 3203 7056 + 3272 7205 + 3341 7348 + 3410 7485 + 3479 7616 + 3548 7739 + 3617 7855 + 3686 7964 + 3756 8065 + 3825 8157 + 3894 8241 + 3963 8316 + 4032 8381 + 4101 8437 + 4170 8484 + 4239 8519 + 4308 8545 + 4378 8559 + 4447 8563 + 4516 8554 + 4585 8534 + 4654 8502 + 4723 8458 + 4792 8402 + 4861 8335 + 4931 8258 + 5000 8171 + 5069 8075 + 5138 7970 + 5207 7857 + 5276 7736 + 5345 7608 + 5414 7473 + 5484 7332 + 5553 7185 + 5622 7033 + 5691 6876 + 5760 6716 + 5829 6552 + 5898 6385 + 5967 6215 + 6036 6043 + 6106 5870 + 6175 5696 + 6244 5522 + 6313 5348 + 6382 5174 + 6451 5002 + 6520 4831 + 6589 4663 + 6659 4497 + 6728 4335 + 6797 4177 + 6866 4022 + 6935 3873 + 7004 3729 + 7073 3591 + 7142 3460 + 7212 3335 + 7281 3218 + 7350 3109 + 7419 3009 + 7488 2918 + 7557 2836 + 7626 2764 + 7695 2703 + 7764 2654 + 7834 2615 + 7903 2590 + 7972 2577 + 8041 2577 + 8110 2591 + 8179 2619 + 8248 2663 + 8317 2721 + 8387 2796 + 8456 2887 + 8525 2995 + 8594 3120 + 8663 3261 + 8732 3416 + 8801 3582 + 8870 3758 + 8940 3943 + 9009 4133 + 9078 4328 + 9147 4525 + 9216 4723 + 101 MLine + End + + %%PageTrailer + End %I eop + showpage + + %%Trailer + end + %%EOF diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/intro.texi gsl-1.8/doc/intro.texi *** gsl-1.7/doc/intro.texi Tue Sep 13 09:41:04 2005 --- gsl-1.8/doc/intro.texi Fri Mar 17 15:53:08 2006 *************** *** 7,12 **** --- 7,13 ---- high level languages. The source code is distributed under the GNU General Public License. + @menu * Routines available in GSL:: * GSL is Free Software:: *************** *** 23,29 **** --- 24,32 ---- The library covers a wide range of topics in numerical computing. Routines are available for the following areas, + @iftex @sp 1 + @end iftex @multitable @columnfractions 0.05 0.45 0.45 0.05 @item @tab Complex Numbers @tab Roots of Polynomials @item @tab Special Functions @tab Vectors and Matrices *************** *** 43,55 **** --- 46,65 ---- @item @tab IEEE Floating-Point @tab Physical Constants @item @tab Wavelets @end multitable + @iftex @sp 1 + @end iftex + @noindent The use of these routines is described in this manual. Each chapter provides detailed definitions of the functions, followed by example programs and references to the articles on which the algorithms are based. + Where possible the routines have been based on reliable public-domain + packages such as FFTPACK and QUADPACK, which the developers of GSL + have reimplemented in C with modern coding conventions. + @node GSL is Free Software @section GSL is Free Software @cindex free software, explanation of *************** *** 94,102 **** @item @uref{http://www.gnu.org/copyleft/gpl-faq.html} @end itemize @noindent ! The Free Software Foundation also operates a license consulting service ! for commercial users. @node Obtaining GSL @section Obtaining GSL --- 104,114 ---- @item @uref{http://www.gnu.org/copyleft/gpl-faq.html} @end itemize + @noindent ! The Free Software Foundation also operates a license consulting ! service for commercial users (contact details available from ! @uref{http://www.fsf.org/}). @node Obtaining GSL @section Obtaining GSL *************** *** 113,123 **** @item @uref{http://www.gnu.org/software/gsl/} @end itemize @noindent The preferred platform for the library is a GNU system, which allows it to take advantage of additional features in the GNU C compiler and GNU C library. However, the library is fully portable and should compile on ! most systems. Precompiled versions of the library can be purchased from commercial redistributors listed on the website above. Announcements of new releases, updates and other relevant events are --- 125,136 ---- @item @uref{http://www.gnu.org/software/gsl/} @end itemize + @noindent The preferred platform for the library is a GNU system, which allows it to take advantage of additional features in the GNU C compiler and GNU C library. However, the library is fully portable and should compile on ! most systems with a C compiler. Precompiled versions of the library can be purchased from commercial redistributors listed on the website above. Announcements of new releases, updates and other relevant events are *************** *** 128,133 **** --- 141,147 ---- To: info-gsl-request@@gnu.org Subject: subscribe @end example + @noindent You will receive a response asking you to reply in order to confirm your subscription. *************** *** 169,174 **** --- 183,189 ---- @item A short program which exercises the bug @end itemize + @noindent It is useful if you can check whether the same problem occurs when the library is compiled without optimization. Thank you. *************** *** 193,202 **** --- 208,225 ---- To: help-gsl-request@@gnu.org Subject: subscribe @end example + @noindent This mailing list can be used to ask questions not covered by this manual, and to contact the developers of the library. + If you would like to refer to the GNU Scientific Library in a journal + article, the recommended way is to cite this reference manual, + e.g. @cite{M. Galassi et al, GNU Scientific Library Reference Manual (2nd + Ed.), ISBN 0954161734}. + + If you want to give a url, use ``@uref{http://www.gnu.org/software/gsl/}''. + @node Conventions used in this manual @section Conventions used in this manual @cindex conventions, used in manual *************** *** 209,214 **** --- 232,238 ---- @example $ @i{command} @end example + @noindent @cindex dollar sign @code{$}, shell prompt The first character on the line is the terminal prompt, and should not diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/linalg.texi gsl-1.8/doc/linalg.texi *** gsl-1.7/doc/linalg.texi Mon Aug 22 15:24:42 2005 --- gsl-1.8/doc/linalg.texi Thu Mar 16 18:00:21 2006 *************** *** 54,59 **** --- 54,60 ---- @example P A = L U @end example + @end ifinfo @noindent where @math{P} is a permutation matrix, @math{L} is unit lower *************** *** 172,177 **** --- 173,179 ---- @example A = Q R @end example + @end ifinfo @noindent This decomposition can be used to convert the linear system @math{A x = *************** *** 302,307 **** --- 304,310 ---- @example A P = Q R @end example + @end ifinfo @noindent The first @math{r} columns of @math{Q} form an orthonormal basis *************** *** 402,407 **** --- 405,411 ---- @example A = U S V^T @end example + @end ifinfo @noindent The singular values *************** *** 487,492 **** --- 491,497 ---- @example A = L L^T @end example + @end ifinfo @noindent This is sometimes referred to as taking the square-root of a matrix. The *************** *** 497,503 **** back-substitution. @deftypefun int gsl_linalg_cholesky_decomp (gsl_matrix * @var{A}) ! This function factorizes the positive-definite square matrix @var{A} into the Cholesky decomposition @math{A = L L^T}. On output the diagonal and lower triangular part of the input matrix @var{A} contain the matrix @math{L}. The upper triangular part of the input matrix contains --- 502,508 ---- back-substitution. @deftypefun int gsl_linalg_cholesky_decomp (gsl_matrix * @var{A}) ! This function factorizes the positive-definite symmetric square matrix @var{A} into the Cholesky decomposition @math{A = L L^T}. On output the diagonal and lower triangular part of the input matrix @var{A} contain the matrix @math{L}. The upper triangular part of the input matrix contains *************** *** 538,543 **** --- 543,549 ---- @example A = Q T Q^T @end example + @end ifinfo @noindent where @math{Q} is an orthogonal matrix and @math{T} is a symmetric *************** *** 585,590 **** --- 591,597 ---- @example A = U T U^T @end example + @end ifinfo @noindent where @math{U} is a unitary matrix and @math{T} is a real symmetric *************** *** 635,640 **** --- 642,648 ---- @example A = U B V^T @end example + @end ifinfo @noindent where @math{U} and @math{V} are orthogonal matrices and @math{B} is a *************** *** 698,703 **** --- 706,712 ---- @example P = I - \tau v v^T @end example + @end ifinfo @noindent where @math{v} is a vector (called the @dfn{Householder vector}) and *************** *** 909,914 **** --- 918,924 ---- [ 0.14 0.30 0.97 0.66 ] [x2] [3.0] [ 0.51 0.13 0.19 0.85 ] [x3] [4.0] @end example + @end ifinfo @noindent and the solution is found using LU decomposition of the matrix @math{A}. *************** *** 916,927 **** --- 926,939 ---- @example @verbatiminclude examples/linalglu.c @end example + @noindent Here is the output from the program, @example @verbatiminclude examples/linalglu.out @end example + @noindent This can be verified by multiplying the solution @math{x} by the original matrix @math{A} using @sc{gnu octave}, *************** *** 941,946 **** --- 953,959 ---- 3.0000 4.0000 @end example + @noindent This reproduces the original right-hand side vector, @math{b}, in accordance with the equation @math{A x = b}. *************** *** 956,961 **** --- 969,975 ---- G. H. Golub, C. F. Van Loan, @cite{Matrix Computations} (3rd Ed, 1996), Johns Hopkins University Press, ISBN 0-8018-5414-8. @end itemize + @noindent The @sc{lapack} library is described in the following manual, *************** *** 966,971 **** --- 980,986 ---- @uref{http://www.netlib.org/lapack} @end itemize + @noindent The @sc{lapack} source code can be found at the website above, along with an online copy of the users guide. *************** *** 979,984 **** --- 994,1000 ---- Decomposition'', @cite{ACM Transactions on Mathematical Software}, 8 (1982), pp 72--83. @end itemize + @noindent The Jacobi algorithm for singular value decomposition is described in the following papers, diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/mdate-sh gsl-1.8/doc/mdate-sh *** gsl-1.7/doc/mdate-sh Mon Jun 16 08:00:23 2003 --- gsl-1.8/doc/mdate-sh Sat Mar 19 18:14:48 2005 *************** *** 1,6 **** #!/bin/sh # Get modification time of a file or directory and pretty-print it. ! # Copyright (C) 1995, 1996, 1997, 2003 Free Software Foundation, Inc. # written by Ulrich Drepper , June 1995 # # This program is free software; you can redistribute it and/or modify --- 1,10 ---- #!/bin/sh # Get modification time of a file or directory and pretty-print it. ! ! scriptversion=2005-02-07.09 ! ! # Copyright (C) 1995, 1996, 1997, 2003, 2004, 2005 Free Software ! # Foundation, Inc. # written by Ulrich Drepper , June 1995 # # This program is free software; you can redistribute it and/or modify *************** *** 22,27 **** --- 26,56 ---- # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. + # This file is maintained in Automake, please report + # bugs to or send patches to + # . + + case $1 in + '') + echo "$0: No file. Try \`$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF + Usage: mdate-sh [--help] [--version] FILE + + Pretty-print the modification time of FILE. + + Report bugs to . + EOF + exit $? + ;; + -v | --v*) + echo "mdate-sh $scriptversion" + exit $? + ;; + esac + # Prevent date giving response in another language. LANG=C export LANG *************** *** 52,58 **** # words should be skipped to get the date. # On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below. ! set - x`$ls_command /` # Find which argument is the month. month= --- 81,87 ---- # words should be skipped to get the date. # On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below. ! set x`ls -l -d /` # Find which argument is the month. month= *************** *** 79,91 **** done # Get the extended ls output of the file or directory. ! set - x`eval "$ls_command \"\$save_arg1\""` # Remove all preceding arguments eval $command ! # Get the month. Next argument is day, followed by the year or time. ! case $1 in Jan) month=January; nummonth=1;; Feb) month=February; nummonth=2;; Mar) month=March; nummonth=3;; --- 108,139 ---- done # Get the extended ls output of the file or directory. ! set dummy x`eval "$ls_command \"\$save_arg1\""` # Remove all preceding arguments eval $command ! # Because of the dummy argument above, month is in $2. ! # ! # On a POSIX system, we should have ! # ! # $# = 5 ! # $1 = file size ! # $2 = month ! # $3 = day ! # $4 = year or time ! # $5 = filename ! # ! # On Darwin 7.7.0 and 7.6.0, we have ! # ! # $# = 4 ! # $1 = day ! # $2 = month ! # $3 = year or time ! # $4 = filename ! ! # Get the month. ! case $2 in Jan) month=January; nummonth=1;; Feb) month=February; nummonth=2;; Mar) month=March; nummonth=3;; *************** *** 100,106 **** Dec) month=December; nummonth=12;; esac ! day=$2 # Here we have to deal with the problem that the ls output gives either # the time of day or the year. --- 148,157 ---- Dec) month=December; nummonth=12;; esac ! case $3 in ! ???*) day=$1;; ! *) day=$3; shift;; ! esac # Here we have to deal with the problem that the ls output gives either # the time of day or the year. *************** *** 131,133 **** --- 182,193 ---- # The result. echo $day $month $year + + # Local Variables: + # mode: shell-script + # sh-indentation: 2 + # eval: (add-hook 'write-file-hooks 'time-stamp) + # time-stamp-start: "scriptversion=" + # time-stamp-format: "%:y-%02m-%02d.%02H" + # time-stamp-end: "$" + # End: diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/min.texi gsl-1.8/doc/min.texi *** gsl-1.7/doc/min.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/min.texi Thu Mar 16 18:00:21 2006 *************** *** 43,61 **** @sp 1 @center @image{min-interval,3.4in} @end iftex @noindent The value of the function at @math{x} must be less than the value of the function at the ends of the interval, - @iftex @tex $$f(a) > f(x) < f(b)$$ @end tex - @end iftex @ifinfo @example f(a) > f(x) < f(b) @end example @end ifinfo @noindent This condition guarantees that a minimum is contained somewhere within --- 43,61 ---- @sp 1 @center @image{min-interval,3.4in} @end iftex + @noindent The value of the function at @math{x} must be less than the value of the function at the ends of the interval, @tex $$f(a) > f(x) < f(b)$$ @end tex @ifinfo @example f(a) > f(x) < f(b) @end example + @end ifinfo @noindent This condition guarantees that a minimum is contained somewhere within *************** *** 84,89 **** --- 84,90 ---- @item test @var{s} for convergence, and repeat iteration if necessary @end itemize + @noindent The state for the minimizers is held in a @code{gsl_min_fminimizer} struct. The updating procedure uses only function evaluations (not *************** *** 104,121 **** location of the minimum to full numerical precision. The behavior of the function in the region of the minimum @math{x^*} can be approximated by a Taylor expansion, - @iftex @tex $$ y = f(x^*) + {1 \over 2} f''(x^*) (x - x^*)^2 $$ @end tex - @end iftex @ifinfo @example y = f(x^*) + (1/2) f''(x^*) (x - x^*)^2 @end example @end ifinfo @noindent and the second term of this expansion can be lost when added to the --- 105,121 ---- location of the minimum to full numerical precision. The behavior of the function in the region of the minimum @math{x^*} can be approximated by a Taylor expansion, @tex $$ y = f(x^*) + {1 \over 2} f''(x^*) (x - x^*)^2 $$ @end tex @ifinfo @example y = f(x^*) + (1/2) f''(x^*) (x - x^*)^2 @end example + @end ifinfo @noindent and the second term of this expansion can be lost when added to the *************** *** 176,181 **** --- 176,182 ---- printf ("s is a '%s' minimizer\n", gsl_min_fminimizer_name (s)); @end example + @noindent would print something like @code{s is a 'brent' minimizer}. @end deftypefun *************** *** 254,259 **** --- 255,261 ---- @item An error has occurred. @end itemize + @noindent The handling of these conditions is under user control. The function below allows the user to test the precision of the current result. *************** *** 275,280 **** --- 277,283 ---- @example |a - b| < epsabs + epsrel min(|a|,|b|) @end example + @end ifinfo @noindent when the interval @math{x = [a,b]} does not include the origin. If the *************** *** 298,303 **** --- 301,307 ---- @example |x_m - x_m^*| < epsabs + epsrel x_m^* @end example + @end ifinfo @noindent assuming that the true minimum @math{x_m^*} is contained within the interval. *************** *** 372,377 **** --- 376,382 ---- @example @verbatiminclude examples/min.c @end example + @noindent Here are the results of the minimization procedure. diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/montecarlo.texi gsl-1.8/doc/montecarlo.texi *** gsl-1.7/doc/montecarlo.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/montecarlo.texi Thu Mar 16 18:00:21 2006 *************** *** 18,23 **** --- 18,24 ---- @example I = \int_xl^xu dx \int_yl^yu dy ... f(x, y, ...) @end example + @end ifinfo @noindent over a hypercubic region @math{((x_l,x_u)}, @math{(y_l,y_u), ...)} using *************** *** 83,88 **** --- 84,90 ---- a pointer to the parameters of the function. @end table @end deftp + @noindent Here is an example for a quadratic function in two dimensions, @tex *************** *** 97,102 **** --- 99,105 ---- @example f(x,y) = a x^2 + b x y + c y^2 @end example + @end ifinfo @noindent with @math{a = 3}, @math{b = 2}, @math{c = 1}. The following code *************** *** 128,133 **** --- 131,137 ---- F.dim = 2; F.params = ¶ms; @end example + @noindent The function @math{f(x)} can be evaluated using the following macro, *************** *** 155,160 **** --- 159,165 ---- @example E(f; N) = = V = (V / N) \sum_i^N f(x_i) @end example + @end ifinfo @noindent where @math{V} is the volume of the integration region. The error on *************** *** 172,177 **** --- 177,183 ---- @example \sigma^2 (E; N) = (V / N) \sum_i^N (f(x_i) - )^2. @end example + @end ifinfo @noindent For large @math{N} this variance decreases asymptotically as *************** *** 244,249 **** --- 250,256 ---- @example \Var(f) = (\sigma_a^2(f) / 4 N_a) + (\sigma_b^2(f) / 4 N_b). @end example + @end ifinfo @noindent It can be shown that this variance is minimized by distributing the *************** *** 260,265 **** --- 267,273 ---- @example N_a / (N_a + N_b) = \sigma_a / (\sigma_a + \sigma_b). @end example + @end ifinfo @noindent Hence the smallest error estimate is obtained by allocating sample *************** *** 360,365 **** --- 368,374 ---- @example \Var(f) = @{\sigma_a \over N_a^\alpha@} + @{\sigma_b \over N_b^\alpha@}. @end example + @end ifinfo @noindent The authors of the original paper describing @sc{miser} recommend the *************** *** 402,407 **** --- 411,417 ---- @example E_g(f; N) = E(f/g; N) @end example + @end ifinfo @noindent with a corresponding variance, *************** *** 417,422 **** --- 427,433 ---- @example \Var_g(f; N) = \Var(f/g; N). @end example + @end ifinfo @noindent If the probability distribution is chosen as @math{g = |f|/I(|f|)} then *************** *** 599,604 **** --- 610,616 ---- \int_@{-pi@}^@{+pi@} @{dk_z/(2 pi)@} 1 / (1 - cos(k_x)cos(k_y)cos(k_z)). @end example + @end ifinfo @noindent The analytic value of this integral can be shown to be @math{I = *************** *** 618,623 **** --- 630,636 ---- @smallexample @verbatiminclude examples/monte.c @end smallexample + @noindent With 500,000 function calls the plain Monte Carlo algorithm achieves a fractional error of 0.6%. The estimated error @code{sigma} is *************** *** 631,636 **** --- 644,650 ---- exact = 1.393204 error = -0.007337 = 0.9 sigma @end example + @noindent The @sc{miser} algorithm reduces the error by a factor of two, and also correctly estimates the error, *************** *** 642,647 **** --- 656,662 ---- exact = 1.393204 error = -0.002548 = 0.7 sigma @end example + @noindent In the case of the @sc{vegas} algorithm the program uses an initial warm-up run of 10,000 function calls to prepare, or ``warm up'', the grid. *************** *** 665,670 **** --- 680,686 ---- exact = 1.393204 error = -0.000247 = 0.5 sigma @end example + @noindent If the value of @code{chisq} had differed significantly from 1 it would indicate inconsistent results, with a correspondingly underestimated *************** *** 684,689 **** --- 700,706 ---- Multidimensional Monte Carlo Integration}, Computers in Physics, v4 (1990), pp190--195. @end itemize + @noindent The @sc{vegas} algorithm is described in the following papers, diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/multifit.texi gsl-1.8/doc/multifit.texi *** gsl-1.7/doc/multifit.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/multifit.texi Thu Mar 30 19:01:28 2006 *************** *** 37,53 **** @tex \beforedisplay $$ ! \Phi(x) = {1 \over 2} \sum_{i=1}^{n} f_i (x_1, \dots, x_p)^2 ! = {1 \over 2} || F(x) ||^2 $$ \afterdisplay @end tex @ifinfo @example ! \Phi(x) = (1/2) \sum_@{i=1@}^@{n@} f_i(x_1, ..., x_p)^2 ! = (1/2) || F(x) ||^2 @end example @end ifinfo @noindent All algorithms proceed from an initial guess using the linearization, --- 37,54 ---- @tex \beforedisplay $$ ! \Phi(x) = {1 \over 2} || F(x) ||^2 ! = {1 \over 2} \sum_{i=1}^{n} f_i (x_1, \dots, x_p)^2 $$ \afterdisplay @end tex @ifinfo @example ! \Phi(x) = (1/2) || F(x) ||^2 ! = (1/2) \sum_@{i=1@}^@{n@} f_i(x_1, ..., x_p)^2 @end example + @end ifinfo @noindent All algorithms proceed from an initial guess using the linearization, *************** *** 63,68 **** --- 64,70 ---- @example \psi(p) = || F(x+p) || ~=~ || F(x) + J p || @end example + @end ifinfo @noindent where @math{x} is the initial point, @math{p} is the proposed step *************** *** 74,85 **** --- 76,117 ---- step or using a trust region to avoid steps which fall outside the linear regime. + To perform a weighted least-squares fit of a nonlinear model + @math{Y(x,t)} to data (@math{t_i}, @math{y_i}) with independent gaussian + errors @math{\sigma_i}, use function components of the following form, + @tex + \beforedisplay + $$ + f_i = {(Y(x, t_i) - y_i) \over \sigma_i} + $$ + \afterdisplay + @end tex + @ifinfo + + @example + f_i = (Y(x, t_i) - y_i) / \sigma_i + @end example + + @end ifinfo + @noindent + Note that the model parameters are denoted by @math{x} in this chapter + since the non-linear least-squares algorithms are described + geometrically (i.e. finding the minimum of a surface). The + independent variable of any data to be fitted is denoted by @math{t}. + + With the definition above the Jacobian is + @c{$J_{ij} = (1 / \sigma_i) \partial Y_i / \partial x_j$} + @math{J_@{ij@} =(1 / \sigma_i) d Y_i / d x_j}, where @math{Y_i = Y(x,t_i)}. + + @node Initializing the Nonlinear Least-Squares Solver @section Initializing the Solver @deftypefun {gsl_multifit_fsolver *} gsl_multifit_fsolver_alloc (const gsl_multifit_fsolver_type * @var{T}, size_t @var{n}, size_t @var{p}) This function returns a pointer to a newly allocated instance of a solver of type @var{T} for @var{n} observations and @var{p} parameters. + The number of observations @var{n} must be greater than or equal to + parameters @var{p}. If there is insufficient memory to create the solver then the function returns a null pointer and the error handler is invoked with an error *************** *** 89,95 **** @deftypefun {gsl_multifit_fdfsolver *} gsl_multifit_fdfsolver_alloc (const gsl_multifit_fdfsolver_type * @var{T}, size_t @var{n}, size_t @var{p}) This function returns a pointer to a newly allocated instance of a derivative solver of type @var{T} for @var{n} observations and @var{p} ! parameters. For example, the following code creates an instance of a Levenberg-Marquardt solver for 100 data points and 3 parameters, @example --- 121,127 ---- @deftypefun {gsl_multifit_fdfsolver *} gsl_multifit_fdfsolver_alloc (const gsl_multifit_fdfsolver_type * @var{T}, size_t @var{n}, size_t @var{p}) This function returns a pointer to a newly allocated instance of a derivative solver of type @var{T} for @var{n} observations and @var{p} ! parameters. For example, the following code creates an instance of a Levenberg-Marquardt solver for 100 data points and 3 parameters, @example *************** *** 99,104 **** --- 131,140 ---- = gsl_multifit_fdfsolver_alloc (T, 100, 3); @end example + @noindent + The number of observations @var{n} must be greater than or equal to + parameters @var{p}. + If there is insufficient memory to create the solver then the function returns a null pointer and the error handler is invoked with an error code of @code{GSL_ENOMEM}. *************** *** 128,133 **** --- 164,170 ---- printf ("s is a '%s' solver\n", gsl_multifit_fdfsolver_name (s)); @end example + @noindent would print something like @code{s is a 'lmder' solver}. @end deftypefun *************** *** 135,151 **** @node Providing the Function to be Minimized @section Providing the Function to be Minimized ! You must provide @math{n} functions of @math{p} variables for the minimization algorithms to operate on. In order to allow for general parameters the ! functions are defined by the following data types: @deftp {Data Type} gsl_multifit_function ! This data type defines a general system of functions with parameters. @table @code @item int (* f) (const gsl_vector * @var{x}, void * @var{params}, gsl_vector * @var{f}) this function should store the vector result @c{$f(x,\hbox{\it params})$} ! @math{f(x,params)} in @var{f} for argument @var{x} and parameters @var{params}, returning an appropriate error code if the function cannot be computed. @item size_t n --- 172,190 ---- @node Providing the Function to be Minimized @section Providing the Function to be Minimized ! You must provide @math{n} functions of @math{p} variables for the ! minimization algorithms to operate on. In order to allow for ! arbitrary parameters the functions are defined by the following data ! types: @deftp {Data Type} gsl_multifit_function ! This data type defines a general system of functions with arbitrary parameters. @table @code @item int (* f) (const gsl_vector * @var{x}, void * @var{params}, gsl_vector * @var{f}) this function should store the vector result @c{$f(x,\hbox{\it params})$} ! @math{f(x,params)} in @var{f} for argument @var{x} and arbitrary parameters @var{params}, returning an appropriate error code if the function cannot be computed. @item size_t n *************** *** 154,187 **** @item size_t p the number of independent variables, i.e. the number of components of ! the vectors @var{x}. @item void * params ! a pointer to the parameters of the function. @end table @end deftp @deftp {Data Type} gsl_multifit_function_fdf ! This data type defines a general system of functions with parameters and the corresponding Jacobian matrix of derivatives, @table @code @item int (* f) (const gsl_vector * @var{x}, void * @var{params}, gsl_vector * @var{f}) this function should store the vector result @c{$f(x,\hbox{\it params})$} ! @math{f(x,params)} in @var{f} for argument @var{x} and parameters @var{params}, returning an appropriate error code if the function cannot be computed. @item int (* df) (const gsl_vector * @var{x}, void * @var{params}, gsl_matrix * @var{J}) this function should store the @var{n}-by-@var{p} matrix result @c{$J_{ij} = \partial f_i(x,\hbox{\it params}) / \partial x_j$} @math{J_ij = d f_i(x,params) / d x_j} in @var{J} for argument @var{x} ! and parameters @var{params}, returning an appropriate error code if the function cannot be computed. @item int (* fdf) (const gsl_vector * @var{x}, void * @var{params}, gsl_vector * @var{f}, gsl_matrix * @var{J}) This function should set the values of the @var{f} and @var{J} as above, ! for arguments @var{x} and parameters @var{params}. This function provides an optimization of the separate functions for @math{f(x)} and @math{J(x)}---it is always faster to compute the function and its derivative at the same time. --- 193,226 ---- @item size_t p the number of independent variables, i.e. the number of components of ! the vector @var{x}. @item void * params ! a pointer to the arbitrary parameters of the function. @end table @end deftp @deftp {Data Type} gsl_multifit_function_fdf ! This data type defines a general system of functions with arbitrary parameters and the corresponding Jacobian matrix of derivatives, @table @code @item int (* f) (const gsl_vector * @var{x}, void * @var{params}, gsl_vector * @var{f}) this function should store the vector result @c{$f(x,\hbox{\it params})$} ! @math{f(x,params)} in @var{f} for argument @var{x} and arbitrary parameters @var{params}, returning an appropriate error code if the function cannot be computed. @item int (* df) (const gsl_vector * @var{x}, void * @var{params}, gsl_matrix * @var{J}) this function should store the @var{n}-by-@var{p} matrix result @c{$J_{ij} = \partial f_i(x,\hbox{\it params}) / \partial x_j$} @math{J_ij = d f_i(x,params) / d x_j} in @var{J} for argument @var{x} ! and arbitrary parameters @var{params}, returning an appropriate error code if the function cannot be computed. @item int (* fdf) (const gsl_vector * @var{x}, void * @var{params}, gsl_vector * @var{f}, gsl_matrix * @var{J}) This function should set the values of the @var{f} and @var{J} as above, ! for arguments @var{x} and arbitrary parameters @var{params}. This function provides an optimization of the separate functions for @math{f(x)} and @math{J(x)}---it is always faster to compute the function and its derivative at the same time. *************** *** 192,204 **** @item size_t p the number of independent variables, i.e. the number of components of ! the vectors @var{x}. @item void * params ! a pointer to the parameters of the function. @end table @end deftp @node Iteration of the Minimization Algorithm @section Iteration --- 231,248 ---- @item size_t p the number of independent variables, i.e. the number of components of ! the vector @var{x}. @item void * params ! a pointer to the arbitrary parameters of the function. @end table @end deftp + Note that when fitting a non-linear model against experimental data, + the data is passed to the functions above using the + @var{params} argument and the trial best-fit parameters through the + @var{x} argument. + @node Iteration of the Minimization Algorithm @section Iteration *************** *** 261,266 **** --- 305,311 ---- @item An error has occurred. @end itemize + @noindent The handling of these conditions is under user control. The functions below allow the user to test the current estimate of the best-fit *************** *** 284,289 **** --- 329,335 ---- @example |dx_i| < epsabs + epsrel |x_i| @end example + @end ifinfo @noindent for each component of @var{x} and returns @code{GSL_CONTINUE} otherwise. *************** *** 307,312 **** --- 353,359 ---- @example \sum_i |g_i| < epsabs @end example + @end ifinfo @noindent and returns @code{GSL_CONTINUE} otherwise. This criterion is suitable *************** *** 379,384 **** --- 426,432 ---- the norm of the gradient, relative to the norm of the function, falls below machine precision @end table + @noindent These error codes indicate that further iterations will be unlikely to change the solution from its current value. *************** *** 399,407 **** @node Computing the covariance matrix of best fit parameters @section Computing the covariance matrix of best fit parameters - @cindex covariance of best-fit parameters @cindex best-fit parameters, covariance @cindex least squares, covariance of best-fit parameters @deftypefun int gsl_multifit_covar (const gsl_matrix * @var{J}, double @var{epsrel}, gsl_matrix * @var{covar}) This function uses the Jacobian matrix @var{J} to compute the covariance --- 447,455 ---- @node Computing the covariance matrix of best fit parameters @section Computing the covariance matrix of best fit parameters @cindex best-fit parameters, covariance @cindex least squares, covariance of best-fit parameters + @cindex covariance matrix, nonlinear fits @deftypefun int gsl_multifit_covar (const gsl_matrix * @var{J}, double @var{epsrel}, gsl_matrix * @var{covar}) This function uses the Jacobian matrix @var{J} to compute the covariance *************** *** 422,427 **** --- 470,476 ---- @example covar = (J^T J)^@{-1@} @end example + @end ifinfo @noindent and is computed by QR decomposition of J with column-pivoting. Any *************** *** 438,448 **** --- 487,517 ---- @example |R_@{kk@}| <= epsrel |R_@{11@}| @end example + @end ifinfo @noindent are considered linearly-dependent and are excluded from the covariance matrix (the corresponding rows and columns of the covariance matrix are set to zero). + + If the minimisation uses the weighted least-squares function + @math{f_i = (Y(x, t_i) - y_i) / \sigma_i} then the covariance + matrix above gives the statistical error on the best-fit parameters + resulting from the gaussian errors @math{\sigma_i} on + the underlying data @math{y_i}. This can be verified from the relation + @math{\delta f = J \delta c} and the fact that the fluctuations in @math{f} + from the data @math{y_i} are normalised by @math{\sigma_i} and + so satisfy @c{$\langle \delta f \delta f^T \rangle = I$} + @math{<\delta f \delta f^T> = I}. + + For an unweighted least-squares function @math{f_i = (Y(x, t_i) - + y_i)} the covariance matrix above should be multiplied by the variance + of the residuals about the best-fit @math{\sigma^2 = \sum (y_i - Y(x,t_i))^2 / (n-p)} + to give the variance-covariance + matrix @math{\sigma^2 C}. This estimates the statistical error on the + best-fit parameters from the scatter of the underlying data. + + For more information about covariance matrices see @ref{Fitting Overview}. @end deftypefun @comment ============================================================ *************** *** 467,472 **** --- 536,542 ---- @example f_i = ((A \exp(-\lambda t_i) + b) - y_i)/\sigma_i @end example + @end ifinfo @noindent where we have chosen @math{t_i = i}. The Jacobian matrix @math{J} is *************** *** 484,571 **** @example J_@{ij@} = d f_i / d x_j @end example @end ifinfo @noindent where @math{x_0 = A}, @math{x_1 = \lambda} and @math{x_2 = b}. @example ! #include ! #include ! #include ! #include ! #include ! #include ! #include ! ! struct data @{ ! size_t n; ! double * y; ! double * sigma; ! @}; ! ! int ! expb_f (const gsl_vector * x, void *params, ! gsl_vector * f) ! @{ ! size_t n = ((struct data *)params)->n; ! double *y = ((struct data *)params)->y; ! double *sigma = ((struct data *) params)->sigma; ! ! double A = gsl_vector_get (x, 0); ! double lambda = gsl_vector_get (x, 1); ! double b = gsl_vector_get (x, 2); ! ! size_t i; ! ! for (i = 0; i < n; i++) ! @{ ! /* Model Yi = A * exp(-lambda * i) + b */ ! double t = i; ! double Yi = A * exp (-lambda * t) + b; ! gsl_vector_set (f, i, (Yi - y[i])/sigma[i]); ! @} ! ! return GSL_SUCCESS; ! @} ! ! int ! expb_df (const gsl_vector * x, void *params, ! gsl_matrix * J) ! @{ ! size_t n = ((struct data *)params)->n; ! double *sigma = ((struct data *) params)->sigma; ! ! double A = gsl_vector_get (x, 0); ! double lambda = gsl_vector_get (x, 1); ! ! size_t i; ! ! for (i = 0; i < n; i++) ! @{ ! /* Jacobian matrix J(i,j) = dfi / dxj, */ ! /* where fi = (Yi - yi)/sigma[i], */ ! /* Yi = A * exp(-lambda * i) + b */ ! /* and the xj are the parameters (A,lambda,b) */ ! double t = i; ! double s = sigma[i]; ! double e = exp(-lambda * t); ! gsl_matrix_set (J, i, 0, e/s); ! gsl_matrix_set (J, i, 1, -t * A * e/s); ! gsl_matrix_set (J, i, 2, 1/s); ! @} ! return GSL_SUCCESS; ! @} ! ! int ! expb_fdf (const gsl_vector * x, void *params, ! gsl_vector * f, gsl_matrix * J) ! @{ ! expb_f (x, params, f); ! expb_df (x, params, J); ! ! return GSL_SUCCESS; ! @} @end example @noindent The main part of the program sets up a Levenberg-Marquardt solver and some simulated random data. The data uses the known parameters --- 554,568 ---- @example J_@{ij@} = d f_i / d x_j @end example + @end ifinfo @noindent where @math{x_0 = A}, @math{x_1 = \lambda} and @math{x_2 = b}. @example ! @verbatiminclude examples/expfit.c @end example + @noindent The main part of the program sets up a Levenberg-Marquardt solver and some simulated random data. The data uses the known parameters *************** *** 574,710 **** chosen as (0.0, 1.0, 0.0). @example ! #define N 40 ! ! int ! main (void) ! @{ ! const gsl_multifit_fdfsolver_type *T; ! gsl_multifit_fdfsolver *s; ! ! int status; ! size_t i, iter = 0; ! ! const size_t n = N; ! const size_t p = 3; ! ! gsl_matrix *covar = gsl_matrix_alloc (p, p); ! double y[N], sigma[N]; ! struct data d = @{ n, y, sigma@}; ! gsl_multifit_function_fdf f; ! double x_init[3] = @{ 1.0, 0.0, 0.0 @}; ! gsl_vector_view x = gsl_vector_view_array (x_init, p); ! const gsl_rng_type * type; ! gsl_rng * r; ! ! gsl_rng_env_setup(); ! ! type = gsl_rng_default; ! r = gsl_rng_alloc (type); ! ! f.f = &expb_f; ! f.df = &expb_df; ! f.fdf = &expb_fdf; ! f.n = n; ! f.p = p; ! f.params = &d; ! ! /* This is the data to be fitted */ ! ! for (i = 0; i < n; i++) ! @{ ! double t = i; ! y[i] = 1.0 + 5 * exp (-0.1 * t) ! + gsl_ran_gaussian (r, 0.1); ! sigma[i] = 0.1; ! printf ("data: %d %g %g\n", i, y[i], sigma[i]); ! @}; ! ! ! T = gsl_multifit_fdfsolver_lmsder; ! s = gsl_multifit_fdfsolver_alloc (T, n, p); ! gsl_multifit_fdfsolver_set (s, &f, &x.vector); ! ! print_state (iter, s); ! ! do ! @{ ! iter++; ! status = gsl_multifit_fdfsolver_iterate (s); ! ! printf ("status = %s\n", gsl_strerror (status)); ! ! print_state (iter, s); ! ! if (status) ! break; ! ! status = gsl_multifit_test_delta (s->dx, s->x, ! 1e-4, 1e-4); ! @} ! while (status == GSL_CONTINUE && iter < 500); ! ! gsl_multifit_covar (s->J, 0.0, covar); ! ! #define FIT(i) gsl_vector_get(s->x, i) ! #define ERR(i) sqrt(gsl_matrix_get(covar,i,i)) ! ! printf ("A = %.5f +/- %.5f\n", FIT(0), ERR(0)); ! printf ("lambda = %.5f +/- %.5f\n", FIT(1), ERR(1)); ! printf ("b = %.5f +/- %.5f\n", FIT(2), ERR(2)); ! ! @{ ! double chi = gsl_blas_dnrm2(s->f); ! printf("chisq/dof = %g\n", pow(chi, 2.0)/ (n - p)); ! @} ! ! printf ("status = %s\n", gsl_strerror (status)); ! ! gsl_multifit_fdfsolver_free (s); ! return 0; ! @} ! ! void ! print_state (size_t iter, gsl_multifit_fdfsolver * s) ! @{ ! printf ("iter: %3u x = % 15.8f % 15.8f % 15.8f " ! "|f(x)| = %g\n", ! iter, ! gsl_vector_get (s->x, 0), ! gsl_vector_get (s->x, 1), ! gsl_vector_get (s->x, 2), ! gsl_blas_dnrm2 (s->f)); ! @} @end example @noindent The iteration terminates when the change in x is smaller than 0.0001, as both an absolute and relative change. Here are the results of running the program: @smallexample ! iter: 0 x = 1.00000000 0.00000000 0.00000000 |f(x)| = 118.574 ! iter: 1 x = 1.64919392 0.01780040 0.64919392 |f(x)| = 77.2068 ! iter: 2 x = 2.86269020 0.08032198 1.45913464 |f(x)| = 38.0579 ! iter: 3 x = 4.97908864 0.11510525 1.06649948 |f(x)| = 10.1548 ! iter: 4 x = 5.03295496 0.09912462 1.00939075 |f(x)| = 6.4982 ! iter: 5 x = 5.05811477 0.10055914 0.99819876 |f(x)| = 6.33121 ! iter: 6 x = 5.05827645 0.10051697 0.99756444 |f(x)| = 6.33119 ! iter: 7 x = 5.05828006 0.10051819 0.99757710 |f(x)| = 6.33119 ! ! A = 5.05828 +/- 0.05983 ! lambda = 0.10052 +/- 0.00309 ! b = 0.99758 +/- 0.03944 ! chisq/dof = 1.08335 status = success @end smallexample @noindent The approximate values of the parameters are found correctly, and the chi-squared value indicates a good fit (the chi-squared per degree of freedom is approximately 1). In this case the errors on the parameters can be estimated from the square roots of the diagonal elements of the ! covariance matrix. If the chi-squared value indicates a poor fit then ! error estimates obtained from the covariance matrix are not valid, since ! the Gaussian approximation would not apply. @iftex @sp 1 --- 571,620 ---- chosen as (0.0, 1.0, 0.0). @example ! @verbatiminclude examples/nlfit.c @end example + @noindent The iteration terminates when the change in x is smaller than 0.0001, as both an absolute and relative change. Here are the results of running the program: @smallexample ! iter: 0 x=1.00000000 0.00000000 0.00000000 |f(x)|=117.349 ! status=success ! iter: 1 x=1.64659312 0.01814772 0.64659312 |f(x)|=76.4578 ! status=success ! iter: 2 x=2.85876037 0.08092095 1.44796363 |f(x)|=37.6838 ! status=success ! iter: 3 x=4.94899512 0.11942928 1.09457665 |f(x)|=9.58079 ! status=success ! iter: 4 x=5.02175572 0.10287787 1.03388354 |f(x)|=5.63049 ! status=success ! iter: 5 x=5.04520433 0.10405523 1.01941607 |f(x)|=5.44398 ! status=success ! iter: 6 x=5.04535782 0.10404906 1.01924871 |f(x)|=5.44397 ! chisq/dof = 0.800996 ! A = 5.04536 +/- 0.06028 ! lambda = 0.10405 +/- 0.00316 ! b = 1.01925 +/- 0.03782 status = success @end smallexample + @noindent The approximate values of the parameters are found correctly, and the chi-squared value indicates a good fit (the chi-squared per degree of freedom is approximately 1). In this case the errors on the parameters can be estimated from the square roots of the diagonal elements of the ! covariance matrix. ! ! If the chi-squared value shows a poor fit (i.e. @c{$\chi^2/(n-p) \gg 1$} ! @math{chi^2/dof >> 1}) then the error estimates obtained from the ! covariance matrix will be too small. In the example program the error estimates ! are multiplied by @c{$\sqrt{\chi^2/(n-p)}$} ! @math{\sqrt@{\chi^2/dof@}} in this case, a common way of increasing the ! errors for a poor fit. Note that a poor fit will result from the use ! an inappropriate model, and the scaled error estimates may then ! be outside the range of validity for gaussian errors. @iftex @sp 1 *************** *** 721,726 **** --- 631,637 ---- J.J. Mor@'e, @cite{The Levenberg-Marquardt Algorithm: Implementation and Theory}, Lecture Notes in Mathematics, v630 (1978), ed G. Watson. @end itemize + @noindent The following paper is also relevant to the algorithms described in this section, diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/multimin.texi gsl-1.8/doc/multimin.texi *** gsl-1.7/doc/multimin.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/multimin.texi Thu Mar 16 18:00:21 2006 *************** *** 43,48 **** --- 43,49 ---- @example f(x_1, @dots{}, x_n) @end example + @end ifinfo @noindent takes a value which is lower than at any neighboring point. For smooth *************** *** 80,85 **** --- 81,87 ---- @item test @var{s} for convergence, and repeat iteration if necessary @end itemize + @noindent Each iteration step consists either of an improvement to the line-minimisation in the current direction or an update to the search *************** *** 151,156 **** --- 153,159 ---- printf ("s is a '%s' minimizer\n", gsl_multimin_fdfminimizer_name (s)); @end example + @noindent would print something like @code{s is a 'conjugate_pr' minimizer}. @end deftypefun *************** *** 215,220 **** --- 218,224 ---- a pointer to the parameters of the function. @end table @end deftp + @noindent The following example function defines a simple paraboloid with two parameters, *************** *** 259,264 **** --- 263,269 ---- my_df(x, params, df); @} @end example + @noindent The function can be initialized using the following code, *************** *** 288,293 **** --- 293,299 ---- the iteration encounters an unexpected problem then an error code will be returned. @end deftypefun + @noindent The minimizer maintains a current best estimate of the minimum at all times. This information can be accessed with the following auxiliary *************** *** 325,330 **** --- 331,337 ---- @item An error has occurred. @end itemize + @noindent The handling of these conditions is under user control. The functions below allow the user to test the precision of the current result. *************** *** 346,351 **** --- 353,359 ---- @example |g| < epsabs @end example + @end ifinfo @noindent and returns @code{GSL_CONTINUE} otherwise. A suitable choice of *************** *** 454,459 **** --- 462,468 ---- ... = ... p_n = (x_0, x_1, ... , x_n+step_size_n) @end example + @end ifinfo @noindent These vectors form the @math{n+1} vertices of a simplex in @math{n} *************** *** 543,548 **** --- 552,558 ---- return 0; @} @end smallexample + @noindent The initial step-size is chosen as 0.01, a conservative estimate in this case, and the line minimization parameter is set at 0.0001. The program *************** *** 566,571 **** --- 576,582 ---- Minimum found at: 13 1.00000 2.00000 30.00000 @end example + @noindent Note that the algorithm gradually increases the step size as it successfully moves downhill, as can be seen by plotting the successive *************** *** 575,580 **** --- 586,592 ---- @sp 1 @center @image{multimin,3.4in} @end iftex + @noindent The conjugate gradient algorithm finds the minimum on its second direction because the function is purely quadratic. Additional *************** *** 652,657 **** --- 664,670 ---- return status; @} @end smallexample + @noindent The minimum search stops when the Simplex size drops to 0.01. The output is shown below. *************** *** 684,689 **** --- 697,703 ---- converged to minimum at 25 1.007e+00 2.003e+00 f() = 30.001 size = 0.010 @end example + @noindent The simplex size first increases, while the simplex moves towards the minimum. After a while the size begins to decrease as the simplex *************** *** 701,706 **** --- 715,721 ---- ``Minimization Methods'', p.@: 325--335, Springer (1997), ISBN 3-540-62057-5. @end itemize + @noindent The simplex algorithm is described in the following paper, *************** *** 709,712 **** --- 724,728 ---- @cite{A simplex method for function minimization}, Computer Journal vol.@: 7 (1965), 308--315. @end itemize + @noindent diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/multiroots.texi gsl-1.8/doc/multiroots.texi *** gsl-1.7/doc/multiroots.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/multiroots.texi Thu Mar 16 18:00:21 2006 *************** *** 48,53 **** --- 48,54 ---- @example f_i (x_1, ..., x_n) = 0 for i = 1 ... n. @end example + @end ifinfo @noindent In general there are no bracketing methods available for @math{n} *************** *** 66,71 **** --- 67,73 ---- @example x -> x' = x - J^@{-1@} f(x) @end example + @end ifinfo @noindent where @math{x}, @math{f} are vector quantities and @math{J} is the *************** *** 91,96 **** --- 93,99 ---- @item test @var{s} for convergence, and repeat iteration if necessary @end itemize + @noindent The evaluation of the Jacobian matrix can be problematic, either because programming the derivatives is intractable or because computation of the *************** *** 128,133 **** --- 131,137 ---- gsl_multiroot_fsolver * s = gsl_multiroot_fsolver_alloc (T, 3); @end example + @noindent If there is insufficient memory to create the solver then the function returns a null pointer and the error handler is invoked with an error *************** *** 146,151 **** --- 150,156 ---- gsl_multiroot_fdfsolver * s = gsl_multiroot_fdfsolver_alloc (T, 2); @end example + @noindent If there is insufficient memory to create the solver then the function returns a null pointer and the error handler is invoked with an error *************** *** 175,180 **** --- 180,186 ---- printf ("s is a '%s' solver\n", gsl_multiroot_fdfsolver_name (s)); @end example + @noindent would print something like @code{s is a 'newton' solver}. @end deftypefun *************** *** 222,227 **** --- 228,234 ---- f_1(x) = A x_0 x_1 - 1, f_2(x) = exp(-x_0) + exp(-x_1) - (1 + 1/A) @end example + @end ifinfo @noindent with @math{A = 10^4}. The following code defines a *************** *** 337,342 **** --- 344,350 ---- FDF.n = 2; FDF.params = 0; @end example + @noindent Note that the function @code{powell_fdf} is able to reuse existing terms from the function when calculating the Jacobian, thus saving time. *************** *** 428,433 **** --- 436,442 ---- @example |dx_i| < epsabs + epsrel |x_i| @end example + @end ifinfo @noindent for each component of @var{x} and returns @code{GSL_CONTINUE} otherwise. *************** *** 450,455 **** --- 459,465 ---- @example \sum_i |f_i| < epsabs @end example + @end ifinfo @noindent and returns @code{GSL_CONTINUE} otherwise. This criterion is suitable *************** *** 509,514 **** --- 519,525 ---- @example dx = - \alpha J^@{-1@} f(x) - \beta \nabla |f(x)|^2. @end example + @end ifinfo @noindent This combination of Newton and gradient directions is referred to as a *************** *** 568,573 **** --- 579,585 ---- @example x -> x' = x - J^@{-1@} f(x) @end example + @end ifinfo @noindent where the Jacobian matrix @math{J} is computed from the derivative *************** *** 585,590 **** --- 597,603 ---- @example J dx = - f(x) @end example + @end ifinfo @noindent using LU decomposition. *************** *** 611,616 **** --- 624,630 ---- @example t = (\sqrt(1 + 6 r) - 1) / (3 r) @end example + @end ifinfo @noindent is proposed, with @math{r} being the ratio of norms *************** *** 665,670 **** --- 679,685 ---- @example x -> x - J^@{-1@} f(x) @end example + @end ifinfo @noindent where the Jacobian matrix @math{J} is approximated by taking finite *************** *** 682,687 **** --- 697,703 ---- @example J_@{ij@} = (f_i(x + \delta_j) - f_i(x)) / \delta_j @end example + @end ifinfo @noindent where @math{\delta_j} is a step of size @math{\sqrt\epsilon |x_j|} with *************** *** 716,721 **** --- 732,738 ---- @example J^@{-1@} \to J^@{-1@} - (J^@{-1@} df - dx) dx^T J^@{-1@} / dx^T J^@{-1@} df @end example + @end ifinfo @noindent where the vectors @math{dx} and @math{df} are the changes in @math{x} *************** *** 756,761 **** --- 773,779 ---- f_1 (x, y) = a (1 - x) f_2 (x, y) = b (y - x^2) @end example + @end ifinfo @noindent with @math{a = 1, b = 10}. The solution of this system lies at *************** *** 794,799 **** --- 812,818 ---- return GSL_SUCCESS; @} @end example + @noindent The main program begins by creating the function object @code{f}, with the arguments @code{(x,y)} and parameters @code{(a,b)}. The solver *************** *** 848,853 **** --- 867,873 ---- return 0; @} @end example + @noindent Note that it is important to check the return status of each solver step, in case the algorithm becomes stuck. If an error condition is *************** *** 873,878 **** --- 893,899 ---- gsl_vector_get (s->f, 1)); @} @end example + @noindent Here are the results of running the program. The algorithm is started at @math{(-10,-5)} far from the solution. Since the solution is hidden in *************** *** 896,901 **** --- 917,923 ---- iter = 11 x = 1.000 1.000 f(x) = 0.000e+00 0.000e+00 status = success @end smallexample + @noindent Note that the algorithm does not update the location on every iteration. Some iterations are used to adjust the trust-region *************** *** 943,948 **** --- 965,971 ---- return GSL_SUCCESS; @} @end example + @noindent The main program now makes calls to the corresponding @code{fdfsolver} versions of the functions, *************** *** 998,1003 **** --- 1021,1027 ---- return 0; @} @end example + @noindent The addition of derivative information to the @code{hybrids} solver does not make any significant difference to its behavior, since it able to *************** *** 1014,1019 **** --- 1038,1044 ---- iter = 3 x = 1.000 1.000 f(x) = -2.220e-16 -4.441e-15 status = success @end smallexample + @noindent The convergence is much more rapid, but takes a wide excursion out to the point @math{(-4.23,-65.3)}. This could cause the algorithm to go diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/ntuple.texi gsl-1.8/doc/ntuple.texi *** gsl-1.7/doc/ntuple.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/ntuple.texi Thu Mar 16 18:00:21 2006 *************** *** 117,122 **** --- 117,123 ---- void * params; @} gsl_ntuple_select_fn; @end smallexample + @noindent The struct component @var{function} should return a non-zero value for each ntuple row that is to be included in the histogram. *************** *** 130,135 **** --- 131,137 ---- void * params; @} gsl_ntuple_value_fn; @end smallexample + @noindent In this case the struct component @var{function} should return the value to be added to the histogram for the ntuple row. *************** *** 159,164 **** --- 161,167 ---- @example @verbatiminclude examples/ntuplew.c @end example + @noindent The next program analyses the ntuple data in the file @file{test.dat}. The analysis procedure is to compute the squared-magnitude of each diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/ode-initval.texi gsl-1.8/doc/ode-initval.texi *** gsl-1.7/doc/ode-initval.texi Wed Jun 22 14:48:51 2005 --- gsl-1.8/doc/ode-initval.texi Thu Mar 30 19:03:34 2006 *************** *** 36,41 **** --- 36,42 ---- @example dy_i(t)/dt = f_i(t, y_1(t), ..., y_n(t)) @end example + @end ifinfo @noindent for @math{i = 1, \dots, n}. The stepping functions rely on the vector *************** *** 116,121 **** --- 117,123 ---- printf ("step method is '%s'\n", gsl_odeiv_step_name (s)); @end example + @noindent would print something like @code{step method is 'rk4'}. @end deftypefun *************** *** 232,237 **** --- 234,240 ---- @example D_i = eps_abs + eps_rel * (a_y |y_i| + a_dydt h |y'_i|) @end example + @end ifinfo @noindent and comparing it with the observed error @math{E_i = |yerr_i|}. If the *************** *** 250,255 **** --- 253,259 ---- @example h_new = h_old * S * (E/D)^(-1/q) @end example + @end ifinfo @noindent where @math{q} is the consistency order of the method (e.g. @math{q=4} for *************** *** 273,278 **** --- 277,283 ---- @example h_new = h_old * S * (E/D)^(-1/(q+1)) @end example + @end ifinfo @noindent This encompasses all the standard error scaling methods. To avoid *************** *** 314,319 **** --- 319,325 ---- @example D_i = eps_abs * s_i + eps_rel * (a_y |y_i| + a_dydt h |y'_i|) @end example + @end ifinfo @noindent where @math{s_i} is the @math{i}-th component of the array @var{scale_abs}. *************** *** 361,366 **** --- 367,373 ---- printf ("control method is '%s'\n", gsl_odeiv_control_name (c)); @end example + @noindent would print something like @code{control method is 'standard'} @end deftypefun *************** *** 431,436 **** --- 438,444 ---- @example x''(t) + \mu x'(t) (x(t)^2 - 1) + x(t) = 0 @end example + @end ifinfo @noindent This can be converted into a first order system suitable for use with *************** *** 452,457 **** --- 460,466 ---- x' = y y' = -x + \mu y (1-x^2) @end example + @end ifinfo @noindent The program begins by defining functions for these derivatives and *************** *** 460,466 **** --- 469,480 ---- @example @verbatiminclude examples/ode-initval.c @end example + @noindent + For functions with multiple parameters, the appropriate information + can be passed in through the @var{params} argument using a pointer to + a struct. + The main loop of the program evolves the solution from @math{(y, y') = (1, 0)} at @math{t=0} to @math{t=100}. The step-size @math{h} is automatically adjusted by the controller to maintain an absolute *************** *** 497,502 **** --- 511,517 ---- printf ("%.5e %.5e %.5e\n", t, y[0], y[1]); @} @end example + @noindent It is also possible to work with a non-adaptive integrator, using only the stepping function itself. The following program uses the @code{rk4} *************** *** 506,511 **** --- 521,527 ---- @example @verbatiminclude examples/odefixed.c @end example + @noindent The derivatives must be initialized for the starting point @math{t=0} before the first step is taken. Subsequent steps use the output *************** *** 523,528 **** --- 539,545 ---- Abramowitz & Stegun (eds.), @cite{Handbook of Mathematical Functions}, Section 25.5. @end itemize + @noindent The implicit Bulirsch-Stoer algorithm @code{bsimp} is described in the following paper, diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/permutation.texi gsl-1.8/doc/permutation.texi *** gsl-1.7/doc/permutation.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/permutation.texi Thu Mar 16 18:00:21 2006 *************** *** 48,53 **** --- 48,54 ---- @} gsl_permutation; @end example @comment + @noindent @node Permutation allocation *************** *** 262,267 **** --- 263,269 ---- @item Within each cycle, put the smallest number first @item Order the cycles in decreasing order of the first number in the cycle. @end enumerate + @noindent For example, the linear representation (2 4 3 0 1) is represented as (1 4) (0 2 3) in canonical form. The permutation corresponds to an *************** *** 309,314 **** --- 311,317 ---- @example @verbatiminclude examples/permshuffle.c @end example + @noindent Here is the output from the program, *************** *** 318,323 **** --- 321,327 ---- random permutation: 1 3 5 2 7 6 0 4 9 8 inverse permutation: 6 0 3 1 7 2 5 4 9 8 @end example + @noindent The random permutation @code{p[i]} and its inverse @code{q[i]} are related through the identity @code{p[q[i]] = i}, which can be verified *************** *** 329,334 **** --- 333,339 ---- @example @verbatiminclude examples/permseq.c @end example + @noindent Here is the output from the program, *************** *** 341,346 **** --- 346,352 ---- 2 0 1 2 1 0 @end example + @noindent The permutations are generated in lexicographic order. To reverse the sequence, begin with the final permutation (which is the reverse of the *************** *** 358,363 **** --- 364,370 ---- Donald E. Knuth, @cite{The Art of Computer Programming: Sorting and Searching} (Vol 3, 3rd Ed, 1997), Addison-Wesley, ISBN 0201896850. @end itemize + @noindent For the definition of the @dfn{canonical form} see, diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/poly.texi gsl-1.8/doc/poly.texi *** gsl-1.7/doc/poly.texi Wed Jul 27 15:39:13 2005 --- gsl-1.8/doc/poly.texi Thu Mar 16 18:00:21 2006 *************** *** 80,85 **** --- 80,86 ---- @example a x^2 + b x + c = 0 @end example + @end ifinfo @noindent The number of real roots (either zero, one or two) is returned, and *************** *** 116,121 **** --- 117,123 ---- @example a z^2 + b z + c = 0 @end example + @end ifinfo @noindent The number of complex roots is returned (either one or two) and the *************** *** 146,151 **** --- 148,154 ---- @example x^3 + a x^2 + b x + c = 0 @end example + @end ifinfo @noindent with a leading coefficient of unity. The number of real roots (either *************** *** 173,178 **** --- 176,182 ---- @example z^3 + a z^2 + b z + c = 0 @end example + @end ifinfo @noindent The number of complex roots is returned (always three) and the locations *************** *** 245,250 **** --- 249,255 ---- @example 1, e^@{2\pi i /5@}, e^@{4\pi i /5@}, e^@{6\pi i /5@}, e^@{8\pi i /5@} @end example + @end ifinfo @noindent The following program will find these roots. *************** *** 252,257 **** --- 257,263 ---- @example @verbatiminclude examples/polyroots.c @end example + @noindent The output of the program is, *************** *** 259,264 **** --- 265,271 ---- $ ./a.out @verbatiminclude examples/polyroots.out @end example + @noindent which agrees with the analytic result, @math{z_n = \exp(2 \pi n i/5)}. diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/qrng.texi gsl-1.8/doc/qrng.texi *** gsl-1.7/doc/qrng.texi Mon Jun 20 11:22:41 2005 --- gsl-1.8/doc/qrng.texi Thu Mar 16 18:00:21 2006 *************** *** 117,122 **** --- 117,123 ---- @example @verbatiminclude examples/qrng.c @end example + @noindent Here is the output from the program, *************** *** 131,136 **** --- 132,138 ---- 0.12500 0.62500 .... @end example + @noindent It can be seen that successive points progressively fill-in the spaces between previous points. diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/randist.texi gsl-1.8/doc/randist.texi *** gsl-1.7/doc/randist.texi Tue Sep 13 09:43:11 2005 --- gsl-1.8/doc/randist.texi Fri Mar 17 15:51:48 2006 *************** *** 28,33 **** --- 28,41 ---- corresponding cumulative distribution functions are declared in @file{gsl_cdf.h}. + Note that the discrete random variate functions always + return a value of type @code{unsigned int}, and on most platforms this + has a maximum value of @c{$2^{32}-1 \approx 4.29\times10^9$} + @math{2^32-1 ~=~ 4.29e9}. They should only be called with + a safe range of parameters (where there is a negligible probability of + a variate exceeding this limit) to prevent incorrect results due to + overflow. + @menu * Random Number Distribution Introduction:: * The Gaussian Distribution:: *************** *** 93,98 **** --- 101,107 ---- @example P(x) = \int_@{-\infty@}^@{x@} dx' p(x') @end example + @end ifinfo @noindent and gives the probability of a variate taking a value less than @math{x}. *************** *** 111,116 **** --- 120,126 ---- @example Q(x) = \int_@{x@}^@{+\infty@} dx' p(x') @end example + @end ifinfo @noindent and gives the probability of a variate taking a value greater than @math{x}. *************** *** 123,131 **** The inverse cumulative distributions, @c{$x=P^{-1}(P)$} @math{x=P^@{-1@}(P)} and @c{$x=Q^{-1}(Q)$} @math{x=Q^@{-1@}(Q)} give the values of @math{x} ! which correspond to a specific value of @math{P} or {Q}. They can be used to find confidence limits from probability values. @page @node The Gaussian Distribution @section The Gaussian Distribution --- 133,187 ---- The inverse cumulative distributions, @c{$x=P^{-1}(P)$} @math{x=P^@{-1@}(P)} and @c{$x=Q^{-1}(Q)$} @math{x=Q^@{-1@}(Q)} give the values of @math{x} ! which correspond to a specific value of @math{P} or @math{Q}. They can be used to find confidence limits from probability values. + For discrete distributions the probability of sampling the integer + value @math{k} is given by @math{p(k)}, where @math{\sum_k p(k) = 1}. + The cumulative distribution for the lower tail @math{P(k)} of a + discrete distribution is defined as, + @tex + \beforedisplay + $$ + P(k) = \sum_{i \le k} p(i) + $$ + \afterdisplay + @end tex + @ifinfo + + @example + P(k) = \sum_@{i <= k@} p(i) + @end example + + @end ifinfo + @noindent + where the sum is over the allowed range of the distribution less than + or equal to @math{k}. + + The cumulative distribution for the upper tail of a discrete + distribution @math{Q(k)} is defined as + @tex + \beforedisplay + $$ + Q(k) = \sum_{i > k} p(i) + $$ + \afterdisplay + @end tex + @ifinfo + + @example + Q(k) = \sum_@{i > k@} p(i) + @end example + + @end ifinfo + @noindent + giving the sum of probabilities for all values greater than @math{k}. + These two definitions satisfy the identity @math{P(k)+Q(k)=1}. + + If the range of the distribution is 1 to @math{n} inclusive then + @math{P(n)=1}, @math{Q(n)=0} while @math{P(1) = p(1)}, + @math{Q(1)=1-p(1)}. + @page @node The Gaussian Distribution @section The Gaussian Distribution *************** *** 146,151 **** --- 202,208 ---- @example p(x) dx = @{1 \over \sqrt@{2 \pi \sigma^2@}@} \exp (-x^2 / 2\sigma^2) dx @end example + @end ifinfo @noindent for @math{x} in the range @math{-\infty} to @math{+\infty}. Use the *************** *** 166,174 **** \centerline{\input rand-gaussian.tex} @end tex ! @deftypefun double gsl_ran_gaussian_ratio_method (const gsl_rng * @var{r}, double @var{sigma}) ! This function computes a Gaussian random variate using the ! Kinderman-Monahan ratio method. @end deftypefun @deftypefun double gsl_ran_ugaussian (const gsl_rng * @var{r}) --- 223,233 ---- \centerline{\input rand-gaussian.tex} @end tex ! @deftypefun double gsl_ran_gaussian_ziggurat (const gsl_rng * @var{r}, double @var{sigma}) ! @deftypefunx double gsl_ran_gaussian_ratio_method (const gsl_rng * @var{r}, double @var{sigma}) ! This function computes a Gaussian random variate using the alternative ! Marsaglia-Tsang ziggurat and Kinderman-Monahan-Leva ratio methods. The ! Ziggurat algorithm is the fastest available algorithm in most cases. @end deftypefun @deftypefun double gsl_ran_ugaussian (const gsl_rng * @var{r}) *************** *** 222,227 **** --- 281,287 ---- @example p(x) dx = @{1 \over N(a;\sigma) \sqrt@{2 \pi \sigma^2@}@} \exp (- x^2/(2 \sigma^2)) dx @end example + @end ifinfo @noindent for @math{x > a} where @math{N(a;\sigma)} is the normalization constant, *************** *** 284,289 **** --- 344,350 ---- @example p(x,y) dx dy = @{1 \over 2 \pi \sigma_x \sigma_y \sqrt@{1-\rho^2@}@} \exp (-(x^2/\sigma_x^2 + y^2/\sigma_y^2 - 2 \rho x y/(\sigma_x\sigma_y))/2(1-\rho^2)) dx dy @end example + @end ifinfo @noindent for @math{x,y} in the range @math{-\infty} to @math{+\infty}. The *************** *** 322,327 **** --- 383,389 ---- @example p(x) dx = @{1 \over \mu@} \exp(-x/\mu) dx @end example + @end ifinfo @noindent for @c{$x \ge 0$} *************** *** 368,373 **** --- 430,436 ---- @example p(x) dx = @{1 \over 2 a@} \exp(-|x/a|) dx @end example + @end ifinfo @noindent for @math{-\infty < x < \infty}. *************** *** 413,418 **** --- 476,482 ---- @example p(x) dx = @{1 \over 2 a \Gamma(1+1/b)@} \exp(-|x/a|^b) dx @end example + @end ifinfo @noindent for @c{$x \ge 0$} *************** *** 433,438 **** --- 497,510 ---- \centerline{\input rand-exppow.tex} @end tex + @deftypefun double gsl_cdf_exppow_P (double @var{x}, double @var{a}, double @var{b}) + @deftypefunx double gsl_cdf_exppow_Q (double @var{x}, double @var{a}, double @var{b}) + These functions compute the cumulative distribution functions + @math{P(x)}, @math{Q(x)} for the exponential power distribution with + parameters @var{a} and @var{b}. + @end deftypefun + + @page @node The Cauchy Distribution @section The Cauchy Distribution *************** *** 453,458 **** --- 525,531 ---- @example p(x) dx = @{1 \over a\pi (1 + (x/a)^2) @} dx @end example + @end ifinfo @noindent for @math{x} in the range @math{-\infty} to @math{+\infty}. The Cauchy *************** *** 499,504 **** --- 572,578 ---- @example p(x) dx = @{x \over \sigma^2@} \exp(- x^2/(2 \sigma^2)) dx @end example + @end ifinfo @noindent for @math{x > 0}. *************** *** 545,550 **** --- 619,625 ---- @example p(x) dx = @{x \over \sigma^2@} \exp ((a^2 - x^2) /(2 \sigma^2)) dx @end example + @end ifinfo @noindent for @math{x > a}. *************** *** 631,636 **** --- 706,712 ---- @example p(x) = @{1 \over 2 \pi@} \int_@{-\infty@}^@{+\infty@} dt \exp(-it x - |c t|^alpha) @end example + @end ifinfo @noindent There is no explicit solution for the form of @math{p(x)} and the *************** *** 673,678 **** --- 749,755 ---- @example p(x) = @{1 \over 2 \pi@} \int_@{-\infty@}^@{+\infty@} dt \exp(-it x - |c t|^alpha (1-i beta sign(t) tan(pi alpha/2))) @end example + @end ifinfo @noindent When @math{\alpha = 1} the term @math{\tan(\pi \alpha/2)} is replaced by *************** *** 728,733 **** --- 805,811 ---- @example p(x) dx = @{1 \over \Gamma(a) b^a@} x^@{a-1@} e^@{-x/b@} dx @end example + @end ifinfo @noindent for @math{x > 0}. *************** *** 737,742 **** --- 815,825 ---- @cindex Erlang distribution The gamma distribution with an integer parameter @var{a} is known as the Erlang distribution. + The variates are computed using the algorithms from Knuth (vol 2). + @end deftypefun + + @deftypefun double gsl_ran_gamma_mt (const gsl_rng * @var{r}, double @var{a}, double @var{b}) + This function returns a gamma variate using the Marsaglia-Tsang fast gamma method. @end deftypefun @deftypefun double gsl_ran_gamma_pdf (double @var{x}, double @var{a}, double @var{b}) *************** *** 779,784 **** --- 862,868 ---- @example p(x) dx = @{1 \over (b-a)@} dx @end example + @end ifinfo @noindent if @c{$a \le x < b$} *************** *** 825,830 **** --- 909,915 ---- @example p(x) dx = @{1 \over x \sqrt@{2 \pi \sigma^2@} @} \exp(-(\ln(x) - \zeta)^2/2 \sigma^2) dx @end example + @end ifinfo @noindent for @math{x > 0}. *************** *** 869,874 **** --- 954,960 ---- @example X_i = \sum_i Y_i^2 @end example + @end ifinfo @noindent has a chi-squared distribution with @math{n} degrees of freedom. *************** *** 889,894 **** --- 975,981 ---- @example p(x) dx = @{1 \over 2 \Gamma(\nu/2) @} (x/2)^@{\nu/2 - 1@} \exp(-x/2) dx @end example + @end ifinfo @noindent for @c{$x \ge 0$} *************** *** 935,940 **** --- 1022,1028 ---- @example X = @{ (Y_1 / \nu_1) \over (Y_2 / \nu_2) @} @end example + @end ifinfo @noindent has an F-distribution @math{F(x;\nu_1,\nu_2)}. *************** *** 962,967 **** --- 1050,1056 ---- \nu_1^@{\nu_1/2@} \nu_2^@{\nu_2/2@} x^@{\nu_1/2 - 1@} (\nu_2 + \nu_1 x)^@{-\nu_1/2 -\nu_2/2@} @end example + @end ifinfo @noindent for @c{$x \ge 0$} *************** *** 981,989 **** @deftypefun double gsl_cdf_fdist_P (double @var{x}, double @var{nu1}, double @var{nu2}) @deftypefunx double gsl_cdf_fdist_Q (double @var{x}, double @var{nu1}, double @var{nu2}) These functions compute the cumulative distribution functions ! @math{P(x)} and @math{Q(x)} for the F-distribution with @var{nu1} and ! @var{nu2} degrees of freedom. @end deftypefun @page --- 1070,1080 ---- @deftypefun double gsl_cdf_fdist_P (double @var{x}, double @var{nu1}, double @var{nu2}) @deftypefunx double gsl_cdf_fdist_Q (double @var{x}, double @var{nu1}, double @var{nu2}) + @deftypefunx double gsl_cdf_fdist_Pinv (double @var{P}, double @var{nu1}, double @var{nu2}) + @deftypefunx double gsl_cdf_fdist_Qinv (double @var{Q}, double @var{nu1}, double @var{nu2}) These functions compute the cumulative distribution functions ! @math{P(x)}, @math{Q(x)} and their inverses for the F-distribution ! with @var{nu1} and @var{nu2} degrees of freedom. @end deftypefun @page *************** *** 1004,1009 **** --- 1095,1101 ---- @example X = @{ Y_1 \over \sqrt@{Y_2 / \nu@} @} @end example + @end ifinfo @noindent has a t-distribution @math{t(x;\nu)} with @math{\nu} degrees of freedom. *************** *** 1027,1032 **** --- 1119,1125 ---- p(x) dx = @{\Gamma((\nu + 1)/2) \over \sqrt@{\pi \nu@} \Gamma(\nu/2)@} (1 + x^2/\nu)^@{-(\nu + 1)/2@} dx @end example + @end ifinfo @noindent for @math{-\infty < x < +\infty}. *************** *** 1071,1076 **** --- 1164,1170 ---- @example p(x) dx = @{\Gamma(a+b) \over \Gamma(a) \Gamma(b)@} x^@{a-1@} (1-x)^@{b-1@} dx @end example + @end ifinfo @noindent for @c{$0 \le x \le 1$} *************** *** 1090,1098 **** @deftypefun double gsl_cdf_beta_P (double @var{x}, double @var{a}, double @var{b}) @deftypefunx double gsl_cdf_beta_Q (double @var{x}, double @var{a}, double @var{b}) These functions compute the cumulative distribution functions ! @math{P(x)} and @math{Q(x)} for the beta distribution with ! parameters @var{a} and @var{b}. @end deftypefun @page --- 1184,1194 ---- @deftypefun double gsl_cdf_beta_P (double @var{x}, double @var{a}, double @var{b}) @deftypefunx double gsl_cdf_beta_Q (double @var{x}, double @var{a}, double @var{b}) + @deftypefunx double gsl_cdf_beta_Pinv (double @var{P}, double @var{a}, double @var{b}) + @deftypefunx double gsl_cdf_beta_Qinv (double @var{Q}, double @var{a}, double @var{b}) These functions compute the cumulative distribution functions ! @math{P(x)}, @math{Q(x)} and their inverses for the beta ! distribution with parameters @var{a} and @var{b}. @end deftypefun @page *************** *** 1115,1120 **** --- 1211,1217 ---- @example p(x) dx = @{ \exp(-x/a) \over a (1 + \exp(-x/a))^2 @} dx @end example + @end ifinfo @noindent for @math{-\infty < x < +\infty}. *************** *** 1159,1164 **** --- 1256,1262 ---- @example p(x) dx = (a/b) / (x/b)^@{a+1@} dx @end example + @end ifinfo @noindent for @c{$x \ge b$} *************** *** 1268,1273 **** --- 1366,1372 ---- @example p(x) dx = @{b \over a^b@} x^@{b-1@} \exp(-(x/a)^b) dx @end example + @end ifinfo @noindent for @c{$x \ge 0$} *************** *** 1315,1320 **** --- 1414,1420 ---- @example p(x) dx = a b \exp(-(b \exp(-ax) + ax)) dx @end example + @end ifinfo @noindent for @math{-\infty < x < \infty}. *************** *** 1361,1366 **** --- 1461,1467 ---- @example p(x) dx = a b x^@{-a-1@} \exp(-b x^@{-a@}) dx @end example + @end ifinfo @noindent for @math{0 < x < \infty}. *************** *** 1409,1414 **** --- 1510,1516 ---- p(\theta_1, ..., \theta_K) d\theta_1 ... d\theta_K = (1/Z) \prod_@{i=1@}^K \theta_i^@{\alpha_i - 1@} \delta(1 -\sum_@{i=1@}^K \theta_i) d\theta_1 ... d\theta_K @end example + @end ifinfo @noindent for @c{$\theta_i \ge 0$} *************** *** 1479,1484 **** --- 1581,1587 ---- C[0] = 0 C[k+1] = C[k]+P[k]. @end example + @end ifinfo @noindent Note that this construction produces @math{C[K]=1}. Now choose a *************** *** 1570,1575 **** --- 1673,1679 ---- @example p(k) = @{\mu^k \over k!@} \exp(-\mu) @end example + @end ifinfo @noindent for @c{$k \ge 0$} *************** *** 1587,1592 **** --- 1691,1704 ---- \centerline{\input rand-poisson.tex} @end tex + @deftypefun double gsl_cdf_poisson_P (unsigned int @var{k}, double @var{mu}) + @deftypefunx double gsl_cdf_poisson_Q (unsigned int @var{k}, double @var{mu}) + These functions compute the cumulative distribution functions + @math{P(k)}, @math{Q(k)} for the Poisson distribution with parameter + @var{mu}. + @end deftypefun + + @page @node The Bernoulli Distribution @section The Bernoulli Distribution *************** *** 1646,1651 **** --- 1758,1764 ---- @example p(k) = @{n! \over k! (n-k)! @} p^k (1-p)^@{n-k@} @end example + @end ifinfo @noindent for @c{$0 \le k \le n$} *************** *** 1663,1668 **** --- 1776,1789 ---- \centerline{\input rand-binomial.tex} @end tex + @deftypefun double gsl_cdf_binomial_P (unsigned int @var{k}, double @var{p}, unsigned int @var{n}) + @deftypefunx double gsl_cdf_binomial_Q (unsigned int @var{k}, double @var{p}, unsigned int @var{n}) + These functions compute the cumulative distribution functions + @math{P(k)}, @math{Q(k)} for the binomial + distribution with parameters @var{p} and @var{n}. + @end deftypefun + + @page @node The Multinomial Distribution @section The Multinomial Distribution *************** *** 1685,1690 **** --- 1806,1812 ---- P(n_1, n_2, ..., n_K) = (N!/(n_1! n_2! ... n_K!)) p_1^n_1 p_2^n_2 ... p_K^n_K @end example + @end ifinfo @noindent where @c{($n_1$, $n_2$, $\ldots$, $n_K$)} *************** *** 1740,1745 **** --- 1862,1868 ---- @example p(k) = @{\Gamma(n + k) \over \Gamma(k+1) \Gamma(n) @} p^n (1-p)^k @end example + @end ifinfo @noindent Note that @math{n} is not required to be an integer. *************** *** 1756,1761 **** --- 1879,1891 ---- \centerline{\input rand-nbinomial.tex} @end tex + @deftypefun double gsl_cdf_negative_binomial_P (unsigned int @var{k}, double @var{p}, double @var{n}) + @deftypefunx double gsl_cdf_negative_binomial_Q (unsigned int @var{k}, double @var{p}, double @var{n}) + These functions compute the cumulative distribution functions + @math{P(k)}, @math{Q(k)} for the negative binomial distribution with + parameters @var{p} and @var{n}. + @end deftypefun + @page @node The Pascal Distribution @section The Pascal Distribution *************** *** 1776,1781 **** --- 1906,1912 ---- @example p(k) = @{(n + k - 1)! \over k! (n - 1)! @} p^n (1-p)^k @end example + @end ifinfo @noindent for @c{$k \ge 0$} *************** *** 1793,1798 **** --- 1924,1936 ---- \centerline{\input rand-pascal.tex} @end tex + @deftypefun double gsl_cdf_pascal_P (unsigned int @var{k}, double @var{p}, unsigned int @var{n}) + @deftypefunx double gsl_cdf_pascal_Q (unsigned int @var{k}, double @var{p}, unsigned int @var{n}) + These functions compute the cumulative distribution functions + @math{P(k)}, @math{Q(k)} for the Pascal distribution with + parameters @var{p} and @var{n}. + @end deftypefun + @page @node The Geometric Distribution @section The Geometric Distribution *************** *** 1814,1823 **** @example p(k) = p (1-p)^(k-1) @end example @end ifinfo @noindent for @c{$k \ge 1$} ! @math{k >= 1}. @end deftypefun @deftypefun double gsl_ran_geometric_pdf (unsigned int @var{k}, double @var{p}) --- 1952,1964 ---- @example p(k) = p (1-p)^(k-1) @end example + @end ifinfo @noindent for @c{$k \ge 1$} ! @math{k >= 1}. Note that the distribution begins with @math{k=1} with this ! definition. There is another convention in which the exponent @math{k-1} ! is replaced by @math{k}. @end deftypefun @deftypefun double gsl_ran_geometric_pdf (unsigned int @var{k}, double @var{p}) *************** *** 1831,1836 **** --- 1972,1985 ---- \centerline{\input rand-geometric.tex} @end tex + @deftypefun double gsl_cdf_geometric_P (unsigned int @var{k}, double @var{p}) + @deftypefunx double gsl_cdf_geometric_Q (unsigned int @var{k}, double @var{p}) + These functions compute the cumulative distribution functions + @math{P(k)}, @math{Q(k)} for the geometric distribution with parameter + @var{p}. + @end deftypefun + + @page @node The Hypergeometric Distribution @section The Hypergeometric Distribution *************** *** 1852,1865 **** @example p(k) = C(n_1, k) C(n_2, t - k) / C(n_1 + n_2, t) @end example @end ifinfo @noindent where @math{C(a,b) = a!/(b!(a-b)!)} and @c{$t \leq n_1 + n_2$} ! @math{t <= n_1 + n_2}. The ! domain of @math{k} is @c{$\hbox{max}(0,t-n_2), \ldots, \hbox{min}(t,n_1)$} @math{max(0,t-n_2), ..., min(t,n_1)}. @end deftypefun @deftypefun double gsl_ran_hypergeometric_pdf (unsigned int @var{k}, unsigned int @var{n1}, unsigned int @var{n2}, unsigned int @var{t}) --- 2001,2020 ---- @example p(k) = C(n_1, k) C(n_2, t - k) / C(n_1 + n_2, t) @end example + @end ifinfo @noindent where @math{C(a,b) = a!/(b!(a-b)!)} and @c{$t \leq n_1 + n_2$} ! @math{t <= n_1 + n_2}. The domain of @math{k} is @c{$\hbox{max}(0,t-n_2), \ldots, \hbox{min}(t,n_1)$} @math{max(0,t-n_2), ..., min(t,n_1)}. + + If a population contains @math{n_1} elements of ``type 1'' and + @math{n_2} elements of ``type 2'' then the hypergeometric + distribution gives the probability of obtaining @math{k} elements of + ``type 1'' in @math{t} samples from the population without + replacement. @end deftypefun @deftypefun double gsl_ran_hypergeometric_pdf (unsigned int @var{k}, unsigned int @var{n1}, unsigned int @var{n2}, unsigned int @var{t}) *************** *** 1873,1878 **** --- 2028,2041 ---- \centerline{\input rand-hypergeometric.tex} @end tex + @deftypefun double gsl_cdf_hypergeometric_P (unsigned int @var{k}, unsigned int @var{n1}, unsigned int @var{n2}, unsigned int @var{t}) + @deftypefunx double gsl_cdf_hypergeometric_Q (unsigned int @var{k}, unsigned int @var{n1}, unsigned int @var{n2}, unsigned int @var{t}) + These functions compute the cumulative distribution functions + @math{P(k)}, @math{Q(k)} for the hypergeometric distribution with + parameters @var{n1}, @var{n2} and @var{t}. + @end deftypefun + + @page @node The Logarithmic Distribution @section The Logarithmic Distribution *************** *** 1893,1898 **** --- 2056,2062 ---- @example p(k) = @{-1 \over \log(1-p)@} @{(p^k \over k)@} @end example + @end ifinfo @noindent for @c{$k \ge 1$} *************** *** 1995,2000 **** --- 2159,2165 ---- @example @verbatiminclude examples/randpoisson.c @end example + @noindent If the library and header files are installed under @file{/usr/local} (the default location) then the program can be compiled with these *************** *** 2003,2008 **** --- 2168,2174 ---- @example $ gcc -Wall demo.c -lgsl -lgslcblas -lm @end example + @noindent Here is the output of the program, *************** *** 2010,2015 **** --- 2176,2182 ---- $ ./a.out @verbatiminclude examples/randpoisson.out @end example + @noindent The variates depend on the seed used by the generator. The seed for the default generator type @code{gsl_rng_default} can be changed with the *************** *** 2020,2031 **** --- 2187,2200 ---- $ GSL_RNG_SEED=123 ./a.out @verbatiminclude examples/randpoisson.2.out @end example + @noindent The following program generates a random walk in two dimensions. @example @verbatiminclude examples/randwalk.c @end example + @noindent Here is the output from the program, three 10-step random walks from the origin, *************** *** 2040,2045 **** --- 2209,2215 ---- @example @verbatiminclude examples/cdf.c @end example + @noindent Here is the output of the program, *************** *** 2060,2065 **** --- 2230,2236 ---- Luc Devroye, @cite{Non-Uniform Random Variate Generation}, Springer-Verlag, ISBN 0-387-96305-7. @end itemize + @noindent The subject of random variate generation is also reviewed by Knuth, who describes algorithms for all the major distributions. *************** *** 2069,2074 **** --- 2240,2246 ---- Donald E. Knuth, @cite{The Art of Computer Programming: Seminumerical Algorithms} (Vol 2, 3rd Ed, 1997), Addison-Wesley, ISBN 0201896842. @end itemize + @noindent The Particle Data Group provides a short review of techniques for generating distributions of random numbers in the ``Monte Carlo'' *************** *** 2080,2085 **** --- 2252,2258 ---- R.M. Barnett et al., Physical Review D54, 1 (1996) @uref{http://pdg.lbl.gov/}. @end itemize + @noindent The Review of Particle Physics is available online in postscript and pdf format. *************** *** 2101,2106 **** --- 2274,2280 ---- Ronald A. Thisted, @cite{Elements of Statistical Computing} (1988), Chapman & Hall, ISBN 0-412-01371-1. @end itemize + @noindent The cumulative distribution functions for the Gaussian distribution are based on the following papers, diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/rng.texi gsl-1.8/doc/rng.texi *** gsl-1.7/doc/rng.texi Mon Aug 22 15:25:06 2005 --- gsl-1.8/doc/rng.texi Thu Mar 16 18:00:21 2006 *************** *** 170,184 **** @end deftypefun @deftypefun {unsigned long int} gsl_rng_uniform_int (const gsl_rng * @var{r}, unsigned long int @var{n}) ! This function returns a random integer from 0 to @math{@var{n}-1} inclusive. ! All integers in the range @math{[0,@var{n}-1]} are equally likely, regardless ! of the generator used. An offset correction is applied so that zero is ! always returned with the correct probability, for any minimum value of ! the underlying generator. ! If @var{n} is larger than the range of the generator then the function calls the error handler with an error code of @code{GSL_EINVAL} and returns zero. @end deftypefun @node Auxiliary random number generator functions --- 170,196 ---- @end deftypefun @deftypefun {unsigned long int} gsl_rng_uniform_int (const gsl_rng * @var{r}, unsigned long int @var{n}) ! This function returns a random integer from 0 to @math{n-1} inclusive ! by scaling down and/or discarding samples from the generator @var{r}. ! All integers in the range @math{[0,n-1]} are produced with equal ! probability. For generators with a non-zero minimum value an offset ! is applied so that zero is returned with the correct probability. ! ! Note that this function is designed for sampling from ranges smaller ! than the range of the underlying generator. The parameter @var{n} ! must be less than or equal to the range of the generator @var{r}. If @var{n} is larger than the range of the generator then the function calls the error handler with an error code of @code{GSL_EINVAL} and returns zero. + + In particular, this function is not intended for generating the full range of + unsigned integer values @c{$[0,2^{32}-1]$} + @math{[0,2^32-1]}. Instead + choose a generator with the maximal integer range and zero mimimum + value, such as @code{gsl_rng_ranlxd1}, @code{gsl_rng_mt19937} or + @code{gsl_rng_taus}, and sample it directly using + @code{gsl_rng_get()}. The range of each generator can be found using + the auxiliary functions described in the next section. @end deftypefun @node Auxiliary random number generator functions *************** *** 195,200 **** --- 207,213 ---- printf ("r is a '%s' generator\n", gsl_rng_name (r)); @end example + @noindent would print something like @code{r is a 'taus' generator}. @end deftypefun *************** *** 277,282 **** --- 290,296 ---- @code{gsl_rng_default_seed} is zero. @end deftypefun + @noindent @need 2000 Here is a short program which shows how to create a global *************** *** 286,291 **** --- 300,306 ---- @example @verbatiminclude examples/rng.c @end example + @noindent Running the program without any environment variables uses the initial defaults, an @code{mt19937} generator with a seed of 0, *************** *** 294,299 **** --- 309,315 ---- $ ./a.out @verbatiminclude examples/rng.out @end example + @noindent By setting the two variables on the command line we can change the default generator and the seed, *************** *** 390,395 **** --- 406,412 ---- generator''. @cite{ACM Transactions on Modeling and Computer Simulation}, Vol.@: 8, No.@: 1 (Jan. 1998), Pages 3--30 @end itemize + @noindent The generator @code{gsl_rng_mt19937} uses the second revision of the seeding procedure published by the two authors above in 2002. The *************** *** 477,482 **** --- 494,500 ---- @example z_n = (x_n - y_n) mod m_1 @end example + @end ifinfo @noindent where the two underlying generators @math{x_n} and @math{y_n} are, *************** *** 496,501 **** --- 514,520 ---- x_n = (a_1 x_@{n-1@} + a_2 x_@{n-2@} + a_3 x_@{n-3@}) mod m_1 y_n = (b_1 y_@{n-1@} + b_2 y_@{n-2@} + b_3 y_@{n-3@}) mod m_2 @end example + @end ifinfo @noindent with coefficients *************** *** 512,523 **** @c{$m_2 = 2145483479$} @math{m_2 = 2145483479}. ! The period of this generator is ! @c{$2^{205}$} ! @math{2^205} (about ! @c{$10^{61}$} ! @math{10^61}). It uses 6 words of state per generator. For more information see, @itemize @asis --- 531,545 ---- @c{$m_2 = 2145483479$} @math{m_2 = 2145483479}. ! The period of this generator is ! @c{$\hbox{lcm}(m_1^3-1, m_2^3-1)$} ! @math{lcm(m_1^3-1, m_2^3-1)}, ! which is approximately ! @c{$2^{185}$} ! @math{2^185} (about ! @c{$10^{56}$} ! @math{10^56}). It uses 6 words of state per generator. For more information see, @itemize @asis *************** *** 543,548 **** --- 565,571 ---- @example x_n = (a_1 x_@{n-1@} + a_5 x_@{n-5@}) mod m @end example + @end ifinfo @noindent with *************** *** 583,588 **** --- 606,612 ---- @example x_n = (s1_n ^^ s2_n ^^ s3_n) @end example + @end ifinfo @noindent where, *************** *** 604,609 **** --- 628,634 ---- s2_@{n+1@} = (((s2_n&4294967288)<< 4)^^(((s2_n<< 2)^^s2_n)>>25)) s3_@{n+1@} = (((s3_n&4294967280)<<17)^^(((s3_n<< 3)^^s3_n)>>11)) @end example + @end ifinfo @noindent computed modulo *************** *** 626,631 **** --- 651,657 ---- P. L'Ecuyer, ``Maximally Equidistributed Combined Tausworthe Generators'', @cite{Mathematics of Computation}, 65, 213 (1996), 203--213. @end itemize + @noindent The generator @code{gsl_rng_taus2} uses the same algorithm as @code{gsl_rng_taus} but with an improved seeding procedure described in *************** *** 636,641 **** --- 662,668 ---- P. L'Ecuyer, ``Tables of Maximally Equidistributed Combined LFSR Generators'', @cite{Mathematics of Computation}, 68, 225 (1999), 261--269 @end itemize + @noindent The generator @code{gsl_rng_taus2} should now be used in preference to @code{gsl_rng_taus}. *************** *** 730,735 **** --- 757,763 ---- @example x_@{n+1@} = (a x_n + c) mod m @end example + @end ifinfo @noindent with *************** *** 770,775 **** --- 798,804 ---- gsl_rng_random128_bsd gsl_rng_random256_bsd @end example + @noindent where the numeric suffix indicates the buffer length. The original BSD @code{random} function used a 128-byte default buffer and so *************** *** 794,799 **** --- 823,829 ---- @example x_@{n+1@} = (a x_n + c) mod m @end example + @end ifinfo @noindent defined on 48-bit unsigned integers with *************** *** 854,859 **** --- 884,890 ---- @example x_@{n+1@} = (a x_n) mod m @end example + @end ifinfo @noindent defined on 48-bit unsigned integers with @math{a = 44485709377909} and *************** *** 915,920 **** --- 946,952 ---- @example x_n = x_@{n-103@} ^^ x_@{n-250@} @end example + @end ifinfo @noindent where *************** *** 972,977 **** --- 1004,1010 ---- @example x_@{n+1@} = (a x_n + c) mod m @end example + @end ifinfo @noindent with *************** *** 1000,1005 **** --- 1033,1039 ---- @example x_@{n+1@} = (a x_n) mod m @end example + @end ifinfo @noindent with @math{a = 1664525} and *************** *** 1025,1030 **** --- 1059,1065 ---- @example x_@{n+1@} = (a x_n) mod m @end example + @end ifinfo @noindent with @math{a = 65539} and *************** *** 1055,1060 **** --- 1090,1096 ---- @example x_@{n+1@} = (a x_n) mod m @end example + @end ifinfo @noindent with @math{a = 16807} and *************** *** 1139,1144 **** --- 1175,1181 ---- @example x_@{n+1@} = (a x_n) mod m @end example + @end ifinfo @noindent with @math{a = 1812433253} and *************** *** 1165,1170 **** --- 1202,1208 ---- @example x_@{n+1@} = (x_n (x_n + 1)) mod m @end example + @end ifinfo @noindent with @c{$m = 2^{32}$} *************** *** 1190,1195 **** --- 1228,1234 ---- @example x_@{n+1@} = (a x_n) mod m @end example + @end ifinfo @noindent with @math{a = 62089911} and *************** *** 1215,1220 **** --- 1254,1260 ---- @example x_@{n+1@} = (a x_n) mod m @end example + @end ifinfo @noindent with @math{a = 48271} and *************** *** 1241,1246 **** --- 1281,1287 ---- @example z_@{n+1@} = (x_n - y_n) mod m @end example + @end ifinfo @noindent with @c{$m = 2^{31}-1$} *************** *** 1268,1273 **** --- 1309,1315 ---- @example x_n = (a_1 x_@{n-1@} + a_2 x_@{n-2@}) mod m @end example + @end ifinfo @noindent with *************** *** 1299,1304 **** --- 1341,1347 ---- @example x_@{n+1@} = (a x_n) mod m @end example + @end ifinfo @noindent with @math{a = 40692} and *************** *** 1324,1329 **** --- 1367,1373 ---- @example x_@{n+1@} = (a x_n) mod m @end example + @end ifinfo @noindent with @math{a = 1566083941} and *************** *** 1382,1387 **** --- 1426,1432 ---- @example @verbatiminclude examples/rngunif.c @end example + @noindent Here is the output of the program, *************** *** 1389,1394 **** --- 1434,1440 ---- $ ./a.out @verbatiminclude examples/rngunif.out @end example + @noindent The numbers depend on the seed used by the generator. The default seed can be changed with the @code{GSL_RNG_SEED} environment variable to *************** *** 1413,1418 **** --- 1459,1465 ---- Donald E. Knuth, @cite{The Art of Computer Programming: Seminumerical Algorithms} (Vol 2, 3rd Ed, 1997), Addison-Wesley, ISBN 0201896842. @end itemize + @noindent Further information is available in the review paper written by Pierre L'Ecuyer, *************** *** 1424,1429 **** --- 1471,1477 ---- @uref{http://www.iro.umontreal.ca/~lecuyer/papers.html} in the file @file{handsim.ps}. @end itemize + @noindent The source code for the @sc{diehard} random number generator tests is also available online, diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/roots.texi gsl-1.8/doc/roots.texi *** gsl-1.7/doc/roots.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/roots.texi Thu Mar 16 18:00:21 2006 *************** *** 175,180 **** --- 175,181 ---- printf ("s is a '%s' solver\n", gsl_root_fsolver_name (s)); @end example + @noindent would print something like @code{s is a 'bisection' solver}. @end deftypefun *************** *** 215,220 **** --- 216,222 ---- @example f(x) = a x^2 + b x + c @end example + @end ifinfo @noindent with @math{a = 3}, @math{b = 2}, @math{c = 1}. The following code *************** *** 241,246 **** --- 243,249 ---- F.function = &my_f; F.params = ¶ms; @end example + @noindent The function @math{f(x)} can be evaluated using the following macro, *************** *** 316,321 **** --- 319,325 ---- FDF.fdf = &my_fdf; FDF.params = 0; @end example + @noindent The function @math{f(x)} can be evaluated using the following macro, *************** *** 323,328 **** --- 327,333 ---- #define GSL_FN_FDF_EVAL_F(FDF,x) (*((FDF)->f))(x,(FDF)->params) @end example + @noindent The derivative @math{f'(x)} can be evaluated using the following macro, *************** *** 330,335 **** --- 335,341 ---- #define GSL_FN_FDF_EVAL_DF(FDF,x) (*((FDF)->df))(x,(FDF)->params) @end example + @noindent and both the function @math{y = f(x)} and its derivative @math{dy = f'(x)} can be evaluated at the same time using the following macro, *************** *** 338,343 **** --- 344,350 ---- #define GSL_FN_FDF_EVAL_F_DF(FDF,x,y,dy) (*((FDF)->fdf))(x,(FDF)->params,(y),(dy)) @end example + @noindent The macro stores @math{f(x)} in its @var{y} argument and @math{f'(x)} in its @var{dy} argument---both of these should be pointers to *************** *** 419,424 **** --- 426,432 ---- @item An error has occurred. @end itemize + @noindent The handling of these conditions is under user control. The functions below allow the user to test the precision of the current result in *************** *** 441,446 **** --- 449,455 ---- @example |a - b| < epsabs + epsrel min(|a|,|b|) @end example + @end ifinfo @noindent when the interval @math{x = [a,b]} does not include the origin. If the *************** *** 464,469 **** --- 473,479 ---- @example |r - r^*| < epsabs + epsrel r^* @end example + @end ifinfo @noindent assuming that the true root @math{r^*} is contained within the interval. *************** *** 487,492 **** --- 497,503 ---- @example |x_1 - x_0| < epsabs + epsrel |x_1| @end example + @end ifinfo @noindent and returns @code{GSL_CONTINUE} otherwise. *************** *** 509,514 **** --- 520,526 ---- @example |f| < epsabs @end example + @end ifinfo @noindent and returns @code{GSL_CONTINUE} otherwise. This criterion is suitable *************** *** 656,661 **** --- 668,674 ---- @example x_@{i+1@} = x_i - f(x_i)/f'(x_i) @end example + @end ifinfo @noindent Newton's method converges quadratically for single roots, and linearly *************** *** 696,701 **** --- 709,715 ---- @example x_1 = x_0 - f(x_0)/f'(x_0) @end example + @end ifinfo @noindent Subsequent iterations avoid the evaluation of the derivative by *************** *** 716,721 **** --- 730,736 ---- x_@{i+1@} = x_i f(x_i) / f'_@{est@} where f'_@{est@} = (f(x_i) - f(x_@{i-1@})/(x_i - x_@{i-1@}) @end example + @end ifinfo @noindent When the derivative does not change significantly in the vicinity of the *************** *** 766,771 **** --- 781,787 ---- @example R_i = x_i - (x_@{i+1@} - x_i)^2 / (x_@{i+2@} - 2 x_@{i+1@} + x_@{i@}) @end example + @end ifinfo @noindent which converges faster than the original sequence under reasonable *************** *** 790,801 **** --- 806,819 ---- @example @verbatiminclude examples/demo_fn.h @end example + @noindent We place the function definitions in a separate file (@file{demo_fn.c}), @example @verbatiminclude examples/demo_fn.c @end example + @noindent The first program uses the function solver @code{gsl_root_fsolver_brent} for Brent's method and the general quadratic defined above to solve the *************** *** 812,817 **** --- 830,836 ---- @example x^2 - 5 = 0 @end example + @end ifinfo @noindent with solution @math{x = \sqrt 5 = 2.236068...} *************** *** 819,824 **** --- 838,844 ---- @example @verbatiminclude examples/roots.c @end example + @noindent Here are the results of the iterations, *************** *** 834,839 **** --- 854,860 ---- Converged: 6 [2.2360634, 2.2366300] 2.2360634 -0.0000046 0.0005666 @end smallexample + @noindent If the program is modified to use the bisection solver instead of Brent's method, by changing @code{gsl_root_fsolver_brent} to *************** *** 865,870 **** --- 886,892 ---- @example @verbatiminclude examples/rootnewt.c @end example + @noindent Here are the results for Newton's method, *************** *** 878,883 **** --- 900,906 ---- Converged: 4 2.2360689 +0.0000009 -0.0020263 @end example + @noindent Note that the error can be estimated more accurately by taking the difference between the current iterate and next iterate rather than the diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/siman.texi gsl-1.8/doc/siman.texi *** gsl-1.7/doc/siman.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/siman.texi Thu Mar 16 18:00:21 2006 *************** *** 24,32 **** * Simulated Annealing algorithm:: * Simulated Annealing functions:: * Examples with Simulated Annealing:: @end menu ! @node Simulated Annealing algorithm, Simulated Annealing functions, Simulated Annealing, Simulated Annealing @section Simulated Annealing algorithm The simulated annealing algorithm takes random walks through the problem --- 24,33 ---- * Simulated Annealing algorithm:: * Simulated Annealing functions:: * Examples with Simulated Annealing:: + * Simulated Annealing References and Further Reading:: @end menu ! @node Simulated Annealing algorithm @section Simulated Annealing algorithm The simulated annealing algorithm takes random walks through the problem *************** *** 44,49 **** --- 45,51 ---- @example p = e^@{-(E_@{i+1@} - E_i)/(kT)@} @end example + @end ifinfo @noindent if *************** *** 72,78 **** The slight probability of taking a step that gives higher energy is what allows simulated annealing to frequently get out of local minima. ! @node Simulated Annealing functions, Examples with Simulated Annealing, Simulated Annealing algorithm, Simulated Annealing @section Simulated Annealing functions @deftypefun void gsl_siman_solve (const gsl_rng * @var{r}, void * @var{x0_p}, gsl_siman_Efunc_t @var{Ef}, gsl_siman_step_t @var{take_step}, gsl_siman_metric_t @var{distance}, gsl_siman_print_t @var{print_position}, gsl_siman_copy_t @var{copyfunc}, gsl_siman_copy_construct_t @var{copy_constructor}, gsl_siman_destroy_t @var{destructor}, size_t @var{element_size}, gsl_siman_params_t @var{params}) --- 74,80 ---- The slight probability of taking a step that gives higher energy is what allows simulated annealing to frequently get out of local minima. ! @node Simulated Annealing functions @section Simulated Annealing functions @deftypefun void gsl_siman_solve (const gsl_rng * @var{r}, void * @var{x0_p}, gsl_siman_Efunc_t @var{Ef}, gsl_siman_step_t @var{take_step}, gsl_siman_metric_t @var{distance}, gsl_siman_print_t @var{print_position}, gsl_siman_copy_t @var{copyfunc}, gsl_siman_copy_construct_t @var{copy_constructor}, gsl_siman_destroy_t @var{destructor}, size_t @var{element_size}, gsl_siman_params_t @var{params}) *************** *** 113,118 **** --- 115,121 ---- and the output of the function @var{print_position} itself. If @var{print_position} is null then no information is printed. @end deftypefun + @noindent The simulated annealing routines require several user-specified functions to define the configuration space and energy function. The *************** *** 201,207 **** @end deftp ! @node Examples with Simulated Annealing, , Simulated Annealing functions, Simulated Annealing @section Examples The simulated annealing package is clumsy, and it has to be because it --- 204,210 ---- @end deftp ! @node Examples with Simulated Annealing @section Examples The simulated annealing package is clumsy, and it has to be because it *************** *** 214,220 **** * Traveling Salesman Problem:: @end menu ! @node Trivial example, Traveling Salesman Problem, Examples with Simulated Annealing, Examples with Simulated Annealing @subsection Trivial example The first example, in one dimensional cartesian space, sets up an energy --- 217,223 ---- * Traveling Salesman Problem:: @end menu ! @node Trivial example @subsection Trivial example The first example, in one dimensional cartesian space, sets up an energy *************** *** 252,258 **** @end quotation @end iftex ! @node Traveling Salesman Problem, , Trivial example, Examples with Simulated Annealing @subsection Traveling Salesman Problem @cindex TSP @cindex traveling salesman problem --- 255,261 ---- @end quotation @end iftex ! @node Traveling Salesman Problem @subsection Traveling Salesman Problem @cindex TSP @cindex traveling salesman problem *************** *** 292,297 **** --- 295,301 ---- -lt "TSP -- final-order" | xyps -d > final-route.eps @end smallexample + @noindent This is the output showing the initial order of the cities; longitude is negative, since it is west and I want the plot to look like a map. *************** *** 342,347 **** --- 346,352 ---- Salesman Problem. @end quotation @end iftex + @noindent Here's a plot of the cost function (energy) versus generation (point in the calculation at which a new temperature is set) for this problem: *************** *** 356,362 **** @end quotation @end iftex ! @comment @node Simulated Annealing References and Further Reading @section References and Further Reading Further information is available in the following book, --- 361,367 ---- @end quotation @end iftex ! @node Simulated Annealing References and Further Reading @section References and Further Reading Further information is available in the following book, diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/sort.texi gsl-1.8/doc/sort.texi *** gsl-1.7/doc/sort.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/sort.texi Thu Mar 16 18:00:21 2006 *************** *** 44,49 **** --- 44,50 ---- int (*gsl_comparison_fn_t) (const void * a, const void * b) @end example + @noindent A comparison function should return a negative integer if the first argument is less than the second argument, @code{0} if the two arguments *************** *** 66,71 **** --- 67,73 ---- return 0; @} @end example + @noindent The appropriate function call to perform the sort is, *************** *** 227,232 **** --- 229,235 ---- rank->data[pi] = i; @} @end example + @noindent This can be computed directly from the function @code{gsl_permutation_inverse(rank,p)}. *************** *** 273,278 **** --- 276,282 ---- printf ("order = %d, value = %g\n", i, vpi); @} @end example + @noindent The next example uses the function @code{gsl_sort_smallest} to select the 5 smallest numbers from 100000 uniform random variates stored in an *************** *** 299,304 **** --- 303,309 ---- Donald E. Knuth, @cite{The Art of Computer Programming: Sorting and Searching} (Vol 3, 3rd Ed, 1997), Addison-Wesley, ISBN 0201896850. @end itemize + @noindent The Heapsort algorithm is described in the following book, diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/specfunc-airy.texi gsl-1.8/doc/specfunc-airy.texi *** gsl-1.7/doc/specfunc-airy.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/specfunc-airy.texi Thu Mar 16 18:00:21 2006 *************** *** 20,25 **** --- 20,26 ---- Ai(x) = (1/\pi) \int_0^\infty \cos((1/3) t^3 + xt) dt Bi(x) = (1/\pi) \int_0^\infty (e^(-(1/3) t^3) + \sin((1/3) t^3 + xt)) dt @end example + @end ifinfo @noindent For further information see Abramowitz & Stegun, Section 10.4. The Airy diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/specfunc-clausen.texi gsl-1.8/doc/specfunc-clausen.texi *** gsl-1.7/doc/specfunc-clausen.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/specfunc-clausen.texi Thu Mar 16 18:00:21 2006 *************** *** 13,18 **** --- 13,19 ---- @example Cl_2(x) = - \int_0^x dt \log(2 \sin(t/2)) @end example + @end ifinfo @noindent It is related to the dilogarithm by diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/specfunc-coulomb.texi gsl-1.8/doc/specfunc-coulomb.texi *** gsl-1.7/doc/specfunc-coulomb.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/specfunc-coulomb.texi Thu Mar 16 18:00:21 2006 *************** *** 29,50 **** @tex \beforedisplay $$ ! R_n := {2 Z^{3/2} \over n^2} \left({2Z \over n}\right)^l \sqrt{(n-l-1)! \over (n+l)!} \exp(-Z r/n) L^{2l+1}_{n-l-1}(2Z/n r). $$ \afterdisplay @end tex @ifinfo @example ! R_n := 2 (Z^@{3/2@}/n^2) \sqrt@{(n-l-1)!/(n+l)!@} \exp(-Z r/n) (2Z/n)^l ! L^@{2l+1@}_@{n-l-1@}(2Z/n r). @end example @end ifinfo @noindent The normalization is chosen such that the wavefunction @math{\psi} is given by @c{$\psi(n,l,r) = R_n Y_{lm}$} ! @math{\psi(n,l,r) = R_n Y_@{lm@}}. @end deftypefun @node Coulomb Wave Functions --- 29,52 ---- @tex \beforedisplay $$ ! R_n := {2 Z^{3/2} \over n^2} \left({2Z r \over n}\right)^l \sqrt{(n-l-1)! \over (n+l)!} \exp(-Z r/n) L^{2l+1}_{n-l-1}(2Z r / n). $$ \afterdisplay @end tex @ifinfo @example ! R_n := 2 (Z^@{3/2@}/n^2) \sqrt@{(n-l-1)!/(n+l)!@} \exp(-Z r/n) (2Zr/n)^l ! L^@{2l+1@}_@{n-l-1@}(2Zr/n). @end example + @end ifinfo @noindent + where @math{L^a_b(x)} is the generalized Laguerre polynomial (@pxref{Laguerre Functions}). The normalization is chosen such that the wavefunction @math{\psi} is given by @c{$\psi(n,l,r) = R_n Y_{lm}$} ! @math{\psi(n,l,r) = R_n Y_@{lm@}}. @end deftypefun @node Coulomb Wave Functions *************** *** 79,84 **** --- 81,87 ---- F_L'(eta,x) = fcp[k_L] * exp(exp_F) G_L'(eta,x) = gcp[k_L] * exp(exp_G) @end example + @end ifinfo @noindent diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/specfunc-coupling.texi gsl-1.8/doc/specfunc-coupling.texi *** gsl-1.7/doc/specfunc-coupling.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/specfunc-coupling.texi Thu Mar 16 18:00:21 2006 *************** *** 39,44 **** --- 39,45 ---- (ja jb jc ma mb mc) @end example + @end ifinfo @noindent where the arguments are given in half-integer units, @math{ja} = *************** *** 67,72 **** --- 68,74 ---- @{ja jb jc jd je jf@} @end example + @end ifinfo @noindent where the arguments are given in half-integer units, @math{ja} = *************** *** 97,102 **** --- 99,105 ---- jd je jf jg jh ji@} @end example + @end ifinfo @noindent where the arguments are given in half-integer units, @math{ja} = diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/specfunc-debye.texi gsl-1.8/doc/specfunc-debye.texi *** gsl-1.7/doc/specfunc-debye.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/specfunc-debye.texi Thu Mar 16 18:00:21 2006 *************** *** 13,18 **** --- 13,19 ---- @example D_n(x) = n/x^n \int_0^x dt (t^n/(e^t - 1)) @end example + @end ifinfo @noindent For further information see Abramowitz & *************** *** 46,48 **** --- 47,63 ---- @math{D_4(x) = (4/x^4) \int_0^x dt (t^4/(e^t - 1))}. @comment Exceptional Return Values: GSL_EDOM, GSL_EUNDRFLW @end deftypefun + + @deftypefun double gsl_sf_debye_5 (double @var{x}) + @deftypefunx int gsl_sf_debye_5_e (double @var{x}, gsl_sf_result * @var{result}) + These routines compute the fifth-order Debye function + @math{D_5(x) = (5/x^5) \int_0^x dt (t^5/(e^t - 1))}. + @comment Exceptional Return Values: GSL_EDOM, GSL_EUNDRFLW + @end deftypefun + + @deftypefun double gsl_sf_debye_6 (double @var{x}) + @deftypefunx int gsl_sf_debye_6_e (double @var{x}, gsl_sf_result * @var{result}) + These routines compute the fourth-order Debye function + @math{D_6(x) = (6/x^6) \int_0^x dt (t^6/(e^t - 1))}. + @comment Exceptional Return Values: GSL_EDOM, GSL_EUNDRFLW + @end deftypefun diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/specfunc-ellint.texi gsl-1.8/doc/specfunc-ellint.texi *** gsl-1.7/doc/specfunc-ellint.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/specfunc-ellint.texi Thu Mar 16 18:00:21 2006 *************** *** 36,41 **** --- 36,42 ---- P(\phi,k,n) = \int_0^\phi dt 1/((1 + n \sin^2(t))\sqrt(1 - k^2 \sin^2(t))) @end example + @end ifinfo @noindent The complete Legendre forms are denoted by @math{K(k) = F(\pi/2, k)} and diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/specfunc-erf.texi gsl-1.8/doc/specfunc-erf.texi *** gsl-1.7/doc/specfunc-erf.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/specfunc-erf.texi Thu Mar 16 18:00:21 2006 *************** *** 86,91 **** --- 86,92 ---- @example h(x) = Z(x)/Q(x) = \sqrt@{2/\pi@} \exp(-x^2 / 2) / \erfc(x/\sqrt 2) @end example + @end ifinfo @noindent It decreases rapidly as @math{x} approaches @math{-\infty} and asymptotes diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/specfunc-expint.texi gsl-1.8/doc/specfunc-expint.texi *** gsl-1.7/doc/specfunc-expint.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/specfunc-expint.texi Thu Mar 16 18:00:21 2006 *************** *** 33,38 **** --- 33,39 ---- @example E_1(x) := \Re \int_1^\infty dt \exp(-xt)/t. @end example + @end ifinfo @noindent @comment Domain: x != 0.0 *************** *** 54,59 **** --- 55,61 ---- @example E_2(x) := \Re \int_1^\infty dt \exp(-xt)/t^2. @end example + @end ifinfo @noindent @comment Domain: x != 0.0 *************** *** 78,83 **** --- 80,86 ---- @example Ei(x) := - PV(\int_@{-x@}^\infty dt \exp(-t)/t) @end example + @end ifinfo @noindent where @math{PV} denotes the principal value of the integral. diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/specfunc-gamma.texi gsl-1.8/doc/specfunc-gamma.texi *** gsl-1.7/doc/specfunc-gamma.texi Tue Sep 13 09:41:42 2005 --- gsl-1.8/doc/specfunc-gamma.texi Thu Mar 16 18:00:21 2006 *************** *** 1,4 **** ! @cindex gamma function The Gamma function is defined by the following integral, @tex --- 1,18 ---- ! The functions described in this section are declared ! in the header file @file{gsl_sf_gamma.h}. ! ! @menu ! * Gamma Functions:: ! * Factorials:: ! * Pochhammer Symbol:: ! * Incomplete Gamma Functions:: ! * Beta Functions:: ! * Incomplete Beta Function:: ! @end menu ! ! @node Gamma Functions ! @subsection Gamma Functions ! @cindex gamma functions The Gamma function is defined by the following integral, @tex *************** *** 13,18 **** --- 27,33 ---- @example \Gamma(x) = \int_0^\infty dt t^@{x-1@} \exp(-t) @end example + @end ifinfo @noindent It is related to the factorial function by @math{\Gamma(n)=(n-1)!} *************** *** 31,37 **** @comment exceptions: GSL_EDOM, GSL_EOVRFLW, GSL_EROUND @end deftypefun - @deftypefun double gsl_sf_lngamma (double @var{x}) @deftypefunx int gsl_sf_lngamma_e (double @var{x}, gsl_sf_result * @var{result}) @cindex logarithm of Gamma function --- 46,51 ---- *************** *** 52,58 **** @comment exceptions: GSL_EDOM, GSL_EROUND @end deftypefun - @deftypefun double gsl_sf_gammastar (double @var{x}) @deftypefunx int gsl_sf_gammastar_e (double @var{x}, gsl_sf_result * @var{result}) @cindex Regulated Gamma function --- 66,71 ---- *************** *** 100,122 **** @comment exceptions: GSL_EDOM, GSL_ELOSS @end deftypefun ! @deftypefun double gsl_sf_taylorcoeff (int @var{n}, double @var{x}) ! @deftypefunx int gsl_sf_taylorcoeff_e (int @var{n}, double @var{x}, gsl_sf_result * @var{result}) ! @cindex Taylor coefficients, computation of ! These routines compute the Taylor coefficient @math{x^n / n!} for ! @c{$x \ge 0$} ! @math{x >= 0}, ! @c{$n \ge 0$} ! @math{n >= 0}. ! @comment exceptions: GSL_EDOM, GSL_EOVRFLW, GSL_EUNDRFLW ! @end deftypefun @deftypefun double gsl_sf_fact (unsigned int @var{n}) @deftypefunx int gsl_sf_fact_e (unsigned int @var{n}, gsl_sf_result * @var{result}) @cindex factorial These routines compute the factorial @math{n!}. The factorial is related to the Gamma function by @math{n! = \Gamma(n+1)}. @comment exceptions: GSL_EDOM, GSL_OVRFLW @end deftypefun --- 113,136 ---- @comment exceptions: GSL_EDOM, GSL_ELOSS @end deftypefun ! @node Factorials ! @subsection Factorials ! @cindex factorial + Although factorials can be computed from the Gamma function, using + the relation @math{n! = \Gamma(n+1)} for non-negative integer @math{n}, + it is usually more efficient to call the functions in this section, + particularly for small values of @math{n}, whose factorial values are + maintained in hardcoded tables. @deftypefun double gsl_sf_fact (unsigned int @var{n}) @deftypefunx int gsl_sf_fact_e (unsigned int @var{n}, gsl_sf_result * @var{result}) @cindex factorial These routines compute the factorial @math{n!}. The factorial is related to the Gamma function by @math{n! = \Gamma(n+1)}. + The maximum value of @math{n} such that @math{n!} is not + considered an overflow is given by the macro @code{GSL_SF_FACT_NMAX} + and is 170. @comment exceptions: GSL_EDOM, GSL_OVRFLW @end deftypefun *************** *** 124,129 **** --- 138,146 ---- @deftypefunx int gsl_sf_doublefact_e (unsigned int @var{n}, gsl_sf_result * @var{result}) @cindex double factorial These routines compute the double factorial @math{n!! = n(n-2)(n-4) \dots}. + The maximum value of @math{n} such that @math{n!!} is not + considered an overflow is given by the macro @code{GSL_SF_DOUBLEFACT_NMAX} + and is 297. @comment exceptions: GSL_EDOM, GSL_OVRFLW @end deftypefun *************** *** 162,173 **** @comment exceptions: GSL_EDOM @end deftypefun @deftypefun double gsl_sf_poch (double @var{a}, double @var{x}) @deftypefunx int gsl_sf_poch_e (double @var{a}, double @var{x}, gsl_sf_result * @var{result}) @cindex Pochhammer symbol @cindex Apell symbol, see Pochammer symbol ! These routines compute the Pochhammer symbol @math{(a)_x := \Gamma(a + x)/\Gamma(a)}, subject to @math{a} and @math{a+x} not being negative integers. The Pochhammer symbol is also known as the Apell symbol and sometimes written as @math{(a,x)}. --- 179,203 ---- @comment exceptions: GSL_EDOM @end deftypefun + @deftypefun double gsl_sf_taylorcoeff (int @var{n}, double @var{x}) + @deftypefunx int gsl_sf_taylorcoeff_e (int @var{n}, double @var{x}, gsl_sf_result * @var{result}) + @cindex Taylor coefficients, computation of + These routines compute the Taylor coefficient @math{x^n / n!} for + @c{$x \ge 0$} + @math{x >= 0}, + @c{$n \ge 0$} + @math{n >= 0}. + @comment exceptions: GSL_EDOM, GSL_EOVRFLW, GSL_EUNDRFLW + @end deftypefun + + @node Pochhammer Symbol + @subsection Pochhammer Symbol @deftypefun double gsl_sf_poch (double @var{a}, double @var{x}) @deftypefunx int gsl_sf_poch_e (double @var{a}, double @var{x}, gsl_sf_result * @var{result}) @cindex Pochhammer symbol @cindex Apell symbol, see Pochammer symbol ! These routines compute the Pochhammer symbol @math{(a)_x = \Gamma(a + x)/\Gamma(a)}, subject to @math{a} and @math{a+x} not being negative integers. The Pochhammer symbol is also known as the Apell symbol and sometimes written as @math{(a,x)}. *************** *** 187,193 **** @deftypefun int gsl_sf_lnpoch_sgn_e (double @var{a}, double @var{x}, gsl_sf_result * @var{result}, double * @var{sgn}) These routines compute the sign of the Pochhammer symbol and the logarithm of its magnitude. The computed parameters are @math{result = ! \log(|(a)_x|)} and @math{sgn = \sgn((a)_x)} where @math{(a)_x := \Gamma(a + x)/\Gamma(a)}, subject to @math{a}, @math{a+x} not being negative integers. @comment exceptions: GSL_EDOM --- 217,223 ---- @deftypefun int gsl_sf_lnpoch_sgn_e (double @var{a}, double @var{x}, gsl_sf_result * @var{result}, double * @var{sgn}) These routines compute the sign of the Pochhammer symbol and the logarithm of its magnitude. The computed parameters are @math{result = ! \log(|(a)_x|)} and @math{sgn = \sgn((a)_x)} where @math{(a)_x = \Gamma(a + x)/\Gamma(a)}, subject to @math{a}, @math{a+x} not being negative integers. @comment exceptions: GSL_EDOM *************** *** 197,207 **** @deftypefunx int gsl_sf_pochrel_e (double @var{a}, double @var{x}, gsl_sf_result * @var{result}) @cindex relative Pochhammer symbol These routines compute the relative Pochhammer symbol @math{((a)_x - ! 1)/x} where @math{(a)_x := \Gamma(a + x)/\Gamma(a)}. @comment exceptions: GSL_EDOM @end deftypefun @deftypefun double gsl_sf_gamma_inc_Q (double @var{a}, double @var{x}) @deftypefunx int gsl_sf_gamma_inc_Q_e (double @var{a}, double @var{x}, gsl_sf_result * @var{result}) --- 227,251 ---- @deftypefunx int gsl_sf_pochrel_e (double @var{a}, double @var{x}, gsl_sf_result * @var{result}) @cindex relative Pochhammer symbol These routines compute the relative Pochhammer symbol @math{((a)_x - ! 1)/x} where @math{(a)_x = \Gamma(a + x)/\Gamma(a)}. @comment exceptions: GSL_EDOM @end deftypefun + @node Incomplete Gamma Functions + @subsection Incomplete Gamma Functions + + @deftypefun double gsl_sf_gamma_inc (double @var{a}, double @var{x}) + @deftypefunx int gsl_sf_gamma_inc_e (double @var{a}, double @var{x}, gsl_sf_result * @var{result}) + @cindex non-normalized incomplete Gamma function + @cindex unnormalized incomplete Gamma function + These functions compute the unnormalized incomplete Gamma Function + @c{$\Gamma(a,x) = \int_x^\infty dt\, t^{(a-1)} \exp(-t)$} + @math{\Gamma(a,x) = \int_x^\infty dt t^@{a-1@} \exp(-t)} + for @math{a} real and @c{$x \ge 0$} + @math{x >= 0}. + @comment exceptions: GSL_EDOM + @end deftypefun @deftypefun double gsl_sf_gamma_inc_Q (double @var{a}, double @var{x}) @deftypefunx int gsl_sf_gamma_inc_Q_e (double @var{a}, double @var{x}, gsl_sf_result * @var{result}) *************** *** 218,225 **** @deftypefunx int gsl_sf_gamma_inc_P_e (double @var{a}, double @var{x}, gsl_sf_result * @var{result}) @cindex complementary incomplete Gamma function These routines compute the complementary normalized incomplete Gamma Function ! @c{$P(a,x) = 1/\Gamma(a) \int_0^x dt\, t^{(a-1)} \exp(-t)$} ! @math{P(a,x) = 1/\Gamma(a) \int_0^x dt t^@{a-1@} \exp(-t)} for @math{a > 0}, @c{$x \ge 0$} @math{x >= 0}. --- 262,269 ---- @deftypefunx int gsl_sf_gamma_inc_P_e (double @var{a}, double @var{x}, gsl_sf_result * @var{result}) @cindex complementary incomplete Gamma function These routines compute the complementary normalized incomplete Gamma Function ! @c{$P(a,x) = 1 - Q(a,x) = 1/\Gamma(a) \int_0^x dt\, t^{(a-1)} \exp(-t)$} ! @math{P(a,x) = 1 - Q(a,x) = 1/\Gamma(a) \int_0^x dt t^@{a-1@} \exp(-t)} for @math{a > 0}, @c{$x \ge 0$} @math{x >= 0}. *************** *** 228,247 **** @comment exceptions: GSL_EDOM @end deftypefun ! @deftypefun double gsl_sf_gamma_inc (double @var{a}, double @var{x}) ! @deftypefunx int gsl_sf_gamma_inc_e (double @var{a}, double @var{x}, gsl_sf_result * @var{result}) ! @cindex non-normalized incomplete Gamma function ! These functions compute the incomplete Gamma Function ! @c{$\Gamma(a,x)$} @math{\Gamma(a,x)}, without ! the normalization factor included in the previously defined functions: ! @c{$\Gamma(a,x) = \int_x^\infty dt\, t^{(a-1)} \exp(-t)$} ! @math{\Gamma(a,x) = \int_x^\infty dt t^@{a-1@} \exp(-t)} ! for @math{a} real and @c{$x \ge 0$} ! @math{x >= 0}. ! @comment exceptions: GSL_EDOM ! @end deftypefun ! ! @deftypefun double gsl_sf_beta (double @var{a}, double @var{b}) @deftypefunx int gsl_sf_beta_e (double @var{a}, double @var{b}, gsl_sf_result * @var{result}) --- 272,279 ---- @comment exceptions: GSL_EDOM @end deftypefun ! @node Beta Functions ! @subsection Beta Functions @deftypefun double gsl_sf_beta (double @var{a}, double @var{b}) @deftypefunx int gsl_sf_beta_e (double @var{a}, double @var{b}, gsl_sf_result * @var{result}) *************** *** 259,264 **** --- 291,299 ---- @comment exceptions: GSL_EDOM @end deftypefun + @node Incomplete Beta Function + @subsection Incomplete Beta Function + @deftypefun double gsl_sf_beta_inc (double @var{a}, double @var{b}, double @var{x}) @deftypefunx int gsl_sf_beta_inc_e (double @var{a}, double @var{b}, double @var{x}, gsl_sf_result * @var{result}) @cindex incomplete Beta function, normalized diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/specfunc-laguerre.texi gsl-1.8/doc/specfunc-laguerre.texi *** gsl-1.7/doc/specfunc-laguerre.texi Mon Oct 11 14:34:04 2004 --- gsl-1.8/doc/specfunc-laguerre.texi Mon Feb 27 19:47:57 2006 *************** *** 1,12 **** @cindex Laguerre functions @cindex confluent hypergeometric function ! The Laguerre polynomials are defined in terms of confluent hypergeometric functions as @c{$L^a_n(x) = ((a+1)_n / n!) {}_1F_1(-n,a+1,x)$} ! @math{L^a_n(x) = ((a+1)_n / n!) 1F1(-n,a+1,x)}. These functions are ! declared in the header file @file{gsl_sf_laguerre.h}. @deftypefun double gsl_sf_laguerre_1 (double @var{a}, double @var{x}) @deftypefunx double gsl_sf_laguerre_2 (double @var{a}, double @var{x}) --- 1,18 ---- @cindex Laguerre functions @cindex confluent hypergeometric function ! The generalized Laguerre polynomials are defined in terms of confluent hypergeometric functions as @c{$L^a_n(x) = ((a+1)_n / n!) {}_1F_1(-n,a+1,x)$} ! @math{L^a_n(x) = ((a+1)_n / n!) 1F1(-n,a+1,x)}, and are sometimes referred to as the ! associated Laguerre polynomials. They are related to the plain ! Laguerre polynomials @math{L_n(x)} by @math{L^0_n(x) = L_n(x)} and ! @c{$L^k_n(x) = (-1)^k (d^k/dx^k) L_{(n+k)}(x)$} ! @math{L^k_n(x) = (-1)^k (d^k/dx^k) L_(n+k)(x)}. For ! more information see Abramowitz & Stegun, Chapter 22. + The functions described in this section are + declared in the header file @file{gsl_sf_laguerre.h}. @deftypefun double gsl_sf_laguerre_1 (double @var{a}, double @var{x}) @deftypefunx double gsl_sf_laguerre_2 (double @var{a}, double @var{x}) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/specfunc-psi.texi gsl-1.8/doc/specfunc-psi.texi *** gsl-1.7/doc/specfunc-psi.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/specfunc-psi.texi Thu Mar 16 18:00:21 2006 *************** *** 15,20 **** --- 15,21 ---- @example \psi^@{(m)@}(x) = (d/dx)^m \psi(x) = (d/dx)^@{m+1@} \log(\Gamma(x)) @end example + @end ifinfo @noindent where @math{\psi(x) = \Gamma'(x)/\Gamma(x)} is known as the digamma function. diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/specfunc-trig.texi gsl-1.8/doc/specfunc-trig.texi *** gsl-1.7/doc/specfunc-trig.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/specfunc-trig.texi Tue Nov 15 16:22:35 2005 *************** *** 133,151 **** @node Trigonometric Functions With Error Estimates @subsection Trigonometric Functions With Error Estimates ! @deftypefun double gsl_sf_sin_err (double @var{x}, double @var{dx}) ! @deftypefunx int gsl_sf_sin_err_e (double @var{x}, double @var{dx}, gsl_sf_result * @var{result}) ! These routines compute the sine of an angle @var{x} with an associated absolute error @var{dx}, @c{$\sin(x \pm dx)$} ! @math{\sin(x \pm dx)}. @end deftypefun ! @deftypefun double gsl_sf_cos_err (double @var{x}, double @var{dx}) ! @deftypefunx int gsl_sf_cos_err_e (double @var{x}, double @var{dx}, gsl_sf_result * @var{result}) ! These routines compute the cosine of an angle @var{x} with an associated ! absolute error @var{dx}, @c{$\cos(x \pm dx)$} ! @math{\cos(x \pm dx)}. @end deftypefun --- 133,151 ---- @node Trigonometric Functions With Error Estimates @subsection Trigonometric Functions With Error Estimates ! @deftypefun int gsl_sf_sin_err_e (double @var{x}, double @var{dx}, gsl_sf_result * @var{result}) ! This routine computes the sine of an angle @var{x} with an associated absolute error @var{dx}, @c{$\sin(x \pm dx)$} ! @math{\sin(x \pm dx)}. Note that this function is provided in the error-handling form only since ! its purpose is to compute the propagated error. @end deftypefun ! @deftypefun int gsl_sf_cos_err_e (double @var{x}, double @var{dx}, gsl_sf_result * @var{result}) ! This routine computes the cosine of an angle @var{x} with an associated ! absolute error @var{dx}, @c{$\cos(x \pm dx)$} ! @math{\cos(x \pm dx)}. Note that this function is provided in the error-handling form only since ! its purpose is to compute the propagated error. @end deftypefun diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/specfunc.texi gsl-1.8/doc/specfunc.texi *** gsl-1.7/doc/specfunc.texi Tue Sep 13 09:42:01 2005 --- gsl-1.8/doc/specfunc.texi Thu Mar 16 18:00:21 2006 *************** *** 69,74 **** --- 69,75 ---- @example double y = gsl_sf_bessel_J0 (x); @end example + @noindent There is no way to access an error code or to estimate the error using this method. To allow access to this information the alternative *************** *** 78,83 **** --- 79,85 ---- gsl_sf_result result; int status = gsl_sf_bessel_J0_e (x, &result); @end example + @noindent The error-handling functions have the suffix @code{_e}. The returned status value indicates error conditions such as overflow, underflow or *************** *** 103,108 **** --- 105,111 ---- double err; @} gsl_sf_result; @end example + @noindent The field @var{val} contains the value and the field @var{err} contains an estimate of the absolute error in the value. *************** *** 145,150 **** --- 148,154 ---- Approximate values, a relative accuracy of approximately @c{$5 \times 10^{-4}$} @math{5 * 10^-4}. @end table + @noindent The approximate mode provides the fastest evaluation at the lowest accuracy. *************** *** 271,276 **** --- 275,281 ---- @example @verbatiminclude examples/specfun_e.c @end example + @noindent Here are the results of running the program, *************** *** 278,283 **** --- 283,289 ---- $ ./a.out @verbatiminclude examples/specfun_e.out @end example + @noindent The next program computes the same quantity using the natural form of the function. In this case the error term @var{result.err} and return *************** *** 286,291 **** --- 292,298 ---- @example @verbatiminclude examples/specfun.c @end example + @noindent The results of the function are the same, *************** *** 305,310 **** --- 312,318 ---- @item Abramowitz & Stegun (eds.), @cite{Handbook of Mathematical Functions} @end itemize + @noindent The following papers contain information on the algorithms used to compute the special functions, diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/stamp-vti gsl-1.8/doc/stamp-vti *** gsl-1.7/doc/stamp-vti Tue Sep 13 10:18:31 2005 --- gsl-1.8/doc/stamp-vti Fri Mar 31 18:31:18 2006 *************** *** 1,4 **** ! @set UPDATED 13 September 2005 ! @set UPDATED-MONTH September 2005 ! @set EDITION 1.7 ! @set VERSION 1.7 --- 1,4 ---- ! @set UPDATED 30 March 2006 ! @set UPDATED-MONTH March 2006 ! @set EDITION 1.8 ! @set VERSION 1.8 diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/statistics.texi gsl-1.8/doc/statistics.texi *** gsl-1.7/doc/statistics.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/statistics.texi Thu Mar 16 18:00:21 2006 *************** *** 56,61 **** --- 56,62 ---- @example \Hat\mu = (1/N) \sum x_i @end example + @end ifinfo @noindent where @math{x_i} are the elements of the dataset @var{data}. For *************** *** 79,84 **** --- 80,86 ---- @example \Hat\sigma^2 = (1/(N-1)) \sum (x_i - \Hat\mu)^2 @end example + @end ifinfo @noindent where @math{x_i} are the elements of the dataset @var{data}. Note that *************** *** 165,170 **** --- 167,173 ---- @example absdev = (1/N) \sum |x_i - \Hat\mu| @end example + @end ifinfo @noindent where @math{x_i} are the elements of the dataset @var{data}. The *************** *** 188,193 **** --- 191,197 ---- @example absdev = (1/N) \sum |x_i - mean| @end example + @end ifinfo @noindent This function is useful if you have already computed the mean of *************** *** 215,220 **** --- 219,225 ---- @example skew = (1/N) \sum ((x_i - \Hat\mu)/\Hat\sigma)^3 @end example + @end ifinfo @noindent where @math{x_i} are the elements of the dataset @var{data}. The skewness *************** *** 240,245 **** --- 245,251 ---- @example skew = (1/N) \sum ((x_i - mean)/sd)^3 @end example + @end ifinfo @noindent These functions are useful if you have already computed the mean and *************** *** 264,269 **** --- 270,276 ---- @example kurtosis = ((1/N) \sum ((x_i - \Hat\mu)/\Hat\sigma)^4) - 3 @end example + @end ifinfo @noindent The kurtosis measures how sharply peaked a distribution is, relative to *************** *** 288,293 **** --- 295,301 ---- @example kurtosis = ((1/N) \sum ((x_i - mean)/sd)^4) - 3 @end example + @end ifinfo @noindent This function is useful if you have already computed the mean and *************** *** 406,411 **** --- 414,420 ---- \Hat\sigma^2 = ((\sum w_i)/((\sum w_i)^2 - \sum (w_i^2))) \sum w_i (x_i - \Hat\mu)^2 @end example + @end ifinfo @noindent Note that this expression reduces to an unweighted variance with the *************** *** 529,534 **** --- 538,549 ---- @node Maximum and Minimum values @section Maximum and Minimum values + The following functions find the maximum and minimum values of a + dataset (or their indices). If the data contains @code{NaN}s then a + @code{NaN} will be returned, since the maximum or minimum value is + undefined. For functions which return an index, the location of the + first @code{NaN} in the array is returned. + @deftypefun double gsl_stats_max (const double @var{data}[], size_t @var{stride}, size_t @var{n}) This function returns the maximum value in @var{data}, a dataset of length @var{n} with stride @var{stride}. The maximum value is defined *************** *** 625,630 **** --- 640,646 ---- @example quantile = (1 - \delta) x_i + \delta x_@{i+1@} @end example + @end ifinfo @noindent where @math{i} is @code{floor}(@math{(n - 1)f}) and @math{\delta} is *************** *** 694,699 **** --- 710,716 ---- reprinted as @cite{Kendall's Advanced Theory of Statistics}. Wiley, ISBN 047023380X. @end itemize + @noindent Many statistical concepts can be more easily understood by a Bayesian approach. The following book by Gelman, Carlin, Stern and Rubin gives a *************** *** 705,710 **** --- 722,728 ---- @cite{Bayesian Data Analysis}. Chapman & Hall, ISBN 0412039915. @end itemize + @noindent For physicists the Particle Data Group provides useful reviews of Probability and Statistics in the ``Mathematical Tools'' section of its *************** *** 715,720 **** --- 733,739 ---- @cite{Review of Particle Properties} R.M. Barnett et al., Physical Review D54, 1 (1996) @end itemize + @noindent The Review of Particle Physics is available online at the website @uref{http://pdg.lbl.gov/}. diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/sum.texi gsl-1.8/doc/sum.texi *** gsl-1.7/doc/sum.texi Sat May 21 13:28:05 2005 --- gsl-1.8/doc/sum.texi Thu Mar 16 18:00:21 2006 *************** *** 124,129 **** --- 124,130 ---- @example \zeta(2) = 1 + 1/2^2 + 1/3^2 + 1/4^2 + ... @end example + @end ifinfo @noindent After @var{N} terms the error in the sum is @math{O(1/N)}, making direct *************** *** 132,137 **** --- 133,139 ---- @example @verbatiminclude examples/sum.c @end example + @noindent The output below shows that the Levin @math{u}-transform is able to obtain an estimate of the sum to 1 part in *************** *** 144,149 **** --- 146,152 ---- $ ./a.out @verbatiminclude examples/sum.out @end example + @noindent Note that a direct summation of this series would require @c{$10^{10}$} diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/usage.texi gsl-1.8/doc/usage.texi *** gsl-1.7/doc/usage.texi Wed Jul 27 15:42:26 2005 --- gsl-1.8/doc/usage.texi Thu Mar 16 18:00:21 2006 *************** *** 31,36 **** --- 31,37 ---- @example @verbatiminclude examples/intro.c @end example + @noindent The output is shown below, and should be correct to double-precision accuracy, *************** *** 38,43 **** --- 39,45 ---- @example @verbatiminclude examples/intro.out @end example + @noindent The steps needed to compile this program are described in the following sections. *************** *** 54,59 **** --- 56,62 ---- @example #include @end example + @noindent If the directory is not installed on the standard search path of your compiler you will also need to provide its location to the preprocessor *************** *** 65,76 **** --- 68,86 ---- @example $ gcc -Wall -I/usr/local/include -c example.c @end example + @noindent This results in an object file @file{example.o}. The default include path for @code{gcc} searches @file{/usr/local/include} automatically so the @code{-I} option can actually be omitted when GSL is installed in its default location. + @menu + * Linking programs with the library:: + * Linking with an alternative BLAS library:: + @end menu + + @node Linking programs with the library @subsection Linking programs with the library @cindex compiling programs, library paths @cindex linking with GSL libraries *************** *** 92,102 **** --- 102,114 ---- @example $ gcc -L/usr/local/lib example.o -lgsl -lgslcblas -lm @end example + @noindent The default library path for @code{gcc} searches @file{/usr/local/lib} automatically so the @code{-L} option can be omitted when GSL is installed in its default location. + @node Linking with an alternative BLAS library @subsection Linking with an alternative BLAS library The following command line shows how you would link the same application *************** *** 105,110 **** --- 117,123 ---- @example $ gcc example.o -lgsl -lcblas -lm @end example + @noindent For the best performance an optimized platform-specific @sc{cblas} library should be used for @code{-lcblas}. The library must conform to *************** *** 117,122 **** --- 130,136 ---- @example $ gcc example.o -lgsl -lcblas -latlas -lm @end example + @noindent For more information see @ref{BLAS Support}. *************** *** 147,152 **** --- 161,167 ---- libgsl.so.0: cannot open shared object file: No such file or directory @end example + @noindent To avoid this error, define the shell variable @code{LD_LIBRARY_PATH} to include the directory where the library is installed. *************** *** 159,164 **** --- 174,180 ---- $ export LD_LIBRARY_PATH $ ./example @end example + @noindent In the C-shell (@code{/bin/csh} or @code{/bin/tcsh}) the equivalent command is, *************** *** 166,171 **** --- 182,188 ---- @example % setenv LD_LIBRARY_PATH /usr/local/lib:$LD_LIBRARY_PATH @end example + @noindent The standard prompt for the C-shell in the example above is the percent character @samp{%}, and should not be typed as part of the command. *************** *** 218,223 **** --- 235,241 ---- @example $ gcc -Wall -c -DHAVE_INLINE example.c @end example + @noindent If you use @code{autoconf} this macro can be defined automatically. If you do not define the macro @code{HAVE_INLINE} then the slower *************** *** 249,254 **** --- 267,273 ---- @example checking whether printf works with long double... no @end example + @noindent Consequently when @code{long double} formatted input/output does not work on a given system it should be impossible to link a program which *************** *** 279,284 **** --- 298,304 ---- #define hypot gsl_hypot #endif @end example + @noindent The application source files can then use the include command @code{#include } to replace each occurrence of @code{hypot} by *************** *** 317,322 **** --- 337,343 ---- #define gsl_ran_gaussian my_gaussian #endif @end example + @noindent These lines would be placed in the configuration header file @file{config.h} of the application, which should then be included by all *************** *** 349,354 **** --- 370,376 ---- gsl_foo_char_fn char gsl_foo_uchar_fn unsigned char @end example + @noindent The normal numeric precision @code{double} is considered the default and does not require a suffix. For example, the function *************** *** 375,380 **** --- 397,403 ---- gsl_foo_char char gsl_foo_uchar unsigned char @end example + @noindent When a module contains type-dependent definitions the library provides individual header files for each type. The filenames are modified as diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/vectors.texi gsl-1.8/doc/vectors.texi *** gsl-1.7/doc/vectors.texi Tue Sep 13 09:40:38 2005 --- gsl-1.8/doc/vectors.texi Thu Mar 16 18:00:21 2006 *************** *** 46,51 **** --- 46,52 ---- gsl_block_complex_float complex float gsl_block_complex_long_double complex long double @end example + @noindent Corresponding types exist for the @code{gsl_vector} and @code{gsl_matrix} functions. *************** *** 68,73 **** --- 69,75 ---- @} gsl_block; @end example @comment + @noindent Vectors and matrices are made by @dfn{slicing} an underlying block. A slice is a set of elements formed from an initial offset and a *************** *** 167,172 **** --- 169,175 ---- @verbatiminclude examples/block.c @end example @comment + @noindent Here is the output from the program, *************** *** 202,207 **** --- 205,211 ---- @} gsl_vector; @end example @comment + @noindent The @var{size} is simply the number of vector elements. The range of valid indices runs from 0 to @code{size-1}. The @var{stride} is the *************** *** 411,416 **** --- 415,421 ---- @example v'(i) = v->data[(offset + i)*v->stride] @end example + @noindent where the index @var{i} runs from 0 to @code{n-1}. *************** *** 444,449 **** --- 449,455 ---- @example v'(i) = v->data[(offset + i*stride)*v->stride] @end example + @noindent where the index @var{i} runs from 0 to @code{n-1}. *************** *** 457,462 **** --- 463,469 ---- = gsl_vector_subvector_with_stride (v, 0, 2, n/2); gsl_vector_set_zero (&v_even.vector); @end example + @noindent A vector view can be passed to any subroutine which takes a vector argument just as a directly allocated vector would be, using *************** *** 504,509 **** --- 511,517 ---- @example v'(i) = base[i] @end example + @noindent where the index @var{i} runs from 0 to @code{n-1}. *************** *** 530,535 **** --- 538,544 ---- @example v'(i) = base[i*stride] @end example + @noindent where the index @var{i} runs from 0 to @code{n-1}. *************** *** 742,747 **** --- 751,757 ---- @verbatiminclude examples/vector.c @end example @comment + @noindent Here is the output from the program. The final loop attempts to read outside the range of the vector @code{v}, and the error is trapped by *************** *** 757,762 **** --- 767,773 ---- Aborted (core dumped) @end example @comment + @noindent The next program shows how to write a vector to a file. *************** *** 764,769 **** --- 775,781 ---- @verbatiminclude examples/vectorw.c @end example @comment + @noindent After running this program the file @file{test.dat} should contain the elements of @code{v}, written using the format specifier *************** *** 807,812 **** --- 819,825 ---- @} gsl_matrix; @end example @comment + @noindent Matrices are stored in row-major order, meaning that each row of elements forms a contiguous block in memory. This is the standard *************** *** 830,835 **** --- 843,849 ---- 20 21 22 23 XX XX XX XX @end group @end example + @noindent Each unused memory location is represented by ``@code{XX}''. The pointer @var{data} gives the location of the first element of the matrix *************** *** 910,915 **** --- 924,930 ---- m->data[i * m->tda + j] @end example @comment + @noindent where @var{tda} is the physical row-length of the matrix. *************** *** 1030,1035 **** --- 1045,1051 ---- @example m'(i,j) = m->data[(k1*m->tda + k2) + i*m->tda + j] @end example + @noindent where the index @var{i} runs from 0 to @code{n1-1} and the index @var{j} runs from 0 to @code{n2-1}. *************** *** 1062,1067 **** --- 1078,1084 ---- @example m'(i,j) = base[i*n2 + j] @end example + @noindent where the index @var{i} runs from 0 to @code{n1-1} and the index @var{j} runs from 0 to @code{n2-1}. *************** *** 1090,1095 **** --- 1107,1113 ---- @example m'(i,j) = base[i*tda + j] @end example + @noindent where the index @var{i} runs from 0 to @code{n1-1} and the index @var{j} runs from 0 to @code{n2-1}. *************** *** 1116,1121 **** --- 1134,1140 ---- @example m'(i,j) = v->data[i*n2 + j] @end example + @noindent where the index @var{i} runs from 0 to @code{n1-1} and the index @var{j} runs from 0 to @code{n2-1}. *************** *** 1144,1149 **** --- 1163,1169 ---- @example m'(i,j) = v->data[i*tda + j] @end example + @noindent where the index @var{i} runs from 0 to @code{n1-1} and the index @var{j} runs from 0 to @code{n2-1}. *************** *** 1467,1480 **** searching in row-major order. @end deftypefun ! @deftypefun void gsl_matrix_min_index (const gsl_matrix * @var{m}, size_t * @var{imax}, size_t * @var{jmax}) This function returns the indices of the minimum value in the matrix ! @var{m}, storing them in @var{imax} and @var{jmax}. When there are several equal minimum elements then the first element found is returned, searching in row-major order. @end deftypefun ! @deftypefun void gsl_matrix_minmax_index (const gsl_matrix * @var{m}, size_t * @var{imin}, size_t * @var{imax}) This function returns the indices of the minimum and maximum values in the matrix @var{m}, storing them in (@var{imin},@var{jmin}) and (@var{imax},@var{jmax}). When there are several equal minimum or maximum --- 1487,1500 ---- searching in row-major order. @end deftypefun ! @deftypefun void gsl_matrix_min_index (const gsl_matrix * @var{m}, size_t * @var{imin}, size_t * @var{jmin}) This function returns the indices of the minimum value in the matrix ! @var{m}, storing them in @var{imin} and @var{jmin}. When there are several equal minimum elements then the first element found is returned, searching in row-major order. @end deftypefun ! @deftypefun void gsl_matrix_minmax_index (const gsl_matrix * @var{m}, size_t * @var{imin}, size_t * @var{jmin}, size_t * @var{imax}, size_t * @var{jmax}) This function returns the indices of the minimum and maximum values in the matrix @var{m}, storing them in (@var{imin},@var{jmin}) and (@var{imax},@var{jmax}). When there are several equal minimum or maximum *************** *** 1501,1506 **** --- 1521,1527 ---- @verbatiminclude examples/matrix.c @end example @comment + @noindent Here is the output from the program. The final loop attempts to read outside the range of the matrix @code{m}, and the error is trapped by *************** *** 1521,1526 **** --- 1542,1548 ---- Aborted (core dumped) @end example @comment + @noindent The next program shows how to write a matrix to a file. *************** *** 1528,1533 **** --- 1550,1556 ---- @verbatiminclude examples/matrixw.c @end example @comment + @noindent After running this program the file @file{test.dat} should contain the elements of @code{m}, written in binary format. The matrix which is read *************** *** 1540,1545 **** --- 1563,1569 ---- @example @verbatiminclude examples/vectorview.c @end example + @noindent Here is the output of the program, *************** *** 1547,1552 **** --- 1571,1577 ---- $ ./a.out @verbatiminclude examples/vectorview.out @end example + @noindent The results can be confirmed using @sc{gnu octave}, diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/doc/version-ref.texi gsl-1.8/doc/version-ref.texi *** gsl-1.7/doc/version-ref.texi Tue Sep 13 10:18:31 2005 --- gsl-1.8/doc/version-ref.texi Fri Mar 31 18:31:18 2006 *************** *** 1,4 **** ! @set UPDATED 13 September 2005 ! @set UPDATED-MONTH September 2005 ! @set EDITION 1.7 ! @set VERSION 1.7 --- 1,4 ---- ! @set UPDATED 30 March 2006 ! @set UPDATED-MONTH March 2006 ! @set EDITION 1.8 ! @set VERSION 1.8 diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/eigen/ChangeLog gsl-1.8/eigen/ChangeLog *** gsl-1.7/eigen/ChangeLog Mon Aug 22 15:24:18 2005 --- gsl-1.8/eigen/ChangeLog Thu Mar 30 19:02:59 2006 *************** *** 1,3 **** --- 1,8 ---- + 2006-03-26 Brian Gough + + * jacobi.c (gsl_eigen_invert_jacobi): use unsigned int for nrot + consistently + 2005-08-22 Brian Gough * test.c (test_eigenvalues): increased test tolerance diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/eigen/Makefile.in gsl-1.8/eigen/Makefile.in *** gsl-1.7/eigen/Makefile.in Tue Sep 13 10:04:47 2005 --- gsl-1.8/eigen/Makefile.in Fri Mar 31 17:47:33 2006 *************** *** 67,77 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgsleigen_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgsleigen_la_SOURCES) $(test_SOURCES) --- 67,77 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgsleigen_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgsleigen_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/eigen/jacobi.c gsl-1.8/eigen/jacobi.c *** gsl-1.7/eigen/jacobi.c Sun Jun 26 13:25:34 2005 --- gsl-1.8/eigen/jacobi.c Thu Mar 30 19:02:59 2006 *************** *** 215,221 **** { const size_t n = a->size2; size_t i,j,k; ! size_t nrot = 0; int status; gsl_vector * eval = gsl_vector_alloc(n); --- 215,221 ---- { const size_t n = a->size2; size_t i,j,k; ! unsigned int nrot = 0; int status; gsl_vector * eval = gsl_vector_alloc(n); diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/err/Makefile.in gsl-1.8/err/Makefile.in *** gsl-1.7/err/Makefile.in Tue Sep 13 10:04:48 2005 --- gsl-1.8/err/Makefile.in Fri Mar 31 17:47:33 2006 *************** *** 61,71 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslerr_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslerr_la_SOURCES) $(test_SOURCES) --- 61,71 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslerr_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslerr_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/fft/ChangeLog gsl-1.8/fft/ChangeLog *** gsl-1.7/fft/ChangeLog Sat May 21 13:31:44 2005 --- gsl-1.8/fft/ChangeLog Fri Mar 17 15:52:24 2006 *************** *** 1,3 **** --- 1,8 ---- + 2006-03-16 Brian Gough + + * changed to gsl_fft_forward and gsl_fft_backward enums throughout + internally instead of forward and backward. + 2005-05-19 Brian Gough * Makefile.am (noinst_HEADERS): removed unused real.c diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/fft/Makefile.in gsl-1.8/fft/Makefile.in *** gsl-1.7/fft/Makefile.in Tue Sep 13 10:04:49 2005 --- gsl-1.8/fft/Makefile.in Fri Mar 31 17:47:34 2006 *************** *** 62,72 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslfft_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslfft_la_SOURCES) $(test_SOURCES) --- 62,72 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslfft_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslfft_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/fft/c_main.c gsl-1.8/fft/c_main.c *** gsl-1.7/fft/c_main.c Sun Jun 26 13:25:34 2005 --- gsl-1.8/fft/c_main.c Fri Mar 17 15:52:24 2006 *************** *** 26,32 **** const TYPE(gsl_fft_complex_wavetable) * wavetable, TYPE(gsl_fft_complex_workspace) * work) { ! gsl_fft_direction sign = forward; int status = FUNCTION(gsl_fft_complex,transform) (data, stride, n, wavetable, work, sign); return status; --- 26,32 ---- const TYPE(gsl_fft_complex_wavetable) * wavetable, TYPE(gsl_fft_complex_workspace) * work) { ! gsl_fft_direction sign = gsl_fft_forward; int status = FUNCTION(gsl_fft_complex,transform) (data, stride, n, wavetable, work, sign); return status; *************** *** 39,45 **** const TYPE(gsl_fft_complex_wavetable) * wavetable, TYPE(gsl_fft_complex_workspace) * work) { ! gsl_fft_direction sign = backward; int status = FUNCTION(gsl_fft_complex,transform) (data, stride, n, wavetable, work, sign); return status; --- 39,45 ---- const TYPE(gsl_fft_complex_wavetable) * wavetable, TYPE(gsl_fft_complex_workspace) * work) { ! gsl_fft_direction sign = gsl_fft_backward; int status = FUNCTION(gsl_fft_complex,transform) (data, stride, n, wavetable, work, sign); return status; *************** *** 52,58 **** const TYPE(gsl_fft_complex_wavetable) * wavetable, TYPE(gsl_fft_complex_workspace) * work) { ! gsl_fft_direction sign = backward; int status = FUNCTION(gsl_fft_complex,transform) (data, stride, n, wavetable, work, sign); --- 52,58 ---- const TYPE(gsl_fft_complex_wavetable) * wavetable, TYPE(gsl_fft_complex_workspace) * work) { ! gsl_fft_direction sign = gsl_fft_backward; int status = FUNCTION(gsl_fft_complex,transform) (data, stride, n, wavetable, work, sign); diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/fft/c_pass_2.c gsl-1.8/fft/c_pass_2.c *** gsl-1.7/fft/c_pass_2.c Sun Jun 26 13:25:34 2005 --- gsl-1.8/fft/c_pass_2.c Fri Mar 17 15:52:24 2006 *************** *** 47,53 **** } else { ! if (sign == forward) { /* forward tranform */ w_real = GSL_REAL(twiddle[k - 1]); --- 47,53 ---- } else { ! if (sign == gsl_fft_forward) { /* forward tranform */ w_real = GSL_REAL(twiddle[k - 1]); diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/fft/c_pass_3.c gsl-1.8/fft/c_pass_3.c *** gsl-1.7/fft/c_pass_3.c Sun Jun 26 13:25:34 2005 --- gsl-1.8/fft/c_pass_3.c Fri Mar 17 15:52:24 2006 *************** *** 52,58 **** } else { ! if (sign == forward) { /* forward tranform */ w1_real = GSL_REAL(twiddle1[k - 1]); --- 52,58 ---- } else { ! if (sign == gsl_fft_forward) { /* forward tranform */ w1_real = GSL_REAL(twiddle1[k - 1]); diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/fft/c_pass_4.c gsl-1.8/fft/c_pass_4.c *** gsl-1.7/fft/c_pass_4.c Sun Jun 26 13:25:34 2005 --- gsl-1.8/fft/c_pass_4.c Fri Mar 17 15:52:24 2006 *************** *** 53,59 **** } else { ! if (sign == forward) { /* forward tranform */ w1_real = GSL_REAL(twiddle1[k - 1]); --- 53,59 ---- } else { ! if (sign == gsl_fft_forward) { /* forward tranform */ w1_real = GSL_REAL(twiddle1[k - 1]); diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/fft/c_pass_5.c gsl-1.8/fft/c_pass_5.c *** gsl-1.7/fft/c_pass_5.c Sun Jun 26 13:25:34 2005 --- gsl-1.8/fft/c_pass_5.c Fri Mar 17 15:52:24 2006 *************** *** 61,67 **** } else { ! if (sign == forward) { /* forward tranform */ w1_real = GSL_REAL(twiddle1[k - 1]); --- 61,67 ---- } else { ! if (sign == gsl_fft_forward) { /* forward tranform */ w1_real = GSL_REAL(twiddle1[k - 1]); diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/fft/c_pass_6.c gsl-1.8/fft/c_pass_6.c *** gsl-1.7/fft/c_pass_6.c Sun Jun 26 13:25:34 2005 --- gsl-1.8/fft/c_pass_6.c Fri Mar 17 15:52:24 2006 *************** *** 63,69 **** } else { ! if (sign == forward) { /* forward tranform */ w1_real = GSL_REAL(twiddle1[k - 1]); --- 63,69 ---- } else { ! if (sign == gsl_fft_forward) { /* forward tranform */ w1_real = GSL_REAL(twiddle1[k - 1]); diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/fft/c_pass_7.c gsl-1.8/fft/c_pass_7.c *** gsl-1.7/fft/c_pass_7.c Sun Jun 26 13:25:34 2005 --- gsl-1.8/fft/c_pass_7.c Fri Mar 17 15:52:24 2006 *************** *** 71,77 **** } else { ! if (sign == forward) { /* forward tranform */ w1_real = GSL_REAL(twiddle1[k - 1]); --- 71,77 ---- } else { ! if (sign == gsl_fft_forward) { /* forward tranform */ w1_real = GSL_REAL(twiddle1[k - 1]); diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/fft/c_pass_n.c gsl-1.8/fft/c_pass_n.c *** gsl-1.7/fft/c_pass_n.c Sun Jun 26 13:25:34 2005 --- gsl-1.8/fft/c_pass_n.c Fri Mar 17 15:52:24 2006 *************** *** 97,103 **** w_real = 1 ; w_imag = 0 ; } else { ! if (sign == forward) { w_real = GSL_REAL(twiddle[idx - 1]) ; w_imag = GSL_IMAG(twiddle[idx - 1]) ; } else { --- 97,103 ---- w_real = 1 ; w_imag = 0 ; } else { ! if (sign == gsl_fft_forward) { w_real = GSL_REAL(twiddle[idx - 1]) ; w_imag = GSL_IMAG(twiddle[idx - 1]) ; } else { *************** *** 182,188 **** ATOMIC x_imag = IMAG(in, istride,i + e1 * m); ATOMIC w_real, w_imag ; ! if (sign == forward) { w_real = GSL_REAL(twiddle[(e1-1)*q + k-1]) ; w_imag = GSL_IMAG(twiddle[(e1-1)*q + k-1]) ; } else { --- 182,188 ---- ATOMIC x_imag = IMAG(in, istride,i + e1 * m); ATOMIC w_real, w_imag ; ! if (sign == gsl_fft_forward) { w_real = GSL_REAL(twiddle[(e1-1)*q + k-1]) ; w_imag = GSL_IMAG(twiddle[(e1-1)*q + k-1]) ; } else { diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/fft/c_radix2.c gsl-1.8/fft/c_radix2.c *** gsl-1.7/fft/c_radix2.c Sun Jun 26 13:25:34 2005 --- gsl-1.8/fft/c_radix2.c Fri Mar 17 15:52:24 2006 *************** *** 21,27 **** FUNCTION(gsl_fft_complex,radix2_forward) (TYPE(gsl_complex_packed_array) data, const size_t stride, const size_t n) { ! gsl_fft_direction sign = forward; int status = FUNCTION(gsl_fft_complex,radix2_transform) (data, stride, n, sign); return status; } --- 21,27 ---- FUNCTION(gsl_fft_complex,radix2_forward) (TYPE(gsl_complex_packed_array) data, const size_t stride, const size_t n) { ! gsl_fft_direction sign = gsl_fft_forward; int status = FUNCTION(gsl_fft_complex,radix2_transform) (data, stride, n, sign); return status; } *************** *** 30,36 **** FUNCTION(gsl_fft_complex,radix2_backward) (TYPE(gsl_complex_packed_array) data, const size_t stride, const size_t n) { ! gsl_fft_direction sign = backward; int status = FUNCTION(gsl_fft_complex,radix2_transform) (data, stride, n, sign); return status; } --- 30,36 ---- FUNCTION(gsl_fft_complex,radix2_backward) (TYPE(gsl_complex_packed_array) data, const size_t stride, const size_t n) { ! gsl_fft_direction sign = gsl_fft_backward; int status = FUNCTION(gsl_fft_complex,radix2_transform) (data, stride, n, sign); return status; } *************** *** 39,45 **** FUNCTION(gsl_fft_complex,radix2_inverse) (TYPE(gsl_complex_packed_array) data, const size_t stride, const size_t n) { ! gsl_fft_direction sign = backward; int status = FUNCTION(gsl_fft_complex,radix2_transform) (data, stride, n, sign); if (status) --- 39,45 ---- FUNCTION(gsl_fft_complex,radix2_inverse) (TYPE(gsl_complex_packed_array) data, const size_t stride, const size_t n) { ! gsl_fft_direction sign = gsl_fft_backward; int status = FUNCTION(gsl_fft_complex,radix2_transform) (data, stride, n, sign); if (status) *************** *** 178,184 **** const size_t stride, const size_t n) { ! gsl_fft_direction sign = forward; int status = FUNCTION(gsl_fft_complex,radix2_dif_transform) (data, stride, n, sign); return status; } --- 178,184 ---- const size_t stride, const size_t n) { ! gsl_fft_direction sign = gsl_fft_forward; int status = FUNCTION(gsl_fft_complex,radix2_dif_transform) (data, stride, n, sign); return status; } *************** *** 188,194 **** const size_t stride, const size_t n) { ! gsl_fft_direction sign = backward; int status = FUNCTION(gsl_fft_complex,radix2_dif_transform) (data, stride, n, sign); return status; } --- 188,194 ---- const size_t stride, const size_t n) { ! gsl_fft_direction sign = gsl_fft_backward; int status = FUNCTION(gsl_fft_complex,radix2_dif_transform) (data, stride, n, sign); return status; } *************** *** 198,204 **** const size_t stride, const size_t n) { ! gsl_fft_direction sign = backward; int status = FUNCTION(gsl_fft_complex,radix2_dif_transform) (data, stride, n, sign); if (status) --- 198,204 ---- const size_t stride, const size_t n) { ! gsl_fft_direction sign = gsl_fft_backward; int status = FUNCTION(gsl_fft_complex,radix2_dif_transform) (data, stride, n, sign); if (status) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/fft/dft_source.c gsl-1.8/fft/dft_source.c *** gsl-1.7/fft/dft_source.c Sun Jun 26 13:25:34 2005 --- gsl-1.8/fft/dft_source.c Fri Mar 17 15:52:24 2006 *************** *** 22,28 **** const size_t stride, const size_t n, BASE result[]) { ! gsl_fft_direction sign = forward; int status = FUNCTION(gsl_dft_complex,transform) (data, stride, n, result, sign); return status; } --- 22,28 ---- const size_t stride, const size_t n, BASE result[]) { ! gsl_fft_direction sign = gsl_fft_forward; int status = FUNCTION(gsl_dft_complex,transform) (data, stride, n, result, sign); return status; } *************** *** 32,38 **** const size_t stride, const size_t n, BASE result[]) { ! gsl_fft_direction sign = backward; int status = FUNCTION(gsl_dft_complex,transform) (data, stride, n, result, sign); return status; } --- 32,38 ---- const size_t stride, const size_t n, BASE result[]) { ! gsl_fft_direction sign = gsl_fft_backward; int status = FUNCTION(gsl_dft_complex,transform) (data, stride, n, result, sign); return status; } *************** *** 43,49 **** const size_t stride, const size_t n, BASE result[]) { ! gsl_fft_direction sign = backward; int status = FUNCTION(gsl_dft_complex,transform) (data, stride, n, result, sign); /* normalize inverse fft with 1/n */ --- 43,49 ---- const size_t stride, const size_t n, BASE result[]) { ! gsl_fft_direction sign = gsl_fft_backward; int status = FUNCTION(gsl_dft_complex,transform) (data, stride, n, result, sign); /* normalize inverse fft with 1/n */ diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/fit/Makefile.in gsl-1.8/fit/Makefile.in *** gsl-1.7/fit/Makefile.in Tue Sep 13 10:04:50 2005 --- gsl-1.8/fit/Makefile.in Fri Mar 31 17:47:34 2006 *************** *** 62,72 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslfit_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslfit_la_SOURCES) $(test_SOURCES) --- 62,72 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslfit_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslfit_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/gsl_version.h gsl-1.8/gsl_version.h *** gsl-1.7/gsl_version.h Tue Sep 13 10:17:36 2005 --- gsl-1.8/gsl_version.h Fri Mar 31 18:24:14 2006 *************** *** 15,21 **** __BEGIN_DECLS ! #define GSL_VERSION "1.7" GSL_VAR const char * gsl_version; --- 15,21 ---- __BEGIN_DECLS ! #define GSL_VERSION "1.8" GSL_VAR const char * gsl_version; diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/histogram/Makefile.in gsl-1.8/histogram/Makefile.in *** gsl-1.7/histogram/Makefile.in Tue Sep 13 10:04:52 2005 --- gsl-1.8/histogram/Makefile.in Fri Mar 31 17:47:35 2006 *************** *** 68,78 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslhistogram_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslhistogram_la_SOURCES) $(test_SOURCES) --- 68,78 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslhistogram_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslhistogram_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/ieee-utils/Makefile.in gsl-1.8/ieee-utils/Makefile.in *** gsl-1.7/ieee-utils/Makefile.in Tue Sep 13 10:04:53 2005 --- gsl-1.8/ieee-utils/Makefile.in Fri Mar 31 17:47:35 2006 *************** *** 62,72 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslieeeutils_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslieeeutils_la_SOURCES) $(test_SOURCES) --- 62,72 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslieeeutils_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslieeeutils_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/ieee-utils/fp-aix.c gsl-1.8/ieee-utils/fp-aix.c *** gsl-1.7/ieee-utils/fp-aix.c Sun Jun 26 13:25:34 2005 --- gsl-1.8/ieee-utils/fp-aix.c Tue Nov 15 16:23:08 2005 *************** *** 80,88 **** mode &= ~ TRP_INVALID ; if (exception_mask & GSL_IEEE_MASK_DENORMALIZED) ! GSL_ERROR ("AIX does not support the denormalized operand exception. " ! "Use 'mask-denormalized' to work around this.", ! GSL_EUNSUP) ; if (exception_mask & GSL_IEEE_MASK_DIVISION_BY_ZERO) mode &= ~ TRP_DIV_BY_ZERO ; --- 80,94 ---- mode &= ~ TRP_INVALID ; if (exception_mask & GSL_IEEE_MASK_DENORMALIZED) ! { ! /* do nothing */ ! } ! else ! { ! GSL_ERROR ("AIX does not support the denormalized operand exception. " ! "Use 'mask-denormalized' to work around this.", ! GSL_EUNSUP) ; ! } if (exception_mask & GSL_IEEE_MASK_DIVISION_BY_ZERO) mode &= ~ TRP_DIV_BY_ZERO ; diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/ieee-utils/fp-darwin.c gsl-1.8/ieee-utils/fp-darwin.c *** gsl-1.7/ieee-utils/fp-darwin.c Sun Jun 26 13:25:35 2005 --- gsl-1.8/ieee-utils/fp-darwin.c Tue Nov 15 16:23:08 2005 *************** *** 57,74 **** fp_scr.rn = RN_NEAREST ; } - - /* Turn on all the exceptions apart from 'inexact' */ - /* I'm not sure what 'Turn on' means. */ - /* I'm assuming that enable = 1 and disable = 0 */ - /* and that disable is what is wanted. */ - if (exception_mask & GSL_IEEE_MASK_INVALID) fp_scr.ve = 0 ; //ve bit: invalid op exception enable if (exception_mask & GSL_IEEE_MASK_DENORMALIZED) ! GSL_ERROR ("powerpc does not support the denormalized operand exception. " ! "Use 'mask-denormalized' to work around this.", GSL_EUNSUP) ; if (exception_mask & GSL_IEEE_MASK_DIVISION_BY_ZERO) fp_scr.ze = 0 ; //ze bit: zero divide exception enable --- 57,74 ---- fp_scr.rn = RN_NEAREST ; } if (exception_mask & GSL_IEEE_MASK_INVALID) fp_scr.ve = 0 ; //ve bit: invalid op exception enable if (exception_mask & GSL_IEEE_MASK_DENORMALIZED) ! { ! /* do nothing */ ! } ! else ! { ! GSL_ERROR ("powerpc does not support the denormalized operand exception. " ! "Use 'mask-denormalized' to work around this.", GSL_EUNSUP) ; ! } if (exception_mask & GSL_IEEE_MASK_DIVISION_BY_ZERO) fp_scr.ze = 0 ; //ze bit: zero divide exception enable *************** *** 85,91 **** } else { ! fp_scr.xe = 1 ; } set_fp_scr(fp_scr); --- 85,91 ---- } else { ! fp_scr.xe = 01 ; } set_fp_scr(fp_scr); diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/ieee-utils/fp-gnum68k.c gsl-1.8/ieee-utils/fp-gnum68k.c *** gsl-1.7/ieee-utils/fp-gnum68k.c Sun Jun 26 13:25:35 2005 --- gsl-1.8/ieee-utils/fp-gnum68k.c Tue Nov 15 16:23:08 2005 *************** *** 69,74 **** --- 69,78 ---- if (exception_mask & GSL_IEEE_MASK_DENORMALIZED) { + /* do nothing */ + } + else + { GSL_ERROR ("the denormalized operand exception has not been implemented for m68k yet. Use 'mask-denormalized' to work around this.", GSL_EUNSUP) ; /*mode |= _FPU_MASK_DM ; ???? */ } diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/ieee-utils/fp-gnuppc.c gsl-1.8/ieee-utils/fp-gnuppc.c *** gsl-1.7/ieee-utils/fp-gnuppc.c Sun Jun 26 13:25:35 2005 --- gsl-1.8/ieee-utils/fp-gnuppc.c Tue Nov 15 16:23:08 2005 *************** *** 69,76 **** mode |= _FPU_MASK_IM ; if (exception_mask & GSL_IEEE_MASK_DENORMALIZED) ! GSL_ERROR ("powerpc does not support the denormalized operand exception. " ! "Use 'mask-denormalized' to work around this.", GSL_EUNSUP) ; if (exception_mask & GSL_IEEE_MASK_DIVISION_BY_ZERO) mode |= _FPU_MASK_ZM ; --- 69,82 ---- mode |= _FPU_MASK_IM ; if (exception_mask & GSL_IEEE_MASK_DENORMALIZED) ! { ! /* do nothing */ ! } ! else ! { ! GSL_ERROR ("powerpc does not support the denormalized operand exception. " ! "Use 'mask-denormalized' to work around this.", GSL_EUNSUP) ; ! } if (exception_mask & GSL_IEEE_MASK_DIVISION_BY_ZERO) mode |= _FPU_MASK_ZM ; diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/ieee-utils/fp-gnusparc.c gsl-1.8/ieee-utils/fp-gnusparc.c *** gsl-1.7/ieee-utils/fp-gnusparc.c Sun Jun 26 13:25:35 2005 --- gsl-1.8/ieee-utils/fp-gnusparc.c Tue Nov 15 16:23:08 2005 *************** *** 64,71 **** mode |= _FPU_MASK_IM ; if (exception_mask & GSL_IEEE_MASK_DENORMALIZED) ! GSL_ERROR ("sparc does not support the denormalized operand exception. " ! "Use 'mask-denormalized' to work around this.", GSL_EUNSUP) ; if (exception_mask & GSL_IEEE_MASK_DIVISION_BY_ZERO) mode |= _FPU_MASK_ZM ; --- 64,77 ---- mode |= _FPU_MASK_IM ; if (exception_mask & GSL_IEEE_MASK_DENORMALIZED) ! { ! /* do nothing */ ! } ! else ! { ! GSL_ERROR ("sparc does not support the denormalized operand exception. " ! "Use 'mask-denormalized' to work around this.", GSL_EUNSUP) ; ! } if (exception_mask & GSL_IEEE_MASK_DIVISION_BY_ZERO) mode |= _FPU_MASK_ZM ; diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/ieee-utils/fp-irix.c gsl-1.8/ieee-utils/fp-irix.c *** gsl-1.7/ieee-utils/fp-irix.c Sun Jun 26 13:25:35 2005 --- gsl-1.8/ieee-utils/fp-irix.c Tue Nov 15 16:23:08 2005 *************** *** 75,83 **** mode &= ~ FP_X_INV ; if (exception_mask & GSL_IEEE_MASK_DENORMALIZED) ! GSL_ERROR ("IRIX does not support the denormalized operand exception. " ! "Use 'mask-denormalized' to work around this.", ! GSL_EUNSUP) ; if (exception_mask & GSL_IEEE_MASK_DIVISION_BY_ZERO) mode &= ~ FP_X_DZ ; --- 75,89 ---- mode &= ~ FP_X_INV ; if (exception_mask & GSL_IEEE_MASK_DENORMALIZED) ! { ! /* do nothing */ ! } ! else ! { ! GSL_ERROR ("IRIX does not support the denormalized operand exception. " ! "Use 'mask-denormalized' to work around this.", ! GSL_EUNSUP) ; ! } if (exception_mask & GSL_IEEE_MASK_DIVISION_BY_ZERO) mode &= ~ FP_X_DZ ; diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/ieee-utils/fp-solaris.c gsl-1.8/ieee-utils/fp-solaris.c *** gsl-1.7/ieee-utils/fp-solaris.c Sun Jun 26 13:25:35 2005 --- gsl-1.8/ieee-utils/fp-solaris.c Tue Nov 15 16:23:08 2005 *************** *** 75,83 **** mode &= ~ FP_X_INV ; if (exception_mask & GSL_IEEE_MASK_DENORMALIZED) ! GSL_ERROR ("solaris does not support the denormalized operand exception. " ! "Use 'mask-denormalized' to work around this.", ! GSL_EUNSUP) ; if (exception_mask & GSL_IEEE_MASK_DIVISION_BY_ZERO) mode &= ~ FP_X_DZ ; --- 75,89 ---- mode &= ~ FP_X_INV ; if (exception_mask & GSL_IEEE_MASK_DENORMALIZED) ! { ! /* do nothing */ ! } ! else ! { ! GSL_ERROR ("solaris does not support the denormalized operand exception. " ! "Use 'mask-denormalized' to work around this.", ! GSL_EUNSUP) ; ! } if (exception_mask & GSL_IEEE_MASK_DIVISION_BY_ZERO) mode &= ~ FP_X_DZ ; diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/integration/Makefile.in gsl-1.8/integration/Makefile.in *** gsl-1.7/integration/Makefile.in Tue Sep 13 10:04:55 2005 --- gsl-1.8/integration/Makefile.in Fri Mar 31 17:47:36 2006 *************** *** 65,75 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslintegration_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslintegration_la_SOURCES) $(test_SOURCES) --- 65,75 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslintegration_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslintegration_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/interpolation/ChangeLog gsl-1.8/interpolation/ChangeLog *** gsl-1.7/interpolation/ChangeLog Mon Nov 29 14:58:11 2004 --- gsl-1.8/interpolation/ChangeLog Sat Dec 24 17:34:49 2005 *************** *** 1,3 **** --- 1,13 ---- + 2005-12-24 Brian Gough + + * cspline.c (cspline_init_periodic): fix invalid memory access of + xa[3] for sys_size=2 + + 2005-12-22 Brian Gough + + * test.c (test_cspline2): added extra test of cspline + (test_cspline3): added extra test of cspline + 2004-11-28 Brian Gough * cspline.c (cspline_init): support case of degenerate x[i] values diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/interpolation/Makefile.in gsl-1.8/interpolation/Makefile.in *** gsl-1.7/interpolation/Makefile.in Tue Sep 13 10:04:56 2005 --- gsl-1.8/interpolation/Makefile.in Fri Mar 31 17:47:36 2006 *************** *** 67,77 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslinterpolation_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslinterpolation_la_SOURCES) $(test_SOURCES) --- 67,77 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslinterpolation_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslinterpolation_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/interpolation/cspline.c gsl-1.8/interpolation/cspline.c *** gsl-1.7/interpolation/cspline.c Sun Jun 26 13:25:35 2005 --- gsl-1.8/interpolation/cspline.c Sat Dec 24 17:34:49 2005 *************** *** 159,172 **** const double h0 = xa[1] - xa[0]; const double h1 = xa[2] - xa[1]; ! const double h2 = xa[3] - xa[2]; const double A = 2.0*(h0 + h1); const double B = h0 + h1; double g[2]; double det; g[0] = 3.0 * ((ya[2] - ya[1]) / h1 - (ya[1] - ya[0]) / h0); ! g[1] = 3.0 * ((ya[1] - ya[2]) / h2 - (ya[2] - ya[1]) / h1); det = 3.0 * (h0 + h1) * (h0 + h1); state->c[1] = ( A * g[0] - B * g[1])/det; --- 159,172 ---- const double h0 = xa[1] - xa[0]; const double h1 = xa[2] - xa[1]; ! const double A = 2.0*(h0 + h1); const double B = h0 + h1; double g[2]; double det; g[0] = 3.0 * ((ya[2] - ya[1]) / h1 - (ya[1] - ya[0]) / h0); ! g[1] = 3.0 * ((ya[1] - ya[2]) / h0 - (ya[2] - ya[1]) / h1); det = 3.0 * (h0 + h1) * (h0 + h1); state->c[1] = ( A * g[0] - B * g[1])/det; diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/interpolation/gsl_spline.h gsl-1.8/interpolation/gsl_spline.h *** gsl-1.7/interpolation/gsl_spline.h Sun Jun 26 13:25:35 2005 --- gsl-1.8/interpolation/gsl_spline.h Mon Dec 12 16:20:22 2005 *************** *** 49,54 **** --- 49,57 ---- int gsl_spline_init(gsl_spline * spline, const double xa[], const double ya[], size_t size); + const char * gsl_spline_name(const gsl_spline * spline); + unsigned int gsl_spline_min_size(const gsl_spline * spline); + int gsl_spline_eval_e(const gsl_spline * spline, double x, diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/interpolation/spline.c gsl-1.8/interpolation/spline.c *** gsl-1.7/interpolation/spline.c Sun Jun 26 13:25:35 2005 --- gsl-1.8/interpolation/spline.c Mon Dec 12 16:20:22 2005 *************** *** 83,88 **** --- 83,100 ---- } } + const char * + gsl_spline_name(const gsl_spline * spline) + { + return gsl_interp_name(spline->interp); + } + + unsigned int + gsl_spline_min_size(const gsl_spline * spline) + { + return gsl_interp_min_size(spline->interp); + } + void gsl_spline_free (gsl_spline * spline) { diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/interpolation/test.c gsl-1.8/interpolation/test.c *** gsl-1.7/interpolation/test.c Sun Jun 26 13:25:35 2005 --- gsl-1.8/interpolation/test.c Sat Dec 24 17:34:49 2005 *************** *** 110,116 **** xy_table * test_i_table ) { ! int status = 0; size_t i; gsl_interp_accel *a = gsl_interp_accel_alloc (); --- 110,116 ---- xy_table * test_i_table ) { ! int status = 0, s1, s2, s3; size_t i; gsl_interp_accel *a = gsl_interp_accel_alloc (); *************** *** 125,133 **** double deriv; double integ; double diff_y, diff_deriv, diff_integ; ! gsl_interp_eval_e (interp, data_table->x, data_table->y, x, a, &y); ! gsl_interp_eval_deriv_e (interp, data_table->x, data_table->y, x, a, &deriv); ! gsl_interp_eval_integ_e (interp, data_table->x, data_table->y, 0.0, x, a, &integ); diff_y = y - test_table->y[i]; diff_deriv = deriv - test_d_table->y[i]; diff_integ = integ - test_i_table->y[i]; --- 125,142 ---- double deriv; double integ; double diff_y, diff_deriv, diff_integ; ! s1 = gsl_interp_eval_e (interp, data_table->x, data_table->y, x, a, &y); ! s2 = gsl_interp_eval_deriv_e (interp, data_table->x, data_table->y, x, a, &deriv); ! s3 = gsl_interp_eval_integ_e (interp, data_table->x, data_table->y, test_table->x[0], x, a, &integ); ! ! gsl_test (s1, "gsl_interp_eval_e %s", gsl_interp_name(interp)); ! gsl_test (s2, "gsl_interp_eval_deriv_e %s", gsl_interp_name(interp)); ! gsl_test (s3, "gsl_interp_eval_integ_e %s", gsl_interp_name(interp)); ! ! gsl_test_abs (y, test_table->y[i], 1e-10, "%s %d", gsl_interp_name(interp), i); ! gsl_test_abs (deriv, test_d_table->y[i], 1e-10, "%s deriv %d", gsl_interp_name(interp), i); ! gsl_test_abs (integ, test_i_table->y[i], 1e-10, "%s integ %d", gsl_interp_name(interp), i); ! diff_y = y - test_table->y[i]; diff_deriv = deriv - test_d_table->y[i]; diff_integ = integ - test_i_table->y[i]; *************** *** 209,214 **** --- 218,906 ---- return s; } + static int + test_cspline2 (void) + { + /* Test taken from Young & Gregory, A Survey of Numerical + Mathematics, Vol 1 Chapter 6.8 */ + + int s; + + double data_x[6] = { 0.0, 0.2, 0.4, 0.6, 0.8, 1.0 }; + + double data_y[6] = { 1.0, + 0.961538461538461, 0.862068965517241, + 0.735294117647059, 0.609756097560976, + 0.500000000000000 } ; + + double test_x[50] = { + 0.00, 0.02, 0.04, 0.06, 0.08, 0.10, 0.12, 0.14, 0.16, 0.18, + 0.20, 0.22, 0.24, 0.26, 0.28, 0.30, 0.32, 0.34, 0.36, 0.38, + 0.40, 0.42, 0.44, 0.46, 0.48, 0.50, 0.52, 0.54, 0.56, 0.58, + 0.60, 0.62, 0.64, 0.66, 0.68, 0.70, 0.72, 0.74, 0.76, 0.78, + 0.80, 0.82, 0.84, 0.86, 0.88, 0.90, 0.92, 0.94, 0.96, 0.98 }; + + double test_y[50] = { + 1.000000000000000, 0.997583282975581, 0.995079933416512, + 0.992403318788142, 0.989466806555819, 0.986183764184894, + 0.982467559140716, 0.978231558888635, 0.973389130893999, + 0.967853642622158, 0.961538461538461, 0.954382579685350, + 0.946427487413627, 0.937740299651188, 0.928388131325928, + 0.918438097365742, 0.907957312698524, 0.897012892252170, + 0.885671950954575, 0.874001603733634, 0.862068965517241, + 0.849933363488199, 0.837622973848936, 0.825158185056786, + 0.812559385569085, 0.799846963843167, 0.787041308336369, + 0.774162807506023, 0.761231849809467, 0.748268823704033, + 0.735294117647059, 0.722328486073082, 0.709394147325463, + 0.696513685724764, 0.683709685591549, 0.671004731246381, + 0.658421407009825, 0.645982297202442, 0.633709986144797, + 0.621627058157454, 0.609756097560976, 0.598112015427308, + 0.586679029833925, 0.575433685609685, 0.564352527583445, + 0.553412100584061, 0.542588949440392, 0.531859618981294, + 0.521200654035625, 0.510588599432241}; + + double test_dy[50] = { + -0.120113913432180, -0.122279726798445, -0.128777166897241, + -0.139606233728568, -0.154766927292426, -0.174259247588814, + -0.198083194617734, -0.226238768379184, -0.258725968873165, + -0.295544796099676, -0.336695250058719, -0.378333644186652, + -0.416616291919835, -0.451543193258270, -0.483114348201955, + -0.511329756750890, -0.536189418905076, -0.557693334664512, + -0.575841504029200, -0.590633926999137, -0.602070603574326, + -0.611319695518765, -0.619549364596455, -0.626759610807396, + -0.632950434151589, -0.638121834629033, -0.642273812239728, + -0.645406366983674, -0.647519498860871, -0.648613207871319, + -0.648687494015019, -0.647687460711257, -0.645558211379322, + -0.642299746019212, -0.637912064630930, -0.632395167214473, + -0.625749053769843, -0.617973724297039, -0.609069178796061, + -0.599035417266910, -0.587872439709585, -0.576731233416743, + -0.566762785681043, -0.557967096502484, -0.550344165881066, + -0.543893993816790, -0.538616580309654, -0.534511925359660, + -0.531580028966807, -0.529820891131095}; + + double test_iy[50] = { + 0.000000000000000, 0.019975905023535, 0.039902753768792, + 0.059777947259733, 0.079597153869625, 0.099354309321042, + 0.119041616685866, 0.138649546385285, 0.158166836189794, + 0.177580491219196, 0.196875783942601, 0.216036382301310, + 0.235045759060558, 0.253888601161251, 0.272550937842853, + 0.291020140643388, 0.309284923399436, 0.327335342246135, + 0.345162795617181, 0.362760024244829, 0.380121111159890, + 0.397241442753010, 0.414117280448683, 0.430745332379281, + 0.447122714446318, 0.463246950320456, 0.479115971441505, + 0.494728117018421, 0.510082134029305, 0.525177177221407, + 0.540012809111123, 0.554589001813881, 0.568906157172889, + 0.582965126887879, 0.596767214344995, 0.610314174616794, + 0.623608214462242, 0.636651992326715, 0.649448618342004, + 0.662001654326309, 0.674315113784241, 0.686393423540581, + 0.698241001711602, 0.709861835676399, 0.721259443710643, + 0.732436874986582, 0.743396709573044, 0.754141058435429, + 0.764671563435718, 0.774989397332469 }; + + xy_table data_table = make_xy_table(data_x, data_y, 6); + xy_table test_table = make_xy_table(test_x, test_y, 50); + xy_table test_d_table = make_xy_table(test_x, test_dy, 50); + xy_table test_i_table = make_xy_table(test_x, test_iy, 50); + + s = test_interp (&data_table, gsl_interp_cspline, &test_table, &test_d_table, &test_i_table); + gsl_test (s, "cspline 1/(1+x^2) interpolation"); + return s; + } + + static int + test_cspline3 (void) + { + /* This data has been chosen to be random (uneven spacing in x and y) + and the exact cubic spine solution computed using Octave */ + + int s; + + double data_x[7] = { + -1.2139767065644265, + -0.792590494453907, + -0.250954683125019, + 0.665867809951305, + 0.735655088722706, + 0.827622053027153, + 1.426592227816582 + }; + + double data_y[7] = { + -0.00453877449035645, + 0.49763182550668716, + 0.17805472016334534, + 0.40514493733644485, + -0.21595209836959839, + 0.47405586764216423, + 0.46561462432146072 + } ; + + double test_x[19] = { + -1.2139767065644265, + -1.0735146358609200, + -0.9330525651574135, + -0.7925904944539071, + -0.6120452240109444, + -0.4314999535679818, + -0.2509546831250191, + 0.0546528145670890, + 0.3602603122591972, + 0.6658678099513053, + 0.6891302362084388, + 0.7123926624655723, + 0.7356550887227058, + 0.7663107434908548, + 0.7969663982590039, + 0.8276220530271530, + 1.0272787779569625, + 1.2269355028867721, + 1.4265922278165817, + }; + + double test_y[19] = { + -0.00453877449035645, + 0.25816917628390590, + 0.44938881397673230, + 0.49763182550668716, + 0.31389980410075147, + 0.09948951681196887, + 0.17805472016334534, + 1.27633142487980233, + 2.04936553432792001, + 0.40514493733644485, + 0.13322324792901385, + -0.09656315924697809, + -0.21595209836959839, + -0.13551147728045118, + 0.13466779030061801, + 0.47405586764216423, + 1.68064089899304370, + 1.43594739539458649, + 0.46561462432146072 + }; + + double test_dy[19] = { + 1.955137555965937, + 1.700662049790549, + 0.937235531264386, + -0.335141999612553, + -1.401385073563169, + -0.674982149482761, + 1.844066772628670, + 4.202528085784793, + -0.284432022227558, + -11.616813551408383, + -11.272731243226174, + -7.994209291156876, + -1.781247695200491, + 6.373970868827501, + 10.597456848997197, + 10.889210245308570, + 1.803124267866902, + -3.648527318598099, + -5.465744514086432, + }; + + double test_iy[19] = { + 0.000000000000000, + 0.018231117234914, + 0.069178822023139, + 0.137781019634897, + 0.213936442847744, + 0.249280997744777, + 0.267492946016120, + 0.471372708120518, + 1.014473660088477, + 1.477731933018837, + 1.483978291717981, + 1.484256847945450, + 1.480341742628893, + 1.474315901028282, + 1.473972210647307, + 1.483279773396950, + 1.728562698140330, + 2.057796448999396, + 2.253662886537457, + }; + + xy_table data_table = make_xy_table(data_x, data_y, 7); + xy_table test_table = make_xy_table(test_x, test_y, 19); + xy_table test_d_table = make_xy_table(test_x, test_dy, 19); + xy_table test_i_table = make_xy_table(test_x, test_iy, 19); + + s = test_interp (&data_table, gsl_interp_cspline, &test_table, &test_d_table, &test_i_table); + gsl_test (s, "cspline arbitrary data interpolation"); + return s; + } + + static int + test_csplinep (void) + { + /* This data has been chosen to be random (uneven spacing in x and y) + and the exact cubic spine solution computed using Octave */ + + int s; + + double data_x[11] = { + 0.000000000000000, + 0.130153674349869, + 0.164545962312740, + 0.227375461261537, + 0.256465324353657, + 0.372545206874658, + 0.520820016781720, + 0.647654717733075, + 0.753429306654340, + 0.900873984827658, + 1.000000000000000, + }; + + double data_y[11] = { + 0.000000000000000, + 0.729629261832041, + 0.859286331568207, + 0.989913099419008, + 0.999175006262120, + 0.717928599519215, + -0.130443237213363, + -0.800267961158980, + -0.999767873040527, + -0.583333769240853, + -0.000000000000000, + } ; + + double test_x[31] = { + 0.000000000000000, + 0.043384558116623, + 0.086769116233246, + 0.130153674349869, + 0.141617770337492, + 0.153081866325116, + 0.164545962312740, + 0.185489128629005, + 0.206432294945271, + 0.227375461261537, + 0.237072082292243, + 0.246768703322951, + 0.256465324353657, + 0.295158618527324, + 0.333851912700991, + 0.372545206874658, + 0.421970143510346, + 0.471395080146033, + 0.520820016781720, + 0.563098250432172, + 0.605376484082623, + 0.647654717733075, + 0.682912914040164, + 0.718171110347252, + 0.753429306654340, + 0.802577532712113, + 0.851725758769885, + 0.900873984827658, + 0.933915989885105, + 0.966957994942553, + 1.000000000000000 + }; + + double test_y[31] = { + 0.000000000000000, + 0.268657574670719, + 0.517940878523929, + 0.729629261832041, + 0.777012551497867, + 0.820298314554859, + 0.859286331568207, + 0.918833991960315, + 0.962624749226346, + 0.989913099419008, + 0.996756196601349, + 0.999858105635752, + 0.999175006262120, + 0.959248551766306, + 0.863713527741856, + 0.717928599519215, + 0.470065187871106, + 0.177694938589523, + -0.130443237213363, + -0.385093922365765, + -0.613840011545983, + -0.800267961158980, + -0.912498361131651, + -0.980219217412290, + -0.999767873040528, + -0.943635958253643, + -0.800314354800596, + -0.583333769240853, + -0.403689914131666, + -0.206151346799382, + -0.000000000000000 + }; + + double test_dy[31] = { + 6.275761975917336, + 6.039181349093287, + 5.382620652895025, + 4.306079887322550, + 3.957389777282752, + 3.591234754612763, + 3.207614819312586, + 2.473048186927024, + 1.702885029353488, + 0.897125346591982, + 0.513561009477969, + 0.125477545550710, + -0.267125045189792, + -1.773533414873785, + -3.141450982859891, + -4.370877749148106, + -5.562104227060234, + -6.171864888961167, + -6.200159734850907, + -5.781556055213110, + -4.974725570010514, + -3.779668279243120, + -2.569220222282655, + -1.254891157670244, + 0.163318914594122, + 2.074985916277011, + 3.711348850147548, + 5.072407716205733, + 5.754438923510391, + 6.155557010080926, + 6.275761975917336 + }; + + double test_iy[31] = { + 0.000000000000000, + 0.005864903144198, + 0.023030998930796, + 0.050262495763030, + 0.058902457844100, + 0.068062330564832, + 0.077693991819461, + 0.096340576055474, + 0.116070578226521, + 0.136546192283223, + 0.146181187290769, + 0.155864434185569, + 0.165559443629720, + 0.203636318965633, + 0.239075190181586, + 0.269828050745236, + 0.299428805999600, + 0.315560685785616, + 0.316734151903742, + 0.305773798930857, + 0.284537037103156, + 0.254466034797342, + 0.224146112780097, + 0.190643050847000, + 0.155590744566140, + 0.107448508851745, + 0.064263083957312, + 0.029987183298960, + 0.013618510529526, + 0.003506827320794, + 0.000090064010007, + }; + + xy_table data_table = make_xy_table(data_x, data_y, 11); + xy_table test_table = make_xy_table(test_x, test_y, 31); + xy_table test_d_table = make_xy_table(test_x, test_dy, 31); + xy_table test_i_table = make_xy_table(test_x, test_iy, 31); + + s = test_interp (&data_table, gsl_interp_cspline_periodic, &test_table, &test_d_table, &test_i_table); + gsl_test (s, "cspline periodic sine interpolation"); + return s; + } + + static int + test_csplinep2 (void) + { + /* This data tests the periodic case n=3 */ + + int s; + + double data_x[3] = { + 0.123, + 0.423, + 1.123 + }; + + double data_y[3] = { + 0.456000000000000, + 1.407056516295154, + 0.456000000000000 + } ; + + double test_x[61] = { + 0.123000000000000, + 0.133000000000000, + 0.143000000000000, + 0.153000000000000, + 0.163000000000000, + 0.173000000000000, + 0.183000000000000, + 0.193000000000000, + 0.203000000000000, + 0.213000000000000, + 0.223000000000000, + 0.233000000000000, + 0.243000000000000, + 0.253000000000000, + 0.263000000000000, + 0.273000000000000, + 0.283000000000000, + 0.293000000000000, + 0.303000000000000, + 0.313000000000000, + 0.323000000000000, + 0.333000000000000, + 0.343000000000000, + 0.353000000000000, + 0.363000000000000, + 0.373000000000000, + 0.383000000000000, + 0.393000000000000, + 0.403000000000000, + 0.413000000000000, + 0.423000000000000, + 0.446333333333333, + 0.469666666666667, + 0.493000000000000, + 0.516333333333333, + 0.539666666666667, + 0.563000000000000, + 0.586333333333333, + 0.609666666666667, + 0.633000000000000, + 0.656333333333333, + 0.679666666666667, + 0.703000000000000, + 0.726333333333333, + 0.749666666666667, + 0.773000000000000, + 0.796333333333333, + 0.819666666666667, + 0.843000000000000, + 0.866333333333333, + 0.889666666666667, + 0.913000000000000, + 0.936333333333333, + 0.959666666666667, + 0.983000000000000, + 1.006333333333333, + 1.029666666666667, + 1.053000000000000, + 1.076333333333333, + 1.099666666666667, + 1.123000000000000 + }; + + double test_y[61] = { + 0.456000000000000, + 0.475443822110923, + 0.497423794931967, + 0.521758764840979, + 0.548267578215809, + 0.576769081434305, + 0.607082120874316, + 0.639025542913690, + 0.672418193930275, + 0.707078920301921, + 0.742826568406475, + 0.779479984621787, + 0.816858015325704, + 0.854779506896076, + 0.893063305710751, + 0.931528258147577, + 0.969993210584403, + 1.008277009399078, + 1.046198500969450, + 1.083576531673367, + 1.120229947888679, + 1.155977595993233, + 1.190638322364879, + 1.224030973381464, + 1.255974395420838, + 1.286287434860848, + 1.314788938079344, + 1.341297751454174, + 1.365632721363187, + 1.387612694184230, + 1.407056516295154, + 1.442092968697928, + 1.463321489456714, + 1.471728359403224, + 1.468299859369172, + 1.454022270186272, + 1.429881872686237, + 1.396864947700781, + 1.355957776061616, + 1.308146638600458, + 1.254417816149018, + 1.195757589539010, + 1.133152239602149, + 1.067588047170148, + 1.000051293074719, + 0.931528258147577, + 0.863005223220435, + 0.795468469125006, + 0.729904276693004, + 0.667298926756143, + 0.608638700146136, + 0.554909877694696, + 0.507098740233537, + 0.466191568594372, + 0.433174643608916, + 0.409034246108881, + 0.394756656925981, + 0.391328156891929, + 0.399735026838439, + 0.420963547597225, + 0.456000000000000 + }; + + double test_dy[61] = { + 1.8115362215145774, + 2.0742089736341924, + 2.3187663635386602, + 2.5452083912279826, + 2.7535350567021584, + 2.9437463599611897, + 3.1158423010050744, + 3.2698228798338147, + 3.4056880964474079, + 3.5234379508458549, + 3.6230724430291570, + 3.7045915729973125, + 3.7679953407503231, + 3.8132837462881874, + 3.8404567896109061, + 3.8495144707184790, + 3.8404567896109061, + 3.8132837462881874, + 3.7679953407503231, + 3.7045915729973125, + 3.6230724430291565, + 3.5234379508458549, + 3.4056880964474074, + 3.2698228798338147, + 3.1158423010050749, + 2.9437463599611897, + 2.7535350567021584, + 2.5452083912279830, + 2.3187663635386597, + 2.0742089736341924, + 1.8115362215145772, + 1.1986331332354823, + 0.6279992234583869, + 0.0996344921833026, + -0.3864610605897765, + -0.8302874348608467, + -1.2318446306299125, + -1.5911326478969707, + -1.9081514866620208, + -2.1829011469250670, + -2.4153816286861041, + -2.6055929319451341, + -2.7535350567021584, + -2.8592080029571765, + -2.9226117707101862, + -2.9437463599611893, + -2.9226117707101862, + -2.8592080029571760, + -2.7535350567021593, + -2.6055929319451354, + -2.4153816286861045, + -2.1829011469250656, + -1.9081514866620242, + -1.5911326478969716, + -1.2318446306299160, + -0.8302874348608498, + -0.3864610605897769, + 0.0996344921832995, + 0.6279992234583824, + 1.1986331332354769, + 1.8115362215145772 + }; + + double test_iy[61] = { + 0.000000000000000, + 0.004655030170954, + 0.009517330277919, + 0.014611356059886, + 0.019959751719625, + 0.025583349923681, + 0.031501171802382, + 0.037730426949832, + 0.044286513423914, + 0.051183017746288, + 0.058431714902395, + 0.066042568341453, + 0.074023729976459, + 0.082381540184189, + 0.091120527805195, + 0.100243410143811, + 0.109751092968147, + 0.119642670510092, + 0.129915425465314, + 0.140564828993259, + 0.151584540717153, + 0.162966408723997, + 0.174700469564574, + 0.186774948253444, + 0.199176258268946, + 0.211889001553197, + 0.224895968512091, + 0.238178138015305, + 0.251714677396289, + 0.265482942452275, + 0.279458477444273, + 0.312726362409309, + 0.346648754292945, + 0.380914974633193, + 0.415237358187469, + 0.449351252932597, + 0.483015020064806, + 0.516010033999735, + 0.548140682372425, + 0.579234366037328, + 0.609141499068300, + 0.637735508758604, + 0.664912835620912, + 0.690592933387298, + 0.714718269009247, + 0.737254322657649, + 0.758189587722801, + 0.777535570814405, + 0.795326791761572, + 0.811620783612819, + 0.826498092636068, + 0.840062278318649, + 0.852439913367300, + 0.863780583708163, + 0.874256888486789, + 0.884064440068133, + 0.893421864036559, + 0.902570799195836, + 0.911775897569142, + 0.921324824399059, + 0.931528258147577 + }; + + xy_table data_table = make_xy_table(data_x, data_y, 3); + xy_table test_table = make_xy_table(test_x, test_y, 61); + xy_table test_d_table = make_xy_table(test_x, test_dy, 61); + xy_table test_i_table = make_xy_table(test_x, test_iy, 61); + + s = test_interp (&data_table, gsl_interp_cspline_periodic, &test_table, &test_d_table, &test_i_table); + gsl_test (s, "cspline periodic 3pt interpolation"); + return s; + } + + static int test_akima (void) *************** *** 247,252 **** --- 939,948 ---- status += test_linear(); status += test_polynomial(); status += test_cspline(); + status += test_cspline2(); + status += test_cspline3(); + status += test_csplinep(); + status += test_csplinep2(); status += test_akima(); exit (gsl_test_summary()); diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/linalg/ChangeLog gsl-1.8/linalg/ChangeLog *** gsl-1.7/linalg/ChangeLog Mon Aug 22 15:23:52 2005 --- gsl-1.8/linalg/ChangeLog Fri Feb 10 16:01:54 2006 *************** *** 1,3 **** --- 1,8 ---- + 2006-02-10 Brian Gough + + * cholesky.c (quiet_sqrt): added a quiet_sqrt to allow checking + for positive definiteness without a runtime error + 2005-08-22 Brian Gough * svd.c (gsl_linalg_SV_decomp_jacobi): reorganised convergence diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/linalg/Makefile.in gsl-1.8/linalg/Makefile.in *** gsl-1.7/linalg/Makefile.in Tue Sep 13 10:04:57 2005 --- gsl-1.8/linalg/Makefile.in Fri Mar 31 17:47:36 2006 *************** *** 68,78 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgsllinalg_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgsllinalg_la_SOURCES) $(test_SOURCES) --- 68,78 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgsllinalg_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgsllinalg_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/linalg/cholesky.c gsl-1.8/linalg/cholesky.c *** gsl-1.7/linalg/cholesky.c Fri Aug 5 15:21:23 2005 --- gsl-1.8/linalg/cholesky.c Fri Feb 10 16:01:54 2006 *************** *** 2,8 **** * * Copyright (C) 2000 Thomas Walter * ! * 3 May 2000: Modified for GSL by Brian Gough * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the --- 2,10 ---- * * Copyright (C) 2000 Thomas Walter * ! * 03 May 2000: Modified for GSL by Brian Gough ! * 29 Jul 2005: Additions by Gerard Jungman ! * Copyright (C) 2000,2001, 2002, 2003, 2005 Brian Gough, Gerard Jungman * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the *************** *** 21,27 **** * periodic cubic splines * approximating splines * ! * This algorthm does: * A = L * L' * with * L := lower left triangle matrix --- 23,29 ---- * periodic cubic splines * approximating splines * ! * This algorithm does: * A = L * L' * with * L := lower left triangle matrix *************** *** 38,43 **** --- 40,53 ---- #include #include + static inline + double + quiet_sqrt (double x) + /* avoids runtime error, for checking matrix for positive definiteness */ + { + return (x >= 0) ? sqrt(x) : GSL_NAN; + } + int gsl_linalg_cholesky_decomp (gsl_matrix * A) { *************** *** 59,65 **** double A_00 = gsl_matrix_get (A, 0, 0); ! double L_00 = sqrt(A_00); if (A_00 <= 0) { --- 69,75 ---- double A_00 = gsl_matrix_get (A, 0, 0); ! double L_00 = quiet_sqrt(A_00); if (A_00 <= 0) { *************** *** 75,81 **** double L_10 = A_10 / L_00; double diag = A_11 - L_10 * L_10; ! double L_11 = sqrt(diag); if (diag <= 0) { --- 85,91 ---- double L_10 = A_10 / L_00; double diag = A_11 - L_10 * L_10; ! double L_11 = quiet_sqrt(diag); if (diag <= 0) { *************** *** 118,124 **** double sum = gsl_blas_dnrm2 (&dk.vector); double diag = A_kk - sum * sum; ! double L_kk = sqrt(diag); if (diag <= 0) { --- 128,134 ---- double sum = gsl_blas_dnrm2 (&dk.vector); double diag = A_kk - sum * sum; ! double L_kk = quiet_sqrt(diag); if (diag <= 0) { *************** *** 215,218 **** --- 225,266 ---- } + int + gsl_linalg_cholesky_decomp_unit(gsl_matrix * A, gsl_vector * D) + { + const size_t N = A->size1; + size_t i, j; + + /* initial Cholesky */ + int stat_chol = gsl_linalg_cholesky_decomp(A); + if(stat_chol == GSL_SUCCESS) + { + /* calculate D from diagonal part of initial Cholesky */ + for(i = 0; i < N; ++i) + { + const double C_ii = gsl_matrix_get(A, i, i); + gsl_vector_set(D, i, C_ii*C_ii); + } + + /* multiply initial Cholesky by 1/sqrt(D) on the right */ + for(i = 0; i < N; ++i) + { + for(j = 0; j < N; ++j) + { + gsl_matrix_set(A, i, j, gsl_matrix_get(A, i, j) / sqrt(gsl_vector_get(D, j))); + } + } + + /* Because the initial Cholesky contained both L and transpose(L), + the result of the multiplication is not symmetric anymore; + but the lower triangle _is_ correct. Therefore we reflect + it to the upper triangle and declare victory. + */ + for(i = 0; i < N; ++i) + for(j = i + 1; j < N; ++j) + gsl_matrix_set(A, i, j, gsl_matrix_get(A, j, i)); + } + + return stat_chol; + } diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/linalg/gsl_linalg.h gsl-1.8/linalg/gsl_linalg.h *** gsl-1.7/linalg/gsl_linalg.h Tue Sep 13 09:57:53 2005 --- gsl-1.8/linalg/gsl_linalg.h Wed Nov 9 21:13:14 2005 *************** *** 400,405 **** --- 400,415 ---- int gsl_linalg_cholesky_svx (const gsl_matrix * cholesky, gsl_vector * x); + + /* Cholesky decomposition with unit-diagonal triangular parts. + * A = L D L^T, where diag(L) = (1,1,...,1). + * Upon exit, A contains L and L^T as for Cholesky, and + * the diagonal of A is (1,1,...,1). The vector Dis set + * to the diagonal elements of the diagonal matrix D. + */ + int gsl_linalg_cholesky_decomp_unit(gsl_matrix * A, gsl_vector * D); + + /* Symmetric to symmetric tridiagonal decomposition */ int gsl_linalg_symmtd_decomp (gsl_matrix * A, diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/linalg/test.c gsl-1.8/linalg/test.c *** gsl-1.7/linalg/test.c Tue Sep 13 09:55:36 2005 --- gsl-1.8/linalg/test.c Thu Mar 30 19:02:42 2006 *************** *** 1,6 **** /* linalg/test.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004 Gerard Jungman, Brian Gough * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by --- 1,7 ---- /* linalg/test.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2004, 2005 ! * Gerard Jungman, Brian Gough * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by *************** *** 32,44 **** #define TEST_SVD_4X4 1 int check (double x, double actual, double eps); ! gsl_matrix * create_hilbert_matrix(size_t size); ! gsl_matrix * create_general_matrix(size_t size1, size_t size2); ! gsl_matrix * create_vandermonde_matrix(size_t size); ! gsl_matrix * create_moler_matrix(size_t size); ! gsl_matrix * create_row_matrix(size_t size1, size_t size2); gsl_matrix * create_2x2_matrix(double a11, double a12, double a21, double a22); ! gsl_matrix * create_diagonal_matrix(double a[], size_t size); int test_matmult(void); int test_matmult_mod(void); --- 33,45 ---- #define TEST_SVD_4X4 1 int check (double x, double actual, double eps); ! gsl_matrix * create_hilbert_matrix(unsigned long size); ! gsl_matrix * create_general_matrix(unsigned long size1, unsigned long size2); ! gsl_matrix * create_vandermonde_matrix(unsigned long size); ! gsl_matrix * create_moler_matrix(unsigned long size); ! gsl_matrix * create_row_matrix(unsigned long size1, unsigned long size2); gsl_matrix * create_2x2_matrix(double a11, double a12, double a21, double a22); ! gsl_matrix * create_diagonal_matrix(double a[], unsigned long size); int test_matmult(void); int test_matmult_mod(void); *************** *** 94,107 **** int test_cholesky_decomp(void); int test_HH_solve_dim(const gsl_matrix * m, const double * actual, double eps); int test_HH_solve(void); ! int test_TDS_solve_dim(size_t dim, double d, double od, const double * actual, double eps); int test_TDS_solve(void); ! int test_TDN_solve_dim(size_t dim, double d, double a, double b, const double * actual, double eps); int test_TDN_solve(void); ! int test_TDS_cyc_solve_one(const size_t dim, const double * d, const double * od, const double * r, const double * actual, double eps); int test_TDS_cyc_solve(void); ! int test_TDN_cyc_solve_dim(size_t dim, double d, double a, double b, const double * actual, double eps); int test_TDN_cyc_solve(void); int test_bidiag_decomp_dim(const gsl_matrix * m, double eps); int test_bidiag_decomp(void); --- 95,108 ---- int test_cholesky_decomp(void); int test_HH_solve_dim(const gsl_matrix * m, const double * actual, double eps); int test_HH_solve(void); ! int test_TDS_solve_dim(unsigned long dim, double d, double od, const double * actual, double eps); int test_TDS_solve(void); ! int test_TDN_solve_dim(unsigned long dim, double d, double a, double b, const double * actual, double eps); int test_TDN_solve(void); ! int test_TDS_cyc_solve_one(const unsigned long dim, const double * d, const double * od, const double * r, const double * actual, double eps); int test_TDS_cyc_solve(void); ! int test_TDN_cyc_solve_dim(unsigned long dim, double d, double a, double b, const double * actual, double eps); int test_TDN_cyc_solve(void); int test_bidiag_decomp_dim(const gsl_matrix * m, double eps); int test_bidiag_decomp(void); *************** *** 124,132 **** } gsl_matrix * ! create_hilbert_matrix(size_t size) { ! size_t i, j; gsl_matrix * m = gsl_matrix_alloc(size, size); for(i=0; isize1; gsl_permutation * perm = gsl_permutation_alloc(dim); gsl_vector * rhs = gsl_vector_alloc(dim); --- 471,477 ---- { int s = 0; int signum; ! unsigned long i, dim = m->size1; gsl_permutation * perm = gsl_permutation_alloc(dim); gsl_vector * rhs = gsl_vector_alloc(dim); *************** *** 485,491 **** for(i=0; isize1; gsl_permutation * perm = gsl_permutation_alloc(dim); gsl_vector_complex * rhs = gsl_vector_complex_alloc(dim); --- 557,563 ---- { int s = 0; int signum; ! unsigned long i, dim = m->size1; gsl_permutation * perm = gsl_permutation_alloc(dim); gsl_vector_complex * rhs = gsl_vector_complex_alloc(dim); *************** *** 577,584 **** int foo_r = check(GSL_REAL(z),actual[2*i],eps); int foo_i = check(GSL_IMAG(z),actual[2*i+1],eps); if(foo_r || foo_i) { ! printf("%3d[%d]: %22.18g %22.18g\n", dim, i, GSL_REAL(z), actual[2*i]); ! printf("%3d[%d]: %22.18g %22.18g\n", dim, i, GSL_IMAG(z), actual[2*i+1]); } s += foo_r + foo_i; } --- 578,585 ---- int foo_r = check(GSL_REAL(z),actual[2*i],eps); int foo_i = check(GSL_IMAG(z),actual[2*i+1],eps); if(foo_r || foo_i) { ! printf("%3lu[%lu]: %22.18g %22.18g\n", dim, i, GSL_REAL(z), actual[2*i]); ! printf("%3lu[%lu]: %22.18g %22.18g\n", dim, i, GSL_IMAG(z), actual[2*i+1]); } s += foo_r + foo_i; } *************** *** 590,597 **** int foo_r = check(GSL_REAL(z),actual[2*i],eps); int foo_i = check(GSL_IMAG(z),actual[2*i+1],eps); if(foo_r || foo_i) { ! printf("%3d[%d]: %22.18g %22.18g (improved)\n", dim, i, GSL_REAL(z), actual[2*i]); ! printf("%3d[%d]: %22.18g %22.18g (improved)\n", dim, i, GSL_IMAG(z), actual[2*i+1]); } s += foo_r + foo_i; } --- 591,598 ---- int foo_r = check(GSL_REAL(z),actual[2*i],eps); int foo_i = check(GSL_IMAG(z),actual[2*i+1],eps); if(foo_r || foo_i) { ! printf("%3lu[%lu]: %22.18g %22.18g (improved)\n", dim, i, GSL_REAL(z), actual[2*i]); ! printf("%3lu[%lu]: %22.18g %22.18g (improved)\n", dim, i, GSL_IMAG(z), actual[2*i+1]); } s += foo_r + foo_i; } *************** *** 623,629 **** test_QR_solve_dim(const gsl_matrix * m, const double * actual, double eps) { int s = 0; ! size_t i, dim = m->size1; gsl_vector * rhs = gsl_vector_alloc(dim); gsl_matrix * qr = gsl_matrix_alloc(dim,dim); --- 624,630 ---- test_QR_solve_dim(const gsl_matrix * m, const double * actual, double eps) { int s = 0; ! unsigned long i, dim = m->size1; gsl_vector * rhs = gsl_vector_alloc(dim); gsl_matrix * qr = gsl_matrix_alloc(dim,dim); *************** *** 637,643 **** for(i=0; isize1; gsl_vector * rhs = gsl_vector_alloc(dim); gsl_matrix * qr = gsl_matrix_alloc(dim,dim); --- 696,702 ---- test_QR_QRsolve_dim(const gsl_matrix * m, const double * actual, double eps) { int s = 0; ! unsigned long i, dim = m->size1; gsl_vector * rhs = gsl_vector_alloc(dim); gsl_matrix * qr = gsl_matrix_alloc(dim,dim); *************** *** 712,718 **** for(i=0; isize1, N = m->size2; gsl_vector * rhs = gsl_vector_alloc(M); gsl_matrix * qr = gsl_matrix_alloc(M,N); --- 772,778 ---- test_QR_lssolve_dim(const gsl_matrix * m, const double * actual, double eps) { int s = 0; ! unsigned long i, M = m->size1, N = m->size2; gsl_vector * rhs = gsl_vector_alloc(M); gsl_matrix * qr = gsl_matrix_alloc(M,N); *************** *** 788,794 **** for(i=0; isize1, N = m->size2; gsl_matrix * qr = gsl_matrix_alloc(M,N); gsl_matrix * a = gsl_matrix_alloc(M,N); --- 869,875 ---- test_QR_decomp_dim(const gsl_matrix * m, double eps) { int s = 0; ! unsigned long i,j, M = m->size1, N = m->size2; gsl_matrix * qr = gsl_matrix_alloc(M,N); gsl_matrix * a = gsl_matrix_alloc(M,N); *************** *** 890,896 **** double mij = gsl_matrix_get(m, i, j); int foo = check(aij, mij, eps); if(foo) { ! printf("(%3d,%3d)[%d,%d]: %22.18g %22.18g\n", M, N, i,j, aij, mij); } s += foo; } --- 891,897 ---- double mij = gsl_matrix_get(m, i, j); int foo = check(aij, mij, eps); if(foo) { ! printf("(%3lu,%3lu)[%lu,%lu]: %22.18g %22.18g\n", M, N, i,j, aij, mij); } s += foo; } *************** *** 958,964 **** { int s = 0; int signum; ! size_t i, dim = m->size1; gsl_permutation * perm = gsl_permutation_alloc(dim); gsl_vector * rhs = gsl_vector_alloc(dim); --- 959,965 ---- { int s = 0; int signum; ! unsigned long i, dim = m->size1; gsl_permutation * perm = gsl_permutation_alloc(dim); gsl_vector * rhs = gsl_vector_alloc(dim); *************** *** 974,980 **** for(i=0; isize1; gsl_permutation * perm = gsl_permutation_alloc(dim); gsl_vector * rhs = gsl_vector_alloc(dim); --- 1035,1041 ---- { int s = 0; int signum; ! unsigned long i, dim = m->size1; gsl_permutation * perm = gsl_permutation_alloc(dim); gsl_vector * rhs = gsl_vector_alloc(dim); *************** *** 1052,1058 **** for(i=0; isize1, N = m->size2; gsl_matrix * qr = gsl_matrix_alloc(M,N); gsl_matrix * a = gsl_matrix_alloc(M,N); --- 1114,1120 ---- test_QRPT_decomp_dim(const gsl_matrix * m, double eps) { int s = 0, signum; ! unsigned long i,j, M = m->size1, N = m->size2; gsl_matrix * qr = gsl_matrix_alloc(M,N); gsl_matrix * a = gsl_matrix_alloc(M,N); *************** *** 1146,1152 **** double mij = gsl_matrix_get(m, i, j); int foo = check(aij, mij, eps); if(foo) { ! printf("(%3d,%3d)[%d,%d]: %22.18g %22.18g\n", M, N, i,j, aij, mij); } s += foo; } --- 1147,1153 ---- double mij = gsl_matrix_get(m, i, j); int foo = check(aij, mij, eps); if(foo) { ! printf("(%3lu,%3lu)[%lu,%lu]: %22.18g %22.18g\n", M, N, i,j, aij, mij); } s += foo; } *************** *** 1224,1230 **** test_QR_update_dim(const gsl_matrix * m, double eps) { int s = 0; ! size_t i,j,k, M = m->size1, N = m->size2; gsl_vector * rhs = gsl_vector_alloc(N); gsl_matrix * qr1 = gsl_matrix_alloc(M,N); --- 1225,1231 ---- test_QR_update_dim(const gsl_matrix * m, double eps) { int s = 0; ! unsigned long i,j,k, M = m->size1, N = m->size2; gsl_vector * rhs = gsl_vector_alloc(N); gsl_matrix * qr1 = gsl_matrix_alloc(M,N); *************** *** 1296,1302 **** int foo = check(s1, s2, eps); if(foo) { ! printf("(%3d,%3d)[%d,%d]: %22.18g %22.18g\n", M, N, i,j, s1, s2); } s += foo; } --- 1297,1303 ---- int foo = check(s1, s2, eps); if(foo) { ! printf("(%3lu,%3lu)[%lu,%lu]: %22.18g %22.18g\n", M, N, i,j, s1, s2); } s += foo; } *************** *** 1371,1377 **** test_LQ_solve_dim(const gsl_matrix * m, const double * actual, double eps) { int s = 0; ! size_t i, dim = m->size1; gsl_vector * rhs = gsl_vector_alloc(dim); gsl_matrix * lq = gsl_matrix_alloc(dim,dim); --- 1372,1378 ---- test_LQ_solve_dim(const gsl_matrix * m, const double * actual, double eps) { int s = 0; ! unsigned long i, dim = m->size1; gsl_vector * rhs = gsl_vector_alloc(dim); gsl_matrix * lq = gsl_matrix_alloc(dim,dim); *************** *** 1385,1391 **** for(i=0; isize1; gsl_vector * rhs = gsl_vector_alloc(dim); gsl_matrix * lq = gsl_matrix_alloc(dim,dim); --- 1446,1452 ---- test_LQ_LQsolve_dim(const gsl_matrix * m, const double * actual, double eps) { int s = 0; ! unsigned long i, dim = m->size1; gsl_vector * rhs = gsl_vector_alloc(dim); gsl_matrix * lq = gsl_matrix_alloc(dim,dim); *************** *** 1462,1468 **** for(i=0; isize1, N = m->size2; gsl_vector * rhs = gsl_vector_alloc(M); gsl_matrix * lq = gsl_matrix_alloc(N,M); --- 1523,1529 ---- test_LQ_lssolve_dim(const gsl_matrix * m, const double * actual, double eps) { int s = 0; ! unsigned long i, M = m->size1, N = m->size2; gsl_vector * rhs = gsl_vector_alloc(M); gsl_matrix * lq = gsl_matrix_alloc(N,M); *************** *** 1539,1545 **** for(i=0; isize1, N = m->size2; gsl_matrix * lq = gsl_matrix_alloc(M,N); gsl_matrix * a = gsl_matrix_alloc(M,N); --- 1627,1633 ---- test_LQ_decomp_dim(const gsl_matrix * m, double eps) { int s = 0; ! unsigned long i,j, M = m->size1, N = m->size2; gsl_matrix * lq = gsl_matrix_alloc(M,N); gsl_matrix * a = gsl_matrix_alloc(M,N); *************** *** 1648,1654 **** double mij = gsl_matrix_get(m, i, j); int foo = check(aij, mij, eps); if(foo) { ! printf("(%3d,%3d)[%d,%d]: %22.18g %22.18g\n", M, N, i,j, aij, mij); } s += foo; } --- 1649,1655 ---- double mij = gsl_matrix_get(m, i, j); int foo = check(aij, mij, eps); if(foo) { ! printf("(%3lu,%3lu)[%lu,%lu]: %22.18g %22.18g\n", M, N, i,j, aij, mij); } s += foo; } *************** *** 1719,1725 **** { int s = 0; int signum; ! size_t i, dim = m->size1; gsl_permutation * perm = gsl_permutation_alloc(dim); gsl_vector * rhs = gsl_vector_alloc(dim); --- 1720,1726 ---- { int s = 0; int signum; ! unsigned long i, dim = m->size1; gsl_permutation * perm = gsl_permutation_alloc(dim); gsl_vector * rhs = gsl_vector_alloc(dim); *************** *** 1735,1741 **** for(i=0; isize1; gsl_permutation * perm = gsl_permutation_alloc(dim); gsl_vector * rhs = gsl_vector_alloc(dim); --- 1797,1803 ---- { int s = 0; int signum; ! unsigned long i, dim = m->size1; gsl_permutation * perm = gsl_permutation_alloc(dim); gsl_vector * rhs = gsl_vector_alloc(dim); *************** *** 1814,1820 **** for(i=0; isize1, N = m->size2; gsl_matrix * lq = gsl_matrix_alloc(N,M); gsl_matrix * a = gsl_matrix_alloc(N,M); --- 1875,1881 ---- test_PTLQ_decomp_dim(const gsl_matrix * m, double eps) { int s = 0, signum; ! unsigned long i,j, M = m->size1, N = m->size2; gsl_matrix * lq = gsl_matrix_alloc(N,M); gsl_matrix * a = gsl_matrix_alloc(N,M); *************** *** 1907,1913 **** double mij = gsl_matrix_get(m, i, j); int foo = check(aij, mij, eps); if(foo) { ! printf("(%3d,%3d)[%d,%d]: %22.18g %22.18g\n", M, N, i,j, aij, mij); } s += foo; } --- 1908,1914 ---- double mij = gsl_matrix_get(m, i, j); int foo = check(aij, mij, eps); if(foo) { ! printf("(%3lu,%3lu)[%lu,%lu]: %22.18g %22.18g\n", M, N, i,j, aij, mij); } s += foo; } *************** *** 1985,1991 **** test_LQ_update_dim(const gsl_matrix * m, double eps) { int s = 0; ! size_t i,j, M = m->size1, N = m->size2; gsl_matrix * lq1 = gsl_matrix_alloc(N,M); gsl_matrix * lq2 = gsl_matrix_alloc(N,M); --- 1986,1992 ---- test_LQ_update_dim(const gsl_matrix * m, double eps) { int s = 0; ! unsigned long i,j, M = m->size1, N = m->size2; gsl_matrix * lq1 = gsl_matrix_alloc(N,M); gsl_matrix * lq2 = gsl_matrix_alloc(N,M); *************** *** 2034,2040 **** int foo = check(s1, s2, eps); #if 0 if(foo) { ! printf("LQ:(%3d,%3d)[%d,%d]: %22.18g %22.18g\n", M, N, i,j, s1, s2); } #endif s += foo; --- 2035,2041 ---- int foo = check(s1, s2, eps); #if 0 if(foo) { ! printf("LQ:(%3lu,%3lu)[%lu,%lu]: %22.18g %22.18g\n", M, N, i,j, s1, s2); } #endif s += foo; *************** *** 2107,2113 **** test_SV_solve_dim(const gsl_matrix * m, const double * actual, double eps) { int s = 0; ! size_t i, dim = m->size1; gsl_vector * rhs = gsl_vector_alloc(dim); gsl_matrix * u = gsl_matrix_alloc(dim,dim); --- 2108,2114 ---- test_SV_solve_dim(const gsl_matrix * m, const double * actual, double eps) { int s = 0; ! unsigned long i, dim = m->size1; gsl_vector * rhs = gsl_vector_alloc(dim); gsl_matrix * u = gsl_matrix_alloc(dim,dim); *************** *** 2121,2127 **** for(i=0; isize1, N = m->size2; gsl_matrix * v = gsl_matrix_alloc(M,N); gsl_matrix * a = gsl_matrix_alloc(M,N); --- 2180,2186 ---- { int s = 0; double di1; ! unsigned long i,j, M = m->size1, N = m->size2; gsl_matrix * v = gsl_matrix_alloc(M,N); gsl_matrix * a = gsl_matrix_alloc(M,N); *************** *** 2208,2219 **** if (di < 0) { s++; ! printf("singular value %d = %22.18g < 0\n", i, di); } if(i > 0 && di > di1) { s++; ! printf("singular value %d = %22.18g vs previous %22.18g\n", i, di, di1); } di1 = di; --- 2209,2220 ---- if (di < 0) { s++; ! printf("singular value %lu = %22.18g < 0\n", i, di); } if(i > 0 && di > di1) { s++; ! printf("singular value %lu = %22.18g vs previous %22.18g\n", i, di, di1); } di1 = di; *************** *** 2241,2247 **** double mij = gsl_matrix_get(m, i, j); int foo = check(aij, mij, eps); if(foo) { ! printf("(%3d,%3d)[%d,%d]: %22.18g %22.18g\n", M, N, i,j, aij, mij); } s += foo; } --- 2242,2248 ---- double mij = gsl_matrix_get(m, i, j); int foo = check(aij, mij, eps); if(foo) { ! printf("(%3lu,%3lu)[%lu,%lu]: %22.18g %22.18g\n", M, N, i,j, aij, mij); } s += foo; } *************** *** 2424,2430 **** { int s = 0; double di1; ! size_t i,j, M = m->size1, N = m->size2; gsl_matrix * v = gsl_matrix_alloc(M,N); gsl_matrix * a = gsl_matrix_alloc(M,N); --- 2425,2431 ---- { int s = 0; double di1; ! unsigned long i,j, M = m->size1, N = m->size2; gsl_matrix * v = gsl_matrix_alloc(M,N); gsl_matrix * a = gsl_matrix_alloc(M,N); *************** *** 2454,2465 **** if (di < 0) { s++; ! printf("singular value %d = %22.18g < 0\n", i, di); } if(i > 0 && di > di1) { s++; ! printf("singular value %d = %22.18g vs previous %22.18g\n", i, di, di1); } di1 = di; --- 2455,2466 ---- if (di < 0) { s++; ! printf("singular value %lu = %22.18g < 0\n", i, di); } if(i > 0 && di > di1) { s++; ! printf("singular value %lu = %22.18g vs previous %22.18g\n", i, di, di1); } di1 = di; *************** *** 2487,2493 **** double mij = gsl_matrix_get(m, i, j); int foo = check(aij, mij, eps); if(foo) { ! printf("(%3d,%3d)[%d,%d]: %22.18g %22.18g\n", M, N, i,j, aij, mij); } s += foo; } --- 2488,2494 ---- double mij = gsl_matrix_get(m, i, j); int foo = check(aij, mij, eps); if(foo) { ! printf("(%3lu,%3lu)[%lu,%lu]: %22.18g %22.18g\n", M, N, i,j, aij, mij); } s += foo; } *************** *** 2671,2677 **** { int s = 0; double di1; ! size_t i,j, M = m->size1, N = m->size2; gsl_matrix * v = gsl_matrix_alloc(M,N); gsl_matrix * a = gsl_matrix_alloc(M,N); --- 2672,2678 ---- { int s = 0; double di1; ! unsigned long i,j, M = m->size1, N = m->size2; gsl_matrix * v = gsl_matrix_alloc(M,N); gsl_matrix * a = gsl_matrix_alloc(M,N); *************** *** 2701,2712 **** if (di < 0) { s++; ! printf("singular value %d = %22.18g < 0\n", i, di); } if(i > 0 && di > di1) { s++; ! printf("singular value %d = %22.18g vs previous %22.18g\n", i, di, di1); } di1 = di; --- 2702,2713 ---- if (di < 0) { s++; ! printf("singular value %lu = %22.18g < 0\n", i, di); } if(i > 0 && di > di1) { s++; ! printf("singular value %lu = %22.18g vs previous %22.18g\n", i, di, di1); } di1 = di; *************** *** 2734,2740 **** double mij = gsl_matrix_get(m, i, j); int foo = check(aij, mij, eps); if(foo) { ! printf("(%3d,%3d)[%d,%d]: %22.18g %22.18g\n", M, N, i,j, aij, mij); } s += foo; } --- 2735,2741 ---- double mij = gsl_matrix_get(m, i, j); int foo = check(aij, mij, eps); if(foo) { ! printf("(%3lu,%3lu)[%lu,%lu]: %22.18g %22.18g\n", M, N, i,j, aij, mij); } s += foo; } *************** *** 2895,2901 **** while (carry == 0.0) { k++; f = test_SV_decomp_jacobi_dim(A44, 64 * GSL_DBL_EPSILON); ! gsl_test(f, " SV_decomp_jacobi (4x4) A=[ %g, %g, %g, %g; %g, %g, %g, %g; %g, %g, %g, %g; %g, %g, %g, %g] %d", a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], k); /* increment */ --- 2896,2902 ---- while (carry == 0.0) { k++; f = test_SV_decomp_jacobi_dim(A44, 64 * GSL_DBL_EPSILON); ! gsl_test(f, " SV_decomp_jacobi (4x4) A=[ %g, %g, %g, %g; %g, %g, %g, %g; %g, %g, %g, %g; %g, %g, %g, %g] %lu", a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], k); /* increment */ *************** *** 2926,2932 **** if (k % 1001 == 0) { f = test_SV_decomp_jacobi_dim(A55, 64 * GSL_DBL_EPSILON); ! gsl_test(f, " SV_decomp_jacobi (5x5) case=%d",k); } /* increment */ --- 2927,2933 ---- if (k % 1001 == 0) { f = test_SV_decomp_jacobi_dim(A55, 64 * GSL_DBL_EPSILON); ! gsl_test(f, " SV_decomp_jacobi (5x5) case=%lu",k); } /* increment */ *************** *** 2949,2955 **** test_cholesky_solve_dim(const gsl_matrix * m, const double * actual, double eps) { int s = 0; ! size_t i, dim = m->size1; gsl_vector * rhs = gsl_vector_alloc(dim); gsl_matrix * u = gsl_matrix_alloc(dim,dim); --- 2950,2956 ---- test_cholesky_solve_dim(const gsl_matrix * m, const double * actual, double eps) { int s = 0; ! unsigned long i, dim = m->size1; gsl_vector * rhs = gsl_vector_alloc(dim); gsl_matrix * u = gsl_matrix_alloc(dim,dim); *************** *** 2961,2967 **** for(i=0; isize1, N = m->size2; gsl_matrix * v = gsl_matrix_alloc(M,N); gsl_matrix * a = gsl_matrix_alloc(M,N); --- 3002,3008 ---- test_cholesky_decomp_dim(const gsl_matrix * m, double eps) { int s = 0; ! unsigned long i,j, M = m->size1, N = m->size2; gsl_matrix * v = gsl_matrix_alloc(M,N); gsl_matrix * a = gsl_matrix_alloc(M,N); *************** *** 3033,3039 **** double mij = gsl_matrix_get(m, i, j); int foo = check(aij, mij, eps); if(foo) { ! printf("(%3d,%3d)[%d,%d]: %22.18g %22.18g\n", M, N, i,j, aij, mij); } s += foo; } --- 3034,3040 ---- double mij = gsl_matrix_get(m, i, j); int foo = check(aij, mij, eps); if(foo) { ! printf("(%3lu,%3lu)[%lu,%lu]: %22.18g %22.18g\n", M, N, i,j, aij, mij); } s += foo; } *************** *** 3073,3082 **** int test_HH_solve_dim(const gsl_matrix * m, const double * actual, double eps) { int s = 0; ! size_t i, dim = m->size1; gsl_permutation * perm = gsl_permutation_alloc(dim); gsl_matrix * hh = gsl_matrix_alloc(dim,dim); --- 3074,3190 ---- int + test_cholesky_decomp_unit_dim(const gsl_matrix * m, double eps) + { + int s = 0; + const unsigned long M = m->size1; + const unsigned long N = m->size2; + unsigned long i,j; + + gsl_matrix * v = gsl_matrix_alloc(M,N); + gsl_matrix * a = gsl_matrix_alloc(M,N); + gsl_matrix * l = gsl_matrix_alloc(M,N); + gsl_matrix * lt = gsl_matrix_alloc(N,N); + gsl_matrix * dm = gsl_matrix_alloc(M,N); + gsl_vector * dv = gsl_vector_alloc(M); + + gsl_matrix_memcpy(v,m); + + s += gsl_linalg_cholesky_decomp_unit(v, dv); + + /* + for(i = 0; i < M; i++) + { + for(j = 0; j < N; j++) + { + printf("v[%lu,%lu]: %22.18e\n", i,j, gsl_matrix_get(v, i, j)); + } + } + + + for(i = 0; i < M; i++) + { + printf("d[%lu]: %22.18e\n", i, gsl_vector_get(dv, i)); + } + */ + + /* put L and transpose(L) into separate matrices */ + + for(i = 0; i < N ; i++) + { + for(j = 0; j < N; j++) + { + const double vij = gsl_matrix_get(v, i, j); + gsl_matrix_set (l, i, j, i>=j ? vij : 0); + gsl_matrix_set (lt, i, j, i<=j ? vij : 0); + } + } + + /* put D into its own matrix */ + + gsl_matrix_set_zero(dm); + for(i = 0; i < M; ++i) gsl_matrix_set(dm, i, i, gsl_vector_get(dv, i)); + + /* compute a = L * D * transpose(L); uses v for temp space */ + + gsl_blas_dgemm (CblasNoTrans, CblasNoTrans, 1.0, dm, lt, 0.0, v); + gsl_blas_dgemm (CblasNoTrans, CblasNoTrans, 1.0, l, v, 0.0, a); + + for(i = 0; i < M; i++) + { + for(j = 0; j < N; j++) + { + const double aij = gsl_matrix_get(a, i, j); + const double mij = gsl_matrix_get(m, i, j); + int foo = check(aij, mij, eps); + if(foo) + { + printf("(%3lu,%3lu)[%lu,%lu]: %22.18g %22.18g\n", M, N, i,j, aij, mij); + } + s += foo; + } + } + + gsl_vector_free(dv); + gsl_matrix_free(dm); + gsl_matrix_free(lt); + gsl_matrix_free(l); + gsl_matrix_free(v); + gsl_matrix_free(a); + + return s; + } + + int test_cholesky_decomp_unit(void) + { + int f; + int s = 0; + + f = test_cholesky_decomp_unit_dim(hilb2, 2 * 8.0 * GSL_DBL_EPSILON); + gsl_test(f, " cholesky_decomp_unit hilbert(2)"); + s += f; + + f = test_cholesky_decomp_unit_dim(hilb3, 2 * 64.0 * GSL_DBL_EPSILON); + gsl_test(f, " cholesky_decomp_unit hilbert(3)"); + s += f; + + f = test_cholesky_decomp_unit_dim(hilb4, 2 * 1024.0 * GSL_DBL_EPSILON); + gsl_test(f, " cholesky_decomp_unit hilbert(4)"); + s += f; + + f = test_cholesky_decomp_unit_dim(hilb12, 2 * 1024.0 * GSL_DBL_EPSILON); + gsl_test(f, " cholesky_decomp_unit hilbert(12)"); + s += f; + + return s; + } + + + int test_HH_solve_dim(const gsl_matrix * m, const double * actual, double eps) { int s = 0; ! unsigned long i, dim = m->size1; gsl_permutation * perm = gsl_permutation_alloc(dim); gsl_matrix * hh = gsl_matrix_alloc(dim,dim); *************** *** 3088,3094 **** for(i=0; isize1, N = m->size2; gsl_matrix * A = gsl_matrix_alloc(M,N); gsl_matrix * a = gsl_matrix_alloc(M,N); --- 3563,3569 ---- test_bidiag_decomp_dim(const gsl_matrix * m, double eps) { int s = 0; ! unsigned long i,j,k,r, M = m->size1, N = m->size2; gsl_matrix * A = gsl_matrix_alloc(M,N); gsl_matrix * a = gsl_matrix_alloc(M,N); *************** *** 3504,3510 **** double mij = gsl_matrix_get(m, i, j); int foo = check(aij, mij, eps); if(foo) { ! printf("(%3d,%3d)[%d,%d]: %22.18g %22.18g\n", M, N, i,j, aij, mij); } s += foo; } --- 3612,3618 ---- double mij = gsl_matrix_get(m, i, j); int foo = check(aij, mij, eps); if(foo) { ! printf("(%3lu,%3lu)[%lu,%lu]: %22.18g %22.18g\n", M, N, i,j, aij, mij); } s += foo; } *************** *** 3608,3648 **** /* Matmult now obsolete */ #ifdef MATMULT ! gsl_test(test_matmult(), "Matrix Multiply"); ! gsl_test(test_matmult_mod(), "Matrix Multiply with Modification"); #endif ! gsl_test(test_bidiag_decomp(), "Bidiagonal Decomposition"); ! gsl_test(test_LU_solve(), "LU Decomposition and Solve"); ! gsl_test(test_LUc_solve(), "Complex LU Decomposition and Solve"); ! gsl_test(test_QR_decomp(), "QR Decomposition"); ! gsl_test(test_QR_solve(), "QR Solve"); ! gsl_test(test_LQ_solve(), "LQ Solve"); ! gsl_test(test_PTLQ_solve(), "PTLQ Solve"); ! ! gsl_test(test_LQ_decomp(), "LQ Decomposition"); ! gsl_test(test_LQ_LQsolve(), "LQ LQ Solve"); ! gsl_test(test_LQ_lssolve(), "LQ LS Solve"); ! gsl_test(test_LQ_update(), "LQ Rank-1 Update"); ! gsl_test(test_QRPT_decomp(), "PTLQ Decomposition"); ! gsl_test(test_PTLQ_solve(), "PTLQ Solve"); ! ! gsl_test(test_QR_QRsolve(), "QR QR Solve"); ! gsl_test(test_QR_lssolve(), "QR LS Solve"); ! gsl_test(test_QR_update(), "QR Rank-1 Update"); ! gsl_test(test_QRPT_decomp(), "QRPT Decomposition"); ! gsl_test(test_QRPT_solve(), "QRPT Solve"); ! gsl_test(test_QRPT_QRsolve(), "QRPT QR Solve"); ! gsl_test(test_SV_decomp(), "Singular Value Decomposition"); ! gsl_test(test_SV_decomp_jacobi(), "Singular Value Decomposition (Jacobi)"); ! gsl_test(test_SV_decomp_mod(), "Singular Value Decomposition (Mod)"); ! gsl_test(test_SV_solve(), "SVD Solve"); ! gsl_test(test_cholesky_decomp(),"Cholesky Decomposition"); ! gsl_test(test_cholesky_solve(), "Cholesky Solve"); ! gsl_test(test_HH_solve(), "Householder solve"); ! gsl_test(test_TDS_solve(), "Tridiagonal symmetric solve"); ! gsl_test(test_TDS_cyc_solve(), "Tridiagonal symmetric cyclic solve"); ! gsl_test(test_TDN_solve(), "Tridiagonal nonsymmetric solve"); ! gsl_test(test_TDN_cyc_solve(), "Tridiagonal nonsymmetric cyclic solve"); gsl_matrix_free(m11); gsl_matrix_free(m35); --- 3716,3757 ---- /* Matmult now obsolete */ #ifdef MATMULT ! gsl_test(test_matmult(), "Matrix Multiply"); ! gsl_test(test_matmult_mod(), "Matrix Multiply with Modification"); #endif ! gsl_test(test_bidiag_decomp(), "Bidiagonal Decomposition"); ! gsl_test(test_LU_solve(), "LU Decomposition and Solve"); ! gsl_test(test_LUc_solve(), "Complex LU Decomposition and Solve"); ! gsl_test(test_QR_decomp(), "QR Decomposition"); ! gsl_test(test_QR_solve(), "QR Solve"); ! gsl_test(test_LQ_solve(), "LQ Solve"); ! gsl_test(test_PTLQ_solve(), "PTLQ Solve"); ! ! gsl_test(test_LQ_decomp(), "LQ Decomposition"); ! gsl_test(test_LQ_LQsolve(), "LQ LQ Solve"); ! gsl_test(test_LQ_lssolve(), "LQ LS Solve"); ! gsl_test(test_LQ_update(), "LQ Rank-1 Update"); ! gsl_test(test_QRPT_decomp(), "PTLQ Decomposition"); ! gsl_test(test_PTLQ_solve(), "PTLQ Solve"); ! ! gsl_test(test_QR_QRsolve(), "QR QR Solve"); ! gsl_test(test_QR_lssolve(), "QR LS Solve"); ! gsl_test(test_QR_update(), "QR Rank-1 Update"); ! gsl_test(test_QRPT_decomp(), "QRPT Decomposition"); ! gsl_test(test_QRPT_solve(), "QRPT Solve"); ! gsl_test(test_QRPT_QRsolve(), "QRPT QR Solve"); ! gsl_test(test_SV_decomp(), "Singular Value Decomposition"); ! gsl_test(test_SV_decomp_jacobi(), "Singular Value Decomposition (Jacobi)"); ! gsl_test(test_SV_decomp_mod(), "Singular Value Decomposition (Mod)"); ! gsl_test(test_SV_solve(), "SVD Solve"); ! gsl_test(test_cholesky_decomp(), "Cholesky Decomposition"); ! gsl_test(test_cholesky_decomp_unit(), "Cholesky Decomposition [unit triangular]"); ! gsl_test(test_cholesky_solve(), "Cholesky Solve"); ! gsl_test(test_HH_solve(), "Householder solve"); ! gsl_test(test_TDS_solve(), "Tridiagonal symmetric solve"); ! gsl_test(test_TDS_cyc_solve(), "Tridiagonal symmetric cyclic solve"); ! gsl_test(test_TDN_solve(), "Tridiagonal nonsymmetric solve"); ! gsl_test(test_TDN_cyc_solve(), "Tridiagonal nonsymmetric cyclic solve"); gsl_matrix_free(m11); gsl_matrix_free(m35); diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/ltmain.sh gsl-1.8/ltmain.sh *** gsl-1.7/ltmain.sh Mon Jun 16 09:54:25 2003 --- gsl-1.8/ltmain.sh Tue Mar 21 15:21:43 2006 *************** *** 1,7 **** # ltmain.sh - Provide generalized library-building support services. # NOTE: Changing this file will not affect anything until you rerun configure. # ! # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 # Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 1996 # --- 1,7 ---- # ltmain.sh - Provide generalized library-building support services. # NOTE: Changing this file will not affect anything until you rerun configure. # ! # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 # Free Software Foundation, Inc. # Originally by Gordon Matzigkeit , 1996 # *************** *** 17,29 **** # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software ! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Check that we have a working $echo. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. --- 17,57 ---- # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software ! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. + basename="s,^.*/,,g" + + # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh + # is ksh but when the shell is invoked as "sh" and the current value of + # the _XPG environment variable is not equal to 1 (one), the special + # positional parameter $0, within a function call, is the name of the + # function. + progpath="$0" + + # The name of this program: + progname=`echo "$progpath" | $SED $basename` + modename="$progname" + + # Global variables: + EXIT_SUCCESS=0 + EXIT_FAILURE=1 + + PROGRAM=ltmain.sh + PACKAGE=libtool + VERSION=1.5.22 + TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)" + + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + # Check that we have a working $echo. if test "X$1" = X--no-reexec; then # Discard the --no-reexec flag, and continue. *************** *** 36,42 **** : else # Restart under the correct shell, and then maybe $echo will work. ! exec $SHELL "$0" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then --- 64,70 ---- : else # Restart under the correct shell, and then maybe $echo will work. ! exec $SHELL "$progpath" --no-reexec ${1+"$@"} fi if test "X$1" = X--fallback-echo; then *************** *** 45,63 **** cat <&2 ! echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 ! exit 1 fi # Global variables. --- 113,126 ---- fi # Make sure IFS has a sensible default ! lt_nl=' ! ' ! IFS=" $lt_nl" if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then ! $echo "$modename: not configured to build any kind of library" 1>&2 ! $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 ! exit $EXIT_FAILURE fi # Global variables. *************** *** 111,121 **** show="$echo" show_help= execute_dlfiles= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" # Parse our command line options once, thoroughly. ! while test $# -gt 0 do arg="$1" shift --- 132,399 ---- show="$echo" show_help= execute_dlfiles= + duplicate_deps=no + preserve_args= lo2o="s/\\.lo\$/.${objext}/" o2lo="s/\\.${objext}\$/.lo/" + ##################################### + # Shell function definitions: + # This seems to be the best place for them + + # func_mktempdir [string] + # Make a temporary directory that won't clash with other running + # libtool processes, and avoids race conditions if possible. If + # given, STRING is the basename for that directory. + func_mktempdir () + { + my_template="${TMPDIR-/tmp}/${1-$progname}" + + if test "$run" = ":"; then + # Return a directory name, but don't create it in dry-run mode + my_tmpdir="${my_template}-$$" + else + + # If mktemp works, use that first and foremost + my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` + + if test ! -d "$my_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + my_tmpdir="${my_template}-${RANDOM-0}$$" + + save_mktempdir_umask=`umask` + umask 0077 + $mkdir "$my_tmpdir" + umask $save_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$my_tmpdir" || { + $echo "cannot create temporary directory \`$my_tmpdir'" 1>&2 + exit $EXIT_FAILURE + } + fi + + $echo "X$my_tmpdir" | $Xsed + } + + + # func_win32_libid arg + # return the library type of file 'arg' + # + # Need a lot of goo to handle *both* DLLs and import libs + # Has to be a shell function in order to 'eat' the argument + # that is supplied when $file_magic_command is called. + func_win32_libid () + { + win32_libid_type="unknown" + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \ + $EGREP -e 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then + win32_nmres=`eval $NM -f posix -A $1 | \ + $SED -n -e '1,100{/ I /{s,.*,import,;p;q;};}'` + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $echo $win32_libid_type + } + + + # func_infer_tag arg + # Infer tagged configuration to use if any are available and + # if one wasn't chosen via the "--tag" command line option. + # Only attempt this if the compiler in the base compile + # command doesn't match the default compiler. + # arg is usually of the form 'gcc ...' + func_infer_tag () + { + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + CC_quoted="$CC_quoted $arg" + done + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + CC_quoted="$CC_quoted $arg" + done + case "$@ " in + " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "* | " $CC_quoted"* | "$CC_quoted "* | " `$echo $CC_quoted` "* | "`$echo $CC_quoted` "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + $echo "$modename: unable to infer tagged configuration" + $echo "$modename: specify a tag with \`--tag'" 1>&2 + exit $EXIT_FAILURE + # else + # $echo "$modename: using $tagname tagged configuration" + fi + ;; + esac + fi + } + + + # func_extract_an_archive dir oldlib + func_extract_an_archive () + { + f_ex_an_ar_dir="$1"; shift + f_ex_an_ar_oldlib="$1" + + $show "(cd $f_ex_an_ar_dir && $AR x $f_ex_an_ar_oldlib)" + $run eval "(cd \$f_ex_an_ar_dir && $AR x \$f_ex_an_ar_oldlib)" || exit $? + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + $echo "$modename: ERROR: object name conflicts: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" 1>&2 + exit $EXIT_FAILURE + fi + } + + # func_extract_archives gentop oldlib ... + func_extract_archives () + { + my_gentop="$1"; shift + my_oldlibs=${1+"$@"} + my_oldobjs="" + my_xlib="" + my_xabs="" + my_xdir="" + my_status="" + + $show "${rm}r $my_gentop" + $run ${rm}r "$my_gentop" + $show "$mkdir $my_gentop" + $run $mkdir "$my_gentop" + my_status=$? + if test "$my_status" -ne 0 && test ! -d "$my_gentop"; then + exit $my_status + fi + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'` + my_xdir="$my_gentop/$my_xlib" + + $show "${rm}r $my_xdir" + $run ${rm}r "$my_xdir" + $show "$mkdir $my_xdir" + $run $mkdir "$my_xdir" + exit_status=$? + if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then + exit $exit_status + fi + case $host in + *-darwin*) + $show "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + if test -z "$run"; then + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + darwin_base_archive=`$echo "X$darwin_archive" | $Xsed -e 's%^.*/%%'` + darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $EGREP Architectures 2>/dev/null` + if test -n "$darwin_arches"; then + darwin_arches=`echo "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + $show "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches ; do + mkdir -p "unfat-$$/${darwin_base_archive}-${darwin_arch}" + lipo -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" + cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" + func_extract_an_archive "`pwd`" "${darwin_base_archive}" + cd "$darwin_curdir" + $rm "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" + done # $darwin_arches + ## Okay now we have a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print| xargs basename | sort -u | $NL2SP` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | $NL2SP` + lipo -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + ${rm}r unfat-$$ + cd "$darwin_orig_dir" + else + cd "$darwin_orig_dir" + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + fi # $run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP` + done + func_extract_archives_result="$my_oldobjs" + } + # End of Shell function definitions + ##################################### + + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" + + disable_libs=no + # Parse our command line options once, thoroughly. ! while test "$#" -gt 0 do arg="$1" shift *************** *** 131,136 **** --- 409,442 ---- execute_dlfiles) execute_dlfiles="$execute_dlfiles $arg" ;; + tag) + tagname="$arg" + preserve_args="${preserve_args}=$arg" + + # Check whether tagname contains only valid characters + case $tagname in + *[!-_A-Za-z0-9,/]*) + $echo "$progname: invalid tag name: $tagname" 1>&2 + exit $EXIT_FAILURE + ;; + esac + + case $tagname in + CC) + # Don't test for the "default" C tag, as we know, it's there, but + # not specially marked. + ;; + *) + if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$progpath" > /dev/null; then + taglist="$taglist $tagname" + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $progpath`" + else + $echo "$progname: ignoring unknown tag $tagname" 1>&2 + fi + ;; + esac + ;; *) eval "$prev=\$arg" ;; *************** *** 148,165 **** ;; --version) ! echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" ! exit 0 ;; --config) ! ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0 ! exit 0 ;; --debug) ! echo "$progname: enabling shell trace mode" set -x ;; --dry-run | -n) --- 454,480 ---- ;; --version) ! $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP" ! $echo ! $echo "Copyright (C) 2005 Free Software Foundation, Inc." ! $echo "This is free software; see the source for copying conditions. There is NO" ! $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." ! exit $? ;; --config) ! ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $progpath ! # Now print the configurations for the tags. ! for tagname in $taglist; do ! ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$progpath" ! done ! exit $? ;; --debug) ! $echo "$progname: enabling shell trace mode" set -x + preserve_args="$preserve_args $arg" ;; --dry-run | -n) *************** *** 167,184 **** ;; --features) ! echo "host: $host" if test "$build_libtool_libs" = yes; then ! echo "enable shared libraries" else ! echo "disable shared libraries" fi if test "$build_old_libs" = yes; then ! echo "enable static libraries" else ! echo "disable static libraries" fi ! exit 0 ;; --finish) mode="finish" ;; --- 482,499 ---- ;; --features) ! $echo "host: $host" if test "$build_libtool_libs" = yes; then ! $echo "enable shared libraries" else ! $echo "disable shared libraries" fi if test "$build_old_libs" = yes; then ! $echo "enable static libraries" else ! $echo "disable static libraries" fi ! exit $? ;; --finish) mode="finish" ;; *************** *** 190,195 **** --- 505,523 ---- --quiet | --silent) show=: + preserve_args="$preserve_args $arg" + ;; + + --tag) + prevopt="--tag" + prev=tag + preserve_args="$preserve_args --tag" + ;; + --tag=*) + set tag "$optarg" ${1+"$@"} + shift + prev=tag + preserve_args="$preserve_args --tag" ;; -dlopen) *************** *** 200,206 **** -*) $echo "$modename: unrecognized option \`$arg'" 1>&2 $echo "$help" 1>&2 ! exit 1 ;; *) --- 528,534 ---- -*) $echo "$modename: unrecognized option \`$arg'" 1>&2 $echo "$help" 1>&2 ! exit $EXIT_FAILURE ;; *) *************** *** 213,221 **** if test -n "$prevopt"; then $echo "$modename: option \`$prevopt' requires an argument" 1>&2 $echo "$help" 1>&2 ! exit 1 fi # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. --- 541,561 ---- if test -n "$prevopt"; then $echo "$modename: option \`$prevopt' requires an argument" 1>&2 $echo "$help" 1>&2 ! exit $EXIT_FAILURE fi + case $disable_libs in + no) + ;; + shared) + build_libtool_libs=no + build_old_libs=yes + ;; + static) + build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` + ;; + esac + # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. *************** *** 225,232 **** # Infer the operation mode. if test -z "$mode"; then case $nonopt in ! *cc | *++ | gcc* | *-gcc* | xlc*) mode=link for arg do --- 565,574 ---- # Infer the operation mode. if test -z "$mode"; then + $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2 + $echo "*** Future versions of Libtool will require --mode=MODE be specified." 1>&2 case $nonopt in ! *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*) mode=link for arg do *************** *** 267,273 **** if test -n "$execute_dlfiles" && test "$mode" != execute; then $echo "$modename: unrecognized option \`-dlopen'" 1>&2 $echo "$help" 1>&2 ! exit 1 fi # Change the help message to a mode-specific one. --- 609,615 ---- if test -n "$execute_dlfiles" && test "$mode" != execute; then $echo "$modename: unrecognized option \`-dlopen'" 1>&2 $echo "$help" 1>&2 ! exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. *************** *** 281,438 **** modename="$modename: compile" # Get the compilation command and the source file. base_compile= ! prev= ! lastarg= ! srcfile="$nonopt" suppress_output= - user_target=no for arg do ! case $prev in ! "") ;; ! xcompiler) ! # Aesthetically quote the previous argument. ! prev= ! lastarg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` ! ! case $arg in ! # Double-quote args containing other shell metacharacters. ! # Many Bourne shells cannot handle close brackets correctly ! # in scan sets, so we specify it separately. ! *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ! arg="\"$arg\"" ! ;; ! esac ! ! # Add the previous argument to base_compile. ! if test -z "$base_compile"; then ! base_compile="$lastarg" ! else ! base_compile="$base_compile $lastarg" ! fi ! continue ! ;; ! esac ! ! # Accept any command-line options. ! case $arg in ! -o) ! if test "$user_target" != "no"; then ! $echo "$modename: you cannot specify \`-o' more than once" 1>&2 ! exit 1 ! fi ! user_target=next ;; ! -static) ! build_old_libs=yes continue ;; ! -prefer-pic) ! pic_mode=yes ! continue ! ;; ! -prefer-non-pic) ! pic_mode=no ! continue ! ;; ! -Xcompiler) ! prev=xcompiler ! continue ! ;; ! -Wc,*) ! args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` ! lastarg= ! save_ifs="$IFS"; IFS=',' ! for arg in $args; do ! IFS="$save_ifs" ! # Double-quote args containing other shell metacharacters. ! # Many Bourne shells cannot handle close brackets correctly ! # in scan sets, so we specify it separately. ! case $arg in ! *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ! arg="\"$arg\"" ! ;; ! esac ! lastarg="$lastarg $arg" ! done ! IFS="$save_ifs" ! lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` ! # Add the arguments to base_compile. ! if test -z "$base_compile"; then ! base_compile="$lastarg" ! else base_compile="$base_compile $lastarg" ! fi ! continue ! ;; ! esac ! case $user_target in ! next) ! # The next one is the -o target name ! user_target=yes ! continue ! ;; ! yes) ! # We got the output file ! user_target=set ! libobj="$arg" ! continue ;; ! esac ! ! # Accept the current argument as the source file. ! lastarg="$srcfile" ! srcfile="$arg" # Aesthetically quote the previous argument. - - # Backslashify any backslashes, double quotes, and dollar signs. - # These are the only characters that are still specially - # interpreted inside of double-quoted scrings. lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly ! # in scan sets, so we specify it separately. ! case $lastarg in *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") lastarg="\"$lastarg\"" ;; esac ! # Add the previous argument to base_compile. ! if test -z "$base_compile"; then ! base_compile="$lastarg" ! else ! base_compile="$base_compile $lastarg" ! fi ! done ! case $user_target in ! set) ;; ! no) ! # Get the name of the library object. ! libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` ;; *) ! $echo "$modename: you must specify a target with \`-o'" 1>&2 ! exit 1 ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo ! xform='[cCFSfmso]' case $libobj in *.ada) xform=ada ;; *.adb) xform=adb ;; --- 623,749 ---- modename="$modename: compile" # Get the compilation command and the source file. base_compile= ! srcfile="$nonopt" # always keep a non-empty value in "srcfile" ! suppress_opt=yes suppress_output= + arg_mode=normal + libobj= + later= for arg do ! case $arg_mode in ! arg ) ! # do not "continue". Instead, add this to base_compile ! lastarg="$arg" ! arg_mode=normal ;; ! target ) ! libobj="$arg" ! arg_mode=normal continue ;; ! normal ) ! # Accept any command-line options. ! case $arg in ! -o) ! if test -n "$libobj" ; then ! $echo "$modename: you cannot specify \`-o' more than once" 1>&2 ! exit $EXIT_FAILURE ! fi ! arg_mode=target ! continue ! ;; ! -static | -prefer-pic | -prefer-non-pic) ! later="$later $arg" ! continue ! ;; ! -no-suppress) ! suppress_opt=no ! continue ! ;; ! -Xcompiler) ! arg_mode=arg # the next one goes into the "base_compile" arg list ! continue # The current "srcfile" will either be retained or ! ;; # replaced later. I would guess that would be a bug. ! ! -Wc,*) ! args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"` ! lastarg= ! save_ifs="$IFS"; IFS=',' ! for arg in $args; do ! IFS="$save_ifs" ! # Double-quote args containing other shell metacharacters. ! # Many Bourne shells cannot handle close brackets correctly ! # in scan sets, so we specify it separately. ! case $arg in ! *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") ! arg="\"$arg\"" ! ;; ! esac ! lastarg="$lastarg $arg" ! done ! IFS="$save_ifs" ! lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"` ! # Add the arguments to base_compile. base_compile="$base_compile $lastarg" ! continue ! ;; ! * ) ! # Accept the current argument as the source file. ! # The previous "srcfile" becomes the current argument. ! # ! lastarg="$srcfile" ! srcfile="$arg" ! ;; ! esac # case $arg ;; ! esac # case $arg_mode # Aesthetically quote the previous argument. lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"` + case $lastarg in # Double-quote args containing other shell metacharacters. # Many Bourne shells cannot handle close brackets correctly ! # in scan sets, and some SunOS ksh mistreat backslash-escaping ! # in scan sets (worked around with variable expansion), ! # and furthermore cannot handle '|' '&' '(' ')' in scan sets ! # at all, so we specify them separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") lastarg="\"$lastarg\"" ;; esac ! base_compile="$base_compile $lastarg" ! done # for arg ! case $arg_mode in ! arg) ! $echo "$modename: you must specify an argument for -Xcompile" ! exit $EXIT_FAILURE ;; ! target) ! $echo "$modename: you must specify a target with \`-o'" 1>&2 ! exit $EXIT_FAILURE ;; *) ! # Get the name of the library object. ! [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'` ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo ! xform='[cCFSifmso]' case $libobj in *.ada) xform=ada ;; *.adb) xform=adb ;; *************** *** 440,449 **** --- 751,763 ---- *.asm) xform=asm ;; *.c++) xform=c++ ;; *.cc) xform=cc ;; + *.ii) xform=ii ;; + *.class) xform=class ;; *.cpp) xform=cpp ;; *.cxx) xform=cxx ;; *.f90) xform=f90 ;; *.for) xform=for ;; + *.java) xform=java ;; esac libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` *************** *** 452,476 **** *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; *) $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 ! exit 1 ;; esac if test -z "$base_compile"; then $echo "$modename: you must specify a compilation command" 1>&2 $echo "$help" 1>&2 ! exit 1 fi # Delete any leftover library objects. if test "$build_old_libs" = yes; then ! removelist="$obj $libobj" else ! removelist="$libobj" fi $run $rm $removelist ! trap "$run $rm $removelist; exit 1" 1 2 15 # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in --- 766,828 ---- *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; *) $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 ! exit $EXIT_FAILURE ;; esac + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -static) + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + esac + done + + qlibobj=`$echo "X$libobj" | $Xsed -e "$sed_quote_subst"` + case $qlibobj in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + qlibobj="\"$qlibobj\"" ;; + esac + test "X$libobj" != "X$qlibobj" \ + && $echo "X$libobj" | grep '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && $echo "$modename: libobj name \`$libobj' may not contain shell special characters." + objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` + xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$obj"; then + xdir= + else + xdir=$xdir/ + fi + lobj=${xdir}$objdir/$objname + if test -z "$base_compile"; then $echo "$modename: you must specify a compilation command" 1>&2 $echo "$help" 1>&2 ! exit $EXIT_FAILURE fi # Delete any leftover library objects. if test "$build_old_libs" = yes; then ! removelist="$obj $lobj $libobj ${libobj}T" else ! removelist="$lobj $libobj ${libobj}T" fi $run $rm $removelist ! trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in *************** *** 489,496 **** output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" removelist="$removelist $output_obj $lockfile" ! trap "$run $rm $removelist; exit 1" 1 2 15 else need_locks=no lockfile= fi --- 841,849 ---- output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext} lockfile="$output_obj.lock" removelist="$removelist $output_obj $lockfile" ! trap "$run $rm $removelist; exit $EXIT_FAILURE" 1 2 15 else + output_obj= need_locks=no lockfile= fi *************** *** 498,510 **** # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then ! until $run ln "$0" "$lockfile" 2>/dev/null; do $show "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then ! echo "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` --- 851,863 ---- # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test "$need_locks" = yes; then ! until $run ln "$progpath" "$lockfile" 2>/dev/null; do $show "Waiting for $lockfile to be removed" sleep 2 done elif test "$need_locks" = warn; then if test -f "$lockfile"; then ! $echo "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` *************** *** 516,529 **** compiler." $run $rm $removelist ! exit 1 fi ! echo $srcfile > "$lockfile" fi if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi # Only build a PIC object if we are building libtool libraries. if test "$build_libtool_libs" = yes; then --- 869,901 ---- compiler." $run $rm $removelist ! exit $EXIT_FAILURE fi ! $echo "$srcfile" > "$lockfile" fi if test -n "$fix_srcfile_path"; then eval srcfile=\"$fix_srcfile_path\" fi + qsrcfile=`$echo "X$srcfile" | $Xsed -e "$sed_quote_subst"` + case $qsrcfile in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + qsrcfile="\"$qsrcfile\"" ;; + esac + + $run $rm "$libobj" "${libobj}T" + + # Create a libtool object file (analogous to a ".la" file), + # but don't create it if we're doing a dry run. + test -z "$run" && cat > ${libobj}T </dev/null`" != x"$srcfile"; then ! echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` --- 903,940 ---- fbsd_hideous_sh_bug=$base_compile if test "$pic_mode" != no; then ! command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code ! command="$base_compile $qsrcfile" fi ! if test ! -d "${xdir}$objdir"; then ! $show "$mkdir ${xdir}$objdir" ! $run $mkdir ${xdir}$objdir ! exit_status=$? ! if test "$exit_status" -ne 0 && test ! -d "${xdir}$objdir"; then ! exit $exit_status fi fi ! ! if test -z "$output_obj"; then ! # Place PIC objects in $objdir ! command="$command -o $lobj" fi ! $run $rm "$lobj" "$output_obj" ! $show "$command" if $run eval "$command"; then : else test -n "$output_obj" && $run $rm $removelist ! exit $EXIT_FAILURE fi if test "$need_locks" = warn && ! test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then ! $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` *************** *** 592,604 **** compiler." $run $rm $removelist ! exit 1 fi # Just move the object if needed, then go on to compile the next one ! if test x"$output_obj" != x"$libobj"; then ! $show "$mv $output_obj $libobj" ! if $run $mv $output_obj $libobj; then : else error=$? $run $rm $removelist --- 949,961 ---- compiler." $run $rm $removelist ! exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one ! if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then ! $show "$mv $output_obj $lobj" ! if $run $mv $output_obj $lobj; then : else error=$? $run $rm $removelist *************** *** 606,682 **** fi fi ! # If we have no pic_flag, then copy the object into place and finish. ! if (test -z "$pic_flag" || test "$pic_mode" != default) && ! test "$build_old_libs" = yes; then ! # Rename the .lo from within objdir to obj ! if test -f $obj; then ! $show $rm $obj ! $run $rm $obj ! fi ! $show "$mv $libobj $obj" ! if $run $mv $libobj $obj; then : ! else ! error=$? ! $run $rm $removelist ! exit $error ! fi ! xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` ! if test "X$xdir" = "X$obj"; then ! xdir="." ! else ! xdir="$xdir" ! fi ! baseobj=`$echo "X$obj" | $Xsed -e "s%.*/%%"` ! libobj=`$echo "X$baseobj" | $Xsed -e "$o2lo"` ! # Now arrange that obj and lo_libobj become the same file ! $show "(cd $xdir && $LN_S $baseobj $libobj)" ! if $run eval '(cd $xdir && $LN_S $baseobj $libobj)'; then ! # Unlock the critical section if it was locked ! if test "$need_locks" != no; then ! $run $rm "$lockfile" ! fi ! exit 0 ! else ! error=$? ! $run $rm $removelist ! exit $error ! fi fi ! # Allow error messages only from the first compilation. ! suppress_output=' >/dev/null 2>&1' fi # Only build a position-dependent object if we build old libraries. if test "$build_old_libs" = yes; then if test "$pic_mode" != yes; then # Don't build PIC code ! command="$base_compile $srcfile" else ! # All platforms use -DPIC, to notify preprocessed assembler code. ! command="$base_compile $srcfile $pic_flag -DPIC" fi if test "$compiler_c_o" = yes; then command="$command -o $obj" - output_obj="$obj" fi # Suppress compiler output if we already did a PIC compilation. command="$command$suppress_output" ! $run $rm "$output_obj" $show "$command" if $run eval "$command"; then : else $run $rm $removelist ! exit 1 fi if test "$need_locks" = warn && ! test x"`cat $lockfile 2>/dev/null`" != x"$srcfile"; then ! echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` --- 963,1012 ---- fi fi ! # Append the name of the PIC object to the libtool object file. ! test -z "$run" && cat >> ${libobj}T <> ${libobj}T </dev/null`" != "X$srcfile"; then ! $echo "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` *************** *** 691,701 **** compiler." $run $rm $removelist ! exit 1 fi # Just move the object if needed ! if test x"$output_obj" != x"$obj"; then $show "$mv $output_obj $obj" if $run $mv $output_obj $obj; then : else --- 1021,1031 ---- compiler." $run $rm $removelist ! exit $EXIT_FAILURE fi # Just move the object if needed ! if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then $show "$mv $output_obj $obj" if $run $mv $output_obj $obj; then : else *************** *** 705,733 **** fi fi ! # Create an invalid libtool object if no PIC, so that we do not ! # accidentally link it into a program. ! if test "$build_libtool_libs" != yes; then ! $show "echo timestamp > $libobj" ! $run eval "echo timestamp > \$libobj" || exit $? ! else ! # Move the .lo from within objdir ! $show "$mv $libobj $lo_libobj" ! if $run $mv $libobj $lo_libobj; then : ! else ! error=$? ! $run $rm $removelist ! exit $error ! fi ! fi fi # Unlock the critical section if it was locked if test "$need_locks" != no; then $run $rm "$lockfile" fi ! exit 0 ;; # libtool link mode --- 1035,1065 ---- fi fi ! # Append the name of the non-PIC object the libtool object file. ! # Only append if the libtool object file exists. ! test -z "$run" && cat >> ${libobj}T <> ${libobj}T <&2 ! exit 1 ;; esac if test "$prev" = rpath; then --- 1239,1378 ---- prev= continue ;; + inst_prefix) + inst_prefix_dir="$arg" + prev= + continue + ;; + precious_regex) + precious_files_regex="$arg" + prev= + continue + ;; release) release="-$arg" prev= continue ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat $save_arg` + do + # moreargs="$moreargs $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + pic_object= + non_pic_object= + + # Read the .lo file + # If there is no directory component, then add one. + case $arg in + */* | *\\*) . $arg ;; + *) . ./$arg ;; + esac + + if test -z "$pic_object" || \ + test -z "$non_pic_object" || + test "$pic_object" = none && \ + test "$non_pic_object" = none; then + $echo "$modename: cannot find name of object for \`$arg'" 1>&2 + exit $EXIT_FAILURE + fi + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + dlfiles="$dlfiles $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + dlprefiles="$dlprefiles $pic_object" + prev= + fi + + # A PIC object. + libobjs="$libobjs $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + non_pic_objects="$non_pic_objects $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if test -z "$run"; then + $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 + exit $EXIT_FAILURE + else + # Dry-run case. + + # Extract subdirectory from the argument. + xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` + if test "X$xdir" = "X$arg"; then + xdir= + else + xdir="$xdir/" + fi + + pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` + non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` + libobjs="$libobjs $pic_object" + non_pic_objects="$non_pic_objects $non_pic_object" + fi + fi + done + else + $echo "$modename: link input file \`$save_arg' does not exist" + exit $EXIT_FAILURE + fi + arg=$save_arg + prev= + continue + ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 ! exit $EXIT_FAILURE ;; esac if test "$prev" = rpath; then *************** *** 941,953 **** finalize_command="$finalize_command $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac ! fi # test -n $prev prevarg="$arg" --- 1404,1436 ---- finalize_command="$finalize_command $wl$qarg" continue ;; + xcclinker) + linker_flags="$linker_flags $qarg" + compiler_flags="$compiler_flags $qarg" + prev= + compile_command="$compile_command $qarg" + finalize_command="$finalize_command $qarg" + continue + ;; + shrext) + shrext_cmds="$arg" + prev= + continue + ;; + darwin_framework|darwin_framework_skip) + test "$prev" = "darwin_framework" && compiler_flags="$compiler_flags $arg" + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + prev= + continue + ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac ! fi # test -n "$prev" prevarg="$arg" *************** *** 989,995 **** -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: more than one -exported-symbols argument is not allowed" ! exit 1 fi if test "X$arg" = "X-export-symbols"; then prev=expsyms --- 1472,1478 ---- -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then $echo "$modename: more than one -exported-symbols argument is not allowed" ! exit $EXIT_FAILURE fi if test "X$arg" = "X-export-symbols"; then prev=expsyms *************** *** 999,1009 **** continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in ! no/*-*-irix* | no/*-*-nonstopux*) compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" ;; --- 1482,1509 ---- continue ;; + -framework|-arch|-isysroot) + case " $CC " in + *" ${arg} ${1} "* | *" ${arg} ${1} "*) + prev=darwin_framework_skip ;; + *) compiler_flags="$compiler_flags $arg" + prev=darwin_framework ;; + esac + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in ! no/*-*-irix* | /*-*-irix*) compile_command="$compile_command $arg" finalize_command="$finalize_command $arg" ;; *************** *** 1020,1026 **** absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 ! exit 1 fi dir="$absdir" ;; --- 1520,1527 ---- absdir=`cd "$dir" && pwd` if test -z "$absdir"; then $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2 ! absdir="$dir" ! notinst_path="$notinst_path $dir" fi dir="$absdir" ;; *************** *** 1034,1043 **** --- 1535,1549 ---- esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + testbindir=`$echo "X$dir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; *) dllsearchpath="$dllsearchpath:$dir";; esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + *) dllsearchpath="$dllsearchpath:$testbindir";; + esac ;; esac continue *************** *** 1046,1081 **** -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in ! *-*-cygwin* | *-*-pw32* | *-*-beos*) # These systems don't actually have a C or math library (as such) continue ;; ! *-*-mingw* | *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; ! *-*-openbsd* | *-*-freebsd*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; ! esac ! elif test "X$arg" = "X-lc_r"; then ! case $host in ! *-*-openbsd* | *-*-freebsd*) ! # Do not include libc_r directly, use -pthread flag. continue ;; esac fi deplibs="$deplibs $arg" continue ;; -module) module=yes continue ;; -no-fast-install) fast_install=no continue --- 1552,1649 ---- -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in ! *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) # These systems don't actually have a C or math library (as such) continue ;; ! *-*-os2*) # These systems don't actually have a C library (as such) test "X$arg" = "X-lc" && continue ;; ! *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. test "X$arg" = "X-lc" && continue ;; ! *-*-rhapsody* | *-*-darwin1.[012]) ! # Rhapsody C and math libraries are in the System framework ! deplibs="$deplibs -framework System" continue ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test "X$arg" = "X-lc" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test "X$arg" = "X-lc" && continue + ;; esac + elif test "X$arg" = "X-lc_r"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac fi deplibs="$deplibs $arg" continue ;; + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + -model) + compile_command="$compile_command $arg" + compiler_flags="$compiler_flags $arg" + finalize_command="$finalize_command $arg" + prev=xcompiler + continue + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) + compiler_flags="$compiler_flags $arg" + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + continue + ;; + -module) module=yes continue ;; + # -64, -mips[0-9] enable 64-bit mode on the SGI compiler + # -r[0-9][0-9]* specifies the processor on the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode on the Sun compiler + # +DA*, +DD* enable 64-bit mode on the HP compiler + # -q* pass through compiler args for the IBM compiler + # -m* pass through architecture-specific compiler args for GCC + # -m*, -t[45]*, -txscale* pass through architecture-specific + # compiler args for GCC + # -pg pass through profiling flag for GCC + # @file GCC response files + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*|-pg| \ + -t[45]*|-txscale*|@*) + + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` + case $arg in + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + arg="\"$arg\"" + ;; + esac + compile_command="$compile_command $arg" + finalize_command="$finalize_command $arg" + compiler_flags="$compiler_flags $arg" + continue + ;; + + -shrext) + prev=shrext + continue + ;; + -no-fast-install) fast_install=no continue *************** *** 1100,1107 **** --- 1668,1685 ---- continue ;; + -objectlist) + prev=objectlist + continue + ;; + -o) prev=output ;; + -precious-files-regex) + prev=precious_regex + continue + ;; + -release) prev=release continue *************** *** 1124,1130 **** [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 ! exit 1 ;; esac case "$xrpath " in --- 1702,1708 ---- [\\/]* | [A-Za-z]:[\\/]*) ;; *) $echo "$modename: only absolute run-paths are allowed" 1>&2 ! exit $EXIT_FAILURE ;; esac case "$xrpath " in *************** *** 1152,1157 **** --- 1730,1740 ---- prev=vinfo continue ;; + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; -Wc,*) args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'` *************** *** 1200,1205 **** --- 1783,1793 ---- continue ;; + -XCClinker) + prev=xcclinker + continue + ;; + # Some other compiler flag. -* | +*) # Unknown arguments in both finalize_command and compile_command need *************** *** 1212,1240 **** esac ;; ! *.lo | *.$objext) ! # A library or standard object. ! if test "$prev" = dlfiles; then ! # This file was specified with -dlopen. ! if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then ! dlfiles="$dlfiles $arg" ! prev= ! continue ! else ! # If libtool objects are unsupported, then we need to preload. ! prev=dlprefiles fi - fi ! if test "$prev" = dlprefiles; then ! # Preload the old-style object. ! dlprefiles="$dlprefiles "`$echo "X$arg" | $Xsed -e "$lo2o"` ! prev= else ! case $arg in ! *.lo) libobjs="$libobjs $arg" ;; ! *) objs="$objs $arg" ;; ! esac fi ;; --- 1800,1905 ---- esac ;; ! *.$objext) ! # A standard object. ! objs="$objs $arg" ! ;; ! ! *.lo) ! # A libtool-controlled object. ! ! # Check to see that this really is a libtool object. ! if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then ! pic_object= ! non_pic_object= ! ! # Read the .lo file ! # If there is no directory component, then add one. ! case $arg in ! */* | *\\*) . $arg ;; ! *) . ./$arg ;; ! esac ! ! if test -z "$pic_object" || \ ! test -z "$non_pic_object" || ! test "$pic_object" = none && \ ! test "$non_pic_object" = none; then ! $echo "$modename: cannot find name of object for \`$arg'" 1>&2 ! exit $EXIT_FAILURE ! fi ! ! # Extract subdirectory from the argument. ! xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` ! if test "X$xdir" = "X$arg"; then ! xdir= ! else ! xdir="$xdir/" ! fi ! ! if test "$pic_object" != none; then ! # Prepend the subdirectory the object is found in. ! pic_object="$xdir$pic_object" ! ! if test "$prev" = dlfiles; then ! if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then ! dlfiles="$dlfiles $pic_object" ! prev= ! continue ! else ! # If libtool objects are unsupported, then we need to preload. ! prev=dlprefiles ! fi ! fi ! ! # CHECK ME: I think I busted this. -Ossama ! if test "$prev" = dlprefiles; then ! # Preload the old-style object. ! dlprefiles="$dlprefiles $pic_object" ! prev= ! fi ! ! # A PIC object. ! libobjs="$libobjs $pic_object" ! arg="$pic_object" fi ! # Non-PIC object. ! if test "$non_pic_object" != none; then ! # Prepend the subdirectory the object is found in. ! non_pic_object="$xdir$non_pic_object" ! ! # A standard non-PIC object ! non_pic_objects="$non_pic_objects $non_pic_object" ! if test -z "$pic_object" || test "$pic_object" = none ; then ! arg="$non_pic_object" ! fi ! else ! # If the PIC object exists, use it instead. ! # $xdir was prepended to $pic_object above. ! non_pic_object="$pic_object" ! non_pic_objects="$non_pic_objects $non_pic_object" ! fi else ! # Only an error if not doing a dry-run. ! if test -z "$run"; then ! $echo "$modename: \`$arg' is not a valid libtool object" 1>&2 ! exit $EXIT_FAILURE ! else ! # Dry-run case. ! ! # Extract subdirectory from the argument. ! xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'` ! if test "X$xdir" = "X$arg"; then ! xdir= ! else ! xdir="$xdir/" ! fi ! ! pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"` ! non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"` ! libobjs="$libobjs $pic_object" ! non_pic_objects="$non_pic_objects $non_pic_object" ! fi fi ;; *************** *** 1285,1291 **** if test -n "$prev"; then $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 $echo "$help" 1>&2 ! exit 1 fi if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then --- 1950,1956 ---- if test -n "$prev"; then $echo "$modename: the \`$prevarg' option requires an argument" 1>&2 $echo "$help" 1>&2 ! exit $EXIT_FAILURE fi if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then *************** *** 1294,1299 **** --- 1959,1965 ---- finalize_command="$finalize_command $arg" fi + oldlibs= # calculate the name of the file, without its directory outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'` libobjs_save="$libobjs" *************** *** 1314,1325 **** output_objdir="$output_objdir/$objdir" fi # Create the object directory. ! if test ! -d $output_objdir; then $show "$mkdir $output_objdir" $run $mkdir $output_objdir ! status=$? ! if test $status -ne 0 && test ! -d $output_objdir; then ! exit $status fi fi --- 1980,1991 ---- output_objdir="$output_objdir/$objdir" fi # Create the object directory. ! if test ! -d "$output_objdir"; then $show "$mkdir $output_objdir" $run $mkdir $output_objdir ! exit_status=$? ! if test "$exit_status" -ne 0 && test ! -d "$output_objdir"; then ! exit $exit_status fi fi *************** *** 1328,1334 **** "") $echo "$modename: you must specify an output file" 1>&2 $echo "$help" 1>&2 ! exit 1 ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; --- 1994,2000 ---- "") $echo "$modename: you must specify an output file" 1>&2 $echo "$help" 1>&2 ! exit $EXIT_FAILURE ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *************** *** 1336,1342 **** --- 2002,2018 ---- *) linkmode=prog ;; # Anything else should be a program. esac + case $host in + *cygwin* | *mingw* | *pw32*) + # don't eliminate duplications in $postdeps and $predeps + duplicate_compiler_generated_deps=yes + ;; + *) + duplicate_compiler_generated_deps=$duplicate_deps + ;; + esac specialdeplibs= + libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) *************** *** 1348,1359 **** fi libs="$libs $deplib" done deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries - notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv link" --- 2024,2053 ---- fi libs="$libs $deplib" done + + if test "$linkmode" = lib; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;; + esac + pre_post_deps="$pre_post_deps $pre_post_dep" + done + fi + pre_post_deps= + fi + deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries case $linkmode in lib) passes="conv link" *************** *** 1362,1368 **** *.la) ;; *) $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 ! exit 1 ;; esac done --- 2056,2062 ---- *.la) ;; *) $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2 ! exit $EXIT_FAILURE ;; esac done *************** *** 1379,1417 **** ;; esac for pass in $passes; do ! if test $linkmode = prog; then ! # Determine which files to process case $pass in ! dlopen) ! libs="$dlfiles" ! save_deplibs="$deplibs" # Collect dlpreopened libraries ! deplibs= ! ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi for deplib in $libs; do lib= found=no case $deplib in ! -l*) ! if test $linkmode = oldlib && test $linkmode = obj; then ! $echo "$modename: warning: \`-l' is ignored for archives/objects: $deplib" 1>&2 ! continue fi ! if test $pass = conv; then ! deplibs="$deplib $deplibs" continue fi name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do ! # Search the libtool library ! lib="$searchdir/lib${name}.la" ! if test -f "$lib"; then ! found=yes ! break ! fi done if test "$found" != yes; then # deplib doesn't seem to be a libtool library --- 2073,2127 ---- ;; esac for pass in $passes; do ! if test "$linkmode,$pass" = "lib,link" || ! test "$linkmode,$pass" = "prog,scan"; then ! libs="$deplibs" ! deplibs= ! fi ! if test "$linkmode" = prog; then case $pass in ! dlopen) libs="$dlfiles" ;; dlpreopen) libs="$dlprefiles" ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi + if test "$pass" = dlopen; then + # Collect dlpreopened libraries + save_deplibs="$deplibs" + deplibs= + fi for deplib in $libs; do lib= found=no case $deplib in ! -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe) ! if test "$linkmode,$pass" = "prog,link"; then ! compile_deplibs="$deplib $compile_deplibs" ! finalize_deplibs="$deplib $finalize_deplibs" ! else ! compiler_flags="$compiler_flags $deplib" fi ! continue ! ;; ! -l*) ! if test "$linkmode" != lib && test "$linkmode" != prog; then ! $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2 continue fi name=`$echo "X$deplib" | $Xsed -e 's/^-l//'` for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do ! for search_ext in .la $std_shrext .so .a; do ! # Search the libtool library ! lib="$searchdir/lib${name}${search_ext}" ! if test -f "$lib"; then ! if test "$search_ext" = ".la"; then ! found=yes ! else ! found=no ! fi ! break 2 ! fi ! done done if test "$found" != yes; then # deplib doesn't seem to be a libtool library *************** *** 1420,1459 **** finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" ! test $linkmode = lib && newdependency_libs="$deplib $newdependency_libs" fi continue fi ;; # -l -L*) case $linkmode in lib) deplibs="$deplib $deplibs" ! test $pass = conv && continue newdependency_libs="$deplib $newdependency_libs" newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; prog) ! if test $pass = conv; then deplibs="$deplib $deplibs" continue fi ! if test $pass = scan; then deplibs="$deplib $deplibs" - newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi ;; *) ! $echo "$modename: warning: \`-L' is ignored for archives/objects: $deplib" 1>&2 ;; esac # linkmode continue ;; # -L -R*) ! if test $pass = link; then dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` # Make sure the xrpath contains only unique directories. case "$xrpath " in --- 2130,2205 ---- finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" ! test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" fi continue + else # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $deplib "*) + if (${SED} -e '2q' $lib | + grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then + library_names= + old_library= + case $lib in + */* | *\\*) . $lib ;; + *) . ./$lib ;; + esac + for l in $old_library $library_names; do + ll="$l" + done + if test "X$ll" = "X$old_library" ; then # only static version available + found=no + ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` + test "X$ladir" = "X$lib" && ladir="." + lib=$ladir/$old_library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi fi ;; # -l -L*) case $linkmode in lib) deplibs="$deplib $deplibs" ! test "$pass" = conv && continue newdependency_libs="$deplib $newdependency_libs" newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; prog) ! if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi ! if test "$pass" = scan; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi + newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'` ;; *) ! $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2 ;; esac # linkmode continue ;; # -L -R*) ! if test "$pass" = link; then dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'` # Make sure the xrpath contains only unique directories. case "$xrpath " in *************** *** 1466,1495 **** ;; *.la) lib="$deplib" ;; *.$libext) ! if test $pass = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) ! if test "$deplibs_check_method" != pass_all; then ! echo ! echo "*** Warning: Trying to link with static lib archive $deplib." ! echo "*** I have the capability to make that library automatically link in when" ! echo "*** you link to this library. But I can only do this if you have a" ! echo "*** shared version of the library, which you do not appear to have" ! echo "*** because the file extensions .$libext of this argument makes me believe" ! echo "*** that it is just a static archive that I should not used here." else ! echo ! echo "*** Warning: Linking the shared library $output against the" ! echo "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi continue ;; prog) ! if test $pass != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" --- 2212,2256 ---- ;; *.la) lib="$deplib" ;; *.$libext) ! if test "$pass" = conv; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) ! valid_a_lib=no ! case $deplibs_check_method in ! match_pattern*) ! set dummy $deplibs_check_method ! match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` ! if eval $echo \"$deplib\" 2>/dev/null \ ! | $SED 10q \ ! | $EGREP "$match_pattern_regex" > /dev/null; then ! valid_a_lib=yes ! fi ! ;; ! pass_all) ! valid_a_lib=yes ! ;; ! esac ! if test "$valid_a_lib" != yes; then ! $echo ! $echo "*** Warning: Trying to link with static lib archive $deplib." ! $echo "*** I have the capability to make that library automatically link in when" ! $echo "*** you link to this library. But I can only do this if you have a" ! $echo "*** shared version of the library, which you do not appear to have" ! $echo "*** because the file extensions .$libext of this argument makes me believe" ! $echo "*** that it is just a static archive that I should not used here." else ! $echo ! $echo "*** Warning: Linking the shared library $output against the" ! $echo "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" fi continue ;; prog) ! if test "$pass" != link; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" *************** *** 1500,1513 **** esac # linkmode ;; # *.$libext *.lo | *.$objext) ! if test $pass = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then ! # If there is no dlopen support or we're linking statically, ! # we need to preload. ! newdlprefiles="$newdlprefiles $deplib" ! compile_deplibs="$deplib $compile_deplibs" ! finalize_deplibs="$deplib $finalize_deplibs" ! else ! newdlfiles="$newdlfiles $deplib" fi continue ;; --- 2261,2278 ---- esac # linkmode ;; # *.$libext *.lo | *.$objext) ! if test "$pass" = conv; then ! deplibs="$deplib $deplibs" ! elif test "$linkmode" = prog; then ! if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then ! # If there is no dlopen support or we're linking statically, ! # we need to preload. ! newdlprefiles="$newdlprefiles $deplib" ! compile_deplibs="$deplib $compile_deplibs" ! finalize_deplibs="$deplib $finalize_deplibs" ! else ! newdlfiles="$newdlfiles $deplib" ! fi fi continue ;; *************** *** 1516,1532 **** continue ;; esac # case $deplib ! if test $found = yes || test -f "$lib"; then : else ! $echo "$modename: cannot find the library \`$lib'" 1>&2 ! exit 1 fi # Check to see that this really is a libtool archive. ! if (${SED} -e '2q' $lib | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 ! exit 1 fi ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` --- 2281,2297 ---- continue ;; esac # case $deplib ! if test "$found" = yes || test -f "$lib"; then : else ! $echo "$modename: cannot find the library \`$lib' or unhandled argument \`$deplib'" 1>&2 ! exit $EXIT_FAILURE fi # Check to see that this really is a libtool archive. ! if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 ! exit $EXIT_FAILURE fi ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'` *************** *** 1539,1546 **** library_names= old_library= # If the library was installed with an old release of libtool, ! # it will not redefine variable installed. installed=yes # Read the .la file case $lib in --- 2304,2314 ---- library_names= old_library= # If the library was installed with an old release of libtool, ! # it will not redefine variables installed, or shouldnotlink installed=yes + shouldnotlink=no + avoidtemprpath= + # Read the .la file case $lib in *************** *** 1550,1568 **** if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || ! { test $linkmode = oldlib && test $linkmode = obj; }; then ! # Add dl[pre]opened files of deplib test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi ! if test $pass = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 ! exit 1 fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" --- 2318,2335 ---- if test "$linkmode,$pass" = "lib,link" || test "$linkmode,$pass" = "prog,scan" || ! { test "$linkmode" != prog && test "$linkmode" != lib; }; then test -n "$dlopen" && dlfiles="$dlfiles $dlopen" test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen" fi ! if test "$pass" = conv; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 ! exit $EXIT_FAILURE fi # It is a libtool convenience library, so add in its objects. convenience="$convenience $ladir/$objdir/$old_library" *************** *** 1577,1589 **** fi tmp_libs="$tmp_libs $deplib" done ! elif test $linkmode != prog && test $linkmode != lib; then $echo "$modename: \`$lib' is not a convenience library" 1>&2 ! exit 1 fi continue fi # $pass = conv # Get the name of the library we link against. linklib= for l in $old_library $library_names; do --- 2344,2357 ---- fi tmp_libs="$tmp_libs $deplib" done ! elif test "$linkmode" != prog && test "$linkmode" != lib; then $echo "$modename: \`$lib' is not a convenience library" 1>&2 ! exit $EXIT_FAILURE fi continue fi # $pass = conv + # Get the name of the library we link against. linklib= for l in $old_library $library_names; do *************** *** 1591,1609 **** done if test -z "$linklib"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 ! exit 1 fi # This library was specified with -dlopen. ! if test $pass = dlopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 ! exit 1 fi ! if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking ! # statically, we need to preload. ! dlprefiles="$dlprefiles $lib" else newdlfiles="$newdlfiles $lib" fi --- 2359,2381 ---- done if test -z "$linklib"; then $echo "$modename: cannot find name of link library for \`$lib'" 1>&2 ! exit $EXIT_FAILURE fi # This library was specified with -dlopen. ! if test "$pass" = dlopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2 ! exit $EXIT_FAILURE fi ! if test -z "$dlname" || ! test "$dlopen_support" != yes || ! test "$build_libtool_libs" = no; then # If there is no dlname, no dlopen support or we're linking ! # statically, we need to preload. We also need to preload any ! # dependent libraries so libltdl's deplib preloader doesn't ! # bomb out in the load deplibs phase. ! dlprefiles="$dlprefiles $lib $dependency_libs" else newdlfiles="$newdlfiles $lib" fi *************** *** 1635,1653 **** dir="$libdir" absdir="$libdir" fi else ! dir="$ladir/$objdir" ! absdir="$abs_ladir/$objdir" ! # Remove this search path later ! notinst_path="$notinst_path $abs_ladir" fi # $installed = yes name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` # This library was specified with -dlpreopen. ! if test $pass = dlpreopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 ! exit 1 fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). --- 2407,2433 ---- dir="$libdir" absdir="$libdir" fi + test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes else ! if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then ! dir="$ladir" ! absdir="$abs_ladir" ! # Remove this search path later ! notinst_path="$notinst_path $abs_ladir" ! else ! dir="$ladir/$objdir" ! absdir="$abs_ladir/$objdir" ! # Remove this search path later ! notinst_path="$notinst_path $abs_ladir" ! fi fi # $installed = yes name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` # This library was specified with -dlpreopen. ! if test "$pass" = dlpreopen; then if test -z "$libdir"; then $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2 ! exit $EXIT_FAILURE fi # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). *************** *** 1663,1680 **** if test -z "$libdir"; then # Link the convenience library ! if test $linkmode = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else ! deplibs="$lib $deplibs" fi continue fi ! if test $linkmode = prog && test $pass != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" --- 2443,2461 ---- if test -z "$libdir"; then # Link the convenience library ! if test "$linkmode" = lib; then deplibs="$dir/$old_library $deplibs" elif test "$linkmode,$pass" = "prog,link"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else ! deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi ! ! if test "$linkmode" = prog && test "$pass" != link; then newlib_search_path="$newlib_search_path $ladir" deplibs="$lib $deplibs" *************** *** 1690,1696 **** -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test esac # Need to link against all dependency_libs? ! if test $linkalldeplibs = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths --- 2471,2477 ---- -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test esac # Need to link against all dependency_libs? ! if test "$linkalldeplibs" = yes; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths *************** *** 1707,1719 **** continue fi # $linkmode = prog... ! link_static=no # Whether the deplib will be linked statically ! if test -n "$library_names" && ! { test "$prefer_static_libs" = no || test -z "$old_library"; }; then ! # Link against this shared library - if test "$linkmode,$pass" = "prog,link" || - { test $linkmode = lib && test $hardcode_into_libs = yes; }; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. --- 2488,2506 ---- continue fi # $linkmode = prog... ! if test "$linkmode,$pass" = "prog,link"; then ! if test -n "$library_names" && ! { test "$prefer_static_libs" = no || test -z "$old_library"; }; then ! # We need to hardcode the library path ! if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then ! # Make sure the rpath contains only unique directories. ! case "$temp_rpath " in ! *" $dir "*) ;; ! *" $absdir "*) ;; ! *) temp_rpath="$temp_rpath $absdir" ;; ! esac ! fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. *************** *** 1735,1751 **** esac ;; esac - if test $linkmode = prog; then - # We need to hardcode the library path - if test -n "$shlibpath_var"; then - # Make sure the rpath contains only unique directories. - case "$temp_rpath " in - *" $dir "*) ;; - *" $absdir "*) ;; - *) temp_rpath="$temp_rpath $dir" ;; - esac - fi - fi fi # $linkmode,$pass = prog,link... if test "$alldeplibs" = yes && --- 2522,2527 ---- *************** *** 1755,1765 **** --- 2531,2586 ---- # We only need to search for static libraries continue fi + fi + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test "$use_static_libs" = built && test "$installed" = yes ; then + use_static_libs=no + fi + if test -n "$library_names" && + { test "$use_static_libs" = no || test -z "$old_library"; }; then if test "$installed" = no; then notinst_deplibs="$notinst_deplibs $lib" need_relink=yes fi + # This is a shared library + + # Warn about portability, can't link against -module's on + # some systems (darwin) + if test "$shouldnotlink" = yes && test "$pass" = link ; then + $echo + if test "$linkmode" = prog; then + $echo "*** Warning: Linking the executable $output against the loadable module" + else + $echo "*** Warning: Linking the shared library $output against the loadable module" + fi + $echo "*** $linklib is not portable!" + fi + if test "$linkmode" = lib && + test "$hardcode_into_libs" = yes; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) compile_rpath="$compile_rpath $absdir" + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) finalize_rpath="$finalize_rpath $libdir" + esac + ;; + esac + fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname *************** *** 1773,1779 **** elif test -n "$soname_spec"; then # bleh windows case $host in ! *cygwin*) major=`expr $current - $age` versuffix="-$major" ;; --- 2594,2600 ---- elif test -n "$soname_spec"; then # bleh windows case $host in ! *cygwin* | mingw*) major=`expr $current - $age` versuffix="-$major" ;; *************** *** 1785,1801 **** # Make a new name for the extract_expsyms_cmds to use soroot="$soname" ! soname=`echo $soroot | ${SED} -e 's/^.*\///'` ! newlib="libimp-`echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else $show "extracting exported symbol list from \`$soname'" save_ifs="$IFS"; IFS='~' ! eval cmds=\"$extract_expsyms_cmds\" for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done --- 2606,2623 ---- # Make a new name for the extract_expsyms_cmds to use soroot="$soname" ! soname=`$echo $soroot | ${SED} -e 's/^.*\///'` ! newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a" # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else $show "extracting exported symbol list from \`$soname'" save_ifs="$IFS"; IFS='~' ! cmds=$extract_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done *************** *** 1806,1814 **** if test -f "$output_objdir/$newlib"; then :; else $show "generating import library for \`$soname'" save_ifs="$IFS"; IFS='~' ! eval cmds=\"$old_archive_from_expsyms_cmds\" for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done --- 2628,2637 ---- if test -f "$output_objdir/$newlib"; then :; else $show "generating import library for \`$soname'" save_ifs="$IFS"; IFS='~' ! cmds=$old_archive_from_expsyms_cmds for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done *************** *** 1817,1825 **** # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib ! fi # test -n $old_archive_from_expsyms_cmds ! if test $linkmode = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= --- 2640,2648 ---- # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib ! fi # test -n "$old_archive_from_expsyms_cmds" ! if test "$linkmode" = prog || test "$mode" != relink; then add_shlibpath= add_dir= add= *************** *** 1828,1833 **** --- 2651,2676 ---- immediate | unsupported) if test "$hardcode_direct" = no; then add="$dir/$linklib" + case $host in + *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; + *-*-sysv4*uw2*) add_dir="-L$dir" ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir="-L$dir" ;; + *-*-darwin* ) + # if the lib is a module then we can not link against + # it, someone is ignoring the new warnings I added + if /usr/bin/file -L $add 2> /dev/null | + $EGREP ": [^:]* bundle" >/dev/null ; then + $echo "** Warning, lib $linklib is a module, not a shared library" + if test -z "$old_library" ; then + $echo + $echo "** And there doesn't seem to be a static archive available" + $echo "** The link will probably fail, sorry" + else + add="$dir/$old_library" + fi + fi + esac elif test "$hardcode_minus_L" = no; then case $host in *-*-sunos*) add_shlibpath="$dir" ;; *************** *** 1846,1851 **** --- 2689,2702 ---- add="$dir/$linklib" elif test "$hardcode_minus_L" = yes; then add_dir="-L$dir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + add_dir="$add_dir -L$inst_prefix_dir$libdir" + ;; + esac + fi add="-l$name" elif test "$hardcode_shlibpath_var" = yes; then add_shlibpath="$dir" *************** *** 1859,1865 **** if test "$lib_linked" != yes; then $echo "$modename: configuration error: unsupported hardcode properties" ! exit 1 fi if test -n "$add_shlibpath"; then --- 2710,2716 ---- if test "$lib_linked" != yes; then $echo "$modename: configuration error: unsupported hardcode properties" ! exit $EXIT_FAILURE fi if test -n "$add_shlibpath"; then *************** *** 1868,1874 **** *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi ! if test $linkmode = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else --- 2719,2725 ---- *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;; esac fi ! if test "$linkmode" = prog; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else *************** *** 1885,1891 **** fi fi ! if test $linkmode = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= --- 2736,2742 ---- fi fi ! if test "$linkmode" = prog || test "$mode" = relink; then add_shlibpath= add_dir= add= *************** *** 1901,1913 **** *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" add="-l$name" fi ! if test $linkmode = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else --- 2752,2779 ---- *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;; esac add="-l$name" + elif test "$hardcode_automatic" = yes; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib" ; then + add="$inst_prefix_dir$libdir/$linklib" + else + add="$libdir/$linklib" + fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir="-L$libdir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + add_dir="$add_dir -L$inst_prefix_dir$libdir" + ;; + esac + fi add="-l$name" fi ! if test "$linkmode" = prog; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else *************** *** 1915,1930 **** test -n "$add" && deplibs="$add $deplibs" fi fi ! elif test $linkmode = prog; then ! if test "$alldeplibs" = yes && ! { test "$deplibs_check_method" = pass_all || ! { test "$build_libtool_libs" = yes && ! test -n "$library_names"; }; }; then ! # We only need to search for static libraries ! continue ! fi ! ! # Try to link the static library # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. --- 2781,2787 ---- test -n "$add" && deplibs="$add $deplibs" fi fi ! elif test "$linkmode" = prog; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. *************** *** 1944,1964 **** # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. ! echo ! echo "*** Warning: This system can not link to static lib archive $lib." ! echo "*** I have the capability to make that library automatically link in when" ! echo "*** you link to this library. But I can only do this if you have a" ! echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then ! echo "*** But as you try to build a module library, libtool will still create " ! echo "*** a static module, that should work as long as the dlopening application" ! echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then ! echo ! echo "*** However, this would only work if libtool was able to extract symbol" ! echo "*** lists from a program, using \`nm' or equivalent, but libtool could" ! echo "*** not find such a program. So, this module is probably useless." ! echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module --- 2801,2821 ---- # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. ! $echo ! $echo "*** Warning: This system can not link to static lib archive $lib." ! $echo "*** I have the capability to make that library automatically link in when" ! $echo "*** you link to this library. But I can only do this if you have a" ! $echo "*** shared version of the library, which you do not appear to have." if test "$module" = yes; then ! $echo "*** But as you try to build a module library, libtool will still create " ! $echo "*** a static module, that should work as long as the dlopening application" ! $echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then ! $echo ! $echo "*** However, this would only work if libtool was able to extract symbol" ! $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" ! $echo "*** not find such a program. So, this module is probably useless." ! $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then build_libtool_libs=module *************** *** 1968,1984 **** fi fi else - convenience="$convenience $dir/$old_library" - old_convenience="$old_convenience $dir/$old_library" deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? ! if test $linkmode = lib; then if test -n "$dependency_libs" && ! { test $hardcode_into_libs != yes || test $build_old_libs = yes || ! test $link_static = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do --- 2825,2840 ---- fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? ! if test "$linkmode" = lib; then if test -n "$dependency_libs" && ! { test "$hardcode_into_libs" != yes || ! test "$build_old_libs" = yes || ! test "$link_static" = yes; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do *************** *** 2009,2015 **** tmp_libs="$tmp_libs $deplib" done ! if test $link_all_deplibs != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do case $deplib in --- 2865,2871 ---- tmp_libs="$tmp_libs $deplib" done ! if test "$link_all_deplibs" != no; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do case $deplib in *************** *** 2029,2066 **** ;; esac if grep "^installed=no" $deplib > /dev/null; then ! path="-L$absdir/$objdir" else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 ! exit 1 fi if test "$absdir" != "$libdir"; then $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 fi ! path="-L$absdir" fi ;; *) continue ;; esac case " $deplibs " in *" $path "*) ;; ! *) deplibs="$deplibs $path" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs ! if test $pass = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi ! if test $pass != dlopen; then ! test $pass != scan && dependency_libs="$newdependency_libs" ! if test $pass != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do --- 2885,2967 ---- ;; esac if grep "^installed=no" $deplib > /dev/null; then ! path="$absdir/$objdir" else eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 ! exit $EXIT_FAILURE fi if test "$absdir" != "$libdir"; then $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2 fi ! path="$absdir" fi + depdepl= + case $host in + *-*-darwin*) + # we do not want to link against static libs, + # but need to link against shared + eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names" ; then + for tmp in $deplibrary_names ; do + depdepl=$tmp + done + if test -f "$path/$depdepl" ; then + depdepl="$path/$depdepl" + fi + # do not add paths which are already there + case " $newlib_search_path " in + *" $path "*) ;; + *) newlib_search_path="$newlib_search_path $path";; + esac + fi + path="" + ;; + *) + path="-L$path" + ;; + esac + ;; + -l*) + case $host in + *-*-darwin*) + # Again, we only want to link against shared libraries + eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"` + for tmp in $newlib_search_path ; do + if test -f "$tmp/lib$tmp_libs.dylib" ; then + eval depdepl="$tmp/lib$tmp_libs.dylib" + break + fi + done + path="" + ;; + *) continue ;; + esac ;; *) continue ;; esac case " $deplibs " in *" $path "*) ;; ! *) deplibs="$path $deplibs" ;; ! esac ! case " $deplibs " in ! *" $depdepl "*) ;; ! *) deplibs="$depdepl $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs ! dependency_libs="$newdependency_libs" ! if test "$pass" = dlpreopen; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi ! if test "$pass" != dlopen; then ! if test "$pass" != conv; then # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do *************** *** 2082,2090 **** --- 2983,3012 ---- eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; + -R*) ;; *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) *************** *** 2112,2130 **** eval $var=\"$tmp_libs\" done # for var fi ! if test "$pass" = "conv" && ! { test "$linkmode" = "lib" || test "$linkmode" = "prog"; }; then ! libs="$deplibs" # reset libs ! deplibs= ! fi done # for pass ! if test $linkmode = prog; then dlfiles="$newdlfiles" dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 fi --- 3034,3065 ---- eval $var=\"$tmp_libs\" done # for var fi ! # Last step: remove runtime libs from dependency_libs ! # (they stay in deplibs) ! tmp_libs= ! for i in $dependency_libs ; do ! case " $predeps $postdeps $compiler_lib_search_path " in ! *" $i "*) ! i="" ! ;; ! esac ! if test -n "$i" ; then ! tmp_libs="$tmp_libs $i" ! fi ! done ! dependency_libs=$tmp_libs done # for pass ! if test "$linkmode" = prog; then dlfiles="$newdlfiles" dlprefiles="$newdlprefiles" fi case $linkmode in oldlib) + if test -n "$deplibs"; then + $echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 + fi + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then $echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2 fi *************** *** 2138,2144 **** fi if test -n "$vinfo"; then ! $echo "$modename: warning: \`-version-info' is ignored for archives" 1>&2 fi if test -n "$release"; then --- 3073,3079 ---- fi if test -n "$vinfo"; then ! $echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2 fi if test -n "$release"; then *************** *** 2160,2176 **** case $outputname in lib*) name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` eval libname=\"$libname_spec\" ;; *) if test "$module" = no; then $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 $echo "$help" 1>&2 ! exit 1 fi if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` eval libname=\"$libname_spec\" else libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` --- 3095,3113 ---- case $outputname in lib*) name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'` + eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) if test "$module" = no; then $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2 $echo "$help" 1>&2 ! exit $EXIT_FAILURE fi if test "$need_lib_prefix" != no; then # Add the "lib" prefix for modules if required name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` + eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'` *************** *** 2181,2191 **** if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 ! exit 1 else ! echo ! echo "*** Warning: Linking the shared library $output against the non-libtool" ! echo "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi --- 3118,3128 ---- if test -n "$objs"; then if test "$deplibs_check_method" != pass_all; then $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1 ! exit $EXIT_FAILURE else ! $echo ! $echo "*** Warning: Linking the shared library $output against the non-libtool" ! $echo "*** objects $objs is not portable!" libobjs="$libobjs $objs" fi fi *************** *** 2195,2201 **** fi set dummy $rpath ! if test $# -gt 2; then $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 fi install_libdir="$2" --- 3132,3138 ---- fi set dummy $rpath ! if test "$#" -gt 2; then $echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2 fi install_libdir="$2" *************** *** 2204,2217 **** if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. ! libext=al oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi if test -n "$vinfo"; then ! $echo "$modename: warning: \`-version-info' is ignored for convenience libraries" 1>&2 fi if test -n "$release"; then --- 3141,3156 ---- if test -z "$rpath"; then if test "$build_libtool_libs" = yes; then # Building a libtool convenience library. ! # Some compilers have problems with a `.al' extension so ! # convenience libraries should have the same extension an ! # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi if test -n "$vinfo"; then ! $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2 fi if test -n "$release"; then *************** *** 2227,2271 **** if test -n "$8"; then $echo "$modename: too many parameters to \`-version-info'" 1>&2 $echo "$help" 1>&2 ! exit 1 fi ! current="$2" ! revision="$3" ! age="$4" # Check that each of the things are valid numbers. case $current in ! 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; *) ! $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 ! exit 1 ;; esac case $revision in ! 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; *) ! $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 ! exit 1 ;; esac case $age in ! 0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;; *) ! $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 ! exit 1 ;; esac ! if test $age -gt $current; then $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 ! exit 1 fi # Calculate the version variables. --- 3166,3247 ---- if test -n "$8"; then $echo "$modename: too many parameters to \`-version-info'" 1>&2 $echo "$help" 1>&2 ! exit $EXIT_FAILURE fi ! # convert absolute version numbers to libtool ages ! # this retains compatibility with .la files and attempts ! # to make the code below a bit more comprehensible ! ! case $vinfo_number in ! yes) ! number_major="$2" ! number_minor="$3" ! number_revision="$4" ! # ! # There are really only two kinds -- those that ! # use the current revision as the major version ! # and those that subtract age and use age as ! # a minor version. But, then there is irix ! # which has an extra 1 added just for fun ! # ! case $version_type in ! darwin|linux|osf|windows) ! current=`expr $number_major + $number_minor` ! age="$number_minor" ! revision="$number_revision" ! ;; ! freebsd-aout|freebsd-elf|sunos) ! current="$number_major" ! revision="$number_minor" ! age="0" ! ;; ! irix|nonstopux) ! current=`expr $number_major + $number_minor - 1` ! age="$number_minor" ! revision="$number_minor" ! ;; ! esac ! ;; ! no) ! current="$2" ! revision="$3" ! age="$4" ! ;; ! esac # Check that each of the things are valid numbers. case $current in ! 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) ! $echo "$modename: CURRENT \`$current' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 ! exit $EXIT_FAILURE ;; esac case $revision in ! 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) ! $echo "$modename: REVISION \`$revision' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 ! exit $EXIT_FAILURE ;; esac case $age in ! 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) ! $echo "$modename: AGE \`$age' must be a nonnegative integer" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 ! exit $EXIT_FAILURE ;; esac ! if test "$age" -gt "$current"; then $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2 $echo "$modename: \`$vinfo' is not valid version information" 1>&2 ! exit $EXIT_FAILURE fi # Calculate the version variables. *************** *** 2282,2288 **** versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... minor_current=`expr $current + 1` ! verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; freebsd-aout) --- 3258,3264 ---- versuffix="$major.$age.$revision" # Darwin ld doesn't like 0 for these options... minor_current=`expr $current + 1` ! verstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" ;; freebsd-aout) *************** *** 2306,2312 **** # Add in all the interfaces that we are compatible with. loop=$revision ! while test $loop != 0; do iface=`expr $revision - $loop` loop=`expr $loop - 1` verstring="$verstring_prefix$major.$iface:$verstring" --- 3282,3288 ---- # Add in all the interfaces that we are compatible with. loop=$revision ! while test "$loop" -ne 0; do iface=`expr $revision - $loop` loop=`expr $loop - 1` verstring="$verstring_prefix$major.$iface:$verstring" *************** *** 2329,2335 **** # Add in all the interfaces that we are compatible with. loop=$age ! while test $loop != 0; do iface=`expr $current - $loop` loop=`expr $loop - 1` verstring="$verstring:${iface}.0" --- 3305,3311 ---- # Add in all the interfaces that we are compatible with. loop=$age ! while test "$loop" -ne 0; do iface=`expr $current - $loop` loop=`expr $loop - 1` verstring="$verstring:${iface}.0" *************** *** 2353,2372 **** *) $echo "$modename: unknown library version type \`$version_type'" 1>&2 ! echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 ! exit 1 ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= - verstring="0.0" case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely ! verstring="" ;; *) verstring="0.0" --- 3329,3347 ---- *) $echo "$modename: unknown library version type \`$version_type'" 1>&2 ! $echo "Fatal configuration error. See the $PACKAGE docs for more information." 1>&2 ! exit $EXIT_FAILURE ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely ! verstring= ;; *) verstring="0.0" *************** *** 2400,2408 **** fi if test "$mode" != relink; then ! # Remove our outputs. ! $show "${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.*" ! $run ${rm}r $output_objdir/$outputname $output_objdir/$libname.* $output_objdir/${libname}${release}.* fi # Now set the variables for building old libraries. --- 3375,3404 ---- fi if test "$mode" != relink; then ! # Remove our outputs, but don't remove object files since they ! # may have been created when compiling PIC objects. ! removelist= ! tempremovelist=`$echo "$output_objdir/*"` ! for p in $tempremovelist; do ! case $p in ! *.$objext) ! ;; ! $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) ! if test "X$precious_files_regex" != "X"; then ! if echo $p | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 ! then ! continue ! fi ! fi ! removelist="$removelist $p" ! ;; ! *) ;; ! esac ! done ! if test -n "$removelist"; then ! $show "${rm}r $removelist" ! $run ${rm}r $removelist ! fi fi # Now set the variables for building old libraries. *************** *** 2415,2423 **** # Eliminate all temporary directories. for path in $notinst_path; do ! lib_search_path=`echo "$lib_search_path " | ${SED} -e 's% $path % %g'` ! deplibs=`echo "$deplibs " | ${SED} -e 's% -L$path % %g'` ! dependency_libs=`echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'` done if test -n "$xrpath"; then --- 3411,3419 ---- # Eliminate all temporary directories. for path in $notinst_path; do ! lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"` ! deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"` ! dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"` done if test -n "$xrpath"; then *************** *** 2430,2436 **** *) finalize_rpath="$finalize_rpath $libdir" ;; esac done ! if test $hardcode_into_libs != yes || test $build_old_libs = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi --- 3426,3432 ---- *) finalize_rpath="$finalize_rpath $libdir" ;; esac done ! if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then dependency_libs="$temp_xrpath $dependency_libs" fi fi *************** *** 2468,2479 **** *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; ! *-*-openbsd* | *-*-freebsd*) # Do not include libc due to us having libc/libc_r. ;; ! *) # Add libc to deplibs on all other systems if necessary. ! if test $build_libtool_need_lc = "yes"; then deplibs="$deplibs -lc" fi ;; --- 3464,3481 ---- *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; ! *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; ! *-*-sco3.2v5* | *-*-sco5v6*) ! # Causes problems with __ctype ! ;; ! *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) ! # Compiler inserts libc in the correct place for threads to work ! ;; ! *) # Add libc to deplibs on all other systems if necessary. ! if test "$build_libtool_need_lc" = "yes"; then deplibs="$deplibs -lc" fi ;; *************** *** 2500,2506 **** # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just ! # implementing what was already the behaviour. newdeplibs=$deplibs ;; test_compile) --- 3502,3508 ---- # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just ! # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) *************** *** 2513,2580 **** int main() { return 0; } EOF $rm conftest ! $CC -o conftest conftest.c $deplibs ! if test $? -eq 0 ; then ldd_output=`ldd conftest` for i in $deplibs; do ! name="`expr $i : '-l\(.*\)'`" # If $name is empty we are operating on a -L argument. ! if test -n "$name" && test "$name" != "0"; then ! libname=`eval \\$echo \"$libname_spec\"` ! deplib_matches=`eval \\$echo \"$library_names_spec\"` ! set dummy $deplib_matches ! deplib_match=$2 ! if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then ! newdeplibs="$newdeplibs $i" ! else ! droppeddeps=yes ! echo ! echo "*** Warning: dynamic linker does not accept needed library $i." ! echo "*** I have the capability to make that library automatically link in when" ! echo "*** you link to this library. But I can only do this if you have a" ! echo "*** shared version of the library, which I believe you do not have" ! echo "*** because a test_compile did reveal that the linker did not use it for" ! echo "*** its dynamic dependency list that programs get resolved with at runtime." fi else newdeplibs="$newdeplibs $i" fi done else ! # Error occured in the first compile. Let's try to salvage # the situation: Compile a separate program for each library. for i in $deplibs; do ! name="`expr $i : '-l\(.*\)'`" ! # If $name is empty we are operating on a -L argument. ! if test -n "$name" && test "$name" != "0"; then $rm conftest ! $CC -o conftest conftest.c $i # Did it work? ! if test $? -eq 0 ; then ldd_output=`ldd conftest` ! libname=`eval \\$echo \"$libname_spec\"` ! deplib_matches=`eval \\$echo \"$library_names_spec\"` ! set dummy $deplib_matches ! deplib_match=$2 ! if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then ! newdeplibs="$newdeplibs $i" ! else ! droppeddeps=yes ! echo ! echo "*** Warning: dynamic linker does not accept needed library $i." ! echo "*** I have the capability to make that library automatically link in when" ! echo "*** you link to this library. But I can only do this if you have a" ! echo "*** shared version of the library, which you do not appear to have" ! echo "*** because a test_compile did reveal that the linker did not use this one" ! echo "*** as a dynamic dependency that programs can get resolved with at runtime." fi else droppeddeps=yes ! echo ! echo "*** Warning! Library $i is needed by this library but I was not able to" ! echo "*** make it link in! You will probably need to install it or some" ! echo "*** library that it depends on before this library will be fully" ! echo "*** functional. Installing it before continuing would be even better." fi else newdeplibs="$newdeplibs $i" --- 3515,3602 ---- int main() { return 0; } EOF $rm conftest ! $LTCC $LTCFLAGS -o conftest conftest.c $deplibs ! if test "$?" -eq 0 ; then ldd_output=`ldd conftest` for i in $deplibs; do ! name=`expr $i : '-l\(.*\)'` # If $name is empty we are operating on a -L argument. ! if test "$name" != "" && test "$name" -ne "0"; then ! if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then ! case " $predeps $postdeps " in ! *" $i "*) ! newdeplibs="$newdeplibs $i" ! i="" ! ;; ! esac ! fi ! if test -n "$i" ; then ! libname=`eval \\$echo \"$libname_spec\"` ! deplib_matches=`eval \\$echo \"$library_names_spec\"` ! set dummy $deplib_matches ! deplib_match=$2 ! if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then ! newdeplibs="$newdeplibs $i" ! else ! droppeddeps=yes ! $echo ! $echo "*** Warning: dynamic linker does not accept needed library $i." ! $echo "*** I have the capability to make that library automatically link in when" ! $echo "*** you link to this library. But I can only do this if you have a" ! $echo "*** shared version of the library, which I believe you do not have" ! $echo "*** because a test_compile did reveal that the linker did not use it for" ! $echo "*** its dynamic dependency list that programs get resolved with at runtime." ! fi fi else newdeplibs="$newdeplibs $i" fi done else ! # Error occurred in the first compile. Let's try to salvage # the situation: Compile a separate program for each library. for i in $deplibs; do ! name=`expr $i : '-l\(.*\)'` ! # If $name is empty we are operating on a -L argument. ! if test "$name" != "" && test "$name" != "0"; then $rm conftest ! $LTCC $LTCFLAGS -o conftest conftest.c $i # Did it work? ! if test "$?" -eq 0 ; then ldd_output=`ldd conftest` ! if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then ! case " $predeps $postdeps " in ! *" $i "*) ! newdeplibs="$newdeplibs $i" ! i="" ! ;; ! esac ! fi ! if test -n "$i" ; then ! libname=`eval \\$echo \"$libname_spec\"` ! deplib_matches=`eval \\$echo \"$library_names_spec\"` ! set dummy $deplib_matches ! deplib_match=$2 ! if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then ! newdeplibs="$newdeplibs $i" ! else ! droppeddeps=yes ! $echo ! $echo "*** Warning: dynamic linker does not accept needed library $i." ! $echo "*** I have the capability to make that library automatically link in when" ! $echo "*** you link to this library. But I can only do this if you have a" ! $echo "*** shared version of the library, which you do not appear to have" ! $echo "*** because a test_compile did reveal that the linker did not use this one" ! $echo "*** as a dynamic dependency that programs can get resolved with at runtime." ! fi fi else droppeddeps=yes ! $echo ! $echo "*** Warning! Library $i is needed by this library but I was not able to" ! $echo "*** make it link in! You will probably need to install it or some" ! $echo "*** library that it depends on before this library will be fully" ! $echo "*** functional. Installing it before continuing would be even better." fi else newdeplibs="$newdeplibs $i" *************** *** 2586,2598 **** set dummy $deplibs_check_method file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` for a_deplib in $deplibs; do ! name="`expr $a_deplib : '-l\(.*\)'`" # If $name is empty we are operating on a -L argument. ! if test -n "$name" && test "$name" != "0"; then ! libname=`eval \\$echo \"$libname_spec\"` ! for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do ! potential_libs=`ls $i/$libname[.-]* 2>/dev/null` ! for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null \ | grep " -> " >/dev/null; then --- 3608,3629 ---- set dummy $deplibs_check_method file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` for a_deplib in $deplibs; do ! name=`expr $a_deplib : '-l\(.*\)'` # If $name is empty we are operating on a -L argument. ! if test "$name" != "" && test "$name" != "0"; then ! if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then ! case " $predeps $postdeps " in ! *" $a_deplib "*) ! newdeplibs="$newdeplibs $a_deplib" ! a_deplib="" ! ;; ! esac ! fi ! if test -n "$a_deplib" ; then ! libname=`eval \\$echo \"$libname_spec\"` ! for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do ! potential_libs=`ls $i/$libname[.-]* 2>/dev/null` ! for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null \ | grep " -> " >/dev/null; then *************** *** 2613,2638 **** done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ | ${SED} 10q \ ! | egrep "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi ! done ! done if test -n "$a_deplib" ; then droppeddeps=yes ! echo ! echo "*** Warning: linker path does not have real file for library $a_deplib." ! echo "*** I have the capability to make that library automatically link in when" ! echo "*** you link to this library. But I can only do this if you have a" ! echo "*** shared version of the library, which you do not appear to have" ! echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then ! echo "*** with $libname but no candidates were found. (...for file magic test)" else ! echo "*** with $libname and none of the candidates passed a file format test" ! echo "*** using a file magic. Last file checked: $potlib" fi fi else --- 3644,3670 ---- done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \ | ${SED} 10q \ ! | $EGREP "$file_magic_regex" > /dev/null; then newdeplibs="$newdeplibs $a_deplib" a_deplib="" break 2 fi ! done ! done ! fi if test -n "$a_deplib" ; then droppeddeps=yes ! $echo ! $echo "*** Warning: linker path does not have real file for library $a_deplib." ! $echo "*** I have the capability to make that library automatically link in when" ! $echo "*** you link to this library. But I can only do this if you have a" ! $echo "*** shared version of the library, which you do not appear to have" ! $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then ! $echo "*** with $libname but no candidates were found. (...for file magic test)" else ! $echo "*** with $libname and none of the candidates passed a file format test" ! $echo "*** using a file magic. Last file checked: $potlib" fi fi else *************** *** 2645,2680 **** set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` for a_deplib in $deplibs; do ! name="`expr $a_deplib : '-l\(.*\)'`" # If $name is empty we are operating on a -L argument. if test -n "$name" && test "$name" != "0"; then ! libname=`eval \\$echo \"$libname_spec\"` ! for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do ! potential_libs=`ls $i/$libname[.-]* 2>/dev/null` ! for potent_lib in $potential_libs; do ! potlib="$potent_lib" # see symlink-check below in file_magic test ! if eval echo \"$potent_lib\" 2>/dev/null \ ! | ${SED} 10q \ ! | egrep "$match_pattern_regex" > /dev/null; then ! newdeplibs="$newdeplibs $a_deplib" ! a_deplib="" ! break 2 ! fi done ! done if test -n "$a_deplib" ; then droppeddeps=yes ! echo ! echo "*** Warning: linker path does not have real file for library $a_deplib." ! echo "*** I have the capability to make that library automatically link in when" ! echo "*** you link to this library. But I can only do this if you have a" ! echo "*** shared version of the library, which you do not appear to have" ! echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then ! echo "*** with $libname but no candidates were found. (...for regex pattern test)" else ! echo "*** with $libname and none of the candidates passed a file format test" ! echo "*** using a regex pattern. Last file checked: $potlib" fi fi else --- 3677,3722 ---- set dummy $deplibs_check_method match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"` for a_deplib in $deplibs; do ! name=`expr $a_deplib : '-l\(.*\)'` # If $name is empty we are operating on a -L argument. if test -n "$name" && test "$name" != "0"; then ! if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then ! case " $predeps $postdeps " in ! *" $a_deplib "*) ! newdeplibs="$newdeplibs $a_deplib" ! a_deplib="" ! ;; ! esac ! fi ! if test -n "$a_deplib" ; then ! libname=`eval \\$echo \"$libname_spec\"` ! for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do ! potential_libs=`ls $i/$libname[.-]* 2>/dev/null` ! for potent_lib in $potential_libs; do ! potlib="$potent_lib" # see symlink-check above in file_magic test ! if eval $echo \"$potent_lib\" 2>/dev/null \ ! | ${SED} 10q \ ! | $EGREP "$match_pattern_regex" > /dev/null; then ! newdeplibs="$newdeplibs $a_deplib" ! a_deplib="" ! break 2 ! fi ! done done ! fi if test -n "$a_deplib" ; then droppeddeps=yes ! $echo ! $echo "*** Warning: linker path does not have real file for library $a_deplib." ! $echo "*** I have the capability to make that library automatically link in when" ! $echo "*** you link to this library. But I can only do this if you have a" ! $echo "*** shared version of the library, which you do not appear to have" ! $echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib" ; then ! $echo "*** with $libname but no candidates were found. (...for regex pattern test)" else ! $echo "*** with $libname and none of the candidates passed a file format test" ! $echo "*** using a regex pattern. Last file checked: $potlib" fi fi else *************** *** 2685,2700 **** ;; none | unknown | *) newdeplibs="" ! if $echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ ! -e 's/ -[LR][^ ]*//g' -e 's/[ ]//g' | ! grep . >/dev/null; then ! echo if test "X$deplibs_check_method" = "Xnone"; then ! echo "*** Warning: inter-library dependencies are not supported in this platform." else ! echo "*** Warning: inter-library dependencies are not known to be supported." fi ! echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; --- 3727,3749 ---- ;; none | unknown | *) newdeplibs="" ! tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \ ! -e 's/ -[LR][^ ]*//g'` ! if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then ! for i in $predeps $postdeps ; do ! # can't use Xsed below, because $i might contain '/' ! tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"` ! done ! fi ! if $echo "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' \ ! | grep . >/dev/null; then ! $echo if test "X$deplibs_check_method" = "Xnone"; then ! $echo "*** Warning: inter-library dependencies are not supported in this platform." else ! $echo "*** Warning: inter-library dependencies are not known to be supported." fi ! $echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes fi ;; *************** *** 2714,2730 **** if test "$droppeddeps" = yes; then if test "$module" = yes; then ! echo ! echo "*** Warning: libtool could not satisfy all declared inter-library" ! echo "*** dependencies of module $libname. Therefore, libtool will create" ! echo "*** a static module, that should work as long as the dlopening" ! echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then ! echo ! echo "*** However, this would only work if libtool was able to extract symbol" ! echo "*** lists from a program, using \`nm' or equivalent, but libtool could" ! echo "*** not find such a program. So, this module is probably useless." ! echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" --- 3763,3779 ---- if test "$droppeddeps" = yes; then if test "$module" = yes; then ! $echo ! $echo "*** Warning: libtool could not satisfy all declared inter-library" ! $echo "*** dependencies of module $libname. Therefore, libtool will create" ! $echo "*** a static module, that should work as long as the dlopening" ! $echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then ! $echo ! $echo "*** However, this would only work if libtool was able to extract symbol" ! $echo "*** lists from a program, using \`nm' or equivalent, but libtool could" ! $echo "*** not find such a program. So, this module is probably useless." ! $echo "*** \`nm' from GNU binutils and a full rebuild may help." fi if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" *************** *** 2734,2749 **** build_libtool_libs=no fi else ! echo "*** The inter-library dependencies that have been dropped here will be" ! echo "*** automatically added whenever a program is linked with this library" ! echo "*** or is declared to -dlopen it." ! ! if test $allow_undefined = no; then ! echo ! echo "*** Since this library must not contain undefined symbols," ! echo "*** because either the platform does not support them or" ! echo "*** it was explicitly requested with -no-undefined," ! echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module --- 3783,3798 ---- build_libtool_libs=no fi else ! $echo "*** The inter-library dependencies that have been dropped here will be" ! $echo "*** automatically added whenever a program is linked with this library" ! $echo "*** or is declared to -dlopen it." ! ! if test "$allow_undefined" = no; then ! $echo ! $echo "*** Since this library must not contain undefined symbols," ! $echo "*** because either the platform does not support them or" ! $echo "*** it was explicitly requested with -no-undefined," ! $echo "*** libtool will only create a static version of it." if test "$build_old_libs" = no; then oldlibs="$output_objdir/$libname.$libext" build_libtool_libs=module *************** *** 2758,2763 **** --- 3807,3841 ---- deplibs=$newdeplibs fi + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $deplibs " in + *" -L$path/$objdir "*) + new_libs="$new_libs -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$new_libs $deplib" ;; + esac + ;; + *) new_libs="$new_libs $deplib" ;; + esac + done + deplibs="$new_libs" + + # All the library-specific variables (install_libdir is set above). library_names= old_library= *************** *** 2765,2771 **** # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then ! if test $hardcode_into_libs = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= --- 3843,3849 ---- # Test again, we may have decided not to build it any more if test "$build_libtool_libs" = yes; then ! if test "$hardcode_into_libs" = yes; then # Hardcode the library paths hardcode_libdirs= dep_rpath= *************** *** 2801,2807 **** if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" ! eval dep_rpath=\"$hardcode_libdir_flag_spec\" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. --- 3879,3889 ---- if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir="$hardcode_libdirs" ! if test -n "$hardcode_libdir_flag_spec_ld"; then ! eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\" ! else ! eval dep_rpath=\"$hardcode_libdir_flag_spec\" ! fi fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. *************** *** 2821,2826 **** --- 3903,3909 ---- fi # Get the real and link names of the library. + eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names realname="$2" *************** *** 2831,2861 **** else soname="$realname" fi ! test -z "$dlname" && dlname=$soname lib="$output_objdir/$realname" for link do linknames="$linknames $link" done - # Ensure that we have .o objects for linkers which dislike .lo - # (e.g. aix) in case we are running --disable-static - for obj in $libobjs; do - xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$obj"; then - xdir="." - else - xdir="$xdir" - fi - baseobj=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` - oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"` - if test ! -f $xdir/$oldobj; then - $show "(cd $xdir && ${LN_S} $baseobj $oldobj)" - $run eval '(cd $xdir && ${LN_S} $baseobj $oldobj)' || exit $? - fi - done - # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` --- 3914,3930 ---- else soname="$realname" fi ! if test -z "$dlname"; then ! dlname=$soname ! fi lib="$output_objdir/$realname" + linknames= for link do linknames="$linknames $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP` *************** *** 2865,2881 **** $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols ! eval cmds=\"$export_symbols_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" ! $show "$cmd" ! $run eval "$cmd" || exit $? done IFS="$save_ifs" if test -n "$export_symbols_regex"; then ! $show "egrep -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" ! $run eval 'egrep -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' $show "$mv \"${export_symbols}T\" \"$export_symbols\"" $run eval '$mv "${export_symbols}T" "$export_symbols"' fi --- 3934,3962 ---- $show "generating symbol list for \`$libname.la'" export_symbols="$output_objdir/$libname.exp" $run $rm $export_symbols ! cmds=$export_symbols_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" ! eval cmd=\"$cmd\" ! if len=`expr "X$cmd" : ".*"` && ! test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then ! $show "$cmd" ! $run eval "$cmd" || exit $? ! skipped_export=false ! else ! # The command line is too long to execute in one step. ! $show "using reloadable object file for export list..." ! skipped_export=: ! # Break out early, otherwise skipped_export may be ! # set to false by a later but shorter cmd. ! break ! fi done IFS="$save_ifs" if test -n "$export_symbols_regex"; then ! $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\"" ! $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' $show "$mv \"${export_symbols}T\" \"$export_symbols\"" $run eval '$mv "${export_symbols}T" "$export_symbols"' fi *************** *** 2886,2931 **** $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' fi if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" ! else ! gentop="$output_objdir/${outputname}x" ! $show "${rm}r $gentop" ! $run ${rm}r "$gentop" ! $show "mkdir $gentop" ! $run mkdir "$gentop" ! status=$? ! if test $status -ne 0 && test ! -d "$gentop"; then ! exit $status ! fi generated="$generated $gentop" ! for xlib in $convenience; do ! # Extract the objects. ! case $xlib in ! [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; ! *) xabs=`pwd`"/$xlib" ;; ! esac ! xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` ! xdir="$gentop/$xlib" ! ! $show "${rm}r $xdir" ! $run ${rm}r "$xdir" ! $show "mkdir $xdir" ! $run mkdir "$xdir" ! status=$? ! if test $status -ne 0 && test ! -d "$xdir"; then ! exit $status ! fi ! $show "(cd $xdir && $AR x $xabs)" ! $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? ! ! libobjs="$libobjs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP` ! done fi fi ! if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" --- 3967,3996 ---- $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"' fi + tmp_deplibs= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + tmp_deplibs="$tmp_deplibs $test_deplib" + ;; + esac + done + deplibs="$tmp_deplibs" + if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" ! else ! gentop="$output_objdir/${outputname}x" generated="$generated $gentop" ! func_extract_archives $gentop $convenience ! libobjs="$libobjs $func_extract_archives_result" fi fi ! if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" linker_flags="$linker_flags $flag" *************** *** 2937,2970 **** fi # Do each of the archive commands. if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then ! eval cmds=\"$archive_expsym_cmds\" else ! save_deplibs="$deplibs" ! for conv in $convenience; do ! tmp_deplibs= ! for test_deplib in $deplibs; do ! if test "$test_deplib" != "$conv"; then ! tmp_deplibs="$tmp_deplibs $test_deplib" fi ! done ! deplibs="$tmp_deplibs" done ! eval cmds=\"$archive_cmds\" ! deplibs="$save_deplibs" fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" ! $run eval "$cmd" || exit $? done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? ! exit 0 fi # Create links to the real library. --- 4002,4176 ---- fi # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds + else + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds + fi + else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then ! eval test_cmds=\"$archive_expsym_cmds\" ! cmds=$archive_expsym_cmds ! else ! eval test_cmds=\"$archive_cmds\" ! cmds=$archive_cmds ! fi ! fi ! ! if test "X$skipped_export" != "X:" && ! len=`expr "X$test_cmds" : ".*" 2>/dev/null` && ! test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then ! : else ! # The command line is too long to link in one step, link piecewise. ! $echo "creating reloadable object files..." ! ! # Save the value of $output and $libobjs because we want to ! # use them later. If we have whole_archive_flag_spec, we ! # want to use save_libobjs as it was before ! # whole_archive_flag_spec was expanded, because we can't ! # assume the linker understands whole_archive_flag_spec. ! # This may have to be revisited, in case too many ! # convenience libraries get linked in and end up exceeding ! # the spec. ! if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then ! save_libobjs=$libobjs ! fi ! save_output=$output ! output_la=`$echo "X$output" | $Xsed -e "$basename"` ! ! # Clear the reloadable object creation command queue and ! # initialize k to one. ! test_cmds= ! concat_cmds= ! objlist= ! delfiles= ! last_robj= ! k=1 ! output=$output_objdir/$output_la-${k}.$objext ! # Loop over the list of objects to be linked. ! for obj in $save_libobjs ! do ! eval test_cmds=\"$reload_cmds $objlist $last_robj\" ! if test "X$objlist" = X || ! { len=`expr "X$test_cmds" : ".*" 2>/dev/null` && ! test "$len" -le "$max_cmd_len"; }; then ! objlist="$objlist $obj" ! else ! # The command $test_cmds is almost too long, add a ! # command to the queue. ! if test "$k" -eq 1 ; then ! # The first file doesn't have a previous command to add. ! eval concat_cmds=\"$reload_cmds $objlist $last_robj\" ! else ! # All subsequent reloadable object files will link in ! # the last one created. ! eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\" fi ! last_robj=$output_objdir/$output_la-${k}.$objext ! k=`expr $k + 1` ! output=$output_objdir/$output_la-${k}.$objext ! objlist=$obj ! len=1 ! fi ! done ! # Handle the remaining objects by creating one last ! # reloadable object file. All subsequent reloadable object ! # files will link in the last one created. ! test -z "$concat_cmds" || concat_cmds=$concat_cmds~ ! eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\" ! ! if ${skipped_export-false}; then ! $show "generating symbol list for \`$libname.la'" ! export_symbols="$output_objdir/$libname.exp" ! $run $rm $export_symbols ! libobjs=$output ! # Append the command to create the export file. ! eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\" ! fi ! ! # Set up a command to remove the reloadable object files ! # after they are used. ! i=0 ! while test "$i" -lt "$k" ! do ! i=`expr $i + 1` ! delfiles="$delfiles $output_objdir/$output_la-${i}.$objext" ! done ! ! $echo "creating a temporary reloadable object file: $output" ! ! # Loop through the commands generated above and execute them. ! save_ifs="$IFS"; IFS='~' ! for cmd in $concat_cmds; do ! IFS="$save_ifs" ! $show "$cmd" ! $run eval "$cmd" || exit $? done ! IFS="$save_ifs" ! ! libobjs=$output ! # Restore the value of output. ! output=$save_output ! ! if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then ! eval libobjs=\"\$libobjs $whole_archive_flag_spec\" ! fi ! # Expand the library linking commands again to reset the ! # value of $libobjs for piecewise linking. ! ! # Do each of the archive commands. ! if test "$module" = yes && test -n "$module_cmds" ; then ! if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then ! cmds=$module_expsym_cmds ! else ! cmds=$module_cmds ! fi ! else ! if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then ! cmds=$archive_expsym_cmds ! else ! cmds=$archive_cmds ! fi ! fi ! ! # Append the command to remove the reloadable object files ! # to the just-reset $cmds. ! eval cmds=\"\$cmds~\$rm $delfiles\" fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" ! $run eval "$cmd" || { ! lt_exit=$? ! ! # Restore the uninstalled library and exit ! if test "$mode" = relink; then ! $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' ! fi ! ! exit $lt_exit ! } done IFS="$save_ifs" # Restore the uninstalled library and exit if test "$mode" = relink; then $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $? ! ! if test -n "$convenience"; then ! if test -z "$whole_archive_flag_spec"; then ! $show "${rm}r $gentop" ! $run ${rm}r "$gentop" ! fi ! fi ! ! exit $EXIT_SUCCESS fi # Create links to the real library. *************** *** 3012,3018 **** *.lo) if test -n "$objs$old_deplibs"; then $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 ! exit 1 fi libobj="$output" obj=`$echo "X$output" | $Xsed -e "$lo2o"` --- 4218,4224 ---- *.lo) if test -n "$objs$old_deplibs"; then $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2 ! exit $EXIT_FAILURE fi libobj="$output" obj=`$echo "X$output" | $Xsed -e "$lo2o"` *************** *** 3041,3078 **** eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" else gentop="$output_objdir/${obj}x" - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - $show "mkdir $gentop" - $run mkdir "$gentop" - status=$? - if test $status -ne 0 && test ! -d "$gentop"; then - exit $status - fi generated="$generated $gentop" ! for xlib in $convenience; do ! # Extract the objects. ! case $xlib in ! [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; ! *) xabs=`pwd`"/$xlib" ;; ! esac ! xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` ! xdir="$gentop/$xlib" ! ! $show "${rm}r $xdir" ! $run ${rm}r "$xdir" ! $show "mkdir $xdir" ! $run mkdir "$xdir" ! status=$? ! if test $status -ne 0 && test ! -d "$xdir"; then ! exit $status ! fi ! $show "(cd $xdir && $AR x $xabs)" ! $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? ! ! reload_conv_objs="$reload_objs "`find $xdir -name \*.o -print -o -name \*.lo -print | $NL2SP` ! done fi fi --- 4247,4256 ---- eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\" else gentop="$output_objdir/${obj}x" generated="$generated $gentop" ! func_extract_archives $gentop $convenience ! reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi *************** *** 3080,3089 **** reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" ! eval cmds=\"$reload_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done --- 4258,4268 ---- reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test output="$obj" ! cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done *************** *** 3096,3102 **** $run ${rm}r $gentop fi ! exit 0 fi if test "$build_libtool_libs" != yes; then --- 4275,4281 ---- $run ${rm}r $gentop fi ! exit $EXIT_SUCCESS fi if test "$build_libtool_libs" != yes; then *************** *** 3107,3143 **** # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. ! $show "echo timestamp > $libobj" ! $run eval "echo timestamp > $libobj" || exit $? ! exit 0 fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" ! eval cmds=\"$reload_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" - else - # Just create a symlink. - $show $rm $libobj - $run $rm $libobj - xdir=`$echo "X$libobj" | $Xsed -e 's%/[^/]*$%%'` - if test "X$xdir" = "X$libobj"; then - xdir="." - else - xdir="$xdir" - fi - baseobj=`$echo "X$libobj" | $Xsed -e 's%^.*/%%'` - oldobj=`$echo "X$baseobj" | $Xsed -e "$lo2o"` - $show "(cd $xdir && $LN_S $oldobj $baseobj)" - $run eval '(cd $xdir && $LN_S $oldobj $baseobj)' || exit $? fi if test -n "$gentop"; then --- 4286,4309 ---- # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. ! # $show "echo timestamp > $libobj" ! # $run eval "echo timestamp > $libobj" || exit $? ! exit $EXIT_SUCCESS fi if test -n "$pic_flag" || test "$pic_mode" != default; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output="$libobj" ! cmds=$reload_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done IFS="$save_ifs" fi if test -n "$gentop"; then *************** *** 3145,3156 **** $run ${rm}r $gentop fi ! exit 0 ;; prog) case $host in ! *cygwin*) output=`echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; esac if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 --- 4311,4322 ---- $run ${rm}r $gentop fi ! exit $EXIT_SUCCESS ;; prog) case $host in ! *cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;; esac if test -n "$vinfo"; then $echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2 *************** *** 3172,3187 **** # On Rhapsody replace the C library is the System framework compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` - case $host in - *darwin*) - # Don't allow lazy linking, it breaks C++ global constructors - compile_command="$compile_command ${wl}-bind_at_load" - finalize_command="$finalize_command ${wl}-bind_at_load" - ;; - esac ;; esac compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" --- 4338,4385 ---- # On Rhapsody replace the C library is the System framework compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'` finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'` ;; esac + case $host in + *darwin*) + # Don't allow lazy linking, it breaks C++ global constructors + if test "$tagname" = CXX ; then + compile_command="$compile_command ${wl}-bind_at_load" + finalize_command="$finalize_command ${wl}-bind_at_load" + fi + ;; + esac + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) + new_libs="$new_libs -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$new_libs $deplib" ;; + esac + ;; + *) new_libs="$new_libs $deplib" ;; + esac + done + compile_deplibs="$new_libs" + + compile_command="$compile_command $compile_deplibs" finalize_command="$finalize_command $finalize_deplibs" *************** *** 3226,3235 **** --- 4424,4438 ---- fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*) + testbindir=`$echo "X$libdir" | $Xsed -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; *) dllsearchpath="$dllsearchpath:$libdir";; esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + *) dllsearchpath="$dllsearchpath:$testbindir";; + esac ;; esac done *************** *** 3332,3362 **** done if test -n "$exclude_expsyms"; then ! $run eval 'egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi if test -n "$export_symbols_regex"; then ! $run eval 'egrep -e "$export_symbols_regex" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi # Prepare the list of exported symbols if test -z "$export_symbols"; then ! export_symbols="$output_objdir/$output.exp" $run $rm $export_symbols ! $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' else ! $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"' ! $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T' $run eval 'mv "$nlist"T "$nlist"' fi fi for arg in $dlprefiles; do $show "extracting global C symbols from \`$arg'" ! name=`echo "$arg" | ${SED} -e 's%^.*/%%'` ! $run eval 'echo ": $name " >> "$nlist"' $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done --- 4535,4577 ---- done if test -n "$exclude_expsyms"; then ! $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi if test -n "$export_symbols_regex"; then ! $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' $run eval '$mv "$nlist"T "$nlist"' fi # Prepare the list of exported symbols if test -z "$export_symbols"; then ! export_symbols="$output_objdir/$outputname.exp" $run $rm $export_symbols ! $run eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' ! case $host in ! *cygwin* | *mingw* ) ! $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' ! $run eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ! ;; ! esac else ! $run eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' ! $run eval 'grep -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' $run eval 'mv "$nlist"T "$nlist"' + case $host in + *cygwin* | *mingw* ) + $run eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + $run eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac fi fi for arg in $dlprefiles; do $show "extracting global C symbols from \`$arg'" ! name=`$echo "$arg" | ${SED} -e 's%^.*/%%'` ! $run eval '$echo ": $name " >> "$nlist"' $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'" done *************** *** 3365,3371 **** test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then ! egrep -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $mv "$nlist"T "$nlist" fi --- 4580,4586 ---- test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then ! $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $mv "$nlist"T "$nlist" fi *************** *** 3385,3391 **** if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' else ! echo '/* NONE */' >> "$output_objdir/$dlsyms" fi $echo >> "$output_objdir/$dlsyms" "\ --- 4600,4606 ---- if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"' else ! $echo '/* NONE */' >> "$output_objdir/$dlsyms" fi $echo >> "$output_objdir/$dlsyms" "\ *************** *** 3400,3406 **** --- 4615,4640 ---- #endif /* The mapping between symbol names and symbols. */ + " + + case $host in + *cygwin* | *mingw* ) + $echo >> "$output_objdir/$dlsyms" "\ + /* DATA imports from DLLs on WIN32 can't be const, because + runtime relocations are performed -- see ld's documentation + on pseudo-relocs */ + struct { + " + ;; + * ) + $echo >> "$output_objdir/$dlsyms" "\ const struct { + " + ;; + esac + + + $echo >> "$output_objdir/$dlsyms" "\ const char *name; lt_ptr address; } *************** *** 3437,3466 **** *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) case "$compile_command " in *" -static "*) ;; ! *) pic_flag_for_symtable=" $pic_flag -DPIC -DFREEBSD_WORKAROUND";; esac;; *-*-hpux*) case "$compile_command " in *" -static "*) ;; ! *) pic_flag_for_symtable=" $pic_flag -DPIC";; esac esac # Now compile the dynamic symbol file. ! $show "(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" ! $run eval '(cd $output_objdir && $CC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? # Clean up the generated files. $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" # Transform the symbol file into the correct name. ! compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ! finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ;; *) $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 ! exit 1 ;; esac else --- 4671,4713 ---- *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) case "$compile_command " in *" -static "*) ;; ! *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";; esac;; *-*-hpux*) case "$compile_command " in *" -static "*) ;; ! *) pic_flag_for_symtable=" $pic_flag";; esac esac # Now compile the dynamic symbol file. ! $show "(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")" ! $run eval '(cd $output_objdir && $LTCC $LTCFLAGS -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $? # Clean up the generated files. $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" # Transform the symbol file into the correct name. ! case $host in ! *cygwin* | *mingw* ) ! if test -f "$output_objdir/${outputname}.def" ; then ! compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` ! finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"` ! else ! compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ! finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ! fi ! ;; ! * ) ! compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ! finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"` ! ;; ! esac ;; *) $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 ! exit $EXIT_FAILURE ;; esac else *************** *** 3473,3479 **** finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi ! if test $need_relink = no || test "$build_libtool_libs" != yes; then # Replace the output file specification. compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" --- 4720,4726 ---- finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"` fi ! if test "$need_relink" = no || test "$build_libtool_libs" != yes; then # Replace the output file specification. compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'` link_command="$compile_command$compile_rpath" *************** *** 3481,3487 **** # We have no uninstalled library dependencies, so finalize right now. $show "$link_command" $run eval "$link_command" ! status=$? # Delete the generated files. if test -n "$dlsyms"; then --- 4728,4734 ---- # We have no uninstalled library dependencies, so finalize right now. $show "$link_command" $run eval "$link_command" ! exit_status=$? # Delete the generated files. if test -n "$dlsyms"; then *************** *** 3489,3495 **** $run $rm "$output_objdir/${outputname}S.${objext}" fi ! exit $status fi if test -n "$shlibpath_var"; then --- 4736,4742 ---- $run $rm "$output_objdir/${outputname}S.${objext}" fi ! exit $exit_status fi if test -n "$shlibpath_var"; then *************** *** 3548,3554 **** # Link the executable and exit $show "$link_command" $run eval "$link_command" || exit $? ! exit 0 fi if test "$hardcode_action" = relink; then --- 4795,4801 ---- # Link the executable and exit $show "$link_command" $run eval "$link_command" || exit $? ! exit $EXIT_SUCCESS fi if test "$hardcode_action" = relink; then *************** *** 3603,3612 **** fi # Quote $echo for shipping. ! if test "X$echo" = "X$SHELL $0 --fallback-echo"; then ! case $0 in ! [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";; ! *) qecho="$SHELL `pwd`/$0 --fallback-echo";; esac qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` else --- 4850,4859 ---- fi # Quote $echo for shipping. ! if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then ! case $progpath in ! [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; ! *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; esac qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"` else *************** *** 3618,3632 **** # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in ! *.exe) output=`echo $output|${SED} 's,.exe$,,'` ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in ! *cygwin*) exeext=.exe ;; *) exeext= ;; esac ! $rm $output ! trap "$rm $output; exit 1" 1 2 15 $echo > $output "\ #! $SHELL --- 4865,5240 ---- # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in ! *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in ! *cygwin*) ! exeext=.exe ! outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;; *) exeext= ;; esac ! case $host in ! *cygwin* | *mingw* ) ! output_name=`basename $output` ! output_path=`dirname $output` ! cwrappersource="$output_path/$objdir/lt-$output_name.c" ! cwrapper="$output_path/$output_name.exe" ! $rm $cwrappersource $cwrapper ! trap "$rm $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 ! ! cat > $cwrappersource <> $cwrappersource<<"EOF" ! #include ! #include ! #include ! #include ! #include ! #include ! #include ! #include ! #include ! ! #if defined(PATH_MAX) ! # define LT_PATHMAX PATH_MAX ! #elif defined(MAXPATHLEN) ! # define LT_PATHMAX MAXPATHLEN ! #else ! # define LT_PATHMAX 1024 ! #endif ! ! #ifndef DIR_SEPARATOR ! # define DIR_SEPARATOR '/' ! # define PATH_SEPARATOR ':' ! #endif ! ! #if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ ! defined (__OS2__) ! # define HAVE_DOS_BASED_FILE_SYSTEM ! # ifndef DIR_SEPARATOR_2 ! # define DIR_SEPARATOR_2 '\\' ! # endif ! # ifndef PATH_SEPARATOR_2 ! # define PATH_SEPARATOR_2 ';' ! # endif ! #endif ! ! #ifndef DIR_SEPARATOR_2 ! # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) ! #else /* DIR_SEPARATOR_2 */ ! # define IS_DIR_SEPARATOR(ch) \ ! (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) ! #endif /* DIR_SEPARATOR_2 */ ! ! #ifndef PATH_SEPARATOR_2 ! # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) ! #else /* PATH_SEPARATOR_2 */ ! # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) ! #endif /* PATH_SEPARATOR_2 */ ! ! #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) ! #define XFREE(stale) do { \ ! if (stale) { free ((void *) stale); stale = 0; } \ ! } while (0) ! ! /* -DDEBUG is fairly common in CFLAGS. */ ! #undef DEBUG ! #if defined DEBUGWRAPPER ! # define DEBUG(format, ...) fprintf(stderr, format, __VA_ARGS__) ! #else ! # define DEBUG(format, ...) ! #endif ! ! const char *program_name = NULL; ! ! void * xmalloc (size_t num); ! char * xstrdup (const char *string); ! const char * base_name (const char *name); ! char * find_executable(const char *wrapper); ! int check_executable(const char *path); ! char * strendzap(char *str, const char *pat); ! void lt_fatal (const char *message, ...); ! ! int ! main (int argc, char *argv[]) ! { ! char **newargz; ! int i; ! ! program_name = (char *) xstrdup (base_name (argv[0])); ! DEBUG("(main) argv[0] : %s\n",argv[0]); ! DEBUG("(main) program_name : %s\n",program_name); ! newargz = XMALLOC(char *, argc+2); ! EOF ! ! cat >> $cwrappersource <> $cwrappersource <<"EOF" ! newargz[1] = find_executable(argv[0]); ! if (newargz[1] == NULL) ! lt_fatal("Couldn't find %s", argv[0]); ! DEBUG("(main) found exe at : %s\n",newargz[1]); ! /* we know the script has the same name, without the .exe */ ! /* so make sure newargz[1] doesn't end in .exe */ ! strendzap(newargz[1],".exe"); ! for (i = 1; i < argc; i++) ! newargz[i+1] = xstrdup(argv[i]); ! newargz[argc+1] = NULL; ! ! for (i=0; i> $cwrappersource <> $cwrappersource <> $cwrappersource <<"EOF" ! return 127; ! } ! ! void * ! xmalloc (size_t num) ! { ! void * p = (void *) malloc (num); ! if (!p) ! lt_fatal ("Memory exhausted"); ! ! return p; ! } ! ! char * ! xstrdup (const char *string) ! { ! return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL ! ; ! } ! ! const char * ! base_name (const char *name) ! { ! const char *base; ! ! #if defined (HAVE_DOS_BASED_FILE_SYSTEM) ! /* Skip over the disk name in MSDOS pathnames. */ ! if (isalpha ((unsigned char)name[0]) && name[1] == ':') ! name += 2; ! #endif ! ! for (base = name; *name; name++) ! if (IS_DIR_SEPARATOR (*name)) ! base = name + 1; ! return base; ! } ! ! int ! check_executable(const char * path) ! { ! struct stat st; ! ! DEBUG("(check_executable) : %s\n", path ? (*path ? path : "EMPTY!") : "NULL!"); ! if ((!path) || (!*path)) ! return 0; ! ! if ((stat (path, &st) >= 0) && ! ( ! /* MinGW & native WIN32 do not support S_IXOTH or S_IXGRP */ ! #if defined (S_IXOTH) ! ((st.st_mode & S_IXOTH) == S_IXOTH) || ! #endif ! #if defined (S_IXGRP) ! ((st.st_mode & S_IXGRP) == S_IXGRP) || ! #endif ! ((st.st_mode & S_IXUSR) == S_IXUSR)) ! ) ! return 1; ! else ! return 0; ! } ! ! /* Searches for the full path of the wrapper. Returns ! newly allocated full path name if found, NULL otherwise */ ! char * ! find_executable (const char* wrapper) ! { ! int has_slash = 0; ! const char* p; ! const char* p_next; ! /* static buffer for getcwd */ ! char tmp[LT_PATHMAX + 1]; ! int tmp_len; ! char* concat_name; ! ! DEBUG("(find_executable) : %s\n", wrapper ? (*wrapper ? wrapper : "EMPTY!") : "NULL!"); ! ! if ((wrapper == NULL) || (*wrapper == '\0')) ! return NULL; ! ! /* Absolute path? */ ! #if defined (HAVE_DOS_BASED_FILE_SYSTEM) ! if (isalpha ((unsigned char)wrapper[0]) && wrapper[1] == ':') ! { ! concat_name = xstrdup (wrapper); ! if (check_executable(concat_name)) ! return concat_name; ! XFREE(concat_name); ! } ! else ! { ! #endif ! if (IS_DIR_SEPARATOR (wrapper[0])) ! { ! concat_name = xstrdup (wrapper); ! if (check_executable(concat_name)) ! return concat_name; ! XFREE(concat_name); ! } ! #if defined (HAVE_DOS_BASED_FILE_SYSTEM) ! } ! #endif ! ! for (p = wrapper; *p; p++) ! if (*p == '/') ! { ! has_slash = 1; ! break; ! } ! if (!has_slash) ! { ! /* no slashes; search PATH */ ! const char* path = getenv ("PATH"); ! if (path != NULL) ! { ! for (p = path; *p; p = p_next) ! { ! const char* q; ! size_t p_len; ! for (q = p; *q; q++) ! if (IS_PATH_SEPARATOR(*q)) ! break; ! p_len = q - p; ! p_next = (*q == '\0' ? q : q + 1); ! if (p_len == 0) ! { ! /* empty path: current directory */ ! if (getcwd (tmp, LT_PATHMAX) == NULL) ! lt_fatal ("getcwd failed"); ! tmp_len = strlen(tmp); ! concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); ! memcpy (concat_name, tmp, tmp_len); ! concat_name[tmp_len] = '/'; ! strcpy (concat_name + tmp_len + 1, wrapper); ! } ! else ! { ! concat_name = XMALLOC(char, p_len + 1 + strlen(wrapper) + 1); ! memcpy (concat_name, p, p_len); ! concat_name[p_len] = '/'; ! strcpy (concat_name + p_len + 1, wrapper); ! } ! if (check_executable(concat_name)) ! return concat_name; ! XFREE(concat_name); ! } ! } ! /* not found in PATH; assume curdir */ ! } ! /* Relative path | not found in path: prepend cwd */ ! if (getcwd (tmp, LT_PATHMAX) == NULL) ! lt_fatal ("getcwd failed"); ! tmp_len = strlen(tmp); ! concat_name = XMALLOC(char, tmp_len + 1 + strlen(wrapper) + 1); ! memcpy (concat_name, tmp, tmp_len); ! concat_name[tmp_len] = '/'; ! strcpy (concat_name + tmp_len + 1, wrapper); ! ! if (check_executable(concat_name)) ! return concat_name; ! XFREE(concat_name); ! return NULL; ! } ! ! char * ! strendzap(char *str, const char *pat) ! { ! size_t len, patlen; ! ! assert(str != NULL); ! assert(pat != NULL); ! ! len = strlen(str); ! patlen = strlen(pat); ! ! if (patlen <= len) ! { ! str += len - patlen; ! if (strcmp(str, pat) == 0) ! *str = '\0'; ! } ! return str; ! } ! ! static void ! lt_error_core (int exit_status, const char * mode, ! const char * message, va_list ap) ! { ! fprintf (stderr, "%s: %s: ", program_name, mode); ! vfprintf (stderr, message, ap); ! fprintf (stderr, ".\n"); ! ! if (exit_status >= 0) ! exit (exit_status); ! } ! ! void ! lt_fatal (const char *message, ...) ! { ! va_list ap; ! va_start (ap, message); ! lt_error_core (EXIT_FAILURE, "FATAL", message, ap); ! va_end (ap); ! } ! EOF ! # we should really use a build-platform specific compiler ! # here, but OTOH, the wrappers (shell script and this C one) ! # are only useful if you want to execute the "real" binary. ! # Since the "real" binary is built for $host, then this ! # wrapper might as well be built for $host, too. ! $run $LTCC $LTCFLAGS -s -o $cwrapper $cwrappersource ! ;; ! esac ! $rm $output ! trap "$rm $output; exit $EXIT_FAILURE" 1 2 15 $echo > $output "\ #! $SHELL *************** *** 3642,3653 **** # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. ! Xsed="${SED}"' -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. ! if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi relink_command=\"$relink_command\" --- 5250,5261 ---- # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. ! Xsed='${SED} -e 1s/^X//' sed_quote_subst='$sed_quote_subst' # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. ! (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" *************** *** 3702,3708 **** " if test "$fast_install" = yes; then ! echo >> $output "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" --- 5310,5316 ---- " if test "$fast_install" = yes; then ! $echo >> $output "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" *************** *** 3718,3724 **** $rm \"\$progdir/\$file\" fi" ! echo >> $output "\ # relink executable if necessary if test -n \"\$relink_command\"; then --- 5326,5332 ---- $rm \"\$progdir/\$file\" fi" ! $echo >> $output "\ # relink executable if necessary if test -n \"\$relink_command\"; then *************** *** 3726,3732 **** else $echo \"\$relink_command_output\" >&2 $rm \"\$progdir/\$file\" ! exit 1 fi fi --- 5334,5340 ---- else $echo \"\$relink_command_output\" >&2 $rm \"\$progdir/\$file\" ! exit $EXIT_FAILURE fi fi *************** *** 3736,3748 **** $rm \"\$progdir/\$file\" fi" else ! echo >> $output "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi ! echo >> $output "\ if test -f \"\$progdir/\$program\"; then" --- 5344,5356 ---- $rm \"\$progdir/\$file\" fi" else ! $echo >> $output "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi ! $echo >> $output "\ if test -f \"\$progdir/\$program\"; then" *************** *** 3753,3759 **** $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var ! # The second colon is a workaround for a bug in BeOS R4 ${SED} $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var --- 5361,5367 ---- $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var ! # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\` export $shlibpath_var *************** *** 3773,3819 **** # Run the actual program with our arguments. " case $host in - # win32 systems need to use the prog path for dll - # lookup to work - *-*-cygwin* | *-*-pw32*) - $echo >> $output "\ - exec \$progdir/\$program \${1+\"\$@\"} - " - ;; - # Backslashes separate directories on plain windows *-*-mingw | *-*-os2*) $echo >> $output "\ ! exec \$progdir\\\\\$program \${1+\"\$@\"} " ;; *) $echo >> $output "\ ! # Export the path to the program. ! PATH=\"\$progdir:\$PATH\" ! export PATH ! ! exec \$program \${1+\"\$@\"} " ;; esac $echo >> $output "\ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" ! exit 1 fi else # The program doesn't exist. ! \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2 \$echo \"This script is just a wrapper for \$program.\" 1>&2 ! echo \"See the $PACKAGE documentation for more information.\" 1>&2 ! exit 1 fi fi\ " chmod +x $output fi ! exit 0 ;; esac --- 5381,5415 ---- # Run the actual program with our arguments. " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2*) $echo >> $output "\ ! exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $echo >> $output "\ ! exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $echo >> $output "\ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" ! exit $EXIT_FAILURE fi else # The program doesn't exist. ! \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 \$echo \"This script is just a wrapper for \$program.\" 1>&2 ! $echo \"See the $PACKAGE documentation for more information.\" 1>&2 ! exit $EXIT_FAILURE fi fi\ " chmod +x $output fi ! exit $EXIT_SUCCESS ;; esac *************** *** 3829,3902 **** oldobjs="$libobjs_save" build_libtool_libs=no else ! oldobjs="$objs$old_deplibs "`$echo "X$libobjs_save" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP` fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" - $show "${rm}r $gentop" - $run ${rm}r "$gentop" - $show "mkdir $gentop" - $run mkdir "$gentop" - status=$? - if test $status -ne 0 && test ! -d "$gentop"; then - exit $status - fi generated="$generated $gentop" ! # Add in members from convenience archives. ! for xlib in $addlibs; do ! # Extract the objects. ! case $xlib in ! [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;; ! *) xabs=`pwd`"/$xlib" ;; ! esac ! xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'` ! xdir="$gentop/$xlib" ! ! $show "${rm}r $xdir" ! $run ${rm}r "$xdir" ! $show "mkdir $xdir" ! $run mkdir "$xdir" ! status=$? ! if test $status -ne 0 && test ! -d "$xdir"; then ! exit $status ! fi ! $show "(cd $xdir && $AR x $xabs)" ! $run eval "(cd \$xdir && $AR x \$xabs)" || exit $? ! ! oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP` ! done fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then ! eval cmds=\"$old_archive_from_new_cmds\" else ! # Ensure that we have .o objects in place in case we decided ! # not to build a shared library, and have fallen back to building ! # static libs even though --disable-static was passed! ! for oldobj in $oldobjs; do ! if test ! -f $oldobj; then ! xdir=`$echo "X$oldobj" | $Xsed -e 's%/[^/]*$%%'` ! if test "X$xdir" = "X$oldobj"; then ! xdir="." ! else ! xdir="$xdir" fi - baseobj=`$echo "X$oldobj" | $Xsed -e 's%^.*/%%'` - obj=`$echo "X$baseobj" | $Xsed -e "$o2lo"` - $show "(cd $xdir && ${LN_S} $obj $baseobj)" - $run eval '(cd $xdir && ${LN_S} $obj $baseobj)' || exit $? fi ! done eval cmds=\"$old_archive_cmds\" fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? --- 5425,5554 ---- oldobjs="$libobjs_save" build_libtool_libs=no else ! oldobjs="$old_deplibs $non_pic_objects" fi addlibs="$old_convenience" fi if test -n "$addlibs"; then gentop="$output_objdir/${outputname}x" generated="$generated $gentop" ! func_extract_archives $gentop $addlibs ! oldobjs="$oldobjs $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then ! cmds=$old_archive_from_new_cmds else ! # POSIX demands no paths to be encoded in archives. We have ! # to avoid creating archives with duplicate basenames if we ! # might have to extract them afterwards, e.g., when creating a ! # static archive out of a convenience library, or when linking ! # the entirety of a libtool archive into another (currently ! # not supported by libtool). ! if (for obj in $oldobjs ! do ! $echo "X$obj" | $Xsed -e 's%^.*/%%' ! done | sort | sort -uc >/dev/null 2>&1); then ! : ! else ! $echo "copying selected object files to avoid basename conflicts..." ! ! if test -z "$gentop"; then ! gentop="$output_objdir/${outputname}x" ! generated="$generated $gentop" ! ! $show "${rm}r $gentop" ! $run ${rm}r "$gentop" ! $show "$mkdir $gentop" ! $run $mkdir "$gentop" ! exit_status=$? ! if test "$exit_status" -ne 0 && test ! -d "$gentop"; then ! exit $exit_status fi fi ! ! save_oldobjs=$oldobjs ! oldobjs= ! counter=1 ! for obj in $save_oldobjs ! do ! objbase=`$echo "X$obj" | $Xsed -e 's%^.*/%%'` ! case " $oldobjs " in ! " ") oldobjs=$obj ;; ! *[\ /]"$objbase "*) ! while :; do ! # Make sure we don't pick an alternate name that also ! # overlaps. ! newobj=lt$counter-$objbase ! counter=`expr $counter + 1` ! case " $oldobjs " in ! *[\ /]"$newobj "*) ;; ! *) if test ! -f "$gentop/$newobj"; then break; fi ;; ! esac ! done ! $show "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" ! $run ln "$obj" "$gentop/$newobj" || ! $run cp "$obj" "$gentop/$newobj" ! oldobjs="$oldobjs $gentop/$newobj" ! ;; ! *) oldobjs="$oldobjs $obj" ;; ! esac ! done ! fi eval cmds=\"$old_archive_cmds\" + + if len=`expr "X$cmds" : ".*"` && + test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + $echo "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_oldobjs=$oldobjs + + # Is there a better way of finding the last object in the list? + for obj in $save_oldobjs + do + last_oldobj=$obj + done + for obj in $save_oldobjs + do + oldobjs="$objlist $obj" + objlist="$objlist $obj" + eval test_cmds=\"$old_archive_cmds\" + if len=`expr "X$test_cmds" : ".*" 2>/dev/null` && + test "$len" -le "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + if test "$obj" = "$last_oldobj" ; then + RANLIB=$save_RANLIB + fi + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" + objlist= + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + if test "X$oldobjs" = "X" ; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi fi save_ifs="$IFS"; IFS='~' for cmd in $cmds; do + eval cmd=\"$cmd\" IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? *************** *** 3928,3935 **** fi done # Quote the link command for shipping. ! relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` # Only create the output if not a dry run. if test -z "$run"; then --- 5580,5591 ---- fi done # Quote the link command for shipping. ! relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"` + if test "$hardcode_automatic" = yes ; then + relink_command= + fi + # Only create the output if not a dry run. if test -z "$run"; then *************** *** 3948,3954 **** eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 ! exit 1 fi newdependency_libs="$newdependency_libs $libdir/$name" ;; --- 5604,5610 ---- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` if test -z "$libdir"; then $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2 ! exit $EXIT_FAILURE fi newdependency_libs="$newdependency_libs $libdir/$name" ;; *************** *** 3962,3968 **** eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 ! exit 1 fi newdlfiles="$newdlfiles $libdir/$name" done --- 5618,5624 ---- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 ! exit $EXIT_FAILURE fi newdlfiles="$newdlfiles $libdir/$name" done *************** *** 3973,3989 **** eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 ! exit 1 fi newdlprefiles="$newdlprefiles $libdir/$name" done dlprefiles="$newdlprefiles" fi $rm $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in ! *cygwin*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $echo > $output "\ # $outputname - a libtool library file --- 5629,5664 ---- eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` if test -z "$libdir"; then $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 ! exit $EXIT_FAILURE fi newdlprefiles="$newdlprefiles $libdir/$name" done dlprefiles="$newdlprefiles" + else + newdlfiles= + for lib in $dlfiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + newdlfiles="$newdlfiles $abs" + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + newdlprefiles="$newdlprefiles $abs" + done + dlprefiles="$newdlprefiles" fi $rm $output # place dlname in correct position for cygwin tdlname=$dlname case $host,$output,$installed,$module,$dlname in ! *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;; esac $echo > $output "\ # $outputname - a libtool library file *************** *** 4012,4024 **** # Is this an already installed library? installed=$installed # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" ! if test "$installed" = no && test $need_relink = yes; then $echo >> $output "\ relink_command=\"$relink_command\"" fi --- 5687,5702 ---- # Is this an already installed library? installed=$installed + # Should we warn about portability when linking against -modules? + shouldnotlink=$module + # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" ! if test "$installed" = no && test "$need_relink" = yes; then $echo >> $output "\ relink_command=\"$relink_command\"" fi *************** *** 4031,4037 **** $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? ;; esac ! exit 0 ;; # libtool install mode --- 5709,5715 ---- $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $? ;; esac ! exit $EXIT_SUCCESS ;; # libtool install mode *************** *** 4042,4052 **** # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. ! $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then # Aesthetically quote it. arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` case $arg in ! *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" ;; esac --- 5720,5730 ---- # install_prog (especially on Windows NT). if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || # Allow the use of GNU shtool's install command. ! $echo "X$nonopt" | grep shtool > /dev/null; then # Aesthetically quote it. arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"` case $arg in ! *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac *************** *** 4055,4068 **** shift else install_prog= ! arg="$nonopt" fi # The real first argument should be the name of the installation program. # Aesthetically quote it. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in ! *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" ;; esac --- 5733,5746 ---- shift else install_prog= ! arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in ! *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac *************** *** 4080,4107 **** do if test -n "$dest"; then files="$files $dest" ! dest="$arg" continue fi case $arg in -d) isdir=yes ;; ! -f) prev="-f" ;; ! -g) prev="-g" ;; ! -m) prev="-m" ;; ! -o) prev="-o" ;; -s) stripme=" -s" continue ;; ! -*) ;; ! *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else ! dest="$arg" continue fi ;; --- 5758,5788 ---- do if test -n "$dest"; then files="$files $dest" ! dest=$arg continue fi case $arg in -d) isdir=yes ;; ! -f) ! case " $install_prog " in ! *[\\\ /]cp\ *) ;; ! *) prev=$arg ;; ! esac ! ;; ! -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; ! -*) ! ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then prev= else ! dest=$arg continue fi ;; *************** *** 4110,4116 **** # Aesthetically quote the argument. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in ! *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*) arg="\"$arg\"" ;; esac --- 5791,5797 ---- # Aesthetically quote the argument. arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"` case $arg in ! *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") arg="\"$arg\"" ;; esac *************** *** 4120,4132 **** if test -z "$install_prog"; then $echo "$modename: you must specify an install program" 1>&2 $echo "$help" 1>&2 ! exit 1 fi if test -n "$prev"; then $echo "$modename: the \`$prev' option requires an argument" 1>&2 $echo "$help" 1>&2 ! exit 1 fi if test -z "$files"; then --- 5801,5813 ---- if test -z "$install_prog"; then $echo "$modename: you must specify an install program" 1>&2 $echo "$help" 1>&2 ! exit $EXIT_FAILURE fi if test -n "$prev"; then $echo "$modename: the \`$prev' option requires an argument" 1>&2 $echo "$help" 1>&2 ! exit $EXIT_FAILURE fi if test -z "$files"; then *************** *** 4136,4142 **** $echo "$modename: you must specify a destination" 1>&2 fi $echo "$help" 1>&2 ! exit 1 fi # Strip any trailing slash from the destination. --- 5817,5823 ---- $echo "$modename: you must specify a destination" 1>&2 fi $echo "$help" 1>&2 ! exit $EXIT_FAILURE fi # Strip any trailing slash from the destination. *************** *** 4154,4163 **** # Not a directory, so check to see that there is only one file specified. set dummy $files ! if test $# -gt 2; then $echo "$modename: \`$dest' is not a directory" 1>&2 $echo "$help" 1>&2 ! exit 1 fi fi case $destdir in --- 5835,5844 ---- # Not a directory, so check to see that there is only one file specified. set dummy $files ! if test "$#" -gt 2; then $echo "$modename: \`$dest' is not a directory" 1>&2 $echo "$help" 1>&2 ! exit $EXIT_FAILURE fi fi case $destdir in *************** *** 4169,4175 **** *) $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 $echo "$help" 1>&2 ! exit 1 ;; esac done --- 5850,5856 ---- *) $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2 $echo "$help" 1>&2 ! exit $EXIT_FAILURE ;; esac done *************** *** 4194,4204 **** *.la) # Check to see that this really is a libtool archive. ! if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 ! exit 1 fi library_names= --- 5875,5885 ---- *.la) # Check to see that this really is a libtool archive. ! if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$file' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 ! exit $EXIT_FAILURE fi library_names= *************** *** 4229,4240 **** dir="$dir$objdir" if test -n "$relink_command"; then $echo "$modename: warning: relinking \`$file'" 1>&2 $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ! continue fi fi --- 5910,5942 ---- dir="$dir$objdir" if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. + inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that + # are installed to the same prefix. + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. + if test "$inst_prefix_dir" = "$destdir"; then + $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 + exit $EXIT_FAILURE + fi + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. + relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + else + relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"` + fi + $echo "$modename: warning: relinking \`$file'" 1>&2 $show "$relink_command" if $run eval "$relink_command"; then : else $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 ! exit $EXIT_FAILURE fi fi *************** *** 4256,4280 **** $run eval "$striplib $destdir/$realname" || exit $? fi ! if test $# -gt 0; then # Delete the old symlinks, and create new ones. for linkname do if test "$linkname" != "$realname"; then ! $show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" ! $run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)" fi done fi # Do each command in the postinstall commands. lib="$destdir/$realname" ! eval cmds=\"$postinstall_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" ! $run eval "$cmd" || exit $? done IFS="$save_ifs" fi --- 5958,5995 ---- $run eval "$striplib $destdir/$realname" || exit $? fi ! if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. + # Try `ln -sf' first, because the `ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. for linkname do if test "$linkname" != "$realname"; then ! $show "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" ! $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $rm $linkname && $LN_S $realname $linkname; }; })" fi done fi # Do each command in the postinstall commands. lib="$destdir/$realname" ! cmds=$postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" ! $run eval "$cmd" || { ! lt_exit=$? ! ! # Restore the uninstalled library and exit ! if test "$mode" = relink; then ! $run eval '(cd $output_objdir && $rm ${realname}T && $mv ${realname}U $realname)' ! fi ! ! exit $lt_exit ! } done IFS="$save_ifs" fi *************** *** 4312,4318 **** *) $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 $echo "$help" 1>&2 ! exit 1 ;; esac --- 6027,6033 ---- *) $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2 $echo "$help" 1>&2 ! exit $EXIT_FAILURE ;; esac *************** *** 4330,4336 **** $show "$install_prog $staticobj $staticdest" $run eval "$install_prog \$staticobj \$staticdest" || exit $? fi ! exit 0 ;; *) --- 6045,6051 ---- $show "$install_prog $staticobj $staticdest" $run eval "$install_prog \$staticobj \$staticdest" || exit $? fi ! exit $EXIT_SUCCESS ;; *) *************** *** 4342,4370 **** destfile="$destdir/$destfile" fi # Do a test to see if this is really a libtool program. case $host in *cygwin*|*mingw*) ! wrapper=`echo $file | ${SED} -e 's,.exe$,,'` ;; *) wrapper=$file ;; esac ! if (${SED} -e '4q' $wrapper | egrep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then notinst_deplibs= relink_command= # If there is no directory component, then add one. ! case $file in ! */* | *\\*) . $wrapper ;; ! *) . ./$wrapper ;; esac # Check the variables that should have been set. if test -z "$notinst_deplibs"; then $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 ! exit 1 fi finalize=yes --- 6057,6103 ---- destfile="$destdir/$destfile" fi + # If the file is missing, and there is a .exe on the end, strip it + # because it is most likely a libtool script we actually want to + # install + stripped_ext="" + case $file in + *.exe) + if test ! -f "$file"; then + file=`$echo $file|${SED} 's,.exe$,,'` + stripped_ext=".exe" + fi + ;; + esac + # Do a test to see if this is really a libtool program. case $host in *cygwin*|*mingw*) ! wrapper=`$echo $file | ${SED} -e 's,.exe$,,'` ;; *) wrapper=$file ;; esac ! if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then notinst_deplibs= relink_command= + # Note that it is not necessary on cygwin/mingw to append a dot to + # foo even if both foo and FILE.exe exist: automatic-append-.exe + # behavior happens only for exec(3), not for open(2)! Also, sourcing + # `FILE.' does not work on cygwin managed mounts. + # # If there is no directory component, then add one. ! case $wrapper in ! */* | *\\*) . ${wrapper} ;; ! *) . ./${wrapper} ;; esac # Check the variables that should have been set. if test -z "$notinst_deplibs"; then $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2 ! exit $EXIT_FAILURE fi finalize=yes *************** *** 4386,4409 **** done relink_command= # If there is no directory component, then add one. ! case $file in ! */* | *\\*) . $wrapper ;; ! *) . ./$wrapper ;; esac outputname= if test "$fast_install" = no && test -n "$relink_command"; then if test "$finalize" = yes && test -z "$run"; then ! tmpdir="/tmp" ! test -n "$TMPDIR" && tmpdir="$TMPDIR" ! tmpdir="$tmpdir/libtool-$$" ! if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then : ! else ! $echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2 ! continue ! fi ! file=`$echo "X$file" | $Xsed -e 's%^.*/%%'` outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` --- 6119,6140 ---- done relink_command= + # Note that it is not necessary on cygwin/mingw to append a dot to + # foo even if both foo and FILE.exe exist: automatic-append-.exe + # behavior happens only for exec(3), not for open(2)! Also, sourcing + # `FILE.' does not work on cygwin managed mounts. + # # If there is no directory component, then add one. ! case $wrapper in ! */* | *\\*) . ${wrapper} ;; ! *) . ./${wrapper} ;; esac outputname= if test "$fast_install" = no && test -n "$relink_command"; then if test "$finalize" = yes && test -z "$run"; then ! tmpdir=`func_mktempdir` ! file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'` outputname="$tmpdir/$file" # Replace the output file specification. relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'` *************** *** 4421,4434 **** fi else # Install the binary that we compiled earlier. ! file=`$echo "X$file" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another ! # one anyways case $install_prog,$host in ! /usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok --- 6152,6165 ---- fi else # Install the binary that we compiled earlier. ! file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another ! # one anyway case $install_prog,$host in ! */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok *************** *** 4437,4443 **** destfile=$destfile.exe ;; *:*.exe) ! destfile=`echo $destfile | ${SED} -e 's,.exe$,,'` ;; esac ;; --- 6168,6174 ---- destfile=$destfile.exe ;; *:*.exe) ! destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'` ;; esac ;; *************** *** 4458,4473 **** $show "$install_prog $file $oldlib" $run eval "$install_prog \$file \$oldlib" || exit $? ! if test -n "$stripme" && test -n "$striplib"; then $show "$old_striplib $oldlib" $run eval "$old_striplib $oldlib" || exit $? fi # Do each command in the postinstall commands. ! eval cmds=\"$old_postinstall_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || exit $? done --- 6189,6205 ---- $show "$install_prog $file $oldlib" $run eval "$install_prog \$file \$oldlib" || exit $? ! if test -n "$stripme" && test -n "$old_striplib"; then $show "$old_striplib $oldlib" $run eval "$old_striplib $oldlib" || exit $? fi # Do each command in the postinstall commands. ! cmds=$old_postinstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || exit $? done *************** *** 4481,4489 **** if test -n "$current_libdirs"; then # Maybe just do a dry run. test -n "$run" && current_libdirs=" -n$current_libdirs" ! exec_cmd='$SHELL $0 --finish$current_libdirs' else ! exit 0 fi ;; --- 6213,6221 ---- if test -n "$current_libdirs"; then # Maybe just do a dry run. test -n "$run" && current_libdirs=" -n$current_libdirs" ! exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' else ! exit $EXIT_SUCCESS fi ;; *************** *** 4502,4511 **** for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. ! eval cmds=\"$finish_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" || admincmds="$admincmds $cmd" --- 6234,6244 ---- for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. ! cmds=$finish_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" || admincmds="$admincmds $cmd" *************** *** 4522,4564 **** fi # Exit here if they wanted silent mode. ! test "$show" = ":" && exit 0 ! echo "----------------------------------------------------------------------" ! echo "Libraries have been installed in:" for libdir in $libdirs; do ! echo " $libdir" done ! echo ! echo "If you ever happen to want to link against installed libraries" ! echo "in a given directory, LIBDIR, you must either use libtool, and" ! echo "specify the full pathname of the library, or use the \`-LLIBDIR'" ! echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then ! echo " - add LIBDIR to the \`$shlibpath_var' environment variable" ! echo " during execution" fi if test -n "$runpath_var"; then ! echo " - add LIBDIR to the \`$runpath_var' environment variable" ! echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" ! echo " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then ! echo " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then ! echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi ! echo ! echo "See any operating system documentation about shared libraries for" ! echo "more information, such as the ld(1) and ld.so(8) manual pages." ! echo "----------------------------------------------------------------------" ! exit 0 ;; # libtool execute mode --- 6255,6297 ---- fi # Exit here if they wanted silent mode. ! test "$show" = : && exit $EXIT_SUCCESS ! $echo "X----------------------------------------------------------------------" | $Xsed ! $echo "Libraries have been installed in:" for libdir in $libdirs; do ! $echo " $libdir" done ! $echo ! $echo "If you ever happen to want to link against installed libraries" ! $echo "in a given directory, LIBDIR, you must either use libtool, and" ! $echo "specify the full pathname of the library, or use the \`-LLIBDIR'" ! $echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then ! $echo " - add LIBDIR to the \`$shlibpath_var' environment variable" ! $echo " during execution" fi if test -n "$runpath_var"; then ! $echo " - add LIBDIR to the \`$runpath_var' environment variable" ! $echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" ! $echo " - use the \`$flag' linker flag" fi if test -n "$admincmds"; then ! $echo " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then ! $echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" fi ! $echo ! $echo "See any operating system documentation about shared libraries for" ! $echo "more information, such as the ld(1) and ld.so(8) manual pages." ! $echo "X----------------------------------------------------------------------" | $Xsed ! exit $EXIT_SUCCESS ;; # libtool execute mode *************** *** 4570,4576 **** if test -z "$cmd"; then $echo "$modename: you must specify a COMMAND" 1>&2 $echo "$help" ! exit 1 fi # Handle -dlopen flags immediately. --- 6303,6309 ---- if test -z "$cmd"; then $echo "$modename: you must specify a COMMAND" 1>&2 $echo "$help" ! exit $EXIT_FAILURE fi # Handle -dlopen flags immediately. *************** *** 4578,4595 **** if test ! -f "$file"; then $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 ! exit 1 fi dir= case $file in *.la) # Check to see that this really is a libtool archive. ! if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 ! exit 1 fi # Read the libtool library. --- 6311,6328 ---- if test ! -f "$file"; then $echo "$modename: \`$file' is not a file" 1>&2 $echo "$help" 1>&2 ! exit $EXIT_FAILURE fi dir= case $file in *.la) # Check to see that this really is a libtool archive. ! if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then : else $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2 $echo "$help" 1>&2 ! exit $EXIT_FAILURE fi # Read the libtool library. *************** *** 4616,4622 **** dir="$dir/$objdir" else $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 ! exit 1 fi ;; --- 6349,6355 ---- dir="$dir/$objdir" else $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2 ! exit $EXIT_FAILURE fi ;; *************** *** 4656,4662 **** -*) ;; *) # Do a test to see if this is really a libtool program. ! if (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; --- 6389,6395 ---- -*) ;; *) # Do a test to see if this is really a libtool program. ! if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then # If there is no directory component, then add one. case $file in */* | *\\*) . $file ;; *************** *** 4679,4685 **** eval "export $shlibpath_var" fi ! # Restore saved enviroment variables if test "${save_LC_ALL+set}" = set; then LC_ALL="$save_LC_ALL"; export LC_ALL fi --- 6412,6418 ---- eval "export $shlibpath_var" fi ! # Restore saved environment variables if test "${save_LC_ALL+set}" = set; then LC_ALL="$save_LC_ALL"; export LC_ALL fi *************** *** 4696,4702 **** $echo "export $shlibpath_var" fi $echo "$cmd$args" ! exit 0 fi ;; --- 6429,6435 ---- $echo "export $shlibpath_var" fi $echo "$cmd$args" ! exit $EXIT_SUCCESS fi ;; *************** *** 4724,4747 **** if test -z "$rm"; then $echo "$modename: you must specify an RM program" 1>&2 $echo "$help" 1>&2 ! exit 1 fi rmdirs= for file in $files; do dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` if test "X$dir" = "X$file"; then dir=. ! objdir="$objdir" else ! objdir="$dir/$objdir" fi name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` ! test $mode = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates ! if test $mode = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; --- 6457,6481 ---- if test -z "$rm"; then $echo "$modename: you must specify an RM program" 1>&2 $echo "$help" 1>&2 ! exit $EXIT_FAILURE fi rmdirs= + origobjdir="$objdir" for file in $files; do dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'` if test "X$dir" = "X$file"; then dir=. ! objdir="$origobjdir" else ! objdir="$dir/$origobjdir" fi name=`$echo "X$file" | $Xsed -e 's%^.*/%%'` ! test "$mode" = uninstall && objdir="$dir" # Remember objdir for removal later, being careful to avoid duplicates ! if test "$mode" = clean; then case " $rmdirs " in *" $objdir "*) ;; *) rmdirs="$rmdirs $objdir" ;; *************** *** 4765,4771 **** case $name in *.la) # Possibly a libtool archive, so verify it. ! if (${SED} -e '2q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then . $dir/$name # Delete the libtool libraries and symlinks. --- 6499,6505 ---- case $name in *.la) # Possibly a libtool archive, so verify it. ! if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then . $dir/$name # Delete the libtool libraries and symlinks. *************** *** 4773,4790 **** rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" - test $mode = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ! if test $mode = uninstall; then if test -n "$library_names"; then # Do each command in the postuninstall commands. ! eval cmds=\"$postuninstall_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" ! if test $? != 0 && test "$rmforce" != yes; then exit_status=1 fi done --- 6507,6533 ---- rmfiles="$rmfiles $objdir/$n" done test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library" ! case "$mode" in ! clean) ! case " $library_names " in ! # " " in the beginning catches empty $dlname ! *" $dlname "*) ;; ! *) rmfiles="$rmfiles $objdir/$dlname" ;; ! esac ! test -n "$libdir" && rmfiles="$rmfiles $objdir/$name $objdir/${name}i" ! ;; ! uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. ! cmds=$postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" ! if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done *************** *** 4793,4832 **** if test -n "$old_library"; then # Do each command in the old_postuninstall commands. ! eval cmds=\"$old_postuninstall_cmds\" save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" $show "$cmd" $run eval "$cmd" ! if test $? != 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi # FIXME: should reinstall the best remaining shared library. ! fi fi ;; *.lo) ! if test "$build_old_libs" = yes; then ! oldobj=`$echo "X$name" | $Xsed -e "$lo2o"` ! rmfiles="$rmfiles $dir/$oldobj" fi ;; *) ! # Do a test to see if this is a libtool program. ! if test $mode = clean && ! (${SED} -e '4q' $file | egrep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then ! relink_command= ! . $dir/$file ! rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" ! if test "$fast_install" = yes && test -n "$relink_command"; then ! rmfiles="$rmfiles $objdir/lt-$name" fi fi ;; --- 6536,6607 ---- if test -n "$old_library"; then # Do each command in the old_postuninstall commands. ! cmds=$old_postuninstall_cmds save_ifs="$IFS"; IFS='~' for cmd in $cmds; do IFS="$save_ifs" + eval cmd=\"$cmd\" $show "$cmd" $run eval "$cmd" ! if test "$?" -ne 0 && test "$rmforce" != yes; then exit_status=1 fi done IFS="$save_ifs" fi # FIXME: should reinstall the best remaining shared library. ! ;; ! esac fi ;; *.lo) ! # Possibly a libtool object, so verify it. ! if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then ! ! # Read the .lo file ! . $dir/$name ! ! # Add PIC object to the list of files to remove. ! if test -n "$pic_object" \ ! && test "$pic_object" != none; then ! rmfiles="$rmfiles $dir/$pic_object" ! fi ! ! # Add non-PIC object to the list of files to remove. ! if test -n "$non_pic_object" \ ! && test "$non_pic_object" != none; then ! rmfiles="$rmfiles $dir/$non_pic_object" ! fi fi ;; *) ! if test "$mode" = clean ; then ! noexename=$name ! case $file in ! *.exe) ! file=`$echo $file|${SED} 's,.exe$,,'` ! noexename=`$echo $name|${SED} 's,.exe$,,'` ! # $file with .exe has already been added to rmfiles, ! # add $file without .exe ! rmfiles="$rmfiles $file" ! ;; ! esac ! # Do a test to see if this is a libtool program. ! if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then ! relink_command= ! . $dir/$noexename ! # note $name still contains .exe if it was in $file originally ! # as does the version of $file that was added into $rmfiles ! rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}" ! if test "$fast_install" = yes && test -n "$relink_command"; then ! rmfiles="$rmfiles $objdir/lt-$name" ! fi ! if test "X$noexename" != "X$name" ; then ! rmfiles="$rmfiles $objdir/lt-${noexename}.c" ! fi fi fi ;; *************** *** 4834,4839 **** --- 6609,6615 ---- $show "$rm $rmfiles" $run $rm $rmfiles || exit_status=1 done + objdir="$origobjdir" # Try to remove the ${objdir}s in the directories where we deleted files for dir in $rmdirs; do *************** *** 4849,4868 **** "") $echo "$modename: you must specify a MODE" 1>&2 $echo "$generic_help" 1>&2 ! exit 1 ;; esac if test -z "$exec_cmd"; then $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$generic_help" 1>&2 ! exit 1 fi fi # test -z "$show_help" if test -n "$exec_cmd"; then eval exec $exec_cmd ! exit 1 fi # We need to display help for each of the modes. --- 6625,6644 ---- "") $echo "$modename: you must specify a MODE" 1>&2 $echo "$generic_help" 1>&2 ! exit $EXIT_FAILURE ;; esac if test -z "$exec_cmd"; then $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$generic_help" 1>&2 ! exit $EXIT_FAILURE fi fi # test -z "$show_help" if test -n "$exec_cmd"; then eval exec $exec_cmd ! exit $EXIT_FAILURE fi # We need to display help for each of the modes. *************** *** 4881,4886 **** --- 6657,6663 ---- --mode=MODE use operation mode MODE [default=inferred from MODE-ARGS] --quiet same as \`--silent' --silent don't print informational messages + --tag=TAG use configuration variables from tag TAG --version print version information MODE must be one of the following: *************** *** 4894,4901 **** uninstall remove libraries from an installed directory MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for ! a more detailed description of MODE." ! exit 0 ;; clean) --- 6671,6680 ---- uninstall remove libraries from an installed directory MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for ! a more detailed description of MODE. ! ! Report bugs to ." ! exit $EXIT_SUCCESS ;; clean) *************** *** 5006,5011 **** --- 6785,6793 ---- -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -objectlist FILE Use a list of object files found in FILE to specify objects + -precious-files-regex REGEX + don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries *************** *** 5047,5060 **** *) $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$help" 1>&2 ! exit 1 ;; esac ! echo $echo "Try \`$modename --help' for more information about other modes." ! exit 0 # Local Variables: # mode:shell-script --- 6829,6861 ---- *) $echo "$modename: invalid operation mode \`$mode'" 1>&2 $echo "$help" 1>&2 ! exit $EXIT_FAILURE ;; esac ! $echo $echo "Try \`$modename --help' for more information about other modes." ! exit $? ! ! # The TAGs below are defined such that we never get into a situation ! # in which we disable both kinds of libraries. Given conflicting ! # choices, we go for a static library, that is the most portable, ! # since we can't tell whether shared libraries were disabled because ! # the user asked for that or because the platform doesn't support ! # them. This is particularly important on AIX, because we don't ! # support having both static and shared libraries enabled at the same ! # time on that platform, so we default to a shared-only configuration. ! # If a disable-shared tag is given, we'll fallback to a static-only ! # configuration. But we'll never go from static-only to shared-only. ! ! # ### BEGIN LIBTOOL TAG CONFIG: disable-shared ! disable_libs=shared ! # ### END LIBTOOL TAG CONFIG: disable-shared ! ! # ### BEGIN LIBTOOL TAG CONFIG: disable-static ! disable_libs=static ! # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/matrix/Makefile.in gsl-1.8/matrix/Makefile.in *** gsl-1.7/matrix/Makefile.in Tue Sep 13 10:04:58 2005 --- gsl-1.8/matrix/Makefile.in Fri Mar 31 17:47:37 2006 *************** *** 71,81 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslmatrix_la_SOURCES) $(test_SOURCES) \ $(test_static_SOURCES) --- 71,81 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslmatrix_la_SOURCES) $(test_SOURCES) \ $(test_static_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/min/Makefile.in gsl-1.8/min/Makefile.in *** gsl-1.7/min/Makefile.in Tue Sep 13 10:04:59 2005 --- gsl-1.8/min/Makefile.in Fri Mar 31 17:47:37 2006 *************** *** 63,73 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslmin_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslmin_la_SOURCES) $(test_SOURCES) --- 63,73 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslmin_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslmin_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/monte/Makefile.in gsl-1.8/monte/Makefile.in *** gsl-1.7/monte/Makefile.in Tue Sep 13 10:05:01 2005 --- gsl-1.8/monte/Makefile.in Fri Mar 31 17:47:38 2006 *************** *** 62,72 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslmonte_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslmonte_la_SOURCES) $(test_SOURCES) --- 62,72 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslmonte_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslmonte_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/monte/TODO gsl-1.8/monte/TODO *** gsl-1.7/monte/TODO Mon Jun 30 17:35:13 2003 --- gsl-1.8/monte/TODO Fri Feb 17 16:10:28 2006 *************** *** 8,14 **** * VEGAS could estimate its roundoff error, caused by dividing up into many boxes and then summing (I know this is ridiculous for any realistic case, but it shows up on the tests when integrating a ! constant!). * VEGAS gives a negative chisq for some cases where there are wildly inconsistent values. Calculation should be improved so that chisq>=0. --- 8,15 ---- * VEGAS could estimate its roundoff error, caused by dividing up into many boxes and then summing (I know this is ridiculous for any realistic case, but it shows up on the tests when integrating a ! constant!). In particular, there are some failures reported for the ! VEGAS constant tests on Windows. * VEGAS gives a negative chisq for some cases where there are wildly inconsistent values. Calculation should be improved so that chisq>=0. diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/multifit/ChangeLog gsl-1.8/multifit/ChangeLog *** gsl-1.7/multifit/ChangeLog Wed Jul 27 15:40:00 2005 --- gsl-1.8/multifit/ChangeLog Thu Mar 30 19:01:28 2006 *************** *** 1,3 **** --- 1,17 ---- + 2006-03-30 Brian Gough + + * fsolver.c (gsl_multifit_fsolver_alloc): minpack algorithms + require n>=p, added check + + * fdfsolver.c (gsl_multifit_fdfsolver_alloc): minpack algorithms + require n>=p, added check + + 2006-02-20 Brian Gough + + * multilinear.c (gsl_multifit_linear_est): added linear estimator + + * test_estimator.c (test_estimator): added test for gsl_multifit_linear_est + 2005-07-03 Brian Gough * multilinear.c (gsl_multifit_linear_svd): accept a user-specified diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/multifit/Makefile.am gsl-1.8/multifit/Makefile.am *** gsl-1.7/multifit/Makefile.am Sat Sep 11 13:45:50 2004 --- gsl-1.8/multifit/Makefile.am Mon Feb 27 20:31:18 2006 *************** *** 6,12 **** libgslmultifit_la_SOURCES = multilinear.c work.c lmder.c fsolver.c fdfsolver.c convergence.c gradient.c covar.c ! noinst_HEADERS = lmutil.c lmpar.c lmset.c lmiterate.c qrsolv.c test_brown.c test_enso.c test_filip.c test_fn.c test_hahn1.c test_kirby2.c test_longley.c test_nelson.c test_pontius.c check_PROGRAMS = test #demo --- 6,12 ---- libgslmultifit_la_SOURCES = multilinear.c work.c lmder.c fsolver.c fdfsolver.c convergence.c gradient.c covar.c ! noinst_HEADERS = lmutil.c lmpar.c lmset.c lmiterate.c qrsolv.c test_brown.c test_enso.c test_filip.c test_fn.c test_hahn1.c test_kirby2.c test_longley.c test_nelson.c test_pontius.c test_estimator.c check_PROGRAMS = test #demo diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/multifit/Makefile.in gsl-1.8/multifit/Makefile.in *** gsl-1.7/multifit/Makefile.in Tue Sep 13 10:05:02 2005 --- gsl-1.8/multifit/Makefile.in Fri Mar 31 17:47:38 2006 *************** *** 67,77 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslmultifit_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslmultifit_la_SOURCES) $(test_SOURCES) --- 67,77 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslmultifit_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslmultifit_la_SOURCES) $(test_SOURCES) *************** *** 198,204 **** pkginclude_HEADERS = gsl_multifit.h gsl_multifit_nlin.h INCLUDES = -I$(top_builddir) libgslmultifit_la_SOURCES = multilinear.c work.c lmder.c fsolver.c fdfsolver.c convergence.c gradient.c covar.c ! noinst_HEADERS = lmutil.c lmpar.c lmset.c lmiterate.c qrsolv.c test_brown.c test_enso.c test_filip.c test_fn.c test_hahn1.c test_kirby2.c test_longley.c test_nelson.c test_pontius.c TESTS = $(check_PROGRAMS) test_SOURCES = test.c test_LDADD = libgslmultifit.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../utils/libutils.la ../sys/libgslsys.la --- 198,204 ---- pkginclude_HEADERS = gsl_multifit.h gsl_multifit_nlin.h INCLUDES = -I$(top_builddir) libgslmultifit_la_SOURCES = multilinear.c work.c lmder.c fsolver.c fdfsolver.c convergence.c gradient.c covar.c ! noinst_HEADERS = lmutil.c lmpar.c lmset.c lmiterate.c qrsolv.c test_brown.c test_enso.c test_filip.c test_fn.c test_hahn1.c test_kirby2.c test_longley.c test_nelson.c test_pontius.c test_estimator.c TESTS = $(check_PROGRAMS) test_SOURCES = test.c test_LDADD = libgslmultifit.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../utils/libutils.la ../sys/libgslsys.la diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/multifit/fdfsolver.c gsl-1.8/multifit/fdfsolver.c *** gsl-1.7/multifit/fdfsolver.c Sun Jun 26 13:25:35 2005 --- gsl-1.8/multifit/fdfsolver.c Thu Mar 30 19:01:28 2006 *************** *** 31,36 **** --- 31,41 ---- gsl_multifit_fdfsolver * s; + if (n < p) + { + GSL_ERROR_VAL ("insufficient data points, n < p", GSL_EINVAL, 0); + } + s = (gsl_multifit_fdfsolver *) malloc (sizeof (gsl_multifit_fdfsolver)); if (s == 0) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/multifit/fsolver.c gsl-1.8/multifit/fsolver.c *** gsl-1.7/multifit/fsolver.c Sun Jun 26 13:25:35 2005 --- gsl-1.8/multifit/fsolver.c Thu Mar 30 19:01:28 2006 *************** *** 31,36 **** --- 31,41 ---- gsl_multifit_fsolver * s; + if (n < p) + { + GSL_ERROR_VAL ("insufficient data points, n < p", GSL_EINVAL, 0); + } + s = (gsl_multifit_fsolver *) malloc (sizeof (gsl_multifit_fsolver)); if (s == 0) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/multifit/gsl_multifit.h gsl-1.8/multifit/gsl_multifit.h *** gsl-1.7/multifit/gsl_multifit.h Wed Jul 27 15:40:00 2005 --- gsl-1.8/multifit/gsl_multifit.h Mon Feb 20 15:24:14 2006 *************** *** 95,100 **** --- 95,106 ---- double *chisq, gsl_multifit_linear_workspace * work); + int + gsl_multifit_linear_est (const gsl_vector * x, + const gsl_vector * c, + const gsl_matrix * cov, double *y, double *y_err); + + __END_DECLS #endif /* __GSL_MULTIFIT_H__ */ diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/multifit/multilinear.c gsl-1.8/multifit/multilinear.c *** gsl-1.7/multifit/multilinear.c Wed Jul 27 15:40:00 2005 --- gsl-1.8/multifit/multilinear.c Mon Feb 20 15:24:14 2006 *************** *** 383,385 **** --- 383,432 ---- } } + + int + gsl_multifit_linear_est (const gsl_vector * x, + const gsl_vector * c, + const gsl_matrix * cov, double *y, double *y_err) + { + + if (x->size != c->size) + { + GSL_ERROR ("number of parameters c does not match number of observations x", + GSL_EBADLEN); + } + else if (cov->size1 != cov->size2) + { + GSL_ERROR ("covariance matrix is not square", GSL_ENOTSQR); + } + else if (c->size != cov->size1) + { + GSL_ERROR ("number of parameters c does not match size of covariance matrix cov", + GSL_EBADLEN); + } + else + { + size_t i, j; + double var = 0; + + gsl_blas_ddot(x, c, y); /* y = x.c */ + + /* var = x' cov x */ + + for (i = 0; i < x->size; i++) + { + const double xi = gsl_vector_get (x, i); + var += xi * xi * gsl_matrix_get (cov, i, i); + + for (j = 0; j < i; j++) + { + const double xj = gsl_vector_get (x, j); + var += 2 * xi * xj * gsl_matrix_get (cov, i, j); + } + } + + *y_err = sqrt (var); + + return GSL_SUCCESS; + } + } diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/multifit/test.c gsl-1.8/multifit/test.c *** gsl-1.7/multifit/test.c Fri Jul 25 15:18:12 2003 --- gsl-1.8/multifit/test.c Mon Feb 20 15:24:14 2006 *************** *** 21,26 **** --- 21,27 ---- #include "test_hahn1.c" #include "test_nelson.c" #include "test_fn.c" + #include "test_estimator.c" void test_lmder (gsl_multifit_function_fdf * f, double x0[], *************** *** 39,44 **** --- 40,46 ---- test_longley(); test_filip(); test_pontius(); + test_estimator(); { gsl_multifit_function_fdf f = make_fdf (&brown_f, &brown_df, &brown_fdf, diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/multifit/test_estimator.c gsl-1.8/multifit/test_estimator.c *** gsl-1.7/multifit/test_estimator.c Thu Jan 1 00:00:00 1970 --- gsl-1.8/multifit/test_estimator.c Mon Feb 27 20:31:18 2006 *************** *** 0 **** --- 1,37 ---- + void + test_estimator () + { + gsl_vector_view c; + gsl_matrix_view cov; + gsl_vector_view x; + double y, y_err; + + double cov_ij[25] = { + 4.271520, -0.526675, 0.957930, 0.267750, -0.103610, + -0.526675, 5.701680, -0.098080, 0.641845, 0.429780, + 0.957930, -0.098080, 4.584790, 0.375865, 1.510810, + 0.267750, 0.641845, 0.375865, 4.422720, 0.392210, + -0.103610, 0.429780, 1.510810, 0.392210, 5.782750 + + }; + + double c_i[5] = { + -0.627020, 0.848674, 0.216877, -0.057883, 0.596668 + }; + + double x_i[5] = { + 0.99932, 0.23858, 0.19797, 1.44008, -0.15335 + }; + + double y_expected = -5.56037032230000e-01; + double yerr_expected = 3.91891123349318e+00; + + cov = gsl_matrix_view_array(cov_ij, 5, 5); + c = gsl_vector_view_array(c_i, 5); + x = gsl_vector_view_array(x_i, 5); + + gsl_multifit_linear_est(&x.vector , &c.vector, &cov.matrix, &y, &y_err); + + gsl_test_rel (y, y_expected, 256*GSL_DBL_EPSILON, "gsl_multifit_linear_est y"); + gsl_test_rel (y_err, yerr_expected, 256*GSL_DBL_EPSILON, "gsl_multifit_linear_est yerr"); + } diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/multimin/ChangeLog gsl-1.8/multimin/ChangeLog *** gsl-1.7/multimin/ChangeLog Thu Jul 24 15:26:00 2003 --- gsl-1.8/multimin/ChangeLog Sun Feb 19 20:18:31 2006 *************** *** 1,3 **** --- 1,8 ---- + 2006-02-18 Brian Gough + + * vector_bfgs.c (vector_bfgs_iterate): avoid division by zero if + dxdg == 0 + 2003-07-24 Brian Gough * simplex.c (nmsimplex_set): changed index variable i from int to diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/multimin/Makefile.in gsl-1.8/multimin/Makefile.in *** gsl-1.7/multimin/Makefile.in Tue Sep 13 10:05:03 2005 --- gsl-1.8/multimin/Makefile.in Fri Mar 31 17:47:38 2006 *************** *** 68,78 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslmultimin_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslmultimin_la_SOURCES) $(test_SOURCES) --- 68,78 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslmultimin_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslmultimin_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/multimin/vector_bfgs.c gsl-1.8/multimin/vector_bfgs.c *** gsl-1.7/multimin/vector_bfgs.c Sun Jun 26 13:25:35 2005 --- gsl-1.8/multimin/vector_bfgs.c Sun Feb 19 20:18:31 2006 *************** *** 304,311 **** dgnorm = gsl_blas_dnrm2 (dg0); ! B = dxg / dxdg; ! A = -(1.0 + dgnorm * dgnorm / dxdg) * B + dgg / dxdg; gsl_vector_memcpy (p, gradient); gsl_blas_daxpy (-A, dx0, p); --- 304,319 ---- dgnorm = gsl_blas_dnrm2 (dg0); ! if (dxdg != 0) ! { ! B = dxg / dxdg; ! A = -(1.0 + dgnorm * dgnorm / dxdg) * B + dgg / dxdg; ! } ! else ! { ! B = 0; ! A = 0; ! } gsl_vector_memcpy (p, gradient); gsl_blas_daxpy (-A, dx0, p); diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/multiroots/Makefile.in gsl-1.8/multiroots/Makefile.in *** gsl-1.7/multiroots/Makefile.in Tue Sep 13 10:05:04 2005 --- gsl-1.8/multiroots/Makefile.in Fri Mar 31 17:47:39 2006 *************** *** 70,80 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslmultiroots_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslmultiroots_la_SOURCES) $(test_SOURCES) --- 70,80 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslmultiroots_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslmultiroots_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/ntuple/Makefile.in gsl-1.8/ntuple/Makefile.in *** gsl-1.7/ntuple/Makefile.in Tue Sep 13 10:05:05 2005 --- gsl-1.8/ntuple/Makefile.in Fri Mar 31 17:47:39 2006 *************** *** 63,73 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslntuple_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslntuple_la_SOURCES) $(test_SOURCES) --- 63,73 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslntuple_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslntuple_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/ode-initval/Makefile.in gsl-1.8/ode-initval/Makefile.in *** gsl-1.7/ode-initval/Makefile.in Tue Sep 13 10:05:06 2005 --- gsl-1.8/ode-initval/Makefile.in Fri Mar 31 17:47:39 2006 *************** *** 68,78 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslodeiv_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslodeiv_la_SOURCES) $(test_SOURCES) --- 68,78 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslodeiv_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslodeiv_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/permutation/Makefile.in gsl-1.8/permutation/Makefile.in *** gsl-1.7/permutation/Makefile.in Tue Sep 13 10:05:08 2005 --- gsl-1.8/permutation/Makefile.in Fri Mar 31 17:47:40 2006 *************** *** 64,74 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslpermutation_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslpermutation_la_SOURCES) $(test_SOURCES) --- 64,74 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslpermutation_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslpermutation_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/poly/Makefile.in gsl-1.8/poly/Makefile.in *** gsl-1.7/poly/Makefile.in Tue Sep 13 10:05:09 2005 --- gsl-1.8/poly/Makefile.in Fri Mar 31 17:47:40 2006 *************** *** 64,74 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslpoly_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslpoly_la_SOURCES) $(test_SOURCES) --- 64,74 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslpoly_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslpoly_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/qrng/Makefile.in gsl-1.8/qrng/Makefile.in *** gsl-1.7/qrng/Makefile.in Tue Sep 13 10:05:10 2005 --- gsl-1.8/qrng/Makefile.in Fri Mar 31 17:47:40 2006 *************** *** 62,72 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslqrng_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslqrng_la_SOURCES) $(test_SOURCES) --- 62,72 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslqrng_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslqrng_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/randist/ChangeLog gsl-1.8/randist/ChangeLog *** gsl-1.7/randist/ChangeLog Tue Sep 13 09:43:47 2005 --- gsl-1.8/randist/ChangeLog Thu Mar 30 19:02:25 2006 *************** *** 1,3 **** --- 1,36 ---- + 2006-03-26 Brian Gough + + * multinomial.c (gsl_ran_multinomial_lnpdf): use gsl_sf_lnfact + instead of gsl_sf_lngamma for an integer argument + + 2006-03-17 Brian Gough + + * binomial_tpe.c (gsl_ran_binomial): cast return values to + unsigned + + 2006-02-27 Brian Gough + + * beta.c (gsl_ran_beta_pdf): work with logs avoid + underflow/overflow + + 2006-02-19 Brian Gough + + * gauss.c (gsl_ran_gaussian): reject case where x=-1 || y=-1 + for true symmetry + (gsl_ran_gaussian_ratio_method): add Leva bounds + + * exppow.c (gsl_ran_exppow): added faster rejection methods + + 2006-02-01 Brian Gough + + * gausszig.c: added ziggurat gaussian (Jochen Voss) + + 2006-01-20 Brian Gough + + * binomial.c (gsl_ran_binomial_pdf): handle the cases p=0 and p=1 + (gsl_ran_binomial_pdf): use log1p to calculate more accurately + near k=0,p=0 + 2005-08-31 Brian Gough * test.c (main): free allocated memory before exit diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/randist/Makefile.am gsl-1.8/randist/Makefile.am *** gsl-1.7/randist/Makefile.am Sat Sep 11 13:45:52 2004 --- gsl-1.8/randist/Makefile.am Wed Feb 1 16:49:44 2006 *************** *** 4,10 **** INCLUDES= -I$(top_builddir) ! libgslrandist_la_SOURCES = bernoulli.c beta.c bigauss.c binomial.c cauchy.c chisq.c dirichlet.c discrete.c erlang.c exponential.c exppow.c fdist.c flat.c gamma.c gauss.c gausstail.c geometric.c gumbel.c hyperg.c laplace.c levy.c logarithmic.c logistic.c lognormal.c multinomial.c nbinomial.c pareto.c pascal.c poisson.c rayleigh.c shuffle.c sphere.c tdist.c weibull.c landau.c binomial_tpe.c TESTS = $(check_PROGRAMS) --- 4,10 ---- INCLUDES= -I$(top_builddir) ! libgslrandist_la_SOURCES = bernoulli.c beta.c bigauss.c binomial.c cauchy.c chisq.c dirichlet.c discrete.c erlang.c exponential.c exppow.c fdist.c flat.c gamma.c gauss.c gausszig.c gausstail.c geometric.c gumbel.c hyperg.c laplace.c levy.c logarithmic.c logistic.c lognormal.c multinomial.c nbinomial.c pareto.c pascal.c poisson.c rayleigh.c shuffle.c sphere.c tdist.c weibull.c landau.c binomial_tpe.c TESTS = $(check_PROGRAMS) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/randist/Makefile.in gsl-1.8/randist/Makefile.in *** gsl-1.7/randist/Makefile.in Tue Sep 13 10:05:11 2005 --- gsl-1.8/randist/Makefile.in Fri Mar 31 17:47:41 2006 *************** *** 53,63 **** am_libgslrandist_la_OBJECTS = bernoulli.lo beta.lo bigauss.lo \ binomial.lo cauchy.lo chisq.lo dirichlet.lo discrete.lo \ erlang.lo exponential.lo exppow.lo fdist.lo flat.lo gamma.lo \ ! gauss.lo gausstail.lo geometric.lo gumbel.lo hyperg.lo \ ! laplace.lo levy.lo logarithmic.lo logistic.lo lognormal.lo \ ! multinomial.lo nbinomial.lo pareto.lo pascal.lo poisson.lo \ ! rayleigh.lo shuffle.lo sphere.lo tdist.lo weibull.lo landau.lo \ ! binomial_tpe.lo libgslrandist_la_OBJECTS = $(am_libgslrandist_la_OBJECTS) am_test_OBJECTS = test.$(OBJEXT) test_OBJECTS = $(am_test_OBJECTS) --- 53,63 ---- am_libgslrandist_la_OBJECTS = bernoulli.lo beta.lo bigauss.lo \ binomial.lo cauchy.lo chisq.lo dirichlet.lo discrete.lo \ erlang.lo exponential.lo exppow.lo fdist.lo flat.lo gamma.lo \ ! gauss.lo gausszig.lo gausstail.lo geometric.lo gumbel.lo \ ! hyperg.lo laplace.lo levy.lo logarithmic.lo logistic.lo \ ! lognormal.lo multinomial.lo nbinomial.lo pareto.lo pascal.lo \ ! poisson.lo rayleigh.lo shuffle.lo sphere.lo tdist.lo \ ! weibull.lo landau.lo binomial_tpe.lo libgslrandist_la_OBJECTS = $(am_libgslrandist_la_OBJECTS) am_test_OBJECTS = test.$(OBJEXT) test_OBJECTS = $(am_test_OBJECTS) *************** *** 70,80 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslrandist_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslrandist_la_SOURCES) $(test_SOURCES) --- 70,80 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslrandist_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslrandist_la_SOURCES) $(test_SOURCES) *************** *** 200,206 **** noinst_LTLIBRARIES = libgslrandist.la pkginclude_HEADERS = gsl_randist.h INCLUDES = -I$(top_builddir) ! libgslrandist_la_SOURCES = bernoulli.c beta.c bigauss.c binomial.c cauchy.c chisq.c dirichlet.c discrete.c erlang.c exponential.c exppow.c fdist.c flat.c gamma.c gauss.c gausstail.c geometric.c gumbel.c hyperg.c laplace.c levy.c logarithmic.c logistic.c lognormal.c multinomial.c nbinomial.c pareto.c pascal.c poisson.c rayleigh.c shuffle.c sphere.c tdist.c weibull.c landau.c binomial_tpe.c TESTS = $(check_PROGRAMS) test_SOURCES = test.c test_LDADD = libgslrandist.la ../rng/libgslrng.la ../specfunc/libgslspecfunc.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la --- 200,206 ---- noinst_LTLIBRARIES = libgslrandist.la pkginclude_HEADERS = gsl_randist.h INCLUDES = -I$(top_builddir) ! libgslrandist_la_SOURCES = bernoulli.c beta.c bigauss.c binomial.c cauchy.c chisq.c dirichlet.c discrete.c erlang.c exponential.c exppow.c fdist.c flat.c gamma.c gauss.c gausszig.c gausstail.c geometric.c gumbel.c hyperg.c laplace.c levy.c logarithmic.c logistic.c lognormal.c multinomial.c nbinomial.c pareto.c pascal.c poisson.c rayleigh.c shuffle.c sphere.c tdist.c weibull.c landau.c binomial_tpe.c TESTS = $(check_PROGRAMS) test_SOURCES = test.c test_LDADD = libgslrandist.la ../rng/libgslrng.la ../specfunc/libgslspecfunc.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/randist/beta.c gsl-1.8/randist/beta.c *** gsl-1.7/randist/beta.c Sun Jun 26 13:25:35 2005 --- gsl-1.8/randist/beta.c Thu Mar 30 19:02:08 2006 *************** *** 19,24 **** --- 19,25 ---- #include #include + #include #include #include #include *************** *** 53,59 **** double ga = gsl_sf_lngamma (a); double gb = gsl_sf_lngamma (b); ! p = exp (gab - ga - gb) * pow (x, a - 1) * pow (1 - x, b - 1); return p; } --- 54,60 ---- double ga = gsl_sf_lngamma (a); double gb = gsl_sf_lngamma (b); ! p = exp (gab - ga - gb + log(x) * (a - 1) + log1p(-x) * (b - 1)); return p; } diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/randist/binomial.c gsl-1.8/randist/binomial.c *** gsl-1.7/randist/binomial.c Mon Aug 22 15:22:53 2005 --- gsl-1.8/randist/binomial.c Fri Jan 20 18:31:03 2006 *************** *** 19,24 **** --- 19,25 ---- #include #include + #include #include #include #include *************** *** 79,87 **** { double P; ! double ln_Cnk = gsl_sf_lnchoose (n, k); ! P = ln_Cnk + k * log (p) + (n - k) * log (1 - p); ! P = exp (P); return P; } --- 80,99 ---- { double P; ! if (p == 0) ! { ! P = (k == 0) ? 1 : 0; ! } ! else if (p == 1) ! { ! P = (k == n) ? 1 : 0; ! } ! else ! { ! double ln_Cnk = gsl_sf_lnchoose (n, k); ! P = ln_Cnk + k * log (p) + (n - k) * log1p (-p); ! P = exp (P); ! } return P; } diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/randist/binomial_tpe.c gsl-1.8/randist/binomial_tpe.c *** gsl-1.7/randist/binomial_tpe.c Mon Aug 22 15:22:53 2005 --- gsl-1.8/randist/binomial_tpe.c Fri Mar 17 15:52:53 2006 *************** *** 377,381 **** Finish: ! return (flipped) ? (n - ix) : ix; } --- 377,381 ---- Finish: ! return (flipped) ? (n - ix) : (unsigned int)ix; } diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/randist/exppow.c gsl-1.8/randist/exppow.c *** gsl-1.7/randist/exppow.c Sun Jun 26 13:25:35 2005 --- gsl-1.8/randist/exppow.c Sun Feb 19 20:18:59 2006 *************** *** 1,6 **** /* randist/exppow.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 James Theiler, Brian Gough * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by --- 1,7 ---- /* randist/exppow.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2006 James Theiler, Brian Gough ! * Copyright (C) 2006 Giulio Bottazzi * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by *************** *** 37,43 **** We use this relation for b < 1. For b >=1 we use rejection methods based on the laplace and gaussian distributions which should be ! faster. See P. R. Tadikamalla, "Random Sampling from the Exponential Power Distribution", Journal of the American Statistical Association, --- 38,44 ---- We use this relation for b < 1. For b >=1 we use rejection methods based on the laplace and gaussian distributions which should be ! faster. For b>4 we revert to the gamma method. See P. R. Tadikamalla, "Random Sampling from the Exponential Power Distribution", Journal of the American Statistical Association, *************** *** 48,132 **** double gsl_ran_exppow (const gsl_rng * r, const double a, const double b) { ! if (b < 1) { ! double u = gsl_rng_uniform (r) ; ! double v = gsl_ran_gamma (r, 1/b, 1.0) ; ! double z = a * pow(v, 1/b) ; ! if (u > 0.5) { ! return z ; ! } ! else { ! return -z ; } } ! else if (b == 1) { /* Laplace distribution */ ! return gsl_ran_laplace (r, a) ; } ! else if (b < 2) { ! /* Use laplace distribution for rejection method */ ! double x, y, h, ratio, u ; ! /* Scale factor chosen by upper bound on ratio at b = 2 */ ! double s = 1.4489 ; ! do { ! x = gsl_ran_laplace (r, a) ; ! y = gsl_ran_laplace_pdf (x,a) ; ! h = gsl_ran_exppow_pdf (x,a,b) ; ! ratio = h/(s * y) ; ! u = gsl_rng_uniform (r) ; ! } ! while (u > ratio) ; ! ! return x ; } else if (b == 2) { /* Gaussian distribution */ ! return gsl_ran_gaussian (r, a/sqrt(2.0)) ; } else { ! /* Use gaussian for rejection method */ ! double x, y, h, ratio, u ; ! const double sigma = a / sqrt(2.0) ; ! /* Scale factor chosen by upper bound on ratio at b = infinity. ! This could be improved by using a rational function ! approximation to the bounding curve. */ ! double s = 2.4091 ; /* this is sqrt(pi) e / 2 */ ! ! do { ! x = gsl_ran_gaussian (r, sigma) ; ! y = gsl_ran_gaussian_pdf (x, sigma) ; ! h = gsl_ran_exppow_pdf (x, a, b) ; ! ratio = h/(s * y) ; ! u = gsl_rng_uniform (r) ; ! } ! while (u > ratio) ; ! return x; } } double gsl_ran_exppow_pdf (const double x, const double a, const double b) { ! double p ; ! double lngamma = gsl_sf_lngamma (1+1/b) ; ! p = (1/(2*a)) * exp(-pow(fabs(x/a),b) - lngamma); return p; } - --- 49,122 ---- double gsl_ran_exppow (const gsl_rng * r, const double a, const double b) { ! if (b < 1 || b > 4) { ! double u = gsl_rng_uniform (r); ! double v = gsl_ran_gamma (r, 1 / b, 1.0); ! double z = a * pow (v, 1 / b); ! if (u > 0.5) { ! return z; ! } ! else { ! return -z; } } ! else if (b == 1) { /* Laplace distribution */ ! return gsl_ran_laplace (r, a); } ! else if (b < 2) { ! /* Use laplace distribution for rejection method, from Tadikamalla */ ! double x, h, u; ! double B = pow (1 / b, 1 / b); ! do { ! x = gsl_ran_laplace (r, B); ! u = gsl_rng_uniform_pos (r); ! h = -pow (fabs (x), b) + fabs (x) / B - 1 + (1 / b); ! } ! while (log (u) > h); ! ! return a * x; } else if (b == 2) { /* Gaussian distribution */ ! return gsl_ran_gaussian (r, a / sqrt (2.0)); } else { ! /* Use gaussian for rejection method, from Tadikamalla */ ! double x, h, u; ! double B = pow (1 / b, 1 / b); ! do { ! x = gsl_ran_gaussian (r, B); ! u = gsl_rng_uniform_pos (r); ! h = -pow (fabs (x), b) + (x * x) / (2 * B * B) + (1 / b) - 0.5; ! } ! while (log (u) > h); ! return a * x; } } double gsl_ran_exppow_pdf (const double x, const double a, const double b) { ! double p; ! double lngamma = gsl_sf_lngamma (1 + 1 / b); ! p = (1 / (2 * a)) * exp (-pow (fabs (x / a), b) - lngamma); return p; } diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/randist/gamma.c gsl-1.8/randist/gamma.c *** gsl-1.7/randist/gamma.c Sun Jun 26 13:25:35 2005 --- gsl-1.8/randist/gamma.c Wed Feb 1 16:49:44 2006 *************** *** 164,166 **** --- 164,214 ---- return p; } } + + + /* New version based on Marsaglia and Tsang, "A Simple Method for + * generating gamma variables", ACM Transactions on Mathematical + * Software, Vol 26, No 3 (2000), p363-372. + * + * Implemented by J.D.Lamb@btinternet.com, minor modifications for GSL + * by Brian Gough + */ + + double + gsl_ran_gamma_mt (const gsl_rng * r, const double a, const double b) + { + /* assume a > 0 */ + + if (a < 1) + { + double u = gsl_rng_uniform_pos (r); + return gsl_ran_gamma_mt (r, 1.0 + a, b) * pow (u, 1.0 / a); + } + + { + double x, v, u; + double d = a - 1.0 / 3.0; + double c = (1.0 / 3.0) / sqrt (d); + + while (1) + { + do + { + x = gsl_ran_gaussian_ziggurat (r, 1.0); + v = 1.0 + c * x; + } + while (v <= 0); + + v = v * v * v; + u = gsl_rng_uniform_pos (r); + + if (u < 1 - 0.0331 * x * x * x * x) + break; + + if (log (u) < 0.5 * x * x + d * (1 - v + log (v))) + break; + } + + return b * d * v; + } + } diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/randist/gauss.c gsl-1.8/randist/gauss.c *** gsl-1.7/randist/gauss.c Sun Jun 26 13:25:35 2005 --- gsl-1.8/randist/gauss.c Sun Feb 19 21:11:39 2006 *************** *** 1,6 **** /* randist/gauss.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000 James Theiler, Brian Gough * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by --- 1,7 ---- /* randist/gauss.c * ! * Copyright (C) 1996, 1997, 1998, 1999, 2000, 2006 James Theiler, Brian Gough ! * Copyright (C) 2006 Charles Karney * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by *************** *** 28,39 **** * deviates. We don't produce two, because then we'd have to save one * in a static variable for the next call, and that would screws up * re-entrant or threaded code, so we only produce one. This makes ! * the Ratio method suddenly more appealing. There are further tests ! * one can make if the log() is slow. See Knuth for details */ ! ! /* Both methods pass the statistical tests; but the polar method ! * seems to be a touch faster on my home Pentium, EVEN though we ! * are only using half of the available random deviates! */ /* Polar (Box-Mueller) method; See Knuth v2, 3rd ed, p122 */ --- 29,45 ---- * deviates. We don't produce two, because then we'd have to save one * in a static variable for the next call, and that would screws up * re-entrant or threaded code, so we only produce one. This makes ! * the Ratio method suddenly more appealing. ! * ! * [Added by Charles Karney] We use Leva's implementation of the Ratio ! * method which avoids calling log() nearly all the time and makes the ! * Ratio method faster than the Polar method (when it produces just one ! * result per call). Timing per call (gcc -O2 on 866MHz Pentium, ! * average over 10^8 calls) ! * ! * Polar method: 660 ns ! * Ratio method: 368 ns ! * */ /* Polar (Box-Mueller) method; See Knuth v2, 3rd ed, p122 */ *************** *** 46,54 **** do { /* choose x,y in uniform square (-1,-1) to (+1,+1) */ ! ! x = -1 + 2 * gsl_rng_uniform (r); ! y = -1 + 2 * gsl_rng_uniform (r); /* see if it is in the unit circle */ r2 = x * x + y * y; --- 52,59 ---- do { /* choose x,y in uniform square (-1,-1) to (+1,+1) */ ! x = -1 + 2 * gsl_rng_uniform_pos (r); ! y = -1 + 2 * gsl_rng_uniform_pos (r); /* see if it is in the unit circle */ r2 = x * x + y * y; *************** *** 59,86 **** return sigma * y * sqrt (-2.0 * log (r2) / r2); } ! /* Ratio method (Kinderman-Monahan); see Knuth v2, 3rd ed, p130 */ ! /* K+M, ACM Trans Math Software 3 (1977) 257-260. */ double gsl_ran_gaussian_ratio_method (const gsl_rng * r, const double sigma) { ! double u, v, x; ! do { ! v = gsl_rng_uniform (r); ! do ! { ! u = gsl_rng_uniform (r); ! } ! while (u == 0); ! /* Const 1.715... = sqrt(8/e) */ ! x = 1.71552776992141359295 * (v - 0.5) / u; } ! while (x * x > -4.0 * log (u)); ! return sigma * x; } double --- 64,118 ---- return sigma * y * sqrt (-2.0 * log (r2) / r2); } ! /* Ratio method (Kinderman-Monahan); see Knuth v2, 3rd ed, p130. ! * K+M, ACM Trans Math Software 3 (1977) 257-260. ! * ! * [Added by Charles Karney] This is an implementation of Leva's ! * modifications to the original K+M method; see: ! * J. L. Leva, ACM Trans Math Software 18 (1992) 449-453 and 454-455. */ double gsl_ran_gaussian_ratio_method (const gsl_rng * r, const double sigma) { ! double u, v, x, y, Q; ! const double s = 0.449871; /* Constants from Leva */ ! const double t = -0.386595; ! const double a = 0.19600; ! const double b = 0.25472; ! const double r1 = 0.27597; ! const double r2 = 0.27846; ! do /* This loop is executed 1.369 times on average */ { ! /* Generate a point P = (u, v) uniform in a rectangle enclosing ! the K+M region v^2 <= - 4 u^2 log(u). */ ! ! /* u in (0, 1] to avoid singularity at u = 0 */ ! u = 1 - gsl_rng_uniform (r); ! ! /* v is in the asymmetric interval [-0.5, 0.5). However v = -0.5 ! is rejected in the last part of the while clause. The ! resulting normal deviate is strictly symmetric about 0 ! (provided that v is symmetric once v = -0.5 is excluded). */ ! v = gsl_rng_uniform (r) - 0.5; ! ! /* Constant 1.7156 > sqrt(8/e) (for accuracy); but not by too ! much (for efficiency). */ ! v *= 1.7156; ! ! /* Compute Leva's quadratic form Q */ ! x = u - s; ! y = fabs (v) - t; ! Q = x * x + y * (a * y - b * x); ! ! /* Accept P if Q < r1 (Leva) */ ! /* Reject P if Q > r2 (Leva) */ ! /* Accept if v^2 <= -4 u^2 log(u) (K+M) */ ! /* This final test is executed 0.012 times on average. */ } ! while (Q >= r1 && (Q > r2 || v * v > -4 * u * u * log (u))); ! return sigma * (v / u); /* Return slope */ } double *************** *** 108,110 **** --- 140,143 ---- { return gsl_ran_gaussian_pdf (x, 1.0); } + diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/randist/gausszig.c gsl-1.8/randist/gausszig.c *** gsl-1.7/randist/gausszig.c Thu Jan 1 00:00:00 1970 --- gsl-1.8/randist/gausszig.c Sun Feb 19 20:19:24 2006 *************** *** 0 **** --- 1,207 ---- + /* gauss.c - gaussian random numbers, using the Ziggurat method + * + * Copyright (C) 2005 Jochen Voss. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + + /* + * This routine is based on the following article, with a couple of + * modifications which simplify the implementation. + * + * George Marsaglia, Wai Wan Tsang + * The Ziggurat Method for Generating Random Variables + * Journal of Statistical Software, vol. 5 (2000), no. 8 + * http://www.jstatsoft.org/v05/i08/ + * + * The modifications are: + * + * 1) use 128 steps instead of 256 to decrease the amount of static + * data necessary. + * + * 2) use an acceptance sampling from an exponential wedge + * exp(-R*(x-R/2)) for the tail of the base strip to simplify the + * implementation. The area of exponential wedge is used in + * calculating 'v' and the coefficients in ziggurat table, so the + * coefficients differ slightly from those in the Marsaglia and Tsang + * paper. + * + * See also Leong et al, "A Comment on the Implementation of the + * Ziggurat Method", Journal of Statistical Software, vol 5 (2005), no 7. + * + */ + + + #include + #include + #include + #include + #include + + /* position of right-most step */ + #define PARAM_R 3.44428647676 + + /* tabulated values for the heigt of the Ziggurat levels */ + static const double ytab[128] = { + 1, 0.963598623011, 0.936280813353, 0.913041104253, + 0.892278506696, 0.873239356919, 0.855496407634, 0.838778928349, + 0.822902083699, 0.807732738234, 0.793171045519, 0.779139726505, + 0.765577436082, 0.752434456248, 0.739669787677, 0.727249120285, + 0.715143377413, 0.703327646455, 0.691780377035, 0.68048276891, + 0.669418297233, 0.65857233912, 0.647931876189, 0.637485254896, + 0.62722199145, 0.617132611532, 0.607208517467, 0.597441877296, + 0.587825531465, 0.578352913803, 0.569017984198, 0.559815170911, + 0.550739320877, 0.541785656682, 0.532949739145, 0.524227434628, + 0.515614886373, 0.507108489253, 0.498704867478, 0.490400854812, + 0.482193476986, 0.47407993601, 0.466057596125, 0.458123971214, + 0.450276713467, 0.442513603171, 0.434832539473, 0.427231532022, + 0.419708693379, 0.41226223212, 0.404890446548, 0.397591718955, + 0.390364510382, 0.383207355816, 0.376118859788, 0.369097692334, + 0.362142585282, 0.355252328834, 0.348425768415, 0.341661801776, + 0.334959376311, 0.328317486588, 0.321735172063, 0.31521151497, + 0.308745638367, 0.302336704338, 0.29598391232, 0.289686497571, + 0.283443729739, 0.27725491156, 0.271119377649, 0.265036493387, + 0.259005653912, 0.253026283183, 0.247097833139, 0.241219782932, + 0.235391638239, 0.229612930649, 0.223883217122, 0.218202079518, + 0.212569124201, 0.206983981709, 0.201446306496, 0.195955776745, + 0.190512094256, 0.185114984406, 0.179764196185, 0.174459502324, + 0.169200699492, 0.1639876086, 0.158820075195, 0.153697969964, + 0.148621189348, 0.143589656295, 0.138603321143, 0.133662162669, + 0.128766189309, 0.123915440582, 0.119109988745, 0.114349940703, + 0.10963544023, 0.104966670533, 0.100343857232, 0.0957672718266, + 0.0912372357329, 0.0867541250127, 0.082318375932, 0.0779304915295, + 0.0735910494266, 0.0693007111742, 0.065060233529, 0.0608704821745, + 0.056732448584, 0.05264727098, 0.0486162607163, 0.0446409359769, + 0.0407230655415, 0.0368647267386, 0.0330683839378, 0.0293369977411, + 0.0256741818288, 0.0220844372634, 0.0185735200577, 0.0151490552854, + 0.0118216532614, 0.00860719483079, 0.00553245272614, 0.00265435214565 + }; + + /* tabulated values for 2^24 times x[i]/x[i+1], + * used to accept for U*x[i+1]<=x[i] without any floating point operations */ + static const unsigned long ktab[128] = { + 0, 12590644, 14272653, 14988939, + 15384584, 15635009, 15807561, 15933577, + 16029594, 16105155, 16166147, 16216399, + 16258508, 16294295, 16325078, 16351831, + 16375291, 16396026, 16414479, 16431002, + 16445880, 16459343, 16471578, 16482744, + 16492970, 16502368, 16511031, 16519039, + 16526459, 16533352, 16539769, 16545755, + 16551348, 16556584, 16561493, 16566101, + 16570433, 16574511, 16578353, 16581977, + 16585398, 16588629, 16591685, 16594575, + 16597311, 16599901, 16602354, 16604679, + 16606881, 16608968, 16610945, 16612818, + 16614592, 16616272, 16617861, 16619363, + 16620782, 16622121, 16623383, 16624570, + 16625685, 16626730, 16627708, 16628619, + 16629465, 16630248, 16630969, 16631628, + 16632228, 16632768, 16633248, 16633671, + 16634034, 16634340, 16634586, 16634774, + 16634903, 16634972, 16634980, 16634926, + 16634810, 16634628, 16634381, 16634066, + 16633680, 16633222, 16632688, 16632075, + 16631380, 16630598, 16629726, 16628757, + 16627686, 16626507, 16625212, 16623794, + 16622243, 16620548, 16618698, 16616679, + 16614476, 16612071, 16609444, 16606571, + 16603425, 16599973, 16596178, 16591995, + 16587369, 16582237, 16576520, 16570120, + 16562917, 16554758, 16545450, 16534739, + 16522287, 16507638, 16490152, 16468907, + 16442518, 16408804, 16364095, 16301683, + 16207738, 16047994, 15704248, 15472926 + }; + + /* tabulated values of 2^{-24}*x[i] */ + static const double wtab[128] = { + 1.62318314817e-08, 2.16291505214e-08, 2.54246305087e-08, 2.84579525938e-08, + 3.10340022482e-08, 3.33011726243e-08, 3.53439060345e-08, 3.72152672658e-08, + 3.8950989572e-08, 4.05763964764e-08, 4.21101548915e-08, 4.35664624904e-08, + 4.49563968336e-08, 4.62887864029e-08, 4.75707945735e-08, 4.88083237257e-08, + 5.00063025384e-08, 5.11688950428e-08, 5.22996558616e-08, 5.34016475624e-08, + 5.44775307871e-08, 5.55296344581e-08, 5.65600111659e-08, 5.75704813695e-08, + 5.85626690412e-08, 5.95380306862e-08, 6.04978791776e-08, 6.14434034901e-08, + 6.23756851626e-08, 6.32957121259e-08, 6.42043903937e-08, 6.51025540077e-08, + 6.59909735447e-08, 6.68703634341e-08, 6.77413882848e-08, 6.8604668381e-08, + 6.94607844804e-08, 7.03102820203e-08, 7.11536748229e-08, 7.1991448372e-08, + 7.2824062723e-08, 7.36519550992e-08, 7.44755422158e-08, 7.52952223703e-08, + 7.61113773308e-08, 7.69243740467e-08, 7.77345662086e-08, 7.85422956743e-08, + 7.93478937793e-08, 8.01516825471e-08, 8.09539758128e-08, 8.17550802699e-08, + 8.25552964535e-08, 8.33549196661e-08, 8.41542408569e-08, 8.49535474601e-08, + 8.57531242006e-08, 8.65532538723e-08, 8.73542180955e-08, 8.8156298059e-08, + 8.89597752521e-08, 8.97649321908e-08, 9.05720531451e-08, 9.138142487e-08, + 9.21933373471e-08, 9.30080845407e-08, 9.38259651738e-08, 9.46472835298e-08, + 9.54723502847e-08, 9.63014833769e-08, 9.71350089201e-08, 9.79732621669e-08, + 9.88165885297e-08, 9.96653446693e-08, 1.00519899658e-07, 1.0138063623e-07, + 1.02247952126e-07, 1.03122261554e-07, 1.04003996769e-07, 1.04893609795e-07, + 1.05791574313e-07, 1.06698387725e-07, 1.07614573423e-07, 1.08540683296e-07, + 1.09477300508e-07, 1.1042504257e-07, 1.11384564771e-07, 1.12356564007e-07, + 1.13341783071e-07, 1.14341015475e-07, 1.15355110887e-07, 1.16384981291e-07, + 1.17431607977e-07, 1.18496049514e-07, 1.19579450872e-07, 1.20683053909e-07, + 1.21808209468e-07, 1.2295639141e-07, 1.24129212952e-07, 1.25328445797e-07, + 1.26556042658e-07, 1.27814163916e-07, 1.29105209375e-07, 1.30431856341e-07, + 1.31797105598e-07, 1.3320433736e-07, 1.34657379914e-07, 1.36160594606e-07, + 1.37718982103e-07, 1.39338316679e-07, 1.41025317971e-07, 1.42787873535e-07, + 1.44635331499e-07, 1.4657889173e-07, 1.48632138436e-07, 1.50811780719e-07, + 1.53138707402e-07, 1.55639532047e-07, 1.58348931426e-07, 1.61313325908e-07, + 1.64596952856e-07, 1.68292495203e-07, 1.72541128694e-07, 1.77574279496e-07, + 1.83813550477e-07, 1.92166040885e-07, 2.05295471952e-07, 2.22600839893e-07 + }; + + + double + gsl_ran_gaussian_ziggurat (const gsl_rng * r, double sigma) + { + unsigned long int i, j; + int sign; + double x, y; + + while (1) + { + i = gsl_rng_uniform_int (r, 256); /* choose the step */ + j = gsl_rng_uniform_int (r, 16777216); /* sample from 2^24 */ + sign = (i & 0x80) ? +1 : -1; + i &= 0x7f; + + x = j * wtab[i]; + + if (j < ktab[i]) + break; + + if (i < 127) + { + double y0, y1, U1; + y0 = ytab[i]; + y1 = ytab[i + 1]; + U1 = gsl_rng_uniform (r); + y = y1 + (y0 - y1) * U1; + } + else + { + double U1, U2; + U1 = 1.0 - gsl_rng_uniform (r); + U2 = gsl_rng_uniform (r); + x = PARAM_R - log (U1) / PARAM_R; + y = exp (-PARAM_R * (x - 0.5 * PARAM_R)) * U2; + } + + if (y < exp (-0.5 * x * x)) + break; + } + + return sign * sigma * x; + } diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/randist/gsl_randist.h gsl-1.8/randist/gsl_randist.h *** gsl-1.7/randist/gsl_randist.h Mon Aug 22 15:22:53 2005 --- gsl-1.8/randist/gsl_randist.h Wed Feb 1 16:49:44 2006 *************** *** 72,80 **** --- 72,82 ---- double gsl_ran_gamma (const gsl_rng * r, const double a, const double b); double gsl_ran_gamma_int (const gsl_rng * r, const unsigned int a); double gsl_ran_gamma_pdf (const double x, const double a, const double b); + double gsl_ran_gamma_mt (const gsl_rng * r, const double a, const double b); double gsl_ran_gaussian (const gsl_rng * r, const double sigma); double gsl_ran_gaussian_ratio_method (const gsl_rng * r, const double sigma); + double gsl_ran_gaussian_ziggurat (const gsl_rng * r, const double sigma); double gsl_ran_gaussian_pdf (const double x, const double sigma); double gsl_ran_ugaussian (const gsl_rng * r); diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/randist/multinomial.c gsl-1.8/randist/multinomial.c *** gsl-1.7/randist/multinomial.c Sun Jun 26 13:25:35 2005 --- gsl-1.8/randist/multinomial.c Thu Mar 30 19:02:25 2006 *************** *** 105,116 **** norm += p[k]; } ! /* Note: n! == gamma(n+1) */ ! log_pdf = gsl_sf_lngamma (N + 1); for (k = 0; k < K; k++) { ! log_pdf -= gsl_sf_lngamma (n[k] + 1); } for (k = 0; k < K; k++) --- 105,115 ---- norm += p[k]; } ! log_pdf = gsl_sf_lnfact (N); for (k = 0; k < K; k++) { ! log_pdf -= gsl_sf_lnfact (n[k]); } for (k = 0; k < K; k++) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/randist/test.c gsl-1.8/randist/test.c *** gsl-1.7/randist/test.c Tue Sep 13 09:43:47 2005 --- gsl-1.8/randist/test.c Sun Feb 19 20:18:59 2006 *************** *** 52,57 **** --- 52,63 ---- double test_binomial_large_pdf (unsigned int n); double test_binomial_huge (void); double test_binomial_huge_pdf (unsigned int n); + double test_binomial0 (void); + double test_binomial0_pdf (unsigned int n); + double test_binomial1 (void); + double test_binomial1_pdf (unsigned int n); + + double test_binomial_knuth (void); double test_binomial_knuth_pdf (unsigned int n); *************** *** 87,92 **** --- 93,100 ---- double test_exppow2_pdf (double x); double test_exppow2a (void); double test_exppow2a_pdf (double x); + double test_exppow2b (void); + double test_exppow2b_pdf (double x); double test_fdist (void); double test_fdist_pdf (double x); double test_flat (void); *************** *** 99,108 **** --- 107,130 ---- double test_gamma_int_pdf (double x); double test_gamma_large (void); double test_gamma_large_pdf (double x); + double test_gamma_small (void); + double test_gamma_small_pdf (double x); + double test_gamma_mt (void); + double test_gamma_mt_pdf (double x); + double test_gamma_mt1 (void); + double test_gamma_mt1_pdf (double x); + double test_gamma_mt_int (void); + double test_gamma_mt_int_pdf (double x); + double test_gamma_mt_large (void); + double test_gamma_mt_large_pdf (double x); + double test_gamma_mt_small (void); + double test_gamma_mt_small_pdf (double x); double test_gaussian (void); double test_gaussian_pdf (double x); double test_gaussian_ratio_method (void); double test_gaussian_ratio_method_pdf (double x); + double test_gaussian_ziggurat (void); + double test_gaussian_ziggurat_pdf (double x); double test_gaussian_tail (void); double test_gaussian_tail_pdf (double x); double test_gaussian_tail1 (void); *************** *** 264,269 **** --- 286,292 ---- testPDF (FUNC2 (exppow1a)); testPDF (FUNC2 (exppow2)); testPDF (FUNC2 (exppow2a)); + testPDF (FUNC2 (exppow2b)); testPDF (FUNC2 (fdist)); testPDF (FUNC2 (flat)); *************** *** 271,278 **** --- 294,308 ---- testPDF (FUNC2 (gamma1)); testPDF (FUNC2 (gamma_int)); testPDF (FUNC2 (gamma_large)); + testPDF (FUNC2 (gamma_small)); + testPDF (FUNC2 (gamma_mt)); + testPDF (FUNC2 (gamma_mt1)); + testPDF (FUNC2 (gamma_mt_int)); + testPDF (FUNC2 (gamma_mt_large)); + testPDF (FUNC2 (gamma_mt_small)); testPDF (FUNC2 (gaussian)); testPDF (FUNC2 (gaussian_ratio_method)); + testPDF (FUNC2 (gaussian_ziggurat)); testPDF (FUNC2 (ugaussian)); testPDF (FUNC2 (ugaussian_ratio_method)); testPDF (FUNC2 (gaussian_tail)); *************** *** 322,327 **** --- 352,359 ---- testDiscretePDF (FUNC2 (poisson_large)); testDiscretePDF (FUNC2 (bernoulli)); testDiscretePDF (FUNC2 (binomial)); + testDiscretePDF (FUNC2 (binomial0)); + testDiscretePDF (FUNC2 (binomial1)); testDiscretePDF (FUNC2 (binomial_knuth)); testDiscretePDF (FUNC2 (binomial_large)); testDiscretePDF (FUNC2 (binomial_large_knuth)); *************** *** 613,618 **** --- 645,674 ---- } double + test_binomial0 (void) + { + return gsl_ran_binomial (r_global, 0, 8); + } + + double + test_binomial0_pdf (unsigned int n) + { + return gsl_ran_binomial_pdf (n, 0, 8); + } + + double + test_binomial1 (void) + { + return gsl_ran_binomial (r_global, 1, 8); + } + + double + test_binomial1_pdf (unsigned int n) + { + return gsl_ran_binomial_pdf (n, 1, 8); + } + + double test_binomial_knuth (void) { return gsl_ran_binomial_knuth (r_global, 0.3, 5); *************** *** 1059,1070 **** double test_exppow2a (void) { ! return gsl_ran_exppow (r_global, 3.7, 7.5); } double test_exppow2a_pdf (double x) { return gsl_ran_exppow_pdf (x, 3.7, 7.5); } --- 1115,1138 ---- double test_exppow2a (void) { ! return gsl_ran_exppow (r_global, 3.7, 3.5); } double test_exppow2a_pdf (double x) { + return gsl_ran_exppow_pdf (x, 3.7, 3.5); + } + + double + test_exppow2b (void) + { + return gsl_ran_exppow (r_global, 3.7, 7.5); + } + + double + test_exppow2b_pdf (double x) + { return gsl_ran_exppow_pdf (x, 3.7, 7.5); } *************** *** 1142,1147 **** --- 1210,1291 ---- return gsl_ran_gamma_pdf (x, 20.0, 2.17); } + double + test_gamma_small (void) + { + return gsl_ran_gamma (r_global, 0.92, 2.17); + } + + double + test_gamma_small_pdf (double x) + { + return gsl_ran_gamma_pdf (x, 0.92, 2.17); + } + + + double + test_gamma_mt (void) + { + return gsl_ran_gamma_mt (r_global, 2.5, 2.17); + } + + double + test_gamma_mt_pdf (double x) + { + return gsl_ran_gamma_pdf (x, 2.5, 2.17); + } + + double + test_gamma_mt1 (void) + { + return gsl_ran_gamma_mt (r_global, 1.0, 2.17); + } + + double + test_gamma_mt1_pdf (double x) + { + return gsl_ran_gamma_pdf (x, 1.0, 2.17); + } + + + double + test_gamma_mt_int (void) + { + return gsl_ran_gamma_mt (r_global, 10.0, 2.17); + } + + double + test_gamma_mt_int_pdf (double x) + { + return gsl_ran_gamma_pdf (x, 10.0, 2.17); + } + + + double + test_gamma_mt_large (void) + { + return gsl_ran_gamma_mt (r_global, 20.0, 2.17); + } + + double + test_gamma_mt_large_pdf (double x) + { + return gsl_ran_gamma_pdf (x, 20.0, 2.17); + } + + + double + test_gamma_mt_small (void) + { + return gsl_ran_gamma_mt (r_global, 0.92, 2.17); + } + + double + test_gamma_mt_small_pdf (double x) + { + return gsl_ran_gamma_pdf (x, 0.92, 2.17); + } + double test_gaussian (void) *************** *** 1168,1173 **** --- 1312,1329 ---- } double + test_gaussian_ziggurat (void) + { + return gsl_ran_gaussian_ziggurat (r_global, 3.12); + } + + double + test_gaussian_ziggurat_pdf (double x) + { + return gsl_ran_gaussian_pdf (x, 3.12); + } + + double test_gaussian_tail (void) { return gsl_ran_gaussian_tail (r_global, 1.7, 0.25); diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/rng/ChangeLog gsl-1.8/rng/ChangeLog *** gsl-1.7/rng/ChangeLog Wed Jul 23 15:10:52 2003 --- gsl-1.8/rng/ChangeLog Thu Mar 16 18:01:24 2006 *************** *** 1,3 **** --- 1,16 ---- + 2006-03-16 Brian Gough + + * test.c (main): added taus2 test + + 2006-02-19 Brian Gough + + * rng.c: added note about why range=max-min not max-min+1 + + 2005-12-16 Brian Gough + + * rng.c (gsl_rng_uniform_int): catch the case n = 0 and return an + error + 2003-07-23 Brian Gough * file.c: added fwrite/fread functions diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/rng/Makefile.in gsl-1.8/rng/Makefile.in *** gsl-1.7/rng/Makefile.in Tue Sep 13 10:05:12 2005 --- gsl-1.8/rng/Makefile.in Fri Mar 31 17:47:41 2006 *************** *** 68,78 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslrng_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslrng_la_SOURCES) $(test_SOURCES) --- 68,78 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslrng_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslrng_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/rng/coveyou.c gsl-1.8/rng/coveyou.c *** gsl-1.7/rng/coveyou.c Sun Jun 26 13:25:35 2005 --- gsl-1.8/rng/coveyou.c Fri Jan 20 15:29:53 2006 *************** *** 34,40 **** #include #include ! #define MM 0xffffffffUL /* 2 ^ 32 */ static inline unsigned long int ran_get (void *vstate); static double ran_get_double (void *vstate); --- 34,40 ---- #include #include ! #define MM 0xffffffffUL /* 2 ^ 32 - 1 */ static inline unsigned long int ran_get (void *vstate); static double ran_get_double (void *vstate); diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/rng/gsl_rng.h gsl-1.8/rng/gsl_rng.h *** gsl-1.7/rng/gsl_rng.h Sun Jun 26 13:25:35 2005 --- gsl-1.8/rng/gsl_rng.h Sat Dec 17 16:48:56 2005 *************** *** 191,205 **** { unsigned long int offset = r->type->min; unsigned long int range = r->type->max - offset; ! unsigned long int scale = range / n; unsigned long int k; ! if (n > range) { ! GSL_ERROR_VAL ("n exceeds maximum value of generator", ! GSL_EINVAL, 0) ; } do { k = (((r->type->get) (r->state)) - offset) / scale; --- 191,207 ---- { unsigned long int offset = r->type->min; unsigned long int range = r->type->max - offset; ! unsigned long int scale; unsigned long int k; ! if (n > range || n == 0) { ! GSL_ERROR_VAL ("invalid n, either 0 or exceeds maximum value of generator", ! GSL_EINVAL, 0) ; } + scale = range / n; + do { k = (((r->type->get) (r->state)) - offset) / scale; diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/rng/rng.c gsl-1.8/rng/rng.c *** gsl-1.7/rng/rng.c Sun Jun 26 13:25:35 2005 --- gsl-1.8/rng/rng.c Sun Feb 19 21:12:03 2006 *************** *** 126,145 **** return x ; } unsigned long int gsl_rng_uniform_int (const gsl_rng * r, unsigned long int n) { unsigned long int offset = r->type->min; unsigned long int range = r->type->max - offset; ! unsigned long int scale = range / n; unsigned long int k; ! if (n > range) { ! GSL_ERROR_VAL ("n exceeds maximum value of generator", ! GSL_EINVAL, 0) ; } do { k = (((r->type->get) (r->state)) - offset) / scale; --- 126,153 ---- return x ; } + /* Note: to avoid integer overflow in (range+1) we work with scale = + range/n = (max-min)/n rather than scale=(max-min+1)/n, this reduces + efficiency slightly but avoids having to check for the out of range + value. Note that range is typically O(2^32) so the addition of 1 + is negligible in most usage. */ + unsigned long int gsl_rng_uniform_int (const gsl_rng * r, unsigned long int n) { unsigned long int offset = r->type->min; unsigned long int range = r->type->max - offset; ! unsigned long int scale; unsigned long int k; ! if (n > range || n == 0) { ! GSL_ERROR_VAL ("invalid n, either 0 or exceeds maximum value of generator", ! GSL_EINVAL, 0) ; } + scale = range / n; + do { k = (((r->type->get) (r->state)) - offset) / scale; diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/rng/test.c gsl-1.8/rng/test.c *** gsl-1.7/rng/test.c Sun Jun 26 13:25:35 2005 --- gsl-1.8/rng/test.c Thu Mar 16 18:01:24 2006 *************** *** 59,64 **** --- 59,65 ---- rng_test (gsl_rng_minstd, 1, 10000, 1043618065); rng_test (gsl_rng_mrg, 1, 10000, 2064828650); rng_test (gsl_rng_taus, 1, 10000, 2733957125UL); + rng_test (gsl_rng_taus2, 1, 10000, 2733957125UL); rng_test (gsl_rng_taus113, 1, 1000, 1925420673UL); rng_test (gsl_rng_transputer, 1, 10000, 1244127297UL); rng_test (gsl_rng_vax, 1, 10000, 3051034865UL); diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/roots/Makefile.in gsl-1.8/roots/Makefile.in *** gsl-1.7/roots/Makefile.in Tue Sep 13 10:05:13 2005 --- gsl-1.8/roots/Makefile.in Fri Mar 31 17:47:42 2006 *************** *** 66,76 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslroots_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslroots_la_SOURCES) $(test_SOURCES) --- 66,76 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslroots_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslroots_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/siman/ChangeLog gsl-1.8/siman/ChangeLog *** gsl-1.7/siman/ChangeLog Mon Mar 31 18:22:36 2003 --- gsl-1.8/siman/ChangeLog Thu Mar 9 15:52:05 2006 *************** *** 1,3 **** --- 1,13 ---- + 2006-03-08 Brian Gough + + * test.c (square): removed inline since it causes problems with + some compilers + + 2005-11-14 Brian Gough + + * siman.c (safe_exp): added a safe_exp function to avoid underflow + for large uphill steps + 2003-03-31 Brian Gough * siman.c (gsl_siman_solve): avoid reevaluation for best_E diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/siman/Makefile.in gsl-1.8/siman/Makefile.in *** gsl-1.7/siman/Makefile.in Tue Sep 13 10:05:15 2005 --- gsl-1.8/siman/Makefile.in Fri Mar 31 17:47:42 2006 *************** *** 70,80 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslsiman_la_SOURCES) $(siman_tsp_SOURCES) \ $(test_SOURCES) --- 70,80 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslsiman_la_SOURCES) $(siman_tsp_SOURCES) \ $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/siman/siman.c gsl-1.8/siman/siman.c *** gsl-1.7/siman/siman.c Sun Jun 26 13:25:35 2005 --- gsl-1.8/siman/siman.c Tue Nov 15 16:22:47 2005 *************** *** 24,32 **** --- 24,39 ---- #include #include + #include #include #include + static inline + double safe_exp (double x) /* avoid underflow errors for large uphill steps */ + { + return (x < GSL_LOG_DBL_MIN) ? 0.0 : exp(x); + } + /* implementation of a basic simulated annealing algorithm */ void *************** *** 112,118 **** } E = new_E; ++n_eless; ! } else if (gsl_rng_uniform(r) < exp (-(new_E - E)/(params.k * T)) ) { /* yay! take a step */ if (copyfunc) { copyfunc(new_x, x); --- 119,125 ---- } E = new_E; ++n_eless; ! } else if (gsl_rng_uniform(r) < safe_exp (-(new_E - E)/(params.k * T)) ) { /* yay! take a step */ if (copyfunc) { copyfunc(new_x, x); *************** *** 210,221 **** memcpy ((char *)new_x + i * element_size, x, element_size); take_step (r, (char *)new_x + i * element_size, params.step_size); energies[i] = Ef ((char *)new_x + i * element_size); ! probs[i] = exp (-(energies[i] - Ex) / (params.k * T)); } /* now add in the old value of "x", so it is a contendor */ memcpy ((char *)new_x + (params.n_tries - 1) * element_size, x, element_size); energies[params.n_tries - 1] = Ex; ! probs[params.n_tries - 1] = exp (-(energies[i] - Ex) / (params.k * T)); /* now throw biased die to see which new_x[i] we choose */ sum_probs[0] = probs[0]; --- 217,228 ---- memcpy ((char *)new_x + i * element_size, x, element_size); take_step (r, (char *)new_x + i * element_size, params.step_size); energies[i] = Ef ((char *)new_x + i * element_size); ! probs[i] = safe_exp (-(energies[i] - Ex) / (params.k * T)); } /* now add in the old value of "x", so it is a contendor */ memcpy ((char *)new_x + (params.n_tries - 1) * element_size, x, element_size); energies[params.n_tries - 1] = Ex; ! probs[params.n_tries - 1] = safe_exp (-(energies[i] - Ex) / (params.k * T)); /* now throw biased die to see which new_x[i] we choose */ sum_probs[0] = probs[0]; diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/siman/test.c gsl-1.8/siman/test.c *** gsl-1.7/siman/test.c Sun Jun 26 13:25:35 2005 --- gsl-1.8/siman/test.c Thu Mar 9 15:52:05 2006 *************** *** 39,46 **** gsl_siman_params_t params = {N_TRIES, ITERS_FIXED_T, STEP_SIZE, K, T_INITIAL, MU_T, T_MIN}; ! inline double square (double x) ; ! inline double square (double x) { return x * x ; } double E1(void *xp); double M1(void *xp, void *yp); --- 39,46 ---- gsl_siman_params_t params = {N_TRIES, ITERS_FIXED_T, STEP_SIZE, K, T_INITIAL, MU_T, T_MIN}; ! double square (double x) ; ! double square (double x) { return x * x ; } double E1(void *xp); double M1(void *xp, void *yp); diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/sort/Makefile.in gsl-1.8/sort/Makefile.in *** gsl-1.7/sort/Makefile.in Tue Sep 13 10:05:16 2005 --- gsl-1.8/sort/Makefile.in Fri Mar 31 17:47:42 2006 *************** *** 64,74 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslsort_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslsort_la_SOURCES) $(test_SOURCES) --- 64,74 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslsort_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslsort_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/specfunc/ChangeLog gsl-1.8/specfunc/ChangeLog *** gsl-1.7/specfunc/ChangeLog Mon Aug 22 15:22:22 2005 --- gsl-1.8/specfunc/ChangeLog Thu Mar 30 19:01:51 2006 *************** *** 1,3 **** --- 1,40 ---- + 2006-03-26 Brian Gough + + * fermi_dirac.c (fd_neg): initialize s to zero (avoid spurious + warning from compiler) + + 2006-02-23 Brian Gough + + * coulomb.c (gsl_sf_coulomb_wave_FG_e): fixed sign of F_lam_min, + covers case when k_lam_G is nonzero and F_lam_min and F_lam differ + in sign. + + 2006-01-21 Brian Gough + + * synchrotron.c (gsl_sf_synchrotron_1_e): added first order + correction term for the taylor expansion + (gsl_sf_synchrotron_2_e): added first order correction term for + the taylor expansion + + 2006-01-20 Brian Gough + + * bessel_j.c (gsl_sf_bessel_jl_e): limit the use of + gsl_sf_bessel_Jnu_asympx_e to the range x>100*l*l to satisfy + the requirement x>>l*l in the asymptotic expansion + + * bessel_In.c (gsl_sf_bessel_In_scaled_e): limit the use of + gsl_sf_bessel_I_CF1_ser to the region where the continued + converges with the allowed 20000 terms (|x|<1e7) + + 2005-12-20 Brian Gough + + * debye.c (gsl_sf_debye_5_e, gsl_sf_debye_6_e): added n=5,6 + (R. J. Mathar) + + 2005-11-15 Brian Gough + + * dilog.c (dilog_xge0): fix calculation of error estimate + 2005-08-04 Brian Gough * coulomb.c (gsl_sf_coulomb_wave_sphF_array): fix warning about diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/specfunc/Makefile.in gsl-1.8/specfunc/Makefile.in *** gsl-1.7/specfunc/Makefile.in Tue Sep 13 10:05:17 2005 --- gsl-1.8/specfunc/Makefile.in Fri Mar 31 17:47:43 2006 *************** *** 80,90 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslspecfunc_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslspecfunc_la_SOURCES) $(test_SOURCES) --- 80,90 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslspecfunc_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslspecfunc_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/specfunc/bessel_In.c gsl-1.8/specfunc/bessel_In.c *** gsl-1.7/specfunc/bessel_In.c Sun Jun 26 13:25:35 2005 --- gsl-1.8/specfunc/bessel_In.c Fri Jan 20 15:30:02 2006 *************** *** 61,67 **** if(x < 0.0 && GSL_IS_ODD(n)) result->val = -result->val; return stat_In; } ! else if(n < 150) { gsl_sf_result I0_scaled; int stat_I0 = gsl_sf_bessel_I0_scaled_e(ax, &I0_scaled); double rat; --- 61,67 ---- if(x < 0.0 && GSL_IS_ODD(n)) result->val = -result->val; return stat_In; } ! else if(n < 150 && ax < 1e7) { gsl_sf_result I0_scaled; int stat_I0 = gsl_sf_bessel_I0_scaled_e(ax, &I0_scaled); double rat; diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/specfunc/bessel_j.c gsl-1.8/specfunc/bessel_j.c *** gsl-1.7/specfunc/bessel_j.c Sun Jun 26 13:25:35 2005 --- gsl-1.8/specfunc/bessel_j.c Fri Jan 20 17:49:58 2006 *************** *** 196,202 **** result->err = 2.0 * GSL_DBL_EPSILON * fabs(result->val) + pre * b.err; return status; } ! else if(x > 1000.0) { /* We need this to avoid feeding large x to CF1; note that * due to the above check, we know that n <= 50. --- 196,202 ---- result->err = 2.0 * GSL_DBL_EPSILON * fabs(result->val) + pre * b.err; return status; } ! else if(x > 1000.0 && x > 100.0*l*l) { /* We need this to avoid feeding large x to CF1; note that * due to the above check, we know that n <= 50. diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/specfunc/coulomb.c gsl-1.8/specfunc/coulomb.c *** gsl-1.7/specfunc/coulomb.c Mon Aug 22 15:22:22 2005 --- gsl-1.8/specfunc/coulomb.c Thu Feb 23 12:30:13 2006 *************** *** 1132,1138 **** double G_lam_min, Gp_lam_min; double Fp_over_F_lam_F; double Fp_over_F_lam_min; ! double F_sign_lam_F; double P_lam_min, Q_lam_min; double alpha; double gamma; --- 1132,1138 ---- double G_lam_min, Gp_lam_min; double Fp_over_F_lam_F; double Fp_over_F_lam_min; ! double F_sign_lam_F, F_sign_lam_min; double P_lam_min, Q_lam_min; double alpha; double gamma; *************** *** 1150,1156 **** double err_amplify; ! F_lam_F = SMALL; Fp_lam_F = Fp_over_F_lam_F * F_lam_F; /* Backward recurrence to get F,Fp at lam_min */ --- 1150,1156 ---- double err_amplify; ! F_lam_F = F_sign_lam_F * SMALL; /* unnormalized */ Fp_lam_F = Fp_over_F_lam_F * F_lam_F; /* Backward recurrence to get F,Fp at lam_min */ *************** *** 1165,1171 **** stat_CF2 = coulomb_CF2(lam_min, eta, x, &P_lam_min, &Q_lam_min, &CF2_count); alpha = Fp_over_F_lam_min - P_lam_min; gamma = alpha/Q_lam_min; ! F_lam_min = F_sign_lam_F / sqrt(alpha*alpha/Q_lam_min + Q_lam_min); Fp_lam_min = Fp_over_F_lam_min * F_lam_min; G_lam_min = gamma * F_lam_min; Gp_lam_min = (P_lam_min * gamma - Q_lam_min) * F_lam_min; --- 1165,1174 ---- stat_CF2 = coulomb_CF2(lam_min, eta, x, &P_lam_min, &Q_lam_min, &CF2_count); alpha = Fp_over_F_lam_min - P_lam_min; gamma = alpha/Q_lam_min; ! ! F_sign_lam_min = GSL_SIGN(F_lam_min_unnorm) ; ! ! F_lam_min = F_sign_lam_min / sqrt(alpha*alpha/Q_lam_min + Q_lam_min); Fp_lam_min = Fp_over_F_lam_min * F_lam_min; G_lam_min = gamma * F_lam_min; Gp_lam_min = (P_lam_min * gamma - Q_lam_min) * F_lam_min; diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/specfunc/debye.c gsl-1.8/specfunc/debye.c *** gsl-1.7/specfunc/debye.c Sun Jun 26 13:25:35 2005 --- gsl-1.8/specfunc/debye.c Tue Dec 20 19:25:56 2005 *************** *** 18,23 **** --- 18,24 ---- */ /* Author: G. Jungman */ + /* augmented to n=5 and 6 2005-11-08 by R. J. Mathar, http://www.strw.leidenuniv.nl/~mathar */ #include #include *************** *** 135,140 **** --- 136,193 ---- 10 }; + static double adeb5_data[17] = { + 2.8340269546834530149, + 0.3994098857106266445, + -0.164566764773099646e-1, + 0.10652138340664541e-2, + -0.756730374875418e-4, + 0.55745985240273e-5, + -0.4190692330918e-6, + 0.319456143678e-7, + -0.24613318171e-8, + 0.1912801633e-9, + -0.149720049e-10, + 0.11790312e-11, + -0.933329e-13, + 0.74218e-14, + -0.5925e-15, + 0.475e-16, + -0.39e-17 + }; + static cheb_series adeb5_cs = { + adeb5_data, + 16, + -1.0, 1.0, + 10 + }; + + static double adeb6_data[17] = { + 2.8726727134130122113, + 0.4174375352339027746, + -0.176453849354067873e-1, + 0.11629852733494556e-2, + -0.837118027357117e-4, + 0.62283611596189e-5, + -0.4718644465636e-6, + 0.361950397806e-7, + -0.28030368010e-8, + 0.2187681983e-9, + -0.171857387e-10, + 0.13575809e-11, + -0.1077580e-12, + 0.85893e-14, + -0.6872e-15, + 0.552e-16, + -0.44e-17 + }; + static cheb_series adeb6_cs = { + adeb6_data, + 16, + -1.0, 1.0, + 10 + }; + /*-*-*-*-*-*-*-*-*-*-*-* Functions with Error Codes *-*-*-*-*-*-*-*-*-*-*-*/ *************** *** 361,366 **** --- 414,535 ---- } } + int gsl_sf_debye_5_e(const double x, gsl_sf_result * result) + { + const double val_infinity = 610.405837190669483828710757875 ; + const double xcut = -GSL_LOG_DBL_MIN; + + /* CHECK_POINTER(result) */ + + if(x < 0.0) { + DOMAIN_ERROR(result); + } + else if(x < 2.0*M_SQRT2*GSL_SQRT_DBL_EPSILON) { + result->val = 1.0 - 5.0*x/12.0 + 5.0*x*x/84.0; + result->err = GSL_DBL_EPSILON * result->val; + return GSL_SUCCESS; + } + else if(x <= 4.0) { + const double t = x*x/8.0 - 1.0; + gsl_sf_result c; + cheb_eval_e(&adeb5_cs, t, &c); + result->val = c.val - 5.0*x/12.0; + result->err = c.err + GSL_DBL_EPSILON * 5.0*x/12.0; + return GSL_SUCCESS; + } + else if(x < -(M_LN2 + GSL_LOG_DBL_EPSILON)) { + const int nexp = floor(xcut/x); + const double ex = exp(-x); + double xk = nexp * x; + double rk = nexp; + double sum = 0.0; + int i; + for(i=nexp; i>=1; i--) { + double xk_inv = 1.0/xk; + sum *= ex; + sum += (((((120.0*xk_inv + 120.0)*xk_inv + 60.0)*xk_inv + 20.0)*xk_inv + 5.0)*xk_inv+ 1.0) / rk; + rk -= 1.0; + xk -= x; + } + result->val = val_infinity/(x*x*x*x*x) - 5.0 * sum * ex; + result->err = GSL_DBL_EPSILON * result->val; + return GSL_SUCCESS; + } + else if(x < xcut) { + const double x2 = x*x; + const double x4 = x2*x2; + const double x5 = x4*x; + const double sum = 120.0 + 120.0*x + 60.0*x2 + 20.0*x2*x + 5.0*x4 + x5; + result->val = (val_infinity - 5.0 * sum * exp(-x)) / x5; + result->err = GSL_DBL_EPSILON * result->val; + return GSL_SUCCESS; + } + else { + result->val = ((((val_infinity/x)/x)/x)/x)/x; + result->err = GSL_DBL_EPSILON * result->val; + CHECK_UNDERFLOW(result); + return GSL_SUCCESS; + } + } + + int gsl_sf_debye_6_e(const double x, gsl_sf_result * result) + { + const double val_infinity = 4356.06887828990661194792541535 ; + const double xcut = -GSL_LOG_DBL_MIN; + + /* CHECK_POINTER(result) */ + + if(x < 0.0) { + DOMAIN_ERROR(result); + } + else if(x < 2.0*M_SQRT2*GSL_SQRT_DBL_EPSILON) { + result->val = 1.0 - 3.0*x/7.0 + x*x/16.0; + result->err = GSL_DBL_EPSILON * result->val; + return GSL_SUCCESS; + } + else if(x <= 4.0) { + const double t = x*x/8.0 - 1.0; + gsl_sf_result c; + cheb_eval_e(&adeb6_cs, t, &c); + result->val = c.val - 3.0*x/7.0; + result->err = c.err + GSL_DBL_EPSILON * 3.0*x/7.0; + return GSL_SUCCESS; + } + else if(x < -(M_LN2 + GSL_LOG_DBL_EPSILON)) { + const int nexp = floor(xcut/x); + const double ex = exp(-x); + double xk = nexp * x; + double rk = nexp; + double sum = 0.0; + int i; + for(i=nexp; i>=1; i--) { + double xk_inv = 1.0/xk; + sum *= ex; + sum += ((((((720.0*xk_inv + 720.0)*xk_inv + 360.0)*xk_inv + 120.0)*xk_inv + 30.0)*xk_inv+ 6.0)*xk_inv+ 1.0) / rk; + rk -= 1.0; + xk -= x; + } + result->val = val_infinity/(x*x*x*x*x*x) - 6.0 * sum * ex; + result->err = GSL_DBL_EPSILON * result->val; + return GSL_SUCCESS; + } + else if(x < xcut) { + const double x2 = x*x; + const double x4 = x2*x2; + const double x6 = x4*x2; + const double sum = 720.0 + 720.0*x + 360.0*x2 + 120.0*x2*x + 30.0*x4 + 6.0*x4*x +x6 ; + result->val = (val_infinity - 6.0 * sum * exp(-x)) / x6; + result->err = GSL_DBL_EPSILON * result->val; + return GSL_SUCCESS; + } + else { + result->val = (((((val_infinity/x)/x)/x)/x)/x)/x ; + result->err = GSL_DBL_EPSILON * result->val; + CHECK_UNDERFLOW(result); + return GSL_SUCCESS; + } + } + /*-*-*-*-*-*-*-*-*-* Functions w/ Natural Prototypes *-*-*-*-*-*-*-*-*-*-*/ *************** *** 385,387 **** --- 554,566 ---- { EVAL_RESULT(gsl_sf_debye_4_e(x, &result)); } + + double gsl_sf_debye_5(const double x) + { + EVAL_RESULT(gsl_sf_debye_5_e(x, &result)); + } + + double gsl_sf_debye_6(const double x) + { + EVAL_RESULT(gsl_sf_debye_6_e(x, &result)); + } diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/specfunc/dilog.c gsl-1.8/specfunc/dilog.c *** gsl-1.7/specfunc/dilog.c Sun Jun 26 13:25:35 2005 --- gsl-1.8/specfunc/dilog.c Tue Nov 15 16:28:48 2005 *************** *** 145,151 **** result->val = t1 - t2 - t3; result->err = GSL_DBL_EPSILON * fabs(log_x) + ser.err; result->err += GSL_DBL_EPSILON * (fabs(t1) + fabs(t2) + fabs(t3)); ! result->val += 2.0 * GSL_DBL_EPSILON * fabs(result->val); return stat_ser; } else if(x > 1.01) { --- 145,151 ---- result->val = t1 - t2 - t3; result->err = GSL_DBL_EPSILON * fabs(log_x) + ser.err; result->err += GSL_DBL_EPSILON * (fabs(t1) + fabs(t2) + fabs(t3)); ! result->err += 2.0 * GSL_DBL_EPSILON * fabs(result->val); return stat_ser; } else if(x > 1.01) { diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/specfunc/fermi_dirac.c gsl-1.8/specfunc/fermi_dirac.c *** gsl-1.7/specfunc/fermi_dirac.c Sun Jun 26 13:25:35 2005 --- gsl-1.8/specfunc/fermi_dirac.c Thu Mar 30 19:01:51 2006 *************** *** 943,949 **** return GSL_SUCCESS; } else { ! double s; double xn = x; double ex = -exp(x); double enx = -ex; --- 943,949 ---- return GSL_SUCCESS; } else { ! double s = 0.0; double xn = x; double ex = -exp(x); double enx = -ex; diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/specfunc/gamma.c gsl-1.8/specfunc/gamma.c *** gsl-1.7/specfunc/gamma.c Sun Jun 26 13:25:35 2005 --- gsl-1.8/specfunc/gamma.c Tue Nov 15 16:22:58 2005 *************** *** 39,47 **** /*-*-*-*-*-*-*-*-*-*-*-* Private Section *-*-*-*-*-*-*-*-*-*-*-*/ ! #define FACT_TABLE_MAX 170 ! #define FACT_TABLE_SIZE (FACT_TABLE_MAX+1) ! static struct {int n; double f; long i; } fact_table[FACT_TABLE_SIZE] = { { 0, 1.0, 1L }, { 1, 1.0, 1L }, { 2, 2.0, 2L }, --- 39,45 ---- /*-*-*-*-*-*-*-*-*-*-*-* Private Section *-*-*-*-*-*-*-*-*-*-*-*/ ! static struct {int n; double f; long i; } fact_table[GSL_SF_FACT_NMAX + 1] = { { 0, 1.0, 1L }, { 1, 1.0, 1L }, { 2, 2.0, 2L }, *************** *** 250,258 **** */ }; ! #define DOUB_FACT_TABLE_MAX 297 ! #define DOUB_FACT_TABLE_SIZE (DOUB_FACT_TABLE_MAX+1) ! static struct {int n; double f; long i; } doub_fact_table[DOUB_FACT_TABLE_SIZE] = { { 0, 1.000000000000000000000000000, 1L }, { 1, 1.000000000000000000000000000, 1L }, { 2, 2.000000000000000000000000000, 2L }, --- 248,254 ---- */ }; ! static struct {int n; double f; long i; } doub_fact_table[GSL_SF_DOUBLEFACT_NMAX + 1] = { { 0, 1.000000000000000000000000000, 1L }, { 1, 1.000000000000000000000000000, 1L }, { 2, 2.000000000000000000000000000, 2L }, *************** *** 725,731 **** return GSL_SUCCESS; } - /* x = eps near zero * gives double-precision for |eps| < 0.02 */ --- 721,726 ---- *************** *** 1029,1035 **** result->val = 1.77245385090551602729817; result->err = GSL_DBL_EPSILON * result->val; return GSL_SUCCESS; ! } else if (x <= (FACT_TABLE_MAX + 1.0) && x == floor(x)) { int n = (int) floor (x); result->val = fact_table[n - 1].f; result->err = GSL_DBL_EPSILON * result->val; --- 1024,1030 ---- result->val = 1.77245385090551602729817; result->err = GSL_DBL_EPSILON * result->val; return GSL_SUCCESS; ! } else if (x <= (GSL_SF_FACT_NMAX + 1.0) && x == floor(x)) { int n = (int) floor (x); result->val = fact_table[n - 1].f; result->err = GSL_DBL_EPSILON * result->val; *************** *** 1478,1484 **** result->err = 0.0; return GSL_SUCCESS; } ! else if(n <= FACT_TABLE_MAX){ result->val = fact_table[n].f; result->err = 2.0 * GSL_DBL_EPSILON * fabs(result->val); return GSL_SUCCESS; --- 1473,1479 ---- result->err = 0.0; return GSL_SUCCESS; } ! else if(n <= GSL_SF_FACT_NMAX){ result->val = fact_table[n].f; result->err = 2.0 * GSL_DBL_EPSILON * fabs(result->val); return GSL_SUCCESS; *************** *** 1498,1504 **** result->err = 0.0; return GSL_SUCCESS; } ! else if(n <= DOUB_FACT_TABLE_MAX){ result->val = doub_fact_table[n].f; result->err = 2.0 * GSL_DBL_EPSILON * fabs(result->val); return GSL_SUCCESS; --- 1493,1499 ---- result->err = 0.0; return GSL_SUCCESS; } ! else if(n <= GSL_SF_DOUBLEFACT_NMAX){ result->val = doub_fact_table[n].f; result->err = 2.0 * GSL_DBL_EPSILON * fabs(result->val); return GSL_SUCCESS; *************** *** 1513,1519 **** { /* CHECK_POINTER(result) */ ! if(n <= FACT_TABLE_MAX){ result->val = log(fact_table[n].f); result->err = 2.0 * GSL_DBL_EPSILON * fabs(result->val); return GSL_SUCCESS; --- 1508,1514 ---- { /* CHECK_POINTER(result) */ ! if(n <= GSL_SF_FACT_NMAX){ result->val = log(fact_table[n].f); result->err = 2.0 * GSL_DBL_EPSILON * fabs(result->val); return GSL_SUCCESS; *************** *** 1529,1535 **** { /* CHECK_POINTER(result) */ ! if(n <= DOUB_FACT_TABLE_MAX){ result->val = log(doub_fact_table[n].f); result->err = 2.0 * GSL_DBL_EPSILON * fabs(result->val); return GSL_SUCCESS; --- 1524,1530 ---- { /* CHECK_POINTER(result) */ ! if(n <= GSL_SF_DOUBLEFACT_NMAX){ result->val = log(doub_fact_table[n].f); result->err = 2.0 * GSL_DBL_EPSILON * fabs(result->val); return GSL_SUCCESS; *************** *** 1589,1595 **** result->err = 0.0; return GSL_SUCCESS; } ! else if (n <= FACT_TABLE_MAX) { result->val = (fact_table[n].f / fact_table[m].f) / fact_table[n-m].f; result->err = 6.0 * GSL_DBL_EPSILON * fabs(result->val); return GSL_SUCCESS; --- 1584,1590 ---- result->err = 0.0; return GSL_SUCCESS; } ! else if (n <= GSL_SF_FACT_NMAX) { result->val = (fact_table[n].f / fact_table[m].f) / fact_table[n-m].f; result->err = 6.0 * GSL_DBL_EPSILON * fabs(result->val); return GSL_SUCCESS; diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/specfunc/gsl_sf_debye.h gsl-1.8/specfunc/gsl_sf_debye.h *** gsl-1.7/specfunc/gsl_sf_debye.h Sun Jun 26 13:25:35 2005 --- gsl-1.8/specfunc/gsl_sf_debye.h Tue Dec 20 19:25:56 2005 *************** *** 18,23 **** --- 18,24 ---- */ /* Author: G. Jungman */ + /* augmented by D_5(x) and D_6(x) by Richard J. Mathar, 2005-11-08 */ #ifndef __GSL_SF_DEBYE_H__ #define __GSL_SF_DEBYE_H__ *************** *** 70,75 **** --- 71,90 ---- int gsl_sf_debye_4_e(const double x, gsl_sf_result * result); double gsl_sf_debye_4(const double x); + /* D_5(x) + * + * exceptions: GSL_EDOM, GSL_EUNDRFLW + */ + int gsl_sf_debye_5_e(const double x, gsl_sf_result * result); + double gsl_sf_debye_5(const double x); + + /* D_6(x) + * + * exceptions: GSL_EDOM, GSL_EUNDRFLW + */ + int gsl_sf_debye_6_e(const double x, gsl_sf_result * result); + double gsl_sf_debye_6(const double x); + __END_DECLS diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/specfunc/gsl_sf_gamma.h gsl-1.8/specfunc/gsl_sf_gamma.h *** gsl-1.7/specfunc/gsl_sf_gamma.h Sun Jun 26 13:25:35 2005 --- gsl-1.8/specfunc/gsl_sf_gamma.h Tue Nov 15 16:22:58 2005 *************** *** 280,285 **** --- 280,290 ---- */ #define GSL_SF_GAMMA_XMAX 171.0 + /* The maximum n such that gsl_sf_fact(n) does not give an overflow. */ + #define GSL_SF_FACT_NMAX 170 + + /* The maximum n such that gsl_sf_doublefact(n) does not give an overflow. */ + #define GSL_SF_DOUBLEFACT_NMAX 297 __END_DECLS diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/specfunc/synchrotron.c gsl-1.8/specfunc/synchrotron.c *** gsl-1.7/specfunc/synchrotron.c Sun Jun 26 13:25:35 2005 --- gsl-1.8/specfunc/synchrotron.c Sat Jan 21 18:49:15 2006 *************** *** 187,193 **** DOMAIN_ERROR(result); } else if(x < 2.0*M_SQRT2 * GSL_SQRT_DBL_EPSILON) { ! result->val = 2.14952824153447863671 * pow(x, 1.0/3.0); result->err = GSL_DBL_EPSILON * result->val; return GSL_SUCCESS; } --- 187,198 ---- DOMAIN_ERROR(result); } else if(x < 2.0*M_SQRT2 * GSL_SQRT_DBL_EPSILON) { ! /* BJG: added first order correction term. The taylor series ! is S1(x) = ((4pi)/(sqrt(3)gamma(1/3))) * (x/2)^(1/3) ! * (1 - (gamma(1/3)/2)*(x/2)^2/3 + (3/4) * (x/2)^2 ....) */ ! double z = pow(x, 1.0/3.0); ! double cf = 1 - 8.43812762813205e-01 * z * z; ! result->val = 2.14952824153447863671 * z * cf; result->err = GSL_DBL_EPSILON * result->val; return GSL_SUCCESS; } *************** *** 228,234 **** DOMAIN_ERROR(result); } else if(x < 2.0*M_SQRT2*GSL_SQRT_DBL_EPSILON) { ! result->val = 1.07476412076723931836 * pow(x, 1.0/3.0); result->err = 2.0 * GSL_DBL_EPSILON * result->val; return GSL_SUCCESS; } --- 233,245 ---- DOMAIN_ERROR(result); } else if(x < 2.0*M_SQRT2*GSL_SQRT_DBL_EPSILON) { ! /* BJG: added first order correction term. The taylor series ! is S2(x) = ((2pi)/(sqrt(3)*gamma(1/3))) * (x/2)^(1/3) ! * (1 - (gamma(1/3)/gamma(4/3))*(x/2)^(4/3) + (gamma(1/3)/gamma(4/3))*(x/2)^2...) */ ! ! double z = pow(x, 1.0/3.0); ! double cf = 1 - 1.17767156510235e+00 * z * x; ! result->val = 1.07476412076723931836 * z * cf ; result->err = 2.0 * GSL_DBL_EPSILON * result->val; return GSL_SUCCESS; } diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/specfunc/test_bessel.c gsl-1.8/specfunc/test_bessel.c *** gsl-1.7/specfunc/test_bessel.c Mon Aug 22 15:23:24 2005 --- gsl-1.8/specfunc/test_bessel.c Fri Jan 20 17:49:58 2006 *************** *** 95,100 **** --- 95,107 ---- TEST_SF(s, gsl_sf_bessel_In_scaled_e, ( 5, 2.0, &r), 0.0013297610941881578142, TEST_TOL0, GSL_SUCCESS); TEST_SF(s, gsl_sf_bessel_In_scaled_e, ( 100, 100.0, &r), 1.7266862628167695785e-22, TEST_TOL0, GSL_SUCCESS); + /* BJG: the "exact" values in the following two tests were computed from the + taylor series for I_nu using "long double" and rescaling. The last few digits + are inaccurate due to cumulative roundoff. */ + + TEST_SF(s, gsl_sf_bessel_In_scaled_e, ( 2, 1e7, &r), 1.261566024466441648e-04, TEST_TOL2, GSL_SUCCESS); + TEST_SF(s, gsl_sf_bessel_In_scaled_e, ( 2, 1e8, &r), 3.989422729213446112e-05, TEST_TOL2, GSL_SUCCESS); + TEST_SF(s, gsl_sf_bessel_I0_e, (0.1, &r), 1.0025015629340956014, TEST_TOL0, GSL_SUCCESS); TEST_SF(s, gsl_sf_bessel_I0_e, (2.0, &r), 2.2795853023360672674, TEST_TOL0, GSL_SUCCESS); TEST_SF(s, gsl_sf_bessel_I0_e, (100.0, &r), 1.0737517071310738235e+42, TEST_TOL2, GSL_SUCCESS); *************** *** 165,170 **** --- 172,181 ---- TEST_SF(s, gsl_sf_bessel_jl_e, (2, 900.0, &r), -0.0011089115568832940086, TEST_TOL4, GSL_SUCCESS); TEST_SF(s, gsl_sf_bessel_jl_e, (2, 15000.0, &r), -0.00005955592033075750554, TEST_TOL4, GSL_SUCCESS); + /* Bug report by Mario Santos, value computed from AS 10.1.8 */ + TEST_SF(s, gsl_sf_bessel_jl_e, (100, 1000.0, &r), -0.00025326311230945818285, TEST_TOL4, GSL_SUCCESS); + + TEST_SF(s, gsl_sf_bessel_y0_e, (0.001, &r), -999.99950000004166670, TEST_TOL0, GSL_SUCCESS); TEST_SF(s, gsl_sf_bessel_y0_e, ( 1.0, &r), -0.5403023058681397174, TEST_TOL0, GSL_SUCCESS); TEST_SF(s, gsl_sf_bessel_y0_e, ( 10.0, &r), 0.08390715290764524523, TEST_TOL0, GSL_SUCCESS); diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/specfunc/test_coulomb.c gsl-1.8/specfunc/test_coulomb.c *** gsl-1.7/specfunc/test_coulomb.c Sun Jun 26 13:25:35 2005 --- gsl-1.8/specfunc/test_coulomb.c Thu Feb 23 12:30:13 2006 *************** *** 374,379 **** --- 374,412 ---- gsl_test(s, " gsl_sf_coulomb_wave_FG_e(100.0, 1.0, lam_F=0, lam_G=0)"); status += s; + /* compute F_1(eta=0,x=3.25), F'_1 and G_1(eta=0,x=3.25), G'_1 */ + + lam_F = 1.0; + eta = 0.0; + x = 3.25; + k_G = 0; + gsl_sf_coulomb_wave_FG_e(eta, x, lam_F, k_G, &F, &Fp, &G, &Gp, &Fe, &Ge); + s = 0; + message_buff[0] = 0; + s += test_sf_check_result(message_buff, F, sin(x)/x - cos(x), TEST_TOL3); + s += test_sf_check_result(message_buff, Fp, -sin(x)/(x*x) + cos(x)/x +sin(x), TEST_TOL3); + s += test_sf_check_result(message_buff, G, cos(x)/x + sin(x), TEST_TOL3); + s += test_sf_check_result(message_buff, Gp, -cos(x)/(x*x) - sin(x)/x + cos(x), TEST_TOL3); + printf("%s", message_buff); + gsl_test(s, " gsl_sf_coulomb_wave_FG_e(3.25, 0.0, lam_F=1, lam_G=1)"); + status += s; + + /* compute F_1(eta=0,x=3.25), F'_1 and G_0(eta=0,x=3.25), G'_0 */ + + lam_F = 1.0; + eta = 0.0; + x = 3.25; + k_G = 1; + gsl_sf_coulomb_wave_FG_e(eta, x, lam_F, k_G, &F, &Fp, &G, &Gp, &Fe, &Ge); + s = 0; + message_buff[0] = 0; + s += test_sf_check_result(message_buff, F, sin(x)/x - cos(x), TEST_TOL3); + s += test_sf_check_result(message_buff, Fp, -sin(x)/(x*x) + cos(x)/x +sin(x), TEST_TOL3); + s += test_sf_check_result(message_buff, G, cos(x), TEST_TOL3); + s += test_sf_check_result(message_buff, Gp, -sin(x), TEST_TOL3); + printf("%s", message_buff); + gsl_test(s, " gsl_sf_coulomb_wave_FG_e(3.25, 0.0, lam_F=1, lam_G=0)"); + status += s; return status; } diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/specfunc/test_sf.c gsl-1.8/specfunc/test_sf.c *** gsl-1.7/specfunc/test_sf.c Mon Aug 22 15:22:22 2005 --- gsl-1.8/specfunc/test_sf.c Tue Dec 20 19:25:56 2005 *************** *** 426,431 **** --- 426,439 ---- TEST_SF(s, gsl_sf_debye_4_e, (1.0, &r), 0.654874068886737049, TEST_TOL0, GSL_SUCCESS); TEST_SF(s, gsl_sf_debye_4_e, (10.0, &r), 0.00967367556027115896, TEST_TOL0, GSL_SUCCESS); + TEST_SF(s, gsl_sf_debye_5_e, (0.1, &r), 0.95892849428310568745, TEST_TOL0, GSL_SUCCESS); + TEST_SF(s, gsl_sf_debye_5_e, (1.0, &r), 0.6421002580217790246, TEST_TOL0, GSL_SUCCESS); + TEST_SF(s, gsl_sf_debye_5_e, (10.0, &r), 0.005701535852992908538, TEST_TOL0, GSL_SUCCESS); + + TEST_SF(s, gsl_sf_debye_6_e, (0.1, &r), 0.95776777382605465878, TEST_TOL0, GSL_SUCCESS); + TEST_SF(s, gsl_sf_debye_6_e, (1.0, &r), 0.63311142583495107588, TEST_TOL0, GSL_SUCCESS); + TEST_SF(s, gsl_sf_debye_6_e, (10.0, &r), 3.7938493294615955279e-3, TEST_TOL0, GSL_SUCCESS); + return s; } diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/statistics/ChangeLog gsl-1.8/statistics/ChangeLog *** gsl-1.7/statistics/ChangeLog Sat Jul 15 11:23:24 2000 --- gsl-1.8/statistics/ChangeLog Sat Jan 7 18:57:08 2006 *************** *** 1,3 **** --- 1,10 ---- + 2006-01-07 Brian Gough + + * test_float_source.c: additional tests for NaNs + + * minmax_source.c: handle NaNs correctly, if any element is NaN + then the max and min are NaN + Sat Jul 15 12:23:09 2000 Brian Gough * test_nist.c: added url/reference to the original NIST datasets diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/statistics/Makefile.in gsl-1.8/statistics/Makefile.in *** gsl-1.7/statistics/Makefile.in Tue Sep 13 10:05:18 2005 --- gsl-1.8/statistics/Makefile.in Fri Mar 31 17:47:43 2006 *************** *** 65,75 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslstatistics_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslstatistics_la_SOURCES) $(test_SOURCES) --- 65,75 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslstatistics_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslstatistics_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/statistics/minmax.c gsl-1.8/statistics/minmax.c *** gsl-1.7/statistics/minmax.c Fri Jul 25 15:18:16 2003 --- gsl-1.8/statistics/minmax.c Sat Jan 7 18:57:08 2006 *************** *** 1,5 **** --- 1,6 ---- #include #include + #include #include #define BASE_LONG_DOUBLE diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/statistics/minmax_source.c gsl-1.8/statistics/minmax_source.c *** gsl-1.7/statistics/minmax_source.c Sun Jun 26 13:25:35 2005 --- gsl-1.8/statistics/minmax_source.c Sat Jan 7 18:57:08 2006 *************** *** 18,25 **** */ ! BASE ! FUNCTION(gsl_stats,max) (const BASE data[], const size_t stride, const size_t n) { /* finds the largest member of a dataset */ --- 18,26 ---- */ ! BASE ! FUNCTION (gsl_stats,max) (const BASE data[], const size_t stride, ! const size_t n) { /* finds the largest member of a dataset */ *************** *** 28,42 **** for (i = 0; i < n; i++) { ! if (data[i * stride] > max) ! max = data[i * stride]; } return max; } BASE ! FUNCTION(gsl_stats,min) (const BASE data[], const size_t stride, const size_t n) { /* finds the smallest member of a dataset */ --- 29,50 ---- for (i = 0; i < n; i++) { ! BASE xi = data[i * stride]; ! ! if (xi > max) ! max = xi; ! #ifdef FP ! else if (isnan (xi)) ! return xi; ! #endif } return max; } BASE ! FUNCTION (gsl_stats,min) (const BASE data[], const size_t stride, ! const size_t n) { /* finds the smallest member of a dataset */ *************** *** 45,52 **** for (i = 0; i < n; i++) { ! if (data[i * stride] < min) ! min = data[i * stride]; } return min; --- 53,66 ---- for (i = 0; i < n; i++) { ! BASE xi = data[i * stride]; ! ! if (xi < min) ! min = xi; ! #ifdef FP ! else if (isnan (xi)) ! return xi; ! #endif } return min; *************** *** 54,60 **** } void ! FUNCTION(gsl_stats,minmax) (BASE * min_out, BASE * max_out, const BASE data[], const size_t stride, const size_t n) { /* finds the smallest and largest members of a dataset */ --- 68,76 ---- } void ! FUNCTION (gsl_stats,minmax) (BASE * min_out, BASE * max_out, ! const BASE data[], const size_t stride, ! const size_t n) { /* finds the smallest and largest members of a dataset */ *************** *** 64,81 **** for (i = 0; i < n; i++) { ! if (data[i * stride] < min) ! min = data[i * stride]; ! if (data[i * stride] > max) ! max = data[i * stride]; } ! *min_out = min ; ! *max_out = max ; } size_t ! FUNCTION(gsl_stats,max_index) (const BASE data[], const size_t stride, const size_t n) { /* finds the index of the largest member of a dataset */ /* if there is more than one largest value then we choose the first */ --- 80,111 ---- for (i = 0; i < n; i++) { ! BASE xi = data[i * stride]; ! ! if (xi < min) ! min = xi; ! ! if (xi > max) ! max = xi; ! ! #ifdef FP ! if (isnan (xi)) ! { ! min = xi; ! max = xi; ! break; ! } ! #endif ! } ! *min_out = min; ! *max_out = max; } size_t ! FUNCTION (gsl_stats,max_index) (const BASE data[], const size_t stride, ! const size_t n) { /* finds the index of the largest member of a dataset */ /* if there is more than one largest value then we choose the first */ *************** *** 85,102 **** for (i = 0; i < n; i++) { ! if (data[i * stride] > max) { ! max = data[i * stride]; ! max_index = i ; } } return max_index; } size_t ! FUNCTION(gsl_stats,min_index) (const BASE data[], const size_t stride, const size_t n) { /* finds the index of the smallest member of a dataset */ /* if there is more than one largest value then we choose the first */ --- 115,142 ---- for (i = 0; i < n; i++) { ! BASE xi = data[i * stride]; ! ! if (xi > max) { ! max = xi; ! max_index = i; } + + #ifdef FP + if (isnan (xi)) + { + return i; + } + #endif } return max_index; } size_t ! FUNCTION (gsl_stats,min_index) (const BASE data[], const size_t stride, ! const size_t n) { /* finds the index of the smallest member of a dataset */ /* if there is more than one largest value then we choose the first */ *************** *** 106,123 **** for (i = 0; i < n; i++) { ! if (data[i * stride] < min) { ! min = data[i * stride]; ! min_index = i ; } } return min_index; } void ! FUNCTION(gsl_stats,minmax_index) (size_t * min_index_out, size_t * max_index_out, const BASE data[], const size_t stride, const size_t n) { /* finds the smallest and largest members of a dataset */ --- 146,174 ---- for (i = 0; i < n; i++) { ! BASE xi = data[i * stride]; ! ! if (xi < min) ! { ! min = xi; ! min_index = i; ! } ! ! #ifdef FP ! if (isnan (xi)) { ! return i; } + #endif } return min_index; } void ! FUNCTION (gsl_stats,minmax_index) (size_t * min_index_out, ! size_t * max_index_out, const BASE data[], ! const size_t stride, const size_t n) { /* finds the smallest and largest members of a dataset */ *************** *** 127,145 **** for (i = 0; i < n; i++) { ! if (data[i * stride] < min) { ! min = data[i * stride]; min_index = i; } ! if (data[i * stride] > max) { ! max = data[i * stride]; max_index = i; } } ! *min_index_out = min_index ; ! *max_index_out = max_index ; } --- 178,207 ---- for (i = 0; i < n; i++) { ! BASE xi = data[i * stride]; ! ! if (xi < min) { ! min = xi; min_index = i; } ! if (xi > max) ! { ! max = xi; ! max_index = i; ! } ! ! #ifdef FP ! if (isnan (xi)) { ! min_index = i; max_index = i; + break; } + #endif } ! *min_index_out = min_index; ! *max_index_out = max_index; } diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/statistics/test.c gsl-1.8/statistics/test.c *** gsl-1.7/statistics/test.c Sun Jun 26 13:25:36 2005 --- gsl-1.8/statistics/test.c Sat Jan 7 18:57:08 2006 *************** *** 22,27 **** --- 22,28 ---- #include #include + #include #include #include #include diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/statistics/test_float_source.c gsl-1.8/statistics/test_float_source.c *** gsl-1.7/statistics/test_float_source.c Sun Jun 26 13:25:36 2005 --- gsl-1.8/statistics/test_float_source.c Sat Jan 7 18:57:08 2006 *************** *** 290,297 **** --- 290,382 ---- } + /* Test for IEEE handling - set third element to NaN */ + + groupa [3*stridea] = GSL_NAN; + + { + BASE max = FUNCTION(gsl_stats,max) (groupa, stridea, na); + BASE expected = GSL_NAN; + gsl_test (!isnan(max), + NAME(gsl_stats) "_max NaN (" OUT_FORMAT " observed vs " OUT_FORMAT " expected)", + max, expected); + } + + { + BASE min = FUNCTION(gsl_stats,min) (groupa, stridea, na); + BASE expected = GSL_NAN; + gsl_test (!isnan(min), + NAME(gsl_stats) "_min NaN (" OUT_FORMAT " observed vs " OUT_FORMAT " expected)", + min, expected); + } + + { + BASE min, max; + BASE expected_max = GSL_NAN; + BASE expected_min = GSL_NAN; + + FUNCTION(gsl_stats,minmax) (&min, &max, groupa, stridea, na); + + gsl_test (!isnan(max), + NAME(gsl_stats) "_minmax max NaN (" OUT_FORMAT " observed vs " OUT_FORMAT " expected)", + max, expected_max); + gsl_test (!isnan(min), + NAME(gsl_stats) "_minmax min NaN (" OUT_FORMAT " observed vs " OUT_FORMAT " expected)", + min, expected_min); + } + + #ifdef FAST + { + BASE min, max; + BASE expected_max = GSL_NAN; + BASE expected_min = GSL_NAN; + + FUNCTION(gsl_stats,minmax) (&min, &max, groupa, stridea, na-1); + + gsl_test (!isnan(max), + NAME(gsl_stats) "_minmax(-1) max NaN (" OUT_FORMAT " observed vs " OUT_FORMAT " expected)", + max, expected_max); + gsl_test (!isnan(min), + NAME(gsl_stats) "_minmax(-1) min NaN (" OUT_FORMAT " observed vs " OUT_FORMAT " expected)", + min, expected_min); + } + #endif + + + { + int max_index = FUNCTION(gsl_stats,max_index) (groupa, stridea, na); + int expected = 3; + gsl_test (max_index != expected, + NAME(gsl_stats) "_max_index NaN (%d observed vs %d expected)", + max_index, expected); + } + + { + int min_index = FUNCTION(gsl_stats,min_index) (groupa, stridea, na); + int expected = 3; + gsl_test (min_index != expected, + NAME(gsl_stats) "_min_index NaN (%d observed vs %d expected)", + min_index, expected); + } + + { + size_t min_index, max_index; + size_t expected_max_index = 3; + size_t expected_min_index = 3; + + FUNCTION(gsl_stats,minmax_index) (&min_index, &max_index, groupa, stridea, na); + + gsl_test (max_index != expected_max_index, + NAME(gsl_stats) "_minmax_index max NaN (%u observed vs %u expected)", + max_index, expected_max_index); + gsl_test (min_index != expected_min_index, + NAME(gsl_stats) "_minmax_index min NaN (%u observed vs %u expected)", + min_index, expected_min_index); + } + free (sorted); free (groupa); free (groupb); free (w); + } diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/sum/Makefile.in gsl-1.8/sum/Makefile.in *** gsl-1.7/sum/Makefile.in Tue Sep 13 10:05:19 2005 --- gsl-1.8/sum/Makefile.in Fri Mar 31 17:47:44 2006 *************** *** 63,73 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslsum_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslsum_la_SOURCES) $(test_SOURCES) --- 63,73 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslsum_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslsum_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/sys/ChangeLog gsl-1.8/sys/ChangeLog *** gsl-1.7/sys/ChangeLog Tue Apr 5 15:58:03 2005 --- gsl-1.8/sys/ChangeLog Mon Nov 14 17:29:42 2005 *************** *** 1,3 **** --- 1,7 ---- + 2005-11-14 Brian Gough + + * test.c: added tests for constants + 2005-04-05 Brian Gough * infnan.c: added #include ieeefp.h for Solaris diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/sys/Makefile.in gsl-1.8/sys/Makefile.in *** gsl-1.7/sys/Makefile.in Tue Sep 13 10:05:20 2005 --- gsl-1.8/sys/Makefile.in Fri Mar 31 17:47:44 2006 *************** *** 64,74 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslsys_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslsys_la_SOURCES) $(test_SOURCES) --- 64,74 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslsys_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslsys_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/sys/test.c gsl-1.8/sys/test.c *** gsl-1.7/sys/test.c Sun Jun 26 13:25:38 2005 --- gsl-1.8/sys/test.c Mon Nov 14 17:29:52 2005 *************** *** 381,385 **** --- 381,473 ---- gsl_test_rel (x, 2.0 / 3.0, 4 * GSL_DBL_EPSILON, "gsl_fdiv(2,3)"); } + + /* Test constants in gsl_math.h */ + + { + double x = log(M_E); + gsl_test_rel (x, 1.0, 4 * GSL_DBL_EPSILON, "ln(M_E)"); + } + + { + double x=pow(2.0,M_LOG2E); + gsl_test_rel (x, exp(1.0), 4 * GSL_DBL_EPSILON, "2^M_LOG2E"); + } + + { + double x=pow(10.0,M_LOG10E); + gsl_test_rel (x, exp(1.0), 4 * GSL_DBL_EPSILON, "10^M_LOG10E"); + } + + { + double x=pow(M_SQRT2, 2.0); + gsl_test_rel (x, 2.0, 4 * GSL_DBL_EPSILON, "M_SQRT2^2"); + } + + { + double x=pow(M_SQRT1_2, 2.0); + gsl_test_rel (x, 1.0/2.0, 4 * GSL_DBL_EPSILON, "M_SQRT1_2"); + } + + { + double x=pow(M_SQRT3, 2.0); + gsl_test_rel (x, 3.0, 4 * GSL_DBL_EPSILON, "M_SQRT3^2"); + } + + { + double x = M_PI; + gsl_test_rel (x, 3.1415926535897932384626433832795, 4 * GSL_DBL_EPSILON, "M_PI"); + } + + { + double x = 2 * M_PI_2; + gsl_test_rel (x, M_PI, 4 * GSL_DBL_EPSILON, "2*M_PI_2"); + } + + { + double x = 4 * M_PI_4; + gsl_test_rel (x, M_PI, 4 * GSL_DBL_EPSILON, "4*M_PI_4"); + } + + { + double x = pow(M_SQRTPI, 2.0); + gsl_test_rel (x, M_PI, 4 * GSL_DBL_EPSILON, "M_SQRTPI^2"); + } + + { + double x = pow(M_2_SQRTPI, 2.0); + gsl_test_rel (x, 4/M_PI, 4 * GSL_DBL_EPSILON, "M_SQRTPI^2"); + } + + { + double x = M_1_PI; + gsl_test_rel (x, 1/M_PI, 4 * GSL_DBL_EPSILON, "M_1_SQRTPI"); + } + + { + double x = M_2_PI; + gsl_test_rel (x, 2.0/M_PI, 4 * GSL_DBL_EPSILON, "M_2_PI"); + } + + { + double x = exp(M_LN10); + gsl_test_rel (x, 10, 4 * GSL_DBL_EPSILON, "exp(M_LN10)"); + } + + { + double x = exp(M_LN2); + gsl_test_rel (x, 2, 4 * GSL_DBL_EPSILON, "exp(M_LN2)"); + } + + { + double x = exp(M_LNPI); + gsl_test_rel (x, M_PI, 4 * GSL_DBL_EPSILON, "exp(M_LNPI)"); + } + + { + double x = M_EULER; + gsl_test_rel (x, 0.5772156649015328606065120900824, 4 * GSL_DBL_EPSILON, "M_EULER"); + } + exit (gsl_test_summary ()); } diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/templates_off.h gsl-1.8/templates_off.h *** gsl-1.7/templates_off.h Fri Jul 25 15:19:22 2003 --- gsl-1.8/templates_off.h Sat Jan 7 18:57:08 2006 *************** *** 85,87 **** --- 85,91 ---- #undef NAME #undef STRING #undef EXPAND + + #ifdef FP + #undef FP + #endif diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/templates_on.h gsl-1.8/templates_on.h *** gsl-1.7/templates_on.h Fri Jul 25 15:19:22 2003 --- gsl-1.8/templates_on.h Sat Jan 7 18:57:08 2006 *************** *** 11,16 **** --- 11,17 ---- #define ATOMIC long double #define USES_LONGDOUBLE 1 #define MULTIPLICITY 2 + #define FP 1 #define IN_FORMAT "%Lg" #define OUT_FORMAT "%Lg" #define ATOMIC_IO ATOMIC *************** *** 24,29 **** --- 25,31 ---- #define SHORT_REAL #define ATOMIC double #define MULTIPLICITY 2 + #define FP 1 #define IN_FORMAT "%lg" #define OUT_FORMAT "%g" #define ATOMIC_IO ATOMIC *************** *** 37,42 **** --- 39,45 ---- #define SHORT_REAL float #define ATOMIC float #define MULTIPLICITY 2 + #define FP 1 #define IN_FORMAT "%g" #define OUT_FORMAT "%g" #define ATOMIC_IO ATOMIC *************** *** 50,55 **** --- 53,59 ---- #define ATOMIC long double #define USES_LONGDOUBLE 1 #define MULTIPLICITY 1 + #define FP 1 #define IN_FORMAT "%Lg" #define OUT_FORMAT "%Lg" #define ATOMIC_IO ATOMIC *************** *** 62,67 **** --- 66,72 ---- #define SHORT #define ATOMIC double #define MULTIPLICITY 1 + #define FP 1 #define IN_FORMAT "%lg" #define OUT_FORMAT "%g" #define ATOMIC_IO ATOMIC *************** *** 74,79 **** --- 79,85 ---- #define SHORT float #define ATOMIC float #define MULTIPLICITY 1 + #define FP 1 #define IN_FORMAT "%g" #define OUT_FORMAT "%g" #define ATOMIC_IO ATOMIC diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/test/Makefile.in gsl-1.8/test/Makefile.in *** gsl-1.7/test/Makefile.in Tue Sep 13 10:05:21 2005 --- gsl-1.8/test/Makefile.in Fri Mar 31 17:47:44 2006 *************** *** 56,66 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgsltest_la_SOURCES) DIST_SOURCES = $(libgsltest_la_SOURCES) --- 56,66 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgsltest_la_SOURCES) DIST_SOURCES = $(libgsltest_la_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/utils/Makefile.in gsl-1.8/utils/Makefile.in *** gsl-1.7/utils/Makefile.in Tue Sep 13 10:05:22 2005 --- gsl-1.8/utils/Makefile.in Fri Mar 31 17:47:45 2006 *************** *** 55,65 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libutils_la_SOURCES) DIST_SOURCES = $(libutils_la_SOURCES) --- 55,65 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libutils_la_SOURCES) DIST_SOURCES = $(libutils_la_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/vector/Makefile.in gsl-1.8/vector/Makefile.in *** gsl-1.7/vector/Makefile.in Tue Sep 13 10:05:24 2005 --- gsl-1.8/vector/Makefile.in Fri Mar 31 17:47:45 2006 *************** *** 68,78 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslvector_la_SOURCES) $(test_SOURCES) \ $(test_static_SOURCES) --- 68,78 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslvector_la_SOURCES) $(test_SOURCES) \ $(test_static_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/wavelet/ChangeLog gsl-1.8/wavelet/ChangeLog *** gsl-1.7/wavelet/ChangeLog Wed Dec 29 16:41:26 2004 --- gsl-1.8/wavelet/ChangeLog Fri Mar 17 15:52:39 2006 *************** *** 1,3 **** --- 1,8 ---- + 2006-03-16 Brian Gough + + * changed to gsl_wavelet_forward and gsl_wavelet_backward enums + throughout internally instead of forward and backward. + 2004-12-29 Brian Gough * gsl_wavelet.h: added missing includes, use GSL_VAR instead of diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/wavelet/Makefile.in gsl-1.8/wavelet/Makefile.in *** gsl-1.7/wavelet/Makefile.in Tue Sep 13 10:05:25 2005 --- gsl-1.8/wavelet/Makefile.in Fri Mar 31 17:47:45 2006 *************** *** 65,75 **** am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslwavelet_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslwavelet_la_SOURCES) $(test_SOURCES) --- 65,75 ---- am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ! LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) ! LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(libgslwavelet_la_SOURCES) $(test_SOURCES) DIST_SOURCES = $(libgslwavelet_la_SOURCES) $(test_SOURCES) diff -C2 -rcP -x '*.info' -x '*.info-*' gsl-1.7/wavelet/dwt.c gsl-1.8/wavelet/dwt.c *** gsl-1.7/wavelet/dwt.c Sun Jun 26 13:25:38 2005 --- gsl-1.8/wavelet/dwt.c Fri Mar 17 15:52:39 2006 *************** *** 75,81 **** n1 = n - 1; nh = n >> 1; ! if (dir == forward) { for (ii = 0, i = 0; i < n; i += 2, ii++) { --- 75,81 ---- n1 = n - 1; nh = n >> 1; ! if (dir == gsl_wavelet_forward) { for (ii = 0, i = 0; i < n; i += 2, ii++) { *************** *** 132,138 **** return GSL_SUCCESS; } ! if (dir == forward) { for (i = n; i >= 2; i >>= 1) { --- 132,138 ---- return GSL_SUCCESS; } ! if (dir == gsl_wavelet_forward) { for (i = n; i >= 2; i >>= 1) { *************** *** 155,161 **** double *data, size_t stride, size_t n, gsl_wavelet_workspace * work) { ! return gsl_wavelet_transform (w, data, stride, n, forward, work); } int --- 155,161 ---- double *data, size_t stride, size_t n, gsl_wavelet_workspace * work) { ! return gsl_wavelet_transform (w, data, stride, n, gsl_wavelet_forward, work); } int *************** *** 163,169 **** double *data, size_t stride, size_t n, gsl_wavelet_workspace * work) { ! return gsl_wavelet_transform (w, data, stride, n, backward, work); } --- 163,169 ---- double *data, size_t stride, size_t n, gsl_wavelet_workspace * work) { ! return gsl_wavelet_transform (w, data, stride, n, gsl_wavelet_backward, work); } *************** *** 205,211 **** return GSL_SUCCESS; } ! if (dir == forward) { for (i = 0; i < size1; i++) /* for every row j */ { --- 205,211 ---- return GSL_SUCCESS; } ! if (dir == gsl_wavelet_forward) { for (i = 0; i < size1; i++) /* for every row j */ { *************** *** 259,265 **** return GSL_SUCCESS; } ! if (dir == forward) { for (i = size1; i >= 2; i >>= 1) { --- 259,265 ---- return GSL_SUCCESS; } ! if (dir == gsl_wavelet_forward) { for (i = size1; i >= 2; i >>= 1) { *************** *** 291,296 **** --- 291,330 ---- return GSL_SUCCESS; } + + int + gsl_wavelet2d_transform_forward (const gsl_wavelet * w, + double *data, size_t tda, size_t size1, + size_t size2, gsl_wavelet_workspace * work) + { + return gsl_wavelet2d_transform (w, data, tda, size1, size2, gsl_wavelet_forward, work); + } + + int + gsl_wavelet2d_transform_inverse (const gsl_wavelet * w, + double *data, size_t tda, size_t size1, + size_t size2, gsl_wavelet_workspace * work) + { + return gsl_wavelet2d_transform (w, data, tda, size1, size2, gsl_wavelet_backward, work); + } + + int + gsl_wavelet2d_nstransform_forward (const gsl_wavelet * w, + double *data, size_t tda, size_t size1, + size_t size2, gsl_wavelet_workspace * work) + { + return gsl_wavelet2d_nstransform (w, data, tda, size1, size2, gsl_wavelet_forward, work); + } + + int + gsl_wavelet2d_nstransform_inverse (const gsl_wavelet * w, + double *data, size_t tda, size_t size1, + size_t size2, gsl_wavelet_workspace * work) + { + return gsl_wavelet2d_nstransform (w, data, tda, size1, size2, gsl_wavelet_backward, work); + } + + int gsl_wavelet2d_transform_matrix (const gsl_wavelet * w, gsl_matrix * a, *************** *** 309,315 **** { return gsl_wavelet2d_transform (w, a->data, a->tda, a->size1, a->size2, ! forward, work); } int --- 343,349 ---- { return gsl_wavelet2d_transform (w, a->data, a->tda, a->size1, a->size2, ! gsl_wavelet_forward, work); } int *************** *** 319,325 **** { return gsl_wavelet2d_transform (w, a->data, a->tda, a->size1, a->size2, ! backward, work); } int --- 353,359 ---- { return gsl_wavelet2d_transform (w, a->data, a->tda, a->size1, a->size2, ! gsl_wavelet_backward, work); } int *************** *** 340,346 **** { return gsl_wavelet2d_nstransform (w, a->data, a->tda, a->size1, a->size2, ! forward, work); } int --- 374,380 ---- { return gsl_wavelet2d_nstransform (w, a->data, a->tda, a->size1, a->size2, ! gsl_wavelet_forward, work); } int *************** *** 350,356 **** { return gsl_wavelet2d_nstransform (w, a->data, a->tda, a->size1, a->size2, ! backward, work); } --- 384,390 ---- { return gsl_wavelet2d_nstransform (w, a->data, a->tda, a->size1, a->size2, ! gsl_wavelet_backward, work); }