fftw-3.3.11/0000755000175000017500000000000015170657420006315 5fftw-3.3.11/m4/0000755000175000017500000000000015170657420006635 5fftw-3.3.11/m4/acx_mpi.m40000644000175000017500000000707215170655127010447 dnl @synopsis ACX_MPI([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) dnl @summary figure out how to compile/link code with MPI dnl @category InstalledPackages dnl dnl This macro tries to find out how to compile programs that dnl use MPI (Message Passing Interface), a standard API for dnl parallel process communication (see http://www-unix.mcs.anl.gov/mpi/) dnl dnl On success, it sets the MPICC, MPICXX, or MPIF77 output variable to dnl the name of the MPI compiler, depending upon the current language. dnl (This may just be $CC/$CXX/$F77, but is more often something like dnl mpicc/mpiCC/mpif77.) It also sets MPILIBS to any libraries that are dnl needed for linking MPI (e.g. -lmpi, if a special MPICC/MPICXX/MPIF77 dnl was not found). dnl dnl If you want to compile everything with MPI, you should set: dnl dnl CC="$MPICC" #OR# CXX="$MPICXX" #OR# F77="$MPIF77" dnl LIBS="$MPILIBS $LIBS" dnl dnl NOTE: The above assumes that you will use $CC (or whatever) dnl for linking as well as for compiling. (This is the dnl default for automake and most Makefiles.) dnl dnl The user can force a particular library/compiler by setting the dnl MPICC/MPICXX/MPIF77 and/or MPILIBS environment variables. dnl dnl ACTION-IF-FOUND is a list of shell commands to run if an MPI dnl library is found, and ACTION-IF-NOT-FOUND is a list of commands dnl to run it if it is not found. If ACTION-IF-FOUND is not specified, dnl the default action will define HAVE_MPI. dnl dnl @version 2005-09-02 dnl @license GPLWithACException dnl @author Steven G. Johnson AC_DEFUN([ACX_MPI], [ AC_PREREQ(2.50) dnl for AC_LANG_CASE AC_LANG_CASE([C], [ AC_REQUIRE([AC_PROG_CC]) AC_ARG_VAR(MPICC,[MPI C compiler command]) AC_CHECK_PROGS(MPICC, mpicc hcc mpcc mpcc_r mpxlc cmpicc, $CC) acx_mpi_save_CC="$CC" CC="$MPICC" AC_SUBST(MPICC) ], [C++], [ AC_REQUIRE([AC_PROG_CXX]) AC_ARG_VAR(MPICXX,[MPI C++ compiler command]) AC_CHECK_PROGS(MPICXX, mpic++ mpiCC mpicxx mpCC hcp mpxlC mpxlC_r cmpic++, $CXX) acx_mpi_save_CXX="$CXX" CXX="$MPICXX" AC_SUBST(MPICXX) ], [Fortran 77], [ AC_REQUIRE([AC_PROG_F77]) AC_ARG_VAR(MPIF77,[MPI Fortran compiler command]) AC_CHECK_PROGS(MPIF77, mpif77 hf77 mpxlf mpf77 mpif90 mpf90 mpxlf90 mpxlf95 mpxlf_r cmpifc cmpif90c, $F77) acx_mpi_save_F77="$F77" F77="$MPIF77" AC_SUBST(MPIF77) ]) if test x = x"$MPILIBS"; then AC_LANG_CASE([C], [AC_CHECK_FUNC(MPI_Init, [MPILIBS=" "])], [C++], [AC_CHECK_FUNC(MPI_Init, [MPILIBS=" "])], [Fortran 77], [AC_MSG_CHECKING([for MPI_Init]) AC_TRY_LINK([],[ call MPI_Init], [MPILIBS=" " AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)])]) fi if test x = x"$MPILIBS"; then AC_CHECK_LIB(mpi, MPI_Init, [MPILIBS="-lmpi"]) fi if test x = x"$MPILIBS"; then AC_CHECK_LIB(mpich, MPI_Init, [MPILIBS="-lmpich"]) fi dnl We have to use AC_TRY_COMPILE and not AC_CHECK_HEADER because the dnl latter uses $CPP, not $CC (which may be mpicc). AC_LANG_CASE([C], [if test x != x"$MPILIBS"; then AC_MSG_CHECKING([for mpi.h]) AC_TRY_COMPILE([#include ],[],[AC_MSG_RESULT(yes)], [MPILIBS="" AC_MSG_RESULT(no)]) fi], [C++], [if test x != x"$MPILIBS"; then AC_MSG_CHECKING([for mpi.h]) AC_TRY_COMPILE([#include ],[],[AC_MSG_RESULT(yes)], [MPILIBS="" AC_MSG_RESULT(no)]) fi]) AC_LANG_CASE([C], [CC="$acx_mpi_save_CC"], [C++], [CXX="$acx_mpi_save_CXX"], [Fortran 77], [F77="$acx_mpi_save_F77"]) AC_SUBST(MPILIBS) # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: if test x = x"$MPILIBS"; then $2 : else ifelse([$1],,[AC_DEFINE(HAVE_MPI,1,[Define if you have the MPI library.])],[$1]) : fi ])dnl ACX_MPI fftw-3.3.11/m4/acx_pthread.m40000644000175000017500000002301515170655127011304 dnl @synopsis ACX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) dnl @summary figure out how to build C programs using POSIX threads dnl @category InstalledPackages dnl dnl This macro figures out how to build C programs using POSIX dnl threads. It sets the PTHREAD_LIBS output variable to the threads dnl library and linker flags, and the PTHREAD_CFLAGS output variable dnl to any special C compiler flags that are needed. (The user can also dnl force certain compiler flags/libs to be tested by setting these dnl environment variables.) dnl dnl Also sets PTHREAD_CC to any special C compiler that is needed for dnl multi-threaded programs (defaults to the value of CC otherwise). dnl (This is necessary on AIX to use the special cc_r compiler alias.) dnl dnl NOTE: You are assumed to not only compile your program with these dnl flags, but also link it with them as well. e.g. you should link dnl with $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS dnl dnl If you are only building threads programs, you may wish to dnl use these variables in your default LIBS, CFLAGS, and CC: dnl dnl LIBS="$PTHREAD_LIBS $LIBS" dnl CFLAGS="$CFLAGS $PTHREAD_CFLAGS" dnl CC="$PTHREAD_CC" dnl dnl In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute dnl constant has a nonstandard name, defines PTHREAD_CREATE_JOINABLE dnl to that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX). dnl dnl ACTION-IF-FOUND is a list of shell commands to run if a threads dnl library is found, and ACTION-IF-NOT-FOUND is a list of commands dnl to run it if it is not found. If ACTION-IF-FOUND is not specified, dnl the default action will define HAVE_PTHREAD. dnl dnl Please let the authors know if this macro fails on any platform, dnl or if you have any other suggestions or comments. This macro was dnl based on work by SGJ on autoconf scripts for FFTW (www.fftw.org) dnl (with help from M. Frigo), as well as ac_pthread and hb_pthread dnl macros posted by Alejandro Forero Cuervo to the autoconf macro dnl repository. We are also grateful for the helpful feedback of dnl numerous users. dnl dnl @version 2006-09-15 dnl @license GPLWithACException dnl @author Steven G. Johnson AC_DEFUN([ACX_PTHREAD], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_LANG_SAVE AC_LANG_C acx_pthread_ok=no # We used to check for pthread.h first, but this fails if pthread.h # requires special compiler flags (e.g. on True64 or Sequent). # It gets checked for in the link test anyway. # First of all, check if the user has set any of the PTHREAD_LIBS, # etcetera environment variables, and if threads linking works using # them: if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS]) AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes) AC_MSG_RESULT($acx_pthread_ok) if test x"$acx_pthread_ok" = xno; then PTHREAD_LIBS="" PTHREAD_CFLAGS="" fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" fi # We must check for the threads library under a number of different # names; the ordering is very important because some systems # (e.g. DEC) have both -lpthread and -lpthreads, where one of the # libraries is broken (non-POSIX). # Create a list of thread flags to try. Items starting with a "-" are # C compiler flags, and other items are library names, except for "none" # which indicates that we try without any flags at all, and "pthread-config" # which is a program returning the flags for the Pth emulation library. acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mt -mthreads pthread --thread-safe pthread-config" # The ordering *is* (sometimes) important. Some notes on the # individual items follow: # pthreads: AIX (must check this before -lpthread) # none: in case threads are in libc; should be tried before -Kthread and # other compiler flags to prevent continual compiler warnings # -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) # -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) # -pthreads: Solaris/gcc # -mthreads: Mingw32/gcc, Lynx/gcc # -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it # doesn't hurt to check since this sometimes defines pthreads too; # also defines -D_REENTRANT) # ... -mt is also the pthreads flag for HP/aCC # (where it should come before -mthreads to avoid spurious warnings) # pthread: Linux, etcetera # --thread-safe: KAI C++ # pthread-config: use pthread-config program (for GNU Pth library) case "${host_cpu}-${host_os}" in *solaris*) # On Solaris (at least, for some versions), libc contains stubbed # (non-functional) versions of the pthreads routines, so link-based # tests will erroneously succeed. (We need to link with -pthreads/-mt/ # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather # a function called by this macro, so we could check for that, but # who knows whether they'll stub that too in a future libc.) So, # we'll just look for -pthreads and -lpthread first: acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags" ;; esac if test x"$acx_pthread_ok" = xno; then for flag in $acx_pthread_flags; do case $flag in none) AC_MSG_CHECKING([whether pthreads work without any flags]) ;; -*) AC_MSG_CHECKING([whether pthreads work with $flag]) PTHREAD_CFLAGS="$flag" ;; pthread-config) AC_CHECK_PROG(acx_pthread_config, pthread-config, yes, no) if test x"$acx_pthread_config" = xno; then continue; fi PTHREAD_CFLAGS="`pthread-config --cflags`" PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" ;; *) AC_MSG_CHECKING([for the pthreads library -l$flag]) PTHREAD_LIBS="-l$flag" ;; esac save_LIBS="$LIBS" save_CFLAGS="$CFLAGS" LIBS="$PTHREAD_LIBS $LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # Check for various functions. We must include pthread.h, # since some functions may be macros. (On the Sequent, we # need a special flag -Kthread to make this header compile.) # We check for pthread_join because it is in -lpthread on IRIX # while pthread_create is in libc. We check for pthread_attr_init # due to DEC craziness with -lpthreads. We check for # pthread_cleanup_push because it is one of the few pthread # functions on Solaris that doesn't have a non-functional libc stub. # We try pthread_create on general principles. AC_TRY_LINK([#include ], [pthread_t th; pthread_join(th, (void**) 0); pthread_attr_init((pthread_attr_t*) 0); pthread_cleanup_push((void(*)(void *)) 0, (void*) 0); pthread_create((pthread_t*) 0, (pthread_attr_t*) 0, (void*(*)(void *)) 0, (void*) 0); pthread_cleanup_pop(0); ], [acx_pthread_ok=yes]) LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" AC_MSG_RESULT($acx_pthread_ok) if test "x$acx_pthread_ok" = xyes; then break; fi PTHREAD_LIBS="" PTHREAD_CFLAGS="" done fi # Various other checks: if test "x$acx_pthread_ok" = xyes; then save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. AC_MSG_CHECKING([for joinable pthread attribute]) attr_name=unknown for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do AC_TRY_LINK([#include ], [int attr=$attr; return attr;], [attr_name=$attr; break]) done AC_MSG_RESULT($attr_name) if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name, [Define to necessary symbol if this constant uses a non-standard name on your system.]) fi AC_MSG_CHECKING([if more special flags are required for pthreads]) flag=no case "${host_cpu}-${host_os}" in *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; esac AC_MSG_RESULT(${flag}) if test "x$flag" != xno; then PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" # More AIX lossage: must compile with xlc_r or cc_r if test x"$GCC" != xyes; then AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC}) else PTHREAD_CC=$CC fi else PTHREAD_CC="$CC" fi AC_SUBST(PTHREAD_LIBS) AC_SUBST(PTHREAD_CFLAGS) AC_SUBST(PTHREAD_CC) # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: if test x"$acx_pthread_ok" = xyes; then ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1]) : else acx_pthread_ok=no $2 fi AC_LANG_RESTORE ])dnl ACX_PTHREAD fftw-3.3.11/m4/acx_sve.m40000644000175000017500000000157115170655127010455 dnl @synopsis ACX_SVE([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) dnl @summary figure out whether a simple SVE program can be compiled dnl @category InstalledPackages dnl dnl This macro tries to compile a simple SVE program that uses dnl the ACLE SVE extensions. dnl dnl ACTION-IF-FOUND is a list of shell commands to run if a SVE dnl program can be compiled, and ACTION-IF-NOT-FOUND is a list of commands dnl to run it cannot. dnl dnl @version 2024-04-15 dnl @license GPLWithACException dnl @author Gilles Gouaillardet AC_DEFUN([ACX_SVE], [ AC_MSG_CHECKING([whether a SVE program can be compiled]) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[#if defined(__GNUC__) && !defined(__ARM_FEATURE_SVE) #error compiling without SVE support #endif]])],[AC_MSG_RESULT([yes]) $1], [AC_MSG_RESULT([no]) $2]) ])dnl ACX_SVE fftw-3.3.11/m4/ax_cc_maxopt.m40000644000175000017500000001132315170655127011466 dnl @synopsis AX_CC_MAXOPT dnl @summary turn on optimization flags for the C compiler dnl @category C dnl dnl Try to turn on "good" C optimization flags for various compilers dnl and architectures, for some definition of "good". (In our case, dnl good for FFTW and hopefully for other scientific codes. Modify dnl as needed.) dnl dnl The user can override the flags by setting the CFLAGS environment dnl variable. dnl dnl Note also that the flags assume that ANSI C aliasing rules are dnl followed by the code (e.g. for gcc's -fstrict-aliasing), and that dnl floating-point computations can be re-ordered as needed. dnl dnl Requires macros: AX_CHECK_COMPILE_FLAG, AX_COMPILER_VENDOR, dnl dnl @version 2023-05-14 dnl @license GPLWithACException dnl @author Steven G. Johnson and Matteo Frigo. AC_DEFUN([AX_CC_MAXOPT], [ AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([AX_COMPILER_VENDOR]) AC_REQUIRE([AC_CANONICAL_HOST]) # Try to determine "good" native compiler flags if none specified via CFLAGS if test "x$ac_test_CFLAGS" != "xset" -a "x$ac_test_CFLAGS" != "xy"; then CFLAGS="" case $ax_cv_c_compiler_vendor in dec) CFLAGS="-newc -w0 -O5 -ansi_alias -ansi_args -fp_reorder -tune host" ;; sun) CFLAGS="-native -fast -xO5 -dalign" ;; hp) CFLAGS="+Oall +Optrs_ansi +DSnative" ;; ibm) xlc_opt="-qarch=auto -qtune=auto" AX_CHECK_COMPILE_FLAG($xlc_opt, CFLAGS="-O3 -qalias=ansi -w $xlc_opt", [CFLAGS="-O3 -qalias=ansi -w"]) ;; intel) CFLAGS="-O3" # Intel seems to have changed the spelling of this flag recently icc_ansi_alias="unknown" for flag in -ansi-alias -ansi_alias; do AX_CHECK_COMPILE_FLAG($flag, [icc_ansi_alias=$flag; break]) done if test "x$icc_ansi_alias" != xunknown; then CFLAGS="$CFLAGS $icc_ansi_alias" fi AX_CHECK_COMPILE_FLAG(-malign-double, CFLAGS="$CFLAGS -malign-double") # We used to check for architecture flags here, e.g. -xHost etc., # but these flags are problematic. On icc-12.0.0, "-mavx -xHost" # overrides -mavx with -xHost, generating SSE2 code instead of AVX # code. ICC does not seem to support -mtune=host or equivalent # non-ABI changing flag. ;; clang) CFLAGS="-O3 -fomit-frame-pointer" AX_CHECK_COMPILE_FLAG(-mtune=native, CFLAGS="$CFLAGS -mtune=native") AX_CHECK_COMPILE_FLAG(-fstrict-aliasing,CFLAGS="$CFLAGS -fstrict-aliasing") ;; gnu) # Default optimization flags for gcc on all systems. # Somehow -O3 does not imply -fomit-frame-pointer on ia32 CFLAGS="-O3 -fomit-frame-pointer" # tune for the host by default AX_CHECK_COMPILE_FLAG(-mtune=native, CFLAGS="$CFLAGS -mtune=native") # -malign-double for x86 systems AX_CHECK_COMPILE_FLAG(-malign-double, CFLAGS="$CFLAGS -malign-double") # -fstrict-aliasing for gcc-2.95+ AX_CHECK_COMPILE_FLAG(-fstrict-aliasing, CFLAGS="$CFLAGS -fstrict-aliasing") # -fno-schedule-insns is pretty much required on all risc # processors. # # gcc performs one pass of instruction scheduling, then a pass of # register allocation, then another pass of instruction # scheduling. The first pass reorders instructions in a way that # is pretty much the worst possible for the purposes of register # allocation. We disable the first pass. AX_CHECK_COMPILE_FLAG(-fno-schedule-insns, CFLAGS="$CFLAGS -fno-schedule-insns") # flags to enable power ISA 2.07 instructions with gcc (always true with vsx) if test "$have_vsx" = "yes"; then AX_CHECK_COMPILE_FLAG(-mcpu=power8, CFLAGS="$CFLAGS -mcpu=power8") AX_CHECK_COMPILE_FLAG(-mpower8-fusion, CFLAGS="$CFLAGS -mpower8-fusion") AX_CHECK_COMPILE_FLAG(-mpower8-vector, CFLAGS="$CFLAGS -mpower8-vector") AX_CHECK_COMPILE_FLAG(-mdirect-move, CFLAGS="$CFLAGS -mdirect-move") fi ;; esac if test -z "$CFLAGS"; then echo "" echo "********************************************************" echo "* WARNING: Don't know the best CFLAGS for this system *" echo "* Use ./configure CFLAGS=... to specify your own flags *" echo "* (otherwise, a default of CFLAGS=-O3 will be used) *" echo "********************************************************" echo "" CFLAGS="-O3" fi AX_CHECK_COMPILE_FLAG($CFLAGS, [], [ echo "" echo "********************************************************" echo "* WARNING: The guessed CFLAGS don't seem to work with *" echo "* your compiler. *" echo "* Use ./configure CFLAGS=... to specify your own flags *" echo "********************************************************" echo "" CFLAGS="" ]) fi ]) fftw-3.3.11/m4/ax_check_compile_flag.m40000644000175000017500000000407015170655127013270 # =========================================================================== # https://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html # =========================================================================== # # SYNOPSIS # # AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT]) # # DESCRIPTION # # Check whether the given FLAG works with the current language's compiler # or gives an error. (Warnings, however, are ignored) # # ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on # success/failure. # # If EXTRA-FLAGS is defined, it is added to the current language's default # flags (e.g. CFLAGS) when the check is done. The check is thus made with # the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to # force the compiler to issue an error when a bad flag is given. # # INPUT gives an alternative input source to AC_COMPILE_IFELSE. # # NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this # macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG. # # LICENSE # # Copyright (c) 2008 Guido U. Draheim # Copyright (c) 2011 Maarten Bosmans # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. #serial 6 AC_DEFUN([AX_CHECK_COMPILE_FLAG], [AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [ ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1" AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])], [AS_VAR_SET(CACHEVAR,[yes])], [AS_VAR_SET(CACHEVAR,[no])]) _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags]) AS_VAR_IF(CACHEVAR,yes, [m4_default([$2], :)], [m4_default([$3], :)]) AS_VAR_POPDEF([CACHEVAR])dnl ])dnl AX_CHECK_COMPILE_FLAGS fftw-3.3.11/m4/ax_check_link_flag.m40000644000175000017500000000364415170655127012603 # =========================================================================== # https://www.gnu.org/software/autoconf-archive/ax_check_link_flag.html # =========================================================================== # # SYNOPSIS # # AX_CHECK_LINK_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT]) # # DESCRIPTION # # Check whether the given FLAG works with the linker or gives an error. # (Warnings, however, are ignored) # # ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on # success/failure. # # If EXTRA-FLAGS is defined, it is added to the linker's default flags # when the check is done. The check is thus made with the flags: "LDFLAGS # EXTRA-FLAGS FLAG". This can for example be used to force the linker to # issue an error when a bad flag is given. # # INPUT gives an alternative input source to AC_LINK_IFELSE. # # NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this # macro in sync with AX_CHECK_{PREPROC,COMPILE}_FLAG. # # LICENSE # # Copyright (c) 2008 Guido U. Draheim # Copyright (c) 2011 Maarten Bosmans # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. #serial 6 AC_DEFUN([AX_CHECK_LINK_FLAG], [AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_ldflags_$4_$1])dnl AC_CACHE_CHECK([whether the linker accepts $1], CACHEVAR, [ ax_check_save_flags=$LDFLAGS LDFLAGS="$LDFLAGS $4 $1" AC_LINK_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])], [AS_VAR_SET(CACHEVAR,[yes])], [AS_VAR_SET(CACHEVAR,[no])]) LDFLAGS=$ax_check_save_flags]) AS_VAR_IF(CACHEVAR,yes, [m4_default([$2], :)], [m4_default([$3], :)]) AS_VAR_POPDEF([CACHEVAR])dnl ])dnl AX_CHECK_LINK_FLAGS fftw-3.3.11/m4/ax_compiler_vendor.m40000644000175000017500000000275415170655127012710 dnl @synopsis AX_COMPILER_VENDOR dnl @summary find the vendor (gnu, intel, etc.) of the C/C++ compiler dnl @category C dnl @category C++ dnl dnl Determine the vendor of the C/C++ compiler, e.g., gnu, intel, ibm, dnl sun, hp, borland, comeau, dec, cray, kai, lcc, metrowerks, sgi, dnl microsoft, watcom, etc. The vendor is returned in the cache variable dnl $ax_cv_c_compiler_vendor for C and $ax_cv_cxx_compiler_vendor for C++. dnl dnl @version 2007-08-01 dnl @license GPLWithACException dnl @author Steven G. Johnson with Matteo Frigo AC_DEFUN([AX_COMPILER_VENDOR], [ AC_CACHE_CHECK([for _AC_LANG compiler vendor], ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor, [ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor=unknown # note: don't check for gcc first since some other compilers define __GNUC__ for ventest in intel:__ICC,__ECC,__INTEL_COMPILER ibm:__ibmxl__,__xlc__,__xlC__,__IBMC__,__IBMCPP__ pathscale:__PATHCC__,__PATHSCALE__ clang:__clang__ gnu:__GNUC__ sun:__SUNPRO_C,__SUNPRO_CC hp:__HP_cc,__HP_aCC dec:__DECC,__DECCXX,__DECC_VER,__DECCXX_VER borland:__BORLANDC__,__TURBOC__ comeau:__COMO__ cray:_CRAYC kai:__KCC lcc:__LCC__ metrowerks:__MWERKS__ sgi:__sgi,sgi microsoft:_MSC_VER watcom:__WATCOMC__ portland:__PGI; do vencpp="defined("`echo $ventest | cut -d: -f2 | sed 's/,/) || defined(/g'`")" AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[ #if !($vencpp) thisisanerror; #endif ])], [ax_cv_]_AC_LANG_ABBREV[_compiler_vendor=`echo $ventest | cut -d: -f1`; break]) done ]) ]) fftw-3.3.11/m4/ax_gcc_aligns_stack.m40000644000175000017500000000406415170655127012773 dnl @synopsis AX_GCC_ALIGNS_STACK([ACTION-IF-YES], [ACTION-IF-NO]) dnl @summary check whether gcc can align stack to 8-byte boundary dnl @category Misc dnl dnl Check to see if we are using a version of gcc that aligns the stack dnl (true in gcc-2.95+, which have the -mpreferred-stack-boundary flag). dnl Also, however, checks whether main() is correctly aligned by the dnl OS/libc/..., as well as for a bug in the stack alignment of gcc-2.95.x dnl (see http://gcc.gnu.org/ml/gcc-bugs/1999-11/msg00259.html). dnl dnl ACTION-IF-YES/ACTION-IF-NO are shell commands to execute if we are dnl using gcc and the stack is/isn't aligned, respectively. dnl dnl Requires macro: AX_CHECK_COMPILE_FLAG, AX_GCC_VERSION dnl dnl @version 2023-05-14 dnl @license GPLWithACException dnl @author Steven G. Johnson AC_DEFUN([AX_GCC_ALIGNS_STACK], [ AC_REQUIRE([AC_PROG_CC]) ax_gcc_aligns_stack=no if test "$GCC" = "yes"; then AX_CHECK_COMPILE_FLAG(-mpreferred-stack-boundary=4, [ AC_MSG_CHECKING([whether the stack is at least 8-byte aligned by gcc]) save_CFLAGS="$CFLAGS" CFLAGS="-O" AX_CHECK_COMPILE_FLAG(-malign-double, CFLAGS="$CFLAGS -malign-double") AC_TRY_RUN([#include # include struct yuck { int blechh; }; int one(void) { return 1; } struct yuck ick(void) { struct yuck y; y.blechh = 3; return y; } # define CHK_ALIGN(x) if ((((long) &(x)) & 0x7)) { fprintf(stderr, "bad alignment of " #x "\n"); exit(1); } void blah(int foo) { double foobar; CHK_ALIGN(foobar); } int main2(void) {double ok1; struct yuck y; double ok2; CHK_ALIGN(ok1); CHK_ALIGN(ok2); y = ick(); blah(one()); return 0;} int main(void) { if ((((long) (__builtin_alloca(0))) & 0x7)) __builtin_alloca(4); return main2(); } ], [ax_gcc_aligns_stack=yes; ax_gcc_stack_align_bug=no], ax_gcc_stack_align_bug=yes, [AX_GCC_VERSION(3,0,0, ax_gcc_stack_align_bug=no, ax_gcc_stack_align_bug=yes)]) CFLAGS="$save_CFLAGS" AC_MSG_RESULT($ax_gcc_aligns_stack) ]) fi if test "$ax_gcc_aligns_stack" = yes; then m4_default([$1], :) else m4_default([$2], :) fi ]) fftw-3.3.11/m4/ax_gcc_version.m40000644000175000017500000000215115170655127012011 dnl @synopsis AX_GCC_VERSION(MAJOR, MINOR, PATCHLEVEL, [ACTION-SUCCESS], [ACTION-FAILURE]) dnl @summary check whether gcc is at least version MAJOR.MINOR.PATCHLEVEL dnl @category InstalledPackages dnl dnl Check whether we are using gcc and, if so, whether its version dnl is at least MAJOR.MINOR.PATCHLEVEL dnl dnl ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on dnl success/failure. dnl dnl @version 2005-05-30 dnl @license GPLWithACException dnl @author Steven G. Johnson and Matteo Frigo. AC_DEFUN([AX_GCC_VERSION], [ AC_REQUIRE([AC_PROG_CC]) AC_CACHE_CHECK(whether we are using gcc $1.$2.$3 or later, ax_cv_gcc_$1_$2_$3, [ ax_cv_gcc_$1_$2_$3=no if test "$GCC" = "yes"; then dnl The semicolon after "yes" below is to pacify NeXT's syntax-checking cpp. AC_EGREP_CPP(yes, [ #ifdef __GNUC__ # if (__GNUC__ > $1) || (__GNUC__ == $1 && __GNUC_MINOR__ > $2) \ || (__GNUC__ == $1 && __GNUC_MINOR__ == $2 && __GNUC_PATCHLEVEL__ >= $3) yes; # endif #endif ], [ax_cv_gcc_$1_$2_$3=yes]) fi ]) if test "$ax_cv_gcc_$1_$2_$3" = yes; then m4_default([$4], :) else m4_default([$5], :) fi ]) fftw-3.3.11/m4/ax_openmp.m40000644000175000017500000000530215170655127011007 dnl @synopsis AX_OPENMP([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) dnl @summary determine how to compile programs using OpenMP dnl @category InstalledPackages dnl dnl This macro tries to find out how to compile programs that dnl use OpenMP, a standard API and set of compiler directives for dnl parallel programming (see http://www.openmp.org/). dnl dnl On success, it sets the OPENMP_CFLAGS/OPENMP_CXXFLAGS/OPENMP_FFLAGS dnl output variable to the flag (e.g. -omp) used both to compile *and* link dnl OpenMP programs in the current language. dnl dnl NOTE: You are assumed to not only compile your program with these dnl flags, but also link it with them as well. dnl dnl If you want to compile everything with OpenMP, you should set: dnl dnl CFLAGS="$CFLAGS $OPENMP_CFLAGS" dnl #OR# CXXFLAGS="$CXXFLAGS $OPENMP_CXXFLAGS" dnl #OR# FFLAGS="$FFLAGS $OPENMP_FFLAGS" dnl dnl (depending on the selected language). dnl dnl The user can override the default choice by setting the corresponding dnl environment variable (e.g. OPENMP_CFLAGS). dnl dnl ACTION-IF-FOUND is a list of shell commands to run if an OpenMP dnl flag is found, and ACTION-IF-NOT-FOUND is a list of commands dnl to run it if it is not found. If ACTION-IF-FOUND is not specified, dnl the default action will define HAVE_OPENMP. dnl dnl @version 2006-11-20 dnl @license GPLWithACException dnl @author Steven G. Johnson AC_DEFUN([AX_OPENMP], [ AC_PREREQ(2.59) dnl for _AC_LANG_PREFIX AC_CACHE_CHECK([for OpenMP flag of _AC_LANG compiler], ax_cv_[]_AC_LANG_ABBREV[]_openmp, [save[]_AC_LANG_PREFIX[]FLAGS=$[]_AC_LANG_PREFIX[]FLAGS ax_cv_[]_AC_LANG_ABBREV[]_openmp=unknown # Flags to try: -fopenmp (gcc), -openmp (icc), -mp (SGI & PGI), # -xopenmp (Sun), -omp (Tru64), -qsmp=omp (AIX), none ax_openmp_flags="-fopenmp -openmp -mp -xopenmp -omp -qsmp=omp none" if test "x$OPENMP_[]_AC_LANG_PREFIX[]FLAGS" != x; then ax_openmp_flags="$OPENMP_[]_AC_LANG_PREFIX[]FLAGS $ax_openmp_flags" fi for ax_openmp_flag in $ax_openmp_flags; do case $ax_openmp_flag in none) []_AC_LANG_PREFIX[]FLAGS=$save[]_AC_LANG_PREFIX[] ;; *) []_AC_LANG_PREFIX[]FLAGS="$save[]_AC_LANG_PREFIX[]FLAGS $ax_openmp_flag" ;; esac AC_TRY_LINK_FUNC(omp_set_num_threads, [ax_cv_[]_AC_LANG_ABBREV[]_openmp=$ax_openmp_flag; break]) done []_AC_LANG_PREFIX[]FLAGS=$save[]_AC_LANG_PREFIX[]FLAGS ]) if test "x$ax_cv_[]_AC_LANG_ABBREV[]_openmp" = "xunknown"; then m4_default([$2],:) else if test "x$ax_cv_[]_AC_LANG_ABBREV[]_openmp" != "xnone"; then OPENMP_[]_AC_LANG_PREFIX[]FLAGS=$ax_cv_[]_AC_LANG_ABBREV[]_openmp fi m4_default([$1], [AC_DEFINE(HAVE_OPENMP,1,[Define if OpenMP is enabled])]) fi AC_SUBST(OPENMP_[]_AC_LANG_PREFIX[]FLAGS) ])dnl AX_OPENMP fftw-3.3.11/m4/libtool.m40000644000175000017500000114100514761703252010465 # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996-2001, 2003-2019, 2021-2024 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 2024 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool 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. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program or library that is built # using GNU Libtool, you may include this file under the same # distribution terms that you use for the rest of that program. # # GNU Libtool 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, see . ]) # serial 63 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.64])dnl We use AC_PATH_PROGS_FEATURE_CHECK AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS=$ltmain # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_PREPARE_CC_BASENAME # ----------------------- m4_defun([_LT_PREPARE_CC_BASENAME], [ # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in @S|@*""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } ])# _LT_PREPARE_CC_BASENAME # _LT_CC_BASENAME(CC) # ------------------- # It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME, # but that macro is also expanded into generated libtool script, which # arranges for $SED and $ECHO to be set by different means. m4_defun([_LT_CC_BASENAME], [m4_require([_LT_PREPARE_CC_BASENAME])dnl AC_REQUIRE([_LT_DECL_SED])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl func_cc_basename $1 cc_basename=$func_cc_basename_result ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl _LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_DECL_FILECMD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_WITH_SYSROOT])dnl m4_require([_LT_CMD_TRUNCATE])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl 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 set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a '.a' archive for static linking (except MSVC and # ICC, which need '.lib'). libext=a with_gnu_ld=$lt_cv_prog_gnu_ld old_CC=$CC old_CFLAGS=$CFLAGS # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PREPARE_SED_QUOTE_VARS # -------------------------- # Define a few sed substitution that help us do robust quoting. m4_defun([_LT_PREPARE_SED_QUOTE_VARS], [# Backslashify metacharacters that are still active within # double-quoted strings. 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 delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ]) # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from 'configure', and 'config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # 'config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain=$ac_aux_dir/ltmain.sh ])# _LT_PROG_LTMAIN ## ------------------------------------- ## ## Accumulate code for creating libtool. ## ## ------------------------------------- ## # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the 'libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) ## ------------------------ ## ## FIXME: Eliminate VARNAME ## ## ------------------------ ## # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to 'config.status' so that its # declaration there will have the same value as in 'configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags='_LT_TAGS'dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the 'libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into 'config.status', and then the shell code to quote escape them in # for loops in 'config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # 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 sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$[]1 _LTECHO_EOF' } # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done _LT_OUTPUT_LIBTOOL_INIT ]) # _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) # ------------------------------------ # Generate a child script FILE with all initialization necessary to # reuse the environment learned by the parent script, and make the # file executable. If COMMENT is supplied, it is inserted after the # '#!' sequence but before initialization text begins. After this # macro, additional text can be appended to FILE to form the body of # the child script. The macro ends with non-zero status if the # file could not be fully written (such as if the disk is full). m4_ifdef([AS_INIT_GENERATED], [m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], [m4_defun([_LT_GENERATED_FILE_INIT], [m4_require([AS_PREPARE])]dnl [m4_pushdef([AS_MESSAGE_LOG_FD])]dnl [lt_write_fail=0 cat >$1 <<_ASEOF || lt_write_fail=1 #! $SHELL # Generated by $as_me. $2 SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$1 <<\_ASEOF || lt_write_fail=1 AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 _ASEOF test 0 = "$lt_write_fail" && chmod +x $1[]dnl m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), in case it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) _LT_GENERATED_FILE_INIT(["$CONFIG_LT"], [# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF lt_cl_silent=false exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ '$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2024 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." while test 0 != $[#] do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try '$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try '$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. lt_cl_success=: test yes = "$silent" && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, 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 TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi cfgfile=${ofile}T trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # Generated automatically by $as_me ($PACKAGE) $VERSION # NOTE: Changes made to this file will be lost: look at ltmain.sh. # Provide generalized library-building support services. # Written by Gordon Matzigkeit, 1996 _LT_COPYING _LT_LIBTOOL_TAGS # Configured defaults for sys_lib_dlsearch_path munging. : \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF cat <<'_LT_EOF' >> "$cfgfile" # ### BEGIN FUNCTIONS SHARED WITH CONFIGURE _LT_PREPARE_MUNGE_PATH_LIST _LT_PREPARE_CC_BASENAME # ### END FUNCTIONS SHARED WITH CONFIGURE _LT_EOF case $host_os in aix3*) cat <<\_LT_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 set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # 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" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Go], [_LT_LANG(GO)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG m4_ifndef([AC_PROG_GO], [ ############################################################ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_GO. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # ############################################################ m4_defun([AC_PROG_GO], [AC_LANG_PUSH(Go)dnl AC_ARG_VAR([GOC], [Go compiler command])dnl AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl _AC_ARG_VAR_LDFLAGS()dnl AC_CHECK_TOOL(GOC, gccgo) if test -z "$GOC"; then if test -n "$ac_tool_prefix"; then AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) fi fi if test -z "$GOC"; then AC_CHECK_PROG(GOC, gccgo, gccgo, false) fi ])#m4_defun ])#m4_ifndef # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([AC_PROG_GO], [LT_LANG(GO)], [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])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_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "$LT_MULTI_MODULE"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test 0 = "$_lt_result"; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) # Feature test to disable chained fixups since it is not # compatible with '-undefined dynamic_lookup' AC_CACHE_CHECK([for -no_fixup_chains linker flag], [lt_cv_support_no_fixup_chains], [ save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,-no_fixup_chains" AC_LINK_IFELSE( [AC_LANG_PROGRAM([],[])], lt_cv_support_no_fixup_chains=yes, lt_cv_support_no_fixup_chains=no ) LDFLAGS=$save_LDFLAGS ] ) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS=$save_LDFLAGS ]) AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], [lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD echo "$AR $AR_FLAGS libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD $AR $AR_FLAGS libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF int main(void) { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; darwin*) case $MACOSX_DEPLOYMENT_TARGET,$host in 10.[[012]],*|,*powerpc*-darwin[[5-8]]*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; *) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' if test yes = "$lt_cv_support_no_fixup_chains"; then AS_VAR_APPEND([_lt_dar_allow_undefined], [' $wl-no_fixup_chains']) fi ;; esac ;; esac if test yes = "$lt_cv_apple_cc_single_mod"; then _lt_dar_single_mod='$single_module' fi _lt_dar_needs_single_mod=no case $host_os in rhapsody* | darwin1.*) _lt_dar_needs_single_mod=yes ;; darwin*) # When targeting Mac OS X 10.4 (darwin 8) or later, # -single_module is the default and -multi_module is unsupported. # The toolchain on macOS 10.14 (darwin 18) and later cannot # target any OS version that needs -single_module. case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*-darwin[[567]].*|10.[[0-3]],*-darwin[[5-9]].*|10.[[0-3]],*-darwin1[[0-7]].*) _lt_dar_needs_single_mod=yes ;; esac ;; esac if test yes = "$lt_cv_ld_exported_symbols_list"; then _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' fi if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES([TAG]) # --------------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported if test yes = "$lt_cv_ld_force_load"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined case $cc_basename in ifort*|nagfor*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test yes = "$_lt_dar_can_shared"; then output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" _LT_TAGVAR(archive_expsym_cmds, $1)="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" _LT_TAGVAR(module_expsym_cmds, $1)="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" m4_if([$1], [CXX], [ if test yes = "$_lt_dar_needs_single_mod" -a yes != "$lt_cv_apple_cc_single_mod"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" _LT_TAGVAR(archive_expsym_cmds, $1)="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX([TAGNAME]) # ---------------------------------- # 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. # Store the results from the different compilers for each TAGNAME. # Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ lt_aix_libpath_sed='[ /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }]' _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib fi ]) aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [m4_divert_text([M4SH-INIT], [$1 ])])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Find how we can fake an echo command that does not interpret backslash. # In particular, with Autoconf 2.60 or later we add some code to the start # of the generated configure script that will find a shell with a builtin # printf (that we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO AC_MSG_CHECKING([how to print strings]) # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $[]1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } case $ECHO in printf*) AC_MSG_RESULT([printf]) ;; print*) AC_MSG_RESULT([print -r]) ;; *) AC_MSG_RESULT([cat]) ;; esac m4_ifdef([_AS_DETECT_SUGGESTED], [_AS_DETECT_SUGGESTED([ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test "X`printf %s $ECHO`" = "X$ECHO" \ || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_WITH_SYSROOT # ---------------- AC_DEFUN([_LT_WITH_SYSROOT], [m4_require([_LT_DECL_SED])dnl AC_MSG_CHECKING([for sysroot]) AC_ARG_WITH([sysroot], [AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], [Search for dependent libraries within DIR (or the compiler's sysroot if not specified).])], [], [with_sysroot=no]) dnl lt_sysroot will always be passed unquoted. We quote it here dnl in case the user passed a directory name. lt_sysroot= case $with_sysroot in #( yes) if test yes = "$GCC"; then # Trim trailing / since we'll always append absolute paths and we want # to avoid //, if only for less confusing output for the user. lt_sysroot=`$CC --print-sysroot 2>/dev/null | $SED 's:/\+$::'` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) AC_MSG_RESULT([$with_sysroot]) AC_MSG_ERROR([The sysroot must be an absolute path.]) ;; esac AC_MSG_RESULT([${lt_sysroot:-no}]) _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl [dependent libraries, and where our libraries should be installed.])]) # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test no = "$enable_libtool_lock" || 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 what ABI is being produced by ac_compile, and set mode # options accordingly. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `$FILECMD conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE=32 ;; *ELF-64*) HPUX_IA64_MODE=64 ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test yes = "$lt_cv_prog_gnu_ld"; then case `$FILECMD conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `$FILECMD 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* ;; mips64*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then emul=elf case `$FILECMD conftest.$ac_objext` in *32-bit*) emul="${emul}32" ;; *64-bit*) emul="${emul}64" ;; esac case `$FILECMD conftest.$ac_objext` in *MSB*) emul="${emul}btsmip" ;; *LSB*) emul="${emul}ltsmip" ;; esac case `$FILECMD conftest.$ac_objext` in *N32*) emul="${emul}n32" ;; esac LD="${LD-ld} -m $emul" fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*|x86_64-gnu*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. Note that the listed cases only cover the # situations where additional linker options are needed (such as when # doing 32-bit compilation for a host where ld defaults to 64-bit, or # vice versa); the common cases where no linker options are needed do # not appear in the list. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `$FILECMD conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*|x86_64-gnu*) case `$FILECMD conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64" ;; *) LD="${LD-ld} -m elf_i386" ;; esac ;; powerpc64le-*linux*) LD="${LD-ld} -m elf32lppclinux" ;; 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-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*|x86_64-gnu*) LD="${LD-ld} -m elf_x86_64" ;; powerpcle-*linux*) LD="${LD-ld} -m elf64lppc" ;; powerpc-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) 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_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test yes != "$lt_cv_cc_needs_belf"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS=$SAVE_CFLAGS fi ;; *-*solaris*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `$FILECMD conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*|x86_64-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD=${LD-ld}_sol2 fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks=$enable_libtool_lock ])# _LT_ENABLE_LOCK # _LT_PROG_AR # ----------- m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} _LT_DECL([], [AR], [1], [The archiver]) # Use ARFLAGS variable as AR's operation code to sync the variable naming with # Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have # higher priority because that's what people were doing historically (setting # ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS # variable obsoleted/removed. test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr} lt_ar_flags=$AR_FLAGS _LT_DECL([], [lt_ar_flags], [0], [Flags to create an archive (by configure)]) # Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override # by AR_FLAGS because that was never working and AR_FLAGS is about to die. _LT_DECL([], [AR_FLAGS], [\@S|@{ARFLAGS-"\@S|@lt_ar_flags"}], [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no AC_COMPILE_IFELSE([AC_LANG_PROGRAM], [echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([lt_ar_try]) if test 0 -eq "$ac_status"; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a AC_TRY_EVAL([lt_ar_try]) if test 0 -ne "$ac_status"; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a ]) ]) if test no = "$lt_cv_ar_at_file"; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi _LT_DECL([], [archiver_list_spec], [1], [How to feed a file listing to the archiver]) ])# _LT_PROG_AR # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [_LT_PROG_AR AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_REQUIRE([AC_PROG_RANLIB]) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) _LT_DECL([], [lock_old_archive_extraction], [0], [Whether to use a lock for old archive extraction]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" ## exclude from sc_useless_quotes_in_assignment # 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:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 yes = "[$]$2"; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "$_lt_linker_boilerplate" | $SED '/^$/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 -r conftest* LDFLAGS=$save_LDFLAGS ]) if test yes = "[$]$2"; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # 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* | ironclad*) # Under GNU Hurd and Ironclad, 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* | windows* | cegcc*) # 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; ;; mint*) # On MiNT this can take a long time and run out of memory. 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; ;; darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*) # 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 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; 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 ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len" && \ test undefined != "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # 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. while { test X`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test 17 != "$i" # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) 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 max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test yes = "$cross_compiling"; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord (void) __attribute__((visibility("default"))); #endif int fnord (void) { return 42; } int main (void) { 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; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_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 $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test yes != "$enable_dlopen"; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen=load_add_on lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | windows* | pw32* | cegcc*) 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 ]) ;; tpf*) # Don't try to run any link tests for TPF. We know it's impossible # because TPF is a cross-compiler, and we know how we open DSOs. lt_cv_dlopen=dlopen lt_cv_dlopen_libs= lt_cv_dlopen_self=no ;; *) 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=-ldld], [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=-ldld]) ]) ]) ]) ]) ]) ;; esac if test no = "$lt_cv_dlopen"; then enable_dlopen=no else enable_dlopen=yes fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS=$CPPFLAGS test yes = "$ac_cv_header_dlfcn_h" && 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" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test yes = "$lt_cv_dlopen_self"; 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_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) 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 _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (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:$LINENO: $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:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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_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 .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links=nottested if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; 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 no = "$hard_links"; 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 _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_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 _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/", [Define to the sub-directory where libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then # We can hardcode non-existent directories. if test no != "$_LT_TAGVAR(hardcode_direct, $1)" && # 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 no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" && test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test relink = "$_LT_TAGVAR(hardcode_action, $1)" || test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then # Fast installation is not supported enable_fast_install=no elif test yes = "$shlibpath_overrides_runpath" || test no = "$enable_shared"; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -z "$STRIP"; then AC_MSG_RESULT([no]) else if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then old_striplib="$STRIP --strip-debug" striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else case $host_os in darwin*) # FIXME - insert some real tests, host_os isn't really good enough striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) ;; freebsd*) if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then old_striplib="$STRIP --strip-debug" striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_PREPARE_MUNGE_PATH_LIST # --------------------------- # Make sure func_munge_path_list() is defined correctly. m4_defun([_LT_PREPARE_MUNGE_PATH_LIST], [[# func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x@S|@2 in x) ;; *:) eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" ;; x:*) eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" ;; *::*) eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" ;; *) eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" ;; esac } ]])# _LT_PREPARE_PATH_LIST # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test yes = "$GCC"; then case $host_os in darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; *) lt_awk_arg='/^libraries:/' ;; esac case $host_os in mingw* | windows* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;; *) lt_sed_strip_eq='s|=/|/|g' ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # 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. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary... lt_tmp_lt_search_path_spec= lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` # ...but if some path component already ends with the multilib dir we assume # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). case "$lt_multi_os_dir; $lt_search_path_spec " in "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) lt_multi_os_dir= ;; esac for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" elif test -n "$lt_multi_os_dir"; then test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS = " "; FS = "/|\n";} { lt_foo = ""; lt_count = 0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo = "/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | windows* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) 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" 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 AC_ARG_VAR([LT_SYS_LIBRARY_PATH], [User-defined run-time library search path.]) case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor 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' ;; aix[[4-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test ia64 = "$host_cpu"; 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 # Using Import Files as archive members, it is possible to support # filename-based versioning of shared library archives on AIX. While # this would work for both with and without runtime linking, it will # prevent static linking of such archives. So we do filename-based # shared library versioning with .so extension only, which is used # when both runtime linking and shared linking is enabled. # Unfortunately, runtime linking may impact performance, so we do # not want this to be the default eventually. Also, we use the # versioned .so libs for executables only if there is the -brtl # linker flag in LDFLAGS as well, or --enable-aix-soname=svr4 only. # To allow for filename-based versioning support, we need to create # libNAME.so.V as an archive file, containing: # *) an Import File, referring to the versioned filename of the # archive as well as the shared archive member, telling the # bitwidth (32 or 64) of that shared object, and providing the # list of exported symbols of that shared object, eventually # decorated with the 'weak' keyword # *) the shared object with the F_LOADONLY flag set, to really avoid # it being seen by the linker. # At run time we better use the real file rather than another symlink, # but for link time we create the symlink libNAME.so -> libNAME.so.V case $with_aix_soname,$aix_use_runtimelinking in # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. aix,yes) # traditional libtool dynamic_linker='AIX unversionable lib.so' # 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' ;; aix,no) # traditional AIX only dynamic_linker='AIX lib.a[(]lib.so.V[)]' # 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' ;; svr4,*) # full svr4 only dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,yes) # both, prefer svr4 dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # unpreferred sharedlib libNAME.a needs extra handling postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,no) # both, prefer aix dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]" library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' ;; esac shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; m68k) 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=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $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' ;; esac ;; beos*) library_names_spec='$libname$shared_ext' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux # correct to gnu/linux during the next big refactor 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* | windows* | pw32* | cegcc*) version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds # If user builds GCC with multilib enabled, # it should just install on $(libdir) # not on $(libdir)/../bin or 32 bits dlls would override 64 bit ones. if test xyes = x"$multilib"; then postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ $install_prog $dir/$dlname $destdir/$dlname~ chmod a+x $destdir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib $destdir/$dlname'\'' || exit \$?; fi' else 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~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' fi 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' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | windows* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' ;; 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 dynamic_linker='Win32 ld.exe' ;; *,cl* | *,icl*) # Native MSVC or ICC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' case $build_os in mingw* | windows*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec=$LIB if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH. 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 # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # 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' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC and ICC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # 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$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`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor 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 ;; freebsd* | dragonfly* | midnightbsd*) # 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[[23]].*) 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$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' need_version=yes ;; esac case $host_cpu in powerpc64) # On FreeBSD bi-arch platforms, a different variable is used for 32-bit # binaries. See . AC_COMPILE_IFELSE( [AC_LANG_SOURCE( [[int test_pointer_size[sizeof (void *) - 5]; ]])], [shlibpath_var=LD_LIBRARY_PATH], [shlibpath_var=LD_32_LIBRARY_PATH]) ;; *) shlibpath_var=LD_LIBRARY_PATH ;; esac 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 ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" 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=LIBRARY_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec='/boot/system/non-packaged/develop/lib /boot/system/develop/lib' sys_lib_dlsearch_path_spec='/boot/home/config/non-packaged/lib /boot/home/config/lib /boot/system/non-packaged/lib /boot/system/lib' hardcode_into_libs=no ;; 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 32 = "$HPUX_IA64_MODE"; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" sys_lib_dlsearch_path_spec=/usr/lib/hpux32 else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" sys_lib_dlsearch_path_spec=/usr/lib/hpux64 fi ;; 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' # or fails outright, so override atomically: install_override_mode=555 ;; interix[[3-9]]*) version_type=linux # correct to gnu/linux during the next big refactor 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 yes = "$lt_cv_prog_gnu_ld"; then version_type=linux # correct to gnu/linux during the next big refactor 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 ;; linux*android*) version_type=none # Android doesn't support versioned libraries. need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext $libname$shared_ext' soname_spec='$libname$release$shared_ext' finish_cmds= shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # 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 dynamic_linker='Android linker' # -rpath works at least for libraries that are not overridden by # libraries installed in system locations. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor 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 # Some binutils ld are patched to set DT_RUNPATH AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], [lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [lt_cv_shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir ]) shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # 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 # Ideally, we could use ldconfig to report *all* directories which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, # even though it is searched at run-time. Try to do the best guess by # appending ld.so.conf contents (and includes) to the search path. if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;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' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no 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 ;; *-mlibc) version_type=linux # correct to gnu/linux during the next big refactor 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='mlibc ld.so' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor 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=qnx 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='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then need_version=no else need_version=yes fi 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 shlibpath_overrides_runpath=yes ;; os2*) libname_spec='$name' version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no # OS/2 can only load a DLL with a base name of 8 characters or less. soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; v=$($ECHO $release$versuffix | tr -d .-); n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); $ECHO $n$v`$shared_ext' library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' shlibpath_var=BEGINLIBPATH sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec 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~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' ;; 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 ;; rdos*) dynamic_linker=no ;; serenity*) version_type=linux # correct to gnu/linux during the next big refactor 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 dynamic_linker='SerenityOS LibELF' ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor 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 yes = "$with_gnu_ld"; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor 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 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 # correct to gnu/linux during the next big refactor 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=sco 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 shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test yes = "$with_gnu_ld"; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' 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' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor 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 ;; emscripten*) version_type=none need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext' soname_spec='$libname$release$shared_ext' finish_cmds= dynamic_linker="Emscripten linker" _LT_COMPILER_PIC($1)='-fPIC' _LT_TAGVAR(archive_cmds, $1)='$CC -sSIDE_MODULE=2 -shared $libobjs $deplibs $compiler_flags -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -sSIDE_MODULE=2 -shared $libobjs $deplibs $compiler_flags -o $lib -s EXPORTED_FUNCTIONS=@$output_objdir/$soname.expsym' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(no_undefined_flag, $1)= ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test no = "$dynamic_linker" && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test yes = "$GCC"; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec fi if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec fi # remember unaugmented sys_lib_dlsearch_path content for libtool script decls... configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec # ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" # to be used as default LT_SYS_LIBRARY_PATH value in generated libtool configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[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]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [install_override_mode], [1], [Permission mode override for installation of shared libraries]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2], [Detected run-time system search path for libraries]) _LT_DECL([], [configure_time_lt_sys_library_path], [2], [Explicit LT_SYS_LIBRARY_PATH set during ./configure time]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program that can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_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="m4_if([$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 <<_LT_EOF 1>&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 _LT_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 _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program that can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_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 _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test no = "$withval" || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test yes = "$GCC"; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw* | *-*-windows*) # 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 yes = "$with_gnu_ld"; 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 conftest.i cat conftest.i conftest.i >conftest2.i : ${lt_DD:=$DD} AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd], [if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: fi]) rm -f conftest.i conftest2.i conftest.out]) ])# _LT_PATH_DD # _LT_CMD_TRUNCATE # ---------------- # find command to truncate a binary pipe m4_defun([_LT_CMD_TRUNCATE], [m4_require([_LT_PATH_DD]) AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin], [printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i lt_cv_truncate_bin= if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" fi rm -f conftest.i conftest2.i conftest.out test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"]) _LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1], [Command to truncate a binary pipe]) ])# _LT_CMD_TRUNCATE # _LT_CHECK_MAGIC_METHOD # ---------------------- # how to check for library dependencies # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_MAGIC_METHOD], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) AC_CACHE_CHECK([how to recognize dependent libraries], lt_cv_deplibs_check_method, [lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= 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. # 'file_magic [[regex]]' -- check by looking for files in library path # that 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. case $host_os in aix[[4-9]]*) lt_cv_deplibs_check_method=pass_all ;; beos*) 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='$FILECMD -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* | windows* | 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', # unless we find 'file', for example because we are cross-compiling. if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64|pe-aarch64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly* | midnightbsd*) 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=$FILECMD lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=$FILECMD 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])(-bit)?( [LM]SB)? 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 ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; 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 glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; *-mlibc) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else 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=$FILECMD lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; 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 ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; serenity*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) 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 ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; os2*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | windows* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` fi ;; esac fi 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 _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method = "file_magic"]) _LT_DECL([], [file_magic_glob], [1], [How to find potential files when deplibs_check_method = "file_magic"]) _LT_DECL([], [want_nocaseglob], [1], [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (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 # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty case $build_os in mingw* | windows*) lt_bad_file=conftest.nm/nofile ;; *) lt_bad_file=/dev/null ;; esac case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break 2 ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break 2 ;; *) 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 : ${lt_cv_path_NM=no} fi]) if test no != "$lt_cv_path_NM"; then NM=$lt_cv_path_NM else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols -headers" ;; *) DUMPBIN=: ;; esac fi AC_SUBST([DUMPBIN]) if test : != "$DUMPBIN"; then NM=$DUMPBIN fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # _LT_CHECK_SHAREDLIB_FROM_LINKLIB # -------------------------------- # how to determine the name of the shared library # associated with a specific link library. # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) m4_require([_LT_DECL_DLLTOOL]) AC_CACHE_CHECK([how to associate runtime and link libraries], lt_cv_sharedlib_from_linklib_cmd, [lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | windows* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh; # decide which one to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd=$ECHO ;; esac ]) sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO _LT_DECL([], [sharedlib_from_linklib_cmd], [1], [Command to associate shared and link libraries]) ])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB # _LT_PATH_MANIFEST_TOOL # ---------------------- # locate the manifest tool m4_defun([_LT_PATH_MANIFEST_TOOL], [AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_manifest_tool], [lt_cv_path_manifest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&AS_MESSAGE_LOG_FD if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_manifest_tool=yes fi rm -f conftest*]) if test yes != "$lt_cv_path_manifest_tool"; then MANIFEST_TOOL=: fi _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl ])# _LT_PATH_MANIFEST_TOOL # _LT_DLL_DEF_P([FILE]) # --------------------- # True iff FILE is a Windows DLL '.def' file. # Keep in sync with func_dll_def_p in the libtool script AC_DEFUN([_LT_DLL_DEF_P], [dnl test DEF = "`$SED -n dnl -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl -e q dnl Only consider the first "real" line $1`" dnl ])# _LT_DLL_DEF_P # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-mingw* | *-*-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_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test yes = "$GCC"; then case $cc_basename in nvcc*) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; *) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; esac _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # 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]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | windows* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test ia64 = "$host_cpu"; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BCDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; 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 if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Gets list of data symbols to import. lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'" # Adjust the below global symbol transforms to fixup imported variables. lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" lt_c_name_lib_hook="\ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" else # Disable hooks by default. lt_cv_sys_global_symbol_to_import= lt_cdecl_hook= lt_c_name_hook= lt_c_name_lib_hook= fi # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="$SED -n"\ $lt_cdecl_hook\ " -e 's/^T .* \(.*\)$/extern int \1();/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\ $lt_c_name_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" # Transform an extracted symbol line into symbol name with lib prefix and # symbol address. lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\ $lt_c_name_lib_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw* | windows*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, 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. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function, # D for any global variable and I for any imported variable. # Also find C++ and __fastcall symbols from MSVC++ or ICC, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ " /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ " /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ " {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ " s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(void){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&AS_MESSAGE_LOG_FD if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&AS_MESSAGE_LOG_FD && 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 <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT@&t@_DLSYM_CONST #elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT@&t@_DLSYM_CONST #else # define LT@&t@_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT@&t@_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS=conftstm.$ac_objext CFLAGS="$CFLAGS$_LT_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_globsym_save_LIBS CFLAGS=$lt_globsym_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 -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test yes = "$pipe_works"; 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 # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then nm_file_list_spec='@' fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1], [Transform the output of nm into a list of symbols to manually relocate]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) _LT_DECL([nm_interface], [lt_cv_nm_interface], [1], [The name lister interface]) _LT_DECL([], [nm_file_list_spec], [1], [Specify filename containing input files for $NM]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test yes = "$GXX"; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # 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_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | windows* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) case $host_os in os2*) _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; interix[[3-9]]*) # 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_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_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 ;; mingw* | windows* | cygwin* | os2* | pw32* | cegcc*) # 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). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly* | midnightbsd*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' if test ia64 != "$host_cpu"; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_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_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64, which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_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_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL 8.0, 9.0 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | $SED 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd* | netbsdelf*-gnu) ;; *-mlibc) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_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_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; serenity*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test yes = "$GCC"; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # 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_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | windows* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) case $host_os in os2*) _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # 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_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' case $cc_basename in nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; mingw* | windows* | cygwin* | pw32* | os2* | cegcc*) # 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). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) case $host_os in os2*) _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' ;; esac ;; hpux9* | hpux10* | hpux11*) _LT_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_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in # old Intel for x86_64, which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; *flang* | ftn | f18* | f95*) # Flang compiler. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # flang / f18. f95 an alias for gfortran or flang on Debian flang* | f18* | f95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; tcc*) # Fabrice Bellard et al's Tiny C Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | $SED 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; *Sun\ F* | *Sun*Fortran*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Intel*\ [[CF]]*Compiler*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; *Portland\ Group*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *-mlibc) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; serenity*) ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms that do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_CACHE_CHECK([for $compiler option to produce PIC], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds ;; cygwin* | mingw* | windows* | cegcc*) case $cc_basename in cl* | icl*) _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] ;; esac ;; linux* | k*bsd*-gnu | gnu*) _LT_TAGVAR(link_all_deplibs, $1)=no ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_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_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | windows* | pw32* | cegcc*) # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++ or Intel C++ Compiler. if test yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC) with_gnu_ld=yes ;; linux* | k*bsd*-gnu | gnu*) _LT_TAGVAR(link_all_deplibs, $1)=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test yes = "$with_gnu_ld"; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test yes = "$lt_use_gnu_ld_interface"; 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_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_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_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v | $SED -e 's/([[^)]]\+)\s\+//' 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[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 aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test ia64 != "$host_cpu"; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, 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 install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_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_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | windows* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] _LT_TAGVAR(file_list_spec, $1)='@' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_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, use it as # is; otherwise, prepend EXPORTS... _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); 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_TAGVAR(ld_shlibs, $1)=no fi ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=no ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported shrext_cmds=.dll _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_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_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_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' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test linux-dietlibc = "$host_os"; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test no = "$tmp_diet" then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$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' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; nagfor*) # NAGFOR 5.3 tmp_sharedflag='-Wl,-shared' ;; xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes ;; esac case `$CC -V 2>&1 | $SED 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then _LT_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 '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi case $cc_basename in tcc*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic' ;; xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test yes = "$supports_anon_versioning"; then _LT_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~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; *-mlibc) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $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_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&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. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else _LT_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_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot *** 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 ;; *) # 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. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_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_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_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_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_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_TAGVAR(hardcode_minus_L, $1)=yes if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test ia64 = "$host_cpu"; 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 GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | 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 # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then aix_use_runtimelinking=yes break fi done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; 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_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='$wl-f,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # traditional, no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no ;; esac if test yes = "$GCC"; 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 : else # We have old collect2 _LT_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_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test yes = "$aix_use_runtimelinking"; then shared_flag="$shared_flag "'$wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; 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 yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_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_SYS_MODULE_PATH_AIX([$1]) _LT_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_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_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_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | windows* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++ or Intel C++ Compiler. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl* | icl*) # Native MSVC or ICC _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # 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_TAGVAR(archive_cmds, $1)='$CC -Fe$output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -Fe$tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' _LT_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' # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC and ICC wrapper _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_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_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $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_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly* | midnightbsd*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' ;; hpux10*) if test yes,no = "$GCC,$with_gnu_ld"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test no = "$with_gnu_ld"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_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_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test yes,no = "$GCC,$with_gnu_ld"; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) m4_if($1, [], [ # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) _LT_LINKER_OPTION([if $CC understands -b], _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], [_LT_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 no = "$with_gnu_ld"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_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_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], [lt_cv_irix_exported_symbol], [save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" AC_LINK_IFELSE( [AC_LANG_SOURCE( [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], [C++], [[int foo (void) { return 0; }]], [Fortran 77], [[ subroutine foo end]], [Fortran], [[ subroutine foo end]])])], [lt_cv_irix_exported_symbol=yes], [lt_cv_irix_exported_symbol=no]) LDFLAGS=$save_LDFLAGS]) if test yes = "$lt_cv_irix_exported_symbol"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi _LT_TAGVAR(link_all_deplibs, $1)=no else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; linux*) case $cc_basename in tcc*) # Fabrice Bellard et al's Tiny C Compiler _LT_TAGVAR(ld_shlibs, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' ;; esac ;; *-mlibc) ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported shrext_cmds=.dll _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' ;; osf3*) if test yes = "$GCC"; then _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test yes = "$GCC"; then _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_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_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; serenity*) ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test yes = "$GCC"; then wlarc='$wl' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_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' ;; *) wlarc='$wl' _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_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 -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands '-z linker_flag'. GCC discards it without '$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test yes = "$GCC"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test sequent = "$host_vendor"; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_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 CANNOT 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_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test sni = "$host_vendor"; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test yes,yes = "$GCC,$enable_shared"; then case $_LT_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_CACHE_CHECK([whether -lc should be explicitly linked in], [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), [$RM conftest* echo "$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_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no else lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* ]) _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e. impossible to change by setting $shlibpath_var if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [postlink_cmds], [2], [Commands necessary for finishing linking programs]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to 'libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl 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_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(void){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report what 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 no = "$can_build_shared" && 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 yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac 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 yes = "$enable_shared" || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC=$lt_save_CC ])# _LT_LANG_C_CONFIG # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to 'libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl if test -n "$CXX" && ( test no != "$CXX" && ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) || (test g++ != "$CXX"))); then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test yes != "$_lt_caught_CXX_error"; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_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_CFLAGS=$CFLAGS 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++"} CFLAGS=$CXXFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test yes = "$GXX"; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test yes = "$GXX"; then # Set up default GNU C++ configuration LT_PATH_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 yes = "$with_gnu_ld"; then _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_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 $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else _LT_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_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 -v "^Configured with:" | $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_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test ia64 = "$host_cpu"; 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 # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; 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_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='$wl-f,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no ;; esac if test yes = "$GXX"; 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 : else # We have old collect2 _LT_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_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test yes = "$aix_use_runtimelinking"; then shared_flag=$shared_flag' $wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; 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 yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. # The "-G" linker flag allows undefined symbols. _LT_TAGVAR(no_undefined_flag, $1)='-bernotok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_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_SYS_MODULE_PATH_AIX([$1]) _LT_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_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared # libraries. Need -bnortl late, we may have -brtl in LDFLAGS. _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | windows* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl* | ,icl* | no,icl*) # Native MSVC or ICC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # 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_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ func_to_tool_file "$lt_outputfile"~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_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, use it as # is; otherwise, prepend EXPORTS... _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); 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_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported shrext_cmds=.dll _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly* | midnightbsd*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=no ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_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_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_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 "x$output_objdir/$soname" = "x$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) | $EGREP "[[-]]L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test no = "$with_gnu_ld"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_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_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_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; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then if test no = "$with_gnu_ld"; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $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_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_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_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_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_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-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_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test yes = "$GXX"; then if test no = "$with_gnu_ld"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) 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_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_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; func_echo_all "$list"' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_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_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # 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_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_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_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_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_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_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' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_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_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_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=`func_echo_all "$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; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then _LT_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 -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | $SED 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # 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_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; *-mlibc) _LT_TAGVAR(ld_shlibs, $1)=yes ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_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::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then _LT_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_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | 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_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_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_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_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_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=`func_echo_all "$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; func_echo_all "$list"' ;; *) if test yes,no = "$GXX,$with_gnu_ld"; then _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' case $host in osf3*) _LT_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" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_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 -v "^Configured with:" | $GREP " [[-]]L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; serenity*) ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_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_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands '-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='func_echo_all' # 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_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_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_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test yes,no = "$GXX,$with_gnu_ld"; then _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -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 -v "^Configured with:" | $GREP " [[-]]L"' else # g++ 2.7 appears to require '-G' NOT '-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' _LT_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 $wl-h $wl$soname -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 -v "^Configured with:" | $GREP " [[-]]L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_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 CANNOT 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_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ '"$_LT_TAGVAR(old_archive_cmds, $1)" _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$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_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no _LT_TAGVAR(GCC, $1)=$GXX _LT_TAGVAR(LD, $1)=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC 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 fi # test yes != "$_lt_caught_CXX_error" AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_FUNC_STRIPNAME_CNF # ---------------------- # func_stripname_cnf prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # # This function is identical to the (non-XSI) version of func_stripname, # except this one can be used by m4 code that may be executed by configure, # rather than the libtool script. m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl AC_REQUIRE([_LT_DECL_SED]) AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) func_stripname_cnf () { case @S|@2 in .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;; *) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;; esac } # func_stripname_cnf ])# _LT_FUNC_STRIPNAME_CNF # _LT_SYS_HIDDEN_LIBDEPS([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. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= 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... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF package foo func foo() { } _LT_EOF ]) _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; *\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; esac dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $prev$p in -L* | -R* | -l*) # Some compilers place space between "-{L,R,l}" and the path. # Remove the space. if test x-L = x"$p" || test x-R = x"$p" || test x-l = x"$p"; then prev=$p continue fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test no = "$pre_test_object_deps_done"; then case $prev in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)=$prev$p else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p" fi fi prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test no = "$pre_test_object_deps_done"; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)=$p else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)=$p else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_LANG_PUSH(Fortran 77) if test -z "$F77" || test no = "$F77"; then _lt_disable_F77=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test yes != "$_lt_disable_F77"; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_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_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} CFLAGS=$FFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test no = "$can_build_shared" && 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 yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac 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 yes = "$enable_shared" || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)=$G77 _LT_TAGVAR(LD, $1)=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS fi # test yes != "$_lt_disable_F77" AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_LANG_PUSH(Fortran) if test -z "$FC" || test no = "$FC"; then _lt_disable_FC=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test yes != "$_lt_disable_FC"; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_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_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${FC-"f95"} CFLAGS=$FCFLAGS compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test no = "$can_build_shared" && 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 yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac 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 yes = "$enable_shared" || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu _LT_TAGVAR(LD, $1)=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS fi # test yes != "$_lt_disable_FC" AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_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_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} CFLAGS=$GCJFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)=$LD _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_GO_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Go compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_GO_CONFIG], [AC_REQUIRE([LT_PROG_GO])dnl AC_LANG_SAVE # Source file extension for Go test sources. ac_ext=go # Object file extension for compiled Go test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="package main; func main() { }" # Code to be used in simple link tests lt_simple_link_test_code='package main; func main() { }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_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_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GOC-"gccgo"} CFLAGS=$GOFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)=$LD _LT_CC_BASENAME([$compiler]) # Go did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GO_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code=$lt_simple_compile_test_code # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_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_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC= CC=${RC-"windres"} CFLAGS= compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_GO # ---------- AC_DEFUN([LT_PROG_GO], [AC_CHECK_TOOL(GOC, gccgo,) ]) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_DLLTOOL # ---------------- # Ensure DLLTOOL variable is set. m4_defun([_LT_DECL_DLLTOOL], [AC_CHECK_TOOL(DLLTOOL, dlltool, false) test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program]) AC_SUBST([DLLTOOL]) ]) # _LT_DECL_FILECMD # ---------------- # Check for a file(cmd) program that can be used to detect file type and magic m4_defun([_LT_DECL_FILECMD], [AC_CHECK_PROG([FILECMD], [file], [file], [:]) _LT_DECL([], [FILECMD], [1], [A file(cmd) program that detects file types]) ])# _LD_DECL_FILECMD # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PATH_CONVERSION_FUNCTIONS # ----------------------------- # Determine what file name conversion functions should be used by # func_to_host_file (and, implicitly, by func_to_host_path). These are needed # for certain cross-compile configurations and native mingw. m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_MSG_CHECKING([how to convert $build file names to $host format]) AC_CACHE_VAL(lt_cv_to_host_file_cmd, [case $host in *-*-mingw* ) case $build in *-*-mingw* | *-*-windows* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* | *-*-windows* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac ]) to_host_file_cmd=$lt_cv_to_host_file_cmd AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) _LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], [0], [convert $build file names to $host format])dnl AC_MSG_CHECKING([how to convert $build file names to toolchain format]) AC_CACHE_VAL(lt_cv_to_tool_file_cmd, [#assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* | *-*-windows* ) case $build in *-*-mingw* | *-*-windows* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac ]) to_tool_file_cmd=$lt_cv_to_tool_file_cmd AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], [0], [convert $build files to toolchain format])dnl ])# _LT_PATH_CONVERSION_FUNCTIONS fftw-3.3.11/m4/ltoptions.m40000644000175000017500000003612114761703252011055 # Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004-2005, 2007-2009, 2011-2019, 2021-2024 Free # Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 10 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option '$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl 'shared' nor 'disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4], [_LT_WITH_AIX_SONAME([aix])]) ]) ])# _LT_SET_OPTIONS ## --------------------------------- ## ## Macros to handle LT_INIT options. ## ## --------------------------------- ## # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the 'shared' and # 'disable-shared' LT_INIT options. # DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_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=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the 'static' and # 'disable-static' LT_INIT options. # DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_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=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the 'fast-install' # and 'disable-fast-install' LT_INIT options. # DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_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=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_AIX_SONAME([DEFAULT]) # ---------------------------------- # implement the --enable-aix-soname configure option, and support the # `aix-soname=aix' and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. # DEFAULT is either `aix', `both', or `svr4'. If omitted, it defaults to `aix'. m4_define([_LT_WITH_AIX_SONAME], [m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl shared_archive_member_spec= case $host,$enable_shared in power*-*-aix[[5-9]]*,yes) AC_MSG_CHECKING([which variant of shared library versioning to provide]) AC_ARG_ENABLE([aix-soname], [AS_HELP_STRING([--enable-aix-soname=aix|svr4|both], [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])], [case $enableval in aix|svr4|both) ;; *) AC_MSG_ERROR([Unknown argument to --enable-aix-soname]) ;; esac lt_cv_with_aix_soname=$enable_aix_soname], [_AC_ENABLE_IF([with], [aix-soname], [case $withval in aix|svr4|both) ;; *) AC_MSG_ERROR([Unknown argument to --with-aix-soname]) ;; esac lt_cv_with_aix_soname=$with_aix_soname], [AC_CACHE_VAL([lt_cv_with_aix_soname], [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT)]) enable_aix_soname=$lt_cv_with_aix_soname]) with_aix_soname=$enable_aix_soname AC_MSG_RESULT([$with_aix_soname]) if test aix != "$with_aix_soname"; then # For the AIX way of multilib, we name the shared archive member # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, # the AIX toolchain works better with OBJECT_MODE set (default 32). if test 64 = "${OBJECT_MODE-32}"; then shared_archive_member_spec=shr_64 else shared_archive_member_spec=shr fi fi ;; *) with_aix_soname=aix ;; esac _LT_DECL([], [shared_archive_member_spec], [0], [Shared archive member basename, for filename based shared library versioning on AIX])dnl ])# _LT_WITH_AIX_SONAME LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])]) LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])]) LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])]) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --enable-pic flag, and support the 'pic-only' and 'no-pic' # LT_INIT options. # MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'. m4_define([_LT_WITH_PIC], [AC_ARG_ENABLE([pic], [AS_HELP_STRING([--enable-pic@<:@=PKGS@:>@], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [lt_p=${PACKAGE-default} case $enableval in yes|no) pic_mode=$enableval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for lt_pkg in $enableval; do IFS=$lt_save_ifs if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS=$lt_save_ifs ;; esac], [dnl Continue to support --with-pic and --without-pic, for backward dnl compatibility. _AC_ENABLE_IF([with], [pic], [lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for lt_pkg in $withval; do IFS=$lt_save_ifs if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS=$lt_save_ifs ;; esac], [pic_mode=m4_default([$1], [default])])] ) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) ## ----------------- ## ## LTDL_INIT Options ## ## ----------------- ## m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) fftw-3.3.11/m4/ltsugar.m40000644000175000017500000001045314761703252010503 # ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004-2005, 2007-2008, 2011-2019, 2021-2024 Free Software # Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59, which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) fftw-3.3.11/m4/ltversion.m40000644000175000017500000000131214761703252011041 # ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004, 2011-2019, 2021-2024 Free Software Foundation, # Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # @configure_input@ # serial 4441 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.5.4]) m4_define([LT_PACKAGE_REVISION], [2.5.4]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.5.4' macro_revision='2.5.4' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) fftw-3.3.11/m4/lt~obsolete.m40000644000175000017500000001400714761703252011373 # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004-2005, 2007, 2009, 2011-2019, 2021-2024 Free # Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 5 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN), # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) fftw-3.3.11/m4/Makefile.am0000644000175000017500000000062615170655127010617 EXTRA_DIST = acx_mpi.m4 acx_pthread.m4 ax_cc_maxopt.m4 \ ax_check_compile_flag.m4 ax_compiler_vendor.m4 \ ax_gcc_aligns_stack.m4 ax_gcc_version.m4 ax_openmp.m4 \ ax_check_link_flag.m4 # libtool sticks a bunch of extra .m4 files in this directory, # but they don't seem to be needed for the distributed tarball # (they aren't needed for configure && make, and bootstrapping # will regenerate them anyway). fftw-3.3.11/m4/Makefile.in0000644000175000017500000003341015170655165010627 # Makefile.in generated by automake 1.17 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2024 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) am__rm_f = rm -f $(am__rm_f_notfound) am__rm_rf = rm -rf $(am__rm_f_notfound) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/acx_mpi.m4 \ $(top_srcdir)/m4/acx_pthread.m4 $(top_srcdir)/m4/acx_sve.m4 \ $(top_srcdir)/m4/ax_cc_maxopt.m4 \ $(top_srcdir)/m4/ax_check_compile_flag.m4 \ $(top_srcdir)/m4/ax_check_link_flag.m4 \ $(top_srcdir)/m4/ax_compiler_vendor.m4 \ $(top_srcdir)/m4/ax_gcc_aligns_stack.m4 \ $(top_srcdir)/m4/ax_gcc_version.m4 \ $(top_srcdir)/m4/ax_openmp.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = SOURCES = DIST_SOURCES = am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALTIVEC_CFLAGS = @ALTIVEC_CFLAGS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVX2_CFLAGS = @AVX2_CFLAGS@ AVX512_CFLAGS = @AVX512_CFLAGS@ AVX_128_FMA_CFLAGS = @AVX_128_FMA_CFLAGS@ AVX_CFLAGS = @AVX_CFLAGS@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_PL_OPTS = @CHECK_PL_OPTS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ C_FFTW_R2R_KIND = @C_FFTW_R2R_KIND@ C_MPI_FINT = @C_MPI_FINT@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FILECMD = @FILECMD@ FLIBS = @FLIBS@ GREP = @GREP@ INDENT = @INDENT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ KCVI_CFLAGS = @KCVI_CFLAGS@ LASX_CFLAGS = @LASX_CFLAGS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBQUADMATH = @LIBQUADMATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LSX_CFLAGS = @LSX_CFLAGS@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MPICC = @MPICC@ MPILIBS = @MPILIBS@ MPIRUN = @MPIRUN@ NEON_CFLAGS = @NEON_CFLAGS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OCAMLBUILD = @OCAMLBUILD@ OPENMP_CFLAGS = @OPENMP_CFLAGS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POW_LIB = @POW_LIB@ PRECISION = @PRECISION@ PREC_SUFFIX = @PREC_SUFFIX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHARED_VERSION_INFO = @SHARED_VERSION_INFO@ SHELL = @SHELL@ SSE2_CFLAGS = @SSE2_CFLAGS@ STACK_ALIGN_CFLAGS = @STACK_ALIGN_CFLAGS@ STRIP = @STRIP@ THREADLIBS = @THREADLIBS@ VERSION = @VERSION@ VSX_CFLAGS = @VSX_CFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__rm_f_notfound = @am__rm_f_notfound@ am__tar = @am__tar@ am__untar = @am__untar@ am__xargs_n = @am__xargs_n@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ EXTRA_DIST = acx_mpi.m4 acx_pthread.m4 ax_cc_maxopt.m4 \ ax_check_compile_flag.m4 ax_compiler_vendor.m4 \ ax_gcc_aligns_stack.m4 ax_gcc_version.m4 ax_openmp.m4 \ ax_check_link_flag.m4 all: all-am .SUFFIXES: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ && { if test -f $@; then exit 0; else break; fi; }; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu m4/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu m4/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh $(am__aclocal_m4_deps): mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs tags TAGS: ctags CTAGS: cscope cscopelist: distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done check-am: all-am check: check-am all-am: Makefile installdirs: install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -$(am__rm_f) $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || $(am__rm_f) $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-generic clean-libtool mostlyclean-am distclean: distclean-am -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic mostlyclean-libtool pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: .MAKE: install-am install-strip .PHONY: all all-am check check-am clean clean-generic clean-libtool \ cscopelist-am ctags-am distclean distclean-generic \ distclean-libtool distdir dvi dvi-am html html-am info info-am \ install install-am install-data install-data-am install-dvi \ install-dvi-am install-exec install-exec-am install-html \ install-html-am install-info install-info-am install-man \ install-pdf install-pdf-am install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ maintainer-clean maintainer-clean-generic mostlyclean \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ tags-am uninstall uninstall-am .PRECIOUS: Makefile # libtool sticks a bunch of extra .m4 files in this directory, # but they don't seem to be needed for the distributed tarball # (they aren't needed for configure && make, and bootstrapping # will regenerate them anyway). # 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: # Tell GNU make to disable its built-in pattern rules. %:: %,v %:: RCS/%,v %:: RCS/% %:: s.% %:: SCCS/s.% fftw-3.3.11/Makefile.am0000644000175000017500000001363115170655127010277 OPTIONS_AUTOMAKE=gnu lib_LTLIBRARIES = libfftw3@PREC_SUFFIX@.la # pkgincludedir = $(includedir)/fftw3@PREC_SUFFIX@ # nodist_pkginclude_HEADERS = config.h # recompile genfft if maintainer mode is true if MAINTAINER_MODE GENFFT = genfft EXTRA_libfftw3@PREC_SUFFIX@_la_DEPENDENCIES = assert-shared-version-info else GENFFT = endif ACLOCAL_AMFLAGS=-I m4 # when using combined thread libraries (necessary on Windows), we want # to build threads/ first, because libfftw3_threads is added to # libfftw3. # # Otherwise, we want to build libfftw3_threads after libfftw3 # so that we can track the fact that libfftw3_threads depends upon # libfftw3. # # This is the inescapable result of combining three bad ideas # (threads, Windows, and shared libraries). # if COMBINED_THREADS CHICKEN_EGG=threads . else CHICKEN_EGG=. threads endif # Only build in doc/ if not disabled by user (i.e. not all # tools are available, such as fig2dev in maintainer mode) if BUILD_DOC DOCDIR=doc else DOCDIR= endif SUBDIRS=support $(GENFFT) kernel simd-support dft rdft reodft api \ libbench2 $(CHICKEN_EGG) tests mpi $(DOCDIR) tools m4 EXTRA_DIST=COPYRIGHT bootstrap.sh CONVENTIONS fftw.pc.in \ CMakeLists.txt cmake.config.h.in FFTW3Config.cmake.in \ FFTW3ConfigVersion.cmake.in README-perfcnt.md SIMD_LIBS = simd-support/libsimd_support.la if HAVE_SSE2 SSE2_LIBS = dft/simd/sse2/libdft_sse2_codelets.la \ rdft/simd/sse2/librdft_sse2_codelets.la endif if HAVE_AVX AVX_LIBS = dft/simd/avx/libdft_avx_codelets.la \ rdft/simd/avx/librdft_avx_codelets.la endif if HAVE_AVX_128_FMA AVX_128_FMA_LIBS = dft/simd/avx-128-fma/libdft_avx_128_fma_codelets.la \ rdft/simd/avx-128-fma/librdft_avx_128_fma_codelets.la endif if HAVE_AVX2 AVX2_LIBS = dft/simd/avx2/libdft_avx2_codelets.la \ dft/simd/avx2-128/libdft_avx2_128_codelets.la \ rdft/simd/avx2/librdft_avx2_codelets.la \ rdft/simd/avx2-128/librdft_avx2_128_codelets.la endif if HAVE_AVX512 AVX512_LIBS = dft/simd/avx512/libdft_avx512_codelets.la \ rdft/simd/avx512/librdft_avx512_codelets.la endif if HAVE_KCVI KCVI_LIBS = dft/simd/kcvi/libdft_kcvi_codelets.la \ rdft/simd/kcvi/librdft_kcvi_codelets.la endif if HAVE_ALTIVEC ALTIVEC_LIBS = dft/simd/altivec/libdft_altivec_codelets.la \ rdft/simd/altivec/librdft_altivec_codelets.la endif if HAVE_VSX VSX_LIBS = dft/simd/vsx/libdft_vsx_codelets.la \ rdft/simd/vsx/librdft_vsx_codelets.la endif if HAVE_NEON NEON_LIBS = dft/simd/neon/libdft_neon_codelets.la \ rdft/simd/neon/librdft_neon_codelets.la endif if HAVE_SVE SVE_LIBS = \ dft/simd/sve128/libdft_sve128_codelets.la \ rdft/simd/sve128/librdft_sve128_codelets.la \ dft/simd/sve256/libdft_sve256_codelets.la \ rdft/simd/sve256/librdft_sve256_codelets.la \ dft/simd/sve512/libdft_sve512_codelets.la \ rdft/simd/sve512/librdft_sve512_codelets.la \ dft/simd/sve1024/libdft_sve1024_codelets.la \ rdft/simd/sve1024/librdft_sve1024_codelets.la \ dft/simd/sve2048/libdft_sve2048_codelets.la \ rdft/simd/sve2048/librdft_sve2048_codelets.la endif if HAVE_LSX LSX_LIBS = dft/simd/lsx/libdft_lsx_codelets.la \ rdft/simd/lsx/librdft_lsx_codelets.la endif if HAVE_LASX LASX_LIBS = dft/simd/lasx/libdft_lasx_codelets.la \ rdft/simd/lasx/librdft_lasx_codelets.la endif if HAVE_GENERIC_SIMD128 GENERIC_SIMD128_LIBS = dft/simd/generic-simd128/libdft_generic_simd128_codelets.la \ rdft/simd/generic-simd128/librdft_generic_simd128_codelets.la endif if HAVE_GENERIC_SIMD256 GENERIC_SIMD256_LIBS = dft/simd/generic-simd256/libdft_generic_simd256_codelets.la \ rdft/simd/generic-simd256/librdft_generic_simd256_codelets.la endif if THREADS if COMBINED_THREADS COMBINED_THREADLIBS=threads/libfftw3@PREC_SUFFIX@_threads.la endif endif libfftw3@PREC_SUFFIX@_la_SOURCES = libfftw3@PREC_SUFFIX@_la_LIBADD = \ kernel/libkernel.la \ dft/libdft.la \ dft/scalar/libdft_scalar.la \ dft/scalar/codelets/libdft_scalar_codelets.la \ rdft/librdft.la \ rdft/scalar/librdft_scalar.la \ rdft/scalar/r2cf/librdft_scalar_r2cf.la \ rdft/scalar/r2cb/librdft_scalar_r2cb.la \ rdft/scalar/r2r/librdft_scalar_r2r.la \ reodft/libreodft.la \ api/libapi.la \ $(SIMD_LIBS) $(SSE2_LIBS) $(AVX_LIBS) $(AVX_128_FMA_LIBS) \ $(AVX2_LIBS) $(ALTIVEC_LIBS) \ $(VSX_LIBS) $(NEON_LIBS) $(SVE_LIBS) $(KCVI_LIBS) $(AVX512_LIBS) \ $(LSX_LIBS) $(LASX_LIBS) \ $(GENERIC_SIMD128_LIBS) $(GENERIC_SIMD256_LIBS) \ $(COMBINED_THREADLIBS) if QUAD # cannot use -no-undefined since dependent on libquadmath libfftw3@PREC_SUFFIX@_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@ $(ENVIRONMENT_LIBFFTW3_LDFLAGS) else libfftw3@PREC_SUFFIX@_la_LDFLAGS = -no-undefined -version-info \ @SHARED_VERSION_INFO@ $(ENVIRONMENT_LIBFFTW3_LDFLAGS) endif fftw3@PREC_SUFFIX@.pc: fftw.pc cp -f fftw.pc fftw3@PREC_SUFFIX@.pc pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = fftw3@PREC_SUFFIX@.pc FFTW3@PREC_SUFFIX@Config.cmake: $(top_srcdir)/FFTW3Config.cmake.in $(SED) \ -e 's|[@]PREC_SUFFIX@|@PREC_SUFFIX@|g' \ -e 's|[@]CMAKE_INSTALL_FULL_LIBDIR@|$(libdir)|g' \ -e 's|[@]CMAKE_INSTALL_FULL_INCLUDEDIR@|$(includedir)|g' \ $(top_srcdir)/FFTW3Config.cmake.in > $@ FFTW3@PREC_SUFFIX@ConfigVersion.cmake: $(top_srcdir)/FFTW3ConfigVersion.cmake.in $(SED) \ -e 's|[@]FFTW_VERSION@|@PACKAGE_VERSION@|g' \ $(top_srcdir)/FFTW3ConfigVersion.cmake.in > $@ cmakedir = $(libdir)/cmake/fftw3 cmake_DATA = FFTW3@PREC_SUFFIX@Config.cmake FFTW3@PREC_SUFFIX@ConfigVersion.cmake WISDOM_DIR = /etc/fftw WISDOM = wisdom@PREC_SUFFIX@ WISDOM_TIME=12 # default to 12-hour limit, i.e. overnight WISDOM_FLAGS=--verbose --canonical --time-limit=$(WISDOM_TIME) wisdom: tools/fftw@PREC_SUFFIX@-wisdom -o $@ $(WISDOM_FLAGS) install-wisdom: wisdom $(mkinstalldirs) $(WISDOM_DIR) $(INSTALL_DATA) wisdom $(WISDOM_DIR)/$(WISDOM) if MAINTAINER_MODE assert-shared-version-info: current=`echo @SHARED_VERSION_INFO@ | cut -d: -f1`; \ age=`echo @SHARED_VERSION_INFO@ | cut -d: -f3`; \ major=3; \ expected=`expr $$age + $$major`; \ test $$current -eq $$expected endif fftw-3.3.11/configure0000755000175000017500000313514715170655156010166 #! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.72 for fftw 3.3.11. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2017, 2020-2023 Free Software Foundation, # Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case e in #( e) case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac ;; esac fi # Reset variables that may have inherited troublesome values from # the environment. # IFS needs to be set, to space, tab, and newline, in precisely that order. # (If _AS_PATH_WALK were called with IFS unset, it would have the # side effect of setting IFS to empty, thus disabling word splitting.) # Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl IFS=" "" $as_nl" PS1='$ ' PS2='> ' PS4='+ ' # Ensure predictable behavior from utilities with locale-dependent output. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # We cannot yet rely on "unset" to work, but we need these variables # to be unset--not just set to an empty or harmless value--now, to # avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct # also avoids known problems related to "unset" and subshell syntax # in other old shells (e.g. bash 2.01 and pdksh 5.2.14). for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH do eval test \${$as_var+y} \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done # Ensure that fds 0, 1, and 2 are open. if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as 'sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed 'exec'. printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case e in #( e) case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ) then : else case e in #( e) exitcode=1; echo positional parameters were not saved. ;; esac fi test x\$exitcode = x0 || exit 1 blah=\$(echo \$(echo blah)) test x\"\$blah\" = xblah || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null then : as_have_required=yes else case e in #( e) as_have_required=no ;; esac fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null then : else case e in #( e) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null then : CONFIG_SHELL=$as_shell as_have_required=yes if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null then : break 2 fi fi done;; esac as_found=false done IFS=$as_save_IFS if $as_found then : else case e in #( e) if { test -f "$SHELL" || test -f "$SHELL.exe"; } && as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null then : CONFIG_SHELL=$SHELL as_have_required=yes fi ;; esac fi if test "x$CONFIG_SHELL" != x then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed 'exec'. printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno then : printf "%s\n" "$0: This script requires a shell more modern than all" printf "%s\n" "$0: the shells that I found on your system." if test ${ZSH_VERSION+y} ; then printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should" printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later." else printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and fftw@fftw.org $0: about your system, including any error possibly output $0: before this message. Then install a modern shell, or $0: manually run the script under such a shell if you do $0: have one." fi exit 1 fi ;; esac fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null then : eval 'as_fn_append () { eval $1+=\$2 }' else case e in #( e) as_fn_append () { eval $1=\$$1\$2 } ;; esac fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null then : eval 'as_fn_arith () { as_val=$(( $* )) }' else case e in #( e) as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } ;; esac fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' t clear :clear s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } # Determine whether it's possible to make 'echo' print without a newline. # These variables are no longer used directly by Autoconf, but are AC_SUBSTed # for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac # For backward compatibility with old third-party macros, we provide # the shell variables $as_echo and $as_echo_n. New code should use # AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. as_echo='printf %s\n' as_echo_n='printf %s' rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both 'ln -s file dir' and 'ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; 'ln -s' creates a wrapper executable. # In both cases, we have to default to 'cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_sed_cpp="y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" as_tr_cpp="eval sed '$as_sed_cpp'" # deprecated # Sed expression to map a string onto a valid variable name. as_sed_sh="y%*+%pp%;s%[^_$as_cr_alnum]%_%g" as_tr_sh="eval sed '$as_sed_sh'" # deprecated SHELL=${CONFIG_SHELL-/bin/sh} test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='fftw' PACKAGE_TARNAME='fftw' PACKAGE_VERSION='3.3.11' PACKAGE_STRING='fftw 3.3.11' PACKAGE_BUGREPORT='fftw@fftw.org' PACKAGE_URL='' ac_unique_file="kernel/ifftw.h" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_STDIO_H # include #endif #ifdef HAVE_STDLIB_H # include #endif #ifdef HAVE_STRING_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_header_c_list= ac_func_c_list= ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS COMBINED_THREADS_FALSE COMBINED_THREADS_TRUE SMP_FALSE SMP_TRUE OPENMP_FALSE OPENMP_TRUE THREADS_FALSE THREADS_TRUE THREADLIBS PTHREAD_CFLAGS PTHREAD_LIBS PTHREAD_CC acx_pthread_config OPENMP_CFLAGS FLIBS ac_ct_F77 FFLAGS F77 INDENT LIBQUADMATH LIBOBJS POW_LIB ALLOCA C_FFTW_R2R_KIND STACK_ALIGN_CFLAGS LASX_CFLAGS LSX_CFLAGS NEON_CFLAGS VSX_CFLAGS ALTIVEC_CFLAGS KCVI_CFLAGS AVX512_CFLAGS AVX2_CFLAGS AVX_CFLAGS SSE2_CFLAGS MPI_FALSE MPI_TRUE C_MPI_FINT MPIRUN MPILIBS MPICC OCAMLBUILD CPP LT_SYS_LIBRARY_PATH OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL MANIFEST_TOOL RANLIB ac_ct_AR AR FILECMD NM ac_ct_DUMPBIN DUMPBIN LD FGREP EGREP GREP SED LIBTOOL OBJDUMP DLLTOOL AS LN_S am__fastdepCC_FALSE am__fastdepCC_TRUE CCDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__include DEPDIR OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC PREC_SUFFIX HAVE_SVE_FALSE HAVE_SVE_TRUE HAVE_GENERIC_SIMD256_FALSE HAVE_GENERIC_SIMD256_TRUE HAVE_GENERIC_SIMD128_FALSE HAVE_GENERIC_SIMD128_TRUE HAVE_LASX_FALSE HAVE_LASX_TRUE HAVE_LSX_FALSE HAVE_LSX_TRUE HAVE_NEON_FALSE HAVE_NEON_TRUE HAVE_VSX_FALSE HAVE_VSX_TRUE HAVE_ALTIVEC_FALSE HAVE_ALTIVEC_TRUE HAVE_KCVI_FALSE HAVE_KCVI_TRUE HAVE_AVX_128_FMA_FALSE HAVE_AVX_128_FMA_TRUE AVX_128_FMA_CFLAGS HAVE_AVX512_FALSE HAVE_AVX512_TRUE HAVE_AVX2_FALSE HAVE_AVX2_TRUE HAVE_AVX_FALSE HAVE_AVX_TRUE HAVE_SSE2_FALSE HAVE_SSE2_TRUE CHECK_PL_OPTS PRECISION QUAD_FALSE QUAD_TRUE LDOUBLE_FALSE LDOUBLE_TRUE SINGLE_FALSE SINGLE_TRUE BUILD_DOC_FALSE BUILD_DOC_TRUE host_os host_vendor host_cpu host build_os build_vendor build_cpu build SHARED_VERSION_INFO MAINT MAINTAINER_MODE_FALSE MAINTAINER_MODE_TRUE am__xargs_n am__rm_f_notfound AM_BACKSLASH AM_DEFAULT_VERBOSITY AM_DEFAULT_V AM_V CSCOPE ETAGS CTAGS am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir runstatedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL am__quote' ac_subst_files='' ac_user_opts=' enable_option_checking enable_silent_rules enable_maintainer_mode enable_shared enable_debug enable_doc enable_random_estimator enable_alloca enable_single enable_float enable_long_double enable_quad_precision enable_sse enable_sse2 enable_avx enable_avx2 enable_avx512 enable_avx_128_fma enable_kcvi enable_altivec enable_vsx enable_neon enable_armv8_pmccntr_el0 enable_armv8_cntvct_el0 enable_armv7a_cntvct enable_armv7a_pmccntr enable_lsx enable_lasx enable_generic_simd128 enable_generic_simd256 enable_sve with_slow_timer enable_mips_zbus_timer with_our_malloc with_our_malloc16 with_windows_f77_mangling with_incoming_stack_boundary enable_fma enable_dependency_tracking enable_static enable_pic with_pic enable_fast_install enable_aix_soname with_aix_soname with_gnu_ld with_sysroot enable_libtool_lock enable_mpi enable_fortran with_g77_wrappers enable_openmp enable_threads with_combined_threads ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS LT_SYS_LIBRARY_PATH CPP MPICC F77 FFLAGS' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: '$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: '$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -runstatedir | --runstatedir | --runstatedi | --runstated \ | --runstate | --runstat | --runsta | --runst | --runs \ | --run | --ru | --r) ac_prev=runstatedir ;; -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ | --run=* | --ru=* | --r=*) runstatedir=$ac_optarg ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: '$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: '$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: '$ac_option' Try '$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: '$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: '$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but 'cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF 'configure' configures fftw 3.3.11 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print 'checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for '--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or '..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, 'make install' will install all the files in '$ac_default_prefix/bin', '$ac_default_prefix/lib' etc. You can specify an installation prefix other than '$ac_default_prefix' using '--prefix', for instance '--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/fftw] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of fftw 3.3.11:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-silent-rules less verbose build output (undo: "make V=1") --disable-silent-rules verbose build output (undo: "make V=0") --enable-maintainer-mode enable make rules and dependencies not useful (and sometimes confusing) to the casual installer --enable-shared[=PKGS] build shared libraries [default=no] --enable-debug compile fftw with extra runtime checks for debugging --disable-doc disable building the documentation --enable-random-estimator enable pseudorandom estimator (debugging hack) --disable-alloca disable use of the alloca() function (may be broken on mingw64) --enable-single compile fftw in single precision --enable-float synonym for --enable-single --enable-long-double compile fftw in long-double precision --enable-quad-precision compile fftw in quadruple precision if available --enable-sse enable SSE optimizations --enable-sse2 enable SSE/SSE2 optimizations --enable-avx enable AVX optimizations --enable-avx2 enable AVX2 optimizations --enable-avx512 enable AVX512 optimizations --enable-avx-128-fma enable AVX128/FMA optimizations --enable-kcvi enable Knights Corner vector instructions optimizations --enable-altivec enable Altivec optimizations --enable-vsx enable IBM VSX optimizations --enable-neon enable ARM NEON optimizations --enable-armv8-pmccntr-el0 enable the cycle counter on ARMv8 via the PMCCNTR_EL0 register (see README-perfcounters for details and mandatory instructions) --enable-armv8-cntvct-el0 enable the cycle counter on ARMv8 via the CNTVCT_EL0 register (see README-perfcounters for details and mandatory instructions) --enable-armv7a-cntvct enable the cycle counter on Armv7a via the CNTVCT register (see README-perfcounters for details and mandatory instructions) --enable-armv7a-pmccntr enable the cycle counter on Armv7a via the PMCCNTR register (see README-perfcounters for details and mandatory instructions) --enable-lsx enable LoongArch LSX optimizations --enable-lasx enable LoongArch LASX optimizations --enable-generic-simd128 enable generic (gcc) 128-bit SIMD optimizations --enable-generic-simd256 enable generic (gcc) 256-bit SIMD optimizations --enable-sve enable ARM SVE optimizations --enable-mips-zbus-timer use MIPS ZBus cycle-counter --enable-fma enable if the machine architecture "naturally" prefers fused multiply-add instructions --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build --enable-static[=PKGS] build static libraries [default=yes] --enable-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --enable-aix-soname=aix|svr4|both shared library versioning (aka "SONAME") variant to provide on AIX, [default=aix]. --disable-libtool-lock avoid locking (might break parallel builds) --enable-mpi compile FFTW MPI library --disable-fortran don't include Fortran-callable wrappers --enable-openmp use OpenMP directives for parallelism --enable-threads compile FFTW SMP threads library Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-slow-timer use low-precision timers (SLOW) --with-our-malloc use our aligned malloc (helpful for Win32) --with-our-malloc16 Obsolete alias for --with-our-malloc16 --with-windows-f77-mangling use common Win32 Fortran interface styles --with-incoming-stack-boundary=X Assume that stack is aligned to (1< if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory LT_SYS_LIBRARY_PATH User-defined run-time library search path. CPP C preprocessor MPICC MPI C compiler command F77 Fortran 77 compiler command FFLAGS Fortran 77 compiler flags Use these variables to override the choices made by 'configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for configure.gnu first; this name is used for a wrapper for # Metaconfig's "Configure" on case-insensitive file systems. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF fftw configure 3.3.11 generated by GNU Autoconf 2.72 Copyright (C) 2023 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest.beam if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext then : ac_retval=0 else case e in #( e) printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 ;; esac fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext } then : ac_retval=0 else case e in #( e) printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 ;; esac fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 printf %s "checking for $2... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 else case e in #( e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "$3=yes" else case e in #( e) eval "$3=no" ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; esac fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 printf %s "checking for $2... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 else case e in #( e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (void); below. */ #include #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (void); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main (void) { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : eval "$3=yes" else case e in #( e) eval "$3=no" ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext ;; esac fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err } then : ac_retval=0 else case e in #( e) printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 ;; esac fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_run LINENO # ---------------------- # Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that # executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; } then : ac_retval=0 else case e in #( e) printf "%s\n" "$as_me: program exited with status $ac_status" >&5 printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status ;; esac fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_compute_int LINENO EXPR VAR INCLUDES # -------------------------------------------- # Tries to find the compile-time value of EXPR in a program that includes # INCLUDES, setting VAR accordingly. Returns whether the value could be # computed ac_fn_c_compute_int () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if test "$cross_compiling" = yes; then # Depending upon the size, compute the lo and hi bounds. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main (void) { static int test_array [1 - 2 * !(($2) >= 0)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_lo=0 ac_mid=0 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main (void) { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_hi=$ac_mid; break else case e in #( e) as_fn_arith $ac_mid + 1 && ac_lo=$as_val if test $ac_lo -le $ac_mid; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done else case e in #( e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main (void) { static int test_array [1 - 2 * !(($2) < 0)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_hi=-1 ac_mid=-1 while :; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main (void) { static int test_array [1 - 2 * !(($2) >= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_lo=$ac_mid; break else case e in #( e) as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val if test $ac_mid -le $ac_hi; then ac_lo= ac_hi= break fi as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done else case e in #( e) ac_lo= ac_hi= ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext # Binary search between lo and hi bounds. while test "x$ac_lo" != "x$ac_hi"; do as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main (void) { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_hi=$ac_mid else case e in #( e) as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done case $ac_lo in #(( ?*) eval "$3=\$ac_lo"; ac_retval=0 ;; '') ac_retval=1 ;; esac else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 static long int longval (void) { return $2; } static unsigned long int ulongval (void) { return $2; } #include #include int main (void) { FILE *f = fopen ("conftest.val", "w"); if (! f) return 1; if (($2) < 0) { long int i = longval (); if (i != ($2)) return 1; fprintf (f, "%ld", i); } else { unsigned long int i = ulongval (); if (i != ($2)) return 1; fprintf (f, "%lu", i); } /* Do not output a trailing newline, as this causes \r\n confusion on some platforms. */ return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : echo >>conftest.val; read $3 &5 printf %s "checking for $2... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 else case e in #( e) eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main (void) { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main (void) { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : else case e in #( e) eval "$3=yes" ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; esac fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_type # ac_fn_c_find_uintX_t LINENO BITS VAR # ------------------------------------ # Finds an unsigned integer type with width BITS, setting cache variable VAR # accordingly. ac_fn_c_find_uintX_t () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5 printf %s "checking for uint$2_t... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 else case e in #( e) eval "$3=no" # Order is important - never check a type that is potentially smaller # than half of the expected target width. for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \ 'unsigned long long int' 'unsigned short int' 'unsigned char'; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main (void) { static int test_array [1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)]; test_array [0] = 0; return test_array [0]; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : case $ac_type in #( uint$2_t) : eval "$3=yes" ;; #( *) : eval "$3=\$ac_type" ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext if eval test \"x\$"$3"\" = x"no" then : else case e in #( e) break ;; esac fi done ;; esac fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_find_uintX_t # ac_fn_check_decl LINENO SYMBOL VAR INCLUDES EXTRA-OPTIONS FLAG-VAR # ------------------------------------------------------------------ # Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR # accordingly. Pass EXTRA-OPTIONS to the compiler, using FLAG-VAR. ac_fn_check_decl () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack as_decl_name=`echo $2|sed 's/ *(.*//'` { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 printf %s "checking whether $as_decl_name is declared... " >&6; } if eval test \${$3+y} then : printf %s "(cached) " >&6 else case e in #( e) as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` eval ac_save_FLAGS=\$$6 as_fn_append $6 " $5" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main (void) { #ifndef $as_decl_name #ifdef __cplusplus (void) $as_decl_use; #else (void) $as_decl_name; #endif #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "$3=yes" else case e in #( e) eval "$3=no" ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext eval $6=\$ac_save_FLAGS ;; esac fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_check_decl # ac_fn_f77_try_compile LINENO # ---------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_f77_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest.beam if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_f77_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext then : ac_retval=0 else case e in #( e) printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 ;; esac fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_f77_try_compile # ac_fn_f77_try_link LINENO # ------------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_f77_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_f77_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext } then : ac_retval=0 else case e in #( e) printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 ;; esac fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_f77_try_link ac_configure_args_raw= for ac_arg do case $ac_arg in *\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append ac_configure_args_raw " '$ac_arg'" done case $ac_configure_args_raw in *$as_nl*) ac_safe_unquote= ;; *) ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab. ac_unsafe_a="$ac_unsafe_z#~" ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g" ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; esac cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by fftw $as_me 3.3.11, which was generated by GNU Autoconf 2.72. Invocation command line was $ $0$ac_configure_args_raw _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac printf "%s\n" "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Sanitize IFS. IFS=" "" $as_nl" # Save into config.log some information that might help in debugging. { echo printf "%s\n" "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo printf "%s\n" "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then printf "%s\n" "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac printf "%s\n" "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then printf "%s\n" "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && printf "%s\n" "$as_me: caught signal $ac_signal" printf "%s\n" "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h printf "%s\n" "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. if test -n "$CONFIG_SITE"; then ac_site_files="$CONFIG_SITE" elif test "x$prefix" != xNONE; then ac_site_files="$prefix/share/config.site $prefix/etc/config.site" else ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" fi for ac_site_file in $ac_site_files do case $ac_site_file in #( */*) : ;; #( *) : ac_site_file=./$ac_site_file ;; esac if test -f "$ac_site_file" && test -r "$ac_site_file"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See 'config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 printf "%s\n" "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 printf "%s\n" "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Test code for whether the C compiler supports C89 (global declarations) ac_c_conftest_c89_globals=' /* Does the compiler advertise C89 conformance? Do not test the value of __STDC__, because some compilers set it to 0 while being otherwise adequately conformant. */ #if !defined __STDC__ # error "Compiler does not advertise C89 conformance" #endif #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ struct buf { int x; }; struct buf * (*rcsopen) (struct buf *, struct stat *, int); static char *e (char **p, int i) { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* C89 style stringification. */ #define noexpand_stringify(a) #a const char *stringified = noexpand_stringify(arbitrary+token=sequence); /* C89 style token pasting. Exercises some of the corner cases that e.g. old MSVC gets wrong, but not very hard. */ #define noexpand_concat(a,b) a##b #define expand_concat(a,b) noexpand_concat(a,b) extern int vA; extern int vbee; #define aye A #define bee B int *pvA = &expand_concat(v,aye); int *pvbee = &noexpand_concat(v,bee); /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not \xHH hex character constants. These do not provoke an error unfortunately, instead are silently treated as an "x". The following induces an error, until -std is added to get proper ANSI mode. Curiously \x00 != x always comes out true, for an array size at least. It is necessary to write \x00 == 0 to get something that is true only with -std. */ int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) '\''x'\'' int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int), int, int);' # Test code for whether the C compiler supports C89 (body of main). ac_c_conftest_c89_main=' ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); ' # Test code for whether the C compiler supports C99 (global declarations) ac_c_conftest_c99_globals=' /* Does the compiler advertise C99 conformance? */ #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L # error "Compiler does not advertise C99 conformance" #endif // See if C++-style comments work. #include extern int puts (const char *); extern int printf (const char *, ...); extern int dprintf (int, const char *, ...); extern void *malloc (size_t); extern void free (void *); // Check varargs macros. These examples are taken from C99 6.10.3.5. // dprintf is used instead of fprintf to avoid needing to declare // FILE and stderr. #define debug(...) dprintf (2, __VA_ARGS__) #define showlist(...) puts (#__VA_ARGS__) #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) static void test_varargs_macros (void) { int x = 1234; int y = 5678; debug ("Flag"); debug ("X = %d\n", x); showlist (The first, second, and third items.); report (x>y, "x is %d but y is %d", x, y); } // Check long long types. #define BIG64 18446744073709551615ull #define BIG32 4294967295ul #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) #if !BIG_OK #error "your preprocessor is broken" #endif #if BIG_OK #else #error "your preprocessor is broken" #endif static long long int bignum = -9223372036854775807LL; static unsigned long long int ubignum = BIG64; struct incomplete_array { int datasize; double data[]; }; struct named_init { int number; const wchar_t *name; double average; }; typedef const char *ccp; static inline int test_restrict (ccp restrict text) { // Iterate through items via the restricted pointer. // Also check for declarations in for loops. for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i) continue; return 0; } // Check varargs and va_copy. static bool test_varargs (const char *format, ...) { va_list args; va_start (args, format); va_list args_copy; va_copy (args_copy, args); const char *str = ""; int number = 0; float fnumber = 0; while (*format) { switch (*format++) { case '\''s'\'': // string str = va_arg (args_copy, const char *); break; case '\''d'\'': // int number = va_arg (args_copy, int); break; case '\''f'\'': // float fnumber = va_arg (args_copy, double); break; default: break; } } va_end (args_copy); va_end (args); return *str && number && fnumber; } ' # Test code for whether the C compiler supports C99 (body of main). ac_c_conftest_c99_main=' // Check bool. _Bool success = false; success |= (argc != 0); // Check restrict. if (test_restrict ("String literal") == 0) success = true; char *restrict newvar = "Another string"; // Check varargs. success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234); test_varargs_macros (); // Check flexible array members. struct incomplete_array *ia = malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); ia->datasize = 10; for (int i = 0; i < ia->datasize; ++i) ia->data[i] = i * 1.234; // Work around memory leak warnings. free (ia); // Check named initializers. struct named_init ni = { .number = 34, .name = L"Test wide string", .average = 543.34343, }; ni.number = 58; int dynamic_array[ni.number]; dynamic_array[0] = argv[0][0]; dynamic_array[ni.number - 1] = 543; // work around unused variable warnings ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\'' || dynamic_array[ni.number - 1] != 543); ' # Test code for whether the C compiler supports C11 (global declarations) ac_c_conftest_c11_globals=' /* Does the compiler advertise C11 conformance? */ #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L # error "Compiler does not advertise C11 conformance" #endif // Check _Alignas. char _Alignas (double) aligned_as_double; char _Alignas (0) no_special_alignment; extern char aligned_as_int; char _Alignas (0) _Alignas (int) aligned_as_int; // Check _Alignof. enum { int_alignment = _Alignof (int), int_array_alignment = _Alignof (int[100]), char_alignment = _Alignof (char) }; _Static_assert (0 < -_Alignof (int), "_Alignof is signed"); // Check _Noreturn. int _Noreturn does_not_return (void) { for (;;) continue; } // Check _Static_assert. struct test_static_assert { int x; _Static_assert (sizeof (int) <= sizeof (long int), "_Static_assert does not work in struct"); long int y; }; // Check UTF-8 literals. #define u8 syntax error! char const utf8_literal[] = u8"happens to be ASCII" "another string"; // Check duplicate typedefs. typedef long *long_ptr; typedef long int *long_ptr; typedef long_ptr long_ptr; // Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. struct anonymous { union { struct { int i; int j; }; struct { int k; long int l; } w; }; int m; } v1; ' # Test code for whether the C compiler supports C11 (body of main). ac_c_conftest_c11_main=' _Static_assert ((offsetof (struct anonymous, i) == offsetof (struct anonymous, w.k)), "Anonymous union alignment botch"); v1.i = 2; v1.w.k = 5; ok |= v1.i != 5; ' # Test code for whether the C compiler supports C11 (complete). ac_c_conftest_c11_program="${ac_c_conftest_c89_globals} ${ac_c_conftest_c99_globals} ${ac_c_conftest_c11_globals} int main (int argc, char **argv) { int ok = 0; ${ac_c_conftest_c89_main} ${ac_c_conftest_c99_main} ${ac_c_conftest_c11_main} return ok; } " # Test code for whether the C compiler supports C99 (complete). ac_c_conftest_c99_program="${ac_c_conftest_c89_globals} ${ac_c_conftest_c99_globals} int main (int argc, char **argv) { int ok = 0; ${ac_c_conftest_c89_main} ${ac_c_conftest_c99_main} return ok; } " # Test code for whether the C compiler supports C89 (complete). ac_c_conftest_c89_program="${ac_c_conftest_c89_globals} int main (int argc, char **argv) { int ok = 0; ${ac_c_conftest_c89_main} return ok; } " as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H" as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H" as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H" as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H" as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H" as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H" as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H" as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H" as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H" as_fn_append ac_header_c_list " sys/time.h sys_time_h HAVE_SYS_TIME_H" as_fn_append ac_func_c_list " vprintf HAVE_VPRINTF" # Auxiliary files required by this configure script. ac_aux_files="ltmain.sh compile config.guess config.sub missing install-sh" # Locations in which to look for auxiliary files. ac_aux_dir_candidates="${srcdir}${PATH_SEPARATOR}${srcdir}/..${PATH_SEPARATOR}${srcdir}/../.." # Search for a directory containing all of the required auxiliary files, # $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates. # If we don't find one directory that contains all the files we need, # we report the set of missing files from the *first* directory in # $ac_aux_dir_candidates and give up. ac_missing_aux_files="" ac_first_candidate=: printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in $ac_aux_dir_candidates do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac as_found=: printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5 ac_aux_dir_found=yes ac_install_sh= for ac_aux in $ac_aux_files do # As a special case, if "install-sh" is required, that requirement # can be satisfied by any of "install-sh", "install.sh", or "shtool", # and $ac_install_sh is set appropriately for whichever one is found. if test x"$ac_aux" = x"install-sh" then if test -f "${as_dir}install-sh"; then printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5 ac_install_sh="${as_dir}install-sh -c" elif test -f "${as_dir}install.sh"; then printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5 ac_install_sh="${as_dir}install.sh -c" elif test -f "${as_dir}shtool"; then printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5 ac_install_sh="${as_dir}shtool install -c" else ac_aux_dir_found=no if $ac_first_candidate; then ac_missing_aux_files="${ac_missing_aux_files} install-sh" else break fi fi else if test -f "${as_dir}${ac_aux}"; then printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5 else ac_aux_dir_found=no if $ac_first_candidate; then ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}" else break fi fi fi done if test "$ac_aux_dir_found" = yes; then ac_aux_dir="$as_dir" break fi ac_first_candidate=false as_found=false done IFS=$as_save_IFS if $as_found then : else case e in #( e) as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5 ;; esac fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. if test -f "${ac_aux_dir}config.guess"; then ac_config_guess="$SHELL ${ac_aux_dir}config.guess" fi if test -f "${ac_aux_dir}config.sub"; then ac_config_sub="$SHELL ${ac_aux_dir}config.sub" fi if test -f "$ac_aux_dir/configure"; then ac_configure="$SHELL ${ac_aux_dir}configure" fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&5 printf "%s\n" "$as_me: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was not set in the previous run" >&5 printf "%s\n" "$as_me: error: '$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' has changed since the previous run:" >&5 printf "%s\n" "$as_me: error: '$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&5 printf "%s\n" "$as_me: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: '$ac_old_val'" >&5 printf "%s\n" "$as_me: former value: '$ac_old_val'" >&2;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: '$ac_new_val'" >&5 printf "%s\n" "$as_me: current value: '$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run '${MAKE-make} distclean' and/or 'rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## 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 SHARED_VERSION_INFO="10:11:7" # CURRENT:REVISION:AGE am__api_version='1.17' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 printf %s "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test ${ac_cv_path_install+y} then : printf %s "(cached) " >&6 else case e in #( e) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac # Account for fact that we put trailing slashes in our PATH walk. case $as_dir in #(( ./ | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir/" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir ;; esac fi if test ${ac_cv_path_install+y}; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 printf "%s\n" "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether sleep supports fractional seconds" >&5 printf %s "checking whether sleep supports fractional seconds... " >&6; } if test ${am_cv_sleep_fractional_seconds+y} then : printf %s "(cached) " >&6 else case e in #( e) if sleep 0.001 2>/dev/null then : am_cv_sleep_fractional_seconds=yes else case e in #( e) am_cv_sleep_fractional_seconds=no ;; esac fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_sleep_fractional_seconds" >&5 printf "%s\n" "$am_cv_sleep_fractional_seconds" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking filesystem timestamp resolution" >&5 printf %s "checking filesystem timestamp resolution... " >&6; } if test ${am_cv_filesystem_timestamp_resolution+y} then : printf %s "(cached) " >&6 else case e in #( e) # Default to the worst case. am_cv_filesystem_timestamp_resolution=2 # Only try to go finer than 1 sec if sleep can do it. # Don't try 1 sec, because if 0.01 sec and 0.1 sec don't work, # - 1 sec is not much of a win compared to 2 sec, and # - it takes 2 seconds to perform the test whether 1 sec works. # # Instead, just use the default 2s on platforms that have 1s resolution, # accept the extra 1s delay when using $sleep in the Automake tests, in # exchange for not incurring the 2s delay for running the test for all # packages. # am_try_resolutions= if test "$am_cv_sleep_fractional_seconds" = yes; then # Even a millisecond often causes a bunch of false positives, # so just try a hundredth of a second. The time saved between .001 and # .01 is not terribly consequential. am_try_resolutions="0.01 0.1 $am_try_resolutions" fi # In order to catch current-generation FAT out, we must *modify* files # that already exist; the *creation* timestamp is finer. Use names # that make ls -t sort them differently when they have equal # timestamps than when they have distinct timestamps, keeping # in mind that ls -t prints the *newest* file first. rm -f conftest.ts? : > conftest.ts1 : > conftest.ts2 : > conftest.ts3 # Make sure ls -t actually works. Do 'set' in a subshell so we don't # clobber the current shell's arguments. (Outer-level square brackets # are removed by m4; they're present so that m4 does not expand # ; be careful, easy to get confused.) if ( set X `ls -t conftest.ts[12]` && { test "$*" != "X conftest.ts1 conftest.ts2" || test "$*" != "X conftest.ts2 conftest.ts1"; } ); then :; else # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". printf "%s\n" ""Bad output from ls -t: \"`ls -t conftest.ts[12]`\""" >&5 { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "ls -t produces unexpected output. Make sure there is not a broken ls alias in your environment. See 'config.log' for more details" "$LINENO" 5; } fi for am_try_res in $am_try_resolutions; do # Any one fine-grained sleep might happen to cross the boundary # between two values of a coarser actual resolution, but if we do # two fine-grained sleeps in a row, at least one of them will fall # entirely within a coarse interval. echo alpha > conftest.ts1 sleep $am_try_res echo beta > conftest.ts2 sleep $am_try_res echo gamma > conftest.ts3 # We assume that 'ls -t' will make use of high-resolution # timestamps if the operating system supports them at all. if (set X `ls -t conftest.ts?` && test "$2" = conftest.ts3 && test "$3" = conftest.ts2 && test "$4" = conftest.ts1); then # # Ok, ls -t worked. If we're at a resolution of 1 second, we're done, # because we don't need to test make. make_ok=true if test $am_try_res != 1; then # But if we've succeeded so far with a subsecond resolution, we # have one more thing to check: make. It can happen that # everything else supports the subsecond mtimes, but make doesn't; # notably on macOS, which ships make 3.81 from 2006 (the last one # released under GPLv2). https://bugs.gnu.org/68808 # # We test $MAKE if it is defined in the environment, else "make". # It might get overridden later, but our hope is that in practice # it does not matter: it is the system "make" which is (by far) # the most likely to be broken, whereas if the user overrides it, # probably they did so with a better, or at least not worse, make. # https://lists.gnu.org/archive/html/automake/2024-06/msg00051.html # # Create a Makefile (real tab character here): rm -f conftest.mk echo 'conftest.ts1: conftest.ts2' >conftest.mk echo ' touch conftest.ts2' >>conftest.mk # # Now, running # touch conftest.ts1; touch conftest.ts2; make # should touch ts1 because ts2 is newer. This could happen by luck, # but most often, it will fail if make's support is insufficient. So # test for several consecutive successes. # # (We reuse conftest.ts[12] because we still want to modify existing # files, not create new ones, per above.) n=0 make=${MAKE-make} until test $n -eq 3; do echo one > conftest.ts1 sleep $am_try_res echo two > conftest.ts2 # ts2 should now be newer than ts1 if $make -f conftest.mk | grep 'up to date' >/dev/null; then make_ok=false break # out of $n loop fi n=`expr $n + 1` done fi # if $make_ok; then # Everything we know to check worked out, so call this resolution good. am_cv_filesystem_timestamp_resolution=$am_try_res break # out of $am_try_res loop fi # Otherwise, we'll go on to check the next resolution. fi done rm -f conftest.ts? # (end _am_filesystem_timestamp_resolution) ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_filesystem_timestamp_resolution" >&5 printf "%s\n" "$am_cv_filesystem_timestamp_resolution" >&6; } # This check should not be cached, as it may vary across builds of # different projects. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 printf %s "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). am_build_env_is_sane=no am_has_slept=no rm -f conftest.file for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi test "$2" = conftest.file ); then am_build_env_is_sane=yes break fi # Just in case. sleep "$am_cv_filesystem_timestamp_resolution" am_has_slept=yes done { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_build_env_is_sane" >&5 printf "%s\n" "$am_build_env_is_sane" >&6; } if test "$am_build_env_is_sane" = no; then as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if test -e conftest.file || grep 'slept: no' conftest.file >/dev/null 2>&1 then : else case e in #( e) ( sleep "$am_cv_filesystem_timestamp_resolution" ) & am_sleep_pid=$! ;; esac fi rm -f conftest.file test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was 's,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`printf "%s\n" "$program_transform_name" | sed "$ac_script"` # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` if test x"${MISSING+set}" != xset; then MISSING="\${SHELL} '$am_aux_dir/missing'" fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 printf "%s\n" "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_STRIP+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 printf "%s\n" "$STRIP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_STRIP+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 printf "%s\n" "$ac_ct_STRIP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a race-free mkdir -p" >&5 printf %s "checking for a race-free mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if test ${ac_cv_path_mkdir+y} then : printf %s "(cached) " >&6 else case e in #( e) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext" || continue case `"$as_dir$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir ('*'coreutils) '* | \ *'BusyBox '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS ;; esac fi test -d ./--version && rmdir ./--version if test ${ac_cv_path_mkdir+y}; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use plain mkdir -p, # in the hope it doesn't have the bugs of ancient mkdir. MKDIR_P='mkdir -p' fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 printf "%s\n" "$MKDIR_P" >&6; } for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_AWK+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 printf "%s\n" "$AWK" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$AWK" && break done { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval test \${ac_cv_prog_make_${ac_make}_set+y} then : printf %s "(cached) " >&6 else case e in #( e) cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make ;; esac fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } SET_MAKE= else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AM_DEFAULT_VERBOSITY=1 # Check whether --enable-silent-rules was given. if test ${enable_silent_rules+y} then : enableval=$enable_silent_rules; fi am_make=${MAKE-make} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 printf %s "checking whether $am_make supports nested variables... " >&6; } if test ${am_cv_make_support_nested_variables+y} then : printf %s "(cached) " >&6 else case e in #( e) if printf "%s\n" 'TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 printf "%s\n" "$am_cv_make_support_nested_variables" >&6; } AM_BACKSLASH='\' am__rm_f_notfound= if (rm -f && rm -fr && rm -rf) 2>/dev/null then : else case e in #( e) am__rm_f_notfound='""' ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking xargs -n works" >&5 printf %s "checking xargs -n works... " >&6; } if test ${am_cv_xargs_n_works+y} then : printf %s "(cached) " >&6 else case e in #( e) if test "`echo 1 2 3 | xargs -n2 echo`" = "1 2 3" then : am_cv_xargs_n_works=yes else case e in #( e) am_cv_xargs_n_works=no ;; esac fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_xargs_n_works" >&5 printf "%s\n" "$am_cv_xargs_n_works" >&6; } if test "$am_cv_xargs_n_works" = yes then : am__xargs_n='xargs -n' else case e in #( e) am__xargs_n='am__xargs_n () { shift; sed "s/ /\\n/g" | while read am__xargs_n_arg; do "" "$am__xargs_n_arg"; done; }' ;; esac fi if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='fftw' VERSION='3.3.11' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h printf "%s\n" "#define VERSION \"$VERSION\"" >>confdefs.h # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # mkdir_p='$(MKDIR_P)' # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar pax cpio none' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' # Variables for tags utilities; see am/tags.am if test -z "$CTAGS"; then CTAGS=ctags fi if test -z "$ETAGS"; then ETAGS=etags fi if test -z "$CSCOPE"; then CSCOPE=cscope fi ac_config_headers="$ac_config_headers config.h" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 printf %s "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } # Check whether --enable-maintainer-mode was given. if test ${enable_maintainer_mode+y} then : enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval else case e in #( e) USE_MAINTAINER_MODE=no ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 printf "%s\n" "$USE_MAINTAINER_MODE" >&6; } if test $USE_MAINTAINER_MODE = yes; then MAINTAINER_MODE_TRUE= MAINTAINER_MODE_FALSE='#' else MAINTAINER_MODE_TRUE='#' MAINTAINER_MODE_FALSE= fi MAINT=$MAINTAINER_MODE_TRUE # Check whether --enable-shared was given. if test ${enable_shared+y} 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 case e in #( e) enable_shared=no ;; esac fi # Make sure we can run config.sub. $SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 printf %s "checking build system type... " >&6; } if test ${ac_cv_build+y} then : printf %s "(cached) " >&6 else case e in #( e) ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` || as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5 ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 printf "%s\n" "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 printf %s "checking host system type... " >&6; } if test ${ac_cv_host+y} then : printf %s "(cached) " >&6 else case e in #( e) if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` || as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5 fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 printf "%s\n" "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac case "${host_cpu}" in powerpc*) arch_prefers_fma=yes;; ia64*) arch_prefers_fma=yes;; hppa*) arch_prefers_fma=yes;; mips64*) arch_prefers_fma=yes;; *) arch_prefers_fma=no;; esac # Check whether --enable-debug was given. if test ${enable_debug+y} then : enableval=$enable_debug; ok=$enableval else case e in #( e) ok=no ;; esac fi if test "$ok" = "yes"; then printf "%s\n" "#define FFTW_DEBUG 1" >>confdefs.h fi # Check whether --enable-doc was given. if test ${enable_doc+y} then : enableval=$enable_doc; build_doc=$enableval else case e in #( e) build_doc=yes ;; esac fi if test x"$build_doc" = xyes; then BUILD_DOC_TRUE= BUILD_DOC_FALSE='#' else BUILD_DOC_TRUE='#' BUILD_DOC_FALSE= fi # Check whether --enable-random-estimator was given. if test ${enable_random_estimator+y} then : enableval=$enable_random_estimator; ok=$enableval else case e in #( e) ok=no ;; esac fi if test "$ok" = "yes"; then printf "%s\n" "#define FFTW_RANDOM_ESTIMATOR 1" >>confdefs.h CHECK_PL_OPTS="--estimate" fi # Check whether --enable-alloca was given. if test ${enable_alloca+y} then : enableval=$enable_alloca; ok=$enableval else case e in #( e) ok=yes ;; esac fi if test "$ok" = "yes"; then printf "%s\n" "#define FFTW_ENABLE_ALLOCA 1" >>confdefs.h fi # Check whether --enable-single was given. if test ${enable_single+y} then : enableval=$enable_single; ok=$enableval else case e in #( e) ok=no ;; esac fi # Check whether --enable-float was given. if test ${enable_float+y} then : enableval=$enable_float; ok=$enableval fi if test "$ok" = "yes"; then printf "%s\n" "#define FFTW_SINGLE 1" >>confdefs.h printf "%s\n" "#define BENCHFFT_SINGLE 1" >>confdefs.h PRECISION=s else PRECISION=d fi if test "$ok" = "yes"; then SINGLE_TRUE= SINGLE_FALSE='#' else SINGLE_TRUE='#' SINGLE_FALSE= fi # Check whether --enable-long-double was given. if test ${enable_long_double+y} then : enableval=$enable_long_double; ok=$enableval else case e in #( e) ok=no ;; esac fi if test "$ok" = "yes"; then if test "$PRECISION" = "s"; then as_fn_error $? "--enable-single/--enable-long-double conflict" "$LINENO" 5 fi printf "%s\n" "#define FFTW_LDOUBLE 1" >>confdefs.h printf "%s\n" "#define BENCHFFT_LDOUBLE 1" >>confdefs.h PRECISION=l fi if test "$ok" = "yes"; then LDOUBLE_TRUE= LDOUBLE_FALSE='#' else LDOUBLE_TRUE='#' LDOUBLE_FALSE= fi # Check whether --enable-quad-precision was given. if test ${enable_quad_precision+y} then : enableval=$enable_quad_precision; ok=$enableval else case e in #( e) ok=no ;; esac fi if test "$ok" = "yes"; then if test "$PRECISION" != "d"; then as_fn_error $? "conflicting precisions specified" "$LINENO" 5 fi printf "%s\n" "#define FFTW_QUAD 1" >>confdefs.h printf "%s\n" "#define BENCHFFT_QUAD 1" >>confdefs.h PRECISION=q fi if test "$ok" = "yes"; then QUAD_TRUE= QUAD_FALSE='#' else QUAD_TRUE='#' QUAD_FALSE= fi # Check whether --enable-sse was given. if test ${enable_sse+y} then : enableval=$enable_sse; have_sse=$enableval else case e in #( e) have_sse=no ;; esac fi if test "$have_sse" = "yes"; then if test "$PRECISION" != "s"; then as_fn_error $? "SSE requires single precision" "$LINENO" 5 fi fi # Check whether --enable-sse2 was given. if test ${enable_sse2+y} then : enableval=$enable_sse2; have_sse2=$enableval else case e in #( e) have_sse2=no ;; esac fi if test "$have_sse" = "yes"; then have_sse2=yes; fi if test "$have_sse2" = "yes"; then printf "%s\n" "#define HAVE_SSE2 1" >>confdefs.h if test "$PRECISION" != "d" -a "$PRECISION" != "s"; then as_fn_error $? "SSE2 requires single or double precision" "$LINENO" 5 fi fi if test "$have_sse2" = "yes"; then HAVE_SSE2_TRUE= HAVE_SSE2_FALSE='#' else HAVE_SSE2_TRUE='#' HAVE_SSE2_FALSE= fi # Check whether --enable-avx was given. if test ${enable_avx+y} then : enableval=$enable_avx; have_avx=$enableval else case e in #( e) have_avx=no ;; esac fi if test "$have_avx" = "yes"; then printf "%s\n" "#define HAVE_AVX 1" >>confdefs.h if test "$PRECISION" != "d" -a "$PRECISION" != "s"; then as_fn_error $? "AVX requires single or double precision" "$LINENO" 5 fi fi if test "$have_avx" = "yes"; then HAVE_AVX_TRUE= HAVE_AVX_FALSE='#' else HAVE_AVX_TRUE='#' HAVE_AVX_FALSE= fi # Check whether --enable-avx2 was given. if test ${enable_avx2+y} then : enableval=$enable_avx2; have_avx2=$enableval else case e in #( e) have_avx2=no ;; esac fi if test "$have_avx2" = "yes"; then printf "%s\n" "#define HAVE_AVX2 1" >>confdefs.h if test "$PRECISION" != "d" -a "$PRECISION" != "s"; then as_fn_error $? "AVX2 requires single or double precision" "$LINENO" 5 fi fi if test "$have_avx2" = "yes"; then HAVE_AVX2_TRUE= HAVE_AVX2_FALSE='#' else HAVE_AVX2_TRUE='#' HAVE_AVX2_FALSE= fi # Check whether --enable-avx512 was given. if test ${enable_avx512+y} then : enableval=$enable_avx512; have_avx512=$enableval else case e in #( e) have_avx512=no ;; esac fi if test "$have_avx512" = "yes"; then printf "%s\n" "#define HAVE_AVX512 1" >>confdefs.h if test "$PRECISION" != "d" -a "$PRECISION" != "s"; then as_fn_error $? "AVX512 requires single or double precision" "$LINENO" 5 fi fi if test "$have_avx512" = "yes"; then HAVE_AVX512_TRUE= HAVE_AVX512_FALSE='#' else HAVE_AVX512_TRUE='#' HAVE_AVX512_FALSE= fi # Check whether --enable-avx-128-fma was given. if test ${enable_avx_128_fma+y} then : enableval=$enable_avx_128_fma; have_avx_128_fma=$enableval else case e in #( e) have_avx_128_fma=no ;; esac fi if test "$have_avx_128_fma" = "yes"; then printf "%s\n" "#define HAVE_AVX_128_FMA 1" >>confdefs.h AVX_128_FMA_CFLAGS="${AVX_CFLAGS} -mfma4" fi if test "$have_avx_128_fma" = "yes"; then HAVE_AVX_128_FMA_TRUE= HAVE_AVX_128_FMA_FALSE='#' else HAVE_AVX_128_FMA_TRUE='#' HAVE_AVX_128_FMA_FALSE= fi # Check whether --enable-kcvi was given. if test ${enable_kcvi+y} then : enableval=$enable_kcvi; have_kcvi=$enableval else case e in #( e) have_kcvi=no ;; esac fi if test "$have_kcvi" = "yes"; then printf "%s\n" "#define HAVE_KCVI 1" >>confdefs.h if test "$PRECISION" != "d" -a "$PRECISION" != "s"; then as_fn_error $? "Knights Corner vector instructions requires single or double precision" "$LINENO" 5 fi fi if test "$have_kcvi" = "yes"; then HAVE_KCVI_TRUE= HAVE_KCVI_FALSE='#' else HAVE_KCVI_TRUE='#' HAVE_KCVI_FALSE= fi # Check whether --enable-altivec was given. if test ${enable_altivec+y} then : enableval=$enable_altivec; have_altivec=$enableval else case e in #( e) have_altivec=no ;; esac fi if test "$have_altivec" = "yes"; then printf "%s\n" "#define HAVE_ALTIVEC 1" >>confdefs.h if test "$PRECISION" != "s"; then as_fn_error $? "Altivec requires single precision" "$LINENO" 5 fi fi if test "$have_altivec" = "yes"; then HAVE_ALTIVEC_TRUE= HAVE_ALTIVEC_FALSE='#' else HAVE_ALTIVEC_TRUE='#' HAVE_ALTIVEC_FALSE= fi # Check whether --enable-vsx was given. if test ${enable_vsx+y} then : enableval=$enable_vsx; have_vsx=$enableval else case e in #( e) have_vsx=no ;; esac fi if test "$have_vsx" = "yes"; then printf "%s\n" "#define HAVE_VSX 1" >>confdefs.h fi if test "$have_vsx" = "yes"; then HAVE_VSX_TRUE= HAVE_VSX_FALSE='#' else HAVE_VSX_TRUE='#' HAVE_VSX_FALSE= fi # Check whether --enable-neon was given. if test ${enable_neon+y} then : enableval=$enable_neon; have_neon=$enableval else case e in #( e) have_neon=no ;; esac fi if test "$have_neon" = "yes"; then printf "%s\n" "#define HAVE_NEON 1" >>confdefs.h case "${host_cpu}" in aarch64) ;; *) if test "$PRECISION" != "s"; then as_fn_error $? "NEON requires single precision" "$LINENO" 5 fi ;; esac fi if test "$have_neon" = "yes"; then HAVE_NEON_TRUE= HAVE_NEON_FALSE='#' else HAVE_NEON_TRUE='#' HAVE_NEON_FALSE= fi # Check whether --enable-armv8-pmccntr-el0 was given. if test ${enable_armv8_pmccntr_el0+y} then : enableval=$enable_armv8_pmccntr_el0; have_armv8pmccntrel0=$enableval fi if test "$have_armv8pmccntrel0"x = "yes"x; then printf "%s\n" "#define HAVE_ARMV8_PMCCNTR_EL0 1" >>confdefs.h fi # Check whether --enable-armv8-cntvct-el0 was given. if test ${enable_armv8_cntvct_el0+y} then : enableval=$enable_armv8_cntvct_el0; have_armv8cntvctel0=$enableval fi if test "$have_armv8cntvctel0"x = "yes"x; then printf "%s\n" "#define HAVE_ARMV8_CNTVCT_EL0 1" >>confdefs.h fi # Check whether --enable-armv7a-cntvct was given. if test ${enable_armv7a_cntvct+y} then : enableval=$enable_armv7a_cntvct; have_armv7acntvct=$enableval fi if test "$have_armv7acntvct"x = "yes"x; then printf "%s\n" "#define HAVE_ARMV7A_CNTVCT 1" >>confdefs.h fi # Check whether --enable-armv7a-pmccntr was given. if test ${enable_armv7a_pmccntr+y} then : enableval=$enable_armv7a_pmccntr; have_armv7apmccntr=$enableval fi if test "$have_armv7apmccntr"x = "yes"x; then printf "%s\n" "#define HAVE_ARMV7A_PMCCNTR 1" >>confdefs.h fi # Check whether --enable-lsx was given. if test ${enable_lsx+y} then : enableval=$enable_lsx; have_lsx=$enableval else case e in #( e) have_lsx=no ;; esac fi if test "$have_lsx" = "yes"; then printf "%s\n" "#define HAVE_LSX 1" >>confdefs.h fi if test "$have_lsx" = "yes"; then HAVE_LSX_TRUE= HAVE_LSX_FALSE='#' else HAVE_LSX_TRUE='#' HAVE_LSX_FALSE= fi # Check whether --enable-lasx was given. if test ${enable_lasx+y} then : enableval=$enable_lasx; have_lasx=$enableval else case e in #( e) have_lasx=no ;; esac fi if test "$have_lasx" = "yes"; then printf "%s\n" "#define HAVE_LASX 1" >>confdefs.h fi if test "$have_lasx" = "yes"; then HAVE_LASX_TRUE= HAVE_LASX_FALSE='#' else HAVE_LASX_TRUE='#' HAVE_LASX_FALSE= fi # Check whether --enable-generic-simd128 was given. if test ${enable_generic_simd128+y} then : enableval=$enable_generic_simd128; have_generic_simd128=$enableval else case e in #( e) have_generic_simd128=no ;; esac fi if test "$have_generic_simd128" = "yes"; then printf "%s\n" "#define HAVE_GENERIC_SIMD128 1" >>confdefs.h fi if test "$have_generic_simd128" = "yes"; then HAVE_GENERIC_SIMD128_TRUE= HAVE_GENERIC_SIMD128_FALSE='#' else HAVE_GENERIC_SIMD128_TRUE='#' HAVE_GENERIC_SIMD128_FALSE= fi # Check whether --enable-generic-simd256 was given. if test ${enable_generic_simd256+y} then : enableval=$enable_generic_simd256; have_generic_simd256=$enableval else case e in #( e) have_generic_simd256=no ;; esac fi if test "$have_generic_simd256" = "yes"; then printf "%s\n" "#define HAVE_GENERIC_SIMD256 1" >>confdefs.h fi if test "$have_generic_simd256" = "yes"; then HAVE_GENERIC_SIMD256_TRUE= HAVE_GENERIC_SIMD256_FALSE='#' else HAVE_GENERIC_SIMD256_TRUE='#' HAVE_GENERIC_SIMD256_FALSE= fi # Check whether --enable-sve was given. if test ${enable_sve+y} then : enableval=$enable_sve; have_sve=$enableval else case e in #( e) have_sve=no ;; esac fi if test "$have_sve" = "yes"; then printf "%s\n" "#define HAVE_SVE 1" >>confdefs.h fi if test "$have_sve" = "yes"; then HAVE_SVE_TRUE= HAVE_SVE_FALSE='#' else HAVE_SVE_TRUE='#' HAVE_SVE_FALSE= fi # Check whether --with-slow-timer was given. if test ${with_slow_timer+y} then : withval=$with_slow_timer; with_slow_timer=$withval else case e in #( e) with_slow_timer=no ;; esac fi if test "$with_slow_timer" = "yes"; then printf "%s\n" "#define WITH_SLOW_TIMER 1" >>confdefs.h fi # Check whether --enable-mips_zbus_timer was given. if test ${enable_mips_zbus_timer+y} then : enableval=$enable_mips_zbus_timer; have_mips_zbus_timer=$enableval else case e in #( e) have_mips_zbus_timer=no ;; esac fi if test "$have_mips_zbus_timer" = "yes"; then printf "%s\n" "#define HAVE_MIPS_ZBUS_TIMER 1" >>confdefs.h fi # Check whether --with-our-malloc was given. if test ${with_our_malloc+y} then : withval=$with_our_malloc; with_our_malloc=$withval else case e in #( e) with_our_malloc=no ;; esac fi # Check whether --with-our-malloc16 was given. if test ${with_our_malloc16+y} then : withval=$with_our_malloc16; with_our_malloc=$withval fi if test "$with_our_malloc" = "yes"; then printf "%s\n" "#define WITH_OUR_MALLOC 1" >>confdefs.h fi # Check whether --with-windows-f77-mangling was given. if test ${with_windows_f77_mangling+y} then : withval=$with_windows_f77_mangling; with_windows_f77_mangling=$withval else case e in #( e) with_windows_f77_mangling=no ;; esac fi if test "$with_windows_f77_mangling" = "yes"; then printf "%s\n" "#define WINDOWS_F77_MANGLING 1" >>confdefs.h fi # Check whether --with-incoming-stack-boundary was given. if test ${with_incoming_stack_boundary+y} then : withval=$with_incoming_stack_boundary; with_incoming_stack_boundary=$withval else case e in #( e) with_incoming_stack_boundary=no ;; esac fi # Check whether --enable-fma was given. if test ${enable_fma+y} then : enableval=$enable_fma; arch_prefers_fma=$enableval fi if test "$arch_prefers_fma"x = "yes"x; then printf "%s\n" "#define ARCH_PREFERS_FMA 1" >>confdefs.h fi case "$PRECISION" in s) PREC_SUFFIX=f;; d) PREC_SUFFIX=;; l) PREC_SUFFIX=l;; q) PREC_SUFFIX=q;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 printf "%s\n" "$ac_ct_CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@" fi fi fi ;; esac fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 printf "%s\n" "$ac_ct_CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. set dummy ${ac_tool_prefix}clang; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}clang" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi CC=$ac_cv_prog_CC if test -n "$CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 printf "%s\n" "$CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "clang", so it can be a program name with args. set dummy clang; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="clang" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 printf "%s\n" "$ac_ct_CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi fi test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See 'config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion -version; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 printf %s "checking whether the C compiler works... " >&6; } ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : # Autoconf-2.13 could set the ac_cv_exeext variable to 'no'. # So ignore a value of 'no', otherwise this would lead to 'EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an '-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else case e in #( e) ac_file='' ;; esac fi if test -z "$ac_file" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See 'config.log' for more details" "$LINENO" 5; } else case e in #( e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 printf %s "checking for C compiler default output file name... " >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 printf "%s\n" "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 printf %s "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : # If both 'conftest.exe' and 'conftest' are 'present' (well, observable) # catch 'conftest.exe'. For instance with Cygwin, 'ls conftest' will # work properly (i.e., refer to 'conftest.exe'), while it won't with # 'rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else case e in #( e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See 'config.log' for more details" "$LINENO" 5; } ;; esac fi rm -f conftest conftest$ac_cv_exeext { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 printf "%s\n" "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main (void) { FILE *f = fopen ("conftest.out", "w"); if (!f) return 1; return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 printf %s "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "cannot run C compiled programs. If you meant to cross compile, use '--host'. See 'config.log' for more details" "$LINENO" 5; } fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 printf "%s\n" "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext \ conftest.o conftest.obj conftest.out ac_clean_files=$ac_clean_files_save { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 printf %s "checking for suffix of object files... " >&6; } if test ${ac_cv_objext+y} then : printf %s "(cached) " >&6 else case e in #( e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else case e in #( e) printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See 'config.log' for more details" "$LINENO" 5; } ;; esac fi rm -f conftest.$ac_cv_objext conftest.$ac_ext ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 printf "%s\n" "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 printf %s "checking whether the compiler supports GNU C... " >&6; } if test ${ac_cv_c_compiler_gnu+y} then : printf %s "(cached) " >&6 else case e in #( e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_compiler_gnu=yes else case e in #( e) ac_compiler_gnu=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } ac_compiler_gnu=$ac_cv_c_compiler_gnu if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+y} ac_save_CFLAGS=$CFLAGS { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 printf %s "checking whether $CC accepts -g... " >&6; } if test ${ac_cv_prog_cc_g+y} then : printf %s "(cached) " >&6 else case e in #( e) ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_g=yes else case e in #( e) CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : else case e in #( e) ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 printf "%s\n" "$ac_cv_prog_cc_g" >&6; } if test $ac_test_CFLAGS; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi ac_prog_cc_stdc=no if test x$ac_prog_cc_stdc = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 printf %s "checking for $CC option to enable C11 features... " >&6; } if test ${ac_cv_prog_cc_c11+y} then : printf %s "(cached) " >&6 else case e in #( e) ac_cv_prog_cc_c11=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_c_conftest_c11_program _ACEOF for ac_arg in '' -std=gnu11 do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_c11=$ac_arg fi rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c11" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC ;; esac fi if test "x$ac_cv_prog_cc_c11" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } else case e in #( e) if test "x$ac_cv_prog_cc_c11" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } else case e in #( e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } CC="$CC $ac_cv_prog_cc_c11" ;; esac fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 ac_prog_cc_stdc=c11 ;; esac fi fi if test x$ac_prog_cc_stdc = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 printf %s "checking for $CC option to enable C99 features... " >&6; } if test ${ac_cv_prog_cc_c99+y} then : printf %s "(cached) " >&6 else case e in #( e) ac_cv_prog_cc_c99=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_c_conftest_c99_program _ACEOF for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_c99=$ac_arg fi rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c99" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC ;; esac fi if test "x$ac_cv_prog_cc_c99" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } else case e in #( e) if test "x$ac_cv_prog_cc_c99" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } else case e in #( e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } CC="$CC $ac_cv_prog_cc_c99" ;; esac fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 ac_prog_cc_stdc=c99 ;; esac fi fi if test x$ac_prog_cc_stdc = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 printf %s "checking for $CC option to enable C89 features... " >&6; } if test ${ac_cv_prog_cc_c89+y} then : printf %s "(cached) " >&6 else case e in #( e) ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_c_conftest_c89_program _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext conftest.beam test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC ;; esac fi if test "x$ac_cv_prog_cc_c89" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; } else case e in #( e) if test "x$ac_cv_prog_cc_c89" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; } else case e in #( e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } CC="$CC $ac_cv_prog_cc_c89" ;; esac fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 ac_prog_cc_stdc=c89 ;; esac 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 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 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 printf %s "checking whether $CC understands -c and -o together... " >&6; } if test ${am_cv_prog_cc_c_o+y} then : printf %s "(cached) " >&6 else case e in #( e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 printf "%s\n" "$am_cv_prog_cc_c_o" >&6; } if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" 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 DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 printf %s "checking whether ${MAKE-make} supports the include directive... " >&6; } cat > confinc.mk << 'END' am__doit: @echo this is the am__doit target >confinc.out .PHONY: am__doit END am__include="#" am__quote= # BSD make does it like this. echo '.include "confinc.mk" # ignored' > confmf.BSD # Other make implementations (GNU, Solaris 10, AIX) do it like this. echo 'include confinc.mk # ignored' > confmf.GNU _am_result=no for s in GNU BSD; do { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5 (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } case $?:`cat confinc.out 2>/dev/null` in #( '0:this is the am__doit target') : case $s in #( BSD) : am__include='.include' am__quote='"' ;; #( *) : am__include='include' am__quote='' ;; esac ;; #( *) : ;; esac if test "$am__include" != "#"; then _am_result="yes ($s style)" break fi done rm -f confinc.* confmf.* { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 printf "%s\n" "${_am_result}" >&6; } # Check whether --enable-dependency-tracking was given. if test ${enable_dependency_tracking+y} then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CC" am_compiler_list= { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 printf %s "checking dependency style of $depcc... " >&6; } if test ${am_cv_CC_dependencies_compiler_type+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CC_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thus: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CC_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CC_dependencies_compiler_type=none fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 printf "%s\n" "$am_cv_CC_dependencies_compiler_type" >&6; } CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then am__fastdepCC_TRUE= am__fastdepCC_FALSE='#' else am__fastdepCC_TRUE='#' am__fastdepCC_FALSE= fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler vendor" >&5 printf %s "checking for C compiler vendor... " >&6; } if test ${ax_cv_c_compiler_vendor+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_cv_c_compiler_vendor=unknown # note: don't check for gcc first since some other compilers define __GNUC__ for ventest in intel:__ICC,__ECC,__INTEL_COMPILER ibm:__ibmxl__,__xlc__,__xlC__,__IBMC__,__IBMCPP__ pathscale:__PATHCC__,__PATHSCALE__ clang:__clang__ gnu:__GNUC__ sun:__SUNPRO_C,__SUNPRO_CC hp:__HP_cc,__HP_aCC dec:__DECC,__DECCXX,__DECC_VER,__DECCXX_VER borland:__BORLANDC__,__TURBOC__ comeau:__COMO__ cray:_CRAYC kai:__KCC lcc:__LCC__ metrowerks:__MWERKS__ sgi:__sgi,sgi microsoft:_MSC_VER watcom:__WATCOMC__ portland:__PGI; do vencpp="defined("`echo $ventest | cut -d: -f2 | sed 's/,/) || defined(/g'`")" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { #if !($vencpp) thisisanerror; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_c_compiler_vendor=`echo $ventest | cut -d: -f1`; break fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_c_compiler_vendor" >&5 printf "%s\n" "$ax_cv_c_compiler_vendor" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 printf %s "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 printf "%s\n" "no, using $LN_S" >&6; } fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval test \${ac_cv_prog_make_${ac_make}_set+y} then : printf %s "(cached) " >&6 else case e in #( e) cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make ;; esac fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } SET_MAKE= else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-cegcc*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_AS+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$AS"; then ac_cv_prog_AS="$AS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_AS="${ac_tool_prefix}as" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi AS=$ac_cv_prog_AS if test -n "$AS"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 printf "%s\n" "$AS" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_AS"; then ac_ct_AS=$AS # Extract the first word of "as", so it can be a program name with args. set dummy as; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_AS+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$ac_ct_AS"; then ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AS="as" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi ac_ct_AS=$ac_cv_prog_ac_ct_AS if test -n "$ac_ct_AS"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 printf "%s\n" "$ac_ct_AS" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_AS" = x; then AS="false" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AS=$ac_ct_AS fi else AS="$ac_cv_prog_AS" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_DLLTOOL+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 printf "%s\n" "$DLLTOOL" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_DLLTOOL+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 printf "%s\n" "$ac_ct_DLLTOOL" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_OBJDUMP+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 printf "%s\n" "$OBJDUMP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_OBJDUMP+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 printf "%s\n" "$ac_ct_OBJDUMP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi ;; esac test -z "$AS" && AS=as test -z "$DLLTOOL" && DLLTOOL=dlltool test -z "$OBJDUMP" && OBJDUMP=objdump case `pwd` in *\ * | *\ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 printf "%s\n" "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.5.4' macro_revision='2.5.4' ltmain=$ac_aux_dir/ltmain.sh # Backslashify metacharacters that are still active within # double-quoted strings. 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 delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 printf %s "checking how to print strings... " >&6; } # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "" } case $ECHO in printf*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: printf" >&5 printf "%s\n" "printf" >&6; } ;; print*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 printf "%s\n" "print -r" >&6; } ;; *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cat" >&5 printf "%s\n" "cat" >&6; } ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 printf %s "checking for a sed that does not truncate output... " >&6; } if test ${ac_cv_path_SED+y} then : printf %s "(cached) " >&6 else case e in #( e) ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_prog in sed gsed do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in #( *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; #( *) ac_count=0 printf %s 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" printf "%s\n" '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 printf "%s\n" "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 printf %s "checking for grep that handles long lines and -e... " >&6; } if test ${ac_cv_path_GREP+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_prog in grep ggrep do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in #( *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; #( *) ac_count=0 printf %s 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" printf "%s\n" 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 printf "%s\n" "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 printf %s "checking for egrep... " >&6; } if test ${ac_cv_path_EGREP+y} then : printf %s "(cached) " >&6 else case e in #( e) if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_prog in egrep do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in #( *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; #( *) ac_count=0 printf %s 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" printf "%s\n" 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 printf "%s\n" "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" EGREP_TRADITIONAL=$EGREP ac_cv_path_EGREP_TRADITIONAL=$EGREP { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 printf %s "checking for fgrep... " >&6; } if test ${ac_cv_path_FGREP+y} then : printf %s "(cached) " >&6 else case e in #( e) if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_prog in fgrep do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_FGREP" || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in #( *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; #( *) ac_count=0 printf %s 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" printf "%s\n" 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 printf "%s\n" "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test ${with_gnu_ld+y} then : withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes else case e in #( e) with_gnu_ld=no ;; esac fi ac_prog=ld if test yes = "$GCC"; then # Check if gcc -print-prog-name=ld gives a path. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 printf %s "checking for ld used by $CC... " >&6; } case $host in *-*-mingw* | *-*-windows*) # 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 yes = "$with_gnu_ld"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 printf %s "checking for GNU ld... " >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 printf %s "checking for non-GNU ld... " >&6; } fi if test ${lt_cv_path_LD+y} then : printf %s "(cached) " >&6 else case e in #( e) 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 &5 printf "%s\n" "$LD" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 printf %s "checking if the linker ($LD) is GNU ld... " >&6; } if test ${lt_cv_prog_gnu_ld+y} then : printf %s "(cached) " >&6 else case e in #( e) # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 printf "%s\n" "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 printf %s "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if test ${lt_cv_path_NM+y} then : printf %s "(cached) " >&6 else case e in #( e) 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 # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty case $build_os in mingw* | windows*) lt_bad_file=conftest.nm/nofile ;; *) lt_bad_file=/dev/null ;; esac case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break 2 ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break 2 ;; *) 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 : ${lt_cv_path_NM=no} fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 printf "%s\n" "$lt_cv_path_NM" >&6; } if test no != "$lt_cv_path_NM"; then NM=$lt_cv_path_NM else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else if test -n "$ac_tool_prefix"; then for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_DUMPBIN+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 printf "%s\n" "$DUMPBIN" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_DUMPBIN+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 printf "%s\n" "$ac_ct_DUMPBIN" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols -headers" ;; *) DUMPBIN=: ;; esac fi if test : != "$DUMPBIN"; then NM=$DUMPBIN fi fi test -z "$NM" && NM=nm { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 printf %s "checking the name lister ($NM) interface... " >&6; } if test ${lt_cv_nm_interface+y} then : printf %s "(cached) " >&6 else case e in #( e) lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 printf "%s\n" "$lt_cv_nm_interface" >&6; } # find the maximum length of command line arguments { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 printf %s "checking the maximum length of command line arguments... " >&6; } if test ${lt_cv_sys_max_cmd_len+y} then : printf %s "(cached) " >&6 else case e in #( e) 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* | ironclad*) # Under GNU Hurd and Ironclad, 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* | windows* | cegcc*) # 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; ;; mint*) # On MiNT this can take a long time and run out of memory. 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; ;; darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*) # 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 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; 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 ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len" && \ test undefined != "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # 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. while { test X`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test 17 != "$i" # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ;; esac fi if test -n "$lt_cv_sys_max_cmd_len"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 printf "%s\n" "$lt_cv_sys_max_cmd_len" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5 printf "%s\n" "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 printf %s "checking how to convert $build file names to $host format... " >&6; } if test ${lt_cv_to_host_file_cmd+y} then : printf %s "(cached) " >&6 else case e in #( e) case $host in *-*-mingw* ) case $build in *-*-mingw* | *-*-windows* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* | *-*-windows* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac ;; esac fi to_host_file_cmd=$lt_cv_to_host_file_cmd { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 printf "%s\n" "$lt_cv_to_host_file_cmd" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 printf %s "checking how to convert $build file names to toolchain format... " >&6; } if test ${lt_cv_to_tool_file_cmd+y} then : printf %s "(cached) " >&6 else case e in #( e) #assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* | *-*-windows* ) case $build in *-*-mingw* | *-*-windows* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac ;; esac fi to_tool_file_cmd=$lt_cv_to_tool_file_cmd { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 printf "%s\n" "$lt_cv_to_tool_file_cmd" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 printf %s "checking for $LD option to reload object files... " >&6; } if test ${lt_cv_ld_reload_flag+y} then : printf %s "(cached) " >&6 else case e in #( e) lt_cv_ld_reload_flag='-r' ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 printf "%s\n" "$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 cygwin* | mingw* | windows* | pw32* | cegcc*) if test yes != "$GCC"; then reload_cmds=false fi ;; darwin*) if test yes = "$GCC"; then reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac # Extract the first word of "file", so it can be a program name with args. set dummy file; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_FILECMD+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$FILECMD"; then ac_cv_prog_FILECMD="$FILECMD" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_FILECMD="file" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_FILECMD" && ac_cv_prog_FILECMD=":" fi ;; esac fi FILECMD=$ac_cv_prog_FILECMD if test -n "$FILECMD"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FILECMD" >&5 printf "%s\n" "$FILECMD" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_OBJDUMP+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 printf "%s\n" "$OBJDUMP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_OBJDUMP+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 printf "%s\n" "$ac_ct_OBJDUMP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 printf %s "checking how to recognize dependent libraries... " >&6; } if test ${lt_cv_deplibs_check_method+y} then : printf %s "(cached) " >&6 else case e in #( e) 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. # 'file_magic [[regex]]' -- check by looking for files in library path # that 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. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) 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='$FILECMD -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* | windows* | 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', # unless we find 'file', for example because we are cross-compiling. if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64|pe-aarch64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly* | midnightbsd*) 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=$FILECMD lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=$FILECMD 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])(-bit)?( [LM]SB)? 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 ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; 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 glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; *-mlibc) lt_cv_deplibs_check_method=pass_all ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else 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=$FILECMD lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; 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 ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; serenity*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) 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 ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; os2*) lt_cv_deplibs_check_method=pass_all ;; esac ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 printf "%s\n" "$lt_cv_deplibs_check_method" >&6; } file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | windows* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` fi ;; esac fi 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 test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_DLLTOOL+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 printf "%s\n" "$DLLTOOL" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_DLLTOOL+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 printf "%s\n" "$ac_ct_DLLTOOL" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi test -z "$DLLTOOL" && DLLTOOL=dlltool { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 printf %s "checking how to associate runtime and link libraries... " >&6; } if test ${lt_cv_sharedlib_from_linklib_cmd+y} then : printf %s "(cached) " >&6 else case e in #( e) lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | windows* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh; # decide which one to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd=$ECHO ;; esac ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 printf "%s\n" "$lt_cv_sharedlib_from_linklib_cmd" >&6; } sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO 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 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_RANLIB+y} then : printf %s "(cached) " >&6 else case e in #( e) 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 case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 printf "%s\n" "$RANLIB" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "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 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_RANLIB+y} then : printf %s "(cached) " >&6 else case e in #( e) 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 case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 printf "%s\n" "$ac_ct_RANLIB" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi if test -n "$ac_tool_prefix"; then for ac_prog in ar do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_AR+y} then : printf %s "(cached) " >&6 else case e in #( e) 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 case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi AR=$ac_cv_prog_AR if test -n "$AR"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 printf "%s\n" "$AR" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_AR+y} then : printf %s "(cached) " >&6 else case e in #( e) 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 case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 printf "%s\n" "$ac_ct_AR" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$ac_ct_AR" && break done if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi fi : ${AR=ar} # Use ARFLAGS variable as AR's operation code to sync the variable naming with # Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have # higher priority because that's what people were doing historically (setting # ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS # variable obsoleted/removed. test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr} lt_ar_flags=$AR_FLAGS # Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override # by AR_FLAGS because that was never working and AR_FLAGS is about to die. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 printf %s "checking for archiver @FILE support... " >&6; } if test ${lt_cv_ar_at_file+y} then : printf %s "(cached) " >&6 else case e in #( e) lt_cv_ar_at_file=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test 0 -eq "$ac_status"; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test 0 -ne "$ac_status"; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 printf "%s\n" "$lt_cv_ar_at_file" >&6; } if test no = "$lt_cv_ar_at_file"; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_STRIP+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 printf "%s\n" "$STRIP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_STRIP+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 printf "%s\n" "$ac_ct_STRIP" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac # 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 for command to grab the raw symbol name followed by C symbol from nm. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 printf %s "checking command to parse $NM output from $compiler object... " >&6; } if test ${lt_cv_sys_global_symbol_pipe+y} then : printf %s "(cached) " >&6 else case e in #( e) # 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]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | windows* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test ia64 = "$host_cpu"; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BCDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; 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 if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Gets list of data symbols to import. lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'" # Adjust the below global symbol transforms to fixup imported variables. lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" lt_c_name_lib_hook="\ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" else # Disable hooks by default. lt_cv_sys_global_symbol_to_import= lt_cdecl_hook= lt_c_name_hook= lt_c_name_lib_hook= fi # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="$SED -n"\ $lt_cdecl_hook\ " -e 's/^T .* \(.*\)$/extern int \1();/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\ $lt_c_name_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" # Transform an extracted symbol line into symbol name with lib prefix and # symbol address. lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\ $lt_c_name_lib_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw* | windows*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, 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. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function, # D for any global variable and I for any imported variable. # Also find C++ and __fastcall symbols from MSVC++ or ICC, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ " /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ " /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ " {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ " s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(void){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&5 if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&5 && 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 <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS=conftstm.$ac_objext CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_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 -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test yes = "$pipe_works"; then break else lt_cv_sys_global_symbol_pipe= fi done ;; esac 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 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5 printf "%s\n" "failed" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5 printf "%s\n" "ok" >&6; } fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then nm_file_list_spec='@' fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 printf %s "checking for sysroot... " >&6; } # Check whether --with-sysroot was given. if test ${with_sysroot+y} then : withval=$with_sysroot; else case e in #( e) with_sysroot=no ;; esac fi lt_sysroot= case $with_sysroot in #( yes) if test yes = "$GCC"; then # Trim trailing / since we'll always append absolute paths and we want # to avoid //, if only for less confusing output for the user. lt_sysroot=`$CC --print-sysroot 2>/dev/null | $SED 's:/\+$::'` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 printf "%s\n" "$with_sysroot" >&6; } as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 printf "%s\n" "${lt_sysroot:-no}" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 printf %s "checking for a working dd... " >&6; } if test ${ac_cv_path_lt_DD+y} then : printf %s "(cached) " >&6 else case e in #( e) printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i : ${lt_DD:=$DD} if test -z "$lt_DD"; then ac_path_lt_DD_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_prog in dd do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_lt_DD="$as_dir$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_lt_DD" || continue if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: fi $ac_path_lt_DD_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_lt_DD"; then : fi else ac_cv_path_lt_DD=$lt_DD fi rm -f conftest.i conftest2.i conftest.out ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 printf "%s\n" "$ac_cv_path_lt_DD" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 printf %s "checking how to truncate binary pipes... " >&6; } if test ${lt_cv_truncate_bin+y} then : printf %s "(cached) " >&6 else case e in #( e) printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i lt_cv_truncate_bin= if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" fi rm -f conftest.i conftest2.i conftest.out test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 printf "%s\n" "$lt_cv_truncate_bin" >&6; } # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in $*""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } # Check whether --enable-libtool-lock was given. if test ${enable_libtool_lock+y} then : enableval=$enable_libtool_lock; fi test no = "$enable_libtool_lock" || 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 what ABI is being produced by ac_compile, and set mode # options accordingly. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `$FILECMD conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE=32 ;; *ELF-64*) HPUX_IA64_MODE=64 ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test yes = "$lt_cv_prog_gnu_ld"; then case `$FILECMD conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `$FILECMD 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* ;; mips64*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then emul=elf case `$FILECMD conftest.$ac_objext` in *32-bit*) emul="${emul}32" ;; *64-bit*) emul="${emul}64" ;; esac case `$FILECMD conftest.$ac_objext` in *MSB*) emul="${emul}btsmip" ;; *LSB*) emul="${emul}ltsmip" ;; esac case `$FILECMD conftest.$ac_objext` in *N32*) emul="${emul}n32" ;; esac LD="${LD-ld} -m $emul" fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*|x86_64-gnu*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. Note that the listed cases only cover the # situations where additional linker options are needed (such as when # doing 32-bit compilation for a host where ld defaults to 64-bit, or # vice versa); the common cases where no linker options are needed do # not appear in the list. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `$FILECMD conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*|x86_64-gnu*) case `$FILECMD conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64" ;; *) LD="${LD-ld} -m elf_i386" ;; esac ;; powerpc64le-*linux*) LD="${LD-ld} -m elf32lppclinux" ;; 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-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*|x86_64-gnu*) LD="${LD-ld} -m elf_x86_64" ;; powerpcle-*linux*) LD="${LD-ld} -m elf64lppc" ;; powerpc-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) 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" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 printf %s "checking whether the C compiler needs -belf... " >&6; } if test ${lt_cv_cc_needs_belf+y} then : printf %s "(cached) " >&6 else case e in #( e) 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 confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : lt_cv_cc_needs_belf=yes else case e in #( e) lt_cv_cc_needs_belf=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ 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 ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 printf "%s\n" "$lt_cv_cc_needs_belf" >&6; } if test yes != "$lt_cv_cc_needs_belf"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS=$SAVE_CFLAGS fi ;; *-*solaris*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `$FILECMD conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*|x86_64-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD=${LD-ld}_sol2 fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks=$enable_libtool_lock if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. set dummy ${ac_tool_prefix}mt; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_MANIFEST_TOOL+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$MANIFEST_TOOL"; then ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL if test -n "$MANIFEST_TOOL"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 printf "%s\n" "$MANIFEST_TOOL" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL # Extract the first word of "mt", so it can be a program name with args. set dummy mt; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_MANIFEST_TOOL+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$ac_ct_MANIFEST_TOOL"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL if test -n "$ac_ct_MANIFEST_TOOL"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 printf "%s\n" "$ac_ct_MANIFEST_TOOL" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_MANIFEST_TOOL" = x; then MANIFEST_TOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL fi else MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" fi test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 printf %s "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } if test ${lt_cv_path_manifest_tool+y} then : printf %s "(cached) " >&6 else case e in #( e) lt_cv_path_manifest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&5 if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_manifest_tool=yes fi rm -f conftest* ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_manifest_tool" >&5 printf "%s\n" "$lt_cv_path_manifest_tool" >&6; } if test yes != "$lt_cv_path_manifest_tool"; then MANIFEST_TOOL=: fi case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_DSYMUTIL+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 printf "%s\n" "$DSYMUTIL" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_DSYMUTIL+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 printf "%s\n" "$ac_ct_DSYMUTIL" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_NMEDIT+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 printf "%s\n" "$NMEDIT" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_NMEDIT+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_NMEDIT="nmedit" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 printf "%s\n" "$ac_ct_NMEDIT" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_LIPO+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 printf "%s\n" "$LIPO" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_LIPO+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_LIPO="lipo" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 printf "%s\n" "$ac_ct_LIPO" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_OTOOL+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 printf "%s\n" "$OTOOL" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_OTOOL+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL="otool" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 printf "%s\n" "$ac_ct_OTOOL" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_OTOOL64+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 printf "%s\n" "$OTOOL64" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_OTOOL64+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL64="otool64" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 printf "%s\n" "$ac_ct_OTOOL64" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 printf %s "checking for -single_module linker flag... " >&6; } if test ${lt_cv_apple_cc_single_mod+y} then : printf %s "(cached) " >&6 else case e in #( e) lt_cv_apple_cc_single_mod=no if test -z "$LT_MULTI_MODULE"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&5 # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test 0 = "$_lt_result"; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 printf "%s\n" "$lt_cv_apple_cc_single_mod" >&6; } # Feature test to disable chained fixups since it is not # compatible with '-undefined dynamic_lookup' { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -no_fixup_chains linker flag" >&5 printf %s "checking for -no_fixup_chains linker flag... " >&6; } if test ${lt_cv_support_no_fixup_chains+y} then : printf %s "(cached) " >&6 else case e in #( e) save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,-no_fixup_chains" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : lt_cv_support_no_fixup_chains=yes else case e in #( e) lt_cv_support_no_fixup_chains=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_support_no_fixup_chains" >&5 printf "%s\n" "$lt_cv_support_no_fixup_chains" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 printf %s "checking for -exported_symbols_list linker flag... " >&6; } if test ${lt_cv_ld_exported_symbols_list+y} then : printf %s "(cached) " >&6 else case e in #( e) lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : lt_cv_ld_exported_symbols_list=yes else case e in #( e) lt_cv_ld_exported_symbols_list=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 printf "%s\n" "$lt_cv_ld_exported_symbols_list" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 printf %s "checking for -force_load linker flag... " >&6; } if test ${lt_cv_ld_force_load+y} then : printf %s "(cached) " >&6 else case e in #( e) lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 echo "$AR $AR_FLAGS libconftest.a conftest.o" >&5 $AR $AR_FLAGS libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF int main(void) { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&5 elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then lt_cv_ld_force_load=yes else cat conftest.err >&5 fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 printf "%s\n" "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; darwin*) case $MACOSX_DEPLOYMENT_TARGET,$host in 10.[012],*|,*powerpc*-darwin[5-8]*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; *) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' if test yes = "$lt_cv_support_no_fixup_chains"; then as_fn_append _lt_dar_allow_undefined ' $wl-no_fixup_chains' fi ;; esac ;; esac if test yes = "$lt_cv_apple_cc_single_mod"; then _lt_dar_single_mod='$single_module' fi _lt_dar_needs_single_mod=no case $host_os in rhapsody* | darwin1.*) _lt_dar_needs_single_mod=yes ;; darwin*) # When targeting Mac OS X 10.4 (darwin 8) or later, # -single_module is the default and -multi_module is unsupported. # The toolchain on macOS 10.14 (darwin 18) and later cannot # target any OS version that needs -single_module. case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*-darwin[567].*|10.[0-3],*-darwin[5-9].*|10.[0-3],*-darwin1[0-7].*) _lt_dar_needs_single_mod=yes ;; esac ;; esac if test yes = "$lt_cv_ld_exported_symbols_list"; then _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' fi if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac # func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x$2 in x) ;; *:) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" ;; x:*) eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" ;; *::*) eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" ;; *) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" ;; esac } ac_header= ac_cache= for ac_item in $ac_header_c_list do if test $ac_cache; then ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default" if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then printf "%s\n" "#define $ac_item 1" >> confdefs.h fi ac_header= ac_cache= elif test $ac_header; then ac_cache=$ac_item else ac_header=$ac_item fi done if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes then : printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = xyes then : printf "%s\n" "#define HAVE_DLFCN_H 1" >>confdefs.h fi # Set options enable_dlopen=no # Check whether --enable-static was given. if test ${enable_static+y} 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 case e in #( e) enable_static=yes ;; esac fi # Check whether --enable-pic was given. if test ${enable_pic+y} then : enableval=$enable_pic; lt_p=${PACKAGE-default} case $enableval in yes|no) pic_mode=$enableval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for lt_pkg in $enableval; do IFS=$lt_save_ifs if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS=$lt_save_ifs ;; esac else case e in #( e) # Check whether --with-pic was given. if test ${with_pic+y} then : withval=$with_pic; lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for lt_pkg in $withval; do IFS=$lt_save_ifs if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS=$lt_save_ifs ;; esac else case e in #( e) pic_mode=default ;; esac fi ;; esac fi # Check whether --enable-fast-install was given. if test ${enable_fast_install+y} 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 case e in #( e) enable_fast_install=yes ;; esac fi shared_archive_member_spec= case $host,$enable_shared in power*-*-aix[5-9]*,yes) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 printf %s "checking which variant of shared library versioning to provide... " >&6; } # Check whether --enable-aix-soname was given. if test ${enable_aix_soname+y} then : enableval=$enable_aix_soname; case $enableval in aix|svr4|both) ;; *) as_fn_error $? "Unknown argument to --enable-aix-soname" "$LINENO" 5 ;; esac lt_cv_with_aix_soname=$enable_aix_soname else case e in #( e) # Check whether --with-aix-soname was given. if test ${with_aix_soname+y} then : withval=$with_aix_soname; case $withval in aix|svr4|both) ;; *) as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 ;; esac lt_cv_with_aix_soname=$with_aix_soname else case e in #( e) if test ${lt_cv_with_aix_soname+y} then : printf %s "(cached) " >&6 else case e in #( e) lt_cv_with_aix_soname=aix ;; esac fi ;; esac fi enable_aix_soname=$lt_cv_with_aix_soname ;; esac fi with_aix_soname=$enable_aix_soname { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 printf "%s\n" "$with_aix_soname" >&6; } if test aix != "$with_aix_soname"; then # For the AIX way of multilib, we name the shared archive member # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, # the AIX toolchain works better with OBJECT_MODE set (default 32). if test 64 = "${OBJECT_MODE-32}"; then shared_archive_member_spec=shr_64 else shared_archive_member_spec=shr fi fi ;; *) with_aix_soname=aix ;; esac # This can be used to rebuild libtool when needed LIBTOOL_DEPS=$ltmain # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 printf %s "checking for objdir... " >&6; } if test ${lt_cv_objdir+y} then : printf %s "(cached) " >&6 else case e in #( e) 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 ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 printf "%s\n" "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir printf "%s\n" "#define LT_OBJDIR \"$lt_cv_objdir/\"" >>confdefs.h 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 set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a '.a' archive for static linking (except MSVC and # ICC, which need '.lib'). libext=a with_gnu_ld=$lt_cv_prog_gnu_ld old_CC=$CC old_CFLAGS=$CFLAGS # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o func_cc_basename $compiler cc_basename=$func_cc_basename_result # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 printf %s "checking for ${ac_tool_prefix}file... " >&6; } if test ${lt_cv_path_MAGIC_CMD+y} then : printf %s "(cached) " >&6 else case e in #( e) 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 <<_LT_EOF 1>&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 _LT_EOF fi ;; esac fi break fi done IFS=$lt_save_ifs MAGIC_CMD=$lt_save_MAGIC_CMD ;; esac ;; esac fi MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 printf "%s\n" "$MAGIC_CMD" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for file" >&5 printf %s "checking for file... " >&6; } if test ${lt_cv_path_MAGIC_CMD+y} then : printf %s "(cached) " >&6 else case e in #( e) 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 <<_LT_EOF 1>&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 _LT_EOF fi ;; esac fi break fi done IFS=$lt_save_ifs MAGIC_CMD=$lt_save_MAGIC_CMD ;; esac ;; esac fi MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 printf "%s\n" "$MAGIC_CMD" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script 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;" # Code to be used in simple link tests lt_simple_link_test_code='int main(void){return(0);}' # 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 the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test yes = "$GCC"; then case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; *) lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 printf %s "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if test ${lt_cv_prog_compiler_rtti_exceptions+y} then : printf %s "(cached) " >&6 else case e in #( e) lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment # 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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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* ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 printf "%s\n" "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; 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= if test yes = "$GCC"; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi lt_prog_compiler_pic='-fPIC' ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # 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' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | windows* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' case $host_os in os2*) lt_prog_compiler_static='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # 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 ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' if test -n "$lt_prog_compiler_pic"; then lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" fi ;; 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 ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' case $cc_basename in nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; esac ;; mingw* | windows* | cygwin* | pw32* | os2* | cegcc*) # 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' case $host_os in os2*) lt_prog_compiler_static='$wl-static' ;; esac ;; 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' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in # old Intel for x86_64, which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; *flang* | ftn | f18* | f95*) # Flang compiler. lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # flang / f18. f95 an alias for gfortran or flang on Debian flang* | f18* | f95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; tcc*) # Fabrice Bellard et al's Tiny C Compiler lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # 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' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | $SED 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; *Sun\ F* | *Sun*Fortran*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Intel*\ [CF]*Compiler*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; *Portland\ Group*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *-mlibc) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; serenity*) ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) 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 case $host_os in # For platforms that do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 printf %s "checking for $compiler option to produce PIC... " >&6; } if test ${lt_cv_prog_compiler_pic+y} then : printf %s "(cached) " >&6 else case e in #( e) lt_cv_prog_compiler_pic=$lt_prog_compiler_pic ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 printf "%s\n" "$lt_cv_prog_compiler_pic" >&6; } lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if test ${lt_cv_prog_compiler_pic_works+y} then : printf %s "(cached) " >&6 else case e in #( e) lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment # 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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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_pic_works=yes fi fi $RM conftest* ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 printf "%s\n" "$lt_cv_prog_compiler_pic_works" >&6; } if test yes = "$lt_cv_prog_compiler_pic_works"; 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 # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test ${lt_cv_prog_compiler_static_works+y} then : printf %s "(cached) " >&6 else case e in #( e) lt_cv_prog_compiler_static_works=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 printf "%s\n" "$lt_cv_prog_compiler_static_works" >&6; } if test yes = "$lt_cv_prog_compiler_static_works"; then : else lt_prog_compiler_static= fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test ${lt_cv_prog_compiler_c_o+y} then : printf %s "(cached) " >&6 else case e in #( e) lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 .. $RM -r conftest $RM conftest* ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test ${lt_cv_prog_compiler_c_o+y} then : printf %s "(cached) " >&6 else case e in #( e) lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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 .. $RM -r conftest $RM conftest* ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; } hard_links=nottested if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then # do not overwrite the value of need_locks provided by the user { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 printf %s "checking if we can lock with hard links... " >&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 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 printf "%s\n" "$hard_links" >&6; } if test no = "$hard_links"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 printf "%s\n" "$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 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 printf %s "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # 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_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | windows* | pw32* | cegcc*) # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++ or Intel C++ Compiler. if test yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC) with_gnu_ld=yes ;; linux* | k*bsd*-gnu | gnu*) link_all_deplibs=no ;; esac ld_shlibs=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test yes = "$with_gnu_ld"; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; *\ \(GNU\ Binutils\)\ [3-9]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test yes = "$lt_use_gnu_ld_interface"; 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 | $SED -e 's/([^)]\+)\s\+//' 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [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 aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test ia64 != "$host_cpu"; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, 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 install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) 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 ;; esac ;; 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* | windows* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' export_dynamic_flag_spec='$wl--export-all-symbols' 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/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' file_list_spec='@' 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, use it as # is; otherwise, prepend EXPORTS... archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; 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 ;; haiku*) archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' link_all_deplibs=no ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported shrext_cmds=.dll archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes file_list_spec='@' ;; interix[3-9]*) 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' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test linux-dietlibc = "$host_os"; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test no = "$tmp_diet" then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' 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; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # 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; func_echo_all \"$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' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; nagfor*) # NAGFOR 5.3 tmp_sharedflag='-Wl,-shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object=yes ;; esac case `$CC -V 2>&1 | $SED 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; 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 '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi case $cc_basename in tcc*) hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' export_dynamic_flag_spec='-rdynamic' ;; xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test yes = "$supports_anon_versioning"; 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~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; *-mlibc) archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; netbsd* | netbsdelf*-gnu) 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 $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $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 <<_LT_EOF 1>&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. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $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 cannot *** 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 ;; *) # 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. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' 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 ;; 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 $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $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 no = "$ld_shlibs"; 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 yes = "$GCC" && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test ia64 = "$host_cpu"; 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 GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX 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") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | 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 # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then aix_use_runtimelinking=yes break fi done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; 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_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='$wl-f,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # traditional, no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. hardcode_direct=no hardcode_direct_absolute=no ;; esac if test yes = "$GCC"; 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 : 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 yes = "$aix_use_runtimelinking"; then shared_flag="$shared_flag "'$wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; 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 yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' fi fi export_dynamic_flag_spec='$wl-bexpall' # 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,yes = "$with_aix_soname,$aix_use_runtimelinking"; 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. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if test ${lt_cv_aix_libpath_+y} then : printf %s "(cached) " >&6 else case e in #( e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi ;; esac fi aix_libpath=$lt_cv_aix_libpath_ 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 -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; 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. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if test ${lt_cv_aix_libpath_+y} then : printf %s "(cached) " >&6 else case e in #( e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi ;; esac fi aix_libpath=$lt_cv_aix_libpath_ 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' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' fi archive_cmds_need_lc=yes archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) 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 ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | windows* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++ or Intel C++ Compiler. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl* | icl*) # Native MSVC or ICC hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes file_list_spec='@' # 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 -Fe$output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -Fe$tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' enable_shared_with_static_runtimes=yes exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib old_postinstall_cmds='chmod 644 $oldlib' postlink_cmds='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC and ICC wrapper 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 `func_echo_all "$deplibs" | $SED '\''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' enable_shared_with_static_runtimes=yes ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported if test yes = "$lt_cv_ld_force_load"; then whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec='' fi link_all_deplibs=yes allow_undefined_flag=$_lt_dar_allow_undefined case $cc_basename in ifort*|nagfor*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test yes = "$_lt_dar_can_shared"; then output_verbose_link_cmd=func_echo_all archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" archive_expsym_cmds="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" module_expsym_cmds="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=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* | dragonfly* | midnightbsd*) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test yes = "$GCC"; then archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$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 "x$output_objdir/$soname" = "x$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 yes,no = "$GCC,$with_gnu_ld"; then archive_cmds='$CC -shared $pic_flag $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 no = "$with_gnu_ld"; then hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=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 yes,no = "$GCC,$with_gnu_ld"; 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 $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared $pic_flag $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' ;; *) # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 printf %s "checking if $CC understands -b... " >&6; } if test ${lt_cv_prog_compiler__b+y} then : printf %s "(cached) " >&6 else case e in #( e) lt_cv_prog_compiler__b=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -b" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler__b=yes fi else lt_cv_prog_compiler__b=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 printf "%s\n" "$lt_cv_prog_compiler__b" >&6; } if test yes = "$lt_cv_prog_compiler__b"; then archive_cmds='$CC -b $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 ;; esac fi if test no = "$with_gnu_ld"; then hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=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 yes = "$GCC"; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 printf %s "checking whether the $host_os linker accepts -exported_symbol... " >&6; } if test ${lt_cv_irix_exported_symbol+y} then : printf %s "(cached) " >&6 else case e in #( e) save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo (void) { return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : lt_cv_irix_exported_symbol=yes else case e in #( e) lt_cv_irix_exported_symbol=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; } if test yes = "$lt_cv_irix_exported_symbol"; then archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi link_all_deplibs=no else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; linux*) case $cc_basename in tcc*) # Fabrice Bellard et al's Tiny C Compiler ld_shlibs=yes archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' ;; esac ;; *-mlibc) ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else 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 ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; 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 archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='$wl-rpath,$libdir' fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported shrext_cmds=.dll archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' old_archive_from_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes file_list_spec='@' ;; osf3*) if test yes = "$GCC"; 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" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test yes = "$GCC"; then allow_undefined_flag=' $wl-expect_unresolved $wl\*' archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$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='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-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; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_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 archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; serenity*) ;; solaris*) no_undefined_flag=' -z defs' if test yes = "$GCC"; then wlarc='$wl' archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $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 $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) 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' ;; *) wlarc='$wl' archive_cmds='$CC -G$allow_undefined_flag -h $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 -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac 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 and reorder linker options, # but understands '-z linker_flag'. GCC discards it without '$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test yes = "$GCC"; then whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test sequent = "$host_vendor"; 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* | sco3.2v5.0.[024]*) no_undefined_flag='$wl-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test yes = "$GCC"; 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 CANNOT 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='$wl-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='$wl-Bexport' runpath_var='LD_RUN_PATH' if test yes = "$GCC"; 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 ;; 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 if test sni = "$host_vendor"; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='$wl-Blargedynsym' ;; esac fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 printf "%s\n" "$ld_shlibs" >&6; } test no = "$ld_shlibs" && can_build_shared=no with_gnu_ld=$with_gnu_ld # # 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 yes,yes = "$GCC,$enable_shared"; 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. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 printf %s "checking whether -lc should be explicitly linked in... " >&6; } if test ${lt_cv_archive_cmds_need_lc+y} then : printf %s "(cached) " >&6 else case e in #( e) $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 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\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 printf "%s\n" "$lt_cv_archive_cmds_need_lc" >&6; } archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; esac fi ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 printf %s "checking dynamic linker characteristics... " >&6; } if test yes = "$GCC"; then case $host_os in darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; *) lt_awk_arg='/^libraries:/' ;; esac case $host_os in mingw* | windows* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; *) lt_sed_strip_eq='s|=/|/|g' ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # 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. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary... lt_tmp_lt_search_path_spec= lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` # ...but if some path component already ends with the multilib dir we assume # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). case "$lt_multi_os_dir; $lt_search_path_spec " in "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) lt_multi_os_dir= ;; esac for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" elif test -n "$lt_multi_os_dir"; then test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS = " "; FS = "/|\n";} { lt_foo = ""; lt_count = 0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo = "/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | windows* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's|/\([A-Za-z]:\)|\1|g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi 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" 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 # correct to gnu/linux during the next big refactor 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' ;; aix[4-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test ia64 = "$host_cpu"; 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 # Using Import Files as archive members, it is possible to support # filename-based versioning of shared library archives on AIX. While # this would work for both with and without runtime linking, it will # prevent static linking of such archives. So we do filename-based # shared library versioning with .so extension only, which is used # when both runtime linking and shared linking is enabled. # Unfortunately, runtime linking may impact performance, so we do # not want this to be the default eventually. Also, we use the # versioned .so libs for executables only if there is the -brtl # linker flag in LDFLAGS as well, or --enable-aix-soname=svr4 only. # To allow for filename-based versioning support, we need to create # libNAME.so.V as an archive file, containing: # *) an Import File, referring to the versioned filename of the # archive as well as the shared archive member, telling the # bitwidth (32 or 64) of that shared object, and providing the # list of exported symbols of that shared object, eventually # decorated with the 'weak' keyword # *) the shared object with the F_LOADONLY flag set, to really avoid # it being seen by the linker. # At run time we better use the real file rather than another symlink, # but for link time we create the symlink libNAME.so -> libNAME.so.V case $with_aix_soname,$aix_use_runtimelinking in # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. aix,yes) # traditional libtool dynamic_linker='AIX unversionable lib.so' # 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' ;; aix,no) # traditional AIX only dynamic_linker='AIX lib.a(lib.so.V)' # 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' ;; svr4,*) # full svr4 only dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,yes) # both, prefer svr4 dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # unpreferred sharedlib libNAME.a needs extra handling postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,no) # both, prefer aix dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' ;; esac shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; m68k) 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=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $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' ;; esac ;; beos*) library_names_spec='$libname$shared_ext' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux # correct to gnu/linux during the next big refactor 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* | windows* | pw32* | cegcc*) version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds # If user builds GCC with multilib enabled, # it should just install on $(libdir) # not on $(libdir)/../bin or 32 bits dlls would override 64 bit ones. if test xyes = x"$multilib"; then postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ $install_prog $dir/$dlname $destdir/$dlname~ chmod a+x $destdir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib $destdir/$dlname'\'' || exit \$?; fi' else 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~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' fi 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="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | windows* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; 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 dynamic_linker='Win32 ld.exe' ;; *,cl* | *,icl*) # Native MSVC or ICC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' case $build_os in mingw* | windows*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec=$LIB if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. 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 # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # 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' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC and ICC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # 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$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`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor 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 ;; freebsd* | dragonfly* | midnightbsd*) # 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[23].*) 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$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' need_version=yes ;; esac case $host_cpu in powerpc64) # On FreeBSD bi-arch platforms, a different variable is used for 32-bit # binaries. See . cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int test_pointer_size[sizeof (void *) - 5]; _ACEOF if ac_fn_c_try_compile "$LINENO" then : shlibpath_var=LD_LIBRARY_PATH else case e in #( e) shlibpath_var=LD_32_LIBRARY_PATH ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; *) shlibpath_var=LD_LIBRARY_PATH ;; esac 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 ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" 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=LIBRARY_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec='/boot/system/non-packaged/develop/lib /boot/system/develop/lib' sys_lib_dlsearch_path_spec='/boot/home/config/non-packaged/lib /boot/home/config/lib /boot/system/non-packaged/lib /boot/system/lib' hardcode_into_libs=no ;; 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 32 = "$HPUX_IA64_MODE"; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" sys_lib_dlsearch_path_spec=/usr/lib/hpux32 else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" sys_lib_dlsearch_path_spec=/usr/lib/hpux64 fi ;; 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' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor 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 yes = "$lt_cv_prog_gnu_ld"; then version_type=linux # correct to gnu/linux during the next big refactor 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 ;; linux*android*) version_type=none # Android doesn't support versioned libraries. need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext $libname$shared_ext' soname_spec='$libname$release$shared_ext' finish_cmds= shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # 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 dynamic_linker='Android linker' # -rpath works at least for libraries that are not overridden by # libraries installed in system locations. hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor 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 # Some binutils ld are patched to set DT_RUNPATH if test ${lt_cv_shlibpath_overrides_runpath+y} then : printf %s "(cached) " >&6 else case e in #( e) lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir ;; esac fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # 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 # Ideally, we could use ldconfig to report *all* directories which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, # even though it is searched at run-time. Try to do the best guess by # appending ld.so.conf contents (and includes) to the search path. if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;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' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no 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 ;; *-mlibc) version_type=linux # correct to gnu/linux during the next big refactor 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='mlibc ld.so' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor 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=qnx 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='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then need_version=no else need_version=yes fi 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 shlibpath_overrides_runpath=yes ;; os2*) libname_spec='$name' version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no # OS/2 can only load a DLL with a base name of 8 characters or less. soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; v=$($ECHO $release$versuffix | tr -d .-); n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); $ECHO $n$v`$shared_ext' library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' shlibpath_var=BEGINLIBPATH sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec 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~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' ;; 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 ;; rdos*) dynamic_linker=no ;; serenity*) version_type=linux # correct to gnu/linux during the next big refactor 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 dynamic_linker='SerenityOS LibELF' ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor 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 yes = "$with_gnu_ld"; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor 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 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 # correct to gnu/linux during the next big refactor 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=sco 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 shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test yes = "$with_gnu_ld"; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' 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' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor 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 ;; emscripten*) version_type=none need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext' soname_spec='$libname$release$shared_ext' finish_cmds= dynamic_linker="Emscripten linker" lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= if test yes = "$GCC"; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi lt_prog_compiler_pic='-fPIC' ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # 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' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | windows* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' case $host_os in os2*) lt_prog_compiler_static='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # 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 ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' if test -n "$lt_prog_compiler_pic"; then lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" fi ;; 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 ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' case $cc_basename in nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; esac ;; mingw* | windows* | cygwin* | pw32* | os2* | cegcc*) # 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' case $host_os in os2*) lt_prog_compiler_static='$wl-static' ;; esac ;; 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' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in # old Intel for x86_64, which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; *flang* | ftn | f18* | f95*) # Flang compiler. lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # flang / f18. f95 an alias for gfortran or flang on Debian flang* | f18* | f95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; tcc*) # Fabrice Bellard et al's Tiny C Compiler lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # 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' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | $SED 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; *Sun\ F* | *Sun*Fortran*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Intel*\ [CF]*Compiler*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; *Portland\ Group*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *-mlibc) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; serenity*) ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) 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 case $host_os in # For platforms that do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 printf %s "checking for $compiler option to produce PIC... " >&6; } if test ${lt_cv_prog_compiler_pic+y} then : printf %s "(cached) " >&6 else case e in #( e) lt_cv_prog_compiler_pic=$lt_prog_compiler_pic ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 printf "%s\n" "$lt_cv_prog_compiler_pic" >&6; } lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if test ${lt_cv_prog_compiler_pic_works+y} then : printf %s "(cached) " >&6 else case e in #( e) lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment # 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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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_pic_works=yes fi fi $RM conftest* ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 printf "%s\n" "$lt_cv_prog_compiler_pic_works" >&6; } if test yes = "$lt_cv_prog_compiler_pic_works"; 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 # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test ${lt_cv_prog_compiler_static_works+y} then : printf %s "(cached) " >&6 else case e in #( e) lt_cv_prog_compiler_static_works=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 printf "%s\n" "$lt_cv_prog_compiler_static_works" >&6; } if test yes = "$lt_cv_prog_compiler_static_works"; then : else lt_prog_compiler_static= fi ='-fPIC' archive_cmds='$CC -sSIDE_MODULE=2 -shared $libobjs $deplibs $compiler_flags -o $lib' archive_expsym_cmds='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -sSIDE_MODULE=2 -shared $libobjs $deplibs $compiler_flags -o $lib -s EXPORTED_FUNCTIONS=@$output_objdir/$soname.expsym' archive_cmds_need_lc=no no_undefined_flag= ;; *) dynamic_linker=no ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 printf "%s\n" "$dynamic_linker" >&6; } test no = "$dynamic_linker" && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test yes = "$GCC"; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec fi if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec fi # remember unaugmented sys_lib_dlsearch_path content for libtool script decls... configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec # ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" # to be used as default LT_SYS_LIBRARY_PATH value in generated libtool configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 printf %s "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test yes = "$hardcode_automatic"; then # We can hardcode non-existent directories. if test no != "$hardcode_direct" && # 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 no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" && test no != "$hardcode_minus_L"; 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 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 printf "%s\n" "$hardcode_action" >&6; } if test relink = "$hardcode_action" || test yes = "$inherit_rpath"; then # Fast installation is not supported enable_fast_install=no elif test yes = "$shlibpath_overrides_runpath" || test no = "$enable_shared"; then # Fast installation is not necessary enable_fast_install=needless fi if test yes != "$enable_dlopen"; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen=load_add_on lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | windows* | pw32* | cegcc*) 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 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 printf %s "checking for dlopen in -ldl... " >&6; } if test ${ac_cv_lib_dl_dlopen+y} then : printf %s "(cached) " >&6 else case e in #( e) ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. The 'extern "C"' is for builds by C++ compilers; although this is not generally supported in C code supporting it here has little cost and some practical benefit (sr 110532). */ #ifdef __cplusplus extern "C" #endif char dlopen (void); int main (void) { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_dl_dlopen=yes else case e in #( e) ac_cv_lib_dl_dlopen=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl else case e in #( e) lt_cv_dlopen=dyld lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; esac fi ;; tpf*) # Don't try to run any link tests for TPF. We know it's impossible # because TPF is a cross-compiler, and we know how we open DSOs. lt_cv_dlopen=dlopen lt_cv_dlopen_libs= lt_cv_dlopen_self=no ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = xyes then : lt_cv_dlopen=shl_load else case e in #( e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 printf %s "checking for shl_load in -ldld... " >&6; } if test ${ac_cv_lib_dld_shl_load+y} then : printf %s "(cached) " >&6 else case e in #( e) ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. The 'extern "C"' is for builds by C++ compilers; although this is not generally supported in C code supporting it here has little cost and some practical benefit (sr 110532). */ #ifdef __cplusplus extern "C" #endif char shl_load (void); int main (void) { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_dld_shl_load=yes else case e in #( e) ac_cv_lib_dld_shl_load=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 printf "%s\n" "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = xyes then : lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld else case e in #( e) ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = xyes then : lt_cv_dlopen=dlopen else case e in #( e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 printf %s "checking for dlopen in -ldl... " >&6; } if test ${ac_cv_lib_dl_dlopen+y} then : printf %s "(cached) " >&6 else case e in #( e) ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. The 'extern "C"' is for builds by C++ compilers; although this is not generally supported in C code supporting it here has little cost and some practical benefit (sr 110532). */ #ifdef __cplusplus extern "C" #endif char dlopen (void); int main (void) { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_dl_dlopen=yes else case e in #( e) ac_cv_lib_dl_dlopen=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl else case e in #( e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 printf %s "checking for dlopen in -lsvld... " >&6; } if test ${ac_cv_lib_svld_dlopen+y} then : printf %s "(cached) " >&6 else case e in #( e) ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. The 'extern "C"' is for builds by C++ compilers; although this is not generally supported in C code supporting it here has little cost and some practical benefit (sr 110532). */ #ifdef __cplusplus extern "C" #endif char dlopen (void); int main (void) { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_svld_dlopen=yes else case e in #( e) ac_cv_lib_svld_dlopen=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 printf "%s\n" "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = xyes then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld else case e in #( e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 printf %s "checking for dld_link in -ldld... " >&6; } if test ${ac_cv_lib_dld_dld_link+y} then : printf %s "(cached) " >&6 else case e in #( e) ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. The 'extern "C"' is for builds by C++ compilers; although this is not generally supported in C code supporting it here has little cost and some practical benefit (sr 110532). */ #ifdef __cplusplus extern "C" #endif char dld_link (void); int main (void) { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_dld_dld_link=yes else case e in #( e) ac_cv_lib_dld_dld_link=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 printf "%s\n" "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = xyes then : lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld fi ;; esac fi ;; esac fi ;; esac fi ;; esac fi ;; esac fi ;; esac if test no = "$lt_cv_dlopen"; then enable_dlopen=no else enable_dlopen=yes fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS=$CPPFLAGS test yes = "$ac_cv_header_dlfcn_h" && 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" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 printf %s "checking whether a program can dlopen itself... " >&6; } if test ${lt_cv_dlopen_self+y} then : printf %s "(cached) " >&6 else case e in #( e) if test yes = "$cross_compiling"; 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 <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord (void) __attribute__((visibility("default"))); #endif int fnord (void) { return 42; } int main (void) { 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; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in 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 lt_cv_dlopen_self=no fi fi rm -fr conftest* ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 printf "%s\n" "$lt_cv_dlopen_self" >&6; } if test yes = "$lt_cv_dlopen_self"; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 printf %s "checking whether a statically linked program can dlopen itself... " >&6; } if test ${lt_cv_dlopen_self_static+y} then : printf %s "(cached) " >&6 else case e in #( e) if test yes = "$cross_compiling"; 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 <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord (void) __attribute__((visibility("default"))); #endif int fnord (void) { return 42; } int main (void) { 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; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in 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* ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 printf "%s\n" "$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 striplib= old_striplib= { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 printf %s "checking whether stripping libraries is possible... " >&6; } if test -z "$STRIP"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } else if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then old_striplib="$STRIP --strip-debug" striplib="$STRIP --strip-unneeded" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } else case $host_os in darwin*) # FIXME - insert some real tests, host_os isn't really good enough striplib="$STRIP -x" old_striplib="$STRIP -S" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } ;; freebsd*) if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then old_striplib="$STRIP --strip-debug" striplib="$STRIP --strip-unneeded" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi ;; *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } ;; esac fi fi # Report what library types will actually be built { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 printf %s "checking if libtool supports shared libraries... " >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 printf "%s\n" "$can_build_shared" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 printf %s "checking whether to build shared libraries... " >&6; } test no = "$can_build_shared" && 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 yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac fi ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 printf "%s\n" "$enable_shared" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 printf %s "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 printf "%s\n" "$enable_static" >&6; } 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 ac_config_commands="$ac_config_commands libtool" # Only expand once: 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 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 printf %s "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test ${ac_cv_prog_CPP+y} then : printf %s "(cached) " >&6 else case e in #( e) # Double quotes because $CC needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO" then : else case e in #( e) # Broken: fails on valid input. continue ;; esac fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO" then : # Broken: success on invalid input. continue else case e in #( e) # Passes both tests. ac_preproc_ok=: break ;; esac fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of 'break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok then : break fi done ac_cv_prog_CPP=$CPP ;; esac fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 printf "%s\n" "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO" then : else case e in #( e) # Broken: fails on valid input. continue ;; esac fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO" then : # Broken: success on invalid input. continue else case e in #( e) # Passes both tests. ac_preproc_ok=: break ;; esac fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of 'break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok then : else case e in #( e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See 'config.log' for more details" "$LINENO" 5; } ;; esac 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 # Extract the first word of "ocamlbuild", so it can be a program name with args. set dummy ocamlbuild; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_OCAMLBUILD+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$OCAMLBUILD"; then ac_cv_prog_OCAMLBUILD="$OCAMLBUILD" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_OCAMLBUILD="ocamlbuild" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi OCAMLBUILD=$ac_cv_prog_OCAMLBUILD if test -n "$OCAMLBUILD"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OCAMLBUILD" >&5 printf "%s\n" "$OCAMLBUILD" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi # Check whether --enable-mpi was given. if test ${enable_mpi+y} then : enableval=$enable_mpi; enable_mpi=$enableval else case e in #( e) enable_mpi=no ;; esac fi if test "$enable_mpi" = "yes"; then if test $PRECISION = q; then as_fn_error $? "quad precision is not supported in MPI" "$LINENO" 5 fi for ac_prog in mpicc hcc mpcc mpcc_r mpxlc cmpicc do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_MPICC+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$MPICC"; then ac_cv_prog_MPICC="$MPICC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_MPICC="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi MPICC=$ac_cv_prog_MPICC if test -n "$MPICC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MPICC" >&5 printf "%s\n" "$MPICC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$MPICC" && break done test -n "$MPICC" || MPICC="$CC" acx_mpi_save_CC="$CC" CC="$MPICC" if test x = x"$MPILIBS"; then ac_fn_c_check_func "$LINENO" "MPI_Init" "ac_cv_func_MPI_Init" if test "x$ac_cv_func_MPI_Init" = xyes then : MPILIBS=" " fi fi if test x = x"$MPILIBS"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for MPI_Init in -lmpi" >&5 printf %s "checking for MPI_Init in -lmpi... " >&6; } if test ${ac_cv_lib_mpi_MPI_Init+y} then : printf %s "(cached) " >&6 else case e in #( e) ac_check_lib_save_LIBS=$LIBS LIBS="-lmpi $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. The 'extern "C"' is for builds by C++ compilers; although this is not generally supported in C code supporting it here has little cost and some practical benefit (sr 110532). */ #ifdef __cplusplus extern "C" #endif char MPI_Init (void); int main (void) { return MPI_Init (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_mpi_MPI_Init=yes else case e in #( e) ac_cv_lib_mpi_MPI_Init=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpi_MPI_Init" >&5 printf "%s\n" "$ac_cv_lib_mpi_MPI_Init" >&6; } if test "x$ac_cv_lib_mpi_MPI_Init" = xyes then : MPILIBS="-lmpi" fi fi if test x = x"$MPILIBS"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for MPI_Init in -lmpich" >&5 printf %s "checking for MPI_Init in -lmpich... " >&6; } if test ${ac_cv_lib_mpich_MPI_Init+y} then : printf %s "(cached) " >&6 else case e in #( e) ac_check_lib_save_LIBS=$LIBS LIBS="-lmpich $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. The 'extern "C"' is for builds by C++ compilers; although this is not generally supported in C code supporting it here has little cost and some practical benefit (sr 110532). */ #ifdef __cplusplus extern "C" #endif char MPI_Init (void); int main (void) { return MPI_Init (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_mpich_MPI_Init=yes else case e in #( e) ac_cv_lib_mpich_MPI_Init=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mpich_MPI_Init" >&5 printf "%s\n" "$ac_cv_lib_mpich_MPI_Init" >&6; } if test "x$ac_cv_lib_mpich_MPI_Init" = xyes then : MPILIBS="-lmpich" fi fi if test x != x"$MPILIBS"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mpi.h" >&5 printf %s "checking for mpi.h... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } else case e in #( e) MPILIBS="" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi CC="$acx_mpi_save_CC" # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: if test x = x"$MPILIBS"; then as_fn_error $? "could not find mpi library for --enable-mpi" "$LINENO" 5 : else printf "%s\n" "#define HAVE_MPI 1" >>confdefs.h : fi # Extract the first word of "mpirun", so it can be a program name with args. set dummy mpirun; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_MPIRUN+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$MPIRUN"; then ac_cv_prog_MPIRUN="$MPIRUN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_MPIRUN="mpirun" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi MPIRUN=$ac_cv_prog_MPIRUN if test -n "$MPIRUN"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MPIRUN" >&5 printf "%s\n" "$MPIRUN" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi save_CC=$CC CC=$MPICC # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of MPI_Fint" >&5 printf %s "checking size of MPI_Fint... " >&6; } if test ${ac_cv_sizeof_MPI_Fint+y} then : printf %s "(cached) " >&6 else case e in #( e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (MPI_Fint))" "ac_cv_sizeof_MPI_Fint" "#include " then : else case e in #( e) if test "$ac_cv_type_MPI_Fint" = yes; then { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (MPI_Fint) See 'config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_MPI_Fint=0 fi ;; esac fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_MPI_Fint" >&5 printf "%s\n" "$ac_cv_sizeof_MPI_Fint" >&6; } printf "%s\n" "#define SIZEOF_MPI_FINT $ac_cv_sizeof_MPI_Fint" >>confdefs.h CC=$save_CC if test 0 = $ac_cv_sizeof_MPI_Fint; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: sizeof(MPI_Fint) test failed" >&5 printf "%s\n" "$as_me: WARNING: sizeof(MPI_Fint) test failed" >&2;}; # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 printf %s "checking size of int... " >&6; } if test ${ac_cv_sizeof_int+y} then : printf %s "(cached) " >&6 else case e in #( e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default" then : else case e in #( e) if test "$ac_cv_type_int" = yes; then { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (int) See 'config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_int=0 fi ;; esac fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 printf "%s\n" "$ac_cv_sizeof_int" >&6; } printf "%s\n" "#define SIZEOF_INT $ac_cv_sizeof_int" >>confdefs.h if test 0 = $ac_cv_sizeof_int; then as_fn_error $? "sizeof(int) test failed" "$LINENO" 5; fi ac_cv_sizeof_MPI_Fint=$ac_cv_sizeof_int fi C_MPI_FINT=C_INT`expr $ac_cv_sizeof_MPI_Fint \* 8`_T fi if test "$enable_mpi" = "yes"; then MPI_TRUE= MPI_FALSE='#' else MPI_TRUE='#' MPI_FALSE= fi # Try to determine "good" native compiler flags if none specified via CFLAGS if test "x$ac_test_CFLAGS" != "xset" -a "x$ac_test_CFLAGS" != "xy"; then CFLAGS="" case $ax_cv_c_compiler_vendor in dec) CFLAGS="-newc -w0 -O5 -ansi_alias -ansi_args -fp_reorder -tune host" ;; sun) CFLAGS="-native -fast -xO5 -dalign" ;; hp) CFLAGS="+Oall +Optrs_ansi +DSnative" ;; ibm) xlc_opt="-qarch=auto -qtune=auto" as_CACHEVAR=`printf "%s\n" "ax_cv_check_cflags__$xlc_opt" | sed "$as_sed_sh"` { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $xlc_opt" >&5 printf %s "checking whether C compiler accepts $xlc_opt... " >&6; } if eval test \${$as_CACHEVAR+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS $xlc_opt" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "$as_CACHEVAR=yes" else case e in #( e) eval "$as_CACHEVAR=no" ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi eval ac_res=\$$as_CACHEVAR { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } if eval test \"x\$"$as_CACHEVAR"\" = x"yes" then : CFLAGS="-O3 -qalias=ansi -w $xlc_opt" else case e in #( e) CFLAGS="-O3 -qalias=ansi -w" ;; esac fi ;; intel) CFLAGS="-O3" # Intel seems to have changed the spelling of this flag recently icc_ansi_alias="unknown" for flag in -ansi-alias -ansi_alias; do as_CACHEVAR=`printf "%s\n" "ax_cv_check_cflags__$flag" | sed "$as_sed_sh"` { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $flag" >&5 printf %s "checking whether C compiler accepts $flag... " >&6; } if eval test \${$as_CACHEVAR+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS $flag" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "$as_CACHEVAR=yes" else case e in #( e) eval "$as_CACHEVAR=no" ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi eval ac_res=\$$as_CACHEVAR { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } if eval test \"x\$"$as_CACHEVAR"\" = x"yes" then : icc_ansi_alias=$flag; break else case e in #( e) : ;; esac fi done if test "x$icc_ansi_alias" != xunknown; then CFLAGS="$CFLAGS $icc_ansi_alias" fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -malign-double" >&5 printf %s "checking whether C compiler accepts -malign-double... " >&6; } if test ${ax_cv_check_cflags___malign_double+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -malign-double" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___malign_double=yes else case e in #( e) ax_cv_check_cflags___malign_double=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___malign_double" >&5 printf "%s\n" "$ax_cv_check_cflags___malign_double" >&6; } if test "x$ax_cv_check_cflags___malign_double" = xyes then : CFLAGS="$CFLAGS -malign-double" else case e in #( e) : ;; esac fi # We used to check for architecture flags here, e.g. -xHost etc., # but these flags are problematic. On icc-12.0.0, "-mavx -xHost" # overrides -mavx with -xHost, generating SSE2 code instead of AVX # code. ICC does not seem to support -mtune=host or equivalent # non-ABI changing flag. ;; clang) CFLAGS="-O3 -fomit-frame-pointer" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mtune=native" >&5 printf %s "checking whether C compiler accepts -mtune=native... " >&6; } if test ${ax_cv_check_cflags___mtune_native+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -mtune=native" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___mtune_native=yes else case e in #( e) ax_cv_check_cflags___mtune_native=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mtune_native" >&5 printf "%s\n" "$ax_cv_check_cflags___mtune_native" >&6; } if test "x$ax_cv_check_cflags___mtune_native" = xyes then : CFLAGS="$CFLAGS -mtune=native" else case e in #( e) : ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fstrict-aliasing" >&5 printf %s "checking whether C compiler accepts -fstrict-aliasing... " >&6; } if test ${ax_cv_check_cflags___fstrict_aliasing+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -fstrict-aliasing" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___fstrict_aliasing=yes else case e in #( e) ax_cv_check_cflags___fstrict_aliasing=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fstrict_aliasing" >&5 printf "%s\n" "$ax_cv_check_cflags___fstrict_aliasing" >&6; } if test "x$ax_cv_check_cflags___fstrict_aliasing" = xyes then : CFLAGS="$CFLAGS -fstrict-aliasing" else case e in #( e) : ;; esac fi ;; gnu) # Default optimization flags for gcc on all systems. # Somehow -O3 does not imply -fomit-frame-pointer on ia32 CFLAGS="-O3 -fomit-frame-pointer" # tune for the host by default { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mtune=native" >&5 printf %s "checking whether C compiler accepts -mtune=native... " >&6; } if test ${ax_cv_check_cflags___mtune_native+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -mtune=native" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___mtune_native=yes else case e in #( e) ax_cv_check_cflags___mtune_native=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mtune_native" >&5 printf "%s\n" "$ax_cv_check_cflags___mtune_native" >&6; } if test "x$ax_cv_check_cflags___mtune_native" = xyes then : CFLAGS="$CFLAGS -mtune=native" else case e in #( e) : ;; esac fi # -malign-double for x86 systems { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -malign-double" >&5 printf %s "checking whether C compiler accepts -malign-double... " >&6; } if test ${ax_cv_check_cflags___malign_double+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -malign-double" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___malign_double=yes else case e in #( e) ax_cv_check_cflags___malign_double=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___malign_double" >&5 printf "%s\n" "$ax_cv_check_cflags___malign_double" >&6; } if test "x$ax_cv_check_cflags___malign_double" = xyes then : CFLAGS="$CFLAGS -malign-double" else case e in #( e) : ;; esac fi # -fstrict-aliasing for gcc-2.95+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fstrict-aliasing" >&5 printf %s "checking whether C compiler accepts -fstrict-aliasing... " >&6; } if test ${ax_cv_check_cflags___fstrict_aliasing+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -fstrict-aliasing" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___fstrict_aliasing=yes else case e in #( e) ax_cv_check_cflags___fstrict_aliasing=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fstrict_aliasing" >&5 printf "%s\n" "$ax_cv_check_cflags___fstrict_aliasing" >&6; } if test "x$ax_cv_check_cflags___fstrict_aliasing" = xyes then : CFLAGS="$CFLAGS -fstrict-aliasing" else case e in #( e) : ;; esac fi # -fno-schedule-insns is pretty much required on all risc # processors. # # gcc performs one pass of instruction scheduling, then a pass of # register allocation, then another pass of instruction # scheduling. The first pass reorders instructions in a way that # is pretty much the worst possible for the purposes of register # allocation. We disable the first pass. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fno-schedule-insns" >&5 printf %s "checking whether C compiler accepts -fno-schedule-insns... " >&6; } if test ${ax_cv_check_cflags___fno_schedule_insns+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -fno-schedule-insns" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___fno_schedule_insns=yes else case e in #( e) ax_cv_check_cflags___fno_schedule_insns=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fno_schedule_insns" >&5 printf "%s\n" "$ax_cv_check_cflags___fno_schedule_insns" >&6; } if test "x$ax_cv_check_cflags___fno_schedule_insns" = xyes then : CFLAGS="$CFLAGS -fno-schedule-insns" else case e in #( e) : ;; esac fi # flags to enable power ISA 2.07 instructions with gcc (always true with vsx) if test "$have_vsx" = "yes"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mcpu=power8" >&5 printf %s "checking whether C compiler accepts -mcpu=power8... " >&6; } if test ${ax_cv_check_cflags___mcpu_power8+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -mcpu=power8" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___mcpu_power8=yes else case e in #( e) ax_cv_check_cflags___mcpu_power8=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mcpu_power8" >&5 printf "%s\n" "$ax_cv_check_cflags___mcpu_power8" >&6; } if test "x$ax_cv_check_cflags___mcpu_power8" = xyes then : CFLAGS="$CFLAGS -mcpu=power8" else case e in #( e) : ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mpower8-fusion" >&5 printf %s "checking whether C compiler accepts -mpower8-fusion... " >&6; } if test ${ax_cv_check_cflags___mpower8_fusion+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -mpower8-fusion" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___mpower8_fusion=yes else case e in #( e) ax_cv_check_cflags___mpower8_fusion=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mpower8_fusion" >&5 printf "%s\n" "$ax_cv_check_cflags___mpower8_fusion" >&6; } if test "x$ax_cv_check_cflags___mpower8_fusion" = xyes then : CFLAGS="$CFLAGS -mpower8-fusion" else case e in #( e) : ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mpower8-vector" >&5 printf %s "checking whether C compiler accepts -mpower8-vector... " >&6; } if test ${ax_cv_check_cflags___mpower8_vector+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -mpower8-vector" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___mpower8_vector=yes else case e in #( e) ax_cv_check_cflags___mpower8_vector=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mpower8_vector" >&5 printf "%s\n" "$ax_cv_check_cflags___mpower8_vector" >&6; } if test "x$ax_cv_check_cflags___mpower8_vector" = xyes then : CFLAGS="$CFLAGS -mpower8-vector" else case e in #( e) : ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mdirect-move" >&5 printf %s "checking whether C compiler accepts -mdirect-move... " >&6; } if test ${ax_cv_check_cflags___mdirect_move+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -mdirect-move" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___mdirect_move=yes else case e in #( e) ax_cv_check_cflags___mdirect_move=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mdirect_move" >&5 printf "%s\n" "$ax_cv_check_cflags___mdirect_move" >&6; } if test "x$ax_cv_check_cflags___mdirect_move" = xyes then : CFLAGS="$CFLAGS -mdirect-move" else case e in #( e) : ;; esac fi fi ;; esac if test -z "$CFLAGS"; then echo "" echo "********************************************************" echo "* WARNING: Don't know the best CFLAGS for this system *" echo "* Use ./configure CFLAGS=... to specify your own flags *" echo "* (otherwise, a default of CFLAGS=-O3 will be used) *" echo "********************************************************" echo "" CFLAGS="-O3" fi as_CACHEVAR=`printf "%s\n" "ax_cv_check_cflags__$CFLAGS" | sed "$as_sed_sh"` { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $CFLAGS" >&5 printf %s "checking whether C compiler accepts $CFLAGS... " >&6; } if eval test \${$as_CACHEVAR+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS $CFLAGS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "$as_CACHEVAR=yes" else case e in #( e) eval "$as_CACHEVAR=no" ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi eval ac_res=\$$as_CACHEVAR { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } if eval test \"x\$"$as_CACHEVAR"\" = x"yes" then : : else case e in #( e) echo "" echo "********************************************************" echo "* WARNING: The guessed CFLAGS don't seem to work with *" echo "* your compiler. *" echo "* Use ./configure CFLAGS=... to specify your own flags *" echo "********************************************************" echo "" CFLAGS="" ;; esac fi fi case "${ax_cv_c_compiler_vendor}" in hp) # must (sometimes) manually increase cpp limits to handle fftw3.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Wp,-H128000" >&5 printf %s "checking whether C compiler accepts -Wp,-H128000... " >&6; } if test ${ax_cv_check_cflags___Wp__H128000+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -Wp,-H128000" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___Wp__H128000=yes else case e in #( e) ax_cv_check_cflags___Wp__H128000=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___Wp__H128000" >&5 printf "%s\n" "$ax_cv_check_cflags___Wp__H128000" >&6; } if test "x$ax_cv_check_cflags___Wp__H128000" = xyes then : CC="$CC -Wp,-H128000" else case e in #( e) : ;; esac fi ;; portland) # -Masmkeyword required for asm("") cycle counters { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Masmkeyword" >&5 printf %s "checking whether C compiler accepts -Masmkeyword... " >&6; } if test ${ax_cv_check_cflags___Masmkeyword+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -Masmkeyword" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___Masmkeyword=yes else case e in #( e) ax_cv_check_cflags___Masmkeyword=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___Masmkeyword" >&5 printf "%s\n" "$ax_cv_check_cflags___Masmkeyword" >&6; } if test "x$ax_cv_check_cflags___Masmkeyword" = xyes then : CC="$CC -Masmkeyword" else case e in #( e) : ;; esac fi ;; esac case "${ax_cv_c_compiler_vendor}" in gnu|intel) # SSE/SSE2 if test "$have_sse2" = "yes" -a "x$SSE2_CFLAGS" = x; then if test "$PRECISION" = d; then flag=msse2; else flag=msse; fi as_CACHEVAR=`printf "%s\n" "ax_cv_check_cflags__-$flag" | sed "$as_sed_sh"` { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -$flag" >&5 printf %s "checking whether C compiler accepts -$flag... " >&6; } if eval test \${$as_CACHEVAR+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -$flag" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "$as_CACHEVAR=yes" else case e in #( e) eval "$as_CACHEVAR=no" ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi eval ac_res=\$$as_CACHEVAR { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } if eval test \"x\$"$as_CACHEVAR"\" = x"yes" then : SSE2_CFLAGS="-$flag" else case e in #( e) as_fn_error $? "Need a version of gcc with -$flag" "$LINENO" 5 ;; esac fi fi # AVX if test "$have_avx" = "yes" -a "x$AVX_CFLAGS" = x; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mavx" >&5 printf %s "checking whether C compiler accepts -mavx... " >&6; } if test ${ax_cv_check_cflags___mavx+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -mavx" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___mavx=yes else case e in #( e) ax_cv_check_cflags___mavx=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mavx" >&5 printf "%s\n" "$ax_cv_check_cflags___mavx" >&6; } if test "x$ax_cv_check_cflags___mavx" = xyes then : AVX_CFLAGS="-mavx" else case e in #( e) as_fn_error $? "Need a version of gcc with -mavx" "$LINENO" 5 ;; esac fi fi # AVX2 if test "$have_avx2" = "yes" -a "x$AVX2_CFLAGS" = x; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mavx2" >&5 printf %s "checking whether C compiler accepts -mavx2... " >&6; } if test ${ax_cv_check_cflags___mavx2+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -mavx2" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___mavx2=yes else case e in #( e) ax_cv_check_cflags___mavx2=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mavx2" >&5 printf "%s\n" "$ax_cv_check_cflags___mavx2" >&6; } if test "x$ax_cv_check_cflags___mavx2" = xyes then : AVX2_CFLAGS="-mavx2" else case e in #( e) as_fn_error $? "Need a version of gcc with -mavx2" "$LINENO" 5 ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mfma" >&5 printf %s "checking whether C compiler accepts -mfma... " >&6; } if test ${ax_cv_check_cflags___mfma+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -mfma" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___mfma=yes else case e in #( e) ax_cv_check_cflags___mfma=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mfma" >&5 printf "%s\n" "$ax_cv_check_cflags___mfma" >&6; } if test "x$ax_cv_check_cflags___mfma" = xyes then : AVX2_CFLAGS="$AVX2_CFLAGS -mfma" else case e in #( e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Need a version of gcc with -mfma (harmless for icc)" >&5 printf "%s\n" "$as_me: WARNING: Need a version of gcc with -mfma (harmless for icc)" >&2;} ;; esac fi fi # AVX512 if test "$have_avx512" = "yes" -a "x$AVX512_CFLAGS" = x; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mavx512f" >&5 printf %s "checking whether C compiler accepts -mavx512f... " >&6; } if test ${ax_cv_check_cflags___mavx512f+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -mavx512f" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___mavx512f=yes else case e in #( e) ax_cv_check_cflags___mavx512f=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mavx512f" >&5 printf "%s\n" "$ax_cv_check_cflags___mavx512f" >&6; } if test "x$ax_cv_check_cflags___mavx512f" = xyes then : AVX512_CFLAGS="-mavx512f" else case e in #( e) as_fn_error $? "Need a version of gcc with -mavx512f" "$LINENO" 5 ;; esac fi fi if test "$host_vendor" = "apple"; then # We need to tell gcc to use an external assembler to get AVX/AVX2 with gcc on OS X { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Wa,-q" >&5 printf %s "checking whether C compiler accepts -Wa,-q... " >&6; } if test ${ax_cv_check_cflags___Wa__q+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -Wa,-q" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___Wa__q=yes else case e in #( e) ax_cv_check_cflags___Wa__q=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___Wa__q" >&5 printf "%s\n" "$ax_cv_check_cflags___Wa__q" >&6; } if test "x$ax_cv_check_cflags___Wa__q" = xyes then : CFLAGS="$CFLAGS -Wa,-q" else case e in #( e) : ;; esac fi # Disable the new compact unwinding format so we avoid warnings/potential errors. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,-no_compact_unwind" >&5 printf %s "checking whether the linker accepts -Wl,-no_compact_unwind... " >&6; } if test ${ax_cv_check_ldflags___Wl__no_compact_unwind+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$LDFLAGS LDFLAGS="$LDFLAGS -Wl,-no_compact_unwind" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ax_cv_check_ldflags___Wl__no_compact_unwind=yes else case e in #( e) ax_cv_check_ldflags___Wl__no_compact_unwind=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags___Wl__no_compact_unwind" >&5 printf "%s\n" "$ax_cv_check_ldflags___Wl__no_compact_unwind" >&6; } if test "x$ax_cv_check_ldflags___Wl__no_compact_unwind" = xyes then : CFLAGS="$CFLAGS -Wl,-no_compact_unwind" else case e in #( e) : ;; esac fi fi # KCVI if test "$have_kcvi" = "yes" -a "x$KCVI_CFLAGS" = x; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mmic" >&5 printf %s "checking whether C compiler accepts -mmic... " >&6; } if test ${ax_cv_check_cflags___mmic+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -mmic" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___mmic=yes else case e in #( e) ax_cv_check_cflags___mmic=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mmic" >&5 printf "%s\n" "$ax_cv_check_cflags___mmic" >&6; } if test "x$ax_cv_check_cflags___mmic" = xyes then : KCVI_CFLAGS="-mmic" else case e in #( e) as_fn_error $? "Need a version of icc with -mmic" "$LINENO" 5 ;; esac fi fi if test "$have_altivec" = "yes" -a "x$ALTIVEC_CFLAGS" = x; then # -DFAKE__VEC__ is a workaround because gcc-3.3 does not # #define __VEC__ with -maltivec. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -faltivec" >&5 printf %s "checking whether C compiler accepts -faltivec... " >&6; } if test ${ax_cv_check_cflags___faltivec+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -faltivec" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___faltivec=yes else case e in #( e) ax_cv_check_cflags___faltivec=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___faltivec" >&5 printf "%s\n" "$ax_cv_check_cflags___faltivec" >&6; } if test "x$ax_cv_check_cflags___faltivec" = xyes then : ALTIVEC_CFLAGS="-faltivec" else case e in #( e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -maltivec -mabi=altivec" >&5 printf %s "checking whether C compiler accepts -maltivec -mabi=altivec... " >&6; } if test ${ax_cv_check_cflags___maltivec__mabi_altivec+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -maltivec -mabi=altivec" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___maltivec__mabi_altivec=yes else case e in #( e) ax_cv_check_cflags___maltivec__mabi_altivec=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___maltivec__mabi_altivec" >&5 printf "%s\n" "$ax_cv_check_cflags___maltivec__mabi_altivec" >&6; } if test "x$ax_cv_check_cflags___maltivec__mabi_altivec" = xyes then : ALTIVEC_CFLAGS="-maltivec -mabi=altivec -DFAKE__VEC__" else case e in #( e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fvec" >&5 printf %s "checking whether C compiler accepts -fvec... " >&6; } if test ${ax_cv_check_cflags___fvec+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -fvec" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___fvec=yes else case e in #( e) ax_cv_check_cflags___fvec=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fvec" >&5 printf "%s\n" "$ax_cv_check_cflags___fvec" >&6; } if test "x$ax_cv_check_cflags___fvec" = xyes then : ALTIVEC_CFLAGS="-fvec" else case e in #( e) as_fn_error $? "Need a version of gcc with -maltivec" "$LINENO" 5 ;; esac fi ;; esac fi ;; esac fi fi case "${host_cpu}" in aarch64) ;; *) if test "$have_neon" = "yes" -a "x$NEON_CFLAGS" = x; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mfpu=neon" >&5 printf %s "checking whether C compiler accepts -mfpu=neon... " >&6; } if test ${ax_cv_check_cflags___mfpu_neon+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -mfpu=neon" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___mfpu_neon=yes else case e in #( e) ax_cv_check_cflags___mfpu_neon=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mfpu_neon" >&5 printf "%s\n" "$ax_cv_check_cflags___mfpu_neon" >&6; } if test "x$ax_cv_check_cflags___mfpu_neon" = xyes then : NEON_CFLAGS="-mfpu=neon" else case e in #( e) as_fn_error $? "Need a version of gcc with -mfpu=neon" "$LINENO" 5 ;; esac fi fi ;; esac if test "$have_vsx" = "yes" -a "x$VSX_CFLAGS" = x; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mvsx" >&5 printf %s "checking whether C compiler accepts -mvsx... " >&6; } if test ${ax_cv_check_cflags___mvsx+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -mvsx" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___mvsx=yes else case e in #( e) ax_cv_check_cflags___mvsx=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mvsx" >&5 printf "%s\n" "$ax_cv_check_cflags___mvsx" >&6; } if test "x$ax_cv_check_cflags___mvsx" = xyes then : VSX_CFLAGS="-mvsx" else case e in #( e) as_fn_error $? "Need a version of gcc with -mvsx" "$LINENO" 5 ;; esac fi fi # LSX if test "$have_lsx" = "yes" -a "x$LSX_CFLAGS" = x; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mlsx" >&5 printf %s "checking whether C compiler accepts -mlsx... " >&6; } if test ${ax_cv_check_cflags___mlsx+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -mlsx" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___mlsx=yes else case e in #( e) ax_cv_check_cflags___mlsx=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mlsx" >&5 printf "%s\n" "$ax_cv_check_cflags___mlsx" >&6; } if test "x$ax_cv_check_cflags___mlsx" = xyes then : LSX_CFLAGS="-mlsx" else case e in #( e) as_fn_error $? "Need a version of gcc with -mlsx" "$LINENO" 5 ;; esac fi fi # LASX if test "$have_lasx" = "yes" -a "x$LASX_CFLAGS" = x; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mlasx" >&5 printf %s "checking whether C compiler accepts -mlasx... " >&6; } if test ${ax_cv_check_cflags___mlasx+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -mlasx" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___mlasx=yes else case e in #( e) ax_cv_check_cflags___mlasx=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mlasx" >&5 printf "%s\n" "$ax_cv_check_cflags___mlasx" >&6; } if test "x$ax_cv_check_cflags___mlasx" = xyes then : LASX_CFLAGS="-mlasx" else case e in #( e) as_fn_error $? "Need a version of gcc with -mlasx" "$LINENO" 5 ;; esac fi fi ;; clang) if test "$have_avx" = "yes" -a "x$AVX_CFLAGS" = x; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mavx" >&5 printf %s "checking whether C compiler accepts -mavx... " >&6; } if test ${ax_cv_check_cflags___mavx+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -mavx" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___mavx=yes else case e in #( e) ax_cv_check_cflags___mavx=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mavx" >&5 printf "%s\n" "$ax_cv_check_cflags___mavx" >&6; } if test "x$ax_cv_check_cflags___mavx" = xyes then : AVX_CFLAGS="-mavx" else case e in #( e) as_fn_error $? "Need a version of clang with -mavx" "$LINENO" 5 ;; esac fi fi if test "$have_avx2" = "yes" -a "x$AVX2_CFLAGS" = x; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mavx2" >&5 printf %s "checking whether C compiler accepts -mavx2... " >&6; } if test ${ax_cv_check_cflags___mavx2+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -mavx2" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___mavx2=yes else case e in #( e) ax_cv_check_cflags___mavx2=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mavx2" >&5 printf "%s\n" "$ax_cv_check_cflags___mavx2" >&6; } if test "x$ax_cv_check_cflags___mavx2" = xyes then : AVX2_CFLAGS="-mavx2" else case e in #( e) as_fn_error $? "Need a version of clang with -mavx2" "$LINENO" 5 ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mfma" >&5 printf %s "checking whether C compiler accepts -mfma... " >&6; } if test ${ax_cv_check_cflags___mfma+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -mfma" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___mfma=yes else case e in #( e) ax_cv_check_cflags___mfma=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mfma" >&5 printf "%s\n" "$ax_cv_check_cflags___mfma" >&6; } if test "x$ax_cv_check_cflags___mfma" = xyes then : AVX2_CFLAGS="$AVX2_CFLAGS -mfma" else case e in #( e) : ;; esac fi fi # AVX512 if test "$have_avx512" = "yes" -a "x$AVX512_CFLAGS" = x; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mavx512f" >&5 printf %s "checking whether C compiler accepts -mavx512f... " >&6; } if test ${ax_cv_check_cflags___mavx512f+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -mavx512f" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___mavx512f=yes else case e in #( e) ax_cv_check_cflags___mavx512f=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mavx512f" >&5 printf "%s\n" "$ax_cv_check_cflags___mavx512f" >&6; } if test "x$ax_cv_check_cflags___mavx512f" = xyes then : AVX512_CFLAGS="-mavx512f" else case e in #( e) as_fn_error $? "Need a version of clang with -mavx512f" "$LINENO" 5 ;; esac fi fi if test "$have_vsx" = "yes" -a "x$VSX_CFLAGS" = x; then # clang appears to need both -mvsx and -maltivec for VSX { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -maltivec" >&5 printf %s "checking whether C compiler accepts -maltivec... " >&6; } if test ${ax_cv_check_cflags___maltivec+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -maltivec" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___maltivec=yes else case e in #( e) ax_cv_check_cflags___maltivec=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___maltivec" >&5 printf "%s\n" "$ax_cv_check_cflags___maltivec" >&6; } if test "x$ax_cv_check_cflags___maltivec" = xyes then : VSX_CFLAGS="-maltivec" else case e in #( e) as_fn_error $? "Need a version of gcc with -maltivec" "$LINENO" 5 ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mvsx" >&5 printf %s "checking whether C compiler accepts -mvsx... " >&6; } if test ${ax_cv_check_cflags___mvsx+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -mvsx" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___mvsx=yes else case e in #( e) ax_cv_check_cflags___mvsx=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mvsx" >&5 printf "%s\n" "$ax_cv_check_cflags___mvsx" >&6; } if test "x$ax_cv_check_cflags___mvsx" = xyes then : VSX_CFLAGS="-mvsx $VSX_CFLAGS" else case e in #( e) as_fn_error $? "Need a version of gcc with -mvsx" "$LINENO" 5 ;; esac fi fi # LSX if test "$have_lsx" = "yes" -a "x$LSX_CFLAGS" = x; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mlsx" >&5 printf %s "checking whether C compiler accepts -mlsx... " >&6; } if test ${ax_cv_check_cflags___mlsx+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -mlsx" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___mlsx=yes else case e in #( e) ax_cv_check_cflags___mlsx=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mlsx" >&5 printf "%s\n" "$ax_cv_check_cflags___mlsx" >&6; } if test "x$ax_cv_check_cflags___mlsx" = xyes then : LSX_CFLAGS="-mlsx" else case e in #( e) as_fn_error $? "Need a version of clang with -mlsx" "$LINENO" 5 ;; esac fi fi # LASX if test "$have_lasx" = "yes" -a "x$LASX_CFLAGS" = x; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mlasx" >&5 printf %s "checking whether C compiler accepts -mlasx... " >&6; } if test ${ax_cv_check_cflags___mlasx+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -mlasx" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___mlasx=yes else case e in #( e) ax_cv_check_cflags___mlasx=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mlasx" >&5 printf "%s\n" "$ax_cv_check_cflags___mlasx" >&6; } if test "x$ax_cv_check_cflags___mlasx" = xyes then : LASX_CFLAGS="-mlasx" else case e in #( e) as_fn_error $? "Need a version of clang with -mlasx" "$LINENO" 5 ;; esac fi fi ;; ibm) if test "$have_vsx" = "yes" -a "x$VSX_CFLAGS" = x; then # Note that IBM xlC uses -qaltivec for VSX too. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -qaltivec" >&5 printf %s "checking whether C compiler accepts -qaltivec... " >&6; } if test ${ax_cv_check_cflags___qaltivec+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -qaltivec" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___qaltivec=yes else case e in #( e) ax_cv_check_cflags___qaltivec=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___qaltivec" >&5 printf "%s\n" "$ax_cv_check_cflags___qaltivec" >&6; } if test "x$ax_cv_check_cflags___qaltivec" = xyes then : VSX_CFLAGS="-qaltivec" else case e in #( e) as_fn_error $? "Need a version of gcc with -qaltivec" "$LINENO" 5 ;; esac fi fi ;; esac if test "$with_incoming_stack_boundary"x != "no"x; then case "${ax_cv_c_compiler_vendor}" in gnu) tentative_flags="-mincoming-stack-boundary=$with_incoming_stack_boundary"; as_CACHEVAR=`printf "%s\n" "ax_cv_check_cflags__$tentative_flags" | sed "$as_sed_sh"` { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts $tentative_flags" >&5 printf %s "checking whether C compiler accepts $tentative_flags... " >&6; } if eval test \${$as_CACHEVAR+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS $tentative_flags" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : eval "$as_CACHEVAR=yes" else case e in #( e) eval "$as_CACHEVAR=no" ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi eval ac_res=\$$as_CACHEVAR { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 printf "%s\n" "$ac_res" >&6; } if eval test \"x\$"$as_CACHEVAR"\" = x"yes" then : STACK_ALIGN_CFLAGS=$tentative_flags else case e in #( e) : ;; esac fi ;; esac fi # Autoupdate added the next two lines to ensure that your configure # script's behavior did not change. They are probably safe to remove. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 printf %s "checking for egrep... " >&6; } if test ${ac_cv_path_EGREP+y} then : printf %s "(cached) " >&6 else case e in #( e) if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_prog in egrep do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in #( *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; #( *) ac_count=0 printf %s 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" printf "%s\n" 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 printf "%s\n" "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" EGREP_TRADITIONAL=$EGREP ac_cv_path_EGREP_TRADITIONAL=$EGREP ac_fn_c_check_header_compile "$LINENO" "fcntl.h" "ac_cv_header_fcntl_h" "$ac_includes_default" if test "x$ac_cv_header_fcntl_h" = xyes then : printf "%s\n" "#define HAVE_FCNTL_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "fenv.h" "ac_cv_header_fenv_h" "$ac_includes_default" if test "x$ac_cv_header_fenv_h" = xyes then : printf "%s\n" "#define HAVE_FENV_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "limits.h" "ac_cv_header_limits_h" "$ac_includes_default" if test "x$ac_cv_header_limits_h" = xyes then : printf "%s\n" "#define HAVE_LIMITS_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "malloc.h" "ac_cv_header_malloc_h" "$ac_includes_default" if test "x$ac_cv_header_malloc_h" = xyes then : printf "%s\n" "#define HAVE_MALLOC_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "stddef.h" "ac_cv_header_stddef_h" "$ac_includes_default" if test "x$ac_cv_header_stddef_h" = xyes then : printf "%s\n" "#define HAVE_STDDEF_H 1" >>confdefs.h fi ac_fn_c_check_header_compile "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$ac_includes_default" if test "x$ac_cv_header_sys_time_h" = xyes then : printf "%s\n" "#define HAVE_SYS_TIME_H 1" >>confdefs.h fi save_CFLAGS="$CFLAGS" save_CPPFLAGS="$CPPFLAGS" CFLAGS="$CFLAGS $ALTIVEC_CFLAGS $VSX_CFLAGS" CPPFLAGS="$CPPFLAGS $ALTIVEC_CFLAGS $VSX_CFLAGS" ac_fn_c_check_header_compile "$LINENO" "altivec.h" "ac_cv_header_altivec_h" "$ac_includes_default" if test "x$ac_cv_header_altivec_h" = xyes then : printf "%s\n" "#define HAVE_ALTIVEC_H 1" >>confdefs.h fi CFLAGS="$save_CFLAGS" CPPFLAGS="$save_CPPFLAGS" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 printf %s "checking for an ANSI C-conforming const... " >&6; } if test ${ac_cv_c_const+y} then : printf %s "(cached) " >&6 else case e in #( e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { #ifndef __cplusplus /* Ultrix mips cc rejects this sort of thing. */ typedef int charset[2]; const charset cs = { 0, 0 }; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* IBM XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this sort of thing. */ char tx; char *t = &tx; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* IBM XL C 1.02.0.0 rejects this sort of thing, saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; } bx; struct s *b = &bx; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_c_const=yes else case e in #( e) ac_cv_c_const=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 printf "%s\n" "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then printf "%s\n" "#define const /**/" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 printf %s "checking for inline... " >&6; } if test ${ac_cv_c_inline+y} then : printf %s "(cached) " >&6 else case e in #( e) ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo (void) {return 0; } $ac_kw foo_t foo (void) {return 0; } #endif _ACEOF if ac_fn_c_try_compile "$LINENO" then : ac_cv_c_inline=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext test "$ac_cv_c_inline" != no && break done ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 printf "%s\n" "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; *) case $ac_cv_c_inline in no) ac_val=;; *) ac_val=$ac_cv_c_inline;; esac cat >>confdefs.h <<_ACEOF #ifndef __cplusplus #define inline $ac_val #endif _ACEOF ;; esac ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" if test "x$ac_cv_type_size_t" = xyes then : else case e in #( e) printf "%s\n" "#define size_t unsigned int" >>confdefs.h ;; esac fi ac_fn_c_find_uintX_t "$LINENO" "32" "ac_cv_c_uint32_t" case $ac_cv_c_uint32_t in #( no|yes) ;; #( *) printf "%s\n" "#define _UINT32_T 1" >>confdefs.h printf "%s\n" "#define uint32_t $ac_cv_c_uint32_t" >>confdefs.h ;; esac ac_fn_c_find_uintX_t "$LINENO" "64" "ac_cv_c_uint64_t" case $ac_cv_c_uint64_t in #( no|yes) ;; #( *) printf "%s\n" "#define _UINT64_T 1" >>confdefs.h printf "%s\n" "#define uint64_t $ac_cv_c_uint64_t" >>confdefs.h ;; esac # Obsolete code to be removed. if test $ac_cv_header_sys_time_h = yes; then printf "%s\n" "#define TIME_WITH_SYS_TIME 1" >>confdefs.h fi # End of obsolete code. ac_fn_c_check_type "$LINENO" "long double" "ac_cv_type_long_double" "$ac_includes_default" if test "x$ac_cv_type_long_double" = xyes then : printf "%s\n" "#define HAVE_LONG_DOUBLE 1" >>confdefs.h else case e in #( e) if test $PRECISION = l; then as_fn_error $? "long double is not a supported type with your compiler." "$LINENO" 5 fi ;; esac fi ac_fn_c_check_type "$LINENO" "hrtime_t" "ac_cv_type_hrtime_t" " #if HAVE_SYS_TIME_H #include #endif " if test "x$ac_cv_type_hrtime_t" = xyes then : printf "%s\n" "#define HAVE_HRTIME_T 1" >>confdefs.h fi # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 printf %s "checking size of int... " >&6; } if test ${ac_cv_sizeof_int+y} then : printf %s "(cached) " >&6 else case e in #( e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default" then : else case e in #( e) if test "$ac_cv_type_int" = yes; then { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (int) See 'config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_int=0 fi ;; esac fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 printf "%s\n" "$ac_cv_sizeof_int" >&6; } printf "%s\n" "#define SIZEOF_INT $ac_cv_sizeof_int" >>confdefs.h # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of unsigned int" >&5 printf %s "checking size of unsigned int... " >&6; } if test ${ac_cv_sizeof_unsigned_int+y} then : printf %s "(cached) " >&6 else case e in #( e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned int))" "ac_cv_sizeof_unsigned_int" "$ac_includes_default" then : else case e in #( e) if test "$ac_cv_type_unsigned_int" = yes; then { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (unsigned int) See 'config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_unsigned_int=0 fi ;; esac fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_unsigned_int" >&5 printf "%s\n" "$ac_cv_sizeof_unsigned_int" >&6; } printf "%s\n" "#define SIZEOF_UNSIGNED_INT $ac_cv_sizeof_unsigned_int" >>confdefs.h # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 printf %s "checking size of long... " >&6; } if test ${ac_cv_sizeof_long+y} then : printf %s "(cached) " >&6 else case e in #( e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default" then : else case e in #( e) if test "$ac_cv_type_long" = yes; then { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long) See 'config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long=0 fi ;; esac fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 printf "%s\n" "$ac_cv_sizeof_long" >&6; } printf "%s\n" "#define SIZEOF_LONG $ac_cv_sizeof_long" >>confdefs.h # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of unsigned long" >&5 printf %s "checking size of unsigned long... " >&6; } if test ${ac_cv_sizeof_unsigned_long+y} then : printf %s "(cached) " >&6 else case e in #( e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned long))" "ac_cv_sizeof_unsigned_long" "$ac_includes_default" then : else case e in #( e) if test "$ac_cv_type_unsigned_long" = yes; then { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (unsigned long) See 'config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_unsigned_long=0 fi ;; esac fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_unsigned_long" >&5 printf "%s\n" "$ac_cv_sizeof_unsigned_long" >&6; } printf "%s\n" "#define SIZEOF_UNSIGNED_LONG $ac_cv_sizeof_unsigned_long" >>confdefs.h # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5 printf %s "checking size of long long... " >&6; } if test ${ac_cv_sizeof_long_long+y} then : printf %s "(cached) " >&6 else case e in #( e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default" then : else case e in #( e) if test "$ac_cv_type_long_long" = yes; then { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (long long) See 'config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_long_long=0 fi ;; esac fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5 printf "%s\n" "$ac_cv_sizeof_long_long" >&6; } printf "%s\n" "#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long" >>confdefs.h # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of unsigned long long" >&5 printf %s "checking size of unsigned long long... " >&6; } if test ${ac_cv_sizeof_unsigned_long_long+y} then : printf %s "(cached) " >&6 else case e in #( e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (unsigned long long))" "ac_cv_sizeof_unsigned_long_long" "$ac_includes_default" then : else case e in #( e) if test "$ac_cv_type_unsigned_long_long" = yes; then { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (unsigned long long) See 'config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_unsigned_long_long=0 fi ;; esac fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_unsigned_long_long" >&5 printf "%s\n" "$ac_cv_sizeof_unsigned_long_long" >&6; } printf "%s\n" "#define SIZEOF_UNSIGNED_LONG_LONG $ac_cv_sizeof_unsigned_long_long" >>confdefs.h # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5 printf %s "checking size of size_t... " >&6; } if test ${ac_cv_sizeof_size_t+y} then : printf %s "(cached) " >&6 else case e in #( e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default" then : else case e in #( e) if test "$ac_cv_type_size_t" = yes; then { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (size_t) See 'config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_size_t=0 fi ;; esac fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5 printf "%s\n" "$ac_cv_sizeof_size_t" >&6; } printf "%s\n" "#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t" >>confdefs.h # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of ptrdiff_t" >&5 printf %s "checking size of ptrdiff_t... " >&6; } if test ${ac_cv_sizeof_ptrdiff_t+y} then : printf %s "(cached) " >&6 else case e in #( e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (ptrdiff_t))" "ac_cv_sizeof_ptrdiff_t" "$ac_includes_default" then : else case e in #( e) if test "$ac_cv_type_ptrdiff_t" = yes; then { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (ptrdiff_t) See 'config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_ptrdiff_t=0 fi ;; esac fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_ptrdiff_t" >&5 printf "%s\n" "$ac_cv_sizeof_ptrdiff_t" >&6; } printf "%s\n" "#define SIZEOF_PTRDIFF_T $ac_cv_sizeof_ptrdiff_t" >>confdefs.h ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default" if test "x$ac_cv_type_ptrdiff_t" = xyes then : printf "%s\n" "#define HAVE_PTRDIFF_T 1" >>confdefs.h fi ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "$ac_includes_default #ifdef HAVE_STDINT_H # include #endif " if test "x$ac_cv_type_uintptr_t" = xyes then : printf "%s\n" "#define HAVE_UINTPTR_T 1" >>confdefs.h else case e in #( e) # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5 printf %s "checking size of void *... " >&6; } if test ${ac_cv_sizeof_void_p+y} then : printf %s "(cached) " >&6 else case e in #( e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default" then : else case e in #( e) if test "$ac_cv_type_void_p" = yes; then { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (void *) See 'config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_void_p=0 fi ;; esac fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5 printf "%s\n" "$ac_cv_sizeof_void_p" >&6; } printf "%s\n" "#define SIZEOF_VOID_P $ac_cv_sizeof_void_p" >>confdefs.h ;; esac fi # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of float" >&5 printf %s "checking size of float... " >&6; } if test ${ac_cv_sizeof_float+y} then : printf %s "(cached) " >&6 else case e in #( e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (float))" "ac_cv_sizeof_float" "$ac_includes_default" then : else case e in #( e) if test "$ac_cv_type_float" = yes; then { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (float) See 'config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_float=0 fi ;; esac fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_float" >&5 printf "%s\n" "$ac_cv_sizeof_float" >&6; } printf "%s\n" "#define SIZEOF_FLOAT $ac_cv_sizeof_float" >>confdefs.h # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of double" >&5 printf %s "checking size of double... " >&6; } if test ${ac_cv_sizeof_double+y} then : printf %s "(cached) " >&6 else case e in #( e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (double))" "ac_cv_sizeof_double" "$ac_includes_default" then : else case e in #( e) if test "$ac_cv_type_double" = yes; then { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (double) See 'config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_double=0 fi ;; esac fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_double" >&5 printf "%s\n" "$ac_cv_sizeof_double" >&6; } printf "%s\n" "#define SIZEOF_DOUBLE $ac_cv_sizeof_double" >>confdefs.h # The cast to long int works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of fftw_r2r_kind" >&5 printf %s "checking size of fftw_r2r_kind... " >&6; } if test ${ac_cv_sizeof_fftw_r2r_kind+y} then : printf %s "(cached) " >&6 else case e in #( e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (fftw_r2r_kind))" "ac_cv_sizeof_fftw_r2r_kind" "typedef enum { FFTW_R2HC=0, FFTW_HC2R=1, FFTW_DHT=2, FFTW_REDFT00=3, FFTW_REDFT01=4, FFTW_REDFT10=5, FFTW_REDFT11=6, FFTW_RODFT00=7, FFTW_RODFT01=8, FFTW_RODFT10=9, FFTW_RODFT11=10 } fftw_r2r_kind; " then : else case e in #( e) if test "$ac_cv_type_fftw_r2r_kind" = yes; then { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "cannot compute sizeof (fftw_r2r_kind) See 'config.log' for more details" "$LINENO" 5; } else ac_cv_sizeof_fftw_r2r_kind=0 fi ;; esac fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_fftw_r2r_kind" >&5 printf "%s\n" "$ac_cv_sizeof_fftw_r2r_kind" >&6; } printf "%s\n" "#define SIZEOF_FFTW_R2R_KIND $ac_cv_sizeof_fftw_r2r_kind" >>confdefs.h if test 0 = $ac_cv_sizeof_fftw_r2r_kind; then as_fn_error $? "sizeof(fftw_r2r_kind) test failed" "$LINENO" 5; fi C_FFTW_R2R_KIND=C_INT`expr $ac_cv_sizeof_fftw_r2r_kind \* 8`_T # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5 printf %s "checking for working alloca.h... " >&6; } if test ${ac_cv_working_alloca_h+y} then : printf %s "(cached) " >&6 else case e in #( e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main (void) { char *p = (char *) alloca (2 * sizeof (int)); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_working_alloca_h=yes else case e in #( e) ac_cv_working_alloca_h=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5 printf "%s\n" "$ac_cv_working_alloca_h" >&6; } if test $ac_cv_working_alloca_h = yes; then printf "%s\n" "#define HAVE_ALLOCA_H 1" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5 printf %s "checking for alloca... " >&6; } if test ${ac_cv_func_alloca_works+y} then : printf %s "(cached) " >&6 else case e in #( e) ac_cv_func_alloca_works=$ac_cv_working_alloca_h if test "$ac_cv_func_alloca_works" != yes then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #ifndef alloca # ifdef __GNUC__ # define alloca __builtin_alloca # elif defined _MSC_VER # include # define alloca _alloca # else # ifdef __cplusplus extern "C" # endif void *alloca (size_t); # endif #endif int main (void) { char *p = (char *) alloca (1); if (p) return 0; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_func_alloca_works=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5 printf "%s\n" "$ac_cv_func_alloca_works" >&6; } if test $ac_cv_func_alloca_works = yes; then printf "%s\n" "#define HAVE_ALLOCA 1" >>confdefs.h else # The SVR3 libPW and SVR4 libucb both contain incompatible functions # that cause trouble. Some versions do not even contain alloca or # contain a buggy version. If you still want to use their alloca, # use ar to extract alloca.o from them instead of compiling alloca.c. ALLOCA=\${LIBOBJDIR}alloca.$ac_objext printf "%s\n" "#define C_ALLOCA 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5 printf %s "checking stack direction for C alloca... " >&6; } if test ${ac_cv_c_stack_direction+y} then : printf %s "(cached) " >&6 else case e in #( e) if test "$cross_compiling" = yes then : ac_cv_c_stack_direction=0 else case e in #( e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int find_stack_direction (int *addr, int depth) { int dir, dummy = 0; if (! addr) addr = &dummy; *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1; dir = depth ? find_stack_direction (addr, depth - 1) : 0; return dir + dummy; } int main (int argc, char **argv) { return find_stack_direction (0, argc + !argv + 20) < 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : ac_cv_c_stack_direction=1 else case e in #( e) ac_cv_c_stack_direction=-1 ;; esac fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext ;; esac fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5 printf "%s\n" "$ac_cv_c_stack_direction" >&6; } printf "%s\n" "#define STACK_DIRECTION $ac_cv_c_stack_direction" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working strtod" >&5 printf %s "checking for working strtod... " >&6; } if test ${ac_cv_func_strtod+y} then : printf %s "(cached) " >&6 else case e in #( e) if test "$cross_compiling" = yes then : ac_cv_func_strtod=no else case e in #( e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $ac_includes_default int main (void) { { /* Some versions of Linux strtod mis-parse strings with leading '+'. */ char *string = " +69"; char *term; double value; value = strtod (string, &term); if (value != 69 || term != (string + 4)) return 1; } { /* Under Solaris 2.4, strtod returns the wrong value for the terminating character under some conditions. */ char *string = "NaN"; char *term; strtod (string, &term); if (term != string && *(term - 1) == 0) return 1; } return 0; } _ACEOF if ac_fn_c_try_run "$LINENO" then : ac_cv_func_strtod=yes else case e in #( e) ac_cv_func_strtod=no ;; esac fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext ;; esac fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strtod" >&5 printf "%s\n" "$ac_cv_func_strtod" >&6; } if test $ac_cv_func_strtod = no; then case " $LIBOBJS " in *" strtod.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS strtod.$ac_objext" ;; esac ac_fn_c_check_func "$LINENO" "pow" "ac_cv_func_pow" if test "x$ac_cv_func_pow" = xyes then : fi if test $ac_cv_func_pow = no; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pow in -lm" >&5 printf %s "checking for pow in -lm... " >&6; } if test ${ac_cv_lib_m_pow+y} then : printf %s "(cached) " >&6 else case e in #( e) ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. The 'extern "C"' is for builds by C++ compilers; although this is not generally supported in C code supporting it here has little cost and some practical benefit (sr 110532). */ #ifdef __cplusplus extern "C" #endif char pow (void); int main (void) { return pow (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_m_pow=yes else case e in #( e) ac_cv_lib_m_pow=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_pow" >&5 printf "%s\n" "$ac_cv_lib_m_pow" >&6; } if test "x$ac_cv_lib_m_pow" = xyes then : POW_LIB=-lm else case e in #( e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cannot find library containing definition of pow" >&5 printf "%s\n" "$as_me: WARNING: cannot find library containing definition of pow" >&2;} ;; esac fi fi fi ac_func= for ac_item in $ac_func_c_list do if test $ac_func; then ac_fn_c_check_func "$LINENO" $ac_func ac_cv_func_$ac_func if eval test \"x\$ac_cv_func_$ac_func\" = xyes; then echo "#define $ac_item 1" >> confdefs.h fi ac_func= else ac_func=$ac_item fi done if test "x$ac_cv_func_vprintf" = xno then : ac_fn_c_check_func "$LINENO" "_doprnt" "ac_cv_func__doprnt" if test "x$ac_cv_func__doprnt" = xyes then : printf "%s\n" "#define HAVE_DOPRNT 1" >>confdefs.h fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sin in -lm" >&5 printf %s "checking for sin in -lm... " >&6; } if test ${ac_cv_lib_m_sin+y} then : printf %s "(cached) " >&6 else case e in #( e) ac_check_lib_save_LIBS=$LIBS LIBS="-lm $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. The 'extern "C"' is for builds by C++ compilers; although this is not generally supported in C code supporting it here has little cost and some practical benefit (sr 110532). */ #ifdef __cplusplus extern "C" #endif char sin (void); int main (void) { return sin (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_m_sin=yes else case e in #( e) ac_cv_lib_m_sin=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_sin" >&5 printf "%s\n" "$ac_cv_lib_m_sin" >&6; } if test "x$ac_cv_lib_m_sin" = xyes then : printf "%s\n" "#define HAVE_LIBM 1" >>confdefs.h LIBS="-lm $LIBS" fi if test $PRECISION = q; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep -e" >&5 printf %s "checking for egrep -e... " >&6; } if test ${ac_cv_path_EGREP_TRADITIONAL+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -z "$EGREP_TRADITIONAL"; then ac_path_EGREP_TRADITIONAL_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_prog in grep ggrep do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP_TRADITIONAL="$as_dir$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP_TRADITIONAL" || continue # Check for GNU ac_path_EGREP_TRADITIONAL and select it if it is found. # Check for GNU $ac_path_EGREP_TRADITIONAL case `"$ac_path_EGREP_TRADITIONAL" --version 2>&1` in #( *GNU*) ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" ac_path_EGREP_TRADITIONAL_found=:;; #( *) ac_count=0 printf %s 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" printf "%s\n" 'EGREP_TRADITIONAL' >> "conftest.nl" "$ac_path_EGREP_TRADITIONAL" -E 'EGR(EP|AC)_TRADITIONAL$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_TRADITIONAL_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" ac_path_EGREP_TRADITIONAL_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_TRADITIONAL_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP_TRADITIONAL"; then : fi else ac_cv_path_EGREP_TRADITIONAL=$EGREP_TRADITIONAL fi if test "$ac_cv_path_EGREP_TRADITIONAL" then : ac_cv_path_EGREP_TRADITIONAL="$ac_cv_path_EGREP_TRADITIONAL -E" else case e in #( e) if test -z "$EGREP_TRADITIONAL"; then ac_path_EGREP_TRADITIONAL_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_prog in egrep do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP_TRADITIONAL="$as_dir$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP_TRADITIONAL" || continue # Check for GNU ac_path_EGREP_TRADITIONAL and select it if it is found. # Check for GNU $ac_path_EGREP_TRADITIONAL case `"$ac_path_EGREP_TRADITIONAL" --version 2>&1` in #( *GNU*) ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" ac_path_EGREP_TRADITIONAL_found=:;; #( *) ac_count=0 printf %s 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" printf "%s\n" 'EGREP_TRADITIONAL' >> "conftest.nl" "$ac_path_EGREP_TRADITIONAL" 'EGR(EP|AC)_TRADITIONAL$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_TRADITIONAL_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP_TRADITIONAL="$ac_path_EGREP_TRADITIONAL" ac_path_EGREP_TRADITIONAL_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_TRADITIONAL_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP_TRADITIONAL"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP_TRADITIONAL=$EGREP_TRADITIONAL fi ;; esac fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP_TRADITIONAL" >&5 printf "%s\n" "$ac_cv_path_EGREP_TRADITIONAL" >&6; } EGREP_TRADITIONAL=$ac_cv_path_EGREP_TRADITIONAL { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are using gcc 4.6.0 or later" >&5 printf %s "checking whether we are using gcc 4.6.0 or later... " >&6; } if test ${ax_cv_gcc_4_6_0+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_cv_gcc_4_6_0=no if test "$GCC" = "yes"; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __GNUC__ # if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ > 6) \ || (__GNUC__ == 4 && __GNUC_MINOR__ == 6 && __GNUC_PATCHLEVEL__ >= 0) yes; # endif #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP_TRADITIONAL "yes" >/dev/null 2>&1 then : ax_cv_gcc_4_6_0=yes fi rm -rf conftest* fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_4_6_0" >&5 printf "%s\n" "$ax_cv_gcc_4_6_0" >&6; } if test "$ax_cv_gcc_4_6_0" = yes; then : else as_fn_error $? "gcc 4.6 or later required for quad precision support" "$LINENO" 5 fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sinq in -lquadmath" >&5 printf %s "checking for sinq in -lquadmath... " >&6; } if test ${ac_cv_lib_quadmath_sinq+y} then : printf %s "(cached) " >&6 else case e in #( e) ac_check_lib_save_LIBS=$LIBS LIBS="-lquadmath $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. The 'extern "C"' is for builds by C++ compilers; although this is not generally supported in C code supporting it here has little cost and some practical benefit (sr 110532). */ #ifdef __cplusplus extern "C" #endif char sinq (void); int main (void) { return sinq (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_lib_quadmath_sinq=yes else case e in #( e) ac_cv_lib_quadmath_sinq=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_quadmath_sinq" >&5 printf "%s\n" "$ac_cv_lib_quadmath_sinq" >&6; } if test "x$ac_cv_lib_quadmath_sinq" = xyes then : printf "%s\n" "#define HAVE_LIBQUADMATH 1" >>confdefs.h LIBS="-lquadmath $LIBS" else case e in #( e) as_fn_error $? "quad precision requires libquadmath for quad-precision trigonometric routines" "$LINENO" 5 ;; esac fi LIBQUADMATH=-lquadmath fi ac_fn_c_check_func "$LINENO" "BSDgettimeofday" "ac_cv_func_BSDgettimeofday" if test "x$ac_cv_func_BSDgettimeofday" = xyes then : printf "%s\n" "#define HAVE_BSDGETTIMEOFDAY 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "gettimeofday" "ac_cv_func_gettimeofday" if test "x$ac_cv_func_gettimeofday" = xyes then : printf "%s\n" "#define HAVE_GETTIMEOFDAY 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "gethrtime" "ac_cv_func_gethrtime" if test "x$ac_cv_func_gethrtime" = xyes then : printf "%s\n" "#define HAVE_GETHRTIME 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "read_real_time" "ac_cv_func_read_real_time" if test "x$ac_cv_func_read_real_time" = xyes then : printf "%s\n" "#define HAVE_READ_REAL_TIME 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "time_base_to_time" "ac_cv_func_time_base_to_time" if test "x$ac_cv_func_time_base_to_time" = xyes then : printf "%s\n" "#define HAVE_TIME_BASE_TO_TIME 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "drand48" "ac_cv_func_drand48" if test "x$ac_cv_func_drand48" = xyes then : printf "%s\n" "#define HAVE_DRAND48 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "sqrt" "ac_cv_func_sqrt" if test "x$ac_cv_func_sqrt" = xyes then : printf "%s\n" "#define HAVE_SQRT 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "memset" "ac_cv_func_memset" if test "x$ac_cv_func_memset" = xyes then : printf "%s\n" "#define HAVE_MEMSET 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "posix_memalign" "ac_cv_func_posix_memalign" if test "x$ac_cv_func_posix_memalign" = xyes then : printf "%s\n" "#define HAVE_POSIX_MEMALIGN 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "memalign" "ac_cv_func_memalign" if test "x$ac_cv_func_memalign" = xyes then : printf "%s\n" "#define HAVE_MEMALIGN 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "_mm_malloc" "ac_cv_func__mm_malloc" if test "x$ac_cv_func__mm_malloc" = xyes then : printf "%s\n" "#define HAVE__MM_MALLOC 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "_mm_free" "ac_cv_func__mm_free" if test "x$ac_cv_func__mm_free" = xyes then : printf "%s\n" "#define HAVE__MM_FREE 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "clock_gettime" "ac_cv_func_clock_gettime" if test "x$ac_cv_func_clock_gettime" = xyes then : printf "%s\n" "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "mach_absolute_time" "ac_cv_func_mach_absolute_time" if test "x$ac_cv_func_mach_absolute_time" = xyes then : printf "%s\n" "#define HAVE_MACH_ABSOLUTE_TIME 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "sysctl" "ac_cv_func_sysctl" if test "x$ac_cv_func_sysctl" = xyes then : printf "%s\n" "#define HAVE_SYSCTL 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "abort" "ac_cv_func_abort" if test "x$ac_cv_func_abort" = xyes then : printf "%s\n" "#define HAVE_ABORT 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "sinl" "ac_cv_func_sinl" if test "x$ac_cv_func_sinl" = xyes then : printf "%s\n" "#define HAVE_SINL 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "cosl" "ac_cv_func_cosl" if test "x$ac_cv_func_cosl" = xyes then : printf "%s\n" "#define HAVE_COSL 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf" if test "x$ac_cv_func_snprintf" = xyes then : printf "%s\n" "#define HAVE_SNPRINTF 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "memmove" "ac_cv_func_memmove" if test "x$ac_cv_func_memmove" = xyes then : printf "%s\n" "#define HAVE_MEMMOVE 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "strchr" "ac_cv_func_strchr" if test "x$ac_cv_func_strchr" = xyes then : printf "%s\n" "#define HAVE_STRCHR 1" >>confdefs.h fi ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize" if test "x$ac_cv_func_getpagesize" = xyes then : printf "%s\n" "#define HAVE_GETPAGESIZE 1" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } if test ${ac_cv_c_undeclared_builtin_options+y} then : printf %s "(cached) " >&6 else case e in #( e) ac_save_CFLAGS=$CFLAGS ac_cv_c_undeclared_builtin_options='cannot detect' for ac_arg in '' -fno-builtin; do CFLAGS="$ac_save_CFLAGS $ac_arg" # This test program should *not* compile successfully. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { (void) strchr; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : else case e in #( e) # This test program should compile successfully. # No library function is consistently available on # freestanding implementations, so test against a dummy # declaration. Include always-available headers on the # off chance that they somehow elicit warnings. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include extern void ac_decl (int, char *); int main (void) { (void) ac_decl (0, (char *) 0); (void) ac_decl; ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : if test x"$ac_arg" = x then : ac_cv_c_undeclared_builtin_options='none needed' else case e in #( e) ac_cv_c_undeclared_builtin_options=$ac_arg ;; esac fi break fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done CFLAGS=$ac_save_CFLAGS ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5 printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; } case $ac_cv_c_undeclared_builtin_options in #( 'cannot detect') : { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "cannot make $CC report undeclared builtins See 'config.log' for more details" "$LINENO" 5; } ;; #( 'none needed') : ac_c_undeclared_builtin_options='' ;; #( *) : ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;; esac ac_fn_check_decl "$LINENO" "sinl" "ac_cv_have_decl_sinl" "#include " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_sinl" = xyes then : ac_have_decl=1 else case e in #( e) ac_have_decl=0 ;; esac fi printf "%s\n" "#define HAVE_DECL_SINL $ac_have_decl" >>confdefs.h ac_fn_check_decl "$LINENO" "cosl" "ac_cv_have_decl_cosl" "#include " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_cosl" = xyes then : ac_have_decl=1 else case e in #( e) ac_have_decl=0 ;; esac fi printf "%s\n" "#define HAVE_DECL_COSL $ac_have_decl" >>confdefs.h ac_fn_check_decl "$LINENO" "sinq" "ac_cv_have_decl_sinq" "#include " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_sinq" = xyes then : ac_have_decl=1 else case e in #( e) ac_have_decl=0 ;; esac fi printf "%s\n" "#define HAVE_DECL_SINQ $ac_have_decl" >>confdefs.h ac_fn_check_decl "$LINENO" "cosq" "ac_cv_have_decl_cosq" "#include " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_cosq" = xyes then : ac_have_decl=1 else case e in #( e) ac_have_decl=0 ;; esac fi printf "%s\n" "#define HAVE_DECL_COSQ $ac_have_decl" >>confdefs.h ac_fn_check_decl "$LINENO" "memalign" "ac_cv_have_decl_memalign" " #ifdef HAVE_MALLOC_H #include #endif " "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_memalign" = xyes then : ac_have_decl=1 else case e in #( e) ac_have_decl=0 ;; esac fi printf "%s\n" "#define HAVE_DECL_MEMALIGN $ac_have_decl" >>confdefs.h ac_fn_check_decl "$LINENO" "drand48" "ac_cv_have_decl_drand48" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_drand48" = xyes then : ac_have_decl=1 else case e in #( e) ac_have_decl=0 ;; esac fi printf "%s\n" "#define HAVE_DECL_DRAND48 $ac_have_decl" >>confdefs.h ac_fn_check_decl "$LINENO" "srand48" "ac_cv_have_decl_srand48" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_srand48" = xyes then : ac_have_decl=1 else case e in #( e) ac_have_decl=0 ;; esac fi printf "%s\n" "#define HAVE_DECL_SRAND48 $ac_have_decl" >>confdefs.h ac_fn_check_decl "$LINENO" "posix_memalign" "ac_cv_have_decl_posix_memalign" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" if test "x$ac_cv_have_decl_posix_memalign" = xyes then : ac_have_decl=1 else case e in #( e) ac_have_decl=0 ;; esac fi printf "%s\n" "#define HAVE_DECL_POSIX_MEMALIGN $ac_have_decl" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _rtc intrinsic" >&5 printf %s "checking for _rtc intrinsic... " >&6; } rtc_ok=yes cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef HAVE_INTRINSICS_H #include #endif int main (void) { _rtc() ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : printf "%s\n" "#define HAVE__RTC 1" >>confdefs.h else case e in #( e) rtc_ok=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $rtc_ok" >&5 printf "%s\n" "$rtc_ok" >&6; } if test "$PRECISION" = "l"; then for ac_func in cosl sinl tanl do : as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | sed "$as_sed_sh"` ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" if eval test \"x\$"$as_ac_var"\" = x"yes" then : cat >>confdefs.h <<_ACEOF #define `printf "%s\n" "HAVE_$ac_func" | sed "$as_sed_cpp"` 1 _ACEOF else case e in #( e) as_fn_error $? "long-double precision requires long-double trigonometric routines" "$LINENO" 5 ;; esac fi done fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for isnan" >&5 printf %s "checking for isnan... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main (void) { if (!isnan(3.14159)) isnan(2.7183); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ok=yes else case e in #( e) ok=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext if test "$ok" = "yes"; then printf "%s\n" "#define HAVE_ISNAN 1" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${ok}" >&5 printf "%s\n" "${ok}" >&6; } ax_gcc_aligns_stack=no if test "$GCC" = "yes"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -mpreferred-stack-boundary=4" >&5 printf %s "checking whether C compiler accepts -mpreferred-stack-boundary=4... " >&6; } if test ${ax_cv_check_cflags___mpreferred_stack_boundary_4+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -mpreferred-stack-boundary=4" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___mpreferred_stack_boundary_4=yes else case e in #( e) ax_cv_check_cflags___mpreferred_stack_boundary_4=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___mpreferred_stack_boundary_4" >&5 printf "%s\n" "$ax_cv_check_cflags___mpreferred_stack_boundary_4" >&6; } if test "x$ax_cv_check_cflags___mpreferred_stack_boundary_4" = xyes then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the stack is at least 8-byte aligned by gcc" >&5 printf %s "checking whether the stack is at least 8-byte aligned by gcc... " >&6; } save_CFLAGS="$CFLAGS" CFLAGS="-O" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -malign-double" >&5 printf %s "checking whether C compiler accepts -malign-double... " >&6; } if test ${ax_cv_check_cflags___malign_double+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -malign-double" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : ax_cv_check_cflags___malign_double=yes else case e in #( e) ax_cv_check_cflags___malign_double=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext CFLAGS=$ax_check_save_flags ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___malign_double" >&5 printf "%s\n" "$ax_cv_check_cflags___malign_double" >&6; } if test "x$ax_cv_check_cflags___malign_double" = xyes then : CFLAGS="$CFLAGS -malign-double" else case e in #( e) : ;; esac fi if test "$cross_compiling" = yes then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are using gcc 3.0.0 or later" >&5 printf %s "checking whether we are using gcc 3.0.0 or later... " >&6; } if test ${ax_cv_gcc_3_0_0+y} then : printf %s "(cached) " >&6 else case e in #( e) ax_cv_gcc_3_0_0=no if test "$GCC" = "yes"; then cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __GNUC__ # if (__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) \ || (__GNUC__ == 3 && __GNUC_MINOR__ == 0 && __GNUC_PATCHLEVEL__ >= 0) yes; # endif #endif _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP_TRADITIONAL "yes" >/dev/null 2>&1 then : ax_cv_gcc_3_0_0=yes fi rm -rf conftest* fi ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_3_0_0" >&5 printf "%s\n" "$ax_cv_gcc_3_0_0" >&6; } if test "$ax_cv_gcc_3_0_0" = yes; then ax_gcc_stack_align_bug=no else ax_gcc_stack_align_bug=yes fi else case e in #( e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include # include struct yuck { int blechh; }; int one(void) { return 1; } struct yuck ick(void) { struct yuck y; y.blechh = 3; return y; } # define CHK_ALIGN(x) if ((((long) &(x)) & 0x7)) { fprintf(stderr, "bad alignment of " #x "\n"); exit(1); } void blah(int foo) { double foobar; CHK_ALIGN(foobar); } int main2(void) {double ok1; struct yuck y; double ok2; CHK_ALIGN(ok1); CHK_ALIGN(ok2); y = ick(); blah(one()); return 0;} int main(void) { if ((((long) (__builtin_alloca(0))) & 0x7)) __builtin_alloca(4); return main2(); } _ACEOF if ac_fn_c_try_run "$LINENO" then : ax_gcc_aligns_stack=yes; ax_gcc_stack_align_bug=no else case e in #( e) ax_gcc_stack_align_bug=yes ;; esac fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext ;; esac fi CFLAGS="$save_CFLAGS" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_gcc_aligns_stack" >&5 printf "%s\n" "$ax_gcc_aligns_stack" >&6; } else case e in #( e) : ;; esac fi fi if test "$ax_gcc_aligns_stack" = yes; then : else : fi if test "${enable_debug}" = "yes"; then CFLAGS="-g" fi if test "$enable_debug" = yes || test "$USE_MAINTAINER_MODE" = yes; then if test "x$ac_test_CFLAGS" != "xset" -a "x$ac_test_CFLAGS" != "xy"; then if test $ac_cv_c_compiler_gnu = yes; then CFLAGS="$CFLAGS -Wall -W -Wcast-qual -Wpointer-arith -Wcast-align -pedantic -Wno-long-long -Wshadow -Wbad-function-cast -Wwrite-strings -Wstrict-prototypes -Wredundant-decls -Wnested-externs" # -Wundef -Wconversion -Wmissing-prototypes -Wmissing-declarations fi fi fi if test "$USE_MAINTAINER_MODE" = yes; then # Extract the first word of "indent", so it can be a program name with args. set dummy indent; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_path_INDENT+y} then : printf %s "(cached) " >&6 else case e in #( e) case $INDENT in [\\/]* | ?:[\\/]*) ac_cv_path_INDENT="$INDENT" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_path_INDENT="$as_dir$ac_word$ac_exec_ext" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_INDENT" && ac_cv_path_INDENT="indent" ;; esac ;; esac fi INDENT=$ac_cv_path_INDENT if test -n "$INDENT"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INDENT" >&5 printf "%s\n" "$INDENT" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi # if INDENT is set to 'indent' then we didn't find indent if test "$INDENT" != indent ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $INDENT is GNU indent" >&5 printf %s "checking if $INDENT is GNU indent... " >&6; } if $INDENT --version 2>/dev/null | head -n 1|grep "GNU indent" > /dev/null ; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } INDENT="$INDENT -kr -cs -i5 -l800 -fca -nfc1 -sc -sob -cli4 -TR -Tplanner -TV" else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $INDENT does not appear to be GNU indent." >&5 printf "%s\n" "$as_me: WARNING: $INDENT does not appear to be GNU indent." >&2;} fi else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: no indent program found: codelets will be ugly" >&5 printf "%s\n" "$as_me: WARNING: no indent program found: codelets will be ugly" >&2;} INDENT=cat fi fi # Check whether --enable-fortran was given. if test ${enable_fortran+y} then : enableval=$enable_fortran; enable_fortran=$enableval else case e in #( e) enable_fortran=yes ;; esac fi if test "$enable_fortran" = "yes"; then ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgfortran pgf95 lf95 ftn nagfor do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_F77+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$F77"; then ac_cv_prog_F77="$F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_F77="$ac_tool_prefix$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi F77=$ac_cv_prog_F77 if test -n "$F77"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $F77" >&5 printf "%s\n" "$F77" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$F77" && break done fi if test -z "$F77"; then ac_ct_F77=$F77 for ac_prog in g77 xlf f77 frt pgf77 cf77 fort77 fl32 af77 xlf90 f90 pgf90 pghpf epcf90 gfortran g95 xlf95 f95 fort ifort ifc efc pgfortran pgf95 lf95 ftn nagfor do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_ac_ct_F77+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$ac_ct_F77"; then ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_F77="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi ac_ct_F77=$ac_cv_prog_ac_ct_F77 if test -n "$ac_ct_F77"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_F77" >&5 printf "%s\n" "$ac_ct_F77" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$ac_ct_F77" && break done if test "x$ac_ct_F77" = x; then F77="" else case $cross_compiling:$ac_tool_warned in yes:) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac F77=$ac_ct_F77 fi fi # Provide some information about the compiler. printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Fortran 77 compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" printf "%s\n" "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done rm -f a.out # If we don't use '.F' as extension, the preprocessor is not run on the # input file. (Note that this only needs to work for GNU compilers.) ac_save_ext=$ac_ext ac_ext=F { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU Fortran 77" >&5 printf %s "checking whether the compiler supports GNU Fortran 77... " >&6; } if test ${ac_cv_f77_compiler_gnu+y} then : printf %s "(cached) " >&6 else case e in #( e) cat > conftest.$ac_ext <<_ACEOF program main #ifndef __GNUC__ choke me #endif end _ACEOF if ac_fn_f77_try_compile "$LINENO" then : ac_compiler_gnu=yes else case e in #( e) ac_compiler_gnu=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_f77_compiler_gnu=$ac_compiler_gnu ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_f77_compiler_gnu" >&5 printf "%s\n" "$ac_cv_f77_compiler_gnu" >&6; } ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_ext=$ac_save_ext ac_test_FFLAGS=${FFLAGS+y} ac_save_FFLAGS=$FFLAGS FFLAGS= { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $F77 accepts -g" >&5 printf %s "checking whether $F77 accepts -g... " >&6; } if test ${ac_cv_prog_f77_g+y} then : printf %s "(cached) " >&6 else case e in #( e) FFLAGS=-g cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF if ac_fn_f77_try_compile "$LINENO" then : ac_cv_prog_f77_g=yes else case e in #( e) ac_cv_prog_f77_g=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_f77_g" >&5 printf "%s\n" "$ac_cv_prog_f77_g" >&6; } if test $ac_test_FFLAGS; then FFLAGS=$ac_save_FFLAGS elif test $ac_cv_prog_f77_g = yes; then if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-g -O2" else FFLAGS="-g" fi else if test "x$ac_cv_f77_compiler_gnu" = xyes; then FFLAGS="-O2" else FFLAGS= fi fi if test $ac_compiler_gnu = yes; then G77=yes else G77= 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 ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test -z "$F77" || test no = "$F77"; then _lt_disable_F77=yes fi archive_cmds_need_lc_F77=no allow_undefined_flag_F77= always_export_symbols_F77=no archive_expsym_cmds_F77= export_dynamic_flag_spec_F77= hardcode_direct_F77=no hardcode_direct_absolute_F77=no hardcode_libdir_flag_spec_F77= hardcode_libdir_separator_F77= hardcode_minus_L_F77=no hardcode_automatic_F77=no inherit_rpath_F77=no module_cmds_F77= module_expsym_cmds_F77= link_all_deplibs_F77=unknown old_archive_cmds_F77=$old_archive_cmds reload_flag_F77=$reload_flag reload_cmds_F77=$reload_cmds no_undefined_flag_F77= whole_archive_flag_spec_F77= enable_shared_with_static_runtimes_F77=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o objext_F77=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test yes != "$_lt_disable_F77"; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # 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 echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} CFLAGS=$FFLAGS compiler=$CC compiler_F77=$CC func_cc_basename $compiler cc_basename=$func_cc_basename_result GCC=$G77 if test -n "$compiler"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 printf %s "checking if libtool supports shared libraries... " >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 printf "%s\n" "$can_build_shared" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 printf %s "checking whether to build shared libraries... " >&6; } test no = "$can_build_shared" && 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 yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac fi ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 printf "%s\n" "$enable_shared" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 printf %s "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 printf "%s\n" "$enable_static" >&6; } GCC_F77=$G77 LD_F77=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... lt_prog_compiler_wl_F77= lt_prog_compiler_pic_F77= lt_prog_compiler_static_F77= if test yes = "$GCC"; then lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_static_F77='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' fi lt_prog_compiler_pic_F77='-fPIC' ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic_F77='-fPIC' ;; m68k) # 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_F77='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | windows* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic_F77='-DDLL_EXPORT' case $host_os in os2*) lt_prog_compiler_static_F77='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_F77='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static_F77= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac ;; interix[3-9]*) # 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_F77=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_F77='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_F77=-Kconform_pic fi ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl_F77='-Xlinker ' if test -n "$lt_prog_compiler_pic_F77"; then lt_prog_compiler_pic_F77="-Xcompiler $lt_prog_compiler_pic_F77" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_F77='-Wl,' if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' else lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp' fi ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_F77='-fno-common' case $cc_basename in nagfor*) # NAG Fortran compiler lt_prog_compiler_wl_F77='-Wl,-Wl,,' lt_prog_compiler_pic_F77='-PIC' lt_prog_compiler_static_F77='-Bstatic' ;; esac ;; mingw* | windows* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_F77='-DDLL_EXPORT' case $host_os in os2*) lt_prog_compiler_static_F77='$wl-static' ;; esac ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_F77='-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_F77='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_F77='$wl-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_F77='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_F77='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in # old Intel for x86_64, which still supported -KPIC. ecc*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-static' ;; *flang* | ftn | f18* | f95*) # Flang compiler. lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fPIC' lt_prog_compiler_static_F77='-static' ;; # flang / f18. f95 an alias for gfortran or flang on Debian flang* | f18* | f95*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fPIC' lt_prog_compiler_static_F77='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fPIC' lt_prog_compiler_static_F77='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='--shared' lt_prog_compiler_static_F77='--static' ;; nagfor*) # NAG Fortran compiler lt_prog_compiler_wl_F77='-Wl,-Wl,,' lt_prog_compiler_pic_F77='-PIC' lt_prog_compiler_static_F77='-Bstatic' ;; tcc*) # Fabrice Bellard et al's Tiny C Compiler lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fPIC' lt_prog_compiler_static_F77='-static' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fpic' lt_prog_compiler_static_F77='-Bstatic' ;; ccc*) lt_prog_compiler_wl_F77='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-qpic' lt_prog_compiler_static_F77='-qstaticlink' ;; *) case `$CC -V 2>&1 | $SED 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' lt_prog_compiler_wl_F77='' ;; *Sun\ F* | *Sun*Fortran*) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' lt_prog_compiler_wl_F77='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' lt_prog_compiler_wl_F77='-Wl,' ;; *Intel*\ [CF]*Compiler*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fPIC' lt_prog_compiler_static_F77='-static' ;; *Portland\ Group*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fpic' lt_prog_compiler_static_F77='-Bstatic' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; *-mlibc) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fPIC' lt_prog_compiler_static_F77='-static' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_F77='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_F77='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; rdos*) lt_prog_compiler_static_F77='-non_shared' ;; serenity*) ;; solaris*) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) lt_prog_compiler_wl_F77='-Qoption ld ';; *) lt_prog_compiler_wl_F77='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_F77='-Qoption ld ' lt_prog_compiler_pic_F77='-PIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_F77='-Kconform_pic' lt_prog_compiler_static_F77='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; unicos*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_can_build_shared_F77=no ;; uts4*) lt_prog_compiler_pic_F77='-pic' lt_prog_compiler_static_F77='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_F77=no ;; esac fi case $host_os in # For platforms that do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_F77= ;; *) lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 printf %s "checking for $compiler option to produce PIC... " >&6; } if test ${lt_cv_prog_compiler_pic_F77+y} then : printf %s "(cached) " >&6 else case e in #( e) lt_cv_prog_compiler_pic_F77=$lt_prog_compiler_pic_F77 ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_F77" >&5 printf "%s\n" "$lt_cv_prog_compiler_pic_F77" >&6; } lt_prog_compiler_pic_F77=$lt_cv_prog_compiler_pic_F77 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_F77"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... " >&6; } if test ${lt_cv_prog_compiler_pic_works_F77+y} then : printf %s "(cached) " >&6 else case e in #( e) lt_cv_prog_compiler_pic_works_F77=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_F77" ## exclude from sc_useless_quotes_in_assignment # 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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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_pic_works_F77=yes fi fi $RM conftest* ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_F77" >&5 printf "%s\n" "$lt_cv_prog_compiler_pic_works_F77" >&6; } if test yes = "$lt_cv_prog_compiler_pic_works_F77"; then case $lt_prog_compiler_pic_F77 in "" | " "*) ;; *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;; esac else lt_prog_compiler_pic_F77= lt_prog_compiler_can_build_shared_F77=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test ${lt_cv_prog_compiler_static_works_F77+y} then : printf %s "(cached) " >&6 else case e in #( e) lt_cv_prog_compiler_static_works_F77=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works_F77=yes fi else lt_cv_prog_compiler_static_works_F77=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_F77" >&5 printf "%s\n" "$lt_cv_prog_compiler_static_works_F77" >&6; } if test yes = "$lt_cv_prog_compiler_static_works_F77"; then : else lt_prog_compiler_static_F77= fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test ${lt_cv_prog_compiler_c_o_F77+y} then : printf %s "(cached) " >&6 else case e in #( e) lt_cv_prog_compiler_c_o_F77=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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_F77=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 .. $RM -r conftest $RM conftest* ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_F77" >&5 printf "%s\n" "$lt_cv_prog_compiler_c_o_F77" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if test ${lt_cv_prog_compiler_c_o_F77+y} then : printf %s "(cached) " >&6 else case e in #( e) lt_cv_prog_compiler_c_o_F77=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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_F77=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 .. $RM -r conftest $RM conftest* ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_F77" >&5 printf "%s\n" "$lt_cv_prog_compiler_c_o_F77" >&6; } hard_links=nottested if test no = "$lt_cv_prog_compiler_c_o_F77" && test no != "$need_locks"; then # do not overwrite the value of need_locks provided by the user { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 printf %s "checking if we can lock with hard links... " >&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 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 printf "%s\n" "$hard_links" >&6; } if test no = "$hard_links"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 printf "%s\n" "$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 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 printf %s "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag_F77= always_export_symbols_F77=no archive_cmds_F77= archive_expsym_cmds_F77= compiler_needs_object_F77=no enable_shared_with_static_runtimes_F77=no export_dynamic_flag_spec_F77= export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic_F77=no hardcode_direct_F77=no hardcode_direct_absolute_F77=no hardcode_libdir_flag_spec_F77= hardcode_libdir_separator_F77= hardcode_minus_L_F77=no hardcode_shlibpath_var_F77=unsupported inherit_rpath_F77=no link_all_deplibs_F77=unknown module_cmds_F77= module_expsym_cmds_F77= old_archive_from_new_cmds_F77= old_archive_from_expsyms_cmds_F77= thread_safe_flag_spec_F77= whole_archive_flag_spec_F77= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms_F77= # 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_F77='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | windows* | pw32* | cegcc*) # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++ or Intel C++ Compiler. if test yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC) with_gnu_ld=yes ;; linux* | k*bsd*-gnu | gnu*) link_all_deplibs_F77=no ;; esac ld_shlibs_F77=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test yes = "$with_gnu_ld"; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; *\ \(GNU\ Binutils\)\ [3-9]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test yes = "$lt_use_gnu_ld_interface"; 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_F77='$wl-rpath $wl$libdir' export_dynamic_flag_spec_F77='$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_F77=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else whole_archive_flag_spec_F77= fi supports_anon_versioning=no case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [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 aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test ia64 != "$host_cpu"; then ld_shlibs_F77=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, 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 install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds_F77='' ;; m68k) archive_cmds_F77='$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_F77='-L$libdir' hardcode_minus_L_F77=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_F77=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_F77='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else ld_shlibs_F77=no fi ;; cygwin* | mingw* | windows* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, F77) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_F77='-L$libdir' export_dynamic_flag_spec_F77='$wl--export-all-symbols' allow_undefined_flag_F77=unsupported always_export_symbols_F77=no enable_shared_with_static_runtimes_F77=yes export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms_F77='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' file_list_spec_F77='@' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file, use it as # is; otherwise, prepend EXPORTS... archive_expsym_cmds_F77='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; 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_F77=no fi ;; haiku*) archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' link_all_deplibs_F77=no ;; os2*) hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes allow_undefined_flag_F77=unsupported shrext_cmds=.dll archive_cmds_F77='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' archive_expsym_cmds_F77='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' old_archive_from_new_cmds_F77='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes_F77=yes file_list_spec_F77='@' ;; interix[3-9]*) hardcode_direct_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='$wl-rpath,$libdir' export_dynamic_flag_spec_F77='$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_F77='$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_F77='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test linux-dietlibc = "$host_os"; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test no = "$tmp_diet" then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec_F77='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers whole_archive_flag_spec_F77='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$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' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec_F77= tmp_sharedflag='--shared' ;; nagfor*) # NAGFOR 5.3 tmp_sharedflag='-Wl,-shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 whole_archive_flag_spec_F77='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object_F77=yes ;; esac case `$CC -V 2>&1 | $SED 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec_F77='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object_F77=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds_F77='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then archive_expsym_cmds_F77='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi case $cc_basename in tcc*) hardcode_libdir_flag_spec_F77='$wl-rpath $wl$libdir' export_dynamic_flag_spec_F77='-rdynamic' ;; xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec_F77='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec_F77='$wl-rpath $wl$libdir' archive_cmds_F77='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test yes = "$supports_anon_versioning"; then archive_expsym_cmds_F77='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs_F77=no fi ;; *-mlibc) archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $pic_flag $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_F77=no cat <<_LT_EOF 1>&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. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs_F77=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot *** 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 ;; *) # 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. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec_F77='$wl-rpath $wl$libdir' archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac ;; sunos4*) archive_cmds_F77='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs_F77=no fi ;; esac if test no = "$ld_shlibs_F77"; then runpath_var= hardcode_libdir_flag_spec_F77= export_dynamic_flag_spec_F77= whole_archive_flag_spec_F77= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag_F77=unsupported always_export_symbols_F77=yes archive_expsym_cmds_F77='$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_F77=yes if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct_F77=unsupported fi ;; aix[4-9]*) if test ia64 = "$host_cpu"; 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 GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds_F77='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_F77='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | 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 # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then aix_use_runtimelinking=yes break fi done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; 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_F77='' hardcode_direct_F77=yes hardcode_direct_absolute_F77=yes hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes file_list_spec_F77='$wl-f,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # traditional, no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. hardcode_direct_F77=no hardcode_direct_absolute_F77=no ;; esac if test yes = "$GCC"; 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 : else # We have old collect2 hardcode_direct_F77=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_F77=yes hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_libdir_separator_F77= fi ;; esac shared_flag='-shared' if test yes = "$aix_use_runtimelinking"; then shared_flag="$shared_flag "'$wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; 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 yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' fi fi export_dynamic_flag_spec_F77='$wl-bexpall' # 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_F77=yes if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag_F77='-berok' # Determine the default libpath from the value encoded in an # empty executable. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if test ${lt_cv_aix_libpath__F77+y} then : printf %s "(cached) " >&6 else case e in #( e) cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF if ac_fn_f77_try_link "$LINENO" then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath__F77=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath__F77"; then lt_cv_aix_libpath__F77=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath__F77"; then lt_cv_aix_libpath__F77=/usr/lib:/lib fi ;; esac fi aix_libpath=$lt_cv_aix_libpath__F77 fi hardcode_libdir_flag_spec_F77='$wl-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_F77='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; then hardcode_libdir_flag_spec_F77='$wl-R $libdir:/usr/lib:/lib' allow_undefined_flag_F77="-z nodefs" archive_expsym_cmds_F77="\$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. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if test ${lt_cv_aix_libpath__F77+y} then : printf %s "(cached) " >&6 else case e in #( e) cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF if ac_fn_f77_try_link "$LINENO" then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath__F77=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath__F77"; then lt_cv_aix_libpath__F77=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath__F77"; then lt_cv_aix_libpath__F77=/usr/lib:/lib fi ;; esac fi aix_libpath=$lt_cv_aix_libpath__F77 fi hardcode_libdir_flag_spec_F77='$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_F77=' $wl-bernotok' allow_undefined_flag_F77=' $wl-berok' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec_F77='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_F77='$convenience' fi archive_cmds_need_lc_F77=yes archive_expsym_cmds_F77='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds_F77="$archive_expsym_cmds_F77"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then archive_expsym_cmds_F77="$archive_expsym_cmds_F77"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols archive_expsym_cmds_F77="$archive_expsym_cmds_F77"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi archive_expsym_cmds_F77="$archive_expsym_cmds_F77"'~$RM -r $output_objdir/$realname.d' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds_F77='' ;; m68k) archive_cmds_F77='$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_F77='-L$libdir' hardcode_minus_L_F77=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec_F77=-rdynamic ;; cygwin* | mingw* | windows* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++ or Intel C++ Compiler. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl* | icl*) # Native MSVC or ICC hardcode_libdir_flag_spec_F77=' ' allow_undefined_flag_F77=unsupported always_export_symbols_F77=yes file_list_spec_F77='@' # 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_F77='$CC -Fe$output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' archive_expsym_cmds_F77='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -Fe$tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, F77)='true' enable_shared_with_static_runtimes_F77=yes exclude_expsyms_F77='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib old_postinstall_cmds_F77='chmod 644 $oldlib' postlink_cmds_F77='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC and ICC wrapper hardcode_libdir_flag_spec_F77=' ' allow_undefined_flag_F77=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_F77='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds_F77='true' # FIXME: Should let the user specify the lib program. old_archive_cmds_F77='lib -OUT:$oldlib$oldobjs$old_deplibs' enable_shared_with_static_runtimes_F77=yes ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc_F77=no hardcode_direct_F77=no hardcode_automatic_F77=yes hardcode_shlibpath_var_F77=unsupported if test yes = "$lt_cv_ld_force_load"; then whole_archive_flag_spec_F77='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' compiler_needs_object_F77=yes else whole_archive_flag_spec_F77='' fi link_all_deplibs_F77=yes allow_undefined_flag_F77=$_lt_dar_allow_undefined case $cc_basename in ifort*|nagfor*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test yes = "$_lt_dar_can_shared"; then output_verbose_link_cmd=func_echo_all archive_cmds_F77="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" module_cmds_F77="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" archive_expsym_cmds_F77="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" module_expsym_cmds_F77="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" else ld_shlibs_F77=no fi ;; dgux*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=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_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly* | midnightbsd*) archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; hpux9*) if test yes = "$GCC"; then archive_cmds_F77='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else archive_cmds_F77='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec_F77='$wl+b $wl$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes export_dynamic_flag_spec_F77='$wl-E' ;; hpux10*) if test yes,no = "$GCC,$with_gnu_ld"; then archive_cmds_F77='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test no = "$with_gnu_ld"; then hardcode_libdir_flag_spec_F77='$wl+b $wl$libdir' hardcode_libdir_separator_F77=: hardcode_direct_F77=yes hardcode_direct_absolute_F77=yes export_dynamic_flag_spec_F77='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes fi ;; hpux11*) if test yes,no = "$GCC,$with_gnu_ld"; then case $host_cpu in hppa*64*) archive_cmds_F77='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -shared $pic_flag $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_F77='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds_F77='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_F77='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac fi if test no = "$with_gnu_ld"; then hardcode_libdir_flag_spec_F77='$wl+b $wl$libdir' hardcode_libdir_separator_F77=: case $host_cpu in hppa*64*|ia64*) hardcode_direct_F77=no hardcode_shlibpath_var_F77=no ;; *) hardcode_direct_F77=yes hardcode_direct_absolute_F77=yes export_dynamic_flag_spec_F77='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L_F77=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test yes = "$GCC"; then archive_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 printf %s "checking whether the $host_os linker accepts -exported_symbol... " >&6; } if test ${lt_cv_irix_exported_symbol+y} then : printf %s "(cached) " >&6 else case e in #( e) save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" cat > conftest.$ac_ext <<_ACEOF subroutine foo end _ACEOF if ac_fn_f77_try_link "$LINENO" then : lt_cv_irix_exported_symbol=yes else case e in #( e) lt_cv_irix_exported_symbol=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; } if test yes = "$lt_cv_irix_exported_symbol"; then archive_expsym_cmds_F77='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi link_all_deplibs_F77=no else archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc_F77='no' hardcode_libdir_flag_spec_F77='$wl-rpath $wl$libdir' hardcode_libdir_separator_F77=: inherit_rpath_F77=yes link_all_deplibs_F77=yes ;; linux*) case $cc_basename in tcc*) # Fabrice Bellard et al's Tiny C Compiler ld_shlibs_F77=yes archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='$wl-rpath $wl$libdir' ;; esac ;; *-mlibc) ;; netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds_F77='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no ;; newsos6) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes hardcode_libdir_flag_spec_F77='$wl-rpath $wl$libdir' hardcode_libdir_separator_F77=: hardcode_shlibpath_var_F77=no ;; *nto* | *qnx*) ;; openbsd*) if test -f /usr/libexec/ld.so; then hardcode_direct_F77=yes hardcode_shlibpath_var_F77=no hardcode_direct_absolute_F77=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec_F77='$wl-rpath,$libdir' export_dynamic_flag_spec_F77='$wl-E' else archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec_F77='$wl-rpath,$libdir' fi else ld_shlibs_F77=no fi ;; os2*) hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_minus_L_F77=yes allow_undefined_flag_F77=unsupported shrext_cmds=.dll archive_cmds_F77='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' archive_expsym_cmds_F77='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' old_archive_from_new_cmds_F77='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes_F77=yes file_list_spec_F77='@' ;; osf3*) if test yes = "$GCC"; then allow_undefined_flag_F77=' $wl-expect_unresolved $wl\*' archive_cmds_F77='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' fi archive_cmds_need_lc_F77='no' hardcode_libdir_flag_spec_F77='$wl-rpath $wl$libdir' hardcode_libdir_separator_F77=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test yes = "$GCC"; then allow_undefined_flag_F77=' $wl-expect_unresolved $wl\*' archive_cmds_F77='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' hardcode_libdir_flag_spec_F77='$wl-rpath $wl$libdir' else allow_undefined_flag_F77=' -expect_unresolved \*' archive_cmds_F77='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds_F77='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_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_F77='-rpath $libdir' fi archive_cmds_need_lc_F77='no' hardcode_libdir_separator_F77=: ;; serenity*) ;; solaris*) no_undefined_flag_F77=' -z defs' if test yes = "$GCC"; then wlarc='$wl' archive_cmds_F77='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds_F77='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds_F77='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' ;; *) wlarc='$wl' archive_cmds_F77='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec_F77='-R$libdir' hardcode_shlibpath_var_F77=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands '-z linker_flag'. GCC discards it without '$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test yes = "$GCC"; then whole_archive_flag_spec_F77='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' else whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs_F77=yes ;; sunos4*) if test sequent = "$host_vendor"; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds_F77='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_direct_F77=yes hardcode_minus_L_F77=yes hardcode_shlibpath_var_F77=no ;; sysv4) case $host_vendor in sni) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds_F77='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds_F77='$CC -r -o $output$reload_objs' hardcode_direct_F77=no ;; motorola) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct_F77=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var_F77=no ;; sysv4.3*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no export_dynamic_flag_spec_F77='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var_F77=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs_F77=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_F77='$wl-z,text' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then archive_cmds_F77='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We CANNOT 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_F77='$wl-z,text' allow_undefined_flag_F77='$wl-z,nodefs' archive_cmds_need_lc_F77=no hardcode_shlibpath_var_F77=no hardcode_libdir_flag_spec_F77='$wl-R,$libdir' hardcode_libdir_separator_F77=':' link_all_deplibs_F77=yes export_dynamic_flag_spec_F77='$wl-Bexport' runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then archive_cmds_F77='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds_F77='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_F77='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds_F77='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec_F77='-L$libdir' hardcode_shlibpath_var_F77=no ;; *) ld_shlibs_F77=no ;; esac if test sni = "$host_vendor"; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec_F77='$wl-Blargedynsym' ;; esac fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_F77" >&5 printf "%s\n" "$ld_shlibs_F77" >&6; } test no = "$ld_shlibs_F77" && can_build_shared=no with_gnu_ld_F77=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_F77" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_F77=yes if test yes,yes = "$GCC,$enable_shared"; then case $archive_cmds_F77 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. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 printf %s "checking whether -lc should be explicitly linked in... " >&6; } if test ${lt_cv_archive_cmds_need_lc_F77+y} then : printf %s "(cached) " >&6 else case e in #( e) $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_F77 pic_flag=$lt_prog_compiler_pic_F77 compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_F77 allow_undefined_flag_F77= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_F77 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds_F77 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc_F77=no else lt_cv_archive_cmds_need_lc_F77=yes fi allow_undefined_flag_F77=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_F77" >&5 printf "%s\n" "$lt_cv_archive_cmds_need_lc_F77" >&6; } archive_cmds_need_lc_F77=$lt_cv_archive_cmds_need_lc_F77 ;; esac fi ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 printf %s "checking dynamic linker characteristics... " >&6; } 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" 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 # correct to gnu/linux during the next big refactor 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' ;; aix[4-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test ia64 = "$host_cpu"; 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 # Using Import Files as archive members, it is possible to support # filename-based versioning of shared library archives on AIX. While # this would work for both with and without runtime linking, it will # prevent static linking of such archives. So we do filename-based # shared library versioning with .so extension only, which is used # when both runtime linking and shared linking is enabled. # Unfortunately, runtime linking may impact performance, so we do # not want this to be the default eventually. Also, we use the # versioned .so libs for executables only if there is the -brtl # linker flag in LDFLAGS as well, or --enable-aix-soname=svr4 only. # To allow for filename-based versioning support, we need to create # libNAME.so.V as an archive file, containing: # *) an Import File, referring to the versioned filename of the # archive as well as the shared archive member, telling the # bitwidth (32 or 64) of that shared object, and providing the # list of exported symbols of that shared object, eventually # decorated with the 'weak' keyword # *) the shared object with the F_LOADONLY flag set, to really avoid # it being seen by the linker. # At run time we better use the real file rather than another symlink, # but for link time we create the symlink libNAME.so -> libNAME.so.V case $with_aix_soname,$aix_use_runtimelinking in # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. aix,yes) # traditional libtool dynamic_linker='AIX unversionable lib.so' # 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' ;; aix,no) # traditional AIX only dynamic_linker='AIX lib.a(lib.so.V)' # 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' ;; svr4,*) # full svr4 only dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,yes) # both, prefer svr4 dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # unpreferred sharedlib libNAME.a needs extra handling postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,no) # both, prefer aix dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' ;; esac shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; m68k) 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=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $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' ;; esac ;; beos*) library_names_spec='$libname$shared_ext' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux # correct to gnu/linux during the next big refactor 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* | windows* | pw32* | cegcc*) version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds # If user builds GCC with multilib enabled, # it should just install on $(libdir) # not on $(libdir)/../bin or 32 bits dlls would override 64 bit ones. if test xyes = x"$multilib"; then postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ $install_prog $dir/$dlname $destdir/$dlname~ chmod a+x $destdir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib $destdir/$dlname'\'' || exit \$?; fi' else 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~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' fi 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' ;; mingw* | windows* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; 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 dynamic_linker='Win32 ld.exe' ;; *,cl* | *,icl*) # Native MSVC or ICC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' case $build_os in mingw* | windows*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec=$LIB if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. 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 # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # 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' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC and ICC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # 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$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`' sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor 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 ;; freebsd* | dragonfly* | midnightbsd*) # 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[23].*) 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$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' need_version=yes ;; esac case $host_cpu in powerpc64) # On FreeBSD bi-arch platforms, a different variable is used for 32-bit # binaries. See . cat > conftest.$ac_ext <<_ACEOF int test_pointer_size[sizeof (void *) - 5]; _ACEOF if ac_fn_f77_try_compile "$LINENO" then : shlibpath_var=LD_LIBRARY_PATH else case e in #( e) shlibpath_var=LD_32_LIBRARY_PATH ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; *) shlibpath_var=LD_LIBRARY_PATH ;; esac 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 ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" 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=LIBRARY_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec='/boot/system/non-packaged/develop/lib /boot/system/develop/lib' sys_lib_dlsearch_path_spec='/boot/home/config/non-packaged/lib /boot/home/config/lib /boot/system/non-packaged/lib /boot/system/lib' hardcode_into_libs=no ;; 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 32 = "$HPUX_IA64_MODE"; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" sys_lib_dlsearch_path_spec=/usr/lib/hpux32 else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" sys_lib_dlsearch_path_spec=/usr/lib/hpux64 fi ;; 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' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor 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 yes = "$lt_cv_prog_gnu_ld"; then version_type=linux # correct to gnu/linux during the next big refactor 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 ;; linux*android*) version_type=none # Android doesn't support versioned libraries. need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext $libname$shared_ext' soname_spec='$libname$release$shared_ext' finish_cmds= shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # 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 dynamic_linker='Android linker' # -rpath works at least for libraries that are not overridden by # libraries installed in system locations. hardcode_libdir_flag_spec_F77='$wl-rpath $wl$libdir' ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor 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 # Some binutils ld are patched to set DT_RUNPATH if test ${lt_cv_shlibpath_overrides_runpath+y} then : printf %s "(cached) " >&6 else case e in #( e) lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_F77\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_F77\"" cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF if ac_fn_f77_try_link "$LINENO" then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir ;; esac fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # 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 # Ideally, we could use ldconfig to report *all* directories which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, # even though it is searched at run-time. Try to do the best guess by # appending ld.so.conf contents (and includes) to the search path. if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;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' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsdelf*-gnu) version_type=linux need_lib_prefix=no need_version=no library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='NetBSD ld.elf_so' ;; netbsd*) version_type=sunos need_lib_prefix=no 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 ;; *-mlibc) version_type=linux # correct to gnu/linux during the next big refactor 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='mlibc ld.so' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor 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=qnx 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='ldqnx.so' ;; openbsd*) version_type=sunos sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then need_version=no else need_version=yes fi 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 shlibpath_overrides_runpath=yes ;; os2*) libname_spec='$name' version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no # OS/2 can only load a DLL with a base name of 8 characters or less. soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; v=$($ECHO $release$versuffix | tr -d .-); n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); $ECHO $n$v`$shared_ext' library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' shlibpath_var=BEGINLIBPATH sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec 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~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' ;; 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 ;; rdos*) dynamic_linker=no ;; serenity*) version_type=linux # correct to gnu/linux during the next big refactor 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 dynamic_linker='SerenityOS LibELF' ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor 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 yes = "$with_gnu_ld"; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor 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 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 # correct to gnu/linux during the next big refactor 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=sco 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 shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test yes = "$with_gnu_ld"; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' 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' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor 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 ;; emscripten*) version_type=none need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext' soname_spec='$libname$release$shared_ext' finish_cmds= dynamic_linker="Emscripten linker" lt_prog_compiler_wl_F77= lt_prog_compiler_pic_F77= lt_prog_compiler_static_F77= if test yes = "$GCC"; then lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_static_F77='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' fi lt_prog_compiler_pic_F77='-fPIC' ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic_F77='-fPIC' ;; m68k) # 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_F77='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | windows* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic_F77='-DDLL_EXPORT' case $host_os in os2*) lt_prog_compiler_static_F77='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_F77='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static_F77= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac ;; interix[3-9]*) # 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_F77=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_F77='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_F77=-Kconform_pic fi ;; *) lt_prog_compiler_pic_F77='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl_F77='-Xlinker ' if test -n "$lt_prog_compiler_pic_F77"; then lt_prog_compiler_pic_F77="-Xcompiler $lt_prog_compiler_pic_F77" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl_F77='-Wl,' if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_F77='-Bstatic' else lt_prog_compiler_static_F77='-bnso -bI:/lib/syscalls.exp' fi ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_F77='-fno-common' case $cc_basename in nagfor*) # NAG Fortran compiler lt_prog_compiler_wl_F77='-Wl,-Wl,,' lt_prog_compiler_pic_F77='-PIC' lt_prog_compiler_static_F77='-Bstatic' ;; esac ;; mingw* | windows* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_F77='-DDLL_EXPORT' case $host_os in os2*) lt_prog_compiler_static_F77='$wl-static' ;; esac ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl_F77='-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_F77='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static_F77='$wl-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl_F77='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static_F77='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in # old Intel for x86_64, which still supported -KPIC. ecc*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-static' ;; *flang* | ftn | f18* | f95*) # Flang compiler. lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fPIC' lt_prog_compiler_static_F77='-static' ;; # flang / f18. f95 an alias for gfortran or flang on Debian flang* | f18* | f95*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fPIC' lt_prog_compiler_static_F77='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fPIC' lt_prog_compiler_static_F77='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='--shared' lt_prog_compiler_static_F77='--static' ;; nagfor*) # NAG Fortran compiler lt_prog_compiler_wl_F77='-Wl,-Wl,,' lt_prog_compiler_pic_F77='-PIC' lt_prog_compiler_static_F77='-Bstatic' ;; tcc*) # Fabrice Bellard et al's Tiny C Compiler lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fPIC' lt_prog_compiler_static_F77='-static' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fpic' lt_prog_compiler_static_F77='-Bstatic' ;; ccc*) lt_prog_compiler_wl_F77='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-qpic' lt_prog_compiler_static_F77='-qstaticlink' ;; *) case `$CC -V 2>&1 | $SED 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' lt_prog_compiler_wl_F77='' ;; *Sun\ F* | *Sun*Fortran*) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' lt_prog_compiler_wl_F77='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' lt_prog_compiler_wl_F77='-Wl,' ;; *Intel*\ [CF]*Compiler*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fPIC' lt_prog_compiler_static_F77='-static' ;; *Portland\ Group*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fpic' lt_prog_compiler_static_F77='-Bstatic' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; *-mlibc) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-fPIC' lt_prog_compiler_static_F77='-static' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_F77='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl_F77='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static_F77='-non_shared' ;; rdos*) lt_prog_compiler_static_F77='-non_shared' ;; serenity*) ;; solaris*) lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) lt_prog_compiler_wl_F77='-Qoption ld ';; *) lt_prog_compiler_wl_F77='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl_F77='-Qoption ld ' lt_prog_compiler_pic_F77='-PIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_F77='-Kconform_pic' lt_prog_compiler_static_F77='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_pic_F77='-KPIC' lt_prog_compiler_static_F77='-Bstatic' ;; unicos*) lt_prog_compiler_wl_F77='-Wl,' lt_prog_compiler_can_build_shared_F77=no ;; uts4*) lt_prog_compiler_pic_F77='-pic' lt_prog_compiler_static_F77='-Bstatic' ;; *) lt_prog_compiler_can_build_shared_F77=no ;; esac fi case $host_os in # For platforms that do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_F77= ;; *) lt_prog_compiler_pic_F77="$lt_prog_compiler_pic_F77" ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 printf %s "checking for $compiler option to produce PIC... " >&6; } if test ${lt_cv_prog_compiler_pic_F77+y} then : printf %s "(cached) " >&6 else case e in #( e) lt_cv_prog_compiler_pic_F77=$lt_prog_compiler_pic_F77 ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_F77" >&5 printf "%s\n" "$lt_cv_prog_compiler_pic_F77" >&6; } lt_prog_compiler_pic_F77=$lt_cv_prog_compiler_pic_F77 # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_F77"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... " >&6; } if test ${lt_cv_prog_compiler_pic_works_F77+y} then : printf %s "(cached) " >&6 else case e in #( e) lt_cv_prog_compiler_pic_works_F77=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_F77" ## exclude from sc_useless_quotes_in_assignment # 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:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $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 "$_lt_compiler_boilerplate" | $SED '/^$/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_pic_works_F77=yes fi fi $RM conftest* ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_F77" >&5 printf "%s\n" "$lt_cv_prog_compiler_pic_works_F77" >&6; } if test yes = "$lt_cv_prog_compiler_pic_works_F77"; then case $lt_prog_compiler_pic_F77 in "" | " "*) ;; *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;; esac else lt_prog_compiler_pic_F77= lt_prog_compiler_can_build_shared_F77=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if test ${lt_cv_prog_compiler_static_works_F77+y} then : printf %s "(cached) " >&6 else case e in #( e) lt_cv_prog_compiler_static_works_F77=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works_F77=yes fi else lt_cv_prog_compiler_static_works_F77=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_F77" >&5 printf "%s\n" "$lt_cv_prog_compiler_static_works_F77" >&6; } if test yes = "$lt_cv_prog_compiler_static_works_F77"; then : else lt_prog_compiler_static_F77= fi ='-fPIC' archive_cmds_F77='$CC -sSIDE_MODULE=2 -shared $libobjs $deplibs $compiler_flags -o $lib' archive_expsym_cmds_F77='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -sSIDE_MODULE=2 -shared $libobjs $deplibs $compiler_flags -o $lib -s EXPORTED_FUNCTIONS=@$output_objdir/$soname.expsym' archive_cmds_need_lc_F77=no no_undefined_flag_F77= ;; *) dynamic_linker=no ;; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 printf "%s\n" "$dynamic_linker" >&6; } test no = "$dynamic_linker" && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test yes = "$GCC"; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec fi if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec fi # remember unaugmented sys_lib_dlsearch_path content for libtool script decls... configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec # ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" # to be used as default LT_SYS_LIBRARY_PATH value in generated libtool configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 printf %s "checking how to hardcode library paths into programs... " >&6; } hardcode_action_F77= if test -n "$hardcode_libdir_flag_spec_F77" || test -n "$runpath_var_F77" || test yes = "$hardcode_automatic_F77"; then # We can hardcode non-existent directories. if test no != "$hardcode_direct_F77" && # 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 no != "$_LT_TAGVAR(hardcode_shlibpath_var, F77)" && test no != "$hardcode_minus_L_F77"; then # Linking always hardcodes the temporary library directory. hardcode_action_F77=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_F77=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_F77=unsupported fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_F77" >&5 printf "%s\n" "$hardcode_action_F77" >&6; } if test relink = "$hardcode_action_F77" || test yes = "$inherit_rpath_F77"; then # Fast installation is not supported enable_fast_install=no elif test yes = "$shlibpath_overrides_runpath" || test no = "$enable_shared"; then # Fast installation is not necessary enable_fast_install=needless fi fi # test -n "$compiler" GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS fi # test yes != "$_lt_disable_F77" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -z "$F77"; then enable_fortran=no { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: *** Couldn't find f77 compiler; using default Fortran wrappers." >&5 printf "%s\n" "$as_me: WARNING: *** Couldn't find f77 compiler; using default Fortran wrappers." >&2;} else ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to get verbose linking output from $F77" >&5 printf %s "checking how to get verbose linking output from $F77... " >&6; } if test ${ac_cv_prog_f77_v+y} then : printf %s "(cached) " >&6 else case e in #( e) cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF if ac_fn_f77_try_compile "$LINENO" then : ac_cv_prog_f77_v= # Try some options frequently used verbose output for ac_verb in -v -verbose --verbose -V -\#\#\#; do cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF # Compile and link our simple test program by passing a flag (argument # 1 to this macro) to the Fortran compiler in order to get # "verbose" output that we can then parse for the Fortran linker # flags. ac_save_FFLAGS=$FFLAGS FFLAGS="$FFLAGS $ac_verb" eval "set x $ac_link" shift printf "%s\n" "$as_me:${as_lineno-$LINENO}: $*" >&5 # gfortran 4.3 outputs lines setting COLLECT_GCC_OPTIONS, COMPILER_PATH, # LIBRARY_PATH; skip all such settings. ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | sed '/^Driving:/d; /^Configured with:/d; '"/^[_$as_cr_Letters][_$as_cr_alnum]*=/d"` printf "%s\n" "$ac_f77_v_output" >&5 FFLAGS=$ac_save_FFLAGS rm -rf conftest* # On HP/UX there is a line like: "LPATH is: /foo:/bar:/baz" where # /foo, /bar, and /baz are search directories for the Fortran linker. # Here, we change these into -L/foo -L/bar -L/baz (and put it first): ac_f77_v_output="`echo $ac_f77_v_output | grep 'LPATH is:' | sed 's|.*LPATH is\(: *[^ ]*\).*|\1|;s|: */| -L/|g'` $ac_f77_v_output" # FIXME: we keep getting bitten by quoted arguments; a more general fix # that detects unbalanced quotes in FLIBS should be implemented # and (ugh) tested at some point. case $ac_f77_v_output in # With xlf replace commas with spaces, # and remove "-link" and closing parenthesis. *xlfentry*) ac_f77_v_output=`echo $ac_f77_v_output | sed ' s/,/ /g s/ -link / /g s/) *$// ' ` ;; # With Intel ifc, ignore the quoted -mGLOB_options_string stuff (quoted # $LIBS confuse us, and the libraries appear later in the output anyway). *mGLOB_options_string*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/"-mGLOB[^"]*"/ /g'` ;; # Portland Group compiler has singly- or doubly-quoted -cmdline argument # Singly-quoted arguments were reported for versions 5.2-4 and 6.0-4. # Doubly-quoted arguments were reported for "PGF90/x86 Linux/x86 5.0-2". *-cmdline\ * | *-ignore\ * | *-def\ *) ac_f77_v_output=`echo $ac_f77_v_output | sed "\ s/-cmdline *'[^']*'/ /g; s/-cmdline *\"[^\"]*\"/ /g s/-ignore *'[^']*'/ /g; s/-ignore *\"[^\"]*\"/ /g s/-def *'[^']*'/ /g; s/-def *\"[^\"]*\"/ /g"` ;; # If we are using fort77 (the f2c wrapper) then filter output and delete quotes. *fort77*f2c*gcc*) ac_f77_v_output=`echo "$ac_f77_v_output" | sed -n ' /:[ ]\+Running[ ]\{1,\}"gcc"/{ /"-c"/d /[.]c"*/d s/^.*"gcc"/"gcc"/ s/"//gp }'` ;; # If we are using Cray Fortran then delete quotes. *cft90*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/"//g'` ;; esac # look for -l* and *.a constructs in the output for ac_arg in $ac_f77_v_output; do case $ac_arg in [\\/]*.a | ?:[\\/]*.a | -[lLRu]*) ac_cv_prog_f77_v=$ac_verb break 2 ;; esac done done if test -z "$ac_cv_prog_f77_v"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cannot determine how to obtain linking information from $F77" >&5 printf "%s\n" "$as_me: WARNING: cannot determine how to obtain linking information from $F77" >&2;} fi else case e in #( e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: compilation failed" >&5 printf "%s\n" "$as_me: WARNING: compilation failed" >&2;} ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_f77_v" >&5 printf "%s\n" "$ac_cv_prog_f77_v" >&6; } { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Fortran 77 libraries of $F77" >&5 printf %s "checking for Fortran 77 libraries of $F77... " >&6; } if test ${ac_cv_f77_libs+y} then : printf %s "(cached) " >&6 else case e in #( e) if test "x$FLIBS" != "x"; then ac_cv_f77_libs="$FLIBS" # Let the user override the test. else cat > conftest.$ac_ext <<_ACEOF program main end _ACEOF # Compile and link our simple test program by passing a flag (argument # 1 to this macro) to the Fortran compiler in order to get # "verbose" output that we can then parse for the Fortran linker # flags. ac_save_FFLAGS=$FFLAGS FFLAGS="$FFLAGS $ac_cv_prog_f77_v" eval "set x $ac_link" shift printf "%s\n" "$as_me:${as_lineno-$LINENO}: $*" >&5 # gfortran 4.3 outputs lines setting COLLECT_GCC_OPTIONS, COMPILER_PATH, # LIBRARY_PATH; skip all such settings. ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | sed '/^Driving:/d; /^Configured with:/d; '"/^[_$as_cr_Letters][_$as_cr_alnum]*=/d"` printf "%s\n" "$ac_f77_v_output" >&5 FFLAGS=$ac_save_FFLAGS rm -rf conftest* # On HP/UX there is a line like: "LPATH is: /foo:/bar:/baz" where # /foo, /bar, and /baz are search directories for the Fortran linker. # Here, we change these into -L/foo -L/bar -L/baz (and put it first): ac_f77_v_output="`echo $ac_f77_v_output | grep 'LPATH is:' | sed 's|.*LPATH is\(: *[^ ]*\).*|\1|;s|: */| -L/|g'` $ac_f77_v_output" # FIXME: we keep getting bitten by quoted arguments; a more general fix # that detects unbalanced quotes in FLIBS should be implemented # and (ugh) tested at some point. case $ac_f77_v_output in # With xlf replace commas with spaces, # and remove "-link" and closing parenthesis. *xlfentry*) ac_f77_v_output=`echo $ac_f77_v_output | sed ' s/,/ /g s/ -link / /g s/) *$// ' ` ;; # With Intel ifc, ignore the quoted -mGLOB_options_string stuff (quoted # $LIBS confuse us, and the libraries appear later in the output anyway). *mGLOB_options_string*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/"-mGLOB[^"]*"/ /g'` ;; # Portland Group compiler has singly- or doubly-quoted -cmdline argument # Singly-quoted arguments were reported for versions 5.2-4 and 6.0-4. # Doubly-quoted arguments were reported for "PGF90/x86 Linux/x86 5.0-2". *-cmdline\ * | *-ignore\ * | *-def\ *) ac_f77_v_output=`echo $ac_f77_v_output | sed "\ s/-cmdline *'[^']*'/ /g; s/-cmdline *\"[^\"]*\"/ /g s/-ignore *'[^']*'/ /g; s/-ignore *\"[^\"]*\"/ /g s/-def *'[^']*'/ /g; s/-def *\"[^\"]*\"/ /g"` ;; # If we are using fort77 (the f2c wrapper) then filter output and delete quotes. *fort77*f2c*gcc*) ac_f77_v_output=`echo "$ac_f77_v_output" | sed -n ' /:[ ]\+Running[ ]\{1,\}"gcc"/{ /"-c"/d /[.]c"*/d s/^.*"gcc"/"gcc"/ s/"//gp }'` ;; # If we are using Cray Fortran then delete quotes. *cft90*) ac_f77_v_output=`echo $ac_f77_v_output | sed 's/"//g'` ;; esac ac_cv_f77_libs= # Save positional arguments (if any) ac_save_positional="$@" set X $ac_f77_v_output while test $# != 1; do shift ac_arg=$1 case $ac_arg in [\\/]*.a | ?:[\\/]*.a) ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue then : else case e in #( e) ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" ;; esac fi ;; -bI:*) ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue then : else case e in #( e) if test "$ac_compiler_gnu" = yes; then for ac_link_opt in $ac_arg; do ac_cv_f77_libs="$ac_cv_f77_libs -Xlinker $ac_link_opt" done else ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" fi ;; esac fi ;; # Ignore these flags. -lang* | -lcrt*.o | -lc | -lgcc* | -lSystem | -libmil | -little \ |-LANG:=* | -LIST:* | -LNO:* | -link) ;; -lkernel32 | -lmingw* | -lmoldname) # Ignore this library only on Windows-like systems. case $host_os in cygwin* | msys* | mingw* | windows*) ;; *) ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue then : else case e in #( e) ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" ;; esac fi ;; esac ;; -[LRuYz]) # These flags, when seen by themselves, take an argument. # We remove the space between option and argument and re-iterate # unless we find an empty arg or a new option (starting with -) case $2 in "" | -*);; *) ac_arg="$ac_arg$2" shift; shift set X $ac_arg "$@" ;; esac ;; -YP,*) for ac_j in `printf "%s\n" "$ac_arg" | sed -e 's/-YP,/-L/;s/:/ -L/g'`; do ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_j" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue then : else case e in #( e) ac_arg="$ac_arg $ac_j" ac_cv_f77_libs="$ac_cv_f77_libs $ac_j" ;; esac fi done ;; -[lLR]*) ac_exists=false for ac_i in $ac_cv_f77_libs; do if test x"$ac_arg" = x"$ac_i"; then ac_exists=true break fi done if test x"$ac_exists" = xtrue then : else case e in #( e) ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" ;; esac fi ;; -zallextract*| -zdefaultextract) ac_cv_f77_libs="$ac_cv_f77_libs $ac_arg" ;; -mllvm) ${2+shift};; # Defend against 'clang -mllvm -loopopt=0'. # Ignore everything else. esac done # restore positional arguments set X $ac_save_positional; shift # We only consider "LD_RUN_PATH" on Solaris systems. If this is seen, # then we insist that the "run path" must be an absolute path (i.e. it # must begin with a "/"). case `(uname -sr) 2>/dev/null` in "SunOS 5"*) ac_ld_run_path=`printf "%s\n" "$ac_f77_v_output" | sed -n 's,^.*LD_RUN_PATH *= *\(/[^ ]*\).*$,-R\1,p'` test "x$ac_ld_run_path" != x && if test "$ac_compiler_gnu" = yes; then for ac_link_opt in $ac_ld_run_path; do ac_cv_f77_libs="$ac_cv_f77_libs -Xlinker $ac_link_opt" done else ac_cv_f77_libs="$ac_cv_f77_libs $ac_ld_run_path" fi ;; esac fi # test "x$[]_AC_LANG_PREFIX[]LIBS" = "x" ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_f77_libs" >&5 printf "%s\n" "$ac_cv_f77_libs" >&6; } FLIBS="$ac_cv_f77_libs" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dummy main to link with Fortran 77 libraries" >&5 printf %s "checking for dummy main to link with Fortran 77 libraries... " >&6; } if test ${ac_cv_f77_dummy_main+y} then : printf %s "(cached) " >&6 else case e in #( e) ac_f77_dm_save_LIBS=$LIBS LIBS="$LIBS $FLIBS" ac_fortran_dm_var=F77_DUMMY_MAIN 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 # First, try linking without a dummy main: cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_fortran_dummy_main=none else case e in #( e) ac_cv_fortran_dummy_main=unknown ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext if test $ac_cv_fortran_dummy_main = unknown; then for ac_func in MAIN__ MAIN_ __main MAIN _MAIN __MAIN main_ main__ _main; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define $ac_fortran_dm_var $ac_func #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main (void) { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_cv_fortran_dummy_main=$ac_func; break fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext done fi ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu ac_cv_f77_dummy_main=$ac_cv_fortran_dummy_main rm -rf conftest* LIBS=$ac_f77_dm_save_LIBS ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_f77_dummy_main" >&5 printf "%s\n" "$ac_cv_f77_dummy_main" >&6; } F77_DUMMY_MAIN=$ac_cv_f77_dummy_main if test "$F77_DUMMY_MAIN" != unknown then : if test $F77_DUMMY_MAIN != none; then printf "%s\n" "#define F77_DUMMY_MAIN $F77_DUMMY_MAIN" >>confdefs.h if test "x$ac_cv_fc_dummy_main" = "x$ac_cv_f77_dummy_main"; then printf "%s\n" "#define FC_DUMMY_MAIN_EQ_F77 1" >>confdefs.h fi fi else case e in #( e) enable_fortran=no { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: *** Couldn't figure out how to link C and Fortran; using default Fortran wrappers." >&5 printf "%s\n" "$as_me: WARNING: *** Couldn't figure out how to link C and Fortran; using default Fortran wrappers." >&2;} ;; esac fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi else printf "%s\n" "#define DISABLE_FORTRAN 1" >>confdefs.h fi if test "x$enable_fortran" = xyes; then ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Fortran 77 name-mangling scheme" >&5 printf %s "checking for Fortran 77 name-mangling scheme... " >&6; } if test ${ac_cv_f77_mangling+y} then : printf %s "(cached) " >&6 else case e in #( e) cat > conftest.$ac_ext <<_ACEOF subroutine foobar() return end subroutine foo_bar() return end _ACEOF if ac_fn_f77_try_compile "$LINENO" then : mv conftest.$ac_objext cfortran_test.$ac_objext ac_save_LIBS=$LIBS LIBS="cfortran_test.$ac_objext $LIBS $FLIBS" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_success=no for ac_foobar in foobar FOOBAR; do for ac_underscore in "" "_"; do ac_func="$ac_foobar$ac_underscore" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. The 'extern "C"' is for builds by C++ compilers; although this is not generally supported in C code supporting it here has little cost and some practical benefit (sr 110532). */ #ifdef __cplusplus extern "C" #endif char $ac_func (void); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main (void) { return $ac_func (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_success=yes; break 2 fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext done done ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test "$ac_success" = "yes"; then case $ac_foobar in foobar) ac_case=lower ac_foo_bar=foo_bar ;; FOOBAR) ac_case=upper ac_foo_bar=FOO_BAR ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_success_extra=no for ac_extra in "" "_"; do ac_func="$ac_foo_bar$ac_underscore$ac_extra" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. The 'extern "C"' is for builds by C++ compilers; although this is not generally supported in C code supporting it here has little cost and some practical benefit (sr 110532). */ #ifdef __cplusplus extern "C" #endif char $ac_func (void); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main (void) { return $ac_func (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ac_success_extra=yes; break fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext done ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu if test "$ac_success_extra" = "yes"; then ac_cv_f77_mangling="$ac_case case" if test -z "$ac_underscore"; then ac_cv_f77_mangling="$ac_cv_f77_mangling, no underscore" else ac_cv_f77_mangling="$ac_cv_f77_mangling, underscore" fi if test -z "$ac_extra"; then ac_cv_f77_mangling="$ac_cv_f77_mangling, no extra underscore" else ac_cv_f77_mangling="$ac_cv_f77_mangling, extra underscore" fi else ac_cv_f77_mangling="unknown" fi else ac_cv_f77_mangling="unknown" fi LIBS=$ac_save_LIBS rm -rf conftest* rm -f cfortran_test* else case e in #( e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "cannot compile a simple Fortran program See 'config.log' for more details" "$LINENO" 5; } ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_f77_mangling" >&5 printf "%s\n" "$ac_cv_f77_mangling" >&6; } ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in "lower case, no underscore, no extra underscore") printf "%s\n" "#define F77_FUNC(name,NAME) name" >>confdefs.h printf "%s\n" "#define F77_FUNC_(name,NAME) name" >>confdefs.h ;; "lower case, no underscore, extra underscore") printf "%s\n" "#define F77_FUNC(name,NAME) name" >>confdefs.h printf "%s\n" "#define F77_FUNC_(name,NAME) name ## _" >>confdefs.h ;; "lower case, underscore, no extra underscore") printf "%s\n" "#define F77_FUNC(name,NAME) name ## _" >>confdefs.h printf "%s\n" "#define F77_FUNC_(name,NAME) name ## _" >>confdefs.h ;; "lower case, underscore, extra underscore") printf "%s\n" "#define F77_FUNC(name,NAME) name ## _" >>confdefs.h printf "%s\n" "#define F77_FUNC_(name,NAME) name ## __" >>confdefs.h ;; "upper case, no underscore, no extra underscore") printf "%s\n" "#define F77_FUNC(name,NAME) NAME" >>confdefs.h printf "%s\n" "#define F77_FUNC_(name,NAME) NAME" >>confdefs.h ;; "upper case, no underscore, extra underscore") printf "%s\n" "#define F77_FUNC(name,NAME) NAME" >>confdefs.h printf "%s\n" "#define F77_FUNC_(name,NAME) NAME ## _" >>confdefs.h ;; "upper case, underscore, no extra underscore") printf "%s\n" "#define F77_FUNC(name,NAME) NAME ## _" >>confdefs.h printf "%s\n" "#define F77_FUNC_(name,NAME) NAME ## _" >>confdefs.h ;; "upper case, underscore, extra underscore") printf "%s\n" "#define F77_FUNC(name,NAME) NAME ## _" >>confdefs.h printf "%s\n" "#define F77_FUNC_(name,NAME) NAME ## __" >>confdefs.h ;; *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unknown Fortran name-mangling scheme" >&5 printf "%s\n" "$as_me: WARNING: unknown Fortran name-mangling scheme" >&2;} ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="F77FOO" ;; lower*) ac_val="f77foo" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac f77foo="$ac_val" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=f ac_compile='$F77 -c $FFLAGS conftest.$ac_ext >&5' ac_link='$F77 -o conftest$ac_exeext $FFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_f77_compiler_gnu case $ac_cv_f77_mangling in upper*) ac_val="F77_FOO" ;; lower*) ac_val="f77_foo" ;; *) ac_val="unknown" ;; esac case $ac_cv_f77_mangling in *," underscore"*) ac_val="$ac_val"_ ;; esac case $ac_cv_f77_mangling in *," extra underscore"*) ac_val="$ac_val"_ ;; esac f77_foo="$ac_val" 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 f77_foo2=`echo $f77foo | sed 's/77/77_/'` if test "$f77_foo" = "$f77_foo2"; then printf "%s\n" "#define F77_FUNC_EQUIV 1" >>confdefs.h # Include g77 wrappers by default for GNU systems or gfortran with_g77_wrappers=$ac_cv_f77_compiler_gnu case $host_os in *gnu*) with_g77_wrappers=yes ;; esac fi else with_g77_wrappers=no fi # Check whether --with-g77-wrappers was given. if test ${with_g77_wrappers+y} then : withval=$with_g77_wrappers; with_g77_wrappers=$withval fi if test "x$with_g77_wrappers" = "xyes"; then printf "%s\n" "#define WITH_G77_WRAPPERS 1" >>confdefs.h fi have_smp="no" # Check whether --enable-openmp was given. if test ${enable_openmp+y} then : enableval=$enable_openmp; enable_openmp=$enableval else case e in #( e) enable_openmp=no ;; esac fi if test "$enable_openmp" = "yes"; then printf "%s\n" "#define HAVE_OPENMP 1" >>confdefs.h { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for OpenMP flag of C compiler" >&5 printf %s "checking for OpenMP flag of C compiler... " >&6; } if test ${ax_cv_c_openmp+y} then : printf %s "(cached) " >&6 else case e in #( e) saveCFLAGS=$CFLAGS ax_cv_c_openmp=unknown # Flags to try: -fopenmp (gcc), -openmp (icc), -mp (SGI & PGI), # -xopenmp (Sun), -omp (Tru64), -qsmp=omp (AIX), none ax_openmp_flags="-fopenmp -openmp -mp -xopenmp -omp -qsmp=omp none" if test "x$OPENMP_CFLAGS" != x; then ax_openmp_flags="$OPENMP_CFLAGS $ax_openmp_flags" fi for ax_openmp_flag in $ax_openmp_flags; do case $ax_openmp_flag in none) CFLAGS=$saveC ;; *) CFLAGS="$saveCFLAGS $ax_openmp_flag" ;; esac cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. The 'extern "C"' is for builds by C++ compilers; although this is not generally supported in C code supporting it here has little cost and some practical benefit (sr 110532). */ #ifdef __cplusplus extern "C" #endif char omp_set_num_threads (void); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main (void) { return omp_set_num_threads (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : ax_cv_c_openmp=$ax_openmp_flag; break fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext done CFLAGS=$saveCFLAGS ;; esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_c_openmp" >&5 printf "%s\n" "$ax_cv_c_openmp" >&6; } if test "x$ax_cv_c_openmp" = "xunknown"; then as_fn_error $? "don't know how to enable OpenMP" "$LINENO" 5 else if test "x$ax_cv_c_openmp" != "xnone"; then OPENMP_CFLAGS=$ax_cv_c_openmp fi printf "%s\n" "#define HAVE_OPENMP 1" >>confdefs.h fi fi if test "$have_sve" = "yes"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a SVE program can be compiled" >&5 printf %s "checking whether a SVE program can be compiled... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main (void) { #if defined(__GNUC__) && !defined(__ARM_FEATURE_SVE) #error compiling without SVE support #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO" then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } sve_ok=yes else case e in #( e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } sve_ok=no ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext if test "$sve_ok" != "yes"; then as_fn_error $? "Cannot build a SVE program, aborting" "$LINENO" 5 fi fi # Check whether --enable-threads was given. if test ${enable_threads+y} then : enableval=$enable_threads; enable_threads=$enableval else case e in #( e) enable_threads=no ;; esac fi if test "$enable_threads" = "yes"; then printf "%s\n" "#define HAVE_THREADS 1" >>confdefs.h fi # Check whether --with-combined-threads was given. if test ${with_combined_threads+y} then : withval=$with_combined_threads; with_combined_threads=$withval else case e in #( e) with_combined_threads=no ;; esac fi if test "$with_combined_threads" = yes; then if test "$enable_openmp" = "yes"; then as_fn_error $? "--with-combined-threads incompatible with --enable-openmp" "$LINENO" 5 fi if test "$enable_threads" != "yes"; then as_fn_error $? "--with-combined-threads requires --enable-threads" "$LINENO" 5 fi fi THREADLIBS="" if test "$enable_threads" = "yes"; then # Win32 threads are the default on Windows: if test -z "$THREADLIBS"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Win32 threads" >&5 printf %s "checking for Win32 threads... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main (void) { _beginthreadex(0,0,0,0,0,0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : THREADLIBS=" "; { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } else case e in #( e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } ;; esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext fi # POSIX threads, the default choice everywhere else: if test -z "$THREADLIBS"; then ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu acx_pthread_ok=no # We used to check for pthread.h first, but this fails if pthread.h # requires special compiler flags (e.g. on True64 or Sequent). # It gets checked for in the link test anyway. # First of all, check if the user has set any of the PTHREAD_LIBS, # etcetera environment variables, and if threads linking works using # them: if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5 printf %s "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. The 'extern "C"' is for builds by C++ compilers; although this is not generally supported in C code supporting it here has little cost and some practical benefit (sr 110532). */ #ifdef __cplusplus extern "C" #endif char pthread_join (void); #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main (void) { return pthread_join (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : acx_pthread_ok=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_ok" >&5 printf "%s\n" "$acx_pthread_ok" >&6; } if test x"$acx_pthread_ok" = xno; then PTHREAD_LIBS="" PTHREAD_CFLAGS="" fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" fi # We must check for the threads library under a number of different # names; the ordering is very important because some systems # (e.g. DEC) have both -lpthread and -lpthreads, where one of the # libraries is broken (non-POSIX). # Create a list of thread flags to try. Items starting with a "-" are # C compiler flags, and other items are library names, except for "none" # which indicates that we try without any flags at all, and "pthread-config" # which is a program returning the flags for the Pth emulation library. acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mt -mthreads pthread --thread-safe pthread-config" # The ordering *is* (sometimes) important. Some notes on the # individual items follow: # pthreads: AIX (must check this before -lpthread) # none: in case threads are in libc; should be tried before -Kthread and # other compiler flags to prevent continual compiler warnings # -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) # -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) # -pthreads: Solaris/gcc # -mthreads: Mingw32/gcc, Lynx/gcc # -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it # doesn't hurt to check since this sometimes defines pthreads too; # also defines -D_REENTRANT) # ... -mt is also the pthreads flag for HP/aCC # (where it should come before -mthreads to avoid spurious warnings) # pthread: Linux, etcetera # --thread-safe: KAI C++ # pthread-config: use pthread-config program (for GNU Pth library) case "${host_cpu}-${host_os}" in *solaris*) # On Solaris (at least, for some versions), libc contains stubbed # (non-functional) versions of the pthreads routines, so link-based # tests will erroneously succeed. (We need to link with -pthreads/-mt/ # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather # a function called by this macro, so we could check for that, but # who knows whether they'll stub that too in a future libc.) So, # we'll just look for -pthreads and -lpthread first: acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags" ;; esac if test x"$acx_pthread_ok" = xno; then for flag in $acx_pthread_flags; do case $flag in none) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5 printf %s "checking whether pthreads work without any flags... " >&6; } ;; -*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $flag" >&5 printf %s "checking whether pthreads work with $flag... " >&6; } PTHREAD_CFLAGS="$flag" ;; pthread-config) # Extract the first word of "pthread-config", so it can be a program name with args. set dummy pthread-config; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_acx_pthread_config+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$acx_pthread_config"; then ac_cv_prog_acx_pthread_config="$acx_pthread_config" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_acx_pthread_config="yes" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_acx_pthread_config" && ac_cv_prog_acx_pthread_config="no" fi ;; esac fi acx_pthread_config=$ac_cv_prog_acx_pthread_config if test -n "$acx_pthread_config"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_config" >&5 printf "%s\n" "$acx_pthread_config" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi if test x"$acx_pthread_config" = xno; then continue; fi PTHREAD_CFLAGS="`pthread-config --cflags`" PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" ;; *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$flag" >&5 printf %s "checking for the pthreads library -l$flag... " >&6; } PTHREAD_LIBS="-l$flag" ;; esac save_LIBS="$LIBS" save_CFLAGS="$CFLAGS" LIBS="$PTHREAD_LIBS $LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # Check for various functions. We must include pthread.h, # since some functions may be macros. (On the Sequent, we # need a special flag -Kthread to make this header compile.) # We check for pthread_join because it is in -lpthread on IRIX # while pthread_create is in libc. We check for pthread_attr_init # due to DEC craziness with -lpthreads. We check for # pthread_cleanup_push because it is one of the few pthread # functions on Solaris that doesn't have a non-functional libc stub. # We try pthread_create on general principles. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main (void) { pthread_t th; pthread_join(th, (void**) 0); pthread_attr_init((pthread_attr_t*) 0); pthread_cleanup_push((void(*)(void *)) 0, (void*) 0); pthread_create((pthread_t*) 0, (pthread_attr_t*) 0, (void*(*)(void *)) 0, (void*) 0); pthread_cleanup_pop(0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : acx_pthread_ok=yes fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_ok" >&5 printf "%s\n" "$acx_pthread_ok" >&6; } if test "x$acx_pthread_ok" = xyes; then break; fi PTHREAD_LIBS="" PTHREAD_CFLAGS="" done fi # Various other checks: if test "x$acx_pthread_ok" = xyes; then save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5 printf %s "checking for joinable pthread attribute... " >&6; } attr_name=unknown for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifdef F77_DUMMY_MAIN # ifdef __cplusplus extern "C" # endif int F77_DUMMY_MAIN() { return 1; } #endif int main (void) { int attr=$attr; return attr; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : attr_name=$attr; break fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext done { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $attr_name" >&5 printf "%s\n" "$attr_name" >&6; } if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then printf "%s\n" "#define PTHREAD_CREATE_JOINABLE $attr_name" >>confdefs.h fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if more special flags are required for pthreads" >&5 printf %s "checking if more special flags are required for pthreads... " >&6; } flag=no case "${host_cpu}-${host_os}" in *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; esac { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${flag}" >&5 printf "%s\n" "${flag}" >&6; } if test "x$flag" != xno; then PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" # More AIX lossage: must compile with xlc_r or cc_r if test x"$GCC" != xyes; then for ac_prog in xlc_r cc_r do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 printf %s "checking for $ac_word... " >&6; } if test ${ac_cv_prog_PTHREAD_CC+y} then : printf %s "(cached) " >&6 else case e in #( e) if test -n "$PTHREAD_CC"; then ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then ac_cv_prog_PTHREAD_CC="$ac_prog" printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi ;; esac fi PTHREAD_CC=$ac_cv_prog_PTHREAD_CC if test -n "$PTHREAD_CC"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5 printf "%s\n" "$PTHREAD_CC" >&6; } else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } fi test -n "$PTHREAD_CC" && break done test -n "$PTHREAD_CC" || PTHREAD_CC="${CC}" else PTHREAD_CC=$CC fi else PTHREAD_CC="$CC" fi # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: if test x"$acx_pthread_ok" = xyes; then THREADLIBS="$PTHREAD_LIBS " CC="$PTHREAD_CC" printf "%s\n" "#define USING_POSIX_THREADS 1" >>confdefs.h : else acx_pthread_ok=no fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi if test -z "$THREADLIBS"; then as_fn_error $? "couldn't find threads library for --enable-threads" "$LINENO" 5 fi printf "%s\n" "#define HAVE_THREADS 1" >>confdefs.h fi if test "$enable_threads" = "yes"; then THREADS_TRUE= THREADS_FALSE='#' else THREADS_TRUE='#' THREADS_FALSE= fi if test "$enable_openmp" = "yes"; then OPENMP_TRUE= OPENMP_FALSE='#' else OPENMP_TRUE='#' OPENMP_FALSE= fi if test "$enable_threads" = "yes" -o "$enable_openmp" = "yes"; then SMP_TRUE= SMP_FALSE='#' else SMP_TRUE='#' SMP_FALSE= fi if test x"$with_combined_threads" = xyes; then COMBINED_THREADS_TRUE= COMBINED_THREADS_FALSE='#' else COMBINED_THREADS_TRUE='#' COMBINED_THREADS_FALSE= fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a cycle counter is available" >&5 printf %s "checking whether a cycle counter is available... " >&6; } save_CPPFLAGS=$CPPFLAGS CPPFLAGS="$CPPFLAGS -I$srcdir/kernel" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include "cycle.h" #ifndef HAVE_TICK_COUNTER # error No cycle counter #endif _ACEOF if ac_fn_c_try_cpp "$LINENO" then : ok=yes else case e in #( e) ok=no ;; esac fi rm -f conftest.err conftest.i conftest.$ac_ext CPPFLAGS=$save_CPPFLAGS { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ok" >&5 printf "%s\n" "$ok" >&6; } if test $ok = no && test "x$with_slow_timer" = xno; then echo "***************************************************************" echo "WARNING: No cycle counter found. FFTW will use ESTIMATE mode " echo " for all plans. See the manual for more information." echo "***************************************************************" fi printf "%s\n" "#define FFTW_CC \"$CC $CFLAGS\"" >>confdefs.h ac_config_files="$ac_config_files Makefile support/Makefile genfft/Makefile kernel/Makefile simd-support/Makefile dft/Makefile dft/scalar/Makefile dft/scalar/codelets/Makefile dft/simd/Makefile dft/simd/common/Makefile dft/simd/sse2/Makefile dft/simd/avx/Makefile dft/simd/avx-128-fma/Makefile dft/simd/avx2/Makefile dft/simd/avx2-128/Makefile dft/simd/avx512/Makefile dft/simd/kcvi/Makefile dft/simd/altivec/Makefile dft/simd/vsx/Makefile dft/simd/neon/Makefile dft/simd/sve128/Makefile dft/simd/sve256/Makefile dft/simd/sve512/Makefile dft/simd/sve1024/Makefile dft/simd/sve2048/Makefile dft/simd/lsx/Makefile dft/simd/lasx/Makefile dft/simd/generic-simd128/Makefile dft/simd/generic-simd256/Makefile rdft/Makefile rdft/scalar/Makefile rdft/scalar/r2cf/Makefile rdft/scalar/r2cb/Makefile rdft/scalar/r2r/Makefile rdft/simd/Makefile rdft/simd/common/Makefile rdft/simd/sse2/Makefile rdft/simd/avx/Makefile rdft/simd/avx-128-fma/Makefile rdft/simd/avx2/Makefile rdft/simd/avx2-128/Makefile rdft/simd/avx512/Makefile rdft/simd/kcvi/Makefile rdft/simd/altivec/Makefile rdft/simd/vsx/Makefile rdft/simd/neon/Makefile rdft/simd/sve128/Makefile rdft/simd/sve256/Makefile rdft/simd/sve512/Makefile rdft/simd/sve1024/Makefile rdft/simd/sve2048/Makefile rdft/simd/lsx/Makefile rdft/simd/lasx/Makefile rdft/simd/generic-simd128/Makefile rdft/simd/generic-simd256/Makefile reodft/Makefile threads/Makefile api/Makefile mpi/Makefile libbench2/Makefile tests/Makefile doc/Makefile doc/FAQ/Makefile tools/Makefile tools/fftw_wisdom.1 tools/fftw-wisdom-to-conf m4/Makefile fftw.pc" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # 'ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* 'ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # 'set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # 'set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 printf "%s\n" "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 printf %s "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: done" >&5 printf "%s\n" "done" >&6; } case $enable_silent_rules in # ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; esac if test $am_cv_make_support_nested_variables = yes; then AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${BUILD_DOC_TRUE}" && test -z "${BUILD_DOC_FALSE}"; then as_fn_error $? "conditional \"BUILD_DOC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SINGLE_TRUE}" && test -z "${SINGLE_FALSE}"; then as_fn_error $? "conditional \"SINGLE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${LDOUBLE_TRUE}" && test -z "${LDOUBLE_FALSE}"; then as_fn_error $? "conditional \"LDOUBLE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${QUAD_TRUE}" && test -z "${QUAD_FALSE}"; then as_fn_error $? "conditional \"QUAD\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_SSE2_TRUE}" && test -z "${HAVE_SSE2_FALSE}"; then as_fn_error $? "conditional \"HAVE_SSE2\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_AVX_TRUE}" && test -z "${HAVE_AVX_FALSE}"; then as_fn_error $? "conditional \"HAVE_AVX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_AVX2_TRUE}" && test -z "${HAVE_AVX2_FALSE}"; then as_fn_error $? "conditional \"HAVE_AVX2\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_AVX512_TRUE}" && test -z "${HAVE_AVX512_FALSE}"; then as_fn_error $? "conditional \"HAVE_AVX512\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_AVX_128_FMA_TRUE}" && test -z "${HAVE_AVX_128_FMA_FALSE}"; then as_fn_error $? "conditional \"HAVE_AVX_128_FMA\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_KCVI_TRUE}" && test -z "${HAVE_KCVI_FALSE}"; then as_fn_error $? "conditional \"HAVE_KCVI\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_ALTIVEC_TRUE}" && test -z "${HAVE_ALTIVEC_FALSE}"; then as_fn_error $? "conditional \"HAVE_ALTIVEC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_VSX_TRUE}" && test -z "${HAVE_VSX_FALSE}"; then as_fn_error $? "conditional \"HAVE_VSX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_NEON_TRUE}" && test -z "${HAVE_NEON_FALSE}"; then as_fn_error $? "conditional \"HAVE_NEON\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_LSX_TRUE}" && test -z "${HAVE_LSX_FALSE}"; then as_fn_error $? "conditional \"HAVE_LSX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_LASX_TRUE}" && test -z "${HAVE_LASX_FALSE}"; then as_fn_error $? "conditional \"HAVE_LASX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_GENERIC_SIMD128_TRUE}" && test -z "${HAVE_GENERIC_SIMD128_FALSE}"; then as_fn_error $? "conditional \"HAVE_GENERIC_SIMD128\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_GENERIC_SIMD256_TRUE}" && test -z "${HAVE_GENERIC_SIMD256_FALSE}"; then as_fn_error $? "conditional \"HAVE_GENERIC_SIMD256\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${HAVE_SVE_TRUE}" && test -z "${HAVE_SVE_FALSE}"; then as_fn_error $? "conditional \"HAVE_SVE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCC\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${MPI_TRUE}" && test -z "${MPI_FALSE}"; then as_fn_error $? "conditional \"MPI\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${THREADS_TRUE}" && test -z "${THREADS_FALSE}"; then as_fn_error $? "conditional \"THREADS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${OPENMP_TRUE}" && test -z "${OPENMP_FALSE}"; then as_fn_error $? "conditional \"OPENMP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${SMP_TRUE}" && test -z "${SMP_FALSE}"; then as_fn_error $? "conditional \"SMP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${COMBINED_THREADS_TRUE}" && test -z "${COMBINED_THREADS_FALSE}"; then as_fn_error $? "conditional \"COMBINED_THREADS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case e in #( e) case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac ;; esac fi # Reset variables that may have inherited troublesome values from # the environment. # IFS needs to be set, to space, tab, and newline, in precisely that order. # (If _AS_PATH_WALK were called with IFS unset, it would have the # side effect of setting IFS to empty, thus disabling word splitting.) # Quoting is to prevent editors from complaining about space-tab. as_nl=' ' export as_nl IFS=" "" $as_nl" PS1='$ ' PS2='> ' PS4='+ ' # Ensure predictable behavior from utilities with locale-dependent output. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # We cannot yet rely on "unset" to work, but we need these variables # to be unset--not just set to an empty or harmless value--now, to # avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct # also avoids known problems related to "unset" and subshell syntax # in other old shells (e.g. bash 2.01 and pdksh 5.2.14). for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH do eval test \${$as_var+y} \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done # Ensure that fds 0, 1, and 2 are open. if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi if (exec 3>&2) ; then :; else exec 2>/dev/null; fi # The user is always right. if ${PATH_SEPARATOR+false} :; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS case $as_dir in #((( '') as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac test -r "$as_dir$0" && as_myself=$as_dir$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as 'sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi printf "%s\n" "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null then : eval 'as_fn_append () { eval $1+=\$2 }' else case e in #( e) as_fn_append () { eval $1=\$$1\$2 } ;; esac fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null then : eval 'as_fn_arith () { as_val=$(( $* )) }' else case e in #( e) as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } ;; esac fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits # Determine whether it's possible to make 'echo' print without a newline. # These variables are no longer used directly by Autoconf, but are AC_SUBSTed # for compatibility with existing Makefiles. ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac # For backward compatibility with old third-party macros, we provide # the shell variables $as_echo and $as_echo_n. New code should use # AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. as_echo='printf %s\n' as_echo_n='printf %s' rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both 'ln -s file dir' and 'ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; 'ln -s' creates a wrapper executable. # In both cases, we have to default to 'cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_sed_cpp="y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g" as_tr_cpp="eval sed '$as_sed_cpp'" # deprecated # Sed expression to map a string onto a valid variable name. as_sed_sh="y%*+%pp%;s%[^_$as_cr_alnum]%_%g" as_tr_sh="eval sed '$as_sed_sh'" # deprecated exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by fftw $as_me 3.3.11, which was generated by GNU Autoconf 2.72. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ '$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." _ACEOF ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ fftw config.status 3.3.11 configured by $0, generated by GNU Autoconf 2.72, with options \\"\$ac_cs_config\\" Copyright (C) 2023 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) printf "%s\n" "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) printf "%s\n" "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: '$1' Try '$0 --help' for more information.";; --help | --hel | -h ) printf "%s\n" "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: '$1' Try '$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX printf "%s\n" "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}" # 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 sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' FILECMD='`$ECHO "$FILECMD" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' lt_ar_flags='`$ECHO "$lt_ar_flags" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`' nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`' configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`' hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' LD_F77='`$ECHO "$LD_F77" | $SED "$delay_single_quote_subst"`' reload_flag_F77='`$ECHO "$reload_flag_F77" | $SED "$delay_single_quote_subst"`' reload_cmds_F77='`$ECHO "$reload_cmds_F77" | $SED "$delay_single_quote_subst"`' old_archive_cmds_F77='`$ECHO "$old_archive_cmds_F77" | $SED "$delay_single_quote_subst"`' compiler_F77='`$ECHO "$compiler_F77" | $SED "$delay_single_quote_subst"`' GCC_F77='`$ECHO "$GCC_F77" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag_F77='`$ECHO "$lt_prog_compiler_no_builtin_flag_F77" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic_F77='`$ECHO "$lt_prog_compiler_pic_F77" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl_F77='`$ECHO "$lt_prog_compiler_wl_F77" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static_F77='`$ECHO "$lt_prog_compiler_static_F77" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o_F77='`$ECHO "$lt_cv_prog_compiler_c_o_F77" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc_F77='`$ECHO "$archive_cmds_need_lc_F77" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes_F77='`$ECHO "$enable_shared_with_static_runtimes_F77" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec_F77='`$ECHO "$export_dynamic_flag_spec_F77" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec_F77='`$ECHO "$whole_archive_flag_spec_F77" | $SED "$delay_single_quote_subst"`' compiler_needs_object_F77='`$ECHO "$compiler_needs_object_F77" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds_F77='`$ECHO "$old_archive_from_new_cmds_F77" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds_F77='`$ECHO "$old_archive_from_expsyms_cmds_F77" | $SED "$delay_single_quote_subst"`' archive_cmds_F77='`$ECHO "$archive_cmds_F77" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds_F77='`$ECHO "$archive_expsym_cmds_F77" | $SED "$delay_single_quote_subst"`' module_cmds_F77='`$ECHO "$module_cmds_F77" | $SED "$delay_single_quote_subst"`' module_expsym_cmds_F77='`$ECHO "$module_expsym_cmds_F77" | $SED "$delay_single_quote_subst"`' with_gnu_ld_F77='`$ECHO "$with_gnu_ld_F77" | $SED "$delay_single_quote_subst"`' allow_undefined_flag_F77='`$ECHO "$allow_undefined_flag_F77" | $SED "$delay_single_quote_subst"`' no_undefined_flag_F77='`$ECHO "$no_undefined_flag_F77" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_F77='`$ECHO "$hardcode_libdir_flag_spec_F77" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator_F77='`$ECHO "$hardcode_libdir_separator_F77" | $SED "$delay_single_quote_subst"`' hardcode_direct_F77='`$ECHO "$hardcode_direct_F77" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute_F77='`$ECHO "$hardcode_direct_absolute_F77" | $SED "$delay_single_quote_subst"`' hardcode_minus_L_F77='`$ECHO "$hardcode_minus_L_F77" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var_F77='`$ECHO "$hardcode_shlibpath_var_F77" | $SED "$delay_single_quote_subst"`' hardcode_automatic_F77='`$ECHO "$hardcode_automatic_F77" | $SED "$delay_single_quote_subst"`' inherit_rpath_F77='`$ECHO "$inherit_rpath_F77" | $SED "$delay_single_quote_subst"`' link_all_deplibs_F77='`$ECHO "$link_all_deplibs_F77" | $SED "$delay_single_quote_subst"`' always_export_symbols_F77='`$ECHO "$always_export_symbols_F77" | $SED "$delay_single_quote_subst"`' export_symbols_cmds_F77='`$ECHO "$export_symbols_cmds_F77" | $SED "$delay_single_quote_subst"`' exclude_expsyms_F77='`$ECHO "$exclude_expsyms_F77" | $SED "$delay_single_quote_subst"`' include_expsyms_F77='`$ECHO "$include_expsyms_F77" | $SED "$delay_single_quote_subst"`' prelink_cmds_F77='`$ECHO "$prelink_cmds_F77" | $SED "$delay_single_quote_subst"`' postlink_cmds_F77='`$ECHO "$postlink_cmds_F77" | $SED "$delay_single_quote_subst"`' file_list_spec_F77='`$ECHO "$file_list_spec_F77" | $SED "$delay_single_quote_subst"`' hardcode_action_F77='`$ECHO "$hardcode_action_F77" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } # Quote evaled strings. for var in AS \ DLLTOOL \ OBJDUMP \ SHELL \ ECHO \ PATH_SEPARATOR \ SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ FILECMD \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ sharedlib_from_linklib_cmd \ AR \ archiver_list_spec \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_import \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ lt_cv_nm_interface \ nm_file_list_spec \ lt_cv_truncate_bin \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_pic \ lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ MANIFEST_TOOL \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_separator \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ install_override_mode \ finish_eval \ old_striplib \ striplib \ LD_F77 \ reload_flag_F77 \ compiler_F77 \ lt_prog_compiler_no_builtin_flag_F77 \ lt_prog_compiler_pic_F77 \ lt_prog_compiler_wl_F77 \ lt_prog_compiler_static_F77 \ lt_cv_prog_compiler_c_o_F77 \ export_dynamic_flag_spec_F77 \ whole_archive_flag_spec_F77 \ compiler_needs_object_F77 \ with_gnu_ld_F77 \ allow_undefined_flag_F77 \ no_undefined_flag_F77 \ hardcode_libdir_flag_spec_F77 \ hardcode_libdir_separator_F77 \ exclude_expsyms_F77 \ include_expsyms_F77 \ file_list_spec_F77; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ configure_time_dlsearch_path \ configure_time_lt_sys_library_path \ reload_cmds_F77 \ old_archive_cmds_F77 \ old_archive_from_new_cmds_F77 \ old_archive_from_expsyms_cmds_F77 \ archive_cmds_F77 \ archive_expsym_cmds_F77 \ module_cmds_F77 \ module_expsym_cmds_F77 \ export_symbols_cmds_F77 \ prelink_cmds_F77 \ postlink_cmds_F77; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done ac_aux_dir='$ac_aux_dir' # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' RM='$RM' ofile='$ofile' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "support/Makefile") CONFIG_FILES="$CONFIG_FILES support/Makefile" ;; "genfft/Makefile") CONFIG_FILES="$CONFIG_FILES genfft/Makefile" ;; "kernel/Makefile") CONFIG_FILES="$CONFIG_FILES kernel/Makefile" ;; "simd-support/Makefile") CONFIG_FILES="$CONFIG_FILES simd-support/Makefile" ;; "dft/Makefile") CONFIG_FILES="$CONFIG_FILES dft/Makefile" ;; "dft/scalar/Makefile") CONFIG_FILES="$CONFIG_FILES dft/scalar/Makefile" ;; "dft/scalar/codelets/Makefile") CONFIG_FILES="$CONFIG_FILES dft/scalar/codelets/Makefile" ;; "dft/simd/Makefile") CONFIG_FILES="$CONFIG_FILES dft/simd/Makefile" ;; "dft/simd/common/Makefile") CONFIG_FILES="$CONFIG_FILES dft/simd/common/Makefile" ;; "dft/simd/sse2/Makefile") CONFIG_FILES="$CONFIG_FILES dft/simd/sse2/Makefile" ;; "dft/simd/avx/Makefile") CONFIG_FILES="$CONFIG_FILES dft/simd/avx/Makefile" ;; "dft/simd/avx-128-fma/Makefile") CONFIG_FILES="$CONFIG_FILES dft/simd/avx-128-fma/Makefile" ;; "dft/simd/avx2/Makefile") CONFIG_FILES="$CONFIG_FILES dft/simd/avx2/Makefile" ;; "dft/simd/avx2-128/Makefile") CONFIG_FILES="$CONFIG_FILES dft/simd/avx2-128/Makefile" ;; "dft/simd/avx512/Makefile") CONFIG_FILES="$CONFIG_FILES dft/simd/avx512/Makefile" ;; "dft/simd/kcvi/Makefile") CONFIG_FILES="$CONFIG_FILES dft/simd/kcvi/Makefile" ;; "dft/simd/altivec/Makefile") CONFIG_FILES="$CONFIG_FILES dft/simd/altivec/Makefile" ;; "dft/simd/vsx/Makefile") CONFIG_FILES="$CONFIG_FILES dft/simd/vsx/Makefile" ;; "dft/simd/neon/Makefile") CONFIG_FILES="$CONFIG_FILES dft/simd/neon/Makefile" ;; "dft/simd/sve128/Makefile") CONFIG_FILES="$CONFIG_FILES dft/simd/sve128/Makefile" ;; "dft/simd/sve256/Makefile") CONFIG_FILES="$CONFIG_FILES dft/simd/sve256/Makefile" ;; "dft/simd/sve512/Makefile") CONFIG_FILES="$CONFIG_FILES dft/simd/sve512/Makefile" ;; "dft/simd/sve1024/Makefile") CONFIG_FILES="$CONFIG_FILES dft/simd/sve1024/Makefile" ;; "dft/simd/sve2048/Makefile") CONFIG_FILES="$CONFIG_FILES dft/simd/sve2048/Makefile" ;; "dft/simd/lsx/Makefile") CONFIG_FILES="$CONFIG_FILES dft/simd/lsx/Makefile" ;; "dft/simd/lasx/Makefile") CONFIG_FILES="$CONFIG_FILES dft/simd/lasx/Makefile" ;; "dft/simd/generic-simd128/Makefile") CONFIG_FILES="$CONFIG_FILES dft/simd/generic-simd128/Makefile" ;; "dft/simd/generic-simd256/Makefile") CONFIG_FILES="$CONFIG_FILES dft/simd/generic-simd256/Makefile" ;; "rdft/Makefile") CONFIG_FILES="$CONFIG_FILES rdft/Makefile" ;; "rdft/scalar/Makefile") CONFIG_FILES="$CONFIG_FILES rdft/scalar/Makefile" ;; "rdft/scalar/r2cf/Makefile") CONFIG_FILES="$CONFIG_FILES rdft/scalar/r2cf/Makefile" ;; "rdft/scalar/r2cb/Makefile") CONFIG_FILES="$CONFIG_FILES rdft/scalar/r2cb/Makefile" ;; "rdft/scalar/r2r/Makefile") CONFIG_FILES="$CONFIG_FILES rdft/scalar/r2r/Makefile" ;; "rdft/simd/Makefile") CONFIG_FILES="$CONFIG_FILES rdft/simd/Makefile" ;; "rdft/simd/common/Makefile") CONFIG_FILES="$CONFIG_FILES rdft/simd/common/Makefile" ;; "rdft/simd/sse2/Makefile") CONFIG_FILES="$CONFIG_FILES rdft/simd/sse2/Makefile" ;; "rdft/simd/avx/Makefile") CONFIG_FILES="$CONFIG_FILES rdft/simd/avx/Makefile" ;; "rdft/simd/avx-128-fma/Makefile") CONFIG_FILES="$CONFIG_FILES rdft/simd/avx-128-fma/Makefile" ;; "rdft/simd/avx2/Makefile") CONFIG_FILES="$CONFIG_FILES rdft/simd/avx2/Makefile" ;; "rdft/simd/avx2-128/Makefile") CONFIG_FILES="$CONFIG_FILES rdft/simd/avx2-128/Makefile" ;; "rdft/simd/avx512/Makefile") CONFIG_FILES="$CONFIG_FILES rdft/simd/avx512/Makefile" ;; "rdft/simd/kcvi/Makefile") CONFIG_FILES="$CONFIG_FILES rdft/simd/kcvi/Makefile" ;; "rdft/simd/altivec/Makefile") CONFIG_FILES="$CONFIG_FILES rdft/simd/altivec/Makefile" ;; "rdft/simd/vsx/Makefile") CONFIG_FILES="$CONFIG_FILES rdft/simd/vsx/Makefile" ;; "rdft/simd/neon/Makefile") CONFIG_FILES="$CONFIG_FILES rdft/simd/neon/Makefile" ;; "rdft/simd/sve128/Makefile") CONFIG_FILES="$CONFIG_FILES rdft/simd/sve128/Makefile" ;; "rdft/simd/sve256/Makefile") CONFIG_FILES="$CONFIG_FILES rdft/simd/sve256/Makefile" ;; "rdft/simd/sve512/Makefile") CONFIG_FILES="$CONFIG_FILES rdft/simd/sve512/Makefile" ;; "rdft/simd/sve1024/Makefile") CONFIG_FILES="$CONFIG_FILES rdft/simd/sve1024/Makefile" ;; "rdft/simd/sve2048/Makefile") CONFIG_FILES="$CONFIG_FILES rdft/simd/sve2048/Makefile" ;; "rdft/simd/lsx/Makefile") CONFIG_FILES="$CONFIG_FILES rdft/simd/lsx/Makefile" ;; "rdft/simd/lasx/Makefile") CONFIG_FILES="$CONFIG_FILES rdft/simd/lasx/Makefile" ;; "rdft/simd/generic-simd128/Makefile") CONFIG_FILES="$CONFIG_FILES rdft/simd/generic-simd128/Makefile" ;; "rdft/simd/generic-simd256/Makefile") CONFIG_FILES="$CONFIG_FILES rdft/simd/generic-simd256/Makefile" ;; "reodft/Makefile") CONFIG_FILES="$CONFIG_FILES reodft/Makefile" ;; "threads/Makefile") CONFIG_FILES="$CONFIG_FILES threads/Makefile" ;; "api/Makefile") CONFIG_FILES="$CONFIG_FILES api/Makefile" ;; "mpi/Makefile") CONFIG_FILES="$CONFIG_FILES mpi/Makefile" ;; "libbench2/Makefile") CONFIG_FILES="$CONFIG_FILES libbench2/Makefile" ;; "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; "doc/FAQ/Makefile") CONFIG_FILES="$CONFIG_FILES doc/FAQ/Makefile" ;; "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;; "tools/fftw_wisdom.1") CONFIG_FILES="$CONFIG_FILES tools/fftw_wisdom.1" ;; "tools/fftw-wisdom-to-conf") CONFIG_FILES="$CONFIG_FILES tools/fftw-wisdom-to-conf" ;; "m4/Makefile") CONFIG_FILES="$CONFIG_FILES m4/Makefile" ;; "fftw.pc") CONFIG_FILES="$CONFIG_FILES fftw.pc" ;; *) as_fn_error $? "invalid argument: '$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers test ${CONFIG_COMMANDS+y} || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to '$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with './config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with './config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script 'defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag '$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain ':'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: '$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is 'configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 printf "%s\n" "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`printf "%s\n" "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when '$srcdir' = '.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable 'datarootdir' which seems to be undefined. Please make sure it is defined" >&5 printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable 'datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { printf "%s\n" "/* $configure_input */" >&1 \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 printf "%s\n" "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else printf "%s\n" "/* $configure_input */" >&1 \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi # Compute "$ac_file"'s index in $config_headers. _am_arg="$ac_file" _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$_am_arg" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'`/stamp-h$_am_stamp_count ;; :C) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 printf "%s\n" "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. # TODO: see whether this extra hack can be removed once we start # requiring Autoconf 2.70 or later. case $CONFIG_FILES in #( *\'*) : eval set x "$CONFIG_FILES" ;; #( *) : set x $CONFIG_FILES ;; #( *) : ;; esac shift # Used to flag and report bootstrapping failures. am_rc=0 for am_mf do # Strip MF so we end up with the name of the file. am_mf=`printf "%s\n" "$am_mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile which includes # dependency-tracking related rules and includes. # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ || continue am_dirpart=`$as_dirname -- "$am_mf" || $as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$am_mf" : 'X\(//\)[^/]' \| \ X"$am_mf" : 'X\(//\)$' \| \ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X"$am_mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` am_filepart=`$as_basename -- "$am_mf" || $as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ X"$am_mf" : 'X\(//\)$' \| \ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || printf "%s\n" X/"$am_mf" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` { echo "$as_me:$LINENO: cd "$am_dirpart" \ && sed -e '/# am--include-marker/d' "$am_filepart" \ | $MAKE -f - am--depfiles" >&5 (cd "$am_dirpart" \ && sed -e '/# am--include-marker/d' "$am_filepart" \ | $MAKE -f - am--depfiles) >&5 2>&5 ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } || am_rc=$? done if test $am_rc -ne 0; then { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "Something went wrong bootstrapping makefile fragments for automatic dependency tracking. If GNU make was not used, consider re-running the configure script with MAKE=\"gmake\" (or whatever is necessary). You can also try re-running configure with the '--disable-dependency-tracking' option to at least be able to build the package (albeit without support for automatic dependency tracking). See 'config.log' for more details" "$LINENO" 5; } fi { am_dirpart=; unset am_dirpart;} { am_filepart=; unset am_filepart;} { am_mf=; unset am_mf;} { am_rc=; unset am_rc;} rm -f conftest-deps.mk } ;; "libtool":C) # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi cfgfile=${ofile}T trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # Generated automatically by $as_me ($PACKAGE) $VERSION # NOTE: Changes made to this file will be lost: look at ltmain.sh. # Provide generalized library-building support services. # Written by Gordon Matzigkeit, 1996 # Copyright (C) 2024 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool 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. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program or library that is built # using GNU Libtool, you may include this file under the same # distribution terms that you use for the rest of that program. # # GNU Libtool 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, see . # The names of the tagged configurations supported by this script. available_tags='F77 ' # Configured defaults for sys_lib_dlsearch_path munging. : \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} # ### BEGIN LIBTOOL CONFIG # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Assembler program. AS=$lt_AS # DLL creation program. DLLTOOL=$lt_DLLTOOL # Object dumper program. OBJDUMP=$lt_OBJDUMP # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # Shared archive member basename,for filename based shared library versioning on AIX. shared_archive_member_spec=$shared_archive_member_spec # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that protects backslashes. ECHO=$lt_ECHO # The PATH separator for the build system. PATH_SEPARATOR=$lt_PATH_SEPARATOR # 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 # 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//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # convert \$build file names to \$host format. to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd # A file(cmd) program that detects file types. FILECMD=$lt_FILECMD # 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 # How to find potential files when deplibs_check_method = "file_magic". file_magic_glob=$lt_file_magic_glob # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob=$lt_want_nocaseglob # Command to associate shared and link libraries. sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd # The archiver. AR=$lt_AR # Flags to create an archive (by configure). lt_ar_flags=$lt_ar_flags # Flags to create an archive. AR_FLAGS=\${ARFLAGS-"\$lt_ar_flags"} # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Whether to use a lock for old archive extraction. lock_old_archive_extraction=$lock_old_archive_extraction # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # 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 into a list of symbols to manually relocate. global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import # 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 # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # The name lister interface. nm_interface=$lt_lt_cv_nm_interface # Specify filename containing input files for \$NM. nm_file_list_spec=$lt_nm_file_list_spec # The root where to search for dependent libraries,and where our libraries should be installed. lt_sysroot=$lt_sysroot # Command to truncate a binary pipe. lt_truncate_bin=$lt_lt_cv_truncate_bin # The name of the directory that contains temporary libtool files. objdir=$objdir # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Manifest tool. MANIFEST_TOOL=$lt_MANIFEST_TOOL # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # 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 # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # 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 # Permission mode override for installation of shared libraries. install_override_mode=$lt_install_override_mode # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Detected run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path # Explicit LT_SYS_LIBRARY_PATH set during ./configure time. configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path # 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 # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # 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 # 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 # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # 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 a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # 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\$shared_ext during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e. impossible to change by setting \$shlibpath_var if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # 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 # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # 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 # 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 # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # ### END LIBTOOL CONFIG _LT_EOF cat <<'_LT_EOF' >> "$cfgfile" # ### BEGIN FUNCTIONS SHARED WITH CONFIGURE # func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x$2 in x) ;; *:) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" ;; x:*) eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" ;; *::*) eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" ;; *) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" ;; esac } # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in $*""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } # ### END FUNCTIONS SHARED WITH CONFIGURE _LT_EOF case $host_os in aix3*) cat <<\_LT_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 set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain=$ac_aux_dir/ltmain.sh # 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" cat <<_LT_EOF >> "$ofile" # ### BEGIN LIBTOOL TAG CONFIG: F77 # The linker used to build libraries. LD=$lt_LD_F77 # How to create reloadable object files. reload_flag=$lt_reload_flag_F77 reload_cmds=$lt_reload_cmds_F77 # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds_F77 # A language specific compiler. CC=$lt_compiler_F77 # Is the compiler the GNU compiler? with_gcc=$GCC_F77 # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_F77 # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_F77 # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_F77 # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_F77 # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_F77 # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_F77 # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_F77 # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_F77 # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_F77 # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object_F77 # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_F77 # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_F77 # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds_F77 archive_expsym_cmds=$lt_archive_expsym_cmds_F77 # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds_F77 module_expsym_cmds=$lt_module_expsym_cmds_F77 # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld_F77 # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_F77 # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_F77 # 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_F77 # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_F77 # Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct_F77 # Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e. impossible to change by setting \$shlibpath_var if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute_F77 # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L_F77 # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_F77 # 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_F77 # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath_F77 # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_F77 # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols_F77 # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_F77 # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_F77 # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_F77 # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds_F77 # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_cmds_F77 # Specify filename containing input files. file_list_spec=$lt_file_list_spec_F77 # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_F77 # ### END LIBTOOL TAG CONFIG: F77 _LT_EOF ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi fftw-3.3.11/configure.ac0000644000175000017500000010445215170655127010533 dnl Process this file with autoconf to produce a configure script. dnl Define the fftw version number as M4 macros, so that we can enforce dnl the invariant that the minor version number in FFTW-X.Y.MINOR is the same dnl as the revision number in SHARED_VERSION_INFO. define(FFTW_MAJOR_VERSION, 3.3)dnl define(FFTW_MINOR_VERSION, 11)dnl dnl Version number of the FFTW source package. AC_INIT([fftw],[FFTW_MAJOR_VERSION.FFTW_MINOR_VERSION],[fftw@fftw.org]) AC_CONFIG_SRCDIR(kernel/ifftw.h) dnl Version number for libtool shared libraries. Libtool wants a string dnl of the form CURRENT:REVISION:AGE. We adopt the convention that dnl REVISION is the same as the FFTW minor version number. dnl fftw-3.1.x was 4:x:1 dnl fftw-3.2.x was 5:x:2 dnl fftw-3.3.x was 6:x:3 for x < 4 dnl fftw-3.3.4 was 7:x:4 dnl fftw-3.3.5 was 8:x:5 (added planner hooks) dnl fftw-3.3.6 was 8:x:6 (8:x:6 is a bug, should have been 8:x:5. No API changes) dnl fftw-3.3.6.1 fixes the 8:x:6 screwup dnl fftw-3.3.7 was 8:x:5 (No API changes) dnl fftw-3.3.8 was 8:x:5 (No API changes) dnl fftw-3.3.9 was 9:x:6 (added threads callback) dnl fftw-3.3.10 was 9:x:6 (No API changes) dnl fftw-3.3.11 was 10:x:7 (added fftw_copy_plan()) SHARED_VERSION_INFO="10:FFTW_MINOR_VERSION:7" # CURRENT:REVISION:AGE AM_INIT_AUTOMAKE(1.7) AM_CONFIG_HEADER(config.h) AC_CONFIG_MACRO_DIR([m4]) AM_MAINTAINER_MODE AC_SUBST(SHARED_VERSION_INFO) AC_DISABLE_SHARED dnl to hell with shared libraries AC_CANONICAL_HOST dnl configure options case "${host_cpu}" in powerpc*) arch_prefers_fma=yes;; ia64*) arch_prefers_fma=yes;; hppa*) arch_prefers_fma=yes;; mips64*) arch_prefers_fma=yes;; *) arch_prefers_fma=no;; esac AC_ARG_ENABLE(debug, [AS_HELP_STRING([--enable-debug],[compile fftw with extra runtime checks for debugging])], ok=$enableval, ok=no) if test "$ok" = "yes"; then AC_DEFINE(FFTW_DEBUG,1,[Define to enable extra FFTW debugging code.]) fi AC_ARG_ENABLE(doc, [AS_HELP_STRING([--disable-doc],[disable building the documentation])], build_doc=$enableval, build_doc=yes) AM_CONDITIONAL(BUILD_DOC, test x"$build_doc" = xyes) AC_ARG_ENABLE(random-estimator, [AS_HELP_STRING([--enable-random-estimator],[enable pseudorandom estimator (debugging hack)])], ok=$enableval, ok=no) if test "$ok" = "yes"; then AC_DEFINE(FFTW_RANDOM_ESTIMATOR,1,[Define to enable pseudorandom estimate planning for debugging.]) CHECK_PL_OPTS="--estimate" fi AC_ARG_ENABLE(alloca, [AS_HELP_STRING([--disable-alloca],[disable use of the alloca() function (may be broken on mingw64)])], ok=$enableval, ok=yes) if test "$ok" = "yes"; then AC_DEFINE(FFTW_ENABLE_ALLOCA,1,[Define to enable the use of alloca().]) fi AC_ARG_ENABLE(single, [AS_HELP_STRING([--enable-single],[compile fftw in single precision])], ok=$enableval, ok=no) AC_ARG_ENABLE(float, [AS_HELP_STRING([--enable-float],[synonym for --enable-single])], ok=$enableval) if test "$ok" = "yes"; then AC_DEFINE(FFTW_SINGLE,1,[Define to compile in single precision.]) AC_DEFINE(BENCHFFT_SINGLE,1,[Define to compile in single precision.]) PRECISION=s else PRECISION=d fi AM_CONDITIONAL(SINGLE, test "$ok" = "yes") AC_ARG_ENABLE(long-double, [AS_HELP_STRING([--enable-long-double],[compile fftw in long-double precision])], ok=$enableval, ok=no) if test "$ok" = "yes"; then if test "$PRECISION" = "s"; then AC_MSG_ERROR([--enable-single/--enable-long-double conflict]) fi AC_DEFINE(FFTW_LDOUBLE,1,[Define to compile in long-double precision.]) AC_DEFINE(BENCHFFT_LDOUBLE,1,[Define to compile in long-double precision.]) PRECISION=l fi AM_CONDITIONAL(LDOUBLE, test "$ok" = "yes") AC_ARG_ENABLE(quad-precision, [AS_HELP_STRING([--enable-quad-precision],[compile fftw in quadruple precision if available])], ok=$enableval, ok=no) if test "$ok" = "yes"; then if test "$PRECISION" != "d"; then AC_MSG_ERROR([conflicting precisions specified]) fi AC_DEFINE(FFTW_QUAD,1,[Define to compile in quad precision.]) AC_DEFINE(BENCHFFT_QUAD,1,[Define to compile in quad precision.]) PRECISION=q fi AM_CONDITIONAL(QUAD, test "$ok" = "yes") AC_SUBST(PRECISION) AC_SUBST(CHECK_PL_OPTS) dnl SSE/SSE2 theory: dnl dnl Historically, you had to supply --enable-sse in single precision and --enable-sse2 dnl in double precision. dnl dnl This behavior is pointless in 2016. --enable-sse2 now works in both precisions, dnl and is interpreted as --enable-sse in single precision. The old flag --enable--se dnl is still supported in single-precision only. AC_ARG_ENABLE(sse, [AS_HELP_STRING([--enable-sse],[enable SSE optimizations])], have_sse=$enableval, have_sse=no) if test "$have_sse" = "yes"; then if test "$PRECISION" != "s"; then AC_MSG_ERROR([SSE requires single precision]) fi fi AC_ARG_ENABLE(sse2, [AS_HELP_STRING([--enable-sse2],[enable SSE/SSE2 optimizations])], have_sse2=$enableval, have_sse2=no) if test "$have_sse" = "yes"; then have_sse2=yes; fi if test "$have_sse2" = "yes"; then AC_DEFINE(HAVE_SSE2,1,[Define to enable SSE/SSE2 optimizations.]) if test "$PRECISION" != "d" -a "$PRECISION" != "s"; then AC_MSG_ERROR([SSE2 requires single or double precision]) fi fi AM_CONDITIONAL(HAVE_SSE2, test "$have_sse2" = "yes") AC_ARG_ENABLE(avx, [AS_HELP_STRING([--enable-avx],[enable AVX optimizations])], have_avx=$enableval, have_avx=no) if test "$have_avx" = "yes"; then AC_DEFINE(HAVE_AVX,1,[Define to enable AVX optimizations.]) if test "$PRECISION" != "d" -a "$PRECISION" != "s"; then AC_MSG_ERROR([AVX requires single or double precision]) fi fi AM_CONDITIONAL(HAVE_AVX, test "$have_avx" = "yes") AC_ARG_ENABLE(avx2, [AS_HELP_STRING([--enable-avx2],[enable AVX2 optimizations])], have_avx2=$enableval, have_avx2=no) if test "$have_avx2" = "yes"; then AC_DEFINE(HAVE_AVX2,1,[Define to enable AVX2 optimizations.]) if test "$PRECISION" != "d" -a "$PRECISION" != "s"; then AC_MSG_ERROR([AVX2 requires single or double precision]) fi fi AM_CONDITIONAL(HAVE_AVX2, test "$have_avx2" = "yes") AC_ARG_ENABLE(avx512, [AS_HELP_STRING([--enable-avx512],[enable AVX512 optimizations])], have_avx512=$enableval, have_avx512=no) if test "$have_avx512" = "yes"; then AC_DEFINE(HAVE_AVX512,1,[Define to enable AVX512 optimizations.]) if test "$PRECISION" != "d" -a "$PRECISION" != "s"; then AC_MSG_ERROR([AVX512 requires single or double precision]) fi fi AM_CONDITIONAL(HAVE_AVX512, test "$have_avx512" = "yes") dnl 128-bit AVX is special. There is no reason to use it on Intel processors dnl since SSE2 is just as fast. However, on AMD processors we can both use dnl FMA4, and 128-bit SIMD is better than 256-bit since core pairs in a dnl compute unit can execute two 128-bit instructions independently. AC_ARG_ENABLE(avx-128-fma, [AS_HELP_STRING([--enable-avx-128-fma],[enable AVX128/FMA optimizations])], have_avx_128_fma=$enableval, have_avx_128_fma=no) if test "$have_avx_128_fma" = "yes"; then AC_DEFINE(HAVE_AVX_128_FMA,1,[Define to enable 128-bit FMA AVX optimization]) AVX_128_FMA_CFLAGS="${AVX_CFLAGS} -mfma4" AC_SUBST(AVX_128_FMA_CFLAGS) fi AM_CONDITIONAL(HAVE_AVX_128_FMA, test "$have_avx_128_fma" = "yes") AC_ARG_ENABLE(kcvi, [AS_HELP_STRING([--enable-kcvi],[enable Knights Corner vector instructions optimizations])], have_kcvi=$enableval, have_kcvi=no) if test "$have_kcvi" = "yes"; then AC_DEFINE(HAVE_KCVI,1,[Define to enable KCVI optimizations.]) if test "$PRECISION" != "d" -a "$PRECISION" != "s"; then AC_MSG_ERROR([Knights Corner vector instructions requires single or double precision]) fi fi AM_CONDITIONAL(HAVE_KCVI, test "$have_kcvi" = "yes") AC_ARG_ENABLE(altivec, [AS_HELP_STRING([--enable-altivec],[enable Altivec optimizations])], have_altivec=$enableval, have_altivec=no) if test "$have_altivec" = "yes"; then AC_DEFINE(HAVE_ALTIVEC,1,[Define to enable Altivec optimizations.]) if test "$PRECISION" != "s"; then AC_MSG_ERROR([Altivec requires single precision]) fi fi AM_CONDITIONAL(HAVE_ALTIVEC, test "$have_altivec" = "yes") AC_ARG_ENABLE(vsx, [AS_HELP_STRING([--enable-vsx],[enable IBM VSX optimizations])], have_vsx=$enableval, have_vsx=no) if test "$have_vsx" = "yes"; then AC_DEFINE(HAVE_VSX,1,[Define to enable IBM VSX optimizations.]) fi AM_CONDITIONAL(HAVE_VSX, test "$have_vsx" = "yes") AC_ARG_ENABLE(neon, [AS_HELP_STRING([--enable-neon],[enable ARM NEON optimizations])], have_neon=$enableval, have_neon=no) if test "$have_neon" = "yes"; then AC_DEFINE(HAVE_NEON,1,[Define to enable ARM NEON optimizations.]) case "${host_cpu}" in aarch64) ;; *) if test "$PRECISION" != "s"; then AC_MSG_ERROR([NEON requires single precision]) fi ;; esac fi AM_CONDITIONAL(HAVE_NEON, test "$have_neon" = "yes") AC_ARG_ENABLE(armv8-pmccntr-el0, [AS_HELP_STRING([--enable-armv8-pmccntr-el0],[enable the cycle counter on ARMv8 via the PMCCNTR_EL0 register (see README-perfcounters for details and mandatory instructions)])], have_armv8pmccntrel0=$enableval) if test "$have_armv8pmccntrel0"x = "yes"x; then AC_DEFINE(HAVE_ARMV8_PMCCNTR_EL0,1,[Define if you have enabled the PMCCNTR_EL0 cycle counter on ARMv8]) fi AC_ARG_ENABLE(armv8-cntvct-el0, [AS_HELP_STRING([--enable-armv8-cntvct-el0],[enable the cycle counter on ARMv8 via the CNTVCT_EL0 register (see README-perfcounters for details and mandatory instructions)])], have_armv8cntvctel0=$enableval) if test "$have_armv8cntvctel0"x = "yes"x; then AC_DEFINE(HAVE_ARMV8_CNTVCT_EL0,1,[Define if you have enabled the CNTVCT_EL0 cycle counter on ARMv8]) fi AC_ARG_ENABLE(armv7a-cntvct, [AS_HELP_STRING([--enable-armv7a-cntvct],[enable the cycle counter on Armv7a via the CNTVCT register (see README-perfcounters for details and mandatory instructions)])], have_armv7acntvct=$enableval) if test "$have_armv7acntvct"x = "yes"x; then AC_DEFINE(HAVE_ARMV7A_CNTVCT,1,[Define if you have enabled the CNTVCT cycle counter on ARMv7a]) fi AC_ARG_ENABLE(armv7a-pmccntr, [AS_HELP_STRING([--enable-armv7a-pmccntr],[enable the cycle counter on Armv7a via the PMCCNTR register (see README-perfcounters for details and mandatory instructions)])], have_armv7apmccntr=$enableval) if test "$have_armv7apmccntr"x = "yes"x; then AC_DEFINE(HAVE_ARMV7A_PMCCNTR,1,[Define if you have enabled the PMCCNTR cycle counter on ARMv7a]) fi AC_ARG_ENABLE(lsx, [AS_HELP_STRING([--enable-lsx],[enable LoongArch LSX optimizations])], have_lsx=$enableval, have_lsx=no) if test "$have_lsx" = "yes"; then AC_DEFINE(HAVE_LSX,1,[Define to enable LoongArch LSX optimizations.]) fi AM_CONDITIONAL(HAVE_LSX, test "$have_lsx" = "yes") AC_ARG_ENABLE(lasx, [AC_HELP_STRING([--enable-lasx],[enable LoongArch LASX optimizations])], have_lasx=$enableval, have_lasx=no) if test "$have_lasx" = "yes"; then AC_DEFINE(HAVE_LASX,1,[Define to enable LoongArch LASX optimizations.]) fi AM_CONDITIONAL(HAVE_LASX, test "$have_lasx" = "yes") AC_ARG_ENABLE(generic-simd128, [AS_HELP_STRING([--enable-generic-simd128],[enable generic (gcc) 128-bit SIMD optimizations])], have_generic_simd128=$enableval, have_generic_simd128=no) if test "$have_generic_simd128" = "yes"; then AC_DEFINE(HAVE_GENERIC_SIMD128,1,[Define to enable generic (gcc) 128-bit SIMD optimizations.]) fi AM_CONDITIONAL(HAVE_GENERIC_SIMD128, test "$have_generic_simd128" = "yes") AC_ARG_ENABLE(generic-simd256, [AS_HELP_STRING([--enable-generic-simd256],[enable generic (gcc) 256-bit SIMD optimizations])], have_generic_simd256=$enableval, have_generic_simd256=no) if test "$have_generic_simd256" = "yes"; then AC_DEFINE(HAVE_GENERIC_SIMD256,1,[Define to enable generic (gcc) 256-bit SIMD optimizations.]) fi AM_CONDITIONAL(HAVE_GENERIC_SIMD256, test "$have_generic_simd256" = "yes") AC_ARG_ENABLE(sve, [AC_HELP_STRING([--enable-sve],[enable ARM SVE optimizations])], have_sve=$enableval, have_sve=no) if test "$have_sve" = "yes"; then AC_DEFINE(HAVE_SVE,1,[Define to enable ARM SVE optimizations]) fi AM_CONDITIONAL(HAVE_SVE, test "$have_sve" = "yes") dnl FIXME: dnl AC_ARG_ENABLE(mips-ps, [AS_HELP_STRING([--enable-mips-ps],[enable MIPS pair-single optimizations])], have_mips_ps=$enableval, have_mips_ps=no) dnl if test "$have_mips_ps" = "yes"; then dnl AC_DEFINE(HAVE_MIPS_PS,1,[Define to enable MIPS paired-single optimizations.]) dnl if test "$PRECISION" != "s"; then dnl AC_MSG_ERROR([MIPS paired-single requires single precision]) dnl fi dnl fi dnl AM_CONDITIONAL(HAVE_MIPS_PS, test "$have_mips_ps" = "yes") AC_ARG_WITH(slow-timer, [AS_HELP_STRING([--with-slow-timer],[use low-precision timers (SLOW)])], with_slow_timer=$withval, with_slow_timer=no) if test "$with_slow_timer" = "yes"; then AC_DEFINE(WITH_SLOW_TIMER,1,[Use low-precision timers, making planner very slow]) fi AC_ARG_ENABLE(mips_zbus_timer, [AS_HELP_STRING([--enable-mips-zbus-timer],[use MIPS ZBus cycle-counter])], have_mips_zbus_timer=$enableval, have_mips_zbus_timer=no) if test "$have_mips_zbus_timer" = "yes"; then AC_DEFINE(HAVE_MIPS_ZBUS_TIMER,1,[Define to enable use of MIPS ZBus cycle-counter.]) fi AC_ARG_WITH(our-malloc, [AS_HELP_STRING([--with-our-malloc],[use our aligned malloc (helpful for Win32)])], with_our_malloc=$withval, with_our_malloc=no) AC_ARG_WITH(our-malloc16, [AS_HELP_STRING([--with-our-malloc16],[Obsolete alias for --with-our-malloc16])], with_our_malloc=$withval) if test "$with_our_malloc" = "yes"; then AC_DEFINE(WITH_OUR_MALLOC,1,[Use our own aligned malloc routine; mainly helpful for Windows systems lacking aligned allocation system-library routines.]) fi AC_ARG_WITH(windows-f77-mangling, [AS_HELP_STRING([--with-windows-f77-mangling],[use common Win32 Fortran interface styles])], with_windows_f77_mangling=$withval, with_windows_f77_mangling=no) if test "$with_windows_f77_mangling" = "yes"; then AC_DEFINE(WINDOWS_F77_MANGLING,1,[Use common Windows Fortran mangling styles for the Fortran interfaces.]) fi AC_ARG_WITH(incoming-stack-boundary, [AS_HELP_STRING([--with-incoming-stack-boundary=X],[Assume that stack is aligned to (1<]) CC=$save_CC if test 0 = $ac_cv_sizeof_MPI_Fint; then AC_MSG_WARN([sizeof(MPI_Fint) test failed]); dnl As a backup, assume Fortran integer == C int AC_CHECK_SIZEOF(int) if test 0 = $ac_cv_sizeof_int; then AC_MSG_ERROR([sizeof(int) test failed]); fi ac_cv_sizeof_MPI_Fint=$ac_cv_sizeof_int fi C_MPI_FINT=C_INT`expr $ac_cv_sizeof_MPI_Fint \* 8`_T AC_SUBST(C_MPI_FINT) fi AM_CONDITIONAL(MPI, test "$enable_mpi" = "yes") dnl ----------------------------------------------------------------------- dnl determine CFLAGS first AX_CC_MAXOPT case "${ax_cv_c_compiler_vendor}" in hp) # must (sometimes) manually increase cpp limits to handle fftw3.h AX_CHECK_COMPILE_FLAG([-Wp,-H128000], [CC="$CC -Wp,-H128000"]) ;; portland) # -Masmkeyword required for asm("") cycle counters AX_CHECK_COMPILE_FLAG([-Masmkeyword], [CC="$CC -Masmkeyword"]) ;; esac dnl Determine SIMD CFLAGS at least for gcc and icc case "${ax_cv_c_compiler_vendor}" in gnu|intel) # SSE/SSE2 if test "$have_sse2" = "yes" -a "x$SSE2_CFLAGS" = x; then if test "$PRECISION" = d; then flag=msse2; else flag=msse; fi AX_CHECK_COMPILE_FLAG(-$flag, [SSE2_CFLAGS="-$flag"], [AC_MSG_ERROR([Need a version of gcc with -$flag])]) fi # AVX if test "$have_avx" = "yes" -a "x$AVX_CFLAGS" = x; then AX_CHECK_COMPILE_FLAG(-mavx, [AVX_CFLAGS="-mavx"], [AC_MSG_ERROR([Need a version of gcc with -mavx])]) fi # AVX2 if test "$have_avx2" = "yes" -a "x$AVX2_CFLAGS" = x; then AX_CHECK_COMPILE_FLAG(-mavx2, [AVX2_CFLAGS="-mavx2"], [AC_MSG_ERROR([Need a version of gcc with -mavx2])]) AX_CHECK_COMPILE_FLAG(-mfma, [AVX2_CFLAGS="$AVX2_CFLAGS -mfma"], [AC_MSG_WARN([Need a version of gcc with -mfma (harmless for icc)])]) fi # AVX512 if test "$have_avx512" = "yes" -a "x$AVX512_CFLAGS" = x; then AX_CHECK_COMPILE_FLAG(-mavx512f, [AVX512_CFLAGS="-mavx512f"], [AC_MSG_ERROR([Need a version of gcc with -mavx512f])]) fi if test "$host_vendor" = "apple"; then # We need to tell gcc to use an external assembler to get AVX/AVX2 with gcc on OS X AX_CHECK_COMPILE_FLAG([-Wa,-q], [CFLAGS="$CFLAGS -Wa,-q"]) # Disable the new compact unwinding format so we avoid warnings/potential errors. AX_CHECK_LINK_FLAG([-Wl,-no_compact_unwind], [CFLAGS="$CFLAGS -Wl,-no_compact_unwind"]) fi # KCVI if test "$have_kcvi" = "yes" -a "x$KCVI_CFLAGS" = x; then AX_CHECK_COMPILE_FLAG(-mmic, [KCVI_CFLAGS="-mmic"], [AC_MSG_ERROR([Need a version of icc with -mmic])]) fi if test "$have_altivec" = "yes" -a "x$ALTIVEC_CFLAGS" = x; then # -DFAKE__VEC__ is a workaround because gcc-3.3 does not # #define __VEC__ with -maltivec. AX_CHECK_COMPILE_FLAG(-faltivec, [ALTIVEC_CFLAGS="-faltivec"], [AX_CHECK_COMPILE_FLAG(-maltivec -mabi=altivec, [ALTIVEC_CFLAGS="-maltivec -mabi=altivec -DFAKE__VEC__"], [AX_CHECK_COMPILE_FLAG(-fvec, [ALTIVEC_CFLAGS="-fvec"], [AC_MSG_ERROR([Need a version of gcc with -maltivec])])])]) fi case "${host_cpu}" in aarch64) ;; *) if test "$have_neon" = "yes" -a "x$NEON_CFLAGS" = x; then AX_CHECK_COMPILE_FLAG(-mfpu=neon, [NEON_CFLAGS="-mfpu=neon"], [AC_MSG_ERROR([Need a version of gcc with -mfpu=neon])]) fi ;; esac if test "$have_vsx" = "yes" -a "x$VSX_CFLAGS" = x; then AX_CHECK_COMPILE_FLAG(-mvsx, [VSX_CFLAGS="-mvsx"], [AC_MSG_ERROR([Need a version of gcc with -mvsx])]) fi # LSX if test "$have_lsx" = "yes" -a "x$LSX_CFLAGS" = x; then AX_CHECK_COMPILE_FLAG(-mlsx, [LSX_CFLAGS="-mlsx"], [AC_MSG_ERROR([Need a version of gcc with -mlsx])]) fi # LASX if test "$have_lasx" = "yes" -a "x$LASX_CFLAGS" = x; then AX_CHECK_COMPILE_FLAG(-mlasx, [LASX_CFLAGS="-mlasx"], [AC_MSG_ERROR([Need a version of gcc with -mlasx])]) fi dnl FIXME: dnl elif test "$have_mips_ps" = "yes"; then dnl # Just punt here and use only new 4.2 compiler :( dnl # Should add section for older compilers... dnl AX_CHECK_COMPILE_FLAG(-mpaired-single, dnl [SIMD_CFLAGS="-mpaired-single"], dnl #[AC_MSG_ERROR([Need a version of gcc with -mpaired-single])]) dnl [AX_CHECK_COMPILE_FLAG(-march=mips64, dnl [SIMD_CFLAGS="-march=mips64"], dnl [AC_MSG_ERROR( dnl [Need a version of gcc with -mpaired-single or -march=mips64]) dnl ])]) dnl fi ;; clang) if test "$have_avx" = "yes" -a "x$AVX_CFLAGS" = x; then AX_CHECK_COMPILE_FLAG(-mavx, [AVX_CFLAGS="-mavx"], [AC_MSG_ERROR([Need a version of clang with -mavx])]) fi if test "$have_avx2" = "yes" -a "x$AVX2_CFLAGS" = x; then AX_CHECK_COMPILE_FLAG(-mavx2, [AVX2_CFLAGS="-mavx2"], [AC_MSG_ERROR([Need a version of clang with -mavx2])]) AX_CHECK_COMPILE_FLAG(-mfma, [AVX2_CFLAGS="$AVX2_CFLAGS -mfma"]) fi # AVX512 if test "$have_avx512" = "yes" -a "x$AVX512_CFLAGS" = x; then AX_CHECK_COMPILE_FLAG(-mavx512f, [AVX512_CFLAGS="-mavx512f"], [AC_MSG_ERROR([Need a version of clang with -mavx512f])]) fi if test "$have_vsx" = "yes" -a "x$VSX_CFLAGS" = x; then # clang appears to need both -mvsx and -maltivec for VSX AX_CHECK_COMPILE_FLAG(-maltivec, [VSX_CFLAGS="-maltivec"], [AC_MSG_ERROR([Need a version of gcc with -maltivec])]) AX_CHECK_COMPILE_FLAG(-mvsx, [VSX_CFLAGS="-mvsx $VSX_CFLAGS"], [AC_MSG_ERROR([Need a version of gcc with -mvsx])]) fi # LSX if test "$have_lsx" = "yes" -a "x$LSX_CFLAGS" = x; then AX_CHECK_COMPILE_FLAG(-mlsx, [LSX_CFLAGS="-mlsx"], [AC_MSG_ERROR([Need a version of clang with -mlsx])]) fi # LASX if test "$have_lasx" = "yes" -a "x$LASX_CFLAGS" = x; then AX_CHECK_COMPILE_FLAG(-mlasx, [LASX_CFLAGS="-mlasx"], [AC_MSG_ERROR([Need a version of clang with -mlasx])]) fi ;; ibm) if test "$have_vsx" = "yes" -a "x$VSX_CFLAGS" = x; then # Note that IBM xlC uses -qaltivec for VSX too. AX_CHECK_COMPILE_FLAG(-qaltivec, [VSX_CFLAGS="-qaltivec"], [AC_MSG_ERROR([Need a version of gcc with -qaltivec])]) fi ;; esac AC_SUBST(SSE2_CFLAGS) AC_SUBST(AVX_CFLAGS) AC_SUBST(AVX2_CFLAGS) AC_SUBST(AVX512_CFLAGS) AC_SUBST(KCVI_CFLAGS) AC_SUBST(ALTIVEC_CFLAGS) AC_SUBST(VSX_CFLAGS) AC_SUBST(NEON_CFLAGS) AC_SUBST(LSX_CFLAGS) AC_SUBST(LASX_CFLAGS) dnl add stack alignment CFLAGS if so requested if test "$with_incoming_stack_boundary"x != "no"x; then case "${ax_cv_c_compiler_vendor}" in gnu) tentative_flags="-mincoming-stack-boundary=$with_incoming_stack_boundary"; AX_CHECK_COMPILE_FLAG($tentative_flags, [STACK_ALIGN_CFLAGS=$tentative_flags]) ;; esac fi AC_SUBST(STACK_ALIGN_CFLAGS) dnl Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS([fcntl.h fenv.h limits.h malloc.h stddef.h sys/time.h]) dnl c_asm.h: Header file for enabling asm() on Digital Unix dnl intrinsics.h: cray unicos dnl sys/sysctl.h: MacOS X altivec detection dnl altivec.h requires $ALTIVEC_CFLAGS (we use this for VSX too, which uses the same header) save_CFLAGS="$CFLAGS" save_CPPFLAGS="$CPPFLAGS" CFLAGS="$CFLAGS $ALTIVEC_CFLAGS $VSX_CFLAGS" CPPFLAGS="$CPPFLAGS $ALTIVEC_CFLAGS $VSX_CFLAGS" AC_CHECK_HEADERS([altivec.h]) CFLAGS="$save_CFLAGS" CPPFLAGS="$save_CPPFLAGS" dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_C_INLINE AC_TYPE_SIZE_T AC_TYPE_UINT32_T AC_TYPE_UINT64_T AC_HEADER_TIME AC_CHECK_TYPE([long double], [AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define to 1 if the compiler supports `long double'])], [ if test $PRECISION = l; then AC_MSG_ERROR([long double is not a supported type with your compiler.]) fi ]) AC_CHECK_TYPE([hrtime_t],[AC_DEFINE(HAVE_HRTIME_T, 1, [Define to 1 if hrtime_t is defined in ])],, [ #if HAVE_SYS_TIME_H #include #endif ]) AC_CHECK_SIZEOF(int) AC_CHECK_SIZEOF(unsigned int) AC_CHECK_SIZEOF(long) AC_CHECK_SIZEOF(unsigned long) AC_CHECK_SIZEOF(long long) AC_CHECK_SIZEOF(unsigned long long) AC_CHECK_SIZEOF(size_t) AC_CHECK_SIZEOF(ptrdiff_t) AC_CHECK_TYPES([ptrdiff_t]) AC_CHECK_TYPES(uintptr_t, [], [AC_CHECK_SIZEOF(void *)], [$ac_includes_default #ifdef HAVE_STDINT_H # include #endif]) AC_CHECK_SIZEOF(float) AC_CHECK_SIZEOF(double) dnl Check sizeof fftw_r2r_kind for Fortran interface [it has == sizeof(int) dnl for years, but being paranoid]. Note: the definition here must match dnl the one in api/fftw3.h! AC_CHECK_SIZEOF(fftw_r2r_kind, [], [typedef enum { FFTW_R2HC=0, FFTW_HC2R=1, FFTW_DHT=2, FFTW_REDFT00=3, FFTW_REDFT01=4, FFTW_REDFT10=5, FFTW_REDFT11=6, FFTW_RODFT00=7, FFTW_RODFT01=8, FFTW_RODFT10=9, FFTW_RODFT11=10 } fftw_r2r_kind;]) if test 0 = $ac_cv_sizeof_fftw_r2r_kind; then AC_MSG_ERROR([sizeof(fftw_r2r_kind) test failed]); fi C_FFTW_R2R_KIND=C_INT`expr $ac_cv_sizeof_fftw_r2r_kind \* 8`_T AC_SUBST(C_FFTW_R2R_KIND) dnl Checks for library functions. AC_FUNC_ALLOCA AC_FUNC_STRTOD AC_FUNC_VPRINTF AC_CHECK_LIB(m, sin) if test $PRECISION = q; then AX_GCC_VERSION(4,6,0,[],[AC_MSG_ERROR([gcc 4.6 or later required for quad precision support])]) AC_CHECK_LIB(quadmath, sinq, [], [AC_MSG_ERROR([quad precision requires libquadmath for quad-precision trigonometric routines])]) LIBQUADMATH=-lquadmath fi AC_SUBST(LIBQUADMATH) AC_CHECK_FUNCS([BSDgettimeofday gettimeofday gethrtime read_real_time time_base_to_time drand48 sqrt memset posix_memalign memalign _mm_malloc _mm_free clock_gettime mach_absolute_time sysctl abort sinl cosl snprintf memmove strchr getpagesize]) AC_CHECK_DECLS([sinl, cosl, sinq, cosq],,,[#include ]) AC_CHECK_DECLS([memalign],,,[ #ifdef HAVE_MALLOC_H #include #endif]) AC_CHECK_DECLS([drand48, srand48, posix_memalign]) dnl in stdlib.h dnl Cray UNICOS _rtc() (real-time clock) intrinsic AC_MSG_CHECKING([for _rtc intrinsic]) rtc_ok=yes AC_LINK_IFELSE([AC_LANG_PROGRAM([[#ifdef HAVE_INTRINSICS_H #include #endif]], [[_rtc()]])],[AC_DEFINE(HAVE__RTC,1,[Define if you have the UNICOS _rtc() intrinsic.])],[rtc_ok=no]) AC_MSG_RESULT($rtc_ok) if test "$PRECISION" = "l"; then AC_CHECK_FUNCS([cosl sinl tanl], [], [AC_MSG_ERROR([long-double precision requires long-double trigonometric routines])]) fi AC_MSG_CHECKING([for isnan]) AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], [[if (!isnan(3.14159)) isnan(2.7183);]])],[ok=yes],[ok=no]) if test "$ok" = "yes"; then AC_DEFINE(HAVE_ISNAN,1,[Define if the isnan() function/macro is available.]) fi AC_MSG_RESULT(${ok}) dnl TODO AX_GCC_ALIGNS_STACK() dnl override CFLAGS selection when debugging if test "${enable_debug}" = "yes"; then CFLAGS="-g" fi dnl add gcc warnings, in debug/maintainer mode only if test "$enable_debug" = yes || test "$USE_MAINTAINER_MODE" = yes; then if test "x$ac_test_CFLAGS" != "xset" -a "x$ac_test_CFLAGS" != "xy"; then if test $ac_cv_c_compiler_gnu = yes; then CFLAGS="$CFLAGS -Wall -W -Wcast-qual -Wpointer-arith -Wcast-align -pedantic -Wno-long-long -Wshadow -Wbad-function-cast -Wwrite-strings -Wstrict-prototypes -Wredundant-decls -Wnested-externs" # -Wundef -Wconversion -Wmissing-prototypes -Wmissing-declarations fi fi fi dnl check for a proper indent in maintainer mode if test "$USE_MAINTAINER_MODE" = yes; then AC_PATH_PROG(INDENT, indent, indent) # if INDENT is set to 'indent' then we didn't find indent if test "$INDENT" != indent ; then AC_MSG_CHECKING(if $INDENT is GNU indent) if $INDENT --version 2>/dev/null | head -n 1|grep "GNU indent" > /dev/null ; then AC_MSG_RESULT(yes) INDENT="$INDENT -kr -cs -i5 -l800 -fca -nfc1 -sc -sob -cli4 -TR -Tplanner -TV" else AC_MSG_RESULT(no) AC_MSG_WARN($INDENT does not appear to be GNU indent.) fi else AC_MSG_WARN(no indent program found: codelets will be ugly) INDENT=cat fi fi dnl ----------------------------------------------------------------------- AC_ARG_ENABLE(fortran, [AS_HELP_STRING([--disable-fortran],[don't include Fortran-callable wrappers])], enable_fortran=$enableval, enable_fortran=yes) if test "$enable_fortran" = "yes"; then AC_PROG_F77 if test -z "$F77"; then enable_fortran=no AC_MSG_WARN([*** Couldn't find f77 compiler; using default Fortran wrappers.]) else AC_F77_DUMMY_MAIN([], [enable_fortran=no AC_MSG_WARN([*** Couldn't figure out how to link C and Fortran; using default Fortran wrappers.])]) fi else AC_DEFINE([DISABLE_FORTRAN], 1, [Define to disable Fortran wrappers.]) fi if test "x$enable_fortran" = xyes; then AC_F77_WRAPPERS AC_F77_FUNC(f77foo) AC_F77_FUNC(f77_foo) f77_foo2=`echo $f77foo | sed 's/77/77_/'` if test "$f77_foo" = "$f77_foo2"; then AC_DEFINE(F77_FUNC_EQUIV, 1, [Define if F77_FUNC and F77_FUNC_ are equivalent.]) # Include g77 wrappers by default for GNU systems or gfortran with_g77_wrappers=$ac_cv_f77_compiler_gnu case $host_os in *gnu*) with_g77_wrappers=yes ;; esac fi else with_g77_wrappers=no fi AC_ARG_WITH(g77-wrappers, [AS_HELP_STRING([--with-g77-wrappers],[force inclusion of g77-compatible wrappers in addition to any other Fortran compiler that is detected])], with_g77_wrappers=$withval) if test "x$with_g77_wrappers" = "xyes"; then AC_DEFINE(WITH_G77_WRAPPERS,1,[Include g77-compatible wrappers in addition to any other Fortran wrappers.]) fi dnl ----------------------------------------------------------------------- have_smp="no" AC_ARG_ENABLE(openmp, [AS_HELP_STRING([--enable-openmp],[use OpenMP directives for parallelism])], enable_openmp=$enableval, enable_openmp=no) if test "$enable_openmp" = "yes"; then AC_DEFINE(HAVE_OPENMP,1,[Define to enable OpenMP]) AX_OPENMP([], [AC_MSG_ERROR([don't know how to enable OpenMP])]) fi if test "$have_sve" = "yes"; then ACX_SVE([sve_ok=yes], [sve_ok=no]) if test "$sve_ok" != "yes"; then AC_MSG_ERROR([Cannot build a SVE program, aborting]) fi fi AC_ARG_ENABLE(threads, [AS_HELP_STRING([--enable-threads],[compile FFTW SMP threads library])], enable_threads=$enableval, enable_threads=no) if test "$enable_threads" = "yes"; then AC_DEFINE(HAVE_THREADS,1,[Define to enable SMP threads]) fi AC_ARG_WITH(combined-threads, [AS_HELP_STRING([--with-combined-threads],[combine threads into main libfftw3])], with_combined_threads=$withval, with_combined_threads=no) if test "$with_combined_threads" = yes; then if test "$enable_openmp" = "yes"; then AC_MSG_ERROR([--with-combined-threads incompatible with --enable-openmp]) fi if test "$enable_threads" != "yes"; then AC_MSG_ERROR([--with-combined-threads requires --enable-threads]) fi fi dnl Check for threads library... THREADLIBS="" if test "$enable_threads" = "yes"; then # Win32 threads are the default on Windows: if test -z "$THREADLIBS"; then AC_MSG_CHECKING([for Win32 threads]) AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include #include ]], [[_beginthreadex(0,0,0,0,0,0);]])],[THREADLIBS=" "; AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)]) fi # POSIX threads, the default choice everywhere else: if test -z "$THREADLIBS"; then ACX_PTHREAD([THREADLIBS="$PTHREAD_LIBS " CC="$PTHREAD_CC" AC_DEFINE(USING_POSIX_THREADS, 1, [Define if we have and are using POSIX threads.])]) fi if test -z "$THREADLIBS"; then AC_MSG_ERROR([couldn't find threads library for --enable-threads]) fi AC_DEFINE(HAVE_THREADS, 1, [Define if we have a threads library.]) fi AC_SUBST(THREADLIBS) AM_CONDITIONAL(THREADS, test "$enable_threads" = "yes") AM_CONDITIONAL(OPENMP, test "$enable_openmp" = "yes") AM_CONDITIONAL(SMP, test "$enable_threads" = "yes" -o "$enable_openmp" = "yes") AM_CONDITIONAL(COMBINED_THREADS, test x"$with_combined_threads" = xyes) dnl ----------------------------------------------------------------------- AC_MSG_CHECKING([whether a cycle counter is available]) save_CPPFLAGS=$CPPFLAGS CPPFLAGS="$CPPFLAGS -I$srcdir/kernel" AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include "cycle.h" #ifndef HAVE_TICK_COUNTER # error No cycle counter #endif]])],[ok=yes],[ok=no]) CPPFLAGS=$save_CPPFLAGS AC_MSG_RESULT($ok) if test $ok = no && test "x$with_slow_timer" = xno; then echo "***************************************************************" echo "WARNING: No cycle counter found. FFTW will use ESTIMATE mode " echo " for all plans. See the manual for more information." echo "***************************************************************" fi dnl ----------------------------------------------------------------------- AC_DEFINE_UNQUOTED(FFTW_CC, "$CC $CFLAGS", [C compiler name and flags]) AC_CONFIG_FILES([ Makefile support/Makefile genfft/Makefile kernel/Makefile simd-support/Makefile dft/Makefile dft/scalar/Makefile dft/scalar/codelets/Makefile dft/simd/Makefile dft/simd/common/Makefile dft/simd/sse2/Makefile dft/simd/avx/Makefile dft/simd/avx-128-fma/Makefile dft/simd/avx2/Makefile dft/simd/avx2-128/Makefile dft/simd/avx512/Makefile dft/simd/kcvi/Makefile dft/simd/altivec/Makefile dft/simd/vsx/Makefile dft/simd/neon/Makefile dft/simd/sve128/Makefile dft/simd/sve256/Makefile dft/simd/sve512/Makefile dft/simd/sve1024/Makefile dft/simd/sve2048/Makefile dft/simd/lsx/Makefile dft/simd/lasx/Makefile dft/simd/generic-simd128/Makefile dft/simd/generic-simd256/Makefile rdft/Makefile rdft/scalar/Makefile rdft/scalar/r2cf/Makefile rdft/scalar/r2cb/Makefile rdft/scalar/r2r/Makefile rdft/simd/Makefile rdft/simd/common/Makefile rdft/simd/sse2/Makefile rdft/simd/avx/Makefile rdft/simd/avx-128-fma/Makefile rdft/simd/avx2/Makefile rdft/simd/avx2-128/Makefile rdft/simd/avx512/Makefile rdft/simd/kcvi/Makefile rdft/simd/altivec/Makefile rdft/simd/vsx/Makefile rdft/simd/neon/Makefile rdft/simd/sve128/Makefile rdft/simd/sve256/Makefile rdft/simd/sve512/Makefile rdft/simd/sve1024/Makefile rdft/simd/sve2048/Makefile rdft/simd/lsx/Makefile rdft/simd/lasx/Makefile rdft/simd/generic-simd128/Makefile rdft/simd/generic-simd256/Makefile reodft/Makefile threads/Makefile api/Makefile mpi/Makefile libbench2/Makefile tests/Makefile doc/Makefile doc/FAQ/Makefile tools/Makefile tools/fftw_wisdom.1 tools/fftw-wisdom-to-conf m4/Makefile fftw.pc ]) AC_OUTPUT fftw-3.3.11/aclocal.m40000644000175000017500000014512515170655153010106 # generated automatically by aclocal 1.17 -*- Autoconf -*- # Copyright (C) 1996-2024 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.72],, [m4_warning([this file was generated for autoconf 2.72. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # Copyright (C) 2002-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.17' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.17], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.17])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to # '$srcdir', '$srcdir/..', or '$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is '.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl # Expand $ac_aux_dir to an absolute path. am_aux_dir=`cd "$ac_aux_dir" && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], [$1], [CXX], [depcc="$CXX" am_compiler_list=], [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], [$1], [UPC], [depcc="$UPC" am_compiler_list=], [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thus: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES. AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE([dependency-tracking], [dnl AS_HELP_STRING( [--enable-dependency-tracking], [do not reject slow dependency extractors]) AS_HELP_STRING( [--disable-dependency-tracking], [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Older Autoconf quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. # TODO: see whether this extra hack can be removed once we start # requiring Autoconf 2.70 or later. AS_CASE([$CONFIG_FILES], [*\'*], [eval set x "$CONFIG_FILES"], [*], [set x $CONFIG_FILES]) shift # Used to flag and report bootstrapping failures. am_rc=0 for am_mf do # Strip MF so we end up with the name of the file. am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile which includes # dependency-tracking related rules and includes. # Grep'ing the whole file directly is not great: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ || continue am_dirpart=`AS_DIRNAME(["$am_mf"])` am_filepart=`AS_BASENAME(["$am_mf"])` AM_RUN_LOG([cd "$am_dirpart" \ && sed -e '/# am--include-marker/d' "$am_filepart" \ | $MAKE -f - am--depfiles]) || am_rc=$? done if test $am_rc -ne 0; then AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments for automatic dependency tracking. If GNU make was not used, consider re-running the configure script with MAKE="gmake" (or whatever is necessary). You can also try re-running configure with the '--disable-dependency-tracking' option to at least be able to build the package (albeit without support for automatic dependency tracking).]) fi AS_UNSET([am_dirpart]) AS_UNSET([am_filepart]) AS_UNSET([am_mf]) AS_UNSET([am_rc]) rm -f conftest-deps.mk } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking is enabled. # This creates each '.Po' and '.Plo' makefile fragment that we'll need in # order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC]) [_AM_PROG_CC_C_O ]) # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])dnl m4_ifdef([_$0_ALREADY_INIT], [m4_fatal([$0 expanded multiple times ]m4_defn([_$0_ALREADY_INIT]))], [m4_define([_$0_ALREADY_INIT], m4_expansion_stack)])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [AC_DIAGNOSE([obsolete], [$0: two- and three-arguments forms are deprecated.]) m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if( m4_ifset([AC_PACKAGE_NAME], [ok]):m4_ifset([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) AM_MISSING_PROG([AUTOCONF], [autoconf]) AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) AM_MISSING_PROG([AUTOHEADER], [autoheader]) AM_MISSING_PROG([MAKEINFO], [makeinfo]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl # For better backward compatibility. To be removed once Automake 1.9.x # dies out for good. For more background, see: # # AC_SUBST([mkdir_p], ['$(MKDIR_P)']) # We need awk for the "check" target (and possibly the TAP driver). The # system "awk" is bad on some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES([CC])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl ]) # Variables for tags utilities; see am/tags.am if test -z "$CTAGS"; then CTAGS=ctags fi AC_SUBST([CTAGS]) if test -z "$ETAGS"; then ETAGS=etags fi AC_SUBST([ETAGS]) if test -z "$CSCOPE"; then CSCOPE=cscope fi AC_SUBST([CSCOPE]) AC_REQUIRE([_AM_SILENT_RULES])dnl dnl The testsuite driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl AC_REQUIRE([_AM_PROG_RM_F]) AC_REQUIRE([_AM_PROG_XARGS_N]) dnl The trailing newline in this macro's definition is deliberate, for dnl backward compatibility and to allow trailing 'dnl'-style comments dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. ]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST([install_sh])]) # Copyright (C) 2003-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Add --enable-maintainer-mode option to configure. -*- Autoconf -*- # From Jim Meyering # Copyright (C) 1996-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MAINTAINER_MODE([DEFAULT-MODE]) # ---------------------------------- # Control maintainer-specific portions of Makefiles. # Default is to disable them, unless 'enable' is passed literally. # For symmetry, 'disable' may be passed as well. Anyway, the user # can override the default with the --enable/--disable switch. AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), [enable], [m4_define([am_maintainer_other], [disable])], [disable], [m4_define([am_maintainer_other], [enable])], [m4_define([am_maintainer_other], [enable]) m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) dnl maintainer-mode's default is 'disable' unless 'enable' is passed AC_ARG_ENABLE([maintainer-mode], [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], am_maintainer_other[ make rules and dependencies not useful (and sometimes confusing) to the casual installer])], [USE_MAINTAINER_MODE=$enableval], [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) AC_MSG_RESULT([$USE_MAINTAINER_MODE]) AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) MAINT=$MAINTAINER_MODE_TRUE AC_SUBST([MAINT])dnl ] ) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MAKE_INCLUDE() # ----------------- # Check whether make has an 'include' directive that can support all # the idioms we need for our automatic dependency tracking code. AC_DEFUN([AM_MAKE_INCLUDE], [AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive]) cat > confinc.mk << 'END' am__doit: @echo this is the am__doit target >confinc.out .PHONY: am__doit END am__include="#" am__quote= # BSD make does it like this. echo '.include "confinc.mk" # ignored' > confmf.BSD # Other make implementations (GNU, Solaris 10, AIX) do it like this. echo 'include confinc.mk # ignored' > confmf.GNU _am_result=no for s in GNU BSD; do AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out]) AS_CASE([$?:`cat confinc.out 2>/dev/null`], ['0:this is the am__doit target'], [AS_CASE([$s], [BSD], [am__include='.include' am__quote='"'], [am__include='include' am__quote=''])]) if test "$am__include" != "#"; then _am_result="yes ($s style)" break fi done rm -f confinc.* confmf.* AC_MSG_RESULT([${_am_result}]) AC_SUBST([am__include])]) AC_SUBST([am__quote])]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it is modern enough. # If it is, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then MISSING="\${SHELL} '$am_aux_dir/missing'" fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then am_missing_run="$MISSING " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) fi ]) # -*- Autoconf -*- # Obsolete and "removed" macros, that must however still report explicit # error messages when used, to smooth transition. # # Copyright (C) 1996-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. AC_DEFUN([AM_CONFIG_HEADER], [m4_warn([obsolete], ['$0': this macro is obsolete. You should use the 'AC][_CONFIG_HEADERS' macro instead.])dnl AC_CONFIG_HEADERS($@)]) AC_DEFUN([AM_PROG_CC_STDC], [AC_PROG_CC am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc m4_warn([obsolete], ['$0': this macro is obsolete. You should simply use the 'AC][_PROG_CC' macro instead. Also, your code should no longer depend upon 'am_cv_prog_cc_stdc', but upon 'ac_cv_prog_cc_stdc'.])]) AC_DEFUN([AM_C_PROTOTYPES], [AC_FATAL([automatic de-ANSI-fication support has been removed])]) AU_DEFUN([fp_C_PROTOTYPES], [AM_C_PROTOTYPES]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), [1])]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Copyright (C) 1999-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_CC_C_O # --------------- # Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC # to automatically call this. AC_DEFUN([_AM_PROG_CC_C_O], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([compile])dnl AC_LANG_PUSH([C])dnl AC_CACHE_CHECK( [whether $CC understands -c and -o together], [am_cv_prog_cc_c_o], [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) # Make sure it works both with $CC and with simple cc. # Following AC_PROG_CC_C_O, we do the test twice because some # compilers refuse to overwrite an existing .o file with -o, # though they will create one. am_cv_prog_cc_c_o=yes for am_i in 1 2; do if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ && test -f conftest2.$ac_objext; then : OK else am_cv_prog_cc_c_o=no break fi done rm -f core conftest* unset am_i]) if test "$am_cv_prog_cc_c_o" != yes; then # Losing compiler, so override with the script. # FIXME: It is wrong to rewrite CC. # But if we don't then we get into trouble of one sort or another. # A longer-term fix would be to have automake use am__CC in this case, # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" CC="$am_aux_dir/compile $CC" fi AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) # Copyright (C) 2022-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_RM_F # --------------- # Check whether 'rm -f' without any arguments works. # https://bugs.gnu.org/10828 AC_DEFUN([_AM_PROG_RM_F], [am__rm_f_notfound= AS_IF([(rm -f && rm -fr && rm -rf) 2>/dev/null], [], [am__rm_f_notfound='""']) AC_SUBST(am__rm_f_notfound) ]) # Copyright (C) 2001-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_RUN_LOG(COMMAND) # ------------------- # Run COMMAND, save the exit status in ac_status, and log it. # (This has been adapted from Autoconf's _AC_RUN_LOG macro.) AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD ac_status=$? echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD (exit $ac_status); }]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_SLEEP_FRACTIONAL_SECONDS # ---------------------------- AC_DEFUN([_AM_SLEEP_FRACTIONAL_SECONDS], [dnl AC_CACHE_CHECK([whether sleep supports fractional seconds], am_cv_sleep_fractional_seconds, [dnl AS_IF([sleep 0.001 2>/dev/null], [am_cv_sleep_fractional_seconds=yes], [am_cv_sleep_fractional_seconds=no]) ])]) # _AM_FILESYSTEM_TIMESTAMP_RESOLUTION # ----------------------------------- # Determine the filesystem's resolution for file modification # timestamps. The coarsest we know of is FAT, with a resolution # of only two seconds, even with the most recent "exFAT" extensions. # The finest (e.g. ext4 with large inodes, XFS, ZFS) is one # nanosecond, matching clock_gettime. However, it is probably not # possible to delay execution of a shell script for less than one # millisecond, due to process creation overhead and scheduling # granularity, so we don't check for anything finer than that. (See below.) AC_DEFUN([_AM_FILESYSTEM_TIMESTAMP_RESOLUTION], [dnl AC_REQUIRE([_AM_SLEEP_FRACTIONAL_SECONDS]) AC_CACHE_CHECK([filesystem timestamp resolution], am_cv_filesystem_timestamp_resolution, [dnl # Default to the worst case. am_cv_filesystem_timestamp_resolution=2 # Only try to go finer than 1 sec if sleep can do it. # Don't try 1 sec, because if 0.01 sec and 0.1 sec don't work, # - 1 sec is not much of a win compared to 2 sec, and # - it takes 2 seconds to perform the test whether 1 sec works. # # Instead, just use the default 2s on platforms that have 1s resolution, # accept the extra 1s delay when using $sleep in the Automake tests, in # exchange for not incurring the 2s delay for running the test for all # packages. # am_try_resolutions= if test "$am_cv_sleep_fractional_seconds" = yes; then # Even a millisecond often causes a bunch of false positives, # so just try a hundredth of a second. The time saved between .001 and # .01 is not terribly consequential. am_try_resolutions="0.01 0.1 $am_try_resolutions" fi # In order to catch current-generation FAT out, we must *modify* files # that already exist; the *creation* timestamp is finer. Use names # that make ls -t sort them differently when they have equal # timestamps than when they have distinct timestamps, keeping # in mind that ls -t prints the *newest* file first. rm -f conftest.ts? : > conftest.ts1 : > conftest.ts2 : > conftest.ts3 # Make sure ls -t actually works. Do 'set' in a subshell so we don't # clobber the current shell's arguments. (Outer-level square brackets # are removed by m4; they're present so that m4 does not expand # ; be careful, easy to get confused.) if ( set X `[ls -t conftest.ts[12]]` && { test "$[]*" != "X conftest.ts1 conftest.ts2" || test "$[]*" != "X conftest.ts2 conftest.ts1"; } ); then :; else # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". _AS_ECHO_UNQUOTED( ["Bad output from ls -t: \"`[ls -t conftest.ts[12]]`\""], [AS_MESSAGE_LOG_FD]) AC_MSG_FAILURE([ls -t produces unexpected output. Make sure there is not a broken ls alias in your environment.]) fi for am_try_res in $am_try_resolutions; do # Any one fine-grained sleep might happen to cross the boundary # between two values of a coarser actual resolution, but if we do # two fine-grained sleeps in a row, at least one of them will fall # entirely within a coarse interval. echo alpha > conftest.ts1 sleep $am_try_res echo beta > conftest.ts2 sleep $am_try_res echo gamma > conftest.ts3 # We assume that 'ls -t' will make use of high-resolution # timestamps if the operating system supports them at all. if (set X `ls -t conftest.ts?` && test "$[]2" = conftest.ts3 && test "$[]3" = conftest.ts2 && test "$[]4" = conftest.ts1); then # # Ok, ls -t worked. If we're at a resolution of 1 second, we're done, # because we don't need to test make. make_ok=true if test $am_try_res != 1; then # But if we've succeeded so far with a subsecond resolution, we # have one more thing to check: make. It can happen that # everything else supports the subsecond mtimes, but make doesn't; # notably on macOS, which ships make 3.81 from 2006 (the last one # released under GPLv2). https://bugs.gnu.org/68808 # # We test $MAKE if it is defined in the environment, else "make". # It might get overridden later, but our hope is that in practice # it does not matter: it is the system "make" which is (by far) # the most likely to be broken, whereas if the user overrides it, # probably they did so with a better, or at least not worse, make. # https://lists.gnu.org/archive/html/automake/2024-06/msg00051.html # # Create a Makefile (real tab character here): rm -f conftest.mk echo 'conftest.ts1: conftest.ts2' >conftest.mk echo ' touch conftest.ts2' >>conftest.mk # # Now, running # touch conftest.ts1; touch conftest.ts2; make # should touch ts1 because ts2 is newer. This could happen by luck, # but most often, it will fail if make's support is insufficient. So # test for several consecutive successes. # # (We reuse conftest.ts[12] because we still want to modify existing # files, not create new ones, per above.) n=0 make=${MAKE-make} until test $n -eq 3; do echo one > conftest.ts1 sleep $am_try_res echo two > conftest.ts2 # ts2 should now be newer than ts1 if $make -f conftest.mk | grep 'up to date' >/dev/null; then make_ok=false break # out of $n loop fi n=`expr $n + 1` done fi # if $make_ok; then # Everything we know to check worked out, so call this resolution good. am_cv_filesystem_timestamp_resolution=$am_try_res break # out of $am_try_res loop fi # Otherwise, we'll go on to check the next resolution. fi done rm -f conftest.ts? # (end _am_filesystem_timestamp_resolution) ])]) # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_REQUIRE([_AM_FILESYSTEM_TIMESTAMP_RESOLUTION]) # This check should not be cached, as it may vary across builds of # different projects. AC_MSG_CHECKING([whether build environment is sane]) # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). am_build_env_is_sane=no am_has_slept=no rm -f conftest.file for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file if ( set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[]*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi test "$[]2" = conftest.file ); then am_build_env_is_sane=yes break fi # Just in case. sleep "$am_cv_filesystem_timestamp_resolution" am_has_slept=yes done AC_MSG_RESULT([$am_build_env_is_sane]) if test "$am_build_env_is_sane" = no; then AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= AS_IF([test -e conftest.file || grep 'slept: no' conftest.file >/dev/null 2>&1],, [dnl ( sleep "$am_cv_filesystem_timestamp_resolution" ) & am_sleep_pid=$! ]) AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi AC_MSG_RESULT([done])]) rm -f conftest.file ]) # Copyright (C) 2009-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_SILENT_RULES # ---------------- # Enable less verbose build rules support. AC_DEFUN([_AM_SILENT_RULES], [AM_DEFAULT_VERBOSITY=1 AC_ARG_ENABLE([silent-rules], [dnl AS_HELP_STRING( [--enable-silent-rules], [less verbose build output (undo: "make V=1")]) AS_HELP_STRING( [--disable-silent-rules], [verbose build output (undo: "make V=0")])dnl ]) dnl dnl A few 'make' implementations (e.g., NonStop OS and NextStep) dnl do not support nested variable expansions. dnl See automake bug#9928 and bug#10237. am_make=${MAKE-make} AC_CACHE_CHECK([whether $am_make supports nested variables], [am_cv_make_support_nested_variables], [if AS_ECHO([['TRUE=$(BAR$(V)) BAR0=false BAR1=true V=1 am__doit: @$(TRUE) .PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then am_cv_make_support_nested_variables=yes else am_cv_make_support_nested_variables=no fi]) AC_SUBST([AM_V])dnl AM_SUBST_NOTMAKE([AM_V])dnl AC_SUBST([AM_DEFAULT_V])dnl AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl AC_SUBST([AM_DEFAULT_VERBOSITY])dnl AM_BACKSLASH='\' AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl dnl Delay evaluation of AM_DEFAULT_VERBOSITY to the end to allow multiple calls dnl to AM_SILENT_RULES to change the default value. AC_CONFIG_COMMANDS_PRE([dnl case $enable_silent_rules in @%:@ ((( yes) AM_DEFAULT_VERBOSITY=0;; no) AM_DEFAULT_VERBOSITY=1;; esac if test $am_cv_make_support_nested_variables = yes; then dnl Using '$V' instead of '$(V)' breaks IRIX make. AM_V='$(V)' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' else AM_V=$AM_DEFAULT_VERBOSITY AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY fi ])dnl ]) # AM_SILENT_RULES([DEFAULT]) # -------------------------- # Set the default verbosity level to DEFAULT ("yes" being less verbose, "no" or # empty being verbose). AC_DEFUN([AM_SILENT_RULES], [AC_REQUIRE([_AM_SILENT_RULES]) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1])]) # Copyright (C) 2001-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor 'install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in "make install-strip", and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of 'v7', 'ustar', or 'pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar # AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar], [# The POSIX 1988 'ustar' format is defined with fixed-size fields. # There is notably a 21 bits limit for the UID and the GID. In fact, # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 # and bug#13588). am_max_uid=2097151 # 2^21 - 1 am_max_gid=$am_max_uid # The $UID and $GID variables are not portable, so we need to resort # to the POSIX-mandated id(1) utility. Errors in the 'id' calls # below are definitely unexpected, so allow the users to see them # (that is, avoid stderr redirection). am_uid=`id -u || echo unknown` am_gid=`id -g || echo unknown` AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) if test x$am_uid = xunknown; then AC_MSG_WARN([ancient id detected; assuming current UID is ok, but dist-ustar might not work]) elif test $am_uid -le $am_max_uid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) if test x$gm_gid = xunknown; then AC_MSG_WARN([ancient id detected; assuming current GID is ok, but dist-ustar might not work]) elif test $am_gid -le $am_max_gid; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) _am_tools=none fi], [pax], [], [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Go ahead even if we have the value already cached. We do so because we # need to set the values for the 'am__tar' and 'am__untar' variables. _am_tools=${am_cv_prog_tar_$1-$_am_tools} for _am_tool in $_am_tools; do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works. rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR # Copyright (C) 2022-2024 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # _AM_PROG_XARGS_N # ---------------- # Check whether 'xargs -n' works. It should work everywhere, so the fallback # is not optimized at all as we never expect to use it. AC_DEFUN([_AM_PROG_XARGS_N], [AC_CACHE_CHECK([xargs -n works], am_cv_xargs_n_works, [dnl AS_IF([test "`echo 1 2 3 | xargs -n2 echo`" = "1 2 3"], [am_cv_xargs_n_works=yes], [am_cv_xargs_n_works=no])]) AS_IF([test "$am_cv_xargs_n_works" = yes], [am__xargs_n='xargs -n'], [dnl am__xargs_n='am__xargs_n () { shift; sed "s/ /\\n/g" | while read am__xargs_n_arg; do "$@" "$am__xargs_n_arg"; done; }' ])dnl AC_SUBST(am__xargs_n) ]) m4_include([m4/acx_mpi.m4]) m4_include([m4/acx_pthread.m4]) m4_include([m4/acx_sve.m4]) m4_include([m4/ax_cc_maxopt.m4]) m4_include([m4/ax_check_compile_flag.m4]) m4_include([m4/ax_check_link_flag.m4]) m4_include([m4/ax_compiler_vendor.m4]) m4_include([m4/ax_gcc_aligns_stack.m4]) m4_include([m4/ax_gcc_version.m4]) m4_include([m4/ax_openmp.m4]) m4_include([m4/libtool.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) m4_include([m4/ltversion.m4]) m4_include([m4/lt~obsolete.m4]) fftw-3.3.11/Makefile.in0000644000175000017500000012060515170655161010306 # Makefile.in generated by automake 1.17 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2024 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ false; \ elif test -n '$(MAKE_HOST)'; then \ true; \ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ true; \ else \ false; \ fi; \ } am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ *) echo "am__make_running_with_option: internal error: invalid" \ "target option '$${target_option-}' specified" >&2; \ exit 1;; \ esac; \ has_opt=no; \ sane_makeflags=$$MAKEFLAGS; \ if $(am__is_gnu_make); then \ sane_makeflags=$$MFLAGS; \ else \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ bs=\\; \ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ esac; \ fi; \ skip_next=no; \ strip_trailopt () \ { \ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ }; \ for flg in $$sane_makeflags; do \ test $$skip_next = yes && { skip_next=no; continue; }; \ case $$flg in \ *=*|--*) continue;; \ -*I) strip_trailopt 'I'; skip_next=yes;; \ -*I?*) strip_trailopt 'I';; \ -*O) strip_trailopt 'O'; skip_next=yes;; \ -*O?*) strip_trailopt 'O';; \ -*l) strip_trailopt 'l'; skip_next=yes;; \ -*l?*) strip_trailopt 'l';; \ -[dEDm]) skip_next=yes;; \ -[JT]) skip_next=yes;; \ esac; \ case $$flg in \ *$$target_option*) has_opt=yes; break;; \ esac; \ done; \ test $$has_opt = yes am__make_dryrun = (target_option=n; $(am__make_running_with_option)) am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) am__rm_f = rm -f $(am__rm_f_notfound) am__rm_rf = rm -rf $(am__rm_f_notfound) pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/acx_mpi.m4 \ $(top_srcdir)/m4/acx_pthread.m4 $(top_srcdir)/m4/acx_sve.m4 \ $(top_srcdir)/m4/ax_cc_maxopt.m4 \ $(top_srcdir)/m4/ax_check_compile_flag.m4 \ $(top_srcdir)/m4/ax_check_link_flag.m4 \ $(top_srcdir)/m4/ax_compiler_vendor.m4 \ $(top_srcdir)/m4/ax_gcc_aligns_stack.m4 \ $(top_srcdir)/m4/ax_gcc_version.m4 \ $(top_srcdir)/m4/ax_openmp.m4 $(top_srcdir)/m4/libtool.m4 \ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ $(am__configure_deps) $(am__DIST_COMMON) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_HEADER = config.h CONFIG_CLEAN_FILES = fftw.pc CONFIG_CLEAN_VPATH_FILES = am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && echo $$files | $(am__xargs_n) 40 $(am__rm_f); }; \ } am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(cmakedir)" \ "$(DESTDIR)$(pkgconfigdir)" LTLIBRARIES = $(lib_LTLIBRARIES) libfftw3@PREC_SUFFIX@_la_DEPENDENCIES = kernel/libkernel.la \ dft/libdft.la dft/scalar/libdft_scalar.la \ dft/scalar/codelets/libdft_scalar_codelets.la rdft/librdft.la \ rdft/scalar/librdft_scalar.la \ rdft/scalar/r2cf/librdft_scalar_r2cf.la \ rdft/scalar/r2cb/librdft_scalar_r2cb.la \ rdft/scalar/r2r/librdft_scalar_r2r.la reodft/libreodft.la \ api/libapi.la $(SIMD_LIBS) $(SSE2_LIBS) $(AVX_LIBS) \ $(AVX_128_FMA_LIBS) $(AVX2_LIBS) $(ALTIVEC_LIBS) $(VSX_LIBS) \ $(NEON_LIBS) $(SVE_LIBS) $(KCVI_LIBS) $(AVX512_LIBS) \ $(LSX_LIBS) $(LASX_LIBS) $(GENERIC_SIMD128_LIBS) \ $(GENERIC_SIMD256_LIBS) $(COMBINED_THREADLIBS) am_libfftw3@PREC_SUFFIX@_la_OBJECTS = libfftw3@PREC_SUFFIX@_la_OBJECTS = \ $(am_libfftw3@PREC_SUFFIX@_la_OBJECTS) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent am__v_lt_1 = libfftw3@PREC_SUFFIX@_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ $(AM_CFLAGS) $(CFLAGS) $(libfftw3@PREC_SUFFIX@_la_LDFLAGS) \ $(LDFLAGS) -o $@ AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ $(AM_CFLAGS) $(CFLAGS) AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = $(libfftw3@PREC_SUFFIX@_la_SOURCES) DIST_SOURCES = $(libfftw3@PREC_SUFFIX@_la_SOURCES) RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ ctags-recursive dvi-recursive html-recursive info-recursive \ install-data-recursive install-dvi-recursive \ install-exec-recursive install-html-recursive \ install-info-recursive install-pdf-recursive \ install-ps-recursive install-recursive installcheck-recursive \ installdirs-recursive pdf-recursive ps-recursive \ tags-recursive uninstall-recursive am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac DATA = $(cmake_DATA) $(pkgconfig_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ $(RECURSIVE_TARGETS) \ $(RECURSIVE_CLEAN_TARGETS) \ $(am__extra_recursive_targets) AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ cscope distdir distdir-am dist dist-all distcheck am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \ config.h.in # Read a list of newline-separated strings from the standard input, # and print each of them once, without duplicates. Input order is # *not* preserved. am__uniquify_input = $(AWK) '\ BEGIN { nonempty = 0; } \ { items[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in items) print i; }; } \ ' # Make sure the list of sources is unique. This is necessary because, # e.g., the same source file might be shared among _SOURCES variables # for different programs/libraries. am__define_uniq_tagged_files = \ list='$(am__tagged_files)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | $(am__uniquify_input)` DIST_SUBDIRS = support genfft kernel simd-support dft rdft reodft api \ libbench2 . threads tests mpi doc tools m4 am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ $(srcdir)/fftw.pc.in AUTHORS COPYING ChangeLog INSTALL NEWS \ README TODO compile config.guess config.sub install-sh \ ltmain.sh missing DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -700 -exec chmod u+rwx {} ';' \ ; rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__post_remove_distdir = $(am__remove_distdir) am__relativize = \ dir0=`pwd`; \ sed_first='s,^\([^/]*\)/.*$$,\1,'; \ sed_rest='s,^[^/]*/*,,'; \ sed_last='s,^.*/\([^/]*\)$$,\1,'; \ sed_butlast='s,/*[^/]*$$,,'; \ while test -n "$$dir1"; do \ first=`echo "$$dir1" | sed -e "$$sed_first"`; \ if test "$$first" != "."; then \ if test "$$first" = ".."; then \ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ else \ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ if test "$$first2" = "$$first"; then \ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ else \ dir2="../$$dir2"; \ fi; \ dir0="$$dir0"/"$$first"; \ fi; \ fi; \ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ done; \ reldir="$$dir2" DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = -9 DIST_TARGETS = dist-gzip # Exists only to be overridden by the user if desired. AM_DISTCHECK_DVI_TARGET = dvi distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = \ find . \( -type f -a \! \ \( -name .nfs* -o -name .smb* -o -name .__afs* \) \) -print ACLOCAL = @ACLOCAL@ ALLOCA = @ALLOCA@ ALTIVEC_CFLAGS = @ALTIVEC_CFLAGS@ AMTAR = @AMTAR@ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ AR = @AR@ AS = @AS@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AVX2_CFLAGS = @AVX2_CFLAGS@ AVX512_CFLAGS = @AVX512_CFLAGS@ AVX_128_FMA_CFLAGS = @AVX_128_FMA_CFLAGS@ AVX_CFLAGS = @AVX_CFLAGS@ AWK = @AWK@ CC = @CC@ CCDEPMODE = @CCDEPMODE@ CFLAGS = @CFLAGS@ CHECK_PL_OPTS = @CHECK_PL_OPTS@ CPP = @CPP@ CPPFLAGS = @CPPFLAGS@ CSCOPE = @CSCOPE@ CTAGS = @CTAGS@ CYGPATH_W = @CYGPATH_W@ C_FFTW_R2R_KIND = @C_FFTW_R2R_KIND@ C_MPI_FINT = @C_MPI_FINT@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ DUMPBIN = @DUMPBIN@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ F77 = @F77@ FFLAGS = @FFLAGS@ FGREP = @FGREP@ FILECMD = @FILECMD@ FLIBS = @FLIBS@ GREP = @GREP@ INDENT = @INDENT@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ KCVI_CFLAGS = @KCVI_CFLAGS@ LASX_CFLAGS = @LASX_CFLAGS@ LD = @LD@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBQUADMATH = @LIBQUADMATH@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ LN_S = @LN_S@ LSX_CFLAGS = @LSX_CFLAGS@ LTLIBOBJS = @LTLIBOBJS@ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ MAINT = @MAINT@ MAKEINFO = @MAKEINFO@ MANIFEST_TOOL = @MANIFEST_TOOL@ MKDIR_P = @MKDIR_P@ MPICC = @MPICC@ MPILIBS = @MPILIBS@ MPIRUN = @MPIRUN@ NEON_CFLAGS = @NEON_CFLAGS@ NM = @NM@ NMEDIT = @NMEDIT@ OBJDUMP = @OBJDUMP@ OBJEXT = @OBJEXT@ OCAMLBUILD = @OCAMLBUILD@ OPENMP_CFLAGS = @OPENMP_CFLAGS@ OTOOL = @OTOOL@ OTOOL64 = @OTOOL64@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ POW_LIB = @POW_LIB@ PRECISION = @PRECISION@ PREC_SUFFIX = @PREC_SUFFIX@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ PTHREAD_LIBS = @PTHREAD_LIBS@ RANLIB = @RANLIB@ SED = @SED@ SET_MAKE = @SET_MAKE@ SHARED_VERSION_INFO = @SHARED_VERSION_INFO@ SHELL = @SHELL@ SSE2_CFLAGS = @SSE2_CFLAGS@ STACK_ALIGN_CFLAGS = @STACK_ALIGN_CFLAGS@ STRIP = @STRIP@ THREADLIBS = @THREADLIBS@ VERSION = @VERSION@ VSX_CFLAGS = @VSX_CFLAGS@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_AR = @ac_ct_AR@ ac_ct_CC = @ac_ct_CC@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ ac_ct_F77 = @ac_ct_F77@ acx_pthread_config = @acx_pthread_config@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__rm_f_notfound = @am__rm_f_notfound@ am__tar = @am__tar@ am__untar = @am__untar@ am__xargs_n = @am__xargs_n@ bindir = @bindir@ build = @build@ build_alias = @build_alias@ build_cpu = @build_cpu@ build_os = @build_os@ build_vendor = @build_vendor@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ host = @host@ host_alias = @host_alias@ host_cpu = @host_cpu@ host_os = @host_os@ host_vendor = @host_vendor@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ OPTIONS_AUTOMAKE = gnu lib_LTLIBRARIES = libfftw3@PREC_SUFFIX@.la @MAINTAINER_MODE_FALSE@GENFFT = # pkgincludedir = $(includedir)/fftw3@PREC_SUFFIX@ # nodist_pkginclude_HEADERS = config.h # recompile genfft if maintainer mode is true @MAINTAINER_MODE_TRUE@GENFFT = genfft @MAINTAINER_MODE_TRUE@EXTRA_libfftw3@PREC_SUFFIX@_la_DEPENDENCIES = assert-shared-version-info ACLOCAL_AMFLAGS = -I m4 @COMBINED_THREADS_FALSE@CHICKEN_EGG = . threads # when using combined thread libraries (necessary on Windows), we want # to build threads/ first, because libfftw3_threads is added to # libfftw3. # # Otherwise, we want to build libfftw3_threads after libfftw3 # so that we can track the fact that libfftw3_threads depends upon # libfftw3. # # This is the inescapable result of combining three bad ideas # (threads, Windows, and shared libraries). # @COMBINED_THREADS_TRUE@CHICKEN_EGG = threads . @BUILD_DOC_FALSE@DOCDIR = # Only build in doc/ if not disabled by user (i.e. not all # tools are available, such as fig2dev in maintainer mode) @BUILD_DOC_TRUE@DOCDIR = doc SUBDIRS = support $(GENFFT) kernel simd-support dft rdft reodft api \ libbench2 $(CHICKEN_EGG) tests mpi $(DOCDIR) tools m4 EXTRA_DIST = COPYRIGHT bootstrap.sh CONVENTIONS fftw.pc.in \ CMakeLists.txt cmake.config.h.in FFTW3Config.cmake.in \ FFTW3ConfigVersion.cmake.in README-perfcnt.md SIMD_LIBS = simd-support/libsimd_support.la @HAVE_SSE2_TRUE@SSE2_LIBS = dft/simd/sse2/libdft_sse2_codelets.la \ @HAVE_SSE2_TRUE@rdft/simd/sse2/librdft_sse2_codelets.la @HAVE_AVX_TRUE@AVX_LIBS = dft/simd/avx/libdft_avx_codelets.la \ @HAVE_AVX_TRUE@rdft/simd/avx/librdft_avx_codelets.la @HAVE_AVX_128_FMA_TRUE@AVX_128_FMA_LIBS = dft/simd/avx-128-fma/libdft_avx_128_fma_codelets.la \ @HAVE_AVX_128_FMA_TRUE@rdft/simd/avx-128-fma/librdft_avx_128_fma_codelets.la @HAVE_AVX2_TRUE@AVX2_LIBS = dft/simd/avx2/libdft_avx2_codelets.la \ @HAVE_AVX2_TRUE@dft/simd/avx2-128/libdft_avx2_128_codelets.la \ @HAVE_AVX2_TRUE@rdft/simd/avx2/librdft_avx2_codelets.la \ @HAVE_AVX2_TRUE@rdft/simd/avx2-128/librdft_avx2_128_codelets.la @HAVE_AVX512_TRUE@AVX512_LIBS = dft/simd/avx512/libdft_avx512_codelets.la \ @HAVE_AVX512_TRUE@rdft/simd/avx512/librdft_avx512_codelets.la @HAVE_KCVI_TRUE@KCVI_LIBS = dft/simd/kcvi/libdft_kcvi_codelets.la \ @HAVE_KCVI_TRUE@rdft/simd/kcvi/librdft_kcvi_codelets.la @HAVE_ALTIVEC_TRUE@ALTIVEC_LIBS = dft/simd/altivec/libdft_altivec_codelets.la \ @HAVE_ALTIVEC_TRUE@rdft/simd/altivec/librdft_altivec_codelets.la @HAVE_VSX_TRUE@VSX_LIBS = dft/simd/vsx/libdft_vsx_codelets.la \ @HAVE_VSX_TRUE@rdft/simd/vsx/librdft_vsx_codelets.la @HAVE_NEON_TRUE@NEON_LIBS = dft/simd/neon/libdft_neon_codelets.la \ @HAVE_NEON_TRUE@rdft/simd/neon/librdft_neon_codelets.la @HAVE_SVE_TRUE@SVE_LIBS = \ @HAVE_SVE_TRUE@dft/simd/sve128/libdft_sve128_codelets.la \ @HAVE_SVE_TRUE@rdft/simd/sve128/librdft_sve128_codelets.la \ @HAVE_SVE_TRUE@dft/simd/sve256/libdft_sve256_codelets.la \ @HAVE_SVE_TRUE@rdft/simd/sve256/librdft_sve256_codelets.la \ @HAVE_SVE_TRUE@dft/simd/sve512/libdft_sve512_codelets.la \ @HAVE_SVE_TRUE@rdft/simd/sve512/librdft_sve512_codelets.la \ @HAVE_SVE_TRUE@dft/simd/sve1024/libdft_sve1024_codelets.la \ @HAVE_SVE_TRUE@rdft/simd/sve1024/librdft_sve1024_codelets.la \ @HAVE_SVE_TRUE@dft/simd/sve2048/libdft_sve2048_codelets.la \ @HAVE_SVE_TRUE@rdft/simd/sve2048/librdft_sve2048_codelets.la @HAVE_LSX_TRUE@LSX_LIBS = dft/simd/lsx/libdft_lsx_codelets.la \ @HAVE_LSX_TRUE@rdft/simd/lsx/librdft_lsx_codelets.la @HAVE_LASX_TRUE@LASX_LIBS = dft/simd/lasx/libdft_lasx_codelets.la \ @HAVE_LASX_TRUE@rdft/simd/lasx/librdft_lasx_codelets.la @HAVE_GENERIC_SIMD128_TRUE@GENERIC_SIMD128_LIBS = dft/simd/generic-simd128/libdft_generic_simd128_codelets.la \ @HAVE_GENERIC_SIMD128_TRUE@rdft/simd/generic-simd128/librdft_generic_simd128_codelets.la @HAVE_GENERIC_SIMD256_TRUE@GENERIC_SIMD256_LIBS = dft/simd/generic-simd256/libdft_generic_simd256_codelets.la \ @HAVE_GENERIC_SIMD256_TRUE@rdft/simd/generic-simd256/librdft_generic_simd256_codelets.la @COMBINED_THREADS_TRUE@@THREADS_TRUE@COMBINED_THREADLIBS = threads/libfftw3@PREC_SUFFIX@_threads.la libfftw3@PREC_SUFFIX@_la_SOURCES = libfftw3@PREC_SUFFIX@_la_LIBADD = \ kernel/libkernel.la \ dft/libdft.la \ dft/scalar/libdft_scalar.la \ dft/scalar/codelets/libdft_scalar_codelets.la \ rdft/librdft.la \ rdft/scalar/librdft_scalar.la \ rdft/scalar/r2cf/librdft_scalar_r2cf.la \ rdft/scalar/r2cb/librdft_scalar_r2cb.la \ rdft/scalar/r2r/librdft_scalar_r2r.la \ reodft/libreodft.la \ api/libapi.la \ $(SIMD_LIBS) $(SSE2_LIBS) $(AVX_LIBS) $(AVX_128_FMA_LIBS) \ $(AVX2_LIBS) $(ALTIVEC_LIBS) \ $(VSX_LIBS) $(NEON_LIBS) $(SVE_LIBS) $(KCVI_LIBS) $(AVX512_LIBS) \ $(LSX_LIBS) $(LASX_LIBS) \ $(GENERIC_SIMD128_LIBS) $(GENERIC_SIMD256_LIBS) \ $(COMBINED_THREADLIBS) @QUAD_FALSE@libfftw3@PREC_SUFFIX@_la_LDFLAGS = -no-undefined -version-info \ @QUAD_FALSE@@SHARED_VERSION_INFO@ $(ENVIRONMENT_LIBFFTW3_LDFLAGS) # cannot use -no-undefined since dependent on libquadmath @QUAD_TRUE@libfftw3@PREC_SUFFIX@_la_LDFLAGS = -version-info @SHARED_VERSION_INFO@ $(ENVIRONMENT_LIBFFTW3_LDFLAGS) pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = fftw3@PREC_SUFFIX@.pc cmakedir = $(libdir)/cmake/fftw3 cmake_DATA = FFTW3@PREC_SUFFIX@Config.cmake FFTW3@PREC_SUFFIX@ConfigVersion.cmake WISDOM_DIR = /etc/fftw WISDOM = wisdom@PREC_SUFFIX@ WISDOM_TIME = 12 # default to 12-hour limit, i.e. overnight WISDOM_FLAGS = --verbose --canonical --time-limit=$(WISDOM_TIME) all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: am--refresh: Makefile @: $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): config.h: stamp-h1 @test -f $@ || rm -f stamp-h1 @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status $(AM_V_at)rm -f stamp-h1 $(AM_V_GEN)cd $(top_builddir) && $(SHELL) ./config.status config.h $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) $(AM_V_GEN)($(am__cd) $(top_srcdir) && $(AUTOHEADER)) $(AM_V_at)rm -f stamp-h1 $(AM_V_at)touch $@ distclean-hdr: -rm -f config.h stamp-h1 fftw.pc: $(top_builddir)/config.status $(srcdir)/fftw.pc.in cd $(top_builddir) && $(SHELL) ./config.status $@ install-libLTLIBRARIES: $(lib_LTLIBRARIES) @$(NORMAL_INSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ list2=; for p in $$list; do \ if test -f $$p; then \ list2="$$list2 $$p"; \ else :; fi; \ done; \ test -z "$$list2" || { \ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ } uninstall-libLTLIBRARIES: @$(NORMAL_UNINSTALL) @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ for p in $$list; do \ $(am__strip_dir) \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ done clean-libLTLIBRARIES: -$(am__rm_f) $(lib_LTLIBRARIES) @list='$(lib_LTLIBRARIES)'; \ locs=`for p in $$list; do echo $$p; done | \ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ sort -u`; \ echo rm -f $${locs}; \ $(am__rm_f) $${locs} libfftw3@PREC_SUFFIX@.la: $(libfftw3@PREC_SUFFIX@_la_OBJECTS) $(libfftw3@PREC_SUFFIX@_la_DEPENDENCIES) $(EXTRA_libfftw3@PREC_SUFFIX@_la_DEPENDENCIES) $(AM_V_CCLD)$(libfftw3@PREC_SUFFIX@_la_LINK) -rpath $(libdir) $(libfftw3@PREC_SUFFIX@_la_OBJECTS) $(libfftw3@PREC_SUFFIX@_la_LIBADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c mostlyclean-libtool: -rm -f *.lo clean-libtool: -rm -rf .libs _libs distclean-libtool: -rm -f libtool config.lt install-cmakeDATA: $(cmake_DATA) @$(NORMAL_INSTALL) @list='$(cmake_DATA)'; test -n "$(cmakedir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(cmakedir)'"; \ $(MKDIR_P) "$(DESTDIR)$(cmakedir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(cmakedir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(cmakedir)" || exit $$?; \ done uninstall-cmakeDATA: @$(NORMAL_UNINSTALL) @list='$(cmake_DATA)'; test -n "$(cmakedir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(cmakedir)'; $(am__uninstall_files_from_dir) install-pkgconfigDATA: $(pkgconfig_DATA) @$(NORMAL_INSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ done uninstall-pkgconfigDATA: @$(NORMAL_UNINSTALL) @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. # To change the values of 'make' variables: instead of editing Makefiles, # (1) if the variable is set in 'config.status', edit 'config.status' # (which will cause the Makefiles to be regenerated when you run 'make'); # (2) otherwise, pass the desired values on the 'make' command line. $(am__recursive_targets): @fail=; \ if $(am__make_keepgoing); then \ failcom='fail=yes'; \ else \ failcom='exit 1'; \ fi; \ dot_seen=no; \ target=`echo $@ | sed s/-recursive//`; \ case "$@" in \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ *) list='$(SUBDIRS)' ;; \ esac; \ for subdir in $$list; do \ echo "Making $$target in $$subdir"; \ if test "$$subdir" = "."; then \ dot_seen=yes; \ local_target="$$target-am"; \ else \ local_target="$$target"; \ fi; \ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ || eval $$failcom; \ done; \ if test "$$dot_seen" = "no"; then \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ fi; test -z "$$fail" ID: $(am__tagged_files) $(am__define_uniq_tagged_files); mkid -fID $$unique tags: tags-recursive TAGS: tags tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) set x; \ here=`pwd`; \ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ include_option=--etags-include; \ empty_fix=.; \ else \ include_option=--include; \ empty_fix=; \ fi; \ list='$(SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ test ! -f $$subdir/TAGS || \ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ fi; \ done; \ $(am__define_uniq_tagged_files); \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: ctags-recursive CTAGS: ctags ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) $(am__define_uniq_tagged_files); \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscope: cscope.files test ! -s cscope.files \ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) clean-cscope: -rm -f cscope.files cscope.files: clean-cscope cscopelist cscopelist: cscopelist-recursive cscopelist-am: $(am__tagged_files) list='$(am__tagged_files)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) distdir-am distdir-am: $(DISTFILES) $(am__remove_distdir) $(AM_V_at)$(MKDIR_P) "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ if test "$$subdir" = .; then :; else \ $(am__make_dryrun) \ || test -d "$(distdir)/$$subdir" \ || $(MKDIR_P) "$(distdir)/$$subdir" \ || exit 1; \ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ $(am__relativize); \ new_distdir=$$reldir; \ dir1=$$subdir; dir2="$(top_distdir)"; \ $(am__relativize); \ new_top_distdir=$$reldir; \ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ ($(am__cd) $$subdir && \ $(MAKE) $(AM_MAKEFLAGS) \ top_distdir="$$new_top_distdir" \ distdir="$$new_distdir" \ am__remove_distdir=: \ am__skip_length_check=: \ am__skip_mode_fix=: \ distdir) \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz $(am__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__post_remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__post_remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) dist-zstd: distdir tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst $(am__post_remove_distdir) dist-tarZ: distdir @echo WARNING: "Support for distribution archives compressed with" \ "legacy program 'compress' is deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir @echo WARNING: "Support for shar distribution archives is" \ "deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__post_remove_distdir) dist dist-all: $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' $(am__post_remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ eval GZIP= gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ eval GZIP= gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ *.tar.zst*) \ zstd -dc $(distdir).tar.zst | $(am__untar) ;;\ esac chmod -R a-w $(distdir) chmod u+w $(distdir) mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build/sub \ && ../../configure \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ --srcdir=../.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-recursive all-am: Makefile $(LTLIBRARIES) $(DATA) config.h installdirs: installdirs-recursive installdirs-am: for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(cmakedir)" "$(DESTDIR)$(pkgconfigdir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive uninstall: uninstall-recursive install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-recursive install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -$(am__rm_f) $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || $(am__rm_f) $(CONFIG_CLEAN_VPATH_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-recursive clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ mostlyclean-am distclean: distclean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-hdr distclean-libtool distclean-tags dvi: dvi-recursive dvi-am: html: html-recursive html-am: info: info-recursive info-am: install-data-am: install-cmakeDATA install-pkgconfigDATA install-dvi: install-dvi-recursive install-dvi-am: install-exec-am: install-libLTLIBRARIES install-html: install-html-recursive install-html-am: install-info: install-info-recursive install-info-am: install-man: install-pdf: install-pdf-recursive install-pdf-am: install-ps: install-ps-recursive install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-recursive -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf: pdf-recursive pdf-am: ps: ps-recursive ps-am: uninstall-am: uninstall-cmakeDATA uninstall-libLTLIBRARIES \ uninstall-pkgconfigDATA .MAKE: $(am__recursive_targets) all install-am install-strip .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ am--refresh check check-am clean clean-cscope clean-generic \ clean-libLTLIBRARIES clean-libtool cscope cscopelist-am ctags \ ctags-am dist dist-all dist-bzip2 dist-gzip dist-lzip \ dist-shar dist-tarZ dist-xz dist-zip dist-zstd distcheck \ distclean distclean-compile distclean-generic distclean-hdr \ distclean-libtool distclean-tags distcleancheck distdir \ distuninstallcheck dvi dvi-am html html-am info info-am \ install install-am install-cmakeDATA install-data \ install-data-am install-dvi install-dvi-am install-exec \ install-exec-am install-html install-html-am install-info \ install-info-am install-libLTLIBRARIES install-man install-pdf \ install-pdf-am install-pkgconfigDATA install-ps install-ps-am \ install-strip installcheck installcheck-am installdirs \ installdirs-am maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic \ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am uninstall-cmakeDATA uninstall-libLTLIBRARIES \ uninstall-pkgconfigDATA .PRECIOUS: Makefile fftw3@PREC_SUFFIX@.pc: fftw.pc cp -f fftw.pc fftw3@PREC_SUFFIX@.pc FFTW3@PREC_SUFFIX@Config.cmake: $(top_srcdir)/FFTW3Config.cmake.in $(SED) \ -e 's|[@]PREC_SUFFIX@|@PREC_SUFFIX@|g' \ -e 's|[@]CMAKE_INSTALL_FULL_LIBDIR@|$(libdir)|g' \ -e 's|[@]CMAKE_INSTALL_FULL_INCLUDEDIR@|$(includedir)|g' \ $(top_srcdir)/FFTW3Config.cmake.in > $@ FFTW3@PREC_SUFFIX@ConfigVersion.cmake: $(top_srcdir)/FFTW3ConfigVersion.cmake.in $(SED) \ -e 's|[@]FFTW_VERSION@|@PACKAGE_VERSION@|g' \ $(top_srcdir)/FFTW3ConfigVersion.cmake.in > $@ wisdom: tools/fftw@PREC_SUFFIX@-wisdom -o $@ $(WISDOM_FLAGS) install-wisdom: wisdom $(mkinstalldirs) $(WISDOM_DIR) $(INSTALL_DATA) wisdom $(WISDOM_DIR)/$(WISDOM) @MAINTAINER_MODE_TRUE@assert-shared-version-info: @MAINTAINER_MODE_TRUE@ current=`echo @SHARED_VERSION_INFO@ | cut -d: -f1`; \ @MAINTAINER_MODE_TRUE@ age=`echo @SHARED_VERSION_INFO@ | cut -d: -f3`; \ @MAINTAINER_MODE_TRUE@ major=3; \ @MAINTAINER_MODE_TRUE@ expected=`expr $$age + $$major`; \ @MAINTAINER_MODE_TRUE@ test $$current -eq $$expected # 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: # Tell GNU make to disable its built-in pattern rules. %:: %,v %:: RCS/%,v %:: RCS/% %:: s.% %:: SCCS/s.% fftw-3.3.11/config.h.in0000644000175000017500000003021115170655160010254 /* config.h.in. Generated from configure.ac by autoheader. */ /* Define if the machine architecture "naturally" prefers fused multiply-add instructions */ #undef ARCH_PREFERS_FMA /* Define to compile in long-double precision. */ #undef BENCHFFT_LDOUBLE /* Define to compile in quad precision. */ #undef BENCHFFT_QUAD /* Define to compile in single precision. */ #undef BENCHFFT_SINGLE /* Define to 1 if using 'alloca.c'. */ #undef C_ALLOCA /* Define to disable Fortran wrappers. */ #undef DISABLE_FORTRAN /* Define to dummy 'main' function (if any) required to link to the Fortran libraries. */ #undef F77_DUMMY_MAIN /* Define to a macro mangling the given C identifier (in lower and upper case), which must not contain underscores, for linking with Fortran. */ #undef F77_FUNC /* As F77_FUNC, but for C identifiers containing underscores. */ #undef F77_FUNC_ /* Define if F77_FUNC and F77_FUNC_ are equivalent. */ #undef F77_FUNC_EQUIV /* Define if F77 and FC dummy 'main' functions are identical. */ #undef FC_DUMMY_MAIN_EQ_F77 /* C compiler name and flags */ #undef FFTW_CC /* Define to enable extra FFTW debugging code. */ #undef FFTW_DEBUG /* Define to enable the use of alloca(). */ #undef FFTW_ENABLE_ALLOCA /* Define to compile in long-double precision. */ #undef FFTW_LDOUBLE /* Define to compile in quad precision. */ #undef FFTW_QUAD /* Define to enable pseudorandom estimate planning for debugging. */ #undef FFTW_RANDOM_ESTIMATOR /* Define to compile in single precision. */ #undef FFTW_SINGLE /* Define to 1 if you have the 'abort' function. */ #undef HAVE_ABORT /* Define to 1 if you have 'alloca', as a function or macro. */ #undef HAVE_ALLOCA /* Define to 1 if works. */ #undef HAVE_ALLOCA_H /* Define to enable Altivec optimizations. */ #undef HAVE_ALTIVEC /* Define to 1 if you have the header file. */ #undef HAVE_ALTIVEC_H /* Define if you have enabled the CNTVCT cycle counter on ARMv7a */ #undef HAVE_ARMV7A_CNTVCT /* Define if you have enabled the PMCCNTR cycle counter on ARMv7a */ #undef HAVE_ARMV7A_PMCCNTR /* Define if you have enabled the CNTVCT_EL0 cycle counter on ARMv8 */ #undef HAVE_ARMV8_CNTVCT_EL0 /* Define if you have enabled the PMCCNTR_EL0 cycle counter on ARMv8 */ #undef HAVE_ARMV8_PMCCNTR_EL0 /* Define to enable AVX optimizations. */ #undef HAVE_AVX /* Define to enable AVX2 optimizations. */ #undef HAVE_AVX2 /* Define to enable AVX512 optimizations. */ #undef HAVE_AVX512 /* Define to enable 128-bit FMA AVX optimization */ #undef HAVE_AVX_128_FMA /* Define to 1 if you have the 'BSDgettimeofday' function. */ #undef HAVE_BSDGETTIMEOFDAY /* Define to 1 if you have the 'clock_gettime' function. */ #undef HAVE_CLOCK_GETTIME /* Define to 1 if you have the 'cosl' function. */ #undef HAVE_COSL /* Define to 1 if you have the declaration of 'cosl', and to 0 if you don't. */ #undef HAVE_DECL_COSL /* Define to 1 if you have the declaration of 'cosq', and to 0 if you don't. */ #undef HAVE_DECL_COSQ /* Define to 1 if you have the declaration of 'drand48', and to 0 if you don't. */ #undef HAVE_DECL_DRAND48 /* Define to 1 if you have the declaration of 'memalign', and to 0 if you don't. */ #undef HAVE_DECL_MEMALIGN /* Define to 1 if you have the declaration of 'posix_memalign', and to 0 if you don't. */ #undef HAVE_DECL_POSIX_MEMALIGN /* Define to 1 if you have the declaration of 'sinl', and to 0 if you don't. */ #undef HAVE_DECL_SINL /* Define to 1 if you have the declaration of 'sinq', and to 0 if you don't. */ #undef HAVE_DECL_SINQ /* Define to 1 if you have the declaration of 'srand48', and to 0 if you don't. */ #undef HAVE_DECL_SRAND48 /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define to 1 if you don't have 'vprintf' but do have '_doprnt.' */ #undef HAVE_DOPRNT /* Define to 1 if you have the 'drand48' function. */ #undef HAVE_DRAND48 /* Define to 1 if you have the header file. */ #undef HAVE_FCNTL_H /* Define to 1 if you have the header file. */ #undef HAVE_FENV_H /* Define to enable generic (gcc) 128-bit SIMD optimizations. */ #undef HAVE_GENERIC_SIMD128 /* Define to enable generic (gcc) 256-bit SIMD optimizations. */ #undef HAVE_GENERIC_SIMD256 /* Define to 1 if you have the 'gethrtime' function. */ #undef HAVE_GETHRTIME /* Define to 1 if you have the 'getpagesize' function. */ #undef HAVE_GETPAGESIZE /* Define to 1 if you have the 'gettimeofday' function. */ #undef HAVE_GETTIMEOFDAY /* Define to 1 if hrtime_t is defined in */ #undef HAVE_HRTIME_T /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define if the isnan() function/macro is available. */ #undef HAVE_ISNAN /* Define to enable KCVI optimizations. */ #undef HAVE_KCVI /* Define to enable LoongArch LASX optimizations. */ #undef HAVE_LASX /* Define to 1 if you have the 'm' library (-lm). */ #undef HAVE_LIBM /* Define to 1 if you have the 'quadmath' library (-lquadmath). */ #undef HAVE_LIBQUADMATH /* Define to 1 if you have the header file. */ #undef HAVE_LIMITS_H /* Define to 1 if the compiler supports `long double' */ #undef HAVE_LONG_DOUBLE /* Define to enable LoongArch LSX optimizations. */ #undef HAVE_LSX /* Define to 1 if you have the 'mach_absolute_time' function. */ #undef HAVE_MACH_ABSOLUTE_TIME /* Define to 1 if you have the header file. */ #undef HAVE_MALLOC_H /* Define to 1 if you have the 'memalign' function. */ #undef HAVE_MEMALIGN /* Define to 1 if you have the 'memmove' function. */ #undef HAVE_MEMMOVE /* Define to 1 if you have the 'memset' function. */ #undef HAVE_MEMSET /* Define to enable use of MIPS ZBus cycle-counter. */ #undef HAVE_MIPS_ZBUS_TIMER /* Define if you have the MPI library. */ #undef HAVE_MPI /* Define to enable ARM NEON optimizations. */ #undef HAVE_NEON /* Define if OpenMP is enabled */ #undef HAVE_OPENMP /* Define to 1 if you have the 'posix_memalign' function. */ #undef HAVE_POSIX_MEMALIGN /* Define if you have POSIX threads libraries and header files. */ #undef HAVE_PTHREAD /* Define to 1 if the system has the type 'ptrdiff_t'. */ #undef HAVE_PTRDIFF_T /* Define to 1 if you have the 'read_real_time' function. */ #undef HAVE_READ_REAL_TIME /* Define to 1 if you have the 'sinl' function. */ #undef HAVE_SINL /* Define to 1 if you have the 'snprintf' function. */ #undef HAVE_SNPRINTF /* Define to 1 if you have the 'sqrt' function. */ #undef HAVE_SQRT /* Define to enable SSE/SSE2 optimizations. */ #undef HAVE_SSE2 /* Define to 1 if you have the header file. */ #undef HAVE_STDDEF_H /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDIO_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define to 1 if you have the 'strchr' function. */ #undef HAVE_STRCHR /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to enable ARM SVE optimizations */ #undef HAVE_SVE /* Define to 1 if you have the 'sysctl' function. */ #undef HAVE_SYSCTL /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TIME_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the 'tanl' function. */ #undef HAVE_TANL /* Define if we have a threads library. */ #undef HAVE_THREADS /* Define to 1 if you have the 'time_base_to_time' function. */ #undef HAVE_TIME_BASE_TO_TIME /* Define to 1 if the system has the type 'uintptr_t'. */ #undef HAVE_UINTPTR_T /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to 1 if you have the 'vprintf' function. */ #undef HAVE_VPRINTF /* Define to enable IBM VSX optimizations. */ #undef HAVE_VSX /* Define to 1 if you have the '_mm_free' function. */ #undef HAVE__MM_FREE /* Define to 1 if you have the '_mm_malloc' function. */ #undef HAVE__MM_MALLOC /* Define if you have the UNICOS _rtc() intrinsic. */ #undef HAVE__RTC /* Define to the sub-directory where libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* Name of package */ #undef PACKAGE /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to necessary symbol if this constant uses a non-standard name on your system. */ #undef PTHREAD_CREATE_JOINABLE /* The size of 'double', as computed by sizeof. */ #undef SIZEOF_DOUBLE /* The size of 'fftw_r2r_kind', as computed by sizeof. */ #undef SIZEOF_FFTW_R2R_KIND /* The size of 'float', as computed by sizeof. */ #undef SIZEOF_FLOAT /* The size of 'int', as computed by sizeof. */ #undef SIZEOF_INT /* The size of 'long', as computed by sizeof. */ #undef SIZEOF_LONG /* The size of 'long long', as computed by sizeof. */ #undef SIZEOF_LONG_LONG /* The size of 'MPI_Fint', as computed by sizeof. */ #undef SIZEOF_MPI_FINT /* The size of 'ptrdiff_t', as computed by sizeof. */ #undef SIZEOF_PTRDIFF_T /* The size of 'size_t', as computed by sizeof. */ #undef SIZEOF_SIZE_T /* The size of 'unsigned int', as computed by sizeof. */ #undef SIZEOF_UNSIGNED_INT /* The size of 'unsigned long', as computed by sizeof. */ #undef SIZEOF_UNSIGNED_LONG /* The size of 'unsigned long long', as computed by sizeof. */ #undef SIZEOF_UNSIGNED_LONG_LONG /* The size of 'void *', as computed by sizeof. */ #undef SIZEOF_VOID_P /* If using the C implementation of alloca, define if you know the direction of stack growth for your system; otherwise it will be automatically deduced at runtime. STACK_DIRECTION > 0 => grows toward higher addresses STACK_DIRECTION < 0 => grows toward lower addresses STACK_DIRECTION = 0 => direction of growth unknown */ #undef STACK_DIRECTION /* Define to 1 if all of the C89 standard headers exist (not just the ones required in a freestanding environment). This macro is provided for backward compatibility; new code need not use it. */ #undef STDC_HEADERS /* Define to 1 if you can safely include both and . This macro is obsolete. */ #undef TIME_WITH_SYS_TIME /* Define if we have and are using POSIX threads. */ #undef USING_POSIX_THREADS /* Version number of package */ #undef VERSION /* Use common Windows Fortran mangling styles for the Fortran interfaces. */ #undef WINDOWS_F77_MANGLING /* Include g77-compatible wrappers in addition to any other Fortran wrappers. */ #undef WITH_G77_WRAPPERS /* Use our own aligned malloc routine; mainly helpful for Windows systems lacking aligned allocation system-library routines. */ #undef WITH_OUR_MALLOC /* Use low-precision timers, making planner very slow */ #undef WITH_SLOW_TIMER /* Define for Solaris 2.5.1 so the uint32_t typedef from , , or is not used. If the typedef were allowed, the #define below would cause a syntax error. */ #undef _UINT32_T /* Define for Solaris 2.5.1 so the uint64_t typedef from , , or is not used. If the typedef were allowed, the #define below would cause a syntax error. */ #undef _UINT64_T /* Define to empty if 'const' does not conform to ANSI C. */ #undef const /* Define to '__inline__' or '__inline' if that's what the C compiler calls it, or to nothing if 'inline' is not supported under any name. */ #ifndef __cplusplus #undef inline #endif /* Define as 'unsigned int' if doesn't define. */ #undef size_t /* Define to the type of an unsigned integer type of width exactly 32 bits if such a type exists and the standard includes do not define it. */ #undef uint32_t /* Define to the type of an unsigned integer type of width exactly 64 bits if such a type exists and the standard includes do not define it. */ #undef uint64_t fftw-3.3.11/fftw.pc.in0000644000175000017500000000037415170655127010142 prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ Name: FFTW Description: fast Fourier transform library Version: @VERSION@ Libs: -L${libdir} -lfftw3@PREC_SUFFIX@ @LIBQUADMATH@ Libs.private: -lm Cflags: -I${includedir} fftw-3.3.11/AUTHORS0000644000175000017500000000111115170655127007301 Authors of FFTW (reachable at fftw@fftw.org): Matteo Frigo Steven G. Johnson Stefan Kral wrote genfft-k7/*.ml*, which was added in fftw-3.0 and removed in fftw-3.2. Romain Dolbeau contributed support for AVX512 and KCvi. Erik Lindahl contributed support for AVX2 and Power8 VSX. Support for the Cell Broadband Engine was graciously donated by the IBM Austin Research Lab, which was added in fftw-3.2 and removed in fftw-3.3. Support for MIPS64 paired-single SIMD instructions was graciously donated by CodeSourcery, Inc. fftw-3.3.11/COPYING0000644000175000017500000004312215170655127007274 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 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 Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. fftw-3.3.11/ChangeLog0000644000175000017500000234734715170655136010035 commit d69d34f078baee4fa38a035634017404cce3e09a Author: Matteo Frigo Date: Sat Apr 18 06:00:21 2026 -0400 Fix HAVE_SIMD definition (again) commit ba064bf178c8dce0da5abb62c267d923074a0973 Author: Matteo Frigo Date: Sat Apr 18 04:40:42 2026 -0400 Fix list of SIMD extensions commit c91f4cee3ee940638f485e15288f46b2c8917893 Author: Matteo Frigo Date: Fri Apr 17 21:32:35 2026 -0400 Missing HAVE_SVE commit 806fb4153b937f9d76b512aee256cac884424e92 Author: Matteo Frigo Date: Fri Apr 17 21:27:01 2026 -0400 Missing HAVE_NEON => HAVE_SIMD Was causing alignment problems on neon in single precision commit 52a37ae8d228b8d206648dc905fa8cb6c08b5486 Author: Matteo Frigo Date: Fri Apr 17 07:03:09 2026 -0400 Update TLO contact commit b5afe8535a673bab63b3f7cedf05f6ca67e55d2e Author: Matteo Frigo Date: Fri Apr 17 06:33:59 2026 -0400 Libtool doesn't like 11-rc1 commit d27abd5b34f96f8de62b7f19d8fa0d04f4654b84 Author: Matteo Frigo Date: Fri Apr 17 06:24:33 2026 -0400 Get ready for fftw-3.3.11 release commit 6c8f5c3e620ebc38262cd80ca6f65e9f85783d9e Author: Matteo Frigo Date: Mon Feb 16 12:24:43 2026 -0500 Fix genfft build for both legacy and modern variants of the num library commit 7947c101a5b724fe8b9784218388b46d7e247132 Author: Matteo Frigo Date: Wed Oct 29 07:20:34 2025 -0400 Get rid of the dependency on the Unix module commit adde9bec41206a3d6bbb02bdbf9f64726d7d2009 Author: luzpaz Date: Fri Sep 5 20:44:09 2025 -0400 Fix various typos (#385) Found via `codespell -q 3 -L aadd,aci,alo,fo,inout,intot,mone,nam,nd,ois,re-use,re-used,re-using,rin,shft,twon` commit 816722732224231e90e634b5839bb7808cddc6cd Merge: 126e3b98 c4b22cdc Author: Matteo Frigo Date: Wed Feb 5 05:55:01 2025 -0500 Merge pull request #376 from yinshiyou/loongarch-dev Add SIMD optimization for LoongArch commit c4b22cdc1c5578100d82123ee582e1b0f9832271 Author: Hao Chen Date: Sun Oct 8 10:25:54 2023 +0800 Optimize with madd and msub on LA. The performance of the bench are as follows: ./tests/bench oc32768 before: 12510.85 mflops after: 13093.016 mflops Signed-off-by: Hao Chen Change-Id: Ib1cae1d7d3fc1af914194d3898972ec7600421a0 commit b1e2461e7bb995cbce1b0ff797cbd150e362b656 Author: Hao Chen Date: Sun Oct 8 10:26:30 2023 +0800 Add getticks function on loongarch platform. The performance of the bench are as follows: ./tests/bench oc32768 before: 7720.7147 mflops after: 12510.85 mflops Signed-off-by: Hao Chen Change-Id: I0614fb3be1ba4ab5dd2f5816a0a842faafe0892c commit 31172a0eefceceee47777723ccad7fdc76f3b1af Author: Shiyou Yin Date: Wed Feb 5 11:36:21 2025 +0800 Add support for LoongArch LASX. LASX is 256-bits SIMD instruction of LoongArch. commit 6d35004e8dfb767e08d73733fce8d0556ba22f92 Author: Shiyou Yin Date: Wed Feb 5 09:52:15 2025 +0800 Add support for LoongArch LSX. LSX is 128-bits SIMD instruction of LoongArch. commit 126e3b98bb8f49aadb429c4aa1e98d898cad8e0c Author: Matteo Frigo Date: Sun Feb 2 14:28:28 2025 -0500 Reuse the REPEAT_* macros from simd-maskedsve.h to simplify simd-avx*.h commit 3df09adbc2b132e486706fee2e040260490be316 Merge: e62a96aa d46ecddd Author: Matteo Frigo Date: Sat Feb 1 20:34:08 2025 -0500 Merge pull request #361 from rdolbeau/riscv-cyclecounter Riscv cyclecounter commit e62a96aa13bcd131f224ee2b8f8deab2a1a69254 Author: Matteo Frigo Date: Sat Feb 1 20:28:48 2025 -0500 Ditch generate_vtw.{c,sh} in favor of preprocessor witchcraft We don't need to generate yet another file, the C preprocessor is good enough. commit 33dded1e918c7447797156cd7cda5de4e83c4a32 Merge: 187045ea ff3dfb01 Author: Matteo Frigo Date: Sat Feb 1 18:23:26 2025 -0500 Merge pull request #315 from rdolbeau/arm-sve-clean PR to merge ARM SVE branch commit d46ecddd6284f0c468ecd8680ce61fa7ee1bff63 Author: Romain Dolbeau Date: Sun Jul 14 13:10:29 2024 +0000 rdcycle -> rdtime (rdcycle no longer accessible in user-mode...) commit c4b5b36d90200d963bce378d1458a6326f35e433 Author: Romain Dolbeau Date: Thu Aug 29 05:52:40 2019 -0400 Add support for the RISC-V 'rdcycle' (and 'rdcycleh' for RV32) instruction(s) as a cycle counter commit ff3dfb01f038a83ec274ae3a88902ef0fa4de1c5 Author: Gilles Gouaillardet Date: Tue Apr 16 15:09:01 2024 +0900 try building a sample SVE program When configure'd with --enable-sve, try to build a sample SVE program and abort on failure, otherwise configure successes but make will fail. commit 8cb2fbd8f4623d6c9d66a03f7684781ee9158622 Author: Romain Dolbeau Date: Mon Mar 4 10:10:14 2024 +0000 improve VZMULI[j], clean-up old code commit eefa1b44b279100e7e994d047c4c102131e31cc1 Author: Romain Dolbeau Date: Fri Mar 5 09:10:15 2021 +0100 disable USE_UNMASKED_ASSEMBLY by default so it can be reenabled from the command line commit e3150025ade7e4bc5d6af821ab8e849e48ff6a3e Author: Romain Dolbeau Date: Thu Mar 4 13:26:09 2021 +0100 oups, missing ASM for SP commit b0bf4c6c20e417486355061e2390577e3055834b Author: Romain Dolbeau Date: Wed Sep 9 09:14:04 2020 -0400 Make some variants based on #define, as their behavior seems to be compiler/hardware dependent, and more tests are needed before settling on some defaults. commit 332007f250c4ef583d50c38f7535c027c372136f Author: Romain Dolbeau Date: Wed Sep 9 08:36:58 2020 -0400 Experimental change for performance - non-masked ADD/SUB/MUL ADD/SUB/MUL are three-addresses in SVE, but the masked form is only two-adresses. And there's a lot of reuse in FFTW3 (and complex arithmetic). But ACLE/SVE (i.e. intrinsics) don't have the non-masked form :-( So used inline ASM for force the non-masked version to be used. Masked-out lanes should be mostly zero, and are never stored anyway, so computing on them should be fine. This one will be reversed if it's not a performance win. commit f85c7f7e4d3a043d0a4c41f962292df8d1f78639 Author: Romain Dolbeau Date: Wed Sep 2 09:19:01 2020 -0400 Remove test&branch (ovs==0) in STu, replace by masking. Also, improve VBYI. commit 38ca2c6ebf5ee26d94a373c970d71e458b34a7ed Author: Gilles Gouaillardet Date: Sat Jul 18 16:02:37 2020 +0900 sve: go brrr commit 1348189b56a031f455c8db96a963170fb0375755 Author: Gilles Gouaillardet Date: Sat Jul 18 15:47:08 2020 +0900 sve: correctly support negative offsets commit 14084d09a8d9023bcfa366c91c238ee201572697 Author: Gilles Gouaillardet Date: Sun Jul 26 00:11:10 2020 +0900 update .gitignore ignore all files automatically generated for SVE support commit 867eaec14b15e06ef50b35e2e79f6be3dab00e04 Author: Gilles Gouaillardet Date: Sun Jul 26 00:03:16 2020 +0900 automatically generate simd-support/vtw.h in bootstrap.sh and add simd-support/{generate_vtw.sh,vtw.h} into the dist tarball commit bfe9886c1b632ca7a25361627c364bf9b7f23983 Author: Gilles Gouaillardet Date: Sun Jul 26 00:02:19 2020 +0900 simd/support/generate_vtw: fix include files for OSX commit 0a3490c382ba63accf4fe4abc1744c63ec6717cf Author: Romain Dolbeau Date: Sat Jul 25 13:05:43 2020 +0200 Clean rebuild of the arm-sve-alt branch (at 3b1a5c7468af05f1ce20c3b48a82e0948d093dfe) commit 187045ea647ba19c55db5f503d11bd811ee6b56e Author: Steven G. Johnson Date: Mon Jun 3 15:30:11 2024 -0400 update for ocaml 5.x (fixes #356) commit cab901fe465324cb46bd4953e18ddc610ade29b9 Author: Antonio Vazquez Date: Mon May 6 14:16:46 2024 +0200 cmake: Fix compilation with VisualStudio clang-cl (#354) commit 394fa85ab5f8914b82b3404844444c53f5c7f095 Author: tobim Date: Thu Apr 11 02:03:02 2024 +0200 Fix the cmake config file when configured with autotools (#338) When the autotools based build is used the FFTW3ConfigDeps.cmake file is not generated, so including it fails with an error. By making the include optional, the config file can still be used in a limited fashion. commit 981f553dc276b6d73a49916d503068fdb928a9a3 Author: BtbN Date: Fri Mar 22 16:10:38 2024 +0100 Include missing header for Win32 Threads check (#349) Recent compilers (mostly clang) just abort on implicit function declaration. So this check could never succeed there, since the proper header for the tested function was not included. commit d0ce926f1523d95daed48cd7c69572e068dbbfb3 Author: Sevan Janiyan Date: Tue Dec 5 01:03:34 2023 +0000 Update autoconf m4 components (#326) * Import AX_CHECK_COMPILE_FLAG & AX_CHECK_LINK_FLAG from autoconf-archive-2023.02.20. * Ditch AX_CHECK_COMPILER_FLAGS AX_CHECK_COMPILER_FLAGS is unable to perform tests for linker flags correctly, so the test always passes regardless of whether they're supported. This breaks the build on legacy Darwin when checking for -no_compact_unwind support with legacy toolchain. By switching, the right sequence of support is detected when testing among OS X Tiger (gcc 4.0.1), Leopard (gcc 4.2), Catalina (clang and gcc 12). * configure.ac: autoupdate Update to the syntax of Autoconf 2.69 * configure.ac: Use LT_INIT 'AC_PROG_RANLIB' is rendered obsolete by 'LT_INIT' * m4/Makefile.am: Update file list * m4/ax_cc_maxopt.m4: switch to AX_CHECK_COMPILE_FLAG * m4/ax_gcc_aligns_stack.m4: switch to AX_CHECK_COMPILE_FLAG commit 38ea230e25e69e7a3f35b957b815bac4f9aa22b0 Merge: 69f6c1a6 21090e87 Author: Matteo Frigo Date: Sat Aug 5 07:30:28 2023 -0400 Merge pull request #330 from luzpaz/typos Fix various typos commit 21090e87f42385cc9050d6296441d0fa02c6a3e0 Author: luzpaz Date: Sat Aug 5 05:30:48 2023 -0400 Fix various typos Various typo fixes commit 69f6c1a6ebd7ac5af33e7074134fb79fbc729c3d Author: Steven G. Johnson Date: Tue Jun 27 19:09:20 2023 -0400 add fftw_copy_plan (#314) * add fftw_copy_plan * tabs to spaces * doc clarification * typos commit 0842f00ae6b6e1f3aade155bc0edd17a7313fa6a Author: Steven G. Johnson Date: Wed Apr 12 15:00:01 2023 -0400 sync version with configure.ac Closes #323 commit 11d93a81143ecb6c5ac7f67d7059bf11bd93ef35 Merge: c277d556 a983a1f0 Author: Matteo Frigo Date: Thu Apr 6 20:28:12 2023 -0400 Merge pull request #322 from ryanvolz/cmake-simd-runtime-optional cmake: Set SIMD flags on appropriate source files only commit a983a1f01f216bb55aacb3ae5dccea4c03b58bc9 Author: Ryan Volz Date: Thu Apr 6 13:06:45 2023 -0400 cmake: Set SIMD flags on appropriate source files only. Doing this matches the behavior of the configure script and makefiles. Previously, enabling a set of SIMD instructions with the CMake build would build the whole library with that flag enabled, allowing the compiler to optimize by using that set of instructions anywhere. That would then require that any SIMD instructions enabled at build time would have to be present at run time. This change enables the intended behavior of using SIMD instructions only when they are detected at run time. commit c277d55689eef1616fa622b3bf6794af3a58e960 Author: Steven G. Johnson Date: Thu Mar 2 10:11:52 2023 -0500 rm obsolete reference to FFTW_DEBUG_MALLOC (removed in 62edb203fc09c8c8ac2c2d5ac3299ea8d4dc7838) commit 9426cd59106ffddde1f55131c07fa9c562fa2f8e Author: Ivan Panchenko <39594356+ivan-pan@users.noreply.github.com> Date: Mon Sep 26 00:30:23 2022 +0200 Fix mistakes (#296) * Fix mistakes * Update annotate.ml * Update c.ml * Update number.ml commit 619564efbf84199f87e1a3047da00b600208fca2 Author: Gilles Gouaillardet Date: Sat Jun 18 21:41:06 2022 +0900 updated test for whether CFLAGS was set by the user (#286) Refs. FFTW/fftw3#271 commit 7188a4c7b142c92287b025b55753959a33a2901e Author: Steven G. Johnson Date: Wed Feb 9 10:11:03 2022 -0500 updated test for whether CFLAGS was set by the user (#271) commit 7e92d55d49f13414317696c41137462135f6d6be Author: Steven G. Johnson Date: Mon Jan 3 12:23:11 2022 -0500 default to CNTVCT_EL0 cycle counter on Apple M1 (#267) commit de86de58cfc0140dc512c1deb93d3df895c9e3f1 Author: HinTak Date: Thu Dec 23 16:46:11 2021 +0000 Uses dlltool from GNU binutils to generate VC import libraries, and update README accordingly. (#135) zipping up the resulting import libraries also. This addresses some of the issues raised in https://github.com/FFTW/fftw3/issues/133 . commit 5ebbaaaac87ead8cf80a9106d31076768b3cd108 Author: SpaceIm <30052553+SpaceIm@users.noreply.github.com> Date: Thu Dec 23 17:43:35 2021 +0100 fix fortran api installation when not main project (#211) commit 80f5c5cf2a74835d101c38c54001a54de815c956 Author: Steven G. Johnson Date: Thu Dec 23 11:35:31 2021 -0500 run AC_PROG_CPP explicitly, or else it doesn't always run with autoconf 2.71 commit 7184fc796279cfa70e4ba62519ac2938054584e6 Author: Matteo Frigo Date: Tue Sep 14 10:41:20 2021 -0400 Update configure.ac for 3.3.10 commit 62e605c845d3c366849f48c977dfe0e320c23ff0 Author: Matteo Frigo Date: Mon May 31 09:55:57 2021 -0400 Use -mavx2 instead of -march=core-avx2 It appears that -march=core-avx2 was necessary on some old version of gcc-4.8, but setting -march is problematic for users who want to set -march themselves. It appears that whatever gcc bug caused us to use -march=core-avx2 in 2015 is long gone. I have checked gcc-4.8.5 on centos-7 and oraclelinux-7 (both 64-bit) and on 32-bit debian jessie and in all cases -mavx2 is sufficient. Therefore, given that the original cause for using -march is gone and that using -march causes problems, I am removing the automatic selection of -march=core-avx2 and I am using -mavx2 instead. Users for whom this is a problem can still override the default via ./configure --enable-avx2 AVX2_CFLAGS=... commit e9c510bf92a4fa848982310d2ecc8c5701aa3f6a Author: Matteo Frigo Date: Thu Feb 25 17:52:44 2021 -0500 Update NEWS. Bugfix 06855286 is noteworthy. commit 06855286332683aa79a541eddc07ee535cfa4f95 Author: Matteo Frigo Date: Thu Feb 25 10:15:04 2021 -0500 Fix aligment checks for n2*v codelets. n2{f,b}v codelets assume that all loads and stores are aligned. Thus, not only the pointers must be aligned, but all strides must be aligned as well (in the ALIGNEDA sense). For some reason, two-way SIMD, including double-precision sse2, defined SIMD_VSTRIDE_OKA(ivs) to be true always. However, this is incorrect because the codelet only works if ivs is even. This change implements the correct condition in all places where it matters. Thanks Kuangdai Leng for the bug report. This bug is deeply puzzling. First, I don't understand how this bug survived for years despite uncountable randomized tests. Second, I am pretty sure I fixed exactly this issue years ago and I don't understand how it came back. commit d738232235af6c96bc4a28b07fc867c000696245 Author: Rui Oliveira Date: Wed Feb 24 15:58:23 2021 +0000 Fix SIMD detection for MSVC (#232) commit 17b4252e3da62490d3e206569ebfec552d09afc1 Author: Vincent Jacques Date: Sun Dec 27 20:16:40 2020 +0100 Doc: remove duplicated "the" (#226) commit 34082eb5d6ed7dc9436915df69f376c06fc39762 Author: Matteo Frigo Date: Thu Dec 10 06:54:31 2020 -0500 Updated NEWS for fftw-3.3.9 commit a67409c50acd19180cc9b8f61c67354d392a9e66 Author: Steven G. Johnson Date: Tue Oct 20 12:20:45 2020 -0400 undo inadvertent change in cdb950a60c8a5b723f25ec24639a824e021b780d commit 16164a7bf3257376f22ddeda0842805d1c456b01 Author: Galen Lynch Date: Thu Aug 20 13:22:23 2020 -0400 First attempt at adding planner_nthreads (#205) * First attempt at adding planner_nthreads While you can currently set the maximum number of threads used by the planner, there is no way to check that number. This simply adds a new function, `planner_nthreads`, that provides this information, as was suggested by @stevengj. * Add basic testing of planner_nthreads In an attempt to verify that planner_nthreads works as intended, I have added an assertion in `fftw-bench.c` that `planner_nthreads` returns the nthreads just passed as an argument to `plan_with_nthreads`. commit 8266ecd946bebf3214c3b13880c8c2110f0600a4 Author: Robin Lu <19875776+Lqlsoftware@users.noreply.github.com> Date: Thu Aug 13 22:45:16 2020 +0800 Misspell: imlementation to implementation (#207) commit 10e2040af822a08ed49d2f6a1db45a7a3ad50582 Author: Steven G. Johnson Date: Wed Aug 5 14:44:41 2020 -0400 -no-gcc seems to have not been required with icc for years now, and is starting to cause problems with system headers on other platforms (fixes #184) commit 78e01190450398d44c7ba7ac69d3e720b6af1f16 Author: Steven G. Johnson Date: Wed Jul 1 08:24:32 2020 -0400 tag upper bound is 0x7fff, not 0xffff (fixes #206) commit fe55435ee880569b85446ff9ba6640a7db53a025 Author: Holy Wu Date: Wed Jul 1 06:04:27 2020 +0800 Fix x86 compilation in MSVC (#198) commit d832ca0e2f286650278563c6887c4f235785e606 Author: Matteo Frigo Date: Sat Jun 13 13:10:44 2020 -0400 Fix incorrect math in 128-bit generic SIMD It looks like simd-generic128.h:VTW1 was copied&pasted from the equivalent SSE code, but the consumer of that structure (BYTW1) was assuming a different format. commit ecba4071a7ece5c2fa6d93a21468a52dbb0522f5 Author: Matteo Frigo Date: Sat Jun 6 07:25:34 2020 -0400 Update MIT contact address commit 516116615362334c2051a16ec1658a888573ab63 Merge: 3a103f42 83707fdf Author: Matteo Frigo Date: Fri May 1 16:57:58 2020 -0400 Merge pull request #201 from muxator/patch-1 README.md: link to README commit 83707fdf9118b10fd88f67b206e5a2d2b69764c1 Author: muxator Date: Fri May 1 20:21:53 2020 +0200 README.md: link to README README.md refers the user to the text-only README, which contains - among other things, build instructions. Since the two files have a very similar name, this may lead to confusion for first-time users. With this commit, a relative hyperlink pointing to README is added in README.md, in order to make it explicit what file is being referenced. commit 3a103f4258d2a2090aa9038503aae7ca56c50bea Author: Matteo Frigo Date: Tue Apr 14 20:35:45 2020 -0400 Add explicit cast for C++ compatibility commit ef15637f3241f8d2cc8fcefc2bb9e536de98d692 Author: Matteo Frigo Date: Fri Apr 3 12:56:06 2020 -0400 Fix Makefile rules under -j N For some reason, given this Makefile: a: b c b c: COMMANDS invoking "make -j 2 c" runs COMMANDS in parallel twice, which fails if COMMANDS modify some global state. Hack around this quirk. commit db8b77525089448206b453279360b752f476d1cf Author: Matteo Frigo Date: Fri Apr 3 12:38:18 2020 -0400 Style Police commit 2a0f32012aaf3714ea4c4eccad5b4f053e85fb39 Author: Matteo Frigo Date: Fri Apr 3 12:22:55 2020 -0400 Replace deprecated Sort.list with List.sort commit c69d6c3c7512a814efe229d15e51dda0c1590ee6 Author: Matteo Frigo Date: Mon Jan 20 10:41:38 2020 -0500 Report mflops as %.8g (was %.5g) I got tired of seeing things like 1.15e5, prefer 115000. The drawback is that now bench reports things like 6839.6357 mflops, where the 8-digit precision implies much more accuracy than we actually have. commit cdb950a60c8a5b723f25ec24639a824e021b780d Author: Steven G. Johnson Date: Fri Jan 17 11:11:48 2020 -0500 fix compilation w/o threads commit 8588d74f24c7d98dcc66466bb364210330639f69 Author: Steven G. Johnson Date: Tue Sep 17 18:44:32 2019 -0400 soversion bump for API change commit 4a74466adfc93ca8748c4661de47cd9fa5c6bb46 Author: Steven G. Johnson Date: Tue Sep 17 17:53:50 2019 -0400 enable avx512 on clang (#177) commit 9126411654e6ac9c94202ceeb5a5af849ecac12c Author: Steven G. Johnson Date: Tue Sep 17 14:44:29 2019 -0400 update 3.3.9 NEWS commit ec98679b6535a7a75a4348c697b8b7daaae53b64 Author: Steven G. Johnson Date: Tue Sep 17 14:41:30 2019 -0400 indentation commit ca3c9c7e56c608bf05f42a6e92a46cb01c0ffe46 Author: Steven G. Johnson Date: Tue Sep 17 14:40:23 2019 -0400 document fftw_threads_set_callback commit 4093e4b58528459afdb6ba9e373d5d7a2a3a22b0 Author: Steven G. Johnson Date: Tue Sep 17 14:23:53 2019 -0400 add test for fftw_threads_set_callback commit 8a9236c494f680e550c536eeb6aa7102ecfad2ca Author: Steven G. Johnson Date: Mon Sep 16 15:48:40 2019 -0400 export threads_set_callback function properly, support in openmp as well as threads backend commit ffd28fd35b4ea6b29194ca2ef73994398fa9ee46 Author: Steven G. Johnson Date: Wed Sep 4 21:14:52 2019 -0400 silence more generated code in .gitignore commit c5c85fe618a93bf6e41489bb65b6bf4e27224ff1 Author: Matteo Frigo Date: Sat Aug 10 08:41:09 2019 -0400 README: note dependency on the Ocaml Num library. genfft needs the Ocaml Num library, which has been part of Ocaml for more than twenty years but was suddenly removed in ocaml-4.06: * #1178: remove the Num library for arbitrary-precision arithmetic. It now lives as a separate project https://github.com/ocaml/num with an OPAM package called "num". (Xavier Leroy) For now, note in README that Num is necessary, until I come up with a better long-term plan. Debian/ubuntu seem to have ocaml-4.05. Fedora 30 has ocaml-4.07, but installing the ocaml-num-devel package seems to be good enough. I'll worry about this problem once more distibutions upgrade ocaml. commit f1ad19cdac52f9f8d27c1e2fea55a16215408fd3 Author: Steven G. Johnson Date: Fri Jul 26 16:01:18 2019 -0400 add internal fftw_threads_set_callback, closes #175 commit d8bafdad0b460543fed9ff964f0de1c73cde249b Author: Matteo Frigo Date: Wed Jul 3 17:39:58 2019 -0400 fftw3.texi: use @finalout Avoid the \overfullrule black boxes when TeX cannot wrap long lines of code. commit 9fcdd122574259f263ba5afa939e1a6d28581bb3 Author: Matteo Frigo Date: Tue May 28 15:08:56 2019 -0400 make bigcheck: validate wisdom with multiple threads too commit 0062a1b23d035b44954fbfa8e05460a4bcddbe59 Author: Matteo Frigo Date: Tue May 28 15:01:22 2019 -0400 make bigcheck: validate that problems can be solved in -owisdom-only mode commit ccdf1cdfed8f2cf863dd4a1e4ac7be8ef4df152f Author: Matteo Frigo Date: Thu May 16 15:58:54 2019 -0400 configure.ac: update version to fftw-3.3.9 commit b43eba5ef5f1f6402b617b78e11b8e08d57988a6 Author: Matteo Frigo Date: Thu May 16 15:55:25 2019 -0400 update NEWS commit ebde7c4e4607afb6bbba7e6609fae56ff0fda01b Author: Matteo Frigo Date: Thu May 16 15:49:28 2019 -0400 Fix alignment requirements for avx512 The avx512 alignment requirement was set to 64 bytes, but this is wrong. Alignment requirements are a property of the platform (e.g., x86) and not of the instruction set (e.g., AVX). Among other things, this broke wisdom with avx512. Good thing that avx512 was marked as experimental. It's still experimental, because I have no hardware to test it. Thanks Tom Epperly for the bug report and debugging assistance. commit 77a2efdded4dceef1e6045313ae06e27265807ec Author: Matteo Frigo Date: Fri May 3 10:10:20 2019 -0400 CMakeLists: install fftw3.pc, not fftw.pc This resolves the discrepancy between "make" and "cmake". commit 4754dfd3f3149275c64896b78fbf3e8a36b7cc6c Merge: c6bebdb8 80a8d61e Author: Matteo Frigo Date: Sun Dec 2 16:52:16 2018 -0500 Merge pull request #158 from katterjohn/typo-fix Fix the incorrect comment about Util.interval commit 80a8d61e8e25d75c58cfa3c02b7137dc5e930b97 Author: Kris Katterjohn Date: Sun Dec 2 14:16:41 2018 -0600 Fix an incorrect comment commit c6bebdb84fafdfb1de8462f69276bd6a305f0154 Author: José Mª Escartín Date: Mon Oct 8 22:27:26 2018 +0200 Fix typo in Fortran quadruple-precision doc. (#155) The use of quadruple-precision with Fortran does not require the inclusion of file fftw3l.f03, but it requires the inclusion of file fftw3.f03. commit d59abdaaeb31af8a7d7f2d2ffa92931efd344e6c Author: Mario Emmenlauer Date: Fri Jun 15 03:31:40 2018 +0200 CMakeLists.txt: disable /bigobj on MSVC Intel compiler because its not required and not supported (#139) commit 700745cdbb34e964e1abda86183809fd8dd95796 Author: Matteo Frigo Date: Thu May 24 08:00:45 2018 -0400 Bump FFTW_MINOR_VERSION for fftw-3.3.8 commit 902d0982522cdf6f0acd60f01f59203824e8e6f3 Author: Matteo Frigo Date: Thu May 24 07:43:02 2018 -0400 update NEWS commit 41b0d9eff394891ba3327b9062811d48677bb411 Author: Matteo Frigo Date: Thu May 24 07:35:36 2018 -0400 CFLAGS: don't use -ffast-math -ffast-math is a relic from 1999 when it was kind of necessary for full use of FMA on powerpc. Nowadays it is just a liability. For example, 'gcc-8 -ffast-math' ignores the disctintion between +0 and -0, thus breaking the avx and avx2 implementations in fftw-3.7. commit 19eeeca592f63413698f23dd02b9961f22581803 Author: Matteo Frigo Date: Thu May 24 07:29:00 2018 -0400 Fixes for gcc-8 It looks like 'gcc-8 -ffast-math' does honor the distinction between +0.0 and -0.0 in floating-point constants. I suppose that technically -ffast-math has the right to do so. For good measure, this patch encodes such constants as their explicit binary representation. A separate patch will disable -ffast-math. commit bf478afbf2367df0f38c77f31d1f912aeeb82585 Author: Miklos Espak Date: Thu Apr 26 18:31:57 2018 +0100 Define include directory for installed targets (#141) commit ab888adf510338c03ea8ac49b4aab91fb57f1479 Author: Steven G. Johnson Date: Sat Apr 14 11:40:39 2018 -0400 don't need both identifier and name fields commit 2b999c600c58c78b8acb78c3352b02d9df6f6e60 Author: Steven G. Johnson Date: Fri Apr 13 08:43:35 2018 -0400 JSON doesn't like trailing commas commit 92eee8bbc4252c871aa870d2dce88eb98d0c7d18 Author: Steven G. Johnson Date: Fri Apr 13 08:38:50 2018 -0400 list both C and OCaml (as explained in codemeta/codemeta#181) commit 35e5609f17e212bf1c40da9b2ebe66784ad37052 Author: Steven G. Johnson Date: Thu Apr 12 12:01:15 2018 -0400 add codemeta file commit eba07c46b5d2f7824d293ab59aa5c29a25034963 Author: Matteo Frigo Date: Mon Feb 19 09:30:29 2018 -0500 Call _mm256_zeroupper() when leaving avx512 code Carsten Steger says: simd-avx512.h defines VLEAVE as nothing in FFTW 3.3.7. However, the current Intel® 64 and IA-32 Architectures Optimization Reference Manual, chapter 15.18, recommends the following: - When you have to mix group B instructions with Intel SSE instructions, or you suspect that such a mixture might occur, use the VZEROUPPER instruction whenever a transition is expected. - Add VZEROUPPER after group B instructions were executed and before any function call that might lead to Intel SSE instruction execution. - Add VZEROUPPER at the end of any function that uses group B instructions. - Add VZEROUPPER before thread creation if not already in a clean state so that the thread does not inherit Dirty Upper State. (Group B are instruction types that modify bits 128-511 of vector registers 0-15.) Therefore, I believe it would be prudent to define VLEAVE as _mm256_zeroupper in simd-avx512.h (see the attached patch). At https://software.intel.com/en-us/forums/intel-isa-extensions/topic/704023 Mark Charney says: To be clear, we very much still recommend using VZEROUPPER on Skylake. Even though it does not have the same penalties as earlier designs in that family for mixing AVX and SSE code, we definitely recommend using VZEROUPPER on Skylake. Yes it would obviously be better if there were one solution. For code that has to run on both families, the "common code" solution is to use the Xeon guidelines. If Mark Charney recommends VZEROUPPER, that's good enough for me. commit b267008613d082975b108252ed596ba0916ffa31 Author: Matteo Frigo Date: Wed Nov 22 12:54:18 2017 -0500 fftw3-mpi.f03 should be regenerated when Makefile changes commit 708b202fd593cf1002cf97dce0863e2a438e3720 Merge: 2e0cfdda 8ba34c40 Author: Matteo Frigo Date: Mon Nov 20 09:37:17 2017 -0500 Merge pull request #113 from xantares/mingw CMake enhancements commit 2e0cfddacacccc8a1e6e679c5e3fa81fb0219bda Author: Matteo Frigo Date: Mon Nov 20 07:07:30 2017 -0500 Attempt to strengthen language in README.md commit 8ba34c40fef38f661c9c413781990a7c021ba22b Author: Michel Zou Date: Thu Nov 9 22:33:51 2017 +0100 Preliminary Fortran support commit bd753a7679ecca2799640e7c8ced6f1f784f1b51 Author: Michel Zou Date: Mon Nov 6 23:00:29 2017 +0100 CMake MinGW fixes Mostly fixes the SSE2 macro in config.h, otherwise minor detection fixes commit da5372a175bcb09578359960869c76da74c9fda3 Author: Matteo Frigo Date: Tue Oct 31 20:21:17 2017 -0400 EXTRA_DIST += README-perfcnt.md commit 1b64d9269254e9d0a0f0b088e5eceb0db92d531f Merge: b5ccc557 2be183c3 Author: Matteo Frigo Date: Tue Oct 31 20:19:13 2017 -0400 Merge pull request #112 from alexeicolin/PR--armv7-pmccntr-counter-and-docs Pr armv7 pmccntr counter and docs commit 2be183c3a44d58aaa11909ba8882310fb44d598c Author: Alexei Colin Date: Tue Oct 31 23:34:38 2017 +0000 perf counters: name ARMv8 PMCCNTR_EL0 explicitly For consistency with the rest. commit 504ece7f8ffc60c2a03b28d977e9825230052d48 Author: Alexei Colin Date: Tue Oct 31 23:28:48 2017 +0000 perf counters: add PMCCNTR for ARMv7 and add docs The existing armv7 counter (CNTVCT) does need enabling from kernel mode (so updated the configure help), and the enable bit is different from the PMU enable bit (described in the new docs). Tested on XU4: printed the returned counter values and they look reasonable. commit b5ccc557fd2e57bfc955f0db9b5182e92f9cb55c Author: Matteo Frigo Date: Sun Oct 29 08:13:04 2017 -0400 fftw-mpi.h should include , not "fftw3.h" commit 9e3f8da20e65f1e34e677768e550086b06d77f16 Author: Matteo Frigo Date: Sun Oct 29 08:09:35 2017 -0400 NEWS: warn that cmake support is experimental and not well tested commit 9616fb9ff1c2694f5cfa2c4a59efa96094ae6812 Author: Matteo Frigo Date: Sun Oct 29 07:48:43 2017 -0400 Update NEWS for upcoming fftw-3.3.7 commit 62edb203fc09c8c8ac2c2d5ac3299ea8d4dc7838 Author: Matteo Frigo Date: Tue Oct 10 18:58:37 2017 -0400 Ditch --enable-debug-malloc and --enable-debug-alignment We wrote DEBUG_MALLOC in 1997 to debug memory leaks. Nowadays DEBUG_MALLOC is just confusing. Better tools are available, and DEBUG_MALLOC is not thread-safe and it does not respect SIMD alignment. It confused at least one user. In the gcc-2.SOMETHING days, gcc would allocate doubles on the stack at 4-byte boundary (vs. 8) reducing performance by a factor of 3. That's when we introduced --enable-debug-alignment, which is totally obsolete by now. commit 6ed4297e85e5ef24a18ce428b18e020d8e48413a Author: Matteo Frigo Date: Fri Sep 29 19:27:43 2017 -0400 Use armv7a cycle counter unconditionally if HAVE_ARMV7A_CNTVCT It looks like __ARM_ARCH_7A__ is not always defined. If the user says HAVE_ARMV7A_CNTVCT, trust the user. commit 2dd77382319ceb99c32b38418716783eec8adad4 Merge: 04590cb1 e09ab8ca Author: Matteo Frigo Date: Thu Sep 21 22:42:38 2017 -0400 Merge pull request #110 from junghans/cmake Minor cmake fixes commit e09ab8cac98c0f206968bbd962a6f76cf26e7437 Merge: 890dac59 76427f30 Author: Christoph Junghans Date: Thu Sep 21 16:13:43 2017 -0600 Merge commit 'refs/pull/109/head' of github.com:FFTW/fftw3 into cmake commit 04590cb11baa11bbfdebe101fa90186bbf48423c Author: Matteo Frigo Date: Thu Sep 21 18:00:58 2017 -0400 simd-vsx.h: don't use vpermxor It seems like gcc-6 generates incorrect code when using vpermxor (tested with qemu emulator, so there is a chance that gcc is right and qemu is wrong). Disable the use of vpermxor and do the simple thing (one multiplication + one permutation). commit 76427f30080e2cab3ca5047193ce8ffe6110f047 Author: Michel Zou Date: Thu Sep 21 23:44:15 2017 +0200 No need to list includes commit e47e9a81c41454e5e128cd68505b38152ad60500 Author: Matteo Frigo Date: Thu Sep 21 17:13:14 2017 -0400 Remove AC_FUNC_{MALLOC,REALLOC,MMAP} They don't do what I thought. E.g., AC_FUNC_MALLOC checks that malloc(0) returns NULL, and defines malloc to be rpl_malloc otherwise. We don't support rpl_malloc() and we don't care about malloc(0). commit 5aebc02ff30af12d2dc3be6c762e821a38f56595 Author: Matteo Frigo Date: Thu Sep 21 10:09:02 2017 -0400 Dead-Code Police commit d97394a17250d71d6a722ae64dcc3123130cf08f Author: Matteo Frigo Date: Thu Sep 21 09:54:36 2017 -0400 Fixup fftw3-mpi.h fftw3-mpi.h must include "fftw3.h", not "api/fftw3.h", because both fftw3-mpi.h and fftw3.h will ultimately be installed in /usr/include. Thus, as a special exception, mpi/Makefile.am must specify the include path -I $(top_srcdir)/api. commit 890dac59aca4c153e7e22add0a8de00766227670 Merge: 4ebda892 106582aa Author: Christoph Junghans Date: Wed Sep 20 14:44:04 2017 -0600 Merge commit 'refs/pull/109/head' of github.com:FFTW/fftw3 into cmake commit 4ebda89297b6b38632c3d91bd5a673a1bee4ffff Author: Christoph Junghans Date: Wed Sep 20 14:05:13 2017 -0600 autotools: fix install of FFTW3ConfigVersion.cmake commit e9a66d5f748037f9cb9c0f5b8d824d73c0425042 Author: Christoph Junghans Date: Wed Sep 20 13:29:29 2017 -0600 cmake: use GNUInstallDirs commit 4fbb72ad294e2070d64a83b24f89a601d4f624c6 Author: Matteo Frigo Date: Wed Sep 20 13:11:55 2017 -0400 Generate codlist.c only when MAINTAINER_MODE The user is not supposed to regenerate .c files. In addition, the generation rule is subtly nonportable (it depends on whether or not '#' can be escaped in Makefiles, an issue that does not appear settled.) commit f243f8ce48be61952527d43da222096296fdd2f9 Author: Matteo Frigo Date: Wed Sep 20 11:54:13 2017 -0400 Generate {dft,rdft}/simd/{sse,sse2,avx,...}/*.c only when MAINTAINER_MODE Users are not supposed to generate them. Apart from that, the generation rule uses '$*' in an explicit make rule, which is technically a GNU extension. (Works with {open,free}bsd, but breaks Solaris.) commit 106582aa8f97257f53730cbac81f98e8659b084c Author: Michel Zou Date: Wed Sep 20 15:46:51 2017 +0200 Fix includes, export target commit 1a24e67165ba56447f814bcdc12b9d6e083f1670 Author: Matteo Frigo Date: Wed Sep 20 07:24:58 2017 -0400 Restore the ability to build out of tree. Before 1f3704b9, we had "-I $(top_srcdir)/foo -I $(top_srcdir)/bar". After 1f3704b9, we had no -I specification at all, but automake wants an explicit -I $(top_srcdir) in order to build out of tree. commit 919b795940d1e86a948a4430193dbd0853f47272 Merge: 6076339a f7a64365 Author: Matteo Frigo Date: Wed Sep 20 06:41:50 2017 -0400 Merge pull request #107 from xantares/config-mode Config mode commit f7a6436509d324297783eb77df54010320b062f8 Author: Michel Zou Date: Wed Sep 20 11:46:05 2017 +0200 Build bench according to BUILD_TESTS commit 82cec28b7e14280ad11878978e23a3680bb0e983 Author: Michel Zou Date: Wed Sep 20 11:41:20 2017 +0200 Use cmake config mode Installs FFTW3Config.cmake instead of a FindFFTW3.cmake Also configures the pkgconfig file from cmake commit 6076339a342b12b0d0cfd9f6d967bfa9fbf6b1b2 Author: Matteo Frigo Date: Tue Sep 19 23:38:27 2017 -0400 Fix performance regression with gcc-3.3 commit f4c37657cb32b2552c5e86f0540c0308d4f451ef Author: Matteo Frigo Date: Tue Sep 19 23:24:08 2017 -0400 get rid of the sse2-nonportable.c hack It was necessary to support some broken compiler 15 years ago. Remove it and see if anybody complains. commit 362ae5c7b8a9df76b5ec0de4433131db33bae0ae Author: Matteo Frigo Date: Tue Sep 19 21:44:13 2017 -0400 configure.ac Police Remove some obsolete AC_CHECK_HEADERS, add new checks suggested by autoscan. commit a56b5b4b149e56fce43778172a56f77d30352833 Author: Matteo Frigo Date: Tue Sep 19 21:43:45 2017 -0400 Include Police fftw-wisdom.c was including instead of "api/fftw3.h" commit 1f3704b9eff4b7e80ef7d775fb13f5bb8de0a5f1 Author: Matteo Frigo Date: Tue Sep 19 21:12:22 2017 -0400 Do not set include path ("-I") in Makefile.am .[ch] files should specify their own paths explicitly. Setting paths in the Makefile was always a bad idea, but it is totally untenable if we are supporting cmake. commit 6e0ae04bad14a7dd9b4928f22d7a01e887dfdc03 Author: Matteo Frigo Date: Tue Sep 19 19:31:55 2017 -0400 Fix OpenBSD build Using $< in a non-suffix rule context is a GNUmake idiom and OpenBSD doesn't like it. commit 31a53789197f90d6bf349dd230ab86023e5fb83c Author: Matteo Frigo Date: Tue Sep 19 19:24:34 2017 -0400 EXTRA_DIST += FindFFTW3.cmake.in commit ae1a764ce88166e8e1f05a25888f105ec8f1939d Merge: 5fdca1d9 97b273d8 Author: Matteo Frigo Date: Tue Sep 19 17:13:58 2017 -0400 Merge pull request #69 from junghans/cmake Build und install cmake module commit 5fdca1d9b0a0b2e6491c98f63873dcf600355e09 Merge: b521e530 66506470 Author: Matteo Frigo Date: Tue Sep 19 15:57:59 2017 -0400 Merge pull request #92 from tklauser/armv7a-cycle-counter Fix ARMV7-A cycle counter detection commit b521e5305a7317c1c0f1d454beb6580eaf4de1db Author: Matteo Frigo Date: Tue Sep 19 15:51:03 2017 -0400 cmake: don't check for dlfcn.h We don't use it commit fc852fcdfa80fab30eac2284249686853efa2e4b Author: Matteo Frigo Date: Tue Sep 19 15:43:02 2017 -0400 Remove ancient paranoia In the '90s we used to run autoconf three times, just in case (because it really didn't work the first time). "Three" was modeled after the "sync; sync; sync; reboot" incantation of the '80s. Hopefully we are past this by now. commit 34738e7f669882c6abc12c2744c8acc347c91719 Author: Matteo Frigo Date: Tue Sep 19 15:32:39 2017 -0400 Flip boolean in a way that makes more sense to me commit a2bfd859d9ad08490d02252d8a80c5994dd82747 Author: Matteo Frigo Date: Tue Sep 19 15:28:56 2017 -0400 Various CMakeLists.txt fixes * AVX2 codelets require -mfma * --enable-avx2 automatically enables the 128-bit avx2 codelets in *dft/simd/avx2-128 * bump FFTW_VERSION to 3.3.7, SOVERSION to 3.5.7 * build bench always, irrespective of Threads_FOUND commit 93ac6e1075e73c0275a9e0006fe9161c3b6fae38 Merge: a71f3dd3 d3a8d13f Author: Matteo Frigo Date: Tue Sep 19 14:31:03 2017 -0400 Merge pull request #103 from xantares/cmake Add user cmake support Still needs work, but let's move forward and move this contribution into the official repository commit d3a8d13f74361a7ffc4c48c229181a86b35e9a7d Author: Michel Zou Date: Tue Jul 18 12:16:43 2017 +0200 Add user cmake infrastructure commit a71f3dd355f802dc362a52674a977ff81daadf9d Author: Matteo Frigo Date: Wed Jul 5 06:33:40 2017 -0400 Disable ISA_EXTENSION_PREFERS_FMA for now I still don't understand whether or not avx2 should use FMA codelets. Ryzen is faster with the non-FMA version. Haswell prefers the FMA version. However, I suspect that Haswell prefers FMA because of a quirk of the micro-architecture. Haswell has two floating-point "ports". You can issue an addition only through one "port", but you can issue two FMA in parallel on both ports, so FMA appears to be faster. Skylake apparently restores balance (but I haven't tried yet). Suspend judgment for now until I gather more data. commit f82b8c94596868897987b71a648eaa664590602a Author: Matteo Frigo Date: Tue Jul 4 20:06:57 2017 -0400 Rationalize HAVE_FMA Distinguish ARCH_PREFERS_FMA, for architectures that "naturally" prefer FMA (e.g., powerpc), from ISA_EXTENSION_PREFERS_FMA, for instruction-set extensions that favor FMA where the base architecture does not (e.g., avx2 on x86). Previously, --enable-avx2 would use FMA code for scalar and avx codelets, which is wrong. This change improves performance by a few percent on Ryzen (where FMA doesn't really do anything), and is a wash on Haswell. commit 0869f4e51b8b0aeb7da1b21b2683c30cd4e10a5e Author: Steven G. Johnson Date: Tue May 9 09:14:37 2017 -0400 document that howmany ≥ 0 (closes #95) commit 665064700b26c01c0836e4c12a5ee0eab3923858 Author: Tobias Klauser Date: Wed Mar 29 16:15:45 2017 +0200 Fix ARMV7-A cycle counter detection Check for the correct pre-processor define HAVE_ARMV7A_CNTVCT from config.h (instead of ARMV7A_HAS_CNTVCT) to fix the detection of the cycle counter for ARMv7-A in the configure script (and actually use it in the built library). Without this fix, even the following ./configure call: ./configure --enable-neon --enable-single --enable-armv7a-cntvct \ --host=arm-linux-gnueabihf --disable-fortran \ CC="arm-linux-gnueabihf-gcc -march=armv7-a" will emit the warning: checking whether a cycle counter is available... no *************************************************************** WARNING: No cycle counter found. FFTW will use ESTIMATE mode for all plans. See the manual for more information. *************************************************************** With this fix applied, ./configure will correctly detect the cycle counter register: ... checking whether a cycle counter is available... yes ... commit cc5fc8ce7ffd77f467740554f649aab4d3f71344 Merge: 102f2fd0 950b1539 Author: Matteo Frigo Date: Tue Mar 14 07:21:45 2017 -0400 Merge pull request #91 from fornwall/android-clock-gettime Avoid trying to use CLOCK_SGI_CYCLE on Android commit 950b153910f7f0dde9cc20cddeee5dc9048d25b7 Author: Fredrik Fornwall Date: Mon Mar 13 23:41:35 2017 +0100 Avoid trying to use CLOCK_SGI_CYCLE on Android The Android headers defines CLOCK_SGI_CYCLE but the call fails at runtime as it's not implemented. Combined with getticks() not checking the return value of clock_gettime() this causes bogus values to be returned from getticks(). commit 102f2fd0249dca301d195b4df1b94e7b339b8c60 Author: Matteo Frigo Date: Wed Feb 22 14:59:30 2017 -0500 Compute mflops() in 64 bit precision Old code was overflowing for N>2^32 commit 2b63fc2eaae645a5c2ef4a97c384beb2adefd58d Author: Matteo Frigo Date: Fri Jan 27 16:06:27 2017 -0500 Update NEWS for 3.3.6-pl2 commit d2ca54234956ad8be82ba050305ccf979fd631a7 Author: Matteo Frigo Date: Fri Jan 27 16:01:42 2017 -0500 Get ready for fftw-3.3.6-pl2 commit 83092f8efbf872aefe7cfc6ee8fa43412f8e167a Author: Matteo Frigo Date: Fri Jan 27 15:52:18 2017 -0500 Fix scrips that generate the MPI F03 interface It turns out that the scripts were using fftw3.h from /usr/include, not ../api, and were failing silently if fftw3.h was not installed. This bug led to a fftw-3.3.6pl1 release with incomplete mpi/f03 header files. commit ab402b00f9a003daa10863b9bcdbe0810b26f541 Author: Steven G. Johnson Date: Wed Jan 25 13:03:15 2017 -0500 mention mkdist.sh and summarize the build process in README.md (closes #85) commit fa9f00b3831177f0a9582092f21efb14e3d4601f Author: Matteo Frigo Date: Sun Jan 22 14:51:44 2017 -0500 add __cdecl decorators to fftw3.h functions on Windows This patch re-does 1f19d597 in a more disciplined way. Also, Whitespace Police. commit 42c0036e839b78a7af651d5504add62ed57f9961 Author: Matteo Frigo Date: Sun Jan 22 14:32:32 2017 -0500 Revert "add __cdecl decorators to fftw3.h functions on Windows, in case someone compiles with a non-default calling convention, as discussed in #80" This reverts commit 1f19d59793eb629dd8228e8a41f4f8618c20a246. The chosen syntax FFTW_EXTRN(T) X(name) is improper because __cdecl appertains to the declarator and not to the return type. (As is clear, e.g., in void (__cdecl *foo)(void)). This forces monstrosities such as FFTW_EXTRN(R *) X(name) that contradict the C declaration syntax. I'll redo the patch in a way that looks like C: FFTW_EXTERN R *FFTW_CDECL X(name) commit 1f19d59793eb629dd8228e8a41f4f8618c20a246 Author: Steven G. Johnson Date: Thu Jan 19 23:09:23 2017 -0500 add __cdecl decorators to fftw3.h functions on Windows, in case someone compiles with a non-default calling convention, as discussed in #80 commit 596b924b86340456771fb75559016ec2cc1b44c4 Author: Matteo Frigo Date: Mon Jan 16 10:25:37 2017 -0500 Assert that CURRENT-AGE=3 This is an attempt to prevent the 3.3.6 version screwup from occurring again. In any reasonable universe, libraries would have a version H and they would specify a L such that the library is compatible with all versions in [L..H]. Any sensible programmer would never change L, as this breaks backward compatibility and screws users. A new version would increase H and be done. Instead, libtool wants CURRENT=H and AGE=H-L (a new version change two variables). Furthermore, the name of the library in the file system is a combination of L and H-L. The two changes of basis arent't even orthogonal. Pure madness. This change attempts to impose sanity by asserting that that the implied L is 3, since we never intend to break backward compatibility with fftw-3.3, which was version L=3. commit 6fb9cd7b6359f29ce488a5802793139971d59c6c Author: Matteo Frigo Date: Mon Jan 16 09:06:06 2017 -0500 Release 3.3.6-pl1 commit 18b7e53c54727303703db29373e61a35fb8d5db8 Author: Matteo Frigo Date: Mon Jan 16 08:56:53 2017 -0500 Fix #82: FFTW3 3.3.6 shared version rollback commit 64a5a288e56c6ff4462b69531f4f34d740fdc12c Author: Matteo Frigo Date: Mon Jan 16 08:42:01 2017 -0500 Improve documentation of fftw_make_planner_thread_safe Specifically, tell people not to use it unless they must. commit 811a672bdaedec4363272d9f7ed5fae56086aeb1 Author: Matteo Frigo Date: Sun Jan 15 17:40:37 2017 -0500 rm obsolete simd/ directory We switched to simd-support/ many years ago, not sure why it is still in git. This was not a problem when the repository was private, but the directory probably confuses people on github. commit 5c9bead1ea35b3a21fb33f17011d6802722ba44b Author: Matteo Frigo Date: Sun Jan 15 07:25:40 2017 -0500 Warnings Police * suppress dead code in genfft/simd.ml * fix on size_t/int confusion * fix one float*/double* confusion (should have been void* because we only check the alignment of the pointer, not its type). commit 41b191ee128fefe28a228ab706dfdfb65d32c2e1 Author: Matteo Frigo Date: Sun Jan 15 07:02:40 2017 -0500 Update configure.ac, NEWS for 3.3.6 commit fc3ada6e6bd790341fb5d91c6775b8afd686bad7 Author: Matteo Frigo Date: Sun Jan 15 06:40:23 2017 -0500 Ansi C Police fftw is supposed to compile with c89/c90. Restore this property so that I can test with gcc -ansi. This change may seem needlessly reactionary, but in the last release I accidentally inserted an assertion before a declaration and I broke the Visual Studio build, so we must be careful not to use C99 constructs. There are a few non-ANSI function calls in tests, e.g. isnan(), drand48(), snprintf(). Since nobody has complained about those in years, I am leaving them alone. commit 50dacdaba79694c873965ab23d11c8ca3b94d436 Author: Matteo Frigo Date: Sat Jan 7 09:01:47 2017 -0500 Revert simd-avx.h changes from b606e3191 They didn't improve performance at all as far as I can tell, and they ended up breaking the PGI compiler. It is always tempting to use the fancy addsub instructions in FFTW to do complex multiplications, but the reality is that FFTW is designed to avoid complex multiplications in most cases (we started in the SSE days), and thus they don't make any difference. We are better off using the minimal possible set of AVX instructions to minimize the chance of triggering compiler bugs. The same statement holds for _mm256_shuffle_pd() versus _mm256_permute_pd(): in theory the latter is better, in practice either one is rarely used. However, SHUFFLE is older (since the SSE days) and has a higher chance of working. commit 5fa55dc130e18cc4b3f4d88b8a159307eecf51d0 Merge: 1637e8aa aa00ba84 Author: Matteo Frigo Date: Sun Nov 13 05:49:09 2016 -0500 Merge pull request #77 from rolandschulz/master Fix AVX512 load+store commit aa00ba84079a272637666c9ae941821087f712b8 Author: Roland Schulz Date: Sat Nov 12 20:52:49 2016 -0800 Fix AVX512 load+store FFTW alignment is only 16 bytes. AVX512 requires 64 bytes. Thus unaligned load/store is required. AVX256 does the same. commit 1637e8aace6e91d67837901b5a4cbbc87c42aca9 Merge: 3e7ee221 a538bf2c Author: Matteo Frigo Date: Thu Nov 3 11:24:44 2016 -0400 Merge pull request #76 from forandom/patch-2 Update simd-vsx.h to support building with IBM XLC commit a538bf2c4a17ec509f2cec37bffe48874702c671 Author: forandom Date: Thu Nov 3 23:06:17 2016 +0800 Update simd-vsx.h to support building with IBM XLC defined(__POWER8_VECTOR__) && defined(__GNUC__) && defined(__LITTLE_ENDIAN__) is true for IBM XLC compiler for which we should use the intrinsic __vpermxor instead of __builtin_crypto_vpermxor. commit 3e7ee2211ae1bd5e76901bbe1bcca67b31f84ccb Author: Matteo Frigo Date: Sat Sep 24 06:39:01 2016 -0400 Do not run programs at configure time, ever. configure was running a program to detect the ARM cycle counter, thus preventing cross-compiling. Sorry about that. commit fee0f966b2d3fae18019dd03a9bae338b4108d42 Merge: 3a3173b0 cca0c6e5 Author: Matteo Frigo Date: Fri Sep 9 06:49:23 2016 -0400 Merge pull request #72 from tkelman/patch-1 #include in threads.c for windows build commit cca0c6e5a8c717df10f380411709f3360ceea6e9 Author: Tony Kelman Date: Fri Sep 9 03:24:30 2016 -0700 #include in threads.c for windows build otherwise an i686-w64-mingw32 cross compile is giving ``` libtool: link: i686-w64-mingw32-gcc -march=pentium4 -m32 -std=gnu99 -shared -Wl,--whole-archive kernel/.libs/libkernel.a dft/.libs/libdft.a dft/scalar/.libs/libdft_scalar.a dft/scalar/codelets/.libs/libdft_scalar_codelets.a rdft/.libs/librdft.a rdft/scalar/.libs/librdft_scalar.a rdft/scalar/r2cf/.libs/librdft_scalar_r2cf.a rdft/scalar/r2cb/.libs/librdft_scalar_r2cb.a rdft/scalar/r2r/.libs/librdft_scalar_r2r.a reodft/.libs/libreodft.a api/.libs/libapi.a simd-support/.libs/libsimd_support.a simd-support/.libs/libsimd_sse2_nonportable.a dft/simd/avx/.libs/libdft_avx_codelets.a rdft/simd/avx/.libs/librdft_avx_codelets.a threads/.libs/libfftw3f_threads.a -Wl,--no-whole-archive -march=pentium4 -m32 -O3 -mtune=native -malign-double -Wl,--stack -Wl,8388608 -o .libs/libfftw3f-3.dll -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker .libs/libfftw3f.dll.a libtool: link: i686-w64-mingw32-gcc -march=pentium4 -m32 -std=gnu99 -shared -Wl,--whole-archive kernel/.libs/libkernel.a dft/.libs/libdft.a dft/scalar/.libs/libdft_scalar.a dft/scalar/codelets/.libs/libdft_scalar_codelets.a rdft/.libs/librdft.a rdft/scalar/.libs/librdft_scalar.a rdft/scalar/r2cf/.libs/librdft_scalar_r2cf.a rdft/scalar/r2cb/.libs/librdft_scalar_r2cb.a rdft/scalar/r2r/.libs/librdft_scalar_r2r.a reodft/.libs/libreodft.a api/.libs/libapi.a simd-support/.libs/libsimd_support.a simd-support/.libs/libsimd_sse2_nonportable.a dft/simd/avx/.libs/libdft_avx_codelets.a rdft/simd/avx/.libs/librdft_avx_codelets.a threads/.libs/libfftw3_threads.a -Wl,--no-whole-archive -march=pentium4 -m32 -O3 -mtune=native -malign-double -Wl,--stack -Wl,8388608 -o .libs/libfftw3-3.dll -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker .libs/libfftw3.dll.a threads/.libs/libfftw3_threads.a(libfftw3_threads_la-threads.o):threads.c:(.text+0x121): undefined reference to `_mm_pause' threads/.libs/libfftw3_threads.a(libfftw3_threads_la-threads.o):threads.c:(.text+0x581): undefined reference to `_mm_pause' collect2: error: ld returned 1 exit status threads/.libs/libfftw3f_threads.a(libfftw3f_threads_la-threads.o):threads.c:(.text+0x121): undefined reference to `_mm_pause' threads/.libs/libfftw3f_threads.a(libfftw3f_threads_la-threads.o):threads.c:(.text+0x581): undefined reference to `_mm_pause' collect2: error: ld returned 1 exit status make[4]: *** [Makefile:627: libfftw3f.la] Error 1 make[4]: *** [Makefile:627: libfftw3.la] Error 1 make[3]: *** [Makefile:672: all-recursive] Error 1 make[2]: *** [Makefile:536: all] Error 2 make[3]: *** [Makefile:672: all-recursive] Error 1 make[1]: *** [/home/Tony/julia32/deps/fftw.mk:46: scratch/fftw-3.3.5-single/build-compiled] Error 2 make[1]: *** Waiting for unfinished jobs.... make[2]: *** [Makefile:536: all] Error 2 make[1]: *** [/home/Tony/julia32/deps/fftw.mk:46: scratch/fftw-3.3.5-double/build-compiled] Error 2 make: *** [Makefile:81: julia-deps] Error 2 ``` commit 97b273d87dcc797e688709e207f119dd4dfca015 Author: Christoph Junghans Date: Wed Aug 31 14:24:05 2016 -0600 Build und install cmake module commit 3a3173b018f30d03df5f3166d459888f2669fe25 Author: Matteo Frigo Date: Wed Aug 31 06:14:51 2016 -0400 C++ compatibility Although FFTW is a C program, we try to make it compilable by a C++ compiler as well. Implicit cast void * ==> double * is not allowed in C++. commit 5fd9609eaed60360ce84d98add5d9548093e0bdc Author: Matteo Frigo Date: Fri Aug 12 04:24:52 2016 -0400 Updated NEWS commit 402d2508fe970770d9316d9c83f21d6fc268ba12 Author: Matteo Frigo Date: Fri Aug 12 04:21:33 2016 -0400 Fix race condition when destroying a plan. More generally, this patch calls the planner hooks when destroying a plan. The intended usage is that the hooks do in fact acquire a lock. commit 432835f2cd37d2cb8b9528ac8ef983b3b38738f2 Author: Matteo Frigo Date: Tue Aug 9 05:29:39 2016 -0400 MSVC fixes by Carsten Steger * don't mix declarations and statements, stick to ANSI C * suppress some warnings with Intel cc * undefined variable in x86-cpuid.h when (_MSC_VER > 1500) || (_MSC_VER == 1500 & _MSC_FULL_VER >= 150030729) commit c018cbe430fd6b2af31d594c27a0aaf711292567 Author: Matteo Frigo Date: Thu Aug 4 06:36:29 2016 -0400 Fix SIMD autodetection on amd64 when (_MSC_VER > 1500) commit d5055c9ae2e60f191f6cc2e8b5200fd06dbdb6be Author: Matteo Frigo Date: Sun Jul 31 13:42:00 2016 -0400 revise README.md language commit 0af8d8b9eea0750add8be0e6dec18841ee61424e Author: Matteo Frigo Date: Sun Jul 31 13:39:49 2016 -0400 revise README.md language commit 0d026e09f9b514cb86bbc7977ad0a03b664b95de Author: Matteo Frigo Date: Sun Jul 31 13:37:09 2016 -0400 Attempt to tell users to download official tarballs from fftw.org instead of github commit b405994456f9a87f2170ba19536d4c4d8278682f Author: Matteo Frigo Date: Sat Jul 30 16:33:22 2016 -0400 update AUTHORS commit 4d0c1894fb37c61b0f0a42b50afd435d226f6b9e Author: Matteo Frigo Date: Sat Jul 30 15:18:06 2016 -0400 Fixes for Windows cross-compilation These days mingw by default produces binaries that depend on libgcc-sjlj-1.dll, which defeats the whole historical point of mingw (produce vanilla win32 binaries with no GNU stuff). Add a hack to link with -static-libgcc, which avoids the problem. commit a17d44eeb3100780ba106a22f497d47a43be7642 Author: Matteo Frigo Date: Sat Jul 30 11:39:09 2016 -0400 Misc fixes. * sed s/avx[_- ]128[-_ ]fma/avx-128-fma * avoid some signed/unsigned casts commit f3688be112ed0099b4c57970db74c08373f3604d Author: Matteo Frigo Date: Sat Jul 30 10:52:53 2016 -0400 Fix SIMD autodetection * AVX was not testing for OSXSAVE support * AVX2 was broken (issuing XGETBV without checking for its presence---failing on atom) * AVX512 was broken in the same way as AVX2, I have guessed a fix but I have no way to test it. commit 7fce2ae37f8338bd7e021b1a406c75b213c31c77 Author: Matteo Frigo Date: Fri Jul 29 07:48:10 2016 -0400 document fftw_make_planner_thread_safe() commit 6167b92e3362f2d116274daa561c0d788fb670d4 Author: Matteo Frigo Date: Fri Jul 29 07:28:03 2016 -0400 rm README-bench It appears in tests/README commit cc9640cbbaa70e6645a0ea46be0508268905c2ba Author: Matteo Frigo Date: Fri Jul 29 07:27:25 2016 -0400 Add README-bench commit d82fe4f3e06bdbf92b09324e36f4d477bc5fe376 Author: Matteo Frigo Date: Fri Jul 29 07:25:00 2016 -0400 Do not enable avx128-fma unless the user asks for it. Adding SIMD instruction sets automatically is user-hostile behavior. Also, update the manual to reflect the new SIMD support commit dc32329871d304de8d95ad290973844dfbc6101f Author: Matteo Frigo Date: Fri Jul 29 07:00:55 2016 -0400 Update NEWS for 3.3.5 commit 2ed010c62b1bc8ca6b23bfda2e09b8c28e1e8bcc Author: Matteo Frigo Date: Sun Jun 5 07:07:15 2016 -0400 Clean up some int<->size_t confusion commit ea86c49ac7470a646d1e6a4fa007ecbda6ab56c4 Author: Matteo Frigo Date: Sat Jun 4 20:33:15 2016 -0400 Unused Variable Police commit d9a3f48343bda0a88c8a87cab329d95426ddfcb9 Author: Matteo Frigo Date: Sat Jun 4 20:30:12 2016 -0400 Integral Type Police clear some int/unsigned/size_t confusions commit 29cee6cc95d434321292d013d6a7be4c55379a49 Author: Matteo Frigo Date: Sat Jun 4 19:50:10 2016 -0400 Cast Police Eliminate some useless (but harmless) int<->size_t conversions. commit d7c566eb98523c7c0bafae734c7894a5a3595771 Author: Matteo Frigo Date: Sun Mar 13 17:50:45 2016 -0400 Clarify ambiguous/wrong documentation of halfcomplex output format. commit 6543818e3091ea788a1aac41d06ca343e672f103 Author: Matteo Frigo Date: Wed Jan 20 18:18:14 2016 -0500 Cleanup Rewrite Unique.make in more idiomatic caml style, strongly typed. commit 4965e33c6c98484b66787f1891cfe4f689becee5 Merge: 119aa4c4 f8a73593 Author: Matteo Frigo Date: Wed Jan 20 15:14:32 2016 -0800 Merge pull request #53 from artemkin/master Fixed unique token generation in genfft commit f8a73593a499efc751103460ff2f07d8b1e2ff0c Author: Stanislav Artemkin Date: Thu Jan 21 01:17:30 2016 +0400 Fixed unique token generation in genfft Unique token generation was based on the assumption that OCaml compiler won't inline a given piece of code. Starting from 4.02.0 it does more aggressive inlining and breaks this functionality. commit 119aa4c4a893f32dfd837a84fac9453b6dae6680 Merge: 8c7a7af1 e41df2c3 Author: Matteo Frigo Date: Wed Sep 30 15:38:00 2015 -0400 Merge pull request #48 from rleonid/master Replace depracted usage of Pervasives or. commit e41df2c3cac7c3e69586c07f80f1bb0a24dccd5a Author: Leonid Rozenberg Date: Wed Sep 30 15:22:16 2015 -0400 Replace depracted usage of Pervasives or. commit 8c7a7af184a63064325fa542a8d1d7f4e3b4b8aa Author: Matteo Frigo Date: Tue Sep 8 10:35:18 2015 -0400 Clarify how to bootstrap fftw from the git repository commit a0cbff67eae9ab66f6f2b4cf2ea79de6c95d7d61 Author: Matteo Frigo Date: Tue Sep 8 10:28:49 2015 -0400 Clarify that ocamlbuild is necessary for --enable-maintainer-mode commit f6339eadef8a62432ea2f2017ce0b4a1954ea738 Author: Steven G. Johnson Date: Wed Aug 5 11:11:26 2015 -0400 fix LaTeX typo, thanks to Gael Lorieul commit 8cd9bfa347289143a00fa0d5eea30f4766192d46 Author: Erik Lindahl Date: Wed May 27 00:15:57 2015 +0200 Update VSX SIMD to avoid inline assembly Thanks to some help from Michael Gschwind of IBM, this removes the remaining inline assembly calls and replace the with vector functions. This avoid interfering with the optimizer both on GCC and XLC, and gets us another 3-10% of performance when using VSX SIMD. Tested with GCC-4.9, XLC-13.1 in single and double on little-endian power 8. commit 579cec9a64cc177e673f006eb112d488be21b230 Author: Erik Lindahl Date: Tue May 26 19:27:58 2015 +0200 Enable SSE2 automatically with AVX,AVX2, or AVX512. 256-bit AVX can be significantly slower than 128-bit SIMD. Despite recommendations many distributions appear to only enable AVX, but not SSE. This fixes the problem by also enabling SSE when we use the wider SIMD instructions. commit dd80210ec433938876575e2435e12d7e630872e7 Author: Erik Lindahl Date: Tue May 26 19:09:40 2015 +0200 Turn AVX-128 into AMD-specific AVX-128-FMA The only platform where AVX-128 really matters is AMD (since the compute units can execute a single 256-bit or two 128-bit SIMD instructions), so now we only use it there which means we can also enable FMA instructions. commit b3105ed9529846ca8dd9267e46d7bcd2ebb12ff6 Author: Matteo Frigo Date: Mon May 25 17:33:15 2015 -0400 Fix broken avx/32-bit compilation commit d3442a8395e1fc6e77490c3f34c868b1998e4e96 Author: Matteo Frigo Date: Mon May 25 17:27:31 2015 -0400 rm hooks api's, add fftw_make_planner_thread_safe() api fftw_make_planner_thread_safe() installs a lock around the planner. It is guaranteed to be atomic and idempotent. I wrote an emulation of pthread mutex initializers on Windows, but I haven't even compiled the Windows code yet. commit 842596fe6bfb277effc8f8f8db7e1c4008bb59e1 Author: Matteo Frigo Date: Mon May 25 11:11:58 2015 -0400 Add TODO's commit eff7dfcd526e90539f169cfff2374ceb2fd2dd0e Author: Matteo Frigo Date: Mon May 25 10:50:21 2015 -0400 add TODOs commit 0e53e3e9d2640a895a69c5aff4a676c156271141 Author: Matteo Frigo Date: Mon May 25 10:48:03 2015 -0400 Add argument to planner hooks commit 94ef591d61c8e78e87c65f9779eb003fc7f1ba6b Author: Matteo Frigo Date: Mon May 25 10:37:24 2015 -0400 Update shared-version-info We added an API (planner hooks), so the shared version info needs to be bumped. commit 9ef9ec85588c026e6a80b1475df24ba20d098e8e Author: Matteo Frigo Date: Mon May 25 10:27:25 2015 -0400 Bump version to 3.3.5 commit 593d55932959366918e209fbbd2f4719d39d448c Author: Romain Dolbeau Date: Wed May 13 16:42:23 2015 +0200 Typo ; Fixes #41 commit cd2b27d1600d80ba719f1b70094886e39cf145a3 Author: Erik Lindahl Date: Thu May 7 17:45:43 2015 +0200 Separate routines to query 128-bit AVX support This also disables 256-bit AVX for current AMD processors that work better with 128-bit AVX. Note that this is not detected by the timing routines since the effect is only apparent when using multiple cores. commit a1cf4158dd829853bd9f6b8c4c4951d7495c9e64 Merge: b6135085 0331b39c Author: Romain Dolbeau Date: Mon Apr 20 22:01:15 2015 +0200 Merge branch 'master' of github.com:FFTW/fftw3 commit 0331b39cd3641a8ac89be27dbde3e41204fd1888 Merge: 38b93ccf d2ea399c Author: Erik Lindahl Date: Mon Apr 20 21:09:44 2015 +0200 Merge branch 'experimental-simd' Merged in new SIMD architectures from separate branch. commit d2ea399c46174db45838ca6a3b917cf880970921 Author: Romain Dolbeau Date: Thu Apr 16 08:54:58 2015 +0200 Fix stack alignment (alloca) for generic256. commit b6135085bd1ee2e2c6c82b06e78d492e4f242cca Author: Romain Dolbeau Date: Tue Apr 14 10:17:38 2015 +0200 Add a configure option to disable building the documentation in doc/. This is useful if some documentation tools are missing on the host (i.e. fig2dev in maintainer mode). commit 38b93ccfc3786d1c23726dc939de558f4dd2a2d3 Author: Romain Dolbeau Date: Mon Apr 13 14:16:28 2015 +0200 In maintainer mode, detect whether 'indent' is available and is GNU indent. BSD 'indent' in e.g. MacOSX doesn't support -kr, which is the default style in FFTW3. Fallback to 'indent' with no option for non-GNU 'indent', or 'cat' if 'indent' is not available. This should fix GitHub issue #13. commit 96eb0ad31c8d0c226a6aeb95e68bda90dd7e6f6a Author: Romain Dolbeau Date: Sun Apr 12 13:49:39 2015 +0200 missing AC_ARG_ENABLE for --enable-fma commit 24ff943f4e99458d41db543305a2c945ba2ba429 Author: Romain Dolbeau Date: Sun Apr 12 13:47:24 2015 +0200 Revert "reinstate --enable-fma ; not enabled by default for AVX2 & AVX-512 (will ad a warning later)" This reverts commit 40691a49eea40d305405fe527e174e8067606dae. A different fix is needed. commit 37a0dbc10f0199fd431f0b5d8b42143cc2a2a88d Author: Romain Dolbeau Date: Sun Apr 12 13:39:28 2015 +0200 Add sanity check & warning in AVX2 & AVX-512 commit 40691a49eea40d305405fe527e174e8067606dae Author: Romain Dolbeau Date: Sun Apr 12 13:38:29 2015 +0200 reinstate --enable-fma ; not enabled by default for AVX2 & AVX-512 (will ad a warning later) commit 7960d08a3fe74b38d8dfdd20917efb52d141d53a Author: Erik Lindahl Date: Wed Apr 8 22:55:28 2015 +0200 Improved compiler flags for OS X Separate detection for AVX/AVX2 on gcc and clang. Clang works for AVX, but AVX2 leads to a compiler crash. Issue 20471870 has been filed with Apple. When using gcc, we now request to use the external system assembler, or the AVX/AVX2 instructions will cause errors. commit 91928338b767b84742e8ec86da6b4864381ed889 Author: Erik Lindahl Date: Wed Apr 8 22:54:41 2015 +0200 Fix alignments for generic simd. commit eaaec9b6ea9dc0f0656d953639c325855cb3bbee Author: Erik Lindahl Date: Wed Apr 8 21:16:13 2015 +0200 Made api versions more verbose for 128-bit AVX. commit 4b3dbf7009b020bffe7c9c96a5b24c87496fd058 Author: Erik Lindahl Date: Wed Apr 8 21:09:50 2015 +0200 Make 128/256 bit generic simd separate options These will only be used on esoteric and/or new architectures, which likely also miss cycle counters. In this case the widest simd would be picked automatically based on flops estimates, so to give the user more control it is better to provide separate options to enable/disable these two choices. commit cbe2a4a64064d12b9b817235906d61a996c00be1 Author: Romain Dolbeau Date: Mon Mar 30 13:35:47 2015 +0200 AVX-512: minor fix(sp)&improvement(dp) to VDUPL/VDUPH commit 5379243044ea4113b9cbde25fd097195817b3653 Author: Romain Dolbeau Date: Sun Mar 29 14:17:13 2015 +0200 AVX-512: fix typo; fix shuffle parameter in SP; _mm512_set1 exists now. commit 90f9610ee6708efc11c848b5e078dd92997ffa25 Author: Romain Dolbeau Date: Sun Mar 29 14:14:02 2015 +0200 Fix typo in KCvi commit 2b44c9213a11816506b1bd3d6b7316ed1ed65a15 Merge: 5c5bed23 1f28d2d3 Author: Romain Dolbeau Date: Sun Mar 29 10:49:42 2015 +0200 Merge branch 'experimental-simd' of github.com:FFTW/fftw3 into experimental-simd commit 5c5bed2365693b5f57503f6aad35264a3b3d86b9 Author: Romain Dolbeau Date: Sun Mar 29 10:48:13 2015 +0200 typo for AVX-512 commit 1f28d2d3693bd919c674e08dc76726cf56d3648f Author: Romain Dolbeau Date: Sun Mar 29 10:48:13 2015 +0200 typo commit a8845007ecb07fd0cc91994c574b1008c64708e0 Author: Romain Dolbeau Date: Thu Mar 19 19:22:44 2015 +0100 Generic SIMD support for gcc While not as optimized as the specific SIMD ports, this enables the usage of gcc's generic vector representation, which usually gets implemented with SIMD instructions on most hardware. Double precision implementations for 256 and 128 bits by Romain Dolbeau, merged into a single generic SIMD implementation and single precision added by Erik Lindahl. The option --enable-generic-simd will turn on both 128 and 256 bit versions, and the timers will choose the fastest codelets. commit 56bbdbab2f03ebae92fd2c52b9509fb3b8ffe226 Author: Erik Lindahl Date: Tue Mar 24 19:35:31 2015 +0100 Added Power8 VSX SIMD support Power8 is a descendent of Power7, but the switch to little endian means the old altivec SIMD will not work due to shifts on load and store, and the new VSX instructions are much improved. This adds support for both single and double precision VSX SIMD, using either gcc (tested with version 4.9) or IBM xlC (tested with version 13.1.2, slower than gcc). Clang from llvm-3.7 is still too buggy to compile VSX code correctly, but flags and detection has been added so it will work with a correct clang. commit 8aa91763af07767f3ebb71a9836a69e3b3385cab Author: Romain Dolbeau Date: Tue Feb 24 09:27:07 2015 +0100 Double precision Neon SIMD for aarch64 --enable-neon now works in double precision for 64-bit Arm. Support added for the generic timer virtual counter in armv7a (optional, available in A15 & A7) & armv8. They are privileged, but should be made user-readable in recent linux (> 3.19.1 for v7a, most for v8). Architecture Reference Manual ARMv7-A and ARMv7-R edition: E.7.16 CNTVCT, Virtual Count register, system level Architecture Reference Manual ARMv8, for ARMv8-A architecture profile Beta: D7.5.17 CNTVCT_EL0, Counter-timer Virtual Count register commit aa26395250c9c4d6831e8e5017650ea70af56a28 Author: Romain Dolbeau Date: Thu Sep 5 10:53:42 2013 +0200 AVX-512 SIMD support New configure flag --enable-avx512 commit de81bfdb66b9bc867e389bbaf67b56490ca2e2cd Author: Erik Lindahl Date: Wed Mar 25 15:49:33 2015 +0100 128-bit AVX2 SIMD support Add 128 bit support for AVX2. Similar to AVX-128, this improves slightly on SSE2 due to more efficient instructions, and the shorter SIMD width is beneficial in some cases. Both 128- and 256-bit flavors will be built automatically with --enable-avx2, and the timing routines will chose the best one automatically. commit da988fa4c53fb63fafe2eeff3da4abad93e7d014 Author: Erik Lindahl Date: Sat Mar 28 12:52:52 2015 +0100 AVX2 kernels and CPUID support Initial AVX2 code from Romain Dolbeau. Modifications, cpuid and more compiler flags from Erik Lindahl. New --enable-avx2 configure flag supported. commit d7d9b9d2b71bd93bc4d4fa82d46a9c013291b7fe Author: Romain Dolbeau Date: Tue Sep 3 10:02:53 2013 +0200 KCvi [Knight Corner Vector Instructions] SIMD support This adds SIMD support for the first generation of Xeon Phi. commit b606e3191e5b65e2e13f67ef7dad5b1e7c40206c Author: Erik Lindahl Date: Wed Mar 25 01:44:17 2015 +0100 Improved AVX SIMD Previously, some kernels were actually faster with the old SSE2 SIMD, which made it necessary to compile with both sse2 and avx for good performance. This adds 128-bit AVX kernels which are enabled together with the standard AVX kernels. Apart from being encoded with AVX rather than SSE instructions (depending on compiler flags), it also uses a couple of new instructions only available with AVX that use fewer micro-ops. These instructions have also been added to the 256-bit AVX SIMD implementation. No new configure flags needed, it is just faster. commit 131027afcd3ed5d7c0185611036431c1035a734a Merge: 0ea3051f 56af330f Author: Matteo Frigo Date: Sun Mar 22 16:24:29 2015 -0400 Merge pull request #37 from maxlevesque/patch-1 add indent to requirements commit 56af330fc1600a856241968482ecd443bc2c26aa Author: Maximilien Levesque Date: Sat Mar 21 22:41:26 2015 +0100 add indent to requirements Without indent, `make` reports errors in somewhere in a directory called codelets. It also reports "/bin/bash: indent: command not found" not far away. For my Ubuntu 14.04 flavor, a simple `sudo apt-get install indent` made `make` work as expected. commit 0ea3051f99f2931a46a66aef8862517cd9c5f3c7 Merge: 506c1634 69a82a6c Author: Matteo Frigo Date: Mon Feb 16 06:36:46 2015 -0500 Merge pull request #32 from psteinb/2d_mem_layout_complying_to_text changed ny to n1 and nx to n0 so that the labels match the text commit 69a82a6c5ff4d2169a7f8a0afda9f3c68f24eb2a Author: Peter Steinbach Date: Mon Feb 16 09:10:23 2015 +0100 changed ny to n1 and nx to n0 so that the labels match the text, it's quite confusing otherwise commit 506c16346f9fc57444b179e542e88225e3c3e923 Author: Steven G. Johnson Date: Fri Jan 30 15:02:17 2015 -0500 fix #29 commit d94666815b9a0073e4ac8cc48f88e18ac931bd45 Merge: ded00512 9831bbd1 Author: Steven G. Johnson Date: Sun Dec 7 16:39:15 2014 -0500 Merge pull request #27 from mpip/master avoid segfaults due to double free commit 9831bbd14ca5b963ad1dba260c86151c94e000ee Author: Michael Pippig Date: Sat Dec 6 15:03:33 2014 +0100 avoid segfaults due to double free If fftw_mpi_mkplans_posttranspose() fails, the plans cld3, cld2rest, and cld2 are destroyed at nada and must be set to NULL. Otherwise, a second destroy at nada in mkplan() will cause a segfault. commit ded0051238f129fb65846e822191706c9b1f5221 Author: Matteo Frigo Date: Sun Nov 16 09:45:16 2014 -0500 Conciseness Police commit 113e1086966fdff4c172672753cc880e6bc74d3d Author: Matteo Frigo Date: Sun Nov 16 09:41:05 2014 -0500 add {before,after}_planner_hooks FFTW now calls fftw_before_planner_hook() before creating a plan, and fftw_after_planner_hook() afterwards. This allows users, e.g., to grab a lock. TBD: add arguments. commit 28635e1d5f0a0079af3e7d00cd0678c4745e2c2b Author: Matteo Frigo Date: Sun Nov 16 09:22:47 2014 -0500 avoid multiple declarations of fftw_alignment_of() fftw_alignment_of() was declared both in the API header file fftw3.h and in the internal header file ifftw.h. While there is nothing wrong with this, it breaks the property that all exported symbols are defined in the API directory. E.g., I am not sure what happens on windows without the proper DLLEXPORT nonsense. To avoid any issues, rename the internal routine to fftw_ialignment_of(), and define an API wrapper. commit 36597576e4c3c5dc3efd7d8b57a1bbad505715aa Author: Steven G. Johnson Date: Tue Aug 12 12:29:50 2014 -0400 fix #21 (don't use float128 on Portland compilers, which pretend to be gcc) commit cde4559ba9b822166cb88a84a0994fdb83a2061c Author: Matteo Frigo Date: Sat Jul 26 20:09:38 2014 -0400 Avoid transforming uninitalized data. In r2c/c2r transforms when using 4-way SIMD, sometimes FFTW uses the following hack: to transform an odd number of inputs, it copies the input into a buffer that holds space for one extra input; it transforms the buffer (now comprising an even number of inputs, as required by SIMD); it copies back the odd number of transformed inputs, ignoring the padding element. The extra input was uninitialized until now. This is ok because we ignore the transform of the uninitialized input. Transforming uninitialized data may cause floating-point exceptions, an effect that is observable. This patch initializes the additional elements to zero, thus avoiding the problem. This patch also includes a test, but the test is disabled by default because it is nonportable. To observe the FP exception, one must use feenableexcept(), which appears to be a GNU-ism. commit 2493129c332197c5195ecb6796cfeb5e8d92e09a Author: Steven G. Johnson Date: Thu Jul 10 10:41:38 2014 -0400 fix #19: missing Fortran interface for fftwq_alloc_real commit 07ef78dc1b273a40fb4f7db1797d12d3423b1f40 Author: Steven G. Johnson Date: Tue Jul 8 11:14:15 2014 -0400 fix #18 (disable float128 for CUDACC) commit 2fd372f31ab7c6417de0634199bcd5b7765df926 Author: Matteo Frigo Date: Sat Jun 28 17:17:19 2014 -0400 git rm *~ commit 203e0d610ec1e413bb426a7d60fd5e2a206a2830 Author: Matteo Frigo Date: Thu Apr 3 15:46:19 2014 -0400 Fix wrong boolean precedence in hppa cycle counter. Thanks Jens Keiner for the bug report. For some reason nobody noticed this in years. commit f8048af3e30cb3f65befd0aa2f3d16de3eeb5583 Author: Steven G. Johnson Date: Tue Mar 4 15:23:11 2014 -0500 more .gitignore additions commit 5a51b3fe98509cc7e7ba5d3e17a3381777ad4731 Author: Steven G. Johnson Date: Tue Mar 4 15:21:31 2014 -0500 some fixes for make distcheck commit 836af27f5d780970c87e436da882c9928e09c0f0 Author: Steven G. Johnson Date: Tue Mar 4 13:42:02 2014 -0500 copyright year update commit 853f9f7cad1a8d3e92e6767562e4cd2d336164d2 Author: Steven G. Johnson Date: Tue Mar 4 13:39:18 2014 -0500 updates for 3.3.4 commit bf30f5aeea1c2927b302b13dc7579acf9f2adc12 Author: Steven G. Johnson Date: Tue Mar 4 13:30:00 2014 -0500 another file in .gitignore commit c82b4fd61796715b1043982b1d4af49047f90238 Author: Steven G. Johnson Date: Tue Mar 4 10:39:09 2014 -0500 add .gitignore commit 146fa8d61fca4a06a85c70d7167ac925575df02b Author: Steven G. Johnson Date: Thu Jan 16 10:47:40 2014 -0500 added fftw_sprint_plan to output plan info to a string (so that the caller can be more flexible about how it is displayed) commit 53e1fdbc07133b53ffbbd51c56b57a89880c0b21 Author: Steven G. Johnson Date: Thu Jan 16 10:26:48 2014 -0500 document fftw_alignment_of (since I found it useful in Julia, other people may too) commit 7dbc7067e99477312acae30a9001c0dffa9bb428 Author: Matteo Frigo Date: Tue Nov 19 19:08:44 2013 -0500 group together AC_CHECK_DECLS for functions in stdlib.h commit fb70e413bddca578b2b72e0cac281d5c9a3c4101 Author: Matteo Frigo Date: Tue Nov 19 07:33:59 2013 -0500 Be more careful in detecting sinl(), cos(), memalign(), posix_memalign() commit 40f59a1d0f9bf384826595c499b0e7fe99aa1df5 Author: Matteo Frigo Date: Tue Nov 19 06:20:43 2013 -0500 Fix autodetection of cosl(), sinl() Autoconf must have changed since we last looked. Thanks Ã…ke Sandgren for the fix. commit 7e66dc5a495edc855dc9e156767172eaeabee335 Author: Matteo Frigo Date: Sat Oct 26 17:31:00 2013 -0400 Fix wrong example in fftw-wisdom-to-conf.1 Thanks Julian Taylor for the bug report. commit dd3283ac7d2e916bdeccb7229a669fcc2ef7ff83 Author: Matteo Frigo Date: Tue Oct 1 07:03:51 2013 -0400 Use "bench$(EXEEXT)" instead of "bench" Seems to be necessary on Windows. commit c6acf03f53d217c9041eae3d381ad41b942dc9d9 Author: Steven G. Johnson Date: Fri Sep 20 09:26:08 2013 -0400 fix typo commit f230f8cf903f1e2bb1261ed2f8657a99ac12a9ca Author: Matteo Frigo Date: Thu Jul 11 19:28:50 2013 -0400 Fix fftw-wisdom-to-conf Apparently we broke fftw-wisdom-to-conf many years ago and nobody noticed. Thanks Florian Oppermann for the bug report. commit c74775bff0c164611377b29d95b3f6a6e8192005 Author: Matteo Frigo Date: Tue Jun 4 10:31:33 2013 -0400 Somehow the NEWS entries for fftw-3.1.[23] were missing from the trunk. commit c87bdc8bfd7cbf753bbe0635ea82613bc271220d Author: Matteo Frigo Date: Mon Jun 3 06:59:35 2013 -0400 note fixes for texinfo-5 commit ed390e3a385832e1faa452032f170510be6ed280 Author: Matteo Frigo Date: Sun Jun 2 09:10:01 2013 -0400 version.texi should not be in git commit aff23d05642705f738f788648c060085bdc476d6 Author: Matteo Frigo Date: Sun Jun 2 09:05:50 2013 -0400 Fix the manual to work with both texinfo-4 and texinfo-5. Texinfo has been stable for the first 15 years of FFTW's history. Then some genius, with too much time in his hands and on a mission to deliver the world from the evil of the C language, decided to rewrite makeinfo in Perl, the old C version of makeinfo being, as I said, evil. The official excuse for the rewrite was that now I can have my manual in XML format, as if XML were a feature. The result of this stroke of genius is that texinfo-5 has different rules for macro expansion than texinfo-4 does, specifically regarding whether or not spaces after a macro are ignored. Texinfo-4 had weird rules, but at least they were constant and internally more or less consistent. Texinfo-5 has different rules, and even worse the rules in texinfo-5 are inconsistent between the TeX and HTML output processors. This situation makes it almost impossible for us to produce a manual that works with both texinfo 4 and 5 in all modes (TeX, info, and html). The @noindent/@refill hack is my best shot at patching this situation. commit b0308275bb63a9cb3edb5847fa130f901deaf47e Author: Matteo Frigo Date: Fri May 17 11:39:05 2013 -0400 fftw_wisdom.1.in: document the --threads option. commit 7eb9af0354f7663fa89daa56163d5bc5865bcec1 Author: Matteo Frigo Date: Wed Mar 27 13:12:15 2013 -0400 Define the version number as M4 macros, so that it is defined only once. We used to have two version strings: the package number FFTW-X.Y.Z and the libtool number CURRENT:REVISION:AGE with the invariant that REVISION==Z. Unfortunately in the fftw-3.3.3 release we forgot to change REVISION, with the result that fftw-3.3.3 and fftw-3.3.2 have the same REVISION number. Hopefully this patch will prevent similar screwups in the future. commit e67d16ed0b81b0e01124c7cdee2320bfea2fd6e4 Author: Matteo Frigo Date: Sun Mar 17 19:47:57 2013 -0400 note that these scripts are not meant for normal users commit b892c705c7051bcd27c0939070e515fe85f68bb2 Author: Matteo Frigo Date: Sun Mar 17 19:45:52 2013 -0400 add README.md for github's convenience commit 029db460f692ea9fefc7d0efdf8e11b5d51215b0 Author: Matteo Frigo Date: Sun Mar 17 19:44:00 2013 -0400 Update README for people who download the git repository. commit 128e9ddbde76a63c7f255b258ff02bd6766cbaa4 Author: Matteo Frigo Date: Sun Mar 17 19:37:40 2013 -0400 Remove reference to obsolete mailing list. commit 4b1d3b63d64a01216c023389565e40ca03d6be2f Author: Matteo Frigo Date: Sat Mar 16 09:47:59 2013 -0400 mkdist.sh: use git instead of darcs Use git instead of darcs to generate the ChangeLog. Also, refuse to create a distribution if git HEAD does not have a tag, to prevent a common mistake. commit fe84f5d9eeef9f773b0785ba91032ab5b7677461 Author: Matteo Frigo Date: Sat Mar 16 09:26:03 2013 -0400 remove some junk '*~' files created by the darcs->git conversion commit 2f9d0a41eec86def6fe9160dac1be172bb241eba Author: stevenj Date: Thu Feb 7 14:22:12 2013 -0500 use Win32 threads, not pthreads, if both are present (it's not clear why Windows users would ever want the latter); see also https://github.com/JuliaLang/julia/issues/2015 commit b8623189967ed7eb1ca50e80f2b5ee2d6f3ca0ad Author: stevenj Date: Thu Feb 7 14:13:40 2013 -0500 I found it useful in the Julia interface to call fftw_alignment_of (in order to check plan applicability), in which case we need to IFFTW_EXTERN it for Windows; might be worth considering documenting this function commit 23b1bf3e19198d2c4575bf6f305cd41ebc17124c Author: athena Date: Sat Jan 12 15:35:46 2013 -0500 Increase timing interval to 5000 cycles on x86_64 commit 6e615417da7e1c7cba49b1a73c9edcc15d938cf9 Author: athena Date: Tue Dec 4 15:58:22 2012 -0500 make -lm a private library in fftw.pc.in Julian Taylor says: Make -lm a private library, libfftw is linked against it so clients don't need it. You can use pkg-configs --static flag for static linking. this works on all systems where indirect linking works, probably on all others pkg-config is not supported anyway (wild guess). commit 553849f32bcc82a17de11c76cfa9b2f672bfb89e Author: athena Date: Tue Dec 4 15:54:58 2012 -0500 Escape minus signs in man pages http://lintian.debian.org/tags/hyphen-used-as-minus-sign.html says: By default, "-" chars are interpreted as hyphens (U+2010) by groff, not as minus signs (U+002D). Since options to programs use minus signs (U+002D), this means for example in UTF-8 locales that you cannot cut and paste options, nor search for them easily. Thanks Julian Taylor for the patch. commit 715c7ea8347a5dad7d97a0c5d81a87801e826ada Author: athena Date: Tue Dec 4 15:53:28 2012 -0500 Change texinfo category to Development commit 01810ba2a427ee086a4a5323e991dd19e2d715be Author: stevenj Date: Sat Nov 24 22:37:54 2012 -0500 fixed deadlock bug caused by bogosity flag getting out of synch between processes; thanks to Michael Pippig for the bug report commit 69aa82642e26a8eb5292a8a7b83250e8df619065 Author: athena Date: Wed Nov 21 18:34:29 2012 -0500 Updated NEWS commit e98f888b9457ce5855491279c6c0ef72e23a374c Author: athena Date: Wed Nov 21 18:33:15 2012 -0500 use 2x2 AVX transposition instead of individual stores. This seems to improve single-precision AVX on Sandy Bridge machines. commit 466f579cb8856a0709da1e6c6b5ca03360bc61a0 Author: stevenj Date: Tue Nov 20 12:18:00 2012 -0500 revert part of Taylor patch to acx_mpi.m4: do not link -lmpi if mpicc works without libraries, as -lmpi may be some completely different MPI implementation commit 610460226f6d5d2d7c4c53896b5aff9b1f108e4b Author: stevenj Date: Tue Nov 20 11:44:57 2012 -0500 fix deadlock bug (thanks to Michael Pippig for the bug report and patch, and to Graham Dennis for the bug report) in which some processes called MPI_Alltoall and some called MPI_Alltoallv commit 512d8d783d6af373fca8376f79255b794df5bd31 Author: athena Date: Mon Oct 29 15:20:01 2012 -0400 fix texinfo quirk commit ff329890540002506c47717ebbc3959de30e5066 Author: athena Date: Mon Oct 29 09:16:43 2012 -0400 clarify that padding only applies to in-place transforms commit 905ded711f93fa3c94faa7623a5093525338fdeb Author: athena Date: Sun Oct 28 18:42:48 2012 -0400 make the index-computation logic less paranoid The problem is that for each K and for each expression of the form P[I + STRIDE * K] in a loop, most compilers will try to lift an induction variable PK := &P[I + STRIDE * K]. In large codelets we have many such values of K. For example, a codelet of size 32 with 4 input pointers will generate O(128) induction variables, which will likely overflow the register set, which is likely worse than doing the index computation in the first place. In the past we (wisely and correctly) assumed that compilers will do the wrong thing, and consequently we disabled the induction-variable "optimization" altogether by setting STRIDE ^= ZERO, where ZERO is a value guaranteed to be 0. Since the compiler does not know that ZERO=0, it cannot perform its "optimization" and it is forced to behave sensibly. With this patch, FFTW is a little bit less paranoid. FFTW now disables the induction-variable optimization" only when we estimate that the codelet uses more than ESTIMATED_AVAILABLE_INDEX_REGISTERS induction variables. Currently we set ESTIMATED_AVAILABLE_INDEX_REGISTERS=16. 16 registers ought to be enough for anybody (or so the amd64 and ARM ISA's seem to imply). commit 1dacef5bde5cb6599f9d98e42495f7897f109787 Author: athena Date: Sun Oct 28 18:33:24 2012 -0400 silence warnings commit fb08724b27a05ca890c1da062c8d0385c22c02eb Author: athena Date: Sat Oct 27 09:58:49 2012 -0400 bump version to 3.3.3 commit c4d6abbc1c80eb612b2abccce728a06189780a69 Author: athena Date: Sat Oct 27 09:55:15 2012 -0400 evaluate plans for >1ms when using gettimeofday() The previous limit 10ms was too paranoid, and it made life difficult on machines without an "official" cycle counter, such as ARM. commit 172dd3def821c0898822a5ca72c3f5391553536c Author: athena Date: Sat Oct 27 09:46:04 2012 -0400 use 4-way NEON SIMD instead of 2-way Kai-Uwe Bloem tried to warn me a year ago that 128-bit NEON was better than 64-bit NEON even on machines with a 64-bit pipe, but I foolishly did not listen. Now that 128-bit NEON pipes are starting to appear on the market it is definitely time to switch. commit 1c9c469f8727ab1780533226283746e7e9098694 Author: athena Date: Wed Sep 26 14:21:12 2012 -0400 Note that fftw-3.3 includes MPI support commit 2de12d67e5f4e34d39119f2e730e9d70e4df0c4e Author: athena Date: Wed Jul 18 11:25:40 2012 -0400 remove obsolete unused function commit 6bc94ae7db56490e35c256bd4840608eea6ec150 Author: stevenj Date: Fri Jun 29 15:57:14 2012 -0400 whoops, call omp_get_max_threads; thanks to Hanno Rein for the bug report commit 747ece1503281aad7beb32448af9a7cad05eba52 Author: athena Date: Sat Apr 28 10:55:09 2012 -0400 Fix libfftw3/libfftw3_threads chicken-egg problem On most systems we want to build libfftw3 first, so that libfftw3_threads can depend upon libfftw3. When producing a single combined-thread library (e.g. on Windows) we want the opposite, so that libfftw3 can include libfftw3_threads. commit 4bcfb67da7211171d5f4b80a90845770bbd2e147 Author: athena Date: Sat Apr 28 10:11:28 2012 -0400 updated NEWS for 3.3.2 commit cb553a8315ae9a700558956a190aac4658064b83 Author: athena Date: Thu Apr 26 19:36:11 2012 -0400 change revision to 3.3.2 commit 98229b0d7673cfa15a8c339d305b09367b97d670 Author: athena Date: Thu Apr 26 19:31:02 2012 -0400 Remove old aligned_main() hack. On i386, in our benchmark program we used to manually aligned the stack to 16-byte boundary via asm trickery. This was a good idea in 1999 (and it was actually necessary to make things work) but the hack is now obsolete and it seems to break gcc-4.7. So the hack is now gone. commit 4e4c680e7497ee8bb87bb31451d10d71b8c205e2 Author: athena Date: Thu Mar 29 16:26:16 2012 -0400 Bugfix: a couple of uninitialized values in the benchmark program commit 229d864bde7f95f45ee23608b756926a3a20ddd0 Author: athena Date: Tue Mar 20 19:03:47 2012 -0400 make libfftw{threads,mpi} depend upon libfftw for libtool purposes Thanks Julian Taylor for the patch commit f9a05701f2027906b68ff913713166310e18c8cc Author: stevenj Date: Tue Mar 6 04:44:00 2012 -0500 formatting tweak commit cec6c01b2647796f5909cfe2d90ce040380da5c5 Author: athena Date: Mon Mar 5 21:05:27 2012 -0500 destroying => overwriting commit ad79a0ae3baf83548bc5c9597b0aae94e5226073 Author: stevenj Date: Fri Mar 2 10:31:20 2012 -0500 note that WISDOM_ONLY is a documented flag commit adf4cdab68e50778689170eb91270bb189aea1ac Author: stevenj Date: Fri Mar 2 10:27:08 2012 -0500 check for icc pretending to be gcc before including quad-precision decls; thanks to Michael Anselmi for the bug report commit 99aeb386978a56c1a33f6fe7c9b7942421cf550e Author: stevenj Date: Fri Mar 2 10:23:19 2012 -0500 foo_CFLAGS needs to manually include AM_CFLAGS; thanks to Henry Gomersall for the Windows bug report commit 6060dbccef23e01e603f44d42ab602ab89a9442e Author: athena Date: Sat Feb 25 15:21:39 2012 -0500 update for latest mingw commit 06fff6523418bd7ee2478c081cec418eb73adee5 Author: stevenj Date: Mon Feb 20 23:06:13 2012 -0500 added Fortran NEWS commit 51e33866a2c0cc189954b8197e5053b3275fc564 Author: stevenj Date: Mon Feb 20 23:00:13 2012 -0500 move non-portable extended/quad precision F03 interfaces into separate .f03 files (while keeping double/single in fftw3.f03 for minimal ABI breakage) commit 545c90a1db20c5cd50f30d0f31d2334ec10cf8ac Author: athena Date: Mon Feb 20 11:21:57 2012 -0500 rm mpi/fftw3-mpi.f03 at make clean time; thanks Tyler Luchko for the bug report. commit b7c0fcdee76b9f2efe194ec13d3b1ca97fadf376 Author: athena Date: Mon Feb 20 11:18:24 2012 -0500 Disable a Visual Studion warning that was obnoxious enough for Sebastian Schuberth to send us a patch. commit 4a0de08f4d1f026454fba2e053bd0573afb984d2 Author: athena Date: Mon Feb 20 11:18:06 2012 -0500 Change version to 3.3.1 commit 49783f83e58d9bc7dc3ea7f1822fefe961361935 Author: athena Date: Mon Feb 20 11:03:15 2012 -0500 Integrated Visual Studio AVX patches by Carsten Steger commit bc9dc18402445ce9b357dea5ff2b20720773ddc5 Author: stevenj Date: Wed Nov 9 10:13:32 2011 -0500 typo commit 659e85e6065429fc6a6e4a005bc5f5068f707fb3 Author: stevenj Date: Tue Nov 8 22:45:09 2011 -0500 add missing F77 set_timelimit function; thanks to Martin Diehl for the bug repory commit cf1a5563a691fd0c25c67910926adb2ef936cbb7 Author: athena Date: Sun Sep 25 10:54:56 2011 -0400 note requirement of /machine:x64 in windows x64 README commit cb216e1fd71ab751f2de5e083bc0237cc98535c9 Author: athena Date: Sun Sep 18 09:28:20 2011 -0400 AVX detection for MSVC commit 8acf60e9e0c6417a91d9a21dddb1467feb4fd23e Author: athena Date: Tue Sep 13 14:58:29 2011 -0400 compile with C89 commit f3edf46ebdda4a632ccb0ece6c5fa0559014d24e Author: athena Date: Sat Sep 3 16:25:50 2011 -0400 use the same search pruning heuristics for threaded plans as for nonthreaded plans commit f004d764307d0e1815c2f936a9a398825d367f2c Author: athena Date: Sat Sep 3 16:12:11 2011 -0400 shorten ESTIMATE planning time for certain weird sizes FFTW includes a collection of "solvers" that apply to a subset of "problems". Assume for simplicity that a "problem" is a single 1D complex transform of size N, even though real "problems" are much more general than that. FFTW includes three "prime" solvers called "generic", "bluestein", and "rader", which implement different algorithms for prime sizes. Now, for a "problem" of size 13 (say) FFTW also includes special code that handles that size at high speed. It would be a waste of time to measure the execution time of the prime solvers, since we know that the special code is way faster. However, FFTW is modular and one may or may not include the special code for size 13, in which case we must resort to one of the "prime" solvers. To address this issue, the "prime" solvers (and others) are proclaimed to be SLOW". When planning, FFTW first tries to produce a plan ignoring all the SLOW solvers, and if this fails FFTW tries again allowing SLOW solvers. This heuristic works ok unless the sizes are too large. For example for 1044000=2*2*2*2*2*3*3*5*5*5*29 FFTW explores a huge search tree of all zillion factorizations of 1044000/29, failing every time because 29 is SLOW; then it finally allows SLOW solvers and finds a solution immediately. This patch proclaims solvers to be SLOW only for small values of N. For example, the "generic" solver implements an O(n^2) DFT algorithm; we say that it is SLOW only for N<=16. The side effects of this choice are as follows. If one modifies FFTW to include a fast solver of size 17, then planning for N=17*K will be slower than today, because FFTW till try both the fast solver and the generic solver (which is SLOW today and therefore not tried, but is no longer SLOW after the patch). If one removes a fast solver, of size say 13, then he may still fall into the current exponential-search behavior for "problems" of size 13*HIGHLY_FACTORIZABLE_N. If somebody had compleined about transforms of size 1044000 ten years ago, "don't do that" would have been an acceptable answer. I guess the bar is higher today, so I am going to include this patch in our 3.3.1 release despite their side-effects for people who want to modify FFTW. commit 610f7976d8d31f385e2bce4fd8da0a5c770fb877 Author: athena Date: Sat Aug 27 13:55:24 2011 -0400 Fix typo fftw_execute_dft_r2r => fftw_execute_r2r Thanks KIU Shueng Chuan for the bug report. commit 76f7c5558bb5eedb80ff3e67db798b4e493a5872 Author: athena Date: Fri Aug 26 06:13:55 2011 -0400 In Rader's algorithm, compute the generator lazily. The planner was spending a lot of time computing generators for plans that were immediately discarded. Now we compute generators only when absolutely needed. commit e1b527d72aad02ddea04f266f6831fb13768fbc3 Author: athena Date: Sun Aug 21 16:16:38 2011 -0400 Release notes for 3.3.1-beta1 commit 7079b5216c27e2320215f1eb10f6c6554a6c1ac1 Author: stevenj Date: Fri Aug 19 19:59:17 2011 -0400 make fftw_mpi_block routine 10x faster, since it is being called zillions of times (thanks to Tom Vacek for the profiling) commit e5c7931a01f350aa1f756bfa76307b317e2208e1 Author: athena Date: Thu Aug 18 14:19:36 2011 -0400 Implement autodetection of NEON extensions commit 16600d97d52a81152e4ef9ac140c336a5a1ca126 Author: athena Date: Sun Aug 14 14:12:29 2011 -0400 Update the FSF address. The FSF moved downtown. commit 8609b388c7872e1b39baa6d72349dbbb476ade97 Author: stevenj Date: Thu Aug 11 14:54:38 2011 -0400 allow specifying TRANSPOSE_{IN/OUT} transpose plans, since libbench does not canonicalize rnk=1 n=1 plans as rnk=0 commit 341d3e142ea250096b5c76778f77fba4bf6de622 Author: stevenj Date: Thu Aug 11 14:17:24 2011 -0400 check.pl should occasionally check DESTROY_INPUT problems too (especially since those enable slightly different algorithms in MPI) commit 2845a3c0be7059c93b704b624cc482f9e4778188 Author: stevenj Date: Thu Aug 11 12:37:51 2011 -0400 unify post-MPI transpose handling in pairwise and alltoall solvers; should make the former faster in the destroy-input out-of-place case, and the latter more widely applicable commit f02c57b267809e16e0e29ae8f7c1301323eda1cb Author: athena Date: Mon Aug 8 10:06:14 2011 -0400 Add support for ARM NEON commit 8ec2b52144bcf72a028cb84c273719b0ecc7730e Author: stevenj Date: Fri Aug 5 17:25:32 2011 -0400 more C++ paranoia commit 6047a7079ad3a55d982e68e03cbe158c5e476ee0 Author: stevenj Date: Fri Aug 5 17:02:00 2011 -0400 tentative version bump for 3.3.1 commit 6fbb0639cf17563d4603c6d545e9335d19e3ac43 Author: stevenj Date: Fri Aug 5 16:52:28 2011 -0400 fixes so that MPI code compiles when MPICC is a C++ compiler, even if the serial code is compiled with a C compiler; thanks to Kyle Spyksma for the bug report commit d7feb2daba8f23e5bca6c4e4e3f4177ad9a49e87 Author: stevenj Date: Fri Aug 5 16:04:06 2011 -0400 use correct precision in f03-wrap.c, avoiding a (harmless) implicit pointer cast that prevented compilation under C++; thanks to Kyle Spyksma for the bug report commit 50d12441bd0b3410c799d11784717e76147b5474 Author: stevenj Date: Fri Aug 5 14:04:32 2011 -0400 manual typo commit 9e45ff08aca4e28ec61c947284188a01aed45fe6 Author: athena Date: Tue Jul 26 20:55:45 2011 -0400 Honor WITH_OUR_MALLOC in libbench2 commit 2cfcd40d46731a41a400ed4a4d2eeeb954422568 Author: athena Date: Tue Jul 26 20:27:28 2011 -0400 fixed typo: incorrect name of combined threads library on Windows commit a81ea0083c5cc32c9acecfd5f57f38d0e4f07bb5 Author: stevenj Date: Mon Jul 25 14:38:20 2011 -0400 3.3 version bump & NEWS commit df2116046636b6ed6b989fa8b706f3e9db53e17e Author: stevenj Date: Mon Jul 25 14:37:48 2011 -0400 use int(..., C_SIZE_T) rather than declaring another variable in the Fortran examples commit 19ebb38d4180b0a70f4579d37dedfd6e678edecd Author: stevenj Date: Wed Jul 13 05:02:32 2011 -0400 typo, thanks to Rhys Ulerich for the comment commit a221f0e99a9206e1edaa8016e04f891261cc5196 Author: athena Date: Mon Jul 11 14:39:52 2011 -0400 Fix bug in bubblesort Bubblesort was not sorting. This was a bug in the benchmark library (not in FFTW per se), and it impacted the benchmark program with --report-time and --report-mflops causing it to output an incorrect value for the median. (The minimum, maximum, and average value were correct.) Thanks Dima Baksheev of Intel for reporting this bug. commit d33f4f7b648b658d0d232f8561c85fd9b007c105 Author: stevenj Date: Fri Jul 8 13:35:59 2011 -0400 small manual typos commit 047c6636b6cbbdde2d8f4e5a62e26013336fd3e7 Author: athena Date: Wed Jul 6 10:49:40 2011 -0400 Detection of altivec.h requires $ALTIVEC_CFLAGS commit 8cb56c732d86e26edca3ea53e63440756a434031 Author: athena Date: Tue Jul 5 19:58:47 2011 -0400 Introduce fake dependency so that my-getopt.c is recompiled my-getopt.c does not depend on anything, and so it is not rebuilt when reconfiguring for a different ISA (e.g., CC="gcc -m32" vs CC="gcc -m64"). Add a fake dependency on so that the file is recompiled. commit e50fbe175fe6b482d4eabf554a9d923fe1cb727a Author: stevenj Date: Tue Jul 5 18:53:36 2011 -0400 support compiling/installing --enable-threads --enable-openmp at the same time, although in this case the test program only uses the threads variety. Update documentation accordingly, and in general expand the documentation of the OpenMP support commit 1b13a7673c31c9f98151186ab5ad96952f0c8cc2 Author: stevenj Date: Tue Jul 5 16:04:03 2011 -0400 call omp_set_num_threads in fftw-bench so that the number of OpenMP threads corresponds with the number of FFTW threads commit fcd3d63bce6f23ca8274e739ca83a0fcb8b63a99 Author: stevenj Date: Tue Jul 5 16:03:06 2011 -0400 when --enable-openmp, install as fftw3_omp rather than fftw3_threads, so that both the POSIX threads and OpenMP variants of FFTW can be installed at once commit 4c8bae967265bf7b4c9705d6efe87cf7e9151fce Author: stevenj Date: Sat Jul 2 02:21:22 2011 -0400 don't even declare an fftw_execute interface in Fortran, since it is unsafe and we recommend against it anyway; thanks to Arjen Markus for the suggestion commit b1741fcc12ccd46d1ce538398c78ca8da98b2448 Author: athena Date: Fri Jul 1 14:35:44 2011 -0400 consistently use the order single, double, long double commit 02d76b0f908814ec69eb9f4edf423e6794d63720 Author: athena Date: Wed Jun 29 17:27:06 2011 -0400 MSVC AVX 64-bit detection does not work, punt for now. commit 5a057b2b67c6eac3cb59c5dd555e1e4093d0ce8e Author: stevenj Date: Wed Jun 29 15:52:27 2011 -0400 fixed typo, added note on transposed flags for r2c/c2r; thanks to Rhys Ulerich for the suggestions [empty commit message] commit 21db43d01a6a55f3bce9bbb3bd01fc968a8fb4ac Author: athena Date: Wed Jun 29 09:41:39 2011 -0400 fixes for compiling with MSVC (untested) commit dcbc5ebfe7dd814f3ef8ee85fb5b2ccb4a3671f0 Author: athena Date: Tue Jun 28 16:48:36 2011 -0400 comment commit f71799bf38f03deaeea50a8b4178757e826854c0 Author: stevenj Date: Mon Jun 27 21:01:56 2011 -0400 rm extraneous line break in HTML output ... I hate texinfo [empty commit message] commit 9ae9c2b534eb9064d8153f235e6d013a4c8b50c1 Author: stevenj Date: Mon Jun 27 00:47:33 2011 -0400 maintainer-clean should delete html directory (otherwwise we keep obsolete HTML files in the dist tarball, sigh) [empty commit message] commit f66d29622c87134e4a790fdab1e25413fac8d33d Author: stevenj Date: Sun Jun 26 23:36:32 2011 -0400 update copyright year in manual [empty commit message] commit 3799446cb5d30354dc69a36f07e8bdf87ed5cb34 Author: stevenj Date: Sun Jun 26 22:52:54 2011 -0400 whoops, don't dist .f03 headers, since those are built by the user's Makefile [empty commit message] commit 8c336f8396e94752233e91433a0e64a72e137599 Author: stevenj Date: Sun Jun 26 22:43:49 2011 -0400 fix embarrassing deadlock/crashing bug in my previous nowisdom_hook fix -- I forgot to handle the case where one process has wisdom and another one doesn't, requiring a nowisdom_hook in the latter case; this should only affect MPI transforms since otherwise these hook functions are NULL [empty commit message] commit e32aa9704f9a6e0811638809bbf764dc748116fb Author: stevenj Date: Sun Jun 26 21:02:15 2011 -0400 subsubheadings, MPI transpose reference [empty commit message] commit e2759a2102797af24072573371a9d94d4943f1ff Author: stevenj Date: Sun Jun 26 20:48:53 2011 -0400 add MPI plan reference [empty commit message] commit 5fd0d86ab1801a09997624a79a56029f76e4c718 Author: stevenj Date: Sun Jun 26 17:07:21 2011 -0400 portions of MPI reference docs; tweaks to NEWS [empty commit message] commit b280b47c049bc941297a69b5d668a7fdf4a81977 Author: stevenj Date: Sun Jun 26 12:40:43 2011 -0400 use $(CHECK_PL_OPTS) more consistently [empty commit message] commit f78b49c77e0442702bb0bb3b1e52b82795c36358 Author: athena Date: Sun Jun 26 10:04:54 2011 -0400 accept \r\n as well as \n. Grrr... commit 4449361639ee599d5221557c1b7021c85954c2d9 Author: athena Date: Sun Jun 26 09:52:11 2011 -0400 new configure option --with-incoming-stack-boundary=N This option selects CFLAGS to align the stack at all externally-callable functions. This currently comprises api/* and threads/* commit 44191f4b3b5109c9e1befb9a3eefb1f34a1fd63e Author: athena Date: Sun Jun 26 09:51:37 2011 -0400 add -fomit-frame-pointer back Somehow -O3 does not imply -fomit-frame-pointer on ia32 commit 94f1e0517794a91b91b81bc46695d0bcf5d23ca9 Author: athena Date: Sun Jun 26 07:20:27 2011 -0400 Note that removal of mips-ps is temporary. commit 6ec5e833bf16b843f2893e894f786a67721cf647 Author: stevenj Date: Sat Jun 25 23:15:03 2011 -0400 update copyright year [empty commit message] commit 27117ddc70e191d20cc88be0a2285f454a1409cd Author: stevenj Date: Sat Jun 25 21:33:13 2011 -0400 updated NEWS [empty commit message] commit 2e1f81718cf9d9073a65e907c6aecebc1333a4a1 Author: stevenj Date: Sat Jun 25 20:29:55 2011 -0400 fixes to Fortran interface and docs [empty commit message] commit 32e0027e573cbfcae6c39e535a1a3549f602b97a Author: stevenj Date: Sat Jun 25 17:43:31 2011 -0400 initial stab at MPI Fortran docs [empty commit message] commit f1b33feb4669f8b92467a448172c0c0734c5ac48 Author: stevenj Date: Sat Jun 25 16:43:31 2011 -0400 correct description of what MPI standard says about I/O (I can't believe this crap) [empty commit message] commit 0329701daca6ace6a4167366fda97a86d7d3b6f4 Author: stevenj Date: Sat Jun 25 15:14:07 2011 -0400 more MPI documentation; mention `fftw_alloc' functions earlier in the manual [empty commit message] commit c4a68ffe9d9332bc0fc9e9db4f41a7c0728ec663 Author: stevenj Date: Sat Jun 25 13:40:19 2011 -0400 clarification about --enable-sse2 [empty commit message] commit cbf6b823ec85dfecab28d071db39d5f92cdcb561 Author: athena Date: Sat Jun 25 13:31:25 2011 -0400 Update mingw build scripts for fftw-3.3 commit 1c97317e9689ac1376ba51c408adde1514475140 Author: athena Date: Sat Jun 25 08:52:13 2011 -0400 Fix typo: EXTRADIST => EXTRA_DIST commit 0ab873d4daf2a047ec04e273f0a8046f8919961c Author: stevenj Date: Fri Jun 24 23:52:19 2011 -0400 finished draft "modern fortran" chapter [empty commit message] commit 35f278113d2e2b4532514f40b44fe468b5c7d729 Author: stevenj Date: Fri Jun 24 20:47:49 2011 -0400 include FFTW_EXTERN prototypes for wrappers, so that they are properly exported to DLLs on Windows (sigh) [empty commit message] commit d2a1f24513b42464d64fa4fea5b97326f4251646 Author: athena Date: Fri Jun 24 16:52:30 2011 -0400 use malloc() instead of alloca() for large buffers The proximate cause for this patch is that OpenBSD/i386 reserves 256KB stack size per thread. We were allocating a buffer of size 128*130*sizeof(fftw_complex) that exceeds the stack. While 128*130*sizeof(fftw_complex) = 260KiB is the worst case for normal configurations, it is a good idea to limit stack allocation just in case. Also, the generic solver might in principle generate unbounded buffers, even though it is normally disabled for n > 137. So, as an added precaution, we now never stack-allocate buffers larger than 64KiB, which ought to be enough for anybody. commit 3b1c71b8e61a7fbfa88589ddf418d494a672ed78 Author: stevenj Date: Fri Jun 24 16:32:30 2011 -0400 don't imply that AVX is available on Pentium III; note that MIPS Paired Single is currently only in FFTW 3.2.x [empty commit message] commit 02153f462b97b2733b47d298a3fc5cc57b45ba86 Author: stevenj Date: Fri Jun 24 16:05:27 2011 -0400 silence annoying gfortran warnings [empty commit message] commit dff007f6cc14bdd1ea710466aa3f6fb3a5408c0a Author: stevenj Date: Fri Jun 24 14:59:30 2011 -0400 a couple MPI Fortran 2003 fixes; changed MPI flags to not use 1<<31 since Fortran (not having unsigned integers) does not allow us to declare that constant in a portable way [empty commit message] commit ff330ebfa25ed56b29ea61ea99bf293cec079dde Author: athena Date: Fri Jun 24 15:05:05 2011 -0400 Fix libtool shared version info. FFTW-3.3.x should be a direct drop-in replacement for all FFTW-3.x.y versions. commit 6c3c5cd3040d318a184fc0e6ee6ee4e3429ef8ce Author: stevenj Date: Fri Jun 24 14:38:47 2011 -0400 add MPI Fortran API and wrappers [empty commit message] commit 02d3e72585a1254f2685014f5f8de5c7730b8ec5 Author: athena Date: Fri Jun 24 14:51:12 2011 -0400 Do not require fig2dev on the user's machine Distribute the manual's figures in PDF/PS/PNG form instead. commit 5169fc22863b9b6ea7bfbaafc0ca523e82114ee1 Author: athena Date: Fri Jun 24 11:52:44 2011 -0400 Remove --enable-portable-binary, --with-gcc-arch from documentation. commit f6d1274e5c9cc173d07c58df0a3535c9f4767e48 Author: athena Date: Fri Jun 24 11:48:48 2011 -0400 Forget about specifying nonportable CFLAGS. Let the user do it if he wants. commit 74872e79034a2379c537c23a7c29d0b6f43d2437 Author: athena Date: Fri Jun 24 11:48:25 2011 -0400 Add "-avx" to version string when appropriate. commit 2d6800ac3b8070da86d6d825d89fea05fbd44b78 Author: athena Date: Fri Jun 24 10:26:38 2011 -0400 change 3.3-alpha => 3.3-beta1 commit 97a4d17f30831d71b4075eec8b7f4b7c12deedb7 Author: athena Date: Fri Jun 24 09:25:49 2011 -0400 Extend OUR_MALLOC16 to larger alignments Make it work for 32-byte alignment and beyond, as needed by AVX. Rename --with-our-malloc16 to --with-our-malloc. Keep old --with-our-malloc16 flag for compatibility. commit fd31e415cd0731c428daafe791386d79ff34b8ca Author: athena Date: Fri Jun 24 09:19:38 2011 -0400 Fix typo commit 4f8a370b687860b92a93c49fed128218e6fb9f9b Author: athena Date: Fri Jun 24 09:10:26 2011 -0400 One pass over the manual. commit ba838fa07395a4f365eb16aa8ba1bb108f533dd5 Author: athena Date: Fri Jun 24 08:19:03 2011 -0400 eliminate the WITH_ALIGNED_STACK hack This is 2011 and I have no system with incorrect stack alignment. commit 7e32fb649dcd2a78a3b2d216140fc218cb69c334 Author: athena Date: Fri Jun 24 07:49:47 2011 -0400 enable both threaded and unthreaded wisdom in tools/fftw-wisdom commit 7543b3029bce4fc595c5efc7e0d31a71b4ec5cce Author: stevenj Date: Fri Jun 24 02:40:04 2011 -0400 clarification [empty commit message] commit 81589ce427090a8aea9f4362a9b7f9ba7e76e111 Author: stevenj Date: Fri Jun 24 02:24:01 2011 -0400 check for error code in example [empty commit message] commit 3c57716a6525c37f0f485e925c7df8f9819c66fd Author: stevenj Date: Fri Jun 24 02:22:18 2011 -0400 cleanup - since NATIVE_MALLOC is always malloc, delete this #define [empty commit message] commit 644b3ee0d54eb80e78a35710d2b8027f3104fbe6 Author: stevenj Date: Fri Jun 24 02:19:44 2011 -0400 document wisdom string import/export in Fortran [empty commit message] commit bee8d24fa16cd40bba5612938edc915399526c03 Author: stevenj Date: Fri Jun 24 02:11:40 2011 -0400 bug fix - NATIVE_MALLOC should always be plain malloc, even in debug_malloc mode, because it is used in the API to return things that should be deallocated with free(); correspondingly, be sure to use free() ansd not X(free) with this [empty commit message] commit 119eb3d276de6b3178c5436fd0cee98a35f0aabf Author: stevenj Date: Fri Jun 24 01:35:27 2011 -0400 declaration style [empty commit message] commit 8916c213d4b3121e65af9ee4989ed8ae0fc21db9 Author: stevenj Date: Fri Jun 24 01:25:36 2011 -0400 document wisdom file export/import from Fortran; add export/import_to/from_filename functions for convenience [empty commit message] commit 9fb007e826ee94927e9ff4a9de14c6b80ec06e69 Author: stevenj Date: Thu Jun 23 19:19:43 2011 -0400 more fortran docs [empty commit message] commit 3f0d26b4fd7e8e501fbd2f6ff24337ff0ad3c97c Author: stevenj Date: Thu Jun 23 17:50:30 2011 -0400 enforce 132-character line-length limit that is the default in Fortran [empty commit message] commit 6e69de25872aed3a4eb13523a43bcfdf9a4f731c Author: stevenj Date: Wed Jun 22 23:27:31 2011 -0400 the F03 standard is ambiguous about whether types can be assigned to wider types as formal parameters with VALUE attributes, and e.g. gfortran interprets it to disallow this code [empty commit message] commit a91a52952fb6d32423f351afdda8de2d04b71e38 Author: athena Date: Thu Jun 23 18:12:10 2011 -0400 Add md5 hash of fftw's configuration to wisdom file People were already confused by threaded vs unthreaded wisdom, and now things will be even worse because we enable/disable AVX codelets at runtime. Accept incoming wisdom only if it was produced by the same configuration (modulo MD5). commit 0de6ca5c7f7720457124d7b7a3ca35153d06f761 Author: athena Date: Thu Jun 23 09:01:27 2011 -0400 distribute fftw3.f03.in commit 6422ed65a6cfb1704c1b428f37a6034baeba212c Author: stevenj Date: Wed Jun 22 22:02:18 2011 -0400 more Fortran documentation [empty commit message] commit 9c1e1d48f0f97b49b62e5ee42e92673964e7d7cf Author: stevenj Date: Wed Jun 22 20:10:39 2011 -0400 correct comment [empty commit message] commit ce8bb23e571efe5595d6d9578a45769e48bad7fe Author: athena Date: Wed Jun 22 20:26:18 2011 -0400 Use "sh FOO.sh" instead of "./FOO.sh" to avoid chmod +x. commit 660905636ebbefe3338d405d4a6fb30b89e07912 Author: stevenj Date: Wed Jun 22 19:19:05 2011 -0400 document fftw_alloc_real/complex ... should we switch to using these in the tutorial examples? [empty commit message] commit ea8c9f7fedc0ca183449b70bee978a4251f552e1 Author: stevenj Date: Wed Jun 22 19:07:49 2011 -0400 whoops, added missing file [empty commit message] commit 6caf08feba78084741e749e022c8c2e523c7ab44 Author: athena Date: Wed Jun 22 18:46:01 2011 -0400 Note addition of AVX. commit a17b6a6a493d19c93fd3a6b8eaacef8174033cd7 Author: athena Date: Wed Jun 22 18:43:43 2011 -0400 In SSE2, AVX: use FMA macros when applicable. Makes it easier to play with fma4 and fma3 when it comes out. commit d4dfffc05a4f9c3f7aa7c2c2ef9fa416f9257a5f Author: stevenj Date: Wed Jun 22 18:16:45 2011 -0400 all modern Fortran compilers can call FFTW's C interfface directly -- support this, and in particular generate a Fortran 2003 interface file from fftw3.h so that Fortran code calling FFTW can be typechecked ((addressing the source of a lot of Fortran-user problems) [empty commit message] commit 10a9a86ddf3d94750c57ca8b20c0fca39cea6541 Author: athena Date: Wed Jun 22 13:10:02 2011 -0400 some cleanup of SSE2 macros commit f301a0adb53b56a2e4fd74ef61cf29d66b745286 Author: athena Date: Wed Jun 22 07:38:18 2011 -0400 don't use -xHost on ICC -xHost with ICC is problematic. On icc-12.0.0, "-mavx -xHost" overrides -mavx with -xHost, generating SSE2 code instead of AVX code. ICC does not seem to support -mtune=host or equivalent non-ABI changing flag. commit 9e7758ff431947863cec44354413c27067f0fda8 Author: athena Date: Tue Jun 21 20:35:36 2011 -0400 Complete AVX implementation for split codelets commit a547e3d5dba38863f6e2c9acb45ffb94351fe3a5 Author: stevenj Date: Tue Jun 21 19:37:14 2011 -0400 whoops, missing altivec conf patches [empty commit message] commit 9dc6263714fa685f384fb61ed08d398b38b26329 Author: stevenj Date: Tue Jun 21 19:12:45 2011 -0400 some BSD ar versions (e.g. on MacOS X) give an error if there are no object files, so we cannot build empty libraries [empty commit message] commit 32dcba1b5d68cf9e33ec3f81e0405f2f909389dd Author: stevenj Date: Tue Jun 21 19:12:12 2011 -0400 re-insertion of Altivec code [empty commit message] commit 931617ee1ba9f9257117ad8e1df38dfe055f9cee Author: athena Date: Tue Jun 21 16:26:09 2011 -0400 Implement faster AVX loads/stores. commit f76d6c1d278b34b2ccac7cff57522cab7ec90864 Author: athena Date: Tue Jun 21 16:03:24 2011 -0400 Initial AVX256/single implementation This should be correct but slow. I need to figure out how to implement noncontiguous loads/stores efficiently. commit 164cc4c8fa9bfdf2b02d9cb9364c8f3f36e420e7 Author: athena Date: Tue Jun 21 14:13:57 2011 -0400 fix AVX alignment commit c277833627164aeb649d187ba0409a3fdca9166d Author: athena Date: Tue Jun 21 14:07:28 2011 -0400 rename avx256d -> avx AVX will work in both double and single precision, like SSE2. commit f97162a135eee43630825fccaa29b735ee284fff Author: athena Date: Tue Jun 21 13:52:20 2011 -0400 remove CODELET_OPTIM In the old 32-bit gcc-3.x days we used to play games with gcc to force it to produce decent code. Now gcc has gotten smarter and it produces indecent code no matter what we do, so it is safe to remove these hacks. commit 57baa1a6761a441c6aa47b0b63503bfd5270d9a9 Author: athena Date: Tue Jun 21 09:57:31 2011 -0400 work around gcc/icc quirks commit deeea8205c4cf4511b41a8a7cd85195b1e4eb7f6 Author: athena Date: Tue Jun 21 09:56:07 2011 -0400 Add remarks in places where we work around gcc quirks commit b357b3a90ba2060915fa03d888f0b2306be1f17a Author: stevenj Date: Mon Jun 20 21:17:59 2011 -0400 remove the libbench directory (which we have kept lingering in the repository for years due to CVS's inability to remove directories) [empty commit message] commit 1ff7bbcc3b0dcfa3bd8f16ec1c672e5671cc0f99 Author: stevenj Date: Mon Jun 20 21:17:14 2011 -0400 update URLs [empty commit message] commit ddcac323fe11f273f8e983836edaec002237a3ca Author: stevenj Date: Mon Jun 20 20:53:31 2011 -0400 whoops, forgot to check in alignment change [empty commit message] commit 5eac5571d61bf5515946dab5750f5db82632cd54 Author: athena Date: Mon Jun 20 20:22:23 2011 -0400 "test X = Y" requires spaces around "=" commit 60d4535475d937207b8fd0c6ebef966d95601154 Author: stevenj Date: Mon Jun 20 19:18:52 2011 -0400 indenting [empty commit message] commit 22cdbb3e3f35d6c289f4c250fbeba696090c6cc9 Author: stevenj Date: Mon Jun 20 18:57:10 2011 -0400 merge back in SSE support, now combined with SSE2; --enable-sse2 now works in both single and double precision, and simd-sse2.h contains both the double- and single-precision code (which overlap a lot); in single precision it is still compiled for SSE-only (SSE2 is only required for double) [empty commit message] commit 2d767316e1ba0cf9fd4f5eb3134c6341b2d87a29 Author: athena Date: Mon Jun 20 16:02:07 2011 -0400 Implement AVX autodetection (gcc-only so far) commit 1ed535ea5c0ae847edb64b1696c7c40ea6022fbd Author: athena Date: Mon Jun 20 14:25:54 2011 -0400 Add VZEROUPPER at the end of AVX codelets If the Intel Optimization Manual is to be believed, we need to wave a dead chicken before transitioning from AVX code to SSE code. I am supposed to believe that there is a transition penalty for doing so, unless one uses a magic VZEROUPPER instruction that apparently has zero cost. Whatever. commit 1b26ff69ef0065d12689cd77ae65a7a049a37150 Author: athena Date: Mon Jun 20 10:21:25 2011 -0400 Move RDFT to new simd scheme commit 02b63c9ba5acf94a24d0b948436026df702681a9 Author: athena Date: Mon Jun 20 09:23:38 2011 -0400 New SIMD build system We now support multiple SIMD extensions in the same binary, e.g. --enable-sse2 --enable-avx. This patch adds the necessary infrastructure for SSE2/AVX and complex DFT. Later patches will add RDFT and SSE/ALTIVEC/etc. commit 3409ea120286bc180d314be65f949ecb62f954cb Author: stevenj Date: Sun Jun 19 12:29:27 2011 -0400 italicize Latin quote [empty commit message] commit 760f9aec6ca8c45219a357605b8216fef71ff04f Author: stevenj Date: Sun Jun 19 12:26:34 2011 -0400 work around incredibly annoying makeinfo bug -- for HTML output, in any paragraph ending with an @index command, two blank lines are needed to create a paragraph break ... our HTML output has apparently been screwed up for years [empty commit message] commit f7a34a1e53ec9e1b7c263d6c8a4cf8020c1de89e Author: stevenj Date: Sun Jun 19 12:01:39 2011 -0400 conjugate-pair algorithm turns out not to be due to djb, but it was pointed out to us by djb [empty commit message] commit 34e740878c4a449ef31a6df2f538a67387504b57 Author: stevenj Date: Sun Jun 19 11:59:21 2011 -0400 new-array execute functions are *not* the same for MPI, since the problems are different [empty commit message] commit a0b07a03fd52e6192dd0023054cc6359dd651554 Author: stevenj Date: Sun Jun 19 11:57:52 2011 -0400 tweaks to MPI manual [empty commit message] commit 9fa05d4bcd100d5ed0ade53a1c28f00a01cd89fc Author: stevenj Date: Sun Jun 19 00:47:23 2011 -0400 only call MPI_Init_thread for MPI version >= 2 [empty commit message] commit e2f3cf7c8965653eb94a03c25ab7ce8f4f09ed8e Author: stevenj Date: Sun Jun 19 00:35:44 2011 -0400 document quad precision in Fortran [empty commit message] commit f5dd231509aa0a32aa1d0fa1024adf8ebba30aa9 Author: stevenj Date: Sun Jun 19 00:16:10 2011 -0400 use -lquadmath for quad-precision library in pkgconfig file [empty commit message] commit d0775d11f358dc46f0f2925be4830b3127564ab4 Author: stevenj Date: Sun Jun 19 00:10:33 2011 -0400 document quad precision [empty commit message] commit a6142f7e745906e6b392369e5ffc5bf83f57d573 Author: stevenj Date: Sat Jun 18 21:26:24 2011 -0400 there is currently no standard quad-precision type in MPI, so don't allow MPI support to be compiled with --enable-quad-precision [empty commit message] commit 34067999298aa71f65b2ac33386693f03bebd725 Author: stevenj Date: Sat Jun 18 21:25:51 2011 -0400 make quad-precision library libfftwq [empty commit message] commit 28db5c98edf2ce5508cc8a91118b41ede6476183 Author: stevenj Date: Sat Jun 18 21:19:50 2011 -0400 use --estimate in check script with --enable-random-estimator [empty commit message] commit e16e119568222dd95a717242b191a4adf72ec2de Author: stevenj Date: Sat Jun 18 20:36:51 2011 -0400 bug fix - correct crashing interaction between threads and debug-malloc [empty commit message] commit 25a1b5252eb203919634a13d0c5deb8f8ddad940 Author: stevenj Date: Sat Jun 18 18:41:48 2011 -0400 whoops, typo [empty commit message] commit 2d8b12a9624e30de0054d035d35474c57d115f49 Author: stevenj Date: Sat Jun 18 18:35:14 2011 -0400 clarification of when fftw_cost may return 0 [empty commit message] commit 9d7a9545df20eb5b0c4ea6535161108225abce21 Author: stevenj Date: Sat Jun 18 18:31:26 2011 -0400 corrected manual and test program for proper interaction of MPI and threads [empty commit message] commit a950b94a168ed22d850db5394fd633eee3309ebf Author: stevenj Date: Sat Jun 18 17:13:52 2011 -0400 need --mpi restriction in mpi+threads check [empty commit message] commit 7a8106a510a8147ce2f8f986a0ea6f1fc935b419 Author: stevenj Date: Sat Jun 18 12:09:04 2011 -0400 split fftw3.texi into multiple files for ease of editing [empty commit message] commit cb26916dace1d5d264f7561b760a89d5ee972d3b Author: stevenj Date: Fri Jun 17 17:26:50 2011 -0400 merge recent Cell deletion with MPI branch [empty commit message] commit 1595e9847b428d6b439d7f908d3d6f06b6746d1f Author: stevenj Date: Fri Jun 17 01:52:59 2011 -0400 whoops, incorrect assertion [empty commit message] commit 158a22057fd700263ff39e20dafbf506982bad25 Author: stevenj Date: Fri Jun 17 01:52:51 2011 -0400 comment fix [empty commit message] commit e0d118305f05ad4f429fda2879547b9285c362ea Author: stevenj Date: Thu Jun 16 23:30:27 2011 -0400 check if pln creation failed (e.g. for split input) bbefore calling setup_gather_scatter, to prevent crashes [empty commit message] commit b2254795d8d3f65d1205053f39d5e837bec6e4d0 Author: stevenj Date: Thu Jun 16 23:26:48 2011 -0400 bug fix -- transpose-recurse is only applicable if subtransposes fit in the same space (unless I change the allocation routine, but this would seem to require looking at all possible recursive invocations of transpose-recurse) [empty commit message] commit 25faa34d32d8b7577ad1107769f3e87e7c87cef0 Author: stevenj Date: Mon Apr 11 17:58:03 2011 -0400 yikes, any_true check on subplan creation should be in comm, not comm2, so that all processes know if failure occurred [empty commit message] commit c0b90d9331fbcc167f07c04a3ce1298cc8d88593 Author: stevenj Date: Mon Apr 11 17:00:46 2011 -0400 add wisdom_ok_hook to enforce wisdom synchronization on MPI problems, apparently fixing a longstanding deadlock/crash bug [empty commit message] commit 651a2f59b8fdeecf79246c3f65b776be567b2ddb Author: stevenj Date: Mon Apr 11 15:10:22 2011 -0400 add a check (in DEBUG mode only) that all processes produce the same hash of MPI problems; don't include alignment in MPI problem hash because it may differ between processes for unaligned malloc [empty commit message] commit 23bb1cb665dc571a773eb5125371b1079e0a4243 Author: stevenj Date: Fri Apr 8 18:46:54 2011 -0400 use cost_hook in random_estimate [empty commit message] commit 21229fc46c88d7ca15c9ba06c1f731d01eecd77a Author: stevenj Date: Sun Mar 6 23:33:53 2011 -0500 added mpi new-array execute functions; thanks to Guo Luo for the bug report [empty commit message] commit 7335ef11cd5e2e9962dbc41c42e5c14e156e6f82 Author: stevenj Date: Wed Feb 9 21:29:17 2011 -0500 MPI may not support tags > 2^15-1 (e.g. Cray MPI requires tags < 2^24); thanks to Jonathan Bentz for the bug report. [empty commit message] commit 155887d9e173f2a72cb63cf5b7b36ff49bf52356 Author: stevenj Date: Wed Feb 2 12:21:30 2011 -0500 fix merge conflicts [empty commit message] commit 56c3bf01ecfcc23f2d76efed77dac234a59b9234 Author: stevenj Date: Sat Nov 15 20:33:33 2008 -0500 version bump for 3.3alpha1 [empty commit message] commit 136cf63d2cdcb5889a38163c4ccf9b1198e47e04 Author: stevenj Date: Sun Oct 26 22:47:07 2008 -0400 re-added mpi/Makefile [empty commit message] commit 3bfab1285c5390285e734dc910b728a328d9f7fd Author: stevenj Date: Sat Oct 25 17:14:42 2008 -0400 re-add MPI to dist [empty commit message] commit b2470178928b190c6b50d3bef353925061db3d08 Author: athena Date: Sat Jun 18 08:50:13 2011 -0400 remove obsolete Cell code commit 38bfc62ffa5051da294faa46a8ab29fc7225a97b Author: stevenj Date: Fri Jun 17 23:31:33 2011 -0400 bug fix in accuracy test, which prevented us from consiistently determining accuracy in > double precision [empty commit message] commit 7356645134bcb66286da0c00ad3d993e90e425af Author: athena Date: Fri Jun 17 20:05:13 2011 -0400 do not check for gcc version before checking for gcc commit d94f234b00d3ced13ccfc3551e0a20cd66645922 Author: stevenj Date: Fri Jun 17 18:56:37 2011 -0400 require gcc 4.6.0 or later for --enable-quad-precision, to match fftw3.h header file; no need to mark this as EXPERIMENTAL (make check passes, and support in gcc 4.6 seems reasonably complete) [empty commit message] commit 28ebf4da08a1fc607b0ea41ed24ea3707a256548 Author: stevenj Date: Fri Jun 17 18:51:41 2011 -0400 need ugly __attribute__ to use __float128 with _Complex, ugh [empty commit message] commit b00cf20a5c45b953d2e6d954570543727b72cf9a Author: stevenj Date: Fri Jun 17 18:23:05 2011 -0400 --verify tolerance in quad precision changed to 1e-29 [empty commit message] commit 015e365952344e8395a0516c9fe0e3c736550b9e Author: stevenj Date: Fri Jun 17 18:22:38 2011 -0400 quad-precision F77 api should use "qfftw" prefix [empty commit message] commit af4a1c37d8eb5e14678449741fd185cb65c4c10b Author: stevenj Date: Fri Jun 17 18:22:27 2011 -0400 rm extraneous space from fftw3.h [empty commit message] commit 654e73b0cfe2079498eadaf15b19361f71ef18ab Author: stevenj Date: Fri Jun 17 18:05:10 2011 -0400 use cosq etcetera with libquadmath in libbench2, so that --verify correctly gives ~33 decimal places in shift test [empty commit message] commit 00bac1ae1e651e5e85c507294c3e215dde1bb85b Author: stevenj Date: Fri Jun 17 17:52:51 2011 -0400 libquadmath ships with gcc 4.6.0, so we should require this library for sinq/cosq with --enable-quad-precision; also, include the __float128 FFTW functions in the header file for gcc >= 4.6 on i86/x86_64/ia64 [empty commit message] commit a17a0720767ca177a799d685a5ac7b63331dd559 Author: stevenj Date: Fri Jun 17 16:54:01 2011 -0400 typo in manual for fftw_cost [empty commit message] commit 4aab5d51dbc8b798c25f857cfa07ce7f25f9360d Author: stevenj Date: Fri Jun 17 16:48:24 2011 -0400 fix fftw_cost function: pcost needs to be saved in mkapiplan, since the plan is re-created from wisdom [empty commit message] commit c031d561c14a97b9a04197ba07c19cbf769648f9 Author: athena Date: Fri Jun 17 16:42:25 2011 -0400 removed support for the Cell Broadband Engine commit 34f5ad2eaae86075973d26ee5adcc7ceb04f4924 Author: athena Date: Tue May 24 06:51:07 2011 -0400 Undo previous change; the typo was not a typo after all. commit b9b72d1a42b162f74dfe9dc073ce5f5fc873113b Author: athena Date: Mon May 23 05:08:05 2011 -0400 Fix typo in manual commit f41fb798be412eff5c26c539e07385dbbc6ac56a Author: athena Date: Sat May 21 17:37:50 2011 -0400 clarify intent about canonicalization of tensor in tensor_compress_contiguous() commit 438c3b46f428023ce986422a697c9d33687ae9c1 Author: athena Date: Sat May 21 17:30:31 2011 -0400 avoid useless canonicalization in tensor_compress_contiguous() commit 8fbf77ca71756bd32bb5c71e709ec717e388451e Author: athena Date: Sat May 21 17:24:57 2011 -0400 Fix tensor_compress_contiguous tensor_compress_contiguous() was supposed to sort dimensions by descending istride, and then compress adjacent dimensions. This property was lost once we changed the canonical order of strides to be sorted by descending min{istride,ostride}. Change tensor_compress_contiguous() to sort by descending istride again, which is necessary for its correctness, and then canonicalize at the end. commit 5ad70bf5c1bdeadefcaac86cc3e9a76b31f75724 Author: athena Date: Sun May 8 18:47:26 2011 -0400 Don't distribute obsolete .depend commit c48d28bc5b7fb54ea8e037579cb0af3fae339543 Author: athena Date: Sun May 8 18:05:36 2011 -0400 Use ocamlbuild for building genfft Remove the old Makefile cruft to support ocaml, and use ocamlbuild instead. commit d183b35663d030b1ad789795fa441941961472c0 Author: athena Date: Sun May 8 18:03:07 2011 -0400 Do not use __float128 unless BENCHFFT_QUAD is defined Otherwise, compilation fails on compilers that do not support __float128. commit 833ec738fe3c3234382a3fc160c8fe54060dc860 Author: stevenj Date: Fri Apr 8 13:15:54 2011 -0400 fix configure --help string for --disable-alloca (since default is enabled) [empty commit message] commit 68538e1ffa84d206cae95558c636d9fa490888bd Author: stevenj Date: Fri Apr 8 13:09:56 2011 -0400 add "random estimator" for debugging purposes; note that this is best used with ESTIMATE_PATIENT mode [empty commit message] commit 56d274a97c1868b43a2294bab6a4d6d245849608 Author: stevenj Date: Tue Apr 5 14:47:56 2011 -0400 add AC_CHECK_DECLS for srand48; thanks to Ralf Wildenhues for the bug report [empty commit message] commit 50465ef2118b72f9f868e9ec53ee7e53bb050259 Author: stevenj Date: Sat Feb 5 17:00:40 2011 -0500 experimental support for gcc's __float128 quad-precision type [empty commit message] commit 2471f34097daef93ae593743403cf40820a0673a Author: athena Date: Sun Oct 24 14:33:59 2010 -0400 guarantee that "timelimit < 0" means "no timeout" "timelimit < 0" was always meant to be equivalent to "timelimit = HUGENUM", but this was not true in all cases, causing some obscure wisdom behavior. Thanks William Andrew Burnson for the bug report. commit c16bc87b770bb0757dead223c13dc1966e3c2e3e Author: athena Date: Sun Oct 24 14:32:20 2010 -0400 compile with --enable-fma and SSE, SSE2 Allow compilation with --enable-fma and --enable-sse, --enable-sse2. This is a bad idea performance-wise, but people will try anyway. commit eb34fdf7b5233e8f8a5b44c7f275e0c950ead3e7 Author: athena Date: Sun Jul 11 13:34:06 2010 -0400 Make threads.c compiler with c++ commit a80ce9ee8210615480efcaf03989278540ad900e Author: athena Date: Sun Jul 11 10:05:05 2010 -0400 Attempt at clarifying the advanced interface doc. commit 537372cf3446b014e53ad2b2bfd636748abfe44f Author: athena Date: Sun Jul 11 07:37:27 2010 -0400 rename rfftwnd html picture It turns out that texinfo with pdf output reads .png files in preference to .pdf files (when did this change?). I renamed the .png figure to avoid producing an ugly pdf file. commit 7be5dbd77b2c719b804b53731ffc9e27100b48f6 Author: stevenj Date: Tue Mar 30 19:43:22 2010 -0400 added fftw_cost function; this is the second time people have asked for this, and there is a reasonable use for it in comparing e.g. oout-of-place vs. in-place plans [empty commit message] commit 101fc17a6dbc1feb1e5cc7625a251068fac7c202 Author: stevenj Date: Tue Mar 2 18:55:49 2010 -0500 documented that --enable-debug-malloc causes fftw_execute to be thread-unsafe (thanks to Alexis Rohou for the problem report) [empty commit message] commit e9b894f0a2b7d65d559d8fded2d7298bdfc90694 Author: athena Date: Fri Jan 22 19:42:08 2010 -0500 Added FAQ about how to transpose matrices using FFTW. [empty commit message] commit 18462a4c21b99482fcb9b2dc7338b83f8bbd790b Author: stevenj Date: Thu Jan 7 20:16:57 2010 -0500 catch FMS (instead of generating FMA(_,_,NEG(_)) with h -generic-arith option [empty commit message] commit 90015026798cd3bad02d8c4144f527dfdc5f1ca7 Author: athena Date: Fri Dec 11 07:01:26 2009 -0500 note future wisdom enhancements. [empty commit message] commit 03747c3de44cda09224d08e8d580483cc23b6687 Author: athena Date: Mon Oct 19 20:21:05 2009 -0400 Use SIMD flags when checking for xmmintrin.h This prevents an obnoxious warning from configure. commit 9211b77226bd67a674d5be4b26843b466a24d377 Author: athena Date: Sat Aug 29 20:47:56 2009 -0400 new bug [empty commit message] commit 4d7817c4b3f6476892515b47aca61d2830ba2e5c Author: stevenj Date: Sun Jul 26 00:40:11 2009 -0400 typo (s/man1/many) [empty commit message] commit 4de43b59f0ef8a445810e2b96e746d95a63b39b1 Author: stevenj Date: Tue Jul 14 14:19:08 2009 -0400 BUILD-MINGW32 script, updated Windows README [empty commit message] commit fe7ce32f22a1cfe7049d095ecbea5024915e93ac Author: fftw Date: Mon Jul 13 09:40:38 2009 -0400 cleanup BUILD-MINGW64.sh commit 18ddd3f4d23697d8f6dcbf9c122ca281ed17bdde Author: athena Date: Sun Jul 12 06:34:46 2009 -0400 Update NEWS, version number for 3.2.2 release. commit 54f4ad016522892f54c2955ecaa5dc06dbff260a Author: athena Date: Sat Jul 11 22:28:38 2009 -0400 Reintroduce the pruning heuristic in ESTIMATE mode for r2r problems. Somehow, we lost this feature between fftw-3.1.3 and fftw-3.2. commit 18e2d0a785627f6360e756d1cd93c78a8f7b6ba3 Author: athena Date: Thu Jun 25 07:39:04 2009 -0400 don't use pshared=1 in sem_init pshared is really not necessary, and it is not supported on GNU/kFreeBSD. Thanks Petr Salinger for the bug report. commit e58f95716b84021e2175673ccbbd4fe1bc180ad3 Author: fftw Date: Thu Jun 11 19:35:40 2009 -0400 Add mingw64 build file so that we can track it. commit 03c7f0e0ade24de0e4d08bc6899f78db917ffaca Author: fftw Date: Wed Jun 10 12:10:58 2009 -0400 note 3.2.2 NEWS commit ddd2281898dca1a30c48cff89c42c2d9c631faa3 Author: fftw Date: Wed Jun 10 12:04:54 2009 -0400 add --disable-alloca to configure It looks like alloca() is broken on mingw64, and thus we need to disable it explicitly. commit 902651afe12f9de0efb131bffa42db8189516595 Author: athena Date: Sun Apr 26 16:33:10 2009 -0400 Note in FAQ that --enable-k7 has been discontinued. commit 0d50e05674406773adea157318c85b8f9c94d9c0 Author: athena Date: Tue Mar 24 09:16:18 2009 -0400 clarified small confusion in fftw_cleanup documentation commit bea8d6909782b15db9d6a591c8344e8179444746 Author: stevenj Date: Thu Mar 19 13:18:06 2009 -0400 fix documentation of dfftw_init_threads to indicate thaat it takes an argument (since the C version returns a value); thanks t Hans Johnnston for the bug report [empty commit message] commit d6eaf145d2cc51db18fd69b49ef24cf628313c01 Author: fftw Date: Thu Mar 12 13:12:13 2009 -0400 if possible, use a 128-bit type for copy commit b1d732a8e58c303b9f3be4feb082f5b5ac27628c Author: fftw Date: Tue Mar 10 12:49:51 2009 -0400 add size-128 simd codelets It's about time commit d1f4ac081fe3fa267db692b6da4da3b2023e2e8a Author: athena Date: Mon Mar 9 20:29:16 2009 -0400 copy two floats as a double when possible Resurrect the old hack of copying two floats as a double, which makes some difference in these days of 64 bit boxes. commit aa6865bac3cfb4050d6f662ddf744c86c8324393 Author: athena Date: Sun Mar 8 18:08:04 2009 -0400 fixed (harmless) confusion of strides RS and VS were swapped in dftw-direct.c. This is a bug, but it is harmless unless one uses fixed-stride codelets, which we do not. commit f34f1f3fee5d0bd112c8e55c9292d47bd643552f Author: athena Date: Sun Mar 8 10:29:49 2009 -0400 oops, I checked in debug code accidentally. commit d5a07965857012694d310ac28800d47741abccfd Author: athena Date: Sat Feb 14 19:01:00 2009 -0500 Change TLO email address since Magdalen is no longer there. [empty commit message] commit 8418ed8d856c8c50e6463828e015c9d80be1285d Author: stevenj Date: Sat Feb 14 18:18:45 2009 -0500 quote arguments to bench in test script on the off-chance that '*' would be expanded by the shell into a valid filename, and also to avoid shell confusion on Cygwin that "//" begins the name of a Windows network mountpoint [empty commit message] commit 55f747d248139ddffad00ede4d649fc6eb612839 Author: athena Date: Sun Mar 8 10:02:59 2009 -0400 stricter conditions for Cooley-Tukey being ugly It turns out that m=2 in the leaf of Cooley-Tukey may be advantageous in certain cases, eg. i512v512 on AMD Shanghai: (dft-buffered-512-x128/512-6 (dft-ct-dit/4 (dftw-direct-4/24-x128 "t2fv_4") (dft-vrank>=1-x4/1 (dft-ct-dit/64 (dftw-direct-64/504-x128 "t2fv_64") (dft-vrank>=1-x64/1 (dft-direct-2-x128 "n2fv_2"))))) (dft-r2hc-1 (rdft-rank0-tiled/2-x128-x512)) (dft-nop)) Presumably this works around the 2 way associativity of the L1 cache. commit b2acc4c668acebf2ded61cc3a939606bbc73a3e0 Author: stevenj Date: Mon Feb 9 19:46:00 2009 -0500 disable Windows QueryPerformanceCounter code, since it requires us to pull in windows.h in ifftw.h and causes namespace conflicts; gettimeofday seems to work well enough and has had few complaints [empty commit message] commit 1b3884da38a34cbc1c8f33f78394eeca588f0786 Author: stevenj Date: Wed Feb 4 22:55:54 2009 -0500 version bump for 3.2.1, updated NEWS [empty commit message] commit e12e5cb04667aa089cf606fb163ce788247d1c2b Author: stevenj Date: Wed Feb 4 22:27:28 2009 -0500 recommend that users avoid fftw_execute in Fortran, instead using dfftw_execute_dft and friends so that the compiler knows that the input/output arrays are used [empty commit message] commit db43aa9ae291dd66fc542c13afc2dd577750ef75 Author: stevenj Date: Wed Jan 21 16:02:08 2009 -0500 prefer windows queryperformancecounter to gettimeofday on Windows, thanks to David Price for the suggestion [empty commit message] commit 338b5272f6924179a0b345e70f44fd1e5edafc23 Author: athena Date: Sun Feb 1 14:34:49 2009 -0500 compilation fixes in case snprintf() is defined as a macro. [empty commit message] commit 321141568010f66f31c36912a230005ab10d54d3 Author: athena Date: Wed Jan 28 20:19:04 2009 -0500 Automake does not like continuation lines beginning with a comment. [empty commit message] commit 618225923a36a2ef96214e2f2a0c6c12b0fb89be Author: athena Date: Wed Jan 28 18:24:39 2009 -0500 Add r2cb_2.c r2cb_2.c is needed for problem rb2, which is not equivalent to rf2 (unlike kb2, which is equivalent to kf2). This change would not matter much except that rb2 is generated when reducing backward rdft2 to dft, and the absence of the codelet was preventing radix 2 from being employed at all in this case. commit dc4c6cb9e1ae4df2be85e77c3fea172f24e1523b Author: athena Date: Sat Jan 10 06:47:22 2009 -0500 handle the case vecsz->rnk == 0 correctly. [empty commit message] commit 3ca4f694d0b27bb0b1e84ea028e3dadcfdf5b236 Author: stevenj Date: Fri Dec 19 15:20:36 2008 -0500 Macs are no longer ppc-based; thanks to Charles Collicutt for the FAQ update [empty commit message] commit bbfa5e2c5102a5f923eed3b31d37ec7b75616edd Author: stevenj Date: Mon Dec 8 18:08:33 2008 -0500 use new multiple-nbuf code in rdft/buffered, like for dft/buffered [empty commit message] commit 679ab9ffd5738b9df115adfb64f72fd015fe7d6b Author: stevenj Date: Sat Dec 6 16:34:36 2008 -0500 make x86_cpuid macro work on x86_64 [empty commit message] commit 9771718d2e4e57450b03c89bb0c06663c59242c8 Author: athena Date: Sat Dec 6 09:20:37 2008 -0500 Allow automatic choice of buffer size in dft/buffered.c Try a couple of different buffer sizes in buffered transforms, since this seems to make a difference on some Core2 models. commit c4888a4f4fb2961e0f067c55489989da8f3223f5 Author: athena Date: Tue Dec 2 19:18:30 2008 -0500 libbench2: do not assume that split-complex arrays are stride-1 [empty commit message] commit e05f9234129ed82f1f5094465788742c271d1f4b Author: stevenj Date: Tue Dec 2 18:39:43 2008 -0500 updated NEWS [empty commit message] commit 3cfe589fdc4393ff549c1bacbeb2b23c27562339 Author: stevenj Date: Tue Dec 2 18:30:00 2008 -0500 date fix [empty commit message] commit 81326cf16c11ddc12f3d3c1fda7861853abba308 Author: stevenj Date: Tue Dec 2 18:29:06 2008 -0500 updated icc flags -- now prefer -xHost (-xN etc. seem t be obsolete), check for new spelling -ansi-alias, and use -malign-double like we do for gcc [empty commit message] commit 2e94f29d37f25690825b11ed436d726d5077dba6 Author: stevenj Date: Tue Dec 2 18:28:03 2008 -0500 use $ax_cv_c_compiler_vendor rather than $GCC, as the former is more reliable (icc incorrectly self-identifies as gcc on MacOS where we don't use -no-gcc) [empty commit message] commit a5edcdb0c705b3b42f8aec48e41457fd3771bed7 Author: stevenj Date: Tue Dec 2 17:55:36 2008 -0500 don't use -no-gcc for icc on MacOS [empty commit message] commit 2ce94a7fa1858ca3bfdf38f47f7f2d62ceae5262 Author: stevenj Date: Tue Dec 2 17:34:04 2008 -0500 document some more bench options [empty commit message] commit 315a8ae3389d84d6c062a1afc5c2c4eddee4bb77 Author: stevenj Date: Wed Nov 19 16:55:13 2008 -0500 make it clearer that --enable-openmp and --enable-threads are mutually exclusive; thanks to Long To for his comments [empty commit message] commit 4bca25954f1e56299cf45e61bec3877007f8cbc4 Author: stevenj Date: Mon Nov 17 20:16:28 2008 -0500 version bump to 3.2.1, use explicit Makefile.am for m4 subdirectory so that tarball does not include random files in there when you do 'make dist' [empty commit message] commit 7728d69ca6e4f30747b182a3f0d30ec7c25bf26d Author: stevenj Date: Sat Nov 15 21:12:58 2008 -0500 document behavior of FFTW guru arrays, and in particular the odd behavior of the plan_guru_r2r routine in Fortran (thanks to Alexander Pozdneev for the bug report) [empty commit message] commit ba5c08b8b8a3c0e69ba228e071d71664f72c76ba Author: stevenj Date: Mon Nov 10 20:21:32 2008 -0500 version bump to 3.2, updated copyright year [empty commit message] commit a25226c3cd7b9451e6690a813cc3266b15acd7c2 Author: athena Date: Wed Nov 5 16:40:31 2008 -0500 Store GPLv2 in darcs because automake installs GPLv3 these days. [empty commit message] commit f80a90668573e199b3509a7737ba2d071f4e3974 Author: athena Date: Thu Oct 30 15:03:41 2008 -0400 stylistic changes, comments [empty commit message] commit b8f22edf8aadff2aea6d4e69b7651506951810d0 Author: athena Date: Thu Oct 30 14:40:14 2008 -0400 oops [empty commit message] commit bfaec2f123eb8d8297ce405590e07d682cf80293 Author: athena Date: Thu Oct 30 14:30:08 2008 -0400 simplification of the threading machinery [empty commit message] commit c471651b5bc46868c1e8231a89ec6d459c868854 Author: athena Date: Thu Oct 30 14:22:40 2008 -0400 typo [empty commit message] commit e1f64989da3c427c36c9df3495ef9d24ab01993d Author: athena Date: Thu Oct 30 13:42:07 2008 -0400 [SECOND ATTEMPT] do not assume that a semaphore can be freed just because nobody is using it Let S be a semaphore, initially 0. Let thread A execute UP(S); let thread B execute DOWN(S); free(&S); It is unclear whether this code is correct with posix semaphores. The problem is whether UP() uses S after allowing DOWN() to continue; this seems to be the case in the glibc-2.7 implementation, and thus the pattern above seems to be incorrect. Avoid using such a pattern, and introduce a global semaphore for the unavoidable case when nothing else can be depended upon. commit cddb0450696d51a99ca1d9663d4e4a606c45725e Author: stevenj Date: Wed Oct 29 20:09:39 2008 -0400 updated cpu codes from x86-1.21 [empty commit message] commit 2b8ab85fb21f1fd637cfe7a04ad0acf1610b5713 Author: athena Date: Wed Oct 29 16:24:16 2008 -0400 Previous change was bogus, need to find another way. [empty commit message] commit 0123295bb8dd2064d858a59a48242611219b020d Author: athena Date: Wed Oct 29 12:22:20 2008 -0400 do not assume that a semaphore can be freed just because nobody is using it Let S be a semaphore, initially 0. Let thread A execute UP(S); let thread B execute DOWN(S); free(&S); It is unclear whether this code is correct with posix semaphores. The problem is whether UP() uses S after allowing DOWN() to continue; this seems to be the case in the glibc-2.7 implementation, and thus the pattern above seems to be incorrect. Avoid using such a pattern, and introduce a global semaphore for the unavoidable case when nothing else can be depended upon. commit 1b1dd4a34bb653d4bd63775d2760b435cb4f0d1d Author: stevenj Date: Mon Oct 27 23:38:02 2008 -0400 don't need PROG_AS any more [empty commit message] commit f7f67160af9b208e74304378ef54b4b5608fb96a Author: stevenj Date: Sun Oct 26 23:41:11 2008 -0400 use AC_CONFIG_MACRO_DIR macro [empty commit message] commit d6334fa841da6e5f06a7323ce1d31346fb79b4f4 Author: athena Date: Sun Oct 26 10:08:44 2008 -0400 Remove mpi/Makefile from configure.ac Otherwise, the tarball breaks because mpi/ is not in the distribution. commit dda1fd64e3ab5fbb80578cfe41c69191cdfcc7f5 Author: stevenj Date: Sat Oct 25 17:13:50 2008 -0400 remove MPI from dist until FFTW 3.3 [empty commit message] commit a3a16288f18899e7fc8351da1c500024709174cd Author: stevenj Date: Sat Oct 25 17:12:35 2008 -0400 use MPIRUN even for -np 1 [empty commit message] commit 1b2a86c0ab92772ce43bf6b0c5e0bbae2dfb7fee Author: stevenj Date: Fri Jul 18 17:17:08 2008 -0400 use new gcc arch=native flag as fallback [empty commit message] commit 73944e9472d933cdafcff9c3e5b85efc9661ea5b Author: athena Date: Sat Oct 25 13:36:40 2008 -0400 Use sem_t to implement mutexes Use sem_t instead of pthread_mutex_t to implement mutexes. It seems like pthread mutexes hang on linux-2.6.22 after several days of tests; the hang does not occur on linux >= 2.6.24 or when we use sem_t instead of pthread_mutex_t. The situation is still quite mysterious but this code seems to work. commit 82a0159088bdacf0cb5d5ecb5547f51ae34f77ab Author: athena Date: Thu Oct 23 13:32:45 2008 -0400 print informative message when pstring is NULL. [empty commit message] commit ddc681c6a5de3aee386cf990428dcfba95d32369 Author: athena Date: Sun Oct 19 16:00:07 2008 -0400 Fix incorrect alignment in dftw-generic. Multithreaded dftw-generic is supposed to process only a slice of the array, but we were planning with the alignment of the original array rather than the slice. This led to unaligned accesses in certain obscure situations. commit d35ad1d719daf7a8b1c7658b88bf962e86dd050a Author: Matteo Frigo Date: Mon Aug 18 17:27:26 2008 -0400 Paranoia: do not create OS threads while holding locks. Glibc at least plays silly games such as keeping a global variable that records whether there is more than one thread in the process, and it does not perform atomic operations if the variable says that there is only one thread. Who knows how this interacts with creating threads while holding a lock. Some day some genius will come up with some ``optimization'' that breaks everything. commit 9ae439e37bf0cb024de699e15f98b5f5074d116c Author: athena Date: Wed Aug 6 07:41:46 2008 -0400 Welcome to the quadcore era [empty commit message] commit be6af68ab86ada70645a79ef9ac5da11ea787eba Author: stevenj Date: Mon Jun 16 16:46:39 2008 -0400 backslash is technically not allowed in "echo" arguments; thanks to Debian Bug#486046 for pointing out problem and solution (and Raphael Geissert and Vincent Zweije, in particular) [empty commit message] commit fd1ef499dca6f079bd9980cbecd1499e08fe99d0 Author: stevenj Date: Sun May 4 12:15:24 2008 -0400 note problem with test program in gcc 4.1.2-4.2; thanks to Raymond Rogers for reporting it [empty commit message] commit 771f298272494232c994bdca79978f00cbd0a0ac Author: stevenj Date: Fri May 2 19:21:30 2008 -0400 output count of constants along with other statistics [empty commit message] commit 8a8a1bb47539bb8be624af291c28c77cc541ba4e Author: athena Date: Sat Apr 19 14:15:03 2008 -0400 Lower priority of unaligned SIMD codelets. List t1[fb]uv_* codelets before the corresponding aligned codelets, since the estimator picks the latter ones in case of a tie and aligned codelets are preferable. In other words, this is a hack. commit d4d0ed3f7cee7e5c06409b3162fbcf4bfd42fea9 Author: Matteo Frigo Date: Sat Apr 19 08:55:46 2008 -0400 There is no point in using higher radices for unaligned codelets. [empty commit message] commit c09bbbbc4d2c7236b861b7b2f67b77d4821bb8fc Author: stevenj Date: Fri Apr 18 19:01:27 2008 -0400 support generating loopless, strideless r2r codelets [empty commit message] commit 5d2811a46f654c7dbbade5d2d65921e056c6b3a2 Author: stevenj Date: Fri Apr 18 19:00:25 2008 -0400 added Magic.threemult to use 3+3 complex-multiply variant when possible [empty commit message] commit b21cf57a0c4d5711ea4cdb085b068b366f93c916 Author: stevenj Date: Thu Apr 10 19:53:31 2008 -0400 fix documentation bug - export_wisdom_to_string returns a string that should be deallocated with free, not fftw_free (thanks to Stein Vidar Hagfors Haugan for the bug report) [empty commit message] commit 2a8ac0ba37e9087af75bd0edc9563279424c909d Author: stevenj Date: Mon Jan 21 01:11:44 2008 -0500 bsd calls x86_64 "amd64"; thanks to Fernando Herrero Carron for the bug report [empty commit message] commit 9d150bc32eea5f0404562a6e26c8f5af7571174c Author: stevenj Date: Tue Jan 1 12:29:56 2008 -0500 fix typo in manual, thanks to Yinon Ehrlich [empty commit message] commit a46838157abb2d1d08cf36d882b6e6979c90a059 Author: stevenj Date: Mon Dec 3 13:57:13 2007 -0500 note problem with gcc 3.4.4 on x86_64, thanks to Uwe Hollerbach for the report [empty commit message] commit 14def93d5b1ba54d64d86d0b9635dfbb41795197 Author: stevenj Date: Tue Nov 13 16:19:22 2007 -0500 bump shared-lib revision [empty commit message] commit ac56042c777020dd5edd04a142c522d0ea3d55d9 Author: stevenj Date: Tue Nov 13 16:16:49 2007 -0500 update NEWS for alpha3 [empty commit message] commit d90bca8d53eaa2ecde6c54123b290ea2cccfeda1 Author: stevenj Date: Tue Oct 2 13:53:04 2007 -0400 fixed URL [empty commit message] commit 2e992067b2172b9ef10c068d5b3b1f5f0e336790 Author: stevenj Date: Mon Sep 17 19:38:29 2007 -0400 added missing prototype [empty commit message] commit a9a3696f1daa50cfcea8e9264912fd7010f59edf Author: stevenj Date: Tue Aug 14 22:35:06 2007 -0400 terminology tweak [empty commit message] commit 7e0c1a370fdec22df30379eb952943a8b9f16080 Author: stevenj Date: Wed Aug 1 18:44:21 2007 -0400 check for pathscale compilers (thanks to Julian Cummings) [empty commit message] commit dabff4a5303cc1bde1a1ac88508f3301caeb6e9f Author: athena Date: Sat Sep 15 18:02:32 2007 -0400 Avoid possible conflict with Windows include files. [empty commit message] commit 1090ecb91cd0da452cca31e8ef926494895a83bc Author: athena Date: Tue Aug 7 21:26:05 2007 -0400 Distribute codlist.c for SIMD codelets in the commercial tarball. [empty commit message] commit 9c132ba2c88c1d5f9e35ad89c8d9e7b012f3741f Author: stevenj Date: Wed Aug 1 10:33:41 2007 -0400 some documentation clarifications, and documented FFTW_WISDOM_ONLY, at the suggestion of Mario Emmenlauer and Phil Dumont [empty commit message] commit 79a73f23fc62044a1edd421d031c35d9d17345dc Author: stevenj Date: Tue Jul 31 16:52:56 2007 -0400 bug fix in test program for vrank-3 transpose plans with vl=1 [empty commit message] commit 13dcde33151a281f5dd4084f3a65277223d444eb Author: stevenj Date: Sun Jul 29 17:02:46 2007 -0400 only run mpi checks for --enable-mpi [empty commit message] commit da920b9d9649c89291980b342a38cd31e689d04c Author: stevenj Date: Sun Jul 29 16:45:30 2007 -0400 check for NULL return from spe_context_create in case SPE_MAP_PS not supported [empty commit message] commit 8b5208ab2d26b33f10864d23ae032a575877cdb3 Author: stevenj Date: Sun Jul 29 15:56:57 2007 -0400 use problem-state pointer to write SPE mailbox with lower latency (makes a significant performance difference for N < 32k), thanks to Jan Wagner for suggestion [empty commit message] commit 35435685af71440fc9601b845163491e61845b4b Author: stevenj Date: Sun Jul 29 14:22:08 2007 -0400 port cell code to SDK2.1 (libspe2), since libspe1 API is deprecated and can't be used in code that also uses libspe2 API [empty commit message] commit 21dc1b9f90f96120a92469077cabfd80dd7fcb70 Author: stevenj Date: Sun Jul 29 11:46:24 2007 -0400 bug fix: ego->W allocated with cell_aligned_malloc, so deallocate with free, not X(ifree0) [empty commit message] commit 7c9f576ed6672631a9d36698f5d9824d173e06ea Author: stevenj Date: Mon Jul 2 15:57:12 2007 -0400 removed obsolete reference to CVS id [empty commit message] commit 2efeadcf8d2b6562d8c18707a0b7eb2e3e5f73d3 Author: athena Date: Mon May 21 14:25:39 2007 -0400 cycle counter for sun compiler [empty commit message] commit 0b59ce4b61ae5c052d9c673807e7b3386d7bdaa2 Author: stevenj Date: Wed May 9 19:49:11 2007 -0400 use __inline instead of inline for AIX routines (__inline is supported by gcc and xlc, whereas apparently "inline" is only supported by xlc if you specify -qlanglvl=stdc99 or similar); thanks to Jeff Haferman for the bug report [empty commit message] commit a3dc6f8631568cca3039a6932aa4a66e46456a79 Author: stevenj Date: Mon Apr 30 15:37:56 2007 -0400 fixed incorrect type prefix (fftw_ vs. X(...)) in mpi/wisdom-api.c; thanks to Eric A. Borisch for the bug report [empty commit message] commit 122d2b4a77a11b949e61e503681975f2da3d7d4f Author: stevenj Date: Wed Apr 25 21:21:39 2007 -0400 some cleanups in MPI make check [empty commit message] commit 4d26d141fb5e018b49133b1e080acbff744d97c0 Author: stevenj Date: Wed Apr 25 21:19:27 2007 -0400 re-enable heuristic in the common case where we are not compiling for Cell [empty commit message] commit 28a27bde79e55d51dd1fb81d82ca418587106a62 Author: athena Date: Tue Apr 24 17:42:43 2007 -0400 Removed duplicate codelet names, was breaking linker. [empty commit message] commit 1a4a3dcbbe5a046f07654fa3734a5b3568d51b32 Author: stevenj Date: Tue Apr 24 11:38:16 2007 -0400 added more codelets of sizes 5/10/20/25 to improve speed for round decimal sizes (speed improvements of 10-20%, at cost of 10-30% in library size) [empty commit message] commit 35443ed785a0ce0a05e16d1f6419769f7641f415 Author: stevenj Date: Sat Mar 24 18:40:47 2007 -0400 for 1d prime sizes, punt and return serial plan [empty commit message] commit 3cf27d0073f9f911a2b15283b0d1acebeaf7b599 Author: stevenj Date: Sat Mar 24 18:24:55 2007 -0400 output reminders of the problem during bench --verify [empty commit message] commit e68227acb0ebf9ad3cb0b022382c6df9fcf0d8b1 Author: stevenj Date: Sat Mar 24 18:10:24 2007 -0400 bug fix - missing solver->destroy initializer in rdft2-rdft [empty commit message] commit 59a3e77ab1cba10afa53a627849abef6dd93152d Author: stevenj Date: Fri Mar 23 11:12:19 2007 -0400 -static, in --enable-debug, doesn't work on MacOS X (according to Daniel Oberhoff) [empty commit message] commit 1bcacddfa919627af62568a28b0713b368549612 Author: stevenj Date: Wed Mar 21 22:23:06 2007 -0400 fix MPI r2c/c2r to work with howmany > 1 [empty commit message] commit 86e99768530258b6184733a382920feae222ae55 Author: stevenj Date: Wed Mar 21 18:44:41 2007 -0400 rm MPI version from TODO [empty commit message] commit b55ed34cb35d64e452aac41b5661536d75c492d4 Author: stevenj Date: Wed Mar 21 18:34:40 2007 -0400 added 'make bigcheck' for MPI (no paranoid-check, unfortunately), and properly get MPIRUN from configure [empty commit message] commit e11b28e739bf5b888cfdf0ec97337166fbb6c425 Author: stevenj Date: Wed Mar 21 18:23:18 2007 -0400 bug fix - incorrect local_size returned for 1d bigvec case [empty commit message] commit 3c4171a56630a623798d71e1a6218c1400ea3e46 Author: stevenj Date: Wed Mar 21 03:13:54 2007 -0400 hack to specify MPI_TRANSPOSED_IN/OUT via "[" and "]" in libbench2 problem [empty commit message] commit b6643c4d6de6ac41e771a65accc67af6d515009f Author: stevenj Date: Wed Mar 21 02:58:11 2007 -0400 added MPI 'make check', still needs a bit of work [empty commit message] commit 5c4ca6bf40ab9683f717ef89a5bbb2c7da031680 Author: stevenj Date: Wed Mar 21 02:47:10 2007 -0400 bug fix in r2r transposed-input case [empty commit message] commit 518bfe4ddbe9a727866374bb0b0fb49a2d0a9f2b Author: stevenj Date: Wed Mar 21 02:46:25 2007 -0400 don't output more than 300 erroneous outputs (unless verbose > 2) [empty commit message] commit 5ae1f03689a0f37d5db6becf54c8e54395541407 Author: stevenj Date: Wed Mar 21 01:48:54 2007 -0400 fixed bug in transposed-in c2r MPI transforms ... seems to be working, finally [empty commit message] commit 6ff00891c3f7fcfe5399e652b9aeb1538bf9c8d6 Author: stevenj Date: Wed Mar 21 00:41:32 2007 -0400 some fixes to MPI r2c/c2r transforms with transposed output/input [empty commit message] commit fc68b9bdd4975fec0d3f9b9ef6a2d9e052f8e7ce Author: stevenj Date: Wed Mar 21 00:40:25 2007 -0400 typos [empty commit message] commit 75dce53511a209c32f881a782af96bf68fdf41af Author: stevenj Date: Tue Mar 20 19:53:02 2007 -0400 bug fix for mpi-bench with r2c/c2r: allocate a little bit extra to make sure that padding is allocated [empty commit message] commit 1720fcb4dc2220e66e50a2baa9201f6c58913bf4 Author: stevenj Date: Tue Mar 20 19:19:13 2007 -0400 fix typo, thanks to Ernest Turro for the bug report [empty commit message] commit 3a9a95e347c10d98ad7d7ef0c3dca97217e2137a Author: stevenj Date: Tue Mar 20 01:39:06 2007 -0400 spacing tweaks [empty commit message] commit 27cc0f277fb7839e10996eb97c07e4ea9e5bb94c Author: stevenj Date: Tue Mar 20 00:53:11 2007 -0400 Ralf Wildenhues is the one who pointed out that the self-communication could fill in the stalls in the pairwise schedule [empty commit message] commit 3879a995d7146eb6be6ab3df826ebdf2660451f5 Author: stevenj Date: Tue Mar 20 00:22:25 2007 -0400 add TRANSPOSED_OUT/IN support for r2c/c2r, respectively [empty commit message] commit 5a4f8df7a48f55926d1a2017e234903e75fbf35b Author: stevenj Date: Mon Mar 19 21:45:34 2007 -0400 yikes! fixed likely deadlock bug in MPI [empty commit message] commit e5514b08ccfb3c99dfa7034276872af1e3a15b84 Author: stevenj Date: Mon Mar 19 21:38:52 2007 -0400 comment [empty commit message] commit 2ccef4a6915eeebe969120c75c5790791905fd37 Author: stevenj Date: Mon Mar 19 21:30:44 2007 -0400 s/alpha1/alpha2/ [empty commit message] commit 4c069ca435d517243da0ea52594b8101723303b1 Author: stevenj Date: Mon Mar 19 00:39:47 2007 -0400 include README in dist tarball [empty commit message] commit ea9cd7ed69c82e7b129bf88b99dc58238d856c0c Author: stevenj Date: Mon Mar 19 00:35:43 2007 -0400 added MPI r2c/c2r transforms, some more documentation [empty commit message] commit 539fd2ff41bbf5d9955ff83880d983d422e4f4bd Author: stevenj Date: Sun Mar 18 23:14:29 2007 -0400 set version to 3.2alpha2 [empty commit message] commit 5b7625b7daebd8aba2e0a876083a944e2c7b520e Author: stevenj Date: Sun Mar 18 19:12:18 2007 -0400 changed --enable-mips_ps to --enable-mips-ps; added Cell section to manual (from README.Cell); many minor updates to manual [empty commit message] commit c8cd95869bb81b8d85d87a91e0d65402f9de2288 Author: stevenj Date: Sun Mar 18 15:27:06 2007 -0400 whoops, need to sync costs in problem_mpi_rdft [empty commit message] commit dfc055b714f7d4b63b6615bb4b00c86d1600b7de Author: stevenj Date: Sun Mar 18 12:44:49 2007 -0400 documented guru64 interface [empty commit message] commit e6a8b5ed239bd9e150f62c8f773e0dcdc97df31a Author: stevenj Date: Sun Mar 18 02:57:46 2007 -0400 typo [empty commit message] commit 4625ba2558f8f51201b06cc14102507dd3f2731d Author: stevenj Date: Sun Mar 18 02:45:09 2007 -0400 bumped copyright year to 2007 [empty commit message] commit 66392e6b7c997772c49e9c38d275fe79cc25ed33 Author: stevenj Date: Sun Mar 18 01:41:40 2007 -0400 noted CodeSourcery in AUTHORS [empty commit message] commit 2c18cc0507bb6ea17abd5d54bacf15bd7ccbca13 Author: stevenj Date: Sun Mar 18 01:25:00 2007 -0400 more MPI documentation [empty commit message] commit 498f7ef52ac60aa1467d76bbfbd0d2224b9ccb10 Author: stevenj Date: Sat Mar 17 23:15:04 2007 -0400 added MPI multi-dimensional rdft solvers & tests [empty commit message] commit 871ff1554eded2f68e184ecff1d3befd19aa2679 Author: stevenj Date: Sat Mar 17 22:52:00 2007 -0400 whoops [empty commit message] commit 5a46acce32021f8bcdf12188ca3d764ce7f1cc85 Author: stevenj Date: Sat Mar 17 22:43:54 2007 -0400 clarification - fftw_mpi_init should be called before importing wisdom [empty commit message] commit 3e2d1704698a4609579e332b904502f5b30370fa Author: stevenj Date: Sat Mar 17 19:49:37 2007 -0400 kindx/y/z -> kind0/1/2 for consistency [empty commit message] commit 73c018e5b29c759aaf1012ee39853b025024334c Author: stevenj Date: Sat Mar 17 19:34:02 2007 -0400 typo [empty commit message] commit 1d9eeb0231c02f554470a9b6150b07df35e85a4a Author: stevenj Date: Sat Mar 17 19:14:16 2007 -0400 some refactoring in preparation for mpi-rdft [empty commit message] commit 3a5f38381e0f65c6da82ab93eefe1be2789c9749 Author: stevenj Date: Sat Mar 17 18:12:45 2007 -0400 documented more stuff for MPI [empty commit message] commit f833ef7087c898b684d1e0945fb28164e7d5fc02 Author: stevenj Date: Sat Mar 17 15:41:23 2007 -0400 added NEWS for 3.2alpha [empty commit message] commit 75d1f8189e12f1104a11d92da913592e69b37227 Author: stevenj Date: Sat Mar 17 14:50:22 2007 -0400 documented MPI transpose routines [empty commit message] commit 4fdc9e45f4c6f587f12edb5c0bbe0c60a499d0a9 Author: athena Date: Sat Mar 17 08:57:30 2007 -0400 Removed unused variables [empty commit message] commit a1bd09375e2342d3dec8dbaba75321c278b50861 Author: athena Date: Fri Mar 16 14:47:10 2007 -0400 Preparing for interim release of Cell code. [empty commit message] commit bd1f6de1d0c69ee9a7b7be715797ae2e5cb28ed0 Author: athena Date: Thu Feb 8 12:23:43 2007 -0500 Added README.Cell [empty commit message] commit 4125ae1b42049d9828b51cb9f45398601fa25e5c Author: athena Date: Sat Mar 10 19:17:40 2007 -0500 Synchronized with main branch [empty commit message] commit fa8f1748c92e9255b456b995a9c2d439110fb1b5 Author: athena Date: Mon Jan 22 17:43:56 2007 -0500 Adapted vrecur heuristic to Cell. [empty commit message] commit 31c0788d89e5d2db56d1949df2e61171360ad282 Author: athena Date: Thu Jan 18 20:29:22 2007 -0500 Increased MAX_N to 32K/sizeof(R). [empty commit message] commit e0e08abd04fec6f16a5aa4b8dbec2f614b845bde Author: Matteo Frigo Date: Thu Jan 18 13:43:51 2007 -0500 Added pointer to solver->destroy which is used in the Cell branch. [empty commit message] commit dbb33d0b51897749feff0ef26e63af7769cd4fa5 Author: athena Date: Thu Jan 18 12:09:26 2007 -0500 Updated copyright notices [empty commit message] commit bdb23b08725ce86827dc72f39ace915e594e0ddd Author: athena Date: Fri Jan 12 12:54:43 2007 -0500 Use mfc_read_tag_status_all() instead of spu_mfcstat(2), since the former seems to be standardized. [empty commit message] commit d958d4081d9d131a8c331795b51c38392e038f5f Author: athena Date: Thu Jan 11 14:55:08 2007 -0500 Silence some int/INT warnings. [empty commit message] commit a465f3a820c88855cec17a8b62093f151cf4a75b Author: athena Date: Wed Jan 10 18:19:53 2007 -0500 Note incompatibility of --enable-cell with --enable-threads [empty commit message] commit f8d67adca8de472032a5bb176caef2df069ac301 Author: athena Date: Wed Jan 10 17:57:10 2007 -0500 forgot to add file [empty commit message] commit 2b494f41afa950fa4174d4588070c49879c89acb Author: athena Date: Wed Jan 10 17:45:16 2007 -0500 64-bit cleanup [empty commit message] commit d4d591f6547fba8ab96d982a76747e0248e94031 Author: athena Date: Wed Jan 10 13:47:20 2007 -0500 Use -mcpu=cell where appropriate. [empty commit message] commit bbff6b92337e5462c8e01c3c6f200f0841422229 Author: athena Date: Tue Dec 26 21:35:59 2006 -0500 synchronized with main [empty commit message] commit 011961c240152fa9ff6c791c430f0104ca2dada7 Author: athena Date: Sun Dec 24 20:58:25 2006 -0500 synchronized with main branch [empty commit message] commit 563b10fee948f8cf7089fc91f97ccd07b92169ae Author: athena Date: Sun Dec 24 13:47:37 2006 -0500 synchronized with main branch, updated to new sdk. [empty commit message] commit 8a7076d3c731fa116d61cc072416ab46beddfc03 Author: athena Date: Thu Dec 21 17:17:41 2006 -0500 removed obsolete file [empty commit message] commit b4139c9ef725c1910b97628667ab1fa9ab98e635 Author: athena Date: Tue Dec 19 15:17:20 2006 -0500 synchronized with main branch [empty commit message] commit 7df6b5623e1db3fe7e9dff26fd4d23f484495649 Author: athena Date: Tue Dec 19 11:27:38 2006 -0500 Synchronized with main branch [empty commit message] commit 6ea2fd75cd1aae82fe1d1a510f104646ab7aa7c9 Author: athena Date: Fri Dec 15 16:04:31 2006 -0500 resolved conflict with main branch [empty commit message] commit 65515a62ffff8fb5649200627cb0c93ef813a9c0 Author: athena Date: Fri Dec 8 14:43:50 2006 -0500 Fixes for compilation in subdirectories [empty commit message] commit d39013569f9cb742b50238ca622f3bd52cade5b5 Author: athena Date: Fri Dec 8 12:46:00 2006 -0500 Silence warning [empty commit message] commit 565f828f3b33be86ac3263046fae490fda62d059 Author: athena Date: Fri Dec 8 12:24:19 2006 -0500 silence warning [empty commit message] commit 5ae3fbed814693f0172abe16b6875b17df64616d Author: athena Date: Thu Dec 7 15:18:17 2006 -0500 Commented a particularly obscure piece of code. [empty commit message] commit b4f78f41fb5960b0ec300d23d6653e80f498eee2 Author: athena Date: Thu Dec 7 11:53:29 2006 -0500 Reorganized, clarified conditions for applicability of the DFT solver. [empty commit message] commit 4d31f1609b233b3951f5f660bc7d2f8f98d7bd38 Author: athena Date: Mon Dec 4 21:33:49 2006 -0500 Minor changes [empty commit message] commit b4cd386c5a2ebd85f8c53be407642199914c26ed Author: athena Date: Mon Dec 4 17:43:28 2006 -0500 Clarified comment [empty commit message] commit aafb3252fb01b21a852ed938b9bc6b2e8b852517 Author: athena Date: Mon Dec 4 16:49:06 2006 -0500 Less incorrect conditions for fitting into local store. [empty commit message] commit 985d9f04682d20ed877a04bfc1d5c0cb73af903c Author: athena Date: Mon Dec 4 16:08:24 2006 -0500 Implemented DECDIF+TRANSPOSE on Cell [empty commit message] commit 00969378eff1f94e8858105bd22015e622da58d0 Author: athena Date: Fri Dec 1 17:42:55 2006 -0500 relaxed conditions of applicability of SPE [empty commit message] commit 4df1c8eb6351f9f6dd2e869a33044d8b36f8dd54 Author: athena Date: Fri Dec 1 16:28:10 2006 -0500 tweaks [empty commit message] commit 92a232ae0edf2fe3f92ca5485861d866aa4c96b0 Author: athena Date: Fri Dec 1 14:35:17 2006 -0500 Implemented Cell opcounts [empty commit message] commit b2e38a76dac60881d4e14e3d9a6ad2b236086a68 Author: athena Date: Fri Dec 1 13:38:44 2006 -0500 minor cleanup [empty commit message] commit 0ab21aa8b736fd4002a92db39449d9e140c39606 Author: athena Date: Fri Dec 1 11:16:52 2006 -0500 use [c0 s0 c1 s1] format for Cell twiddle factors, rather than [c0 c1 s0 s1]. This makes life easier and there is no speed penalty on Cell (unlike Altivec). [empty commit message] commit d080990161fe731d5e1af92f9534c4bd86e06d1f Author: athena Date: Wed Nov 29 18:02:54 2006 -0500 Implemented SPE-accelerated copies [empty commit message] commit 23f9c35ec5d4c123a664c907e5aaca2d9704888c Author: athena Date: Wed Nov 29 12:11:08 2006 -0500 allow SPEs to compute vrank-0 problems. [empty commit message] commit 2f71518adcd364d1cc45272d4f254028c779ff83 Author: athena Date: Tue Nov 28 18:03:07 2006 -0500 eliminated DMA lists [empty commit message] commit 8620a7ab00d1bd4d288513998c82d14cce47b98f Author: athena Date: Tue Nov 28 14:22:05 2006 -0500 Conservatively force all dimensions to be 0 (mod VL) in cell, since otherwise it is too hard to get all cases right. [empty commit message] commit 8343bf57ddaff7d35756635dd9a4a6aa8d31e964 Author: athena Date: Tue Nov 28 12:39:01 2006 -0500 Check alignment of strides when transposing on Cell. [empty commit message] commit 7e28410dc1fbaa1bbf53007869937b84d44c37f3 Author: athena Date: Tue Nov 28 12:19:09 2006 -0500 consistent usage of FFT_SIGN [empty commit message] commit 66491d40310d02c982e54ebee2f9f6c7cb0ae7db Author: athena Date: Tue Nov 28 11:35:38 2006 -0500 clever transposition algorithm without buffering [empty commit message] commit 33e68acd59c892e969a722ded4292aef57fab0a9 Author: athena Date: Mon Nov 27 14:08:28 2006 -0500 Fixed tracking of dependencies [empty commit message] commit 1eab08a3242ae935de04debda8abee056fb3d978 Author: athena Date: Mon Nov 27 14:03:53 2006 -0500 implemented 1D transforms, various tweaks [empty commit message] commit 14891530341581ba7a2422754d83d0c621c71daa Author: athena Date: Wed Nov 22 15:43:36 2006 -0500 no need to poll mailbox on spu side [empty commit message] commit bc0822718ba87089828bd9362b112c8a9bef878c Author: athena Date: Wed Nov 22 14:08:24 2006 -0500 increased maximum size handled by spe [empty commit message] commit 0fb0144374b505502ed768b7f13c191d775bf870 Author: athena Date: Tue Nov 21 16:23:17 2006 -0500 allow vrank<=2 problems in SPEs to avoid the vecloop overhead (grrr...) [empty commit message] commit 26017102cbb70e6e0292087249267b6560414f1c Author: athena Date: Mon Nov 20 14:41:45 2006 -0500 added emacs mode [empty commit message] commit ae2ed8341f9860cd659dc62def4f0c3712e856ab Author: athena Date: Mon Nov 20 09:34:12 2006 -0500 revised transpose, cleanup [empty commit message] commit 7de0b7799021747ff1eef31aca59f7b229750e93 Author: athena Date: Sun Nov 19 20:20:23 2006 -0500 added file [empty commit message] commit 7383afd328c1e98b5ec25c32094a28b0312fb7b0 Author: athena Date: Sun Nov 19 20:18:35 2006 -0500 removed file [empty commit message] commit fa6b1a88cae92cf2e4e5ab247d7a9d93e722c405 Author: athena Date: Sun Nov 19 20:15:38 2006 -0500 better automake integration [empty commit message] commit d1af1e31717e8df8126e7f44197d10e652adbaab Author: athena Date: Sat Nov 18 20:14:29 2006 -0500 changed algorithm for computing chunk size [empty commit message] commit 631ad019b179b1e260a5197ef0012e38e5adfb9c Author: athena Date: Sat Nov 18 19:18:11 2006 -0500 implemented transpose, various fixes. [empty commit message] commit 4d0d4332d36eb952e188eb44f039249a78dc2545 Author: athena Date: Thu Nov 16 16:33:50 2006 -0500 Added explicit destructor to all solvers to help with the cell port. [empty commit message] commit c668de4bc5e8677b2c78830b34214aa832631281 Author: athena Date: Thu Nov 16 15:22:15 2006 -0500 consistent use of #if vs. #ifdef [empty commit message] commit 34192d4eaa06426a1168b5ac743332adb1cd6039 Author: athena Date: Thu Nov 16 15:15:34 2006 -0500 Additional Cell double codelets, better automake integration [empty commit message] commit 4b19e0b192a7f797d21adc5b8b39b126bf809e53 Author: athena Date: Thu Nov 16 12:43:34 2006 -0500 Use dma lists. [empty commit message] commit 398bcee9091aa5c56d753877957f367e7041e6a7 Author: athena Date: Thu Nov 16 11:03:46 2006 -0500 converted to automake [empty commit message] commit caf4303b1448b64d7f82cf9ba36eee8071674421 Author: athena Date: Wed Nov 15 18:00:12 2006 -0500 Initial port to Cell Broadband Engine. [empty commit message] commit 45eebf6ef925ca51e2749ea8658cfb39216fd5b7 Author: athena Date: Wed Mar 14 10:19:53 2007 -0400 Remove Codesourcery contributions from commercial tarball. [empty commit message] commit 71e740a2b810c009c637addb3f87bba3338fa0d2 Author: athena Date: Wed Mar 14 08:59:18 2007 -0400 Added FFTW_WISDOM_ONLY, at the request of Phil Dumont. [empty commit message] commit 8c4485fd3fffb1cfd1aacddfecb58250b5b69607 Author: stevenj Date: Tue Mar 13 00:32:05 2007 -0400 fixed potential MPI deadlock if timer misbehaves [empty commit message] commit 193dbead568fc6582fce99e2b1824f7aac2c66b1 Author: stevenj Date: Mon Mar 12 23:31:52 2007 -0400 more work on MPI documentation [empty commit message] commit 4374a330a301a85267faf67eb71833daeeeefa72 Author: stevenj Date: Tue Feb 27 13:48:43 2007 -0500 index [empty commit message] commit 8dd26fb6008dec917db3ff3f34bbd437b21ba12f Author: stevenj Date: Tue Feb 27 13:46:45 2007 -0500 rename "new-data execute" to "new-array execute", since of course you do not need a new array to have new data [empty commit message] commit 89ebde1693423d225eb9a50b56dc0a5703d30384 Author: stevenj Date: Tue Feb 27 13:43:55 2007 -0500 consistency with manual (guru execute -> new-data execute) [empty commit message] commit 8cce0d9c67bf193b5cf177483ad0500e71a18a84 Author: stevenj Date: Tue Feb 27 13:42:24 2007 -0500 texinfo fixes; renamed "guru execute" section to "new-data execute", since previously it seemed to lead to endless confusion with the guru planner API [empty commit message] commit 7188f6250c91692fb25976542298900e557d092a Author: stevenj Date: Mon Feb 26 18:57:11 2007 -0500 consistently use n0/n1/.. everywhere instead of nx/ny/... (for consistency with d-dimensional case n[0], n[1], ...) ... first start at MPI documentation [empty commit message] commit 385b92bc1fa159e0423f02059cd15c93b7444c92 Author: athena Date: Sat Mar 10 18:48:05 2007 -0500 Changed C++-style comment into K&R [empty commit message] commit 32f8fc24e66030c4e5fdc42b9ec503c50d163435 Author: athena Date: Sat Mar 10 18:47:12 2007 -0500 Forgot to add file [empty commit message] commit acf05fd6f7275e013b16abcfafbc2db7437145f1 Author: athena Date: Sat Mar 10 18:44:39 2007 -0500 Note removal of K7 support. [empty commit message] commit e768b9aeeddd3937eacf72bf4bcd1fe6b67681b8 Author: athena Date: Sat Mar 10 18:41:52 2007 -0500 Updated manual for MIPS PS [empty commit message] commit 56c7d29b2740a24da19b5c022569e60a9bf1abaa Author: athena Date: Sat Mar 10 18:37:07 2007 -0500 Adopted MIPS_PS patches from Codesourcery. [empty commit message] commit 117c18b54c2398c74c00d3f375e60e490cfd0a55 Author: athena Date: Sun Feb 25 11:34:51 2007 -0500 Incorrect initialization of win32 semaphores [empty commit message] commit 835fb99c05fc32b63c000aaa65fa8f098d66d1a1 Author: stevenj Date: Tue Jan 30 11:43:09 2007 -0500 win32 fixes (I think, still untested) [empty commit message] commit 22544bfee3ccdd6810c7f7b9552eb8ec67f58562 Author: stevenj Date: Fri Jan 19 17:31:47 2007 -0500 message-size heuristic in tranpose-recurse [empty commit message] commit c3f9a60853f7d021b8e2e84aca81167fe0742499 Author: athena Date: Tue Jan 30 08:53:55 2007 -0500 Threading layer for Win32, completely untested. [empty commit message] commit e9103c2fa36af2816f233d39aa4b4e6aad4bccd2 Author: athena Date: Mon Jan 29 14:26:30 2007 -0500 Check for EINTR after sem_wait(), as suggested by Chip Salzenberg. [empty commit message] commit 719f223ad7ec385208d4d10171374f44d6dcbfa9 Author: athena Date: Mon Jan 22 13:58:23 2007 -0500 Force vector recursion by means of a separate function pointer. I need this for Cell. [empty commit message] commit 44d62282fe44de7c794ce22ec8a5a3120e71d57f Author: athena Date: Mon Jan 22 09:28:35 2007 -0500 Merge multiplications by twiddle with multiplications by i for faster r2c transforms. [empty commit message] commit 37defea1b213e2cb3e5f73fc481e34551ca72e59 Author: athena Date: Sun Jan 21 19:02:44 2007 -0500 Disabled vector recursion, too messy. [empty commit message] commit f6f7ab5fd044a6ed0b9803c8ea10e176c37137dd Author: athena Date: Sun Jan 21 14:23:35 2007 -0500 Changed heuristics for vector recursion. As in fftw-3.1, NO_VRECURSE disables vector recursion. As an exception, however, vector recursion is allowed when the predicate VRECURSE_ANYWAYP is true. We need some form of vector recursion to obtain decent plans on Cell, and this solution captures the common cases without increasing planning time too much. commit 3612cb7be2fce875627ec720c48a70f9204b42f6 Author: athena Date: Sun Dec 17 22:31:17 2006 -0500 fixed hc2c for vector-recursion branch [empty commit message] commit af9505fcc532b01fb7d7d4e4df0793f1d58bbedd Author: athena Date: Tue Dec 5 12:52:36 2006 -0500 switch to default vector recursion [empty commit message] commit d49ea8d1b8d123219d25c7279a06f0146ff0020b Author: athena Date: Sat Jan 20 23:37:33 2007 -0500 Smarter algorithm for selection of nbuf. [empty commit message] commit 983a3c8a18351c2aa89b096d17419c8ecc8ee4eb Author: athena Date: Sat Jan 20 22:15:33 2007 -0500 Increased buffer sizes according to Moore's law. [empty commit message] commit 3063d37e369e9b607af9a1870c3e9c67966969d3 Author: stevenj Date: Fri Jan 19 16:02:00 2007 -0500 fix another MPI synchronization bug -- several more places where cost_hook must be called to synchronized process timings (sigh) [empty commit message] commit ed26acb97814e71ca8961385f95d136fb532d3e5 Author: athena Date: Fri Jan 19 12:08:07 2007 -0500 Set havewisdom=0 when calling forget_wisdom() in the test program. [empty commit message] commit 9c8fc20de720a1f8588230add1f732504a489797 Author: stevenj Date: Fri Jan 19 10:29:56 2007 -0500 remove redundant check [empty commit message] commit ea709110aaac1eac97acdc9e6d6dccb1a319f491 Author: stevenj Date: Thu Jan 18 22:37:59 2007 -0500 fixed potential (unlikely) bug in wisdom import (triggered when importing impatient wisdom after creating more patient plans, but apparently only for nonstandard configure.c configurations) [empty commit message] commit c30ae9a7d180707e86d8a42ce607c6e7717b49e6 Author: stevenj Date: Thu Jan 18 21:50:14 2007 -0500 added functions to gather/broadcast wisdom for MPI [empty commit message] commit a87ad4116c7bf1ac3e28709b2dc7a3f942beba34 Author: stevenj Date: Thu Jan 11 18:33:17 2007 -0500 whoops, another int/INT bug [empty commit message] commit 51ddf455e30f2f8448b94dc40b8a19a8f296067b Author: stevenj Date: Thu Jan 11 17:42:24 2007 -0500 whoops, fixed bug in transpose-recurse for r != m [empty commit message] commit d2550926efaedd18154f03ae20b464f57ebbc71f Author: stevenj Date: Thu Jan 11 17:25:36 2007 -0500 canonicalize mpi-transposed flags by setting TRANSPOSED_IN/OUT where possible [empty commit message] commit 0129b3159f5ffd78b1d5e8c99a80e5aac5ae1743 Author: stevenj Date: Thu Jan 11 17:16:24 2007 -0500 replace transpose-radix2 with much more general transpose-recurse solver [empty commit message] commit b5399f6884419e5aac9bd45b2f99a55c722dbae6 Author: stevenj Date: Wed Jan 10 20:23:48 2007 -0500 rename transpose-inplace to transpose-pairwise, as the algorithm is not restricted to inplace operation [empty commit message] commit 1db83491ac2308011e874a0e14867ab82285ca87 Author: stevenj Date: Wed Jan 10 14:39:08 2007 -0500 whoops, some int/INT bugs [empty commit message] commit 7c54c7285fedadb55997fa5032a86721a5d73c00 Author: stevenj Date: Tue Jan 9 18:50:07 2007 -0500 fix FAQ Makefile for vpath builds [empty commit message] commit 1f9ce0c767890a637491a26dc6d671cb48d899e1 Author: athena Date: Tue Jan 9 20:22:11 2007 -0500 Missing ``static'' keyword. [empty commit message] commit 5719264a71b3d5a725179d6c6f38fc9844f614c7 Author: athena Date: Tue Jan 9 20:13:18 2007 -0500 Minor cleanup. [empty commit message] commit 31f23769946e8cbd668eae280cf6fa5e0d731cc6 Author: stevenj Date: Tue Jan 9 00:04:03 2007 -0500 interleave twiddle mults with DFTs (should we use dftw?) [empty commit message] commit 5ee274d2bfff3ccfa48faf75d4c5ba4254b6403a Author: stevenj Date: Mon Jan 8 18:35:41 2007 -0500 simplified (and somewhat sped up) dft-rank1 by exploiting dft-rank1-bigvec [empty commit message] commit 6603c476a81bd7d9a84eeec0106ce87ea7af55eb Author: stevenj Date: Sun Jan 7 00:31:31 2007 -0500 rearranged TRANSPOSED format, numerous speedups Split the TRANSPOSED and non-TRANSPOSED rank-geq2 solvers, and changed the DFT TRANSPOSED format to be more like fftw2 (both globally and locally transposed). In general, more emphasis on arranging the data contiguously for the DFTs, and more flexibility in intermediate transposed formats. Also disable NO_SLOW when planning transposes, since otherwise non-square in-place transposes gratuitously put the planner in SLOW mode. Currently, dft-rank1-bigvec has 5 variants (or 10, if DESTROY_INPUT). It looks like only 2 of these are commonly used, so I should probably add some UGLY tags once I do more benchmarking. commit 8efa4e83812fc0d52b20291b0ae6b6d863d873b4 Author: stevenj Date: Thu Jan 4 19:13:17 2007 -0500 add bench_cost_postprocess to prevent deadlocks in mpi-bench [empty commit message] commit ad8fbe7775bfe2a214cefd3759493f11d3330532 Author: stevenj Date: Thu Jan 4 16:46:29 2007 -0500 whoops [empty commit message] commit f1d13c4b532737e65ce9f8cdb058875fed16aac7 Author: stevenj Date: Wed Jan 3 14:23:42 2007 -0500 pass proper pointer types as arguments, so that ACX_PTHREAD still works with C++ and -Werror (thanks to Ewald Arnold for the suggestion) [empty commit message] commit 85662c73ef1053f67e55830adb20a7660c7f546e Author: athena Date: Mon Jan 1 19:30:43 2007 -0500 Renamed [io]vs => [io]vs_by_nbuf, which is more appropriate and would have saved me 30mins debugging. [empty commit message] commit 011d6fa311a3126c66527f22f76a55acababb0f3 Author: stevenj Date: Mon Jan 1 18:52:38 2007 -0500 add --with-g77-wrappers option & always include g77 wrappers on GNU systems and/or with gfortran Upcoming GNU/Linux distros will most likely switch to configuring FFTW with gfortran by default, since g77 isn't even included with recent gcc versions. However, we still want to include g77-compatible wrappers in this case (two underscores) in addition to gfortran wrappers (one underscore) lest we silently break binary compatibility and provoke lots of annoying emails. commit fbb0f99f47d4c09c87cd81573b3532809b44fee1 Author: stevenj Date: Mon Jan 1 16:48:36 2007 -0500 use AC_HELP_STRING for --disable-fortran [empty commit message] commit 4c6880164b7e43be156bd10825038bc5fe83b9b3 Author: stevenj Date: Mon Jan 1 15:56:12 2007 -0500 terminology [empty commit message] commit ae75dc0d2a5fb8286ebadc5fa70a1ff2e17ed7ba Author: athena Date: Sat Dec 30 16:18:35 2006 -0500 Free buffers before calling cldrest. [empty commit message] commit 053f45629c9af2bc608086640e6684ef1e76bf0b Author: athena Date: Fri Dec 29 10:52:15 2006 -0500 Removed obsolete code. [empty commit message] commit e6ffd09841ff145db9112e4fca774cc3454e1170 Author: athena Date: Thu Dec 28 21:37:48 2006 -0500 Attempt to work-around old gcc bugs in a more efficient fashion that does not lose performance on newer gcc's. [empty commit message] commit b1d16645f02bf03f9934c6acfe86d41705734cf6 Author: athena Date: Thu Dec 28 16:10:33 2006 -0500 Make sure that the speed() input is zero even in paranoid mode. [empty commit message] commit bd281a3248526dd660f3cc5db5662a38af6aca70 Author: athena Date: Thu Dec 28 11:41:46 2006 -0500 cld0 and cldm problems must be tainted because they are used in a v-loop. [empty commit message] commit 762203e35e50a636ebbe34f1bb4a9a72dbdfceae Author: athena Date: Wed Dec 27 17:17:45 2006 -0500 Run paranoid-check in patient mode. [empty commit message] commit 13fcf5a8a0073c72a967a6b5c21009dc09b0e63e Author: athena Date: Wed Dec 27 10:51:42 2006 -0500 Fixed incorrect initialization to zero. [empty commit message] commit 957a6a68a80da76a90adfd5c50e6570a0102a174 Author: athena Date: Wed Dec 27 09:33:02 2006 -0500 Fixed wrong TAINT() [empty commit message] commit 131e00d9d05b13400d93ba18bddd02ee53db276a Author: athena Date: Tue Dec 26 22:50:28 2006 -0500 Grrrrr... [empty commit message] commit e30b1ccf6d58829fdae52ee072c605802f728761 Author: athena Date: Tue Dec 26 22:48:44 2006 -0500 Give up trying to verify rdft2 when vrank=-infinity. [empty commit message] commit 50b70cffda5f011216fd43162aa1b6b69f7ef912 Author: athena Date: Tue Dec 26 22:31:38 2006 -0500 typo [empty commit message] commit 4cdf2b4a16da17795eadebf1a1215e1060f1c573 Author: athena Date: Tue Dec 26 21:54:53 2006 -0500 Correctly verify rdft2 when vrank = -infinity. [empty commit message] commit a93befe83478f18c088fc474973185660c237154 Author: athena Date: Tue Dec 26 21:25:02 2006 -0500 rdft/buffered2.c now generates rdft2 subproblems, not rdft. The old rdft2->rdft reduction is now in rdft/rdft2-rdft.c and still does way too much. commit 994d04b97146dcfb849bc7d83136402cb1a0a070 Author: athena Date: Tue Dec 26 14:03:27 2006 -0500 Buffer the input in hc2r problems, as opposed to the output. [empty commit message] commit 47f2f5a1335a6cc49ed95c73655fa08a19958606 Author: athena Date: Tue Dec 26 10:02:59 2006 -0500 streamlined buffered solvers [empty commit message] commit add79ce24b3c20348a098ca15c7431ce95835a54 Author: athena Date: Mon Dec 25 16:08:22 2006 -0500 c++ compatibility [empty commit message] commit 7caedf2e6196972d2a5c4745ff5badc6856c1b29 Author: athena Date: Sun Dec 24 20:27:23 2006 -0500 Gratuitous renaming of directories and files since the old naming was becoming too inconsistent for my taste. [empty commit message] commit ab5397b31582ea9372345a7868a165a340a8aefb Author: athena Date: Sun Dec 24 20:11:50 2006 -0500 Fixed another dftw bug (sigh) [empty commit message] commit aa1c7cfcbfb0b6bedd716d02d2b84ea86432f03b Author: athena Date: Sun Dec 24 11:48:01 2006 -0500 Removed debugging leftovers. [empty commit message] commit 401d4cd84bec4348694725e268ccb78c5cbbb71c Author: athena Date: Sun Dec 24 11:34:17 2006 -0500 Moved dftw-generic* to new dftw protocol. [empty commit message] commit 91d2ba6242b230cf1195cf9c8e7d61f2ee226a28 Author: athena Date: Sun Dec 24 09:37:19 2006 -0500 Oops [empty commit message] commit ef28c24515ebda3edb9fcb0e67682b3e608f7e67 Author: athena Date: Sun Dec 24 09:31:46 2006 -0500 Fixed wrong verification of rank-1 rdft2 [empty commit message] commit a0f01cb9aaaa491d23686acf3ccedc38c47cd8bb Author: athena Date: Sat Dec 23 20:11:29 2006 -0500 minor tweaks [empty commit message] commit de3d507c8f454e02a382e0cbf7d9453f04621021 Author: athena Date: Sat Dec 23 19:50:03 2006 -0500 Removed obsolete items. [empty commit message] commit 67ca9cb9258b4fb320d26445040b6fae0e450594 Author: athena Date: Sat Dec 23 17:56:37 2006 -0500 Modified the problem_dftw invocation protocol. apply() now requires pointers to the beginning of the full array. Each thread processes a slice mb <= m < me. This protocol is consistent with the one used in hc2hc, where there is no other choice. commit 378686a490f47d469eedfb5383cb46f6500cf835 Author: athena Date: Sat Dec 23 16:18:25 2006 -0500 typo [empty commit message] commit a15a3176f43a12770d66407d77b3fc138f278a53 Author: athena Date: Sat Dec 23 16:06:56 2006 -0500 changed hc2hc twiddle storage to be the same as hc2c [empty commit message] commit a4d048b7080396fae83e41bd64c4740ba0ab9f7a Author: athena Date: Sat Dec 23 15:16:36 2006 -0500 Allowed extra_iter in dftw-direct. Rationalized twiddle factors in hc2c. [empty commit message] commit 4c0bf02653b7e58b218d47e0cf01d719edc1d015 Author: athena Date: Sat Dec 23 10:37:11 2006 -0500 Implemented unmentionable hack to use 4-way SIMD with an odd number of iterations. commit 992d3ce4a54640d5af4d942ef17eb880f56ec36e Author: athena Date: Fri Dec 22 22:13:30 2006 -0500 altivec support for new codelets [empty commit message] commit e0908cfd6fe22ae0544576667bec649b71dcb922 Author: athena Date: Fri Dec 22 19:09:15 2006 -0500 fixed incorrect computation of W [empty commit message] commit df8bd57748278b92e0975a66062bd71bb5ac2e8d Author: athena Date: Fri Dec 22 18:51:22 2006 -0500 Implemented 4-way simd hc2cdftv Also eliminated the twiddle_shift hack. A zillion changes dictated by this choice, which was in turn necessary for the hc2cdftv thing to work. commit 7bac8d1f715f737bfed8742521fe60d5dec6b963 Author: athena Date: Fri Dec 22 08:45:46 2006 -0500 Fixed verification of rdft2 problems with new format. [empty commit message] commit c18f29a56027a5e08aa164530d10ff55c1950170 Author: athena Date: Fri Dec 22 00:05:59 2006 -0500 Added file [empty commit message] commit aafef0ef88f37d8b0e63a31afec168dad67a29f4 Author: athena Date: Fri Dec 22 00:02:50 2006 -0500 Hmm, previous commit did not work [empty commit message] commit 21c810018e7f4993ebadf9a05682f3bd0a6d2c8f Author: athena Date: Thu Dec 21 23:58:33 2006 -0500 Added SIMD r2cdft codelets. [empty commit message] commit fe2f5075f1443d522b445b31027cacb32e8add18 Author: athena Date: Thu Dec 21 21:19:21 2006 -0500 Bug in buffering, grrr... [empty commit message] commit 32f34cf494321ef860f20924b84df527d63e0ce0 Author: athena Date: Thu Dec 21 20:58:14 2006 -0500 Oops, memory leak. [empty commit message] commit 179cfb2f9ddf45916458e2dfdd0e0adbcf762044 Author: athena Date: Thu Dec 21 17:12:31 2006 -0500 minor changes, cleanup. [empty commit message] commit 2505062c2e9ded3822b01c123e82033d37968917 Author: athena Date: Wed Dec 20 22:09:28 2006 -0500 Unified hc2hc-direct, hc2hc-directbuf. Cleanup. [empty commit message] commit 5f80c36202acc746148c007e394a4260457f1f60 Author: athena Date: Wed Dec 20 17:55:56 2006 -0500 removed obsolete rdft2-radix2 [empty commit message] commit 18d4fddebb71049478d41152af043e33ed90d014 Author: athena Date: Wed Dec 20 17:51:20 2006 -0500 implemented reduction rdft2->dft [empty commit message] commit f84c7e67e6c77dc3b8ef4c0703277aa884852ab0 Author: athena Date: Wed Dec 20 09:29:39 2006 -0500 Implemented buffered direct-r2c, direct-hc2c. Also, removed some old cruft: * okp() functions were never used and a pain to maintain---now they are gone. * ``m'' in hc2hc and hc2c codelets is now the number of iterations, not the ``logical'' m. commit de904f19b230a114ead0b9580646689ab8519a29 Author: stevenj Date: Tue Dec 19 17:07:04 2006 -0500 added memcpy-loop rank0 solver (it makes a 5-20% difference for transposes of large tuples) [empty commit message] commit d91736d4442e92910eabaa0e923d0cda833213cc Author: stevenj Date: Tue Dec 19 16:15:54 2006 -0500 new variable to disable libbench2's problem allocation during speed benchmarking (to benchmark MPI transforms where the array does not fit into the memory of a single process) [empty commit message] commit 8c1f9aabc4cd60f5509b287de2850c2767d07fd8 Author: stevenj Date: Tue Dec 19 14:55:08 2006 -0500 allow transpose-inplace to use input as scratch for DESTROY_INPUT plans (to avoid non-square in-place transpositions) ... on supersgj, the planner often prefers transpose-inplace to transpose-alltoall in this case (apparently MPI_Alltoall in LAM MPI isn't that great) [empty commit message] commit 762d58ccde3a29468b9b522c8426ba6f48f0e74b Author: athena Date: Tue Dec 19 17:07:14 2006 -0500 For some reason HB2 codelets were not generated. [empty commit message] commit 928be47a01cfc332b729fd60775949d699d60795 Author: athena Date: Tue Dec 19 15:12:39 2006 -0500 split rdft/direct.c into direct-r2r and direct-r2c, since the file was getting out of control. [empty commit message] commit cf38c33836313129b7e98c192434dae261777810 Author: stevenj Date: Tue Dec 19 02:59:35 2006 -0500 added dft-rank1 solver - MPI now supports 1d complex DFTs! [empty commit message] commit 061b341f302122d768db24c7aab043ade2e2dbb8 Author: stevenj Date: Tue Dec 19 01:27:20 2006 -0500 fftw_flops must call cost_hook directly; iestimate_cost always uses COST_MAX [empty commit message] commit ebf61714b949775e7004b86b828112ae82b69726 Author: stevenj Date: Tue Dec 19 01:16:54 2006 -0500 fftw_flops and fftw_estimate_cost must now be called from every process, to prevent deadlocks in the MPI code (since they sum/max the cost over all processes) [empty commit message] commit bea9d02f1cc9edd02ad6d30a11795bc11ff64d1a Author: stevenj Date: Tue Dec 19 00:55:34 2006 -0500 whoops, typo in assert [empty commit message] commit aee20bd2d616611547ef7826e5d30bf033994736 Author: stevenj Date: Tue Dec 19 00:51:07 2006 -0500 remove multiplication by FFT_SIGN [empty commit message] commit 8583a34cfe3ae51cd835c45d9035d80a0f944b52 Author: stevenj Date: Mon Dec 18 22:51:45 2006 -0500 need to synchronize ESTIMATE costs in MPI planner, and sum ESTIMATE costs for flop reporting: generalize measure_hook to cost_hook(..., {COST_SUM, COST_MAX}) [empty commit message] commit 97ebd8fa0c58fd24345e3386b28f1c7abba8cb8d Author: stevenj Date: Mon Dec 18 15:36:15 2006 -0500 previous patch slowed down transpose-alltoall when TRANSPOSED_IN and DESTROY_INPUT; now allow planner to choose old behavior in this case [empty commit message] commit 045a9c7e5b7ac5d91eb7567f34a2b4e307adeeeb Author: stevenj Date: Mon Dec 18 15:15:39 2006 -0500 transpose-alltoall doesn't require input to be destroyed if TRANSPOSED_IN is set [empty commit message] commit 43ab77408bc3d76457a0e89ad02aec84f4949bf3 Author: athena Date: Mon Dec 18 17:41:25 2006 -0500 Added t2-style hc2c codelets, fixed typos. [empty commit message] commit 7e431baa8e5da11432db111e201a4da9b19d6f49 Author: athena Date: Mon Dec 18 16:02:42 2006 -0500 Renamed certain variables to avoid calling an output stride `is'. [empty commit message] commit 141dcad10c248a45577b80c26d1e396530597d3b Author: athena Date: Mon Dec 18 15:54:43 2006 -0500 Oops---wrong stride [empty commit message] commit 23386506c8294fc1d61bc7cfcedb0bebc4e8fe60 Author: athena Date: Mon Dec 18 14:59:16 2006 -0500 Oops, forgot to add file [empty commit message] commit 8e69f0617fe6f90d09c23d4ce8f125f1822eb363 Author: athena Date: Mon Dec 18 14:17:02 2006 -0500 Renamed r2hc/hc2r codelets to r2c After the recent changes, r2hc/hc2r codelets became rdft2 problems, so I renamed them accordingly to r2cf/r2cb. Codelet parameters are now a real array and a complex array, instead of an input array and an output array, and forward and backward codelets have the same type, which removes some clutter from the rdft code. commit 91b8d21aa599744cf6f9bb2141bcd4193fcdb957 Author: athena Date: Mon Dec 18 10:48:07 2006 -0500 Implemented backward radix-2k rdft2. [empty commit message] commit c91a0bf1ed85466bcb46d2f55128399855c90f06 Author: stevenj Date: Mon Dec 18 13:56:09 2006 -0500 move extract_reim into kernel, since it is used by internal MPI stuff and not just in the API code any more [empty commit message] commit ab0e79e7a1319598924b4d434f1a0ce57bc58a43 Author: athena Date: Mon Dec 18 08:40:14 2006 -0500 Do not check r1==cr unless rnk>0 [empty commit message] commit 4a203a4d39cb5b02d1f6d83f2f525a6a6c0cf065 Author: athena Date: Sun Dec 17 21:03:50 2006 -0500 Implemented radix-2k RDFT2, forward only for now [empty commit message] commit 6d86c9dd27b6fbfb45faf91980565df40ec8d825 Author: stevenj Date: Mon Dec 18 01:23:45 2006 -0500 separate TRANSPOSED/SCRAMBLED flags internally (this is required so that dft-rank1-bigvec and the future dft-rank1 won't have incompatible SCRAMBLED formats) [empty commit message] commit 7920d86807a6fe9829cca1cb4e633ab3156c8b38 Author: stevenj Date: Mon Dec 18 01:02:27 2006 -0500 ops_add -> ops_add2 where possible, to shrink code [empty commit message] commit 81d5eddab81d4c0265863e1da6302b63fb1a9a80 Author: stevenj Date: Mon Dec 18 00:43:02 2006 -0500 added dft-rank1-bigvec solver (easy case for 1d parallel transforms) [empty commit message] commit bf7a77840dcbe0b1d5a8a1d7568877f093299e69 Author: stevenj Date: Sun Dec 17 20:42:21 2006 -0500 rewrote MPI stuff to use dtensor data structure A dtensor is an ordered tuple of triplets (n, ib, ob) giving the size of a dimension (n) and its input and output block sizes of a distributed row-major multi-dimensional array. An MPI DFT (etc.) is now specified in terms of dtensors, which provide a much more flexible data layout. For example, we can now describe multidimensional block distributions, which are important if the number of processors is greater than the size of any given dimension. Currently, we only have solvers for 1d slab distributions, and this is all that is supported in the basic and advanced APIs. The guru API allows one to specify more general distributions, however, which will be useful when/if we have solvers for this case. We now also don't need a TRANSPOSED flag, at least internally, since TRANSPOSED multi-dimensional DFT plans just correspond to dtensors where the input and output block distributions are different. Other changes include the use of the XM(foo) macro for X(mpi_foo). commit c9e4b997dd8cd38b753a8c40fb0004ab07124ca7 Author: athena Date: Fri Dec 15 16:01:23 2006 -0500 Distinguished mutexes from semaphores. The distinction is useful because the linux implementation of sem_post() in unnecessarily slow when semaphores are used for mutual exclusion. This change made spinlocks messier to implement, so I excised them. commit 352252ac74f50d01ae2c996f0072533f84c9a043 Author: athena Date: Fri Dec 15 12:46:11 2006 -0500 Use posix semaphores where available. Paranoid declaration of all shared variables as ``volatile''. Paranoid initialization of all shared variables within locks. commit 3364aa89b74e5e6a3514c653dc4ef4ebeebddae4 Author: Matteo Frigo Date: Wed Dec 13 20:12:13 2006 -0500 paranoia [empty commit message] commit 0be1cd7e754cf3b9550bcf6f60c2b31643d4512a Author: stevenj Date: Tue Dec 12 17:28:13 2006 -0500 punt on detecting unsolvable rdft2 problems; make r==iio rdft2 problems unsolvable, since it doesn't look like we've consistently checked for this case and it's not clear why we would want to support it (it was also not documented in the manual) [empty commit message] commit 8f3194d212eeb8c2382a60a4db59ff1cf935faef Author: athena Date: Sat Dec 9 12:14:13 2006 -0500 Obey stupid const rules [empty commit message] commit 1f7938759fd6c3a52293ffeffea1961692a22e72 Author: stevenj Date: Fri Dec 8 18:21:50 2006 -0500 added unsolvable check for rdft2 problem An in-place rdft2 problem is ill-formed if the real data, including the extra "padding" elements, do not coincide with the complex data. CHANGE: the new code considers all in-place split r2c and c2r problems to be ill-formed. Previously, these could be done, but only if the entire multi-dimensional array fit into the buffer, which is kind of stupid. I'm not sure it's worth it to even try to support the split in-place r2c case. commit e5241fedc1b2a9be448809abfc8b812e07598801 Author: stevenj Date: Fri Dec 8 13:47:53 2006 -0500 check in-placeness after joining taints [empty commit message] commit b7a9db50bbf343d80e6b5d0cbaae7cd4d8653f1e Author: athena Date: Fri Dec 8 13:43:44 2006 -0500 Grrr... paranoid-check was not testing in exhaustive mode [empty commit message] commit d34bae7a5b89e8298450b98759be43f22e7c99d3 Author: Matteo Frigo Date: Fri Dec 8 10:00:30 2006 -0500 Implemented PROBLEM_UNSOLVABLE. In-place DFT and RDFT problems with inconsistent I/O strides are now unsolvable, and we don't check for them any longer in solvers. While I was at it, declared all problem pointers to be ``const'' for extra safety. commit db6e8b81d60e8cbe9f49ac3035a5151759afc88b Author: Matteo Frigo Date: Thu Dec 7 20:13:46 2006 -0500 Avoid qsort'ing one element. [empty commit message] commit a6d29bce88258799bb4bc6ee27c36aa5ccf4cbcd Author: Matteo Frigo Date: Thu Dec 7 18:25:47 2006 -0500 In-place vrank>=1 is now applicable only if the problem is really in-place. [empty commit message] commit f0e0bda2dacfef167a5387c26d0c5631b59aaa0c Author: athena Date: Tue Dec 5 12:21:38 2006 -0500 unused variable [empty commit message] commit 07dc6817f4991f8690c6b6952bc3879c4712a624 Author: Matteo Frigo Date: Sun Dec 3 19:16:33 2006 -0500 Removed CVS $Id$ everywhere, since darcs does not update them. [empty commit message] commit 2cf2355d9987a09710a6b6b345cf232abf8c1a8b Author: Matteo Frigo Date: Sun Dec 3 16:11:17 2006 -0500 generalized dftw to encompass q codelets. As a side effect, q codelets are now threaded. [empty commit message] commit 942c7b34d673282b52aacbb51237b38f3ffef3f5 Author: stevenj Date: Sat Nov 25 16:34:38 2006 -0500 add missing __declspec attribute to threads API functions when compiling for Windows (thanks to Robert O. Morris for the bug report) [empty commit message] commit 8c4b9a9a79e7fdbbd7eab18f4aac4ac94c8ce2cb Author: stevenj Date: Mon Nov 20 17:39:20 2006 -0500 add AC_SUBST to AX_OPENMP, thanks to Sebastien Maret for the suggestion [empty commit message] commit 02d141e6157d606dce0bf146248958313ea19466 Author: stevenj Date: Mon Oct 16 23:02:29 2006 -0400 not gcc bug for MIPS (thanks to Jonathan Day) [empty commit message] commit 87fc8a66ef9cf8161a4cf23c0580f91ec9e86e25 Author: stevenj Date: Sat Sep 23 17:52:36 2006 -0400 in maintainer/debug mode, don't modify CFLAGS if they were explicitly set (-pedantic seems to cause problems with LAM's mpicc, so I need a way to override) [empty commit message] commit d1ebd06376db08bd5afecbe45d6059f60f7cd09d Author: athena Date: Wed Nov 22 18:14:47 2006 -0500 Removed obsolete comment. [empty commit message] commit b7bdd19e3b444a9c0ce68991739644a0fd4d9166 Author: athena Date: Sun Nov 19 11:21:44 2006 -0500 Use p->v when comparing TW_FULL fields. [empty commit message] commit fd6481c30c72bf15c3316dd7db6664e5b801160e Author: athena Date: Thu Nov 16 14:49:05 2006 -0500 removed useless definition [empty commit message] commit d161dc974c19cf43addd4b6cb516ae6b770827e7 Author: athena Date: Mon Nov 13 09:18:32 2006 -0500 paranoid avoidance of integer overflows [empty commit message] commit e5a1cce0ead5ae9d73c2c38c48e66c3bf059a874 Author: athena Date: Mon Nov 13 09:00:11 2006 -0500 avoid potential overflows in cycle counters At the suggestion of Alex Cichowski, convert all ticks to double before operating on them, to avoid potential signed/unsigned confusion and integer overflow. commit 98e4c9b9751d26d0adecc56634cc77e5689357bc Author: Matteo Frigo Date: Sun Nov 5 09:00:52 2006 -0500 Removed unused struct field [empty commit message] commit 303349e158e3fdf0231790fe32a6831aa671f895 Author: Matteo Frigo Date: Sat Nov 4 09:43:13 2006 -0500 use pthread condition variables instead of semaphores Condition variables are more likely to be portable everywhere, and somehow they appear to introduce less overhead at least on my linux box. commit eb7fb1efca70242568f0e74266ea88e8c9a45eff Author: Matteo Frigo Date: Tue Oct 31 20:45:24 2006 -0500 Imprecise help message. [empty commit message] commit 08bdb758c515972281738ca7567e38d3aeb05cf4 Author: athena Date: Mon Oct 30 20:13:35 2006 -0500 Experimental implementation of spinlocks. This patch implements spinlocks via a semi-portable hack, and adds the -ospinlocks option to the bench program so that we can play with them. commit fe239f5afbec9a3868f4330849cfe3d6dccb54b0 Author: athena Date: Thu Oct 26 22:29:18 2006 -0400 Updated manual for new openmp configure options. [empty commit message] commit 9809db57ce3f7e945e7bf04105a3fce74cdf7f47 Author: athena Date: Thu Oct 26 21:52:39 2006 -0400 Added back openmp. Rationalized threads naming conventions: * threads explicitly managed by us are enabled by --enable-threads, predicated on HAVE_THREADS, etc. * openmp is enabled by --enable-openmp, predicated on HAVE_OPENMP, etc. * SMP denotes either THREADS or OPENMP. commit 22cd21b038b6dd972444d5b00a6ebd00a932aa7f Author: athena Date: Mon Oct 23 20:14:31 2006 -0400 different thread protocols [empty commit message] commit f61da0e9c9db3c22dfd61c108f5f65bc4afe78bd Author: athena Date: Sun Oct 22 14:49:32 2006 -0400 fix memory leak Added pthread_attr_destroy to avoid memory leak. commit 6f6532928b29c6ac7599424c9dc834c41fc7fcf0 Author: athena Date: Sun Oct 22 14:23:30 2006 -0400 Experimental new pthread implementation that recycles threads. [empty commit message] commit e8c76bbab164fd6ad784bcfd9ec0fe5f002bfb43 Author: athena Date: Tue Oct 24 23:28:10 2006 -0400 switched buddies Switched order of buddies in rdft2 rank-geq2 for consistency with analogous dft and rdft solvers. Furthermore, this change reduces the MEASURE planning time for rank == 3. commit 3e13c85d1651dfc698143631f47a45b4c3947d12 Author: Matteo Frigo Date: Sat Oct 21 10:10:00 2006 -0400 Typo. [empty commit message] commit 7151038f7642b5ca050afb037fd91719a6f733b8 Author: Matteo Frigo Date: Sat Oct 21 09:56:50 2006 -0400 Out of place is the default. Thanks to Kirk Kern for pointing this out. [empty commit message] commit 281e20106cf076681392cb66050e11d2ac758dd2 Author: stevenj Date: Fri Sep 29 01:36:11 2006 -0400 rename "test" to "tst", since a user (Igor Levicki) reports that "test" is a reserved words in some x86 assemblers [empty commit message] commit 859e712b9c8051f6a1fb5a6500472042f194712f Author: Matteo Frigo Date: Tue Sep 26 09:01:08 2006 -0400 Stylistic change. [empty commit message] commit d024e575f98dc4a3452b9e0d5115a6650a7bf951 Author: athena Date: Tue Sep 26 08:45:37 2006 -0400 Do not set tmin=1e10, since a large FFT may take longer than that. [empty commit message] commit f31fffd32e9497675200784973ee8420ef3d60db Author: athena Date: Sat Sep 23 22:07:10 2006 -0400 Disable certain gcc optimizations. When PRECOMPUTE_ARRAY_INDICES is #define'd, array indices have the form array[stride[k]] for compile-time constant k. Apparently new gcc's copy stride[k] onto the stack before the codelet loop, which is an idiotic optimization if ever there was one. This patch confuses gcc enough to prevent this optimization. commit 0cc1f20ac1bbadb2e82d6465941755a9754d69d7 Author: stevenj Date: Sat Sep 23 13:02:58 2006 -0400 re-enable TOMS algorithm - it is the best for large vector lengths, since for such sizes the cache line is not an issue and the bookkeeping overhead is negligible [empty commit message] commit 458c7ee2e058d2cbe6fc90d23780b59bb29fbb52 Author: stevenj Date: Thu Sep 21 15:40:15 2006 -0400 add measure_hook so that MPI can synchronize timing measurements (otherwise different processors might end up with different MPI plans, yikes!) [empty commit message] commit 9fa6c37e2e09ea6bd226bde9a62f95d7c66f33bb Author: stevenj Date: Tue Sep 19 21:26:19 2006 -0400 added O(p log p) transpose algorithm (radix 2) [empty commit message] commit 1316689f96089a3b53799a3733d15add7c2f267c Author: stevenj Date: Tue Sep 19 21:05:09 2006 -0400 comments [empty commit message] commit c4b69d82b2c7de2fa2a963e27e3e498544c80262 Author: stevenj Date: Tue Sep 19 19:54:58 2006 -0400 whoops [empty commit message] commit 19265283619d376581c5815adab98a2b51fb0cb2 Author: stevenj Date: Tue Sep 19 19:49:01 2006 -0400 synchronize planning so that if one process fails to create a plan then all of them do. [empty commit message] commit e1b970b70562528b08d665ad2f7a17ee31f23e47 Author: stevenj Date: Tue Sep 19 18:17:38 2006 -0400 call MPI_Alltoall instead of MPI_Alltoallv for equal-blocks case, in case MPI implementation has special optimizations for the common case of equal sizes [empty commit message] commit 3adcd54e6a54928afc2c58b7aab4bc75664be1d1 Author: stevenj Date: Tue Sep 19 12:07:35 2006 -0400 whoops [empty commit message] commit 31b25a3bccaa0a8290dab5010199da8a5fec619d Author: stevenj Date: Tue Sep 19 02:20:06 2006 -0400 typo in comment [empty commit message] commit 519395bdb6ed85a2f18ba95bc82a68b2d42ddaae Author: stevenj Date: Tue Sep 19 01:58:55 2006 -0400 more filename simplifications [empty commit message] commit 2870207d79654158ecf7ae1d68d37382be5e39da Author: stevenj Date: Tue Sep 19 01:49:52 2006 -0400 canonicalize file names (hyphens, not underscores) [empty commit message] commit 41c88ac7e2cc2df2ff894c7223d55a41800b4c98 Author: stevenj Date: Tue Sep 19 01:34:07 2006 -0400 add mpi-dft-serial [empty commit message] commit cbf1beef8656c2b0bc205c4787e6986cf32b405a Author: stevenj Date: Tue Sep 19 01:21:47 2006 -0400 silence warnings [empty commit message] commit ff7df52317b96acc1966b2d5920e46a3e368bded Author: stevenj Date: Tue Sep 19 00:31:59 2006 -0400 make "t" problem semantics match FFTW_MPI_TRANSPOSED [empty commit message] commit 694244ed8ede7153eca565e43ff553a26db39b8f Author: stevenj Date: Mon Sep 18 23:50:43 2006 -0400 whoops, fixed backwards mpi_dft [empty commit message] commit a36a49ee7709c1f3010f32039814f655e502850a Author: stevenj Date: Mon Sep 18 22:26:31 2006 -0400 initial stab at rank-geq2 mpi-dft; seems to be mostly working [empty commit message] commit c8e0a65f63c0d8eb6a148cee255c5aca2ff4c68b Author: stevenj Date: Sun Sep 17 13:41:32 2006 -0400 support SCRAMBLED_OUT in alltoall transpose [empty commit message] commit 72887de15eec06aeb7426d6a7cc527fc171821b0 Author: stevenj Date: Sun Sep 17 12:34:30 2006 -0400 skeleton of future support for block-cyclic [empty commit message] commit 62b562d1df02409e10395385348f56318e46a2e7 Author: stevenj Date: Sun Sep 17 12:11:19 2006 -0400 test program now checks scrambled in/out via -obflag=28/29 [empty commit message] commit b3ef0c11ca26e02875c29eb154f1a5b9bf386ad5 Author: stevenj Date: Sun Sep 17 11:58:36 2006 -0400 added -obflag to make it easier to set high-order bits [empty commit message] commit a4cbe985fe508661ccf587b5331e62b0a6526289 Author: stevenj Date: Sun Sep 17 01:30:51 2006 -0400 use proper child plans for 2nd transpose in transpose_alltoall; implement opcount in transpose_inplace [empty commit message] commit ab2dd6cfd9903487e3ac3cf9401c9a1f35de4862 Author: stevenj Date: Sun Sep 17 01:08:01 2006 -0400 fix in test program for transposes of vectors -- transpose routines seem to completely work now (except for scrambled in/out, which is untested) [empty commit message] commit aa5eecbf266020f2e2788bba862c13f6575d1ce8 Author: stevenj Date: Sun Sep 17 01:01:16 2006 -0400 fixed bug in transpose_alltoall for unequal blocks [empty commit message] commit 202f232a54abc2cb04e0a3d0d32bdb727c306c4e Author: stevenj Date: Sat Sep 16 15:29:46 2006 -0400 correctly handle cld2rest [empty commit message] commit 36668c0dd144f2bc2f6b2bf1f10eb1677593b9c6 Author: stevenj Date: Sat Sep 16 15:29:31 2006 -0400 some debugging code and other fixes [empty commit message] commit 66dcf1f5c673fd16b2f0f88988c4aaf388eeaf27 Author: stevenj Date: Sat Sep 16 14:54:30 2006 -0400 whoops, forgot to check in mpi_bench.c file [empty commit message] commit 3d96f316225934ef4485bcc2432314b89292914b Author: stevenj Date: Sat Sep 16 14:54:02 2006 -0400 added bench_exit routine so that it can be overridden (by MPI_Abort) if needed [empty commit message] commit b14337a969f6fee88bda25464c7ef7c0e56b5c00 Author: stevenj Date: Sat Sep 16 14:52:56 2006 -0400 bug fix in mpi_transpose_inplace for case where some processors are idle [empty commit message] commit 43fd42786f54710bffe85528beae2fff76e4a58e Author: stevenj Date: Fri Sep 15 18:47:13 2006 -0400 allow vecloop for sz->rnk==0 in exceptional (SLOW) cases, e.g. it is necessary for loops of non-square transposes (otherwise e.g. ik1v5:200:200x10:20:1x20:1:10 planning fails) [empty commit message] commit 121eaa69908a7b465f21f3529f74e983a63801ad Author: stevenj Date: Thu Sep 14 23:36:48 2006 -0400 first pass at working mpi_bench test program; transpose seems to work iff dimensions are divisible by #processors [empty commit message] commit 51101a902b4fdaef585e1d9e975238100951601c Author: stevenj Date: Wed Sep 13 17:28:07 2006 -0400 whoops [empty commit message] commit 7986cd7f00327db5f156e8d4d1458456f309e37a Author: stevenj Date: Tue Sep 12 22:27:03 2006 -0400 initial stub for mpi_bench [empty commit message] commit 279ca0155c7cb9dcd9bb9c75149a24bb1f44ba50 Author: stevenj Date: Tue Sep 12 21:54:31 2006 -0400 do no output at all if verbose < 0 (for use with MPI, where we only want output from process 0) [empty commit message] commit 481f3838af04ae3db7aee15094ecf748f71d03da Author: stevenj Date: Tue Sep 12 21:39:15 2006 -0400 whoops [empty commit message] commit 792aaa1acca61e89b5605cbed49e9dd86bfbc2b1 Author: stevenj Date: Tue Sep 12 21:31:40 2006 -0400 split bench.c into bench.c and fftw_bench_common.c so that we can re-use some of the code in the MPI test program [empty commit message] commit 3b3b95ad0b1ab373687a9df59cdf2ec4bcdd502b Author: stevenj Date: Tue Sep 12 21:00:36 2006 -0400 MPI stuff at least compiles now [empty commit message] commit f5092f54bc2b8ee7289a2fb5148fc5315cbb2ee8 Author: stevenj Date: Mon Sep 11 22:26:36 2006 -0400 initial (nonfunctional) start at MPI support (similar to FFTW 2.x in spirit, but mostly rewritten) [empty commit message] commit 64d68fafe0c7f4433aec4a0925ce5972c33c78b4 Author: stevenj Date: Mon Sep 11 22:25:38 2006 -0400 make X(plan_awake) work for NULL argument to reduce code size [empty commit message] commit ed05c503c219544b0fe91af61db02d9cbb4027b5 Author: stevenj Date: Fri Sep 15 23:47:08 2006 -0400 -mt should go before -mthreads to avoid spurious warnings on HPUX (thanks to Peter O'Gorman for the bug report) [empty commit message] commit d737c7b3eca4ff8d7f372273f114dfd4e765b70c Author: stevenj Date: Mon Sep 11 13:53:44 2006 -0400 Fortran init_threads wrapper didn't return result; thanks to Markus Wetzstein for the bug report [empty commit message] commit ba5664a7958d533904b9251a4bfaa56b0f338a8a Author: stevenj Date: Thu Sep 7 18:43:55 2006 -0400 make sure wrappers are included even if Fortran compiler was not detected (unless --disable-fortran was specified explicitly) ... this was supposed to be done before, but the definition was in the wrong place, grr [empty commit message] commit 188c9dde71d0bc56ba30a052b82d02b6676f20ed Author: stevenj Date: Thu Aug 31 19:33:29 2006 -0400 I'm sick of answering this question about non-deterministic results [empty commit message] commit 336fb6116c43aa5559392ea2d0759606efd6f275 Author: Matteo Frigo Date: Tue Aug 22 21:27:29 2006 -0400 Add --tag=CC flag to libtool. This change is consistent with the libtool invocation in the latest automake, and is required to compile with (some version of) xlc. commit d98d86f9115ca1a836e92d8df8e061f98f329032 Author: athena Date: Mon Aug 21 21:40:36 2006 -0400 avoid ``fma'' because it is defined in c99. [empty commit message] commit 841eb8db14a22936ba8ef81f439f42cb2411073d Author: Matteo Frigo Date: Sun Aug 20 11:40:53 2006 -0400 Obey -standalone flag. [empty commit message] commit f270abac4732fe5f77708bef5f0d0cdc599bdb61 Author: Matteo Frigo Date: Sat Aug 19 13:34:27 2006 -0400 obey -standalone when generating simd codelets [empty commit message] commit f573bbe2aaafabfbb21daf7da62972b8b071167f Author: Matteo Frigo Date: Sat Aug 19 13:33:43 2006 -0400 removed obsolete athfft [empty commit message] commit 84e5b7792da92198e101b168d10710f0b81df5e8 Author: stevenj Date: Thu Aug 17 21:50:50 2006 -0400 updated citation to Proc. IEEE paper [empty commit message] commit 5ca3a79e05b95a688c21e7cb37a1ef7fa42a7f04 Author: stevenj Date: Thu Aug 17 21:47:05 2006 -0400 use darcs changes --summary to make nice changelog; emacs fill-region hack is obsolete [empty commit message] commit b80ff1b7affc5ba9c62bde0b06a548c3baf7c615 Author: athena Date: Mon Aug 14 17:53:19 2006 -0400 removed timer calibration Timer calibration seems not to work any longer on recent processors--- too much noise. I have remove it completely. commit 8986b3fa943f3f424a2f75541f8627a86af31a0a Author: Matteo Frigo Date: Mon Aug 14 10:47:15 2006 -0400 removed k7 Removed obsolete k7 support. commit 820835bfa680e9a0193435bfbcaf21923df9e7fc Author: athena Date: Sun Aug 13 11:02:11 2006 -0400 Use darcs instead of cvs. [empty commit message] commit 818c52da26a5d0781db8d9b45d4026403fb7e922 Author: Matteo Frigo Date: Wed Jul 19 08:52:15 2006 -0400 Treat a the string "-" as a nonoption. commit 4e8a814e90696ee38898bfb5f079ac9bb6b614c2 Author: Steven G. Johnson Date: Tue Jul 4 17:10:47 2006 -0400 comment out pkginclude dir for now commit 1bc4dd79b8cc59be7b18676f338c78013da54dab Author: Steven G. Johnson Date: Mon Jul 3 20:51:08 2006 -0400 make sure CCAS = CC to avoid libtool confusion commit ebddd6bce119dec0b9a970a6d6194131321bdc5e Author: Steven G. Johnson Date: Fri Jun 23 04:07:31 2006 -0400 install x77.h guru.h guru64.h in pkgincludedir commit e272fe53d7d822aa7d5ce03277f40c87aa843eef Author: Steven G. Johnson Date: Fri Jun 23 04:03:42 2006 -0400 whitespace commit d6d23fdac18d0d01e363ff60bdba1285be017d0c Author: Steven G. Johnson Date: Fri Jun 23 02:33:45 2006 -0400 support cycle counter with xlc on Linux/ppc commit 677dd906902cf9dd2215c576a8f9d9e6755cc7cd Author: Matteo Frigo Date: Tue Jun 20 08:16:08 2006 -0400 Stylistic change. commit bb6bed2564fdec63eb8439031bc45caf8436b378 Author: Steven G. Johnson Date: Tue Jun 20 02:20:34 2006 -0400 bump date commit 6944a35c403fdcbf6b7b46f1aa9df9288991efca Author: Steven G. Johnson Date: Tue Jun 20 02:20:06 2006 -0400 correct bug reported by Andrew Salamon ... --enable-portable-binary was ignored (or rather, treated unpredictably) due to typo, grrr commit ad98ebc35798f8713ac299ebe9ce74ca9fefe2f1 Author: Steven G. Johnson Date: Thu Jun 1 20:30:06 2006 -0400 install 'internal' header files into includedir/fftw3/, includedir/fftw3f/, etcetera....this will make it easier to write external libraries that plug into FFTW internals, e.g. to add new solvers commit 4ce51f61d823524e8bebc4bc92ad2b17b6e7b53a Author: Steven G. Johnson Date: Mon May 29 23:59:19 2006 -0400 bug fix, thanks to James Donald for the bug report (only affects experimental semaphore stuff) commit ca9e38be107c761af7cd66a3ce9f0cfe93e9c069 Author: Steven G. Johnson Date: Mon May 29 23:58:16 2006 -0400 comment commit 7e4b4be5e1bcdd9706a3ded5e2f59010ff751401 Author: Steven G. Johnson Date: Mon May 29 21:02:50 2006 -0400 whoops commit 5af69a3ec3b932c0d7e3e2dfdbcbff2aa067c5bf Author: Steven G. Johnson Date: Sat May 27 19:36:15 2006 -0400 version bump commit 27dd43e42fa0b4ccea275b2143a9056f42f8c7f9 Author: Steven G. Johnson Date: Sat May 27 14:54:47 2006 -0400 only check for xlc_r/cc_r if we are not using gcc commit c222c025be6649da84164ba5d2334fdcf0b3ac0b Author: Steven G. Johnson Date: Fri May 26 15:00:38 2006 -0400 use ptrdiff_t (it's C89 and standard C++, hooray) commit c3450d7f654ac2adf06bbbe9687f99cf1c6641b5 Author: Steven G. Johnson Date: Fri May 26 12:59:33 2006 -0400 version bump commit 0be4f57c071dc97314660a66f4d46eee4ac143e9 Author: Steven G. Johnson Date: Fri May 26 12:57:32 2006 -0400 noted 64-bit guru API commit 90455678a81def7a9aa3bc14f17047deb714271b Author: Steven G. Johnson Date: Fri May 26 12:53:09 2006 -0400 note that newer versions of VC++ support long long commit efddf05184fe6977af120842d10faf89399f14e0 Author: Steven G. Johnson Date: Fri May 26 12:46:09 2006 -0400 try harder to get a portable 64-bit type commit 1d34caa16af08ff47fd75006c7576242e4643d17 Author: Steven G. Johnson Date: Thu May 25 22:04:18 2006 -0400 added draft guru64 API commit f987e828891ddd69efa3c664c68d231c1d3fc460 Author: Steven G. Johnson Date: Mon May 22 16:41:44 2006 -0400 added FIXME note commit 245cd07427cd24c953e4f1eea383790c7f557701 Author: Steven G. Johnson Date: Mon May 22 16:40:30 2006 -0400 check for xlc_r in addition to cc_r; thanks to Guy Moebs for the bug report commit 8a76c773855a145883608d47ca0aaa369e3ec408 Author: Steven G. Johnson Date: Fri Apr 21 12:35:25 2006 -0400 added note about gcc 4.0.1 on MacOS/Intel commit 9bb0ec78947a8597e0642379e7348e6b1c03af0b Author: Steven G. Johnson Date: Thu Apr 20 23:08:42 2006 -0400 added code for Core Duo; thanks to Eric Branlund commit d7a2e4a3ad51c01ec1bffbbadad602bb643da270 Author: Steven G. Johnson Date: Thu Apr 20 20:21:03 2006 -0400 fixed failure for -fPIC or for gcc-4 on Apple Intel machines; thanks to Eric Branlund for the bug report commit 3cb3cea549b4e8e0f9a16a1952eae4b4d8be1189 Author: Matteo Frigo Date: Tue Apr 11 20:00:31 2006 -0400 Use -maltivec when checking for altivec.h. commit e2fb474c726118343e25059e2e1e8d2da6a21f62 Author: Steven G. Johnson Date: Mon Apr 3 15:52:44 2006 -0400 note planner overwriting input in planner-flags reference commit 89a78d79d22078ee258d43d581cee6aaa3ba1d80 Author: Matteo Frigo Date: Tue Mar 28 09:05:26 2006 -0500 FAQ entry about --enable-k7 in 64-bit mode. commit bfc115831ce70cd5cbf96fc005710862cf10bef6 Author: Steven G. Johnson Date: Mon Mar 27 23:41:05 2006 -0500 sprintf -> snprintf, to avoid (harmless) complaints by users/compilers commit a2e4f6bfa281ed8b11c3a42e4cf32570e6a5c4d9 Author: Steven G. Johnson Date: Mon Mar 27 23:30:22 2006 -0500 silence compiler warning commit 2c39d368d18c97bb079456491d60bb9a0c4c4342 Author: Matteo Frigo Date: Fri Mar 17 09:20:10 2006 -0500 Remove dft/codelets/inplace, add simd/nonportable to list of directories to be compiled on non-unix systems. commit 01fa8ec4e8e6bd7a560437afe4ce4e37c13e0806 Author: Steven G. Johnson Date: Sat Mar 4 16:17:56 2006 -0500 whoops commit 6687db156af27c4ba2a4ddab66b6aa0a951b1a35 Author: Steven G. Johnson Date: Sat Mar 4 16:13:08 2006 -0500 note that we align the stack ourselves if necessary, with gcc and icc commit eee84dd2a9317a44c05e2f4dc2c05ff42709a973 Author: Steven G. Johnson Date: Sat Mar 4 16:08:16 2006 -0500 clearer distinction between static and automatic storage in C commit bc1aba15a1ddb5cd37b8088ea70f81ea6093e8d2 Author: Steven G. Johnson Date: Sat Feb 25 20:27:01 2006 -0500 rm unused var commit d93efe4d5783cc4d5791894d58524c93644d5cb2 Author: Matteo Frigo Date: Sat Feb 25 17:30:28 2006 -0500 Improved usage of goto (Dijkstra miserere nostri) commit 36a203c3ada1b6257109162fee8dc563da9c4bc2 Author: Steven G. Johnson Date: Sat Feb 25 14:19:15 2006 -0500 boilerplate commit 4041499e9299726d5840a0d119af094517810bda Author: Steven G. Johnson Date: Sat Feb 25 14:14:40 2006 -0500 update for upcoming 3.1.1 commit 579c413f3bb5e24ac92d433aa17a063b1f11f8a1 Author: Steven G. Johnson Date: Sat Feb 25 13:57:34 2006 -0500 replace obsolete IMPATIENT with MEASURE commit e0e594ba308e101ba93aacdceabdf0a35b4b0221 Author: Steven G. Johnson Date: Sat Feb 25 13:52:25 2006 -0500 corrected comment commit 5c1e2c07d1d8e21c219853b35212ba7373b35b45 Author: Matteo Frigo Date: Sat Feb 25 10:19:26 2006 -0500 -v does not take an argument. commit dca8aaed07eadc0d1db6fe19b4a86d00ff7a328b Author: Matteo Frigo Date: Sat Feb 25 10:17:18 2006 -0500 Obey the unix convention that -ab = -a -b commit 95450e7e4d3ed287b4ff36d6ccd1250023cc06a2 Author: Steven G. Johnson Date: Fri Feb 24 23:13:49 2006 -0500 minor fixes (return error on unrecognized option) commit af67fa909fc8ad31f5163b26da1693b1f9a61649 Author: Steven G. Johnson Date: Fri Feb 24 22:46:12 2006 -0500 ugh commit fec17358e3fbfb5e049933495db198312f9e10f9 Author: Matteo Frigo Date: Fri Feb 24 21:42:56 2006 -0500 require exact match for long options. commit 5538e310cb61df6e3b5bd880ae604d86ec8f6121 Author: Matteo Frigo Date: Fri Feb 24 21:38:02 2006 -0500 better fix commit 6f17dbe2db5e098604a35c03a7a1514040ea47d6 Author: Matteo Frigo Date: Fri Feb 24 21:37:06 2006 -0500 Fix commit f10cae7e4cf944a6ef5928afbbaead482a4692d3 Author: Matteo Frigo Date: Fri Feb 24 21:25:48 2006 -0500 nothing commit 01a4d4b5c204ef2c6d0afc7402a72481ad4a6c3e Author: Steven G. Johnson Date: Mon Feb 20 17:37:21 2006 -0500 rm transpose-indirect-inplace solver, which was buggy commit baa641d48341281eb3a9d4d9792f4482042836b4 Author: Matteo Frigo Date: Wed Feb 15 08:43:05 2006 -0500 Comment fix. commit 207d1eae51bef5d4d14c7c670d6d16dadd8c8edf Author: Matteo Frigo Date: Wed Feb 15 08:18:41 2006 -0500 Cycle counter for Visual C++ x86-64, courtesy of Dirk Michaelis commit 0aefc1a066f619ed6f5b54791b00ab0acffe2901 Author: Steven G. Johnson Date: Tue Feb 14 19:17:30 2006 -0500 rfftwnd.png is in builddir commit 1799b5fa46fef72b8f116de92605ea4b8118a3db Author: Steven G. Johnson Date: Tue Feb 14 19:03:27 2006 -0500 fixed typo: --enable-portable-binary, not --with commit f75d618a590c61c3bdba28ad0155f327670e231f Author: Matteo Frigo Date: Mon Feb 13 07:59:06 2006 -0500 estimator tweaks. commit 1c0cc8d7bb3570ce31320d87bbe35eb5b03ef38d Author: Matteo Frigo Date: Sun Feb 12 20:43:39 2006 -0500 sse/sse2 support for t3?v codelets commit b1116627def6398d97dc443ba0f9bba1e2989f86 Author: Matteo Frigo Date: Sun Feb 12 20:39:22 2006 -0500 Use CEXP instead of SIN/COS. commit dd361f593b5e85eeea97f2a2c048d3a8dce9d7e5 Author: Matteo Frigo Date: Sun Feb 12 20:12:10 2006 -0500 bug in randomized cse eliminator. commit 9d329a9d010b44b728449d0f566eaa9356682a82 Author: Matteo Frigo Date: Sun Feb 12 18:34:12 2006 -0500 Added support for t2-style simd codelets. This is altivec only for now; sse/sse2 don't even compile yet. commit b187b797d17ccda6efb853eb93b27aa42474a02a Author: Matteo Frigo Date: Sun Feb 12 15:30:27 2006 -0500 Added support for t2-style simd split-complex codelets. commit 78281302f4fd1a0d42f0a0baf64cb364076aedb3 Author: Steven G. Johnson Date: Fri Feb 10 18:21:28 2006 -0500 [empty commit message] commit 948abfe0c2c7db954b7de51ff8da674dab3258ee Author: Steven G. Johnson Date: Fri Feb 10 18:19:46 2006 -0500 punctuation commit e24cb9776a48a5cb0673e4ee8d75d142fcf2b117 Author: Steven G. Johnson Date: Fri Feb 10 18:00:35 2006 -0500 windows DLL stuff for Fortran interface commit fd7272f2e39eddd4491666e0bfe1e5c69c1eb04c Author: Matteo Frigo Date: Fri Feb 10 09:48:52 2006 -0500 Bumped version to 3.1.1 commit 81a965e9d51e8e647f2eeaa12a973f7ef5188314 Author: Matteo Frigo Date: Fri Feb 10 09:18:39 2006 -0500 Precompute array indices on x86-64. Speeds up Pentium IV and makes no appreciable difference on AMD. commit 5dbfa49ad81db0d3dca7e419507654fc0adc63fe Author: Matteo Frigo Date: Tue Feb 7 22:01:36 2006 -0500 Check whether the processor supports CPUID before issuing the instruction. (Grrr...) Code contributed by Eric J. Korpela. commit ce017677182a7662b7b1db85f32c6a8f34773703 Author: Matteo Frigo Date: Tue Feb 7 21:36:47 2006 -0500 icc supports x86_64 these days. commit a7f132f06de9d343ee68b436c089bd37e6b7fc17 Author: Matteo Frigo Date: Sun Feb 5 18:19:55 2006 -0500 Paranoia. commit 8645d5236a621db86ff7094b0e1a3e2946abc9fc Author: Steven G. Johnson Date: Mon Jan 30 15:27:53 2006 -0500 whoops, fixed assert (y <= x) commit 13864d94f5c655cee3914be9d8751e184f86b8c9 Author: Steven G. Johnson Date: Mon Jan 30 15:26:22 2006 -0500 note that safe_mulmod requires {x,y} < p (or at least < 2p), and added assert commit 849af348d142662e71fc4f3efe2866907e3bc745 Author: Matteo Frigo Date: Mon Jan 30 11:09:32 2006 -0500 fixed aix/xlc lossage commit 106ee57674a134e1f876b6b6b77accd3a3b7a5f8 Author: Matteo Frigo Date: Sun Jan 29 20:42:51 2006 -0500 In the impuse test, normalize the impulse so that the impulse and the random vectors have roughly the same L2 norm. This change reduces the number of bits that we lose because of floating-point cancellation, so that we can focus on the bits that we lose because of bugs. commit 45098b30a5e91b87bb97474de6ff2c16fd7373e3 Author: Matteo Frigo Date: Sun Jan 29 20:37:47 2006 -0500 Compute omega in trigreal precision, as opposed to R. commit 2c5480453a0fd877bdec040eb421b975eb2c63f4 Author: Steven G. Johnson Date: Fri Jan 27 19:16:22 2006 -0500 add --with-combined-threads option as workaround to Windows inability to build shared libs with dependencies commit 68fde0a7351209d643634dfc19367da685c7e455 Author: Steven G. Johnson Date: Fri Jan 27 17:20:45 2006 -0500 libfftw3_threads should *not* used -no-undefined because, in fact, it is not true -- this library depends on -lfftw3, and is not self-contained commit ba85fd54aba2401c937c7acbff52a7c557956f68 Author: Steven G. Johnson Date: Thu Jan 26 22:04:34 2006 -0500 updated commit 42feb604758692ce9936076f37e10c0f4098d46d Author: Matteo Frigo Date: Thu Jan 26 21:10:50 2006 -0500 Added paranoid stack alignment when awaking plans. While I was at it, removed obsolete, redundant AWAKE macro. commit 6b9831ddefcd83bf50aeafd90a6aa1effb44183e Author: Matteo Frigo Date: Thu Jan 26 20:54:39 2006 -0500 Updated for 3.1. commit 4f2fadf55d8ba8d714bc96fb2236dfa981e3d244 Author: Matteo Frigo Date: Thu Jan 26 19:15:12 2006 -0500 ditched one alignment check and noted that we should eliminate the rest as well commit 7c89983f07d925a997e5c293f8cdd5fbe577e3fb Author: Matteo Frigo Date: Wed Jan 25 23:02:19 2006 -0500 alignment hack commit 34f414ddf79840e5a7a9122c98e97bb2a09ecbd7 Author: Matteo Frigo Date: Wed Jan 25 22:05:11 2006 -0500 detect pentium M commit 4f5853890a7ad01e763186bd03e44a5b20e5ef4a Author: Steven G. Johnson Date: Wed Jan 25 18:42:58 2006 -0500 don't trust host_cpu if it claims we are on i386/i486, and call cpuid anyway (if it fails we use no arch flag). This is needed on FreeBSD commit 16caea410e6cc85276555146cf41c370534074b6 Author: Steven G. Johnson Date: Wed Jan 25 18:00:04 2006 -0500 suggest --with-our-malloc16 in error message commit 7574f2ae7e872c4f05f34b73057069b57fb2df01 Author: Steven G. Johnson Date: Tue Jan 24 19:53:34 2006 -0500 ditto for -no-gcc commit 04b5cc720e50ebe4cd2360425e79d6767356288a Author: Steven G. Johnson Date: Tue Jan 24 19:51:08 2006 -0500 flags required for successfull compilation should be added even if the user overrides CFLAGS commit 623ce195f6fe58d67f3bc8928ecc173f753e55db Author: Steven G. Johnson Date: Tue Jan 24 18:43:59 2006 -0500 upcoming gcc OpenMP support uses -fopenmp commit abec9a1443aa235af2e2cfbd86f636599bcfea5e Author: Steven G. Johnson Date: Tue Jan 24 18:26:59 2006 -0500 note that PGI uses -mp as well commit 883f0f18de0f8528fe77129192f521b1a77bfece Author: Matteo Frigo Date: Mon Jan 23 15:31:24 2006 -0500 my best guess at how to fix the microsoft crap du jour commit b457e9e371cf5e13bb818868495b38dce7ccdcd6 Author: Steven G. Johnson Date: Mon Jan 23 14:05:14 2006 -0500 use -Masmkeyword for PGI cycle counter, grr commit 91a65bac96c2fc134d11c8d551eb410de6d18bc2 Author: Matteo Frigo Date: Sun Jan 22 18:09:06 2006 -0500 Bumped version number to 3.1. commit 1745639a638440b17bfcea324c068679f655df24 Author: Matteo Frigo Date: Sat Jan 21 10:03:59 2006 -0500 Report that --enable-k7 is incompatible with --enable-shared. commit 840da056365df79ea63fc3d5a21b1ab5a13707e9 Author: Matteo Frigo Date: Sat Jan 21 09:17:54 2006 -0500 Do not use empty libraries in LIBADD, since otherwise the linker fails on Solaris. commit 4228f20154f81216ab4ddae092d7661bb8af1652 Author: Steven G. Johnson Date: Wed Jan 18 10:47:59 2006 -0500 warn end-users away from this file commit b6e0f0a6eac2561efe417f2cfc0eb8686196a385 Author: Matteo Frigo Date: Tue Jan 17 16:16:42 2006 -0500 Gcc sucks. commit 8560506aa44b2740ea378c83c403373dfce2a662 Author: Matteo Frigo Date: Tue Jan 17 11:48:55 2006 -0500 Disabled checks that may turn out to be too paranoid. commit 782888694f5690298d87cc67cf9963f97aabc412 Author: Matteo Frigo Date: Tue Jan 17 10:35:03 2006 -0500 Some paranoid checks. commit c93e48fa31d081994b9e3b11cca9f1ab25bdf6a1 Author: Matteo Frigo Date: Tue Jan 17 09:31:08 2006 -0500 Flush stdout after printing. commit 8a84f237ca9d96babf1f4edeecb181c47cd74dbe Author: Matteo Frigo Date: Tue Jan 17 08:28:18 2006 -0500 Run the leak detector in all cases, not just when verbose > 2. commit 884a08a129046af3f84ce0fc138f385976f5a5a9 Author: Matteo Frigo Date: Tue Jan 17 08:11:41 2006 -0500 Eliminate calls to pow(), rint(). commit 370ddffe8e4854e4826b1ff4ea14c617d1eea504 Author: Steven G. Johnson Date: Tue Jan 17 00:45:06 2006 -0500 put # in first column, for stylistic consistency commit ede00270785b328279288ada254a11f7314bcd6c Author: Matteo Frigo Date: Tue Jan 17 00:17:27 2006 -0500 Made timeout part of impatience flags, in order to improve the usability of wisdom. Also, fixed bogus error recovery logic in planner.c:imprt(). commit 693f01973548254de258d7efa4217cabea005e79 Author: Steven G. Johnson Date: Mon Jan 16 23:03:34 2006 -0500 make timelimit < 0 .eq. FFTW_NO_TIMELIMIT commit 5af63c169becdefc68db3b4f2df8e788b9867c98 Author: Matteo Frigo Date: Mon Jan 16 21:52:01 2006 -0500 Eliminated the FFTW_TIMELIMIT flag in favor of this simpler logic: fftw_set_timelimit(0) disables time limit. fftw_set_timelimit(X), X>0 sets the time limit to X. commit 8a9d6dd6b442050ad202a6f7154926d145e359b1 Author: Matteo Frigo Date: Mon Jan 16 08:38:04 2006 -0500 Force the use of the estimator when wisdom fails because of md5 collisions, otherwise the planner takes forever. commit 7c6a1a3f7e16df4dca8f78ee994d0488278977fb Author: Matteo Frigo Date: Sun Jan 15 21:30:31 2006 -0500 Ranted about how broken gcc-4 is. commit 383c1374f7af522dfcfe363c508d7fb630e83746 Author: Steven G. Johnson Date: Sun Jan 15 19:59:38 2006 -0500 change fftw_timelimit global var to fftw_set_timelimit(double) function, for simpler usage with shared libraries and for consistency with e.g. set_numthreads commit 584641592c2c273e233b919c8e68e1dbb840d72f Author: Matteo Frigo Date: Sun Jan 15 19:32:27 2006 -0500 Minor tweaks. commit f8fd8093b44aca863601612ae0b4818e91cca853 Author: Matteo Frigo Date: Sun Jan 15 16:32:54 2006 -0500 tweaks to make sure that time_n() is always called from the same stack position. commit 1a5445769d483d86df5d2de6e41f4c5e9515a4f1 Author: Matteo Frigo Date: Sun Jan 15 16:09:53 2006 -0500 Major simplification of the timer calibration logic. Also, use an FFT as a unit of work instead of the old pointer chasing, because God knows how pointer chasing interacts with the idiotic cache-hit speculation on the Pentium IV. commit 1838fc3c1290495355ce10791c9a9f376dd7522d Author: Matteo Frigo Date: Sun Jan 15 15:12:08 2006 -0500 Fixed broken aligment checks when sizeof(R)==12. commit 17b67db5fa051c8eef9c962abfb698b51d11f303 Author: Matteo Frigo Date: Sun Jan 15 10:36:40 2006 -0500 Manual unrolling of loop. commit 7465e7b2ab1c48d06a50189a8545af2b0d98fdda Author: Matteo Frigo Date: Sun Jan 15 10:12:55 2006 -0500 Various improvements to timer calibration routines. commit 049684aa3e3f0411c535a71b0f4adc0ecff7327d Author: Matteo Frigo Date: Sat Jan 14 22:16:09 2006 -0500 cygwin defines __CYGWIN__, not __WIN32__ etc. commit c418027ffb0304f446af729a93415df506d093f3 Author: Matteo Frigo Date: Sat Jan 14 20:40:12 2006 -0500 fixed confusion between libbench and user timers commit 64c27bbd6553e2d8e2e988456890e3e31266b89e Author: Steven G. Johnson Date: Sat Jan 14 12:32:44 2006 -0500 update commit 1b00d512abfe62699264bc556e84a50e89c9a377 Author: Matteo Frigo Date: Sat Jan 14 10:24:11 2006 -0500 Comment. commit 7fa69534cca1e07e3c1260151ed8dee5e5a645cc Author: Matteo Frigo Date: Sat Jan 14 10:19:28 2006 -0500 Workaround gcc bug. commit 686f1af1d0f1c63d99f2891a47c5de2b459b92d2 Author: Matteo Frigo Date: Fri Jan 13 19:13:18 2006 -0500 Switched to -beta2. commit 9f370230780a4f3c03643f6c35f4114fada8c1e7 Author: Matteo Frigo Date: Thu Jan 12 22:21:57 2006 -0500 Fixed technically correct but highly obfuscated use of the enum tag R2HC as a null pointer. commit 38965981e1187e5d0574e129690f3e02b4bc1cae Author: Steven G. Johnson Date: Thu Jan 12 19:25:20 2006 -0500 --enable-unsafe-mulmod is obsolete commit 3f29e7d2e1993de8b7a9759bc879955cb8ae569d Author: Matteo Frigo Date: Thu Jan 12 19:23:18 2006 -0500 More thoughts. commit 84082b78ddfaf5133e49453cc3a62c3d3dde9c04 Author: Matteo Frigo Date: Thu Jan 12 19:17:57 2006 -0500 Removed loop unrolling because it slows things down on at least one powerpc and it generates clumsy x86 code. commit 51caa62b55dcdb8e1aeb9da2d10a40874cef875a Author: Steven G. Johnson Date: Thu Jan 12 19:17:35 2006 -0500 tweaks commit e29d0b0a8ceacbe19adba501d8e5799c7647bb87 Author: Steven G. Johnson Date: Thu Jan 12 15:55:52 2006 -0500 MacOSX x86 ABI specifies that the stack is kept 16-byte aligned commit 487e03a1ee35bc63877b6ec2c2e410da5f3dd4d5 Author: Matteo Frigo Date: Thu Jan 12 12:46:49 2006 -0500 ``ret'' is a reserved word in the evil empire. commit ef109b1d0703dbf67144c7ef5afe9ee4dd0ef489 Author: Matteo Frigo Date: Thu Jan 12 08:31:43 2006 -0500 Changed ret => result because ret ``is a reserved word'' in the evil empire. commit 7dfbcb39afd28daaa10eba6e7909e0e8e3dd56bc Author: Matteo Frigo Date: Wed Jan 11 19:30:42 2006 -0500 Workaround Visual c++ lossage. commit 93876be963fec88768744d04a2c027a4c14f49f0 Author: Matteo Frigo Date: Wed Jan 11 19:26:16 2006 -0500 Workaround visual c++ lossage. commit b2e9544d09112da7db08f07f268e2ed3ad707634 Author: Matteo Frigo Date: Wed Jan 11 19:10:52 2006 -0500 isprint() is guaranteed to work for unsigned char + EOF only. commit 5b926765db935776483660d88b2ce02dca54081e Author: Steven G. Johnson Date: Wed Jan 11 13:47:49 2006 -0500 rm obsolete fixme commit 9237b1a5063d1190e4a8a79d924599a240706756 Author: Steven G. Johnson Date: Wed Jan 11 13:38:46 2006 -0500 [empty commit message] commit 72c1af743cd4da543e142aa9d51b600f47811378 Author: Steven G. Johnson Date: Wed Jan 11 13:32:26 2006 -0500 fix comment commit 47b608a52f08027e1429325bd1639ee4f176aea2 Author: Matteo Frigo Date: Wed Jan 11 12:27:05 2006 -0500 Paranoid use of K(x) for all constants x, to avoid runtime double->float conversions on sufficiently stupid compilers. commit fd9ac529906a8db6d171aa999e4a848b495a8fde Author: Matteo Frigo Date: Tue Jan 10 20:10:38 2006 -0500 Workaround to gcc nonsense. commit 90aaf565346f372e580fb899f9212558ff87d0d2 Author: Steven G. Johnson Date: Tue Jan 10 18:44:28 2006 -0500 bug fix: infinite loop in transpose-cut planning commit 5cd8a9482a90f25c76df01e4f8ea4b2a3386c449 Author: Steven G. Johnson Date: Tue Jan 10 18:12:14 2006 -0500 clarified comment commit 4c5e2af8af80c06734bac116adefdc9e346caa47 Author: Steven G. Johnson Date: Tue Jan 10 18:10:32 2006 -0500 more Windows decorations commit c0bb01fdec0e5c0d9636187641f43690cdb771e2 Author: Steven G. Johnson Date: Tue Jan 10 17:57:45 2006 -0500 added FIXME comment commit 82eb98885049d8d0b69490915a39614c17d5263c Author: Steven G. Johnson Date: Tue Jan 10 17:52:07 2006 -0500 'make clean' should not delete codlist.c since it is included in the dist tarball commit 7fece302306db2d854caf017c680e29eadf79cb7 Author: Matteo Frigo Date: Tue Jan 10 17:50:12 2006 -0500 Change threshold for ``large'' Cooley-Tukey to 256K from 64K, since it seems to benefit the Pentium IV with sse and the planning cost is not too horrible. commit 46c94f013ca0ab45344996479ff3059a6b835241 Author: Steven G. Johnson Date: Tue Jan 10 17:45:11 2006 -0500 more missing Windows DLL decorations commit 67d487e555c8d365aa9530173dba788656f2d91b Author: Steven G. Johnson Date: Tue Jan 10 17:41:28 2006 -0500 remove unused var commit 3356ac92a38eea7582b9712a6cef2067dd9ccf28 Author: Steven G. Johnson Date: Tue Jan 10 14:00:50 2006 -0500 allow compiler threads, if enabled, to take precedence over explicit threads commit d2c3905718e0dbe3bb6e67befc3a2f4c63badbeb Author: Steven G. Johnson Date: Tue Jan 10 12:30:09 2006 -0500 [empty commit message] commit 755b3ecdb747b9b6f1dbc52036cf1d08f724596d Author: Steven G. Johnson Date: Tue Jan 10 12:21:56 2006 -0500 [empty commit message] commit 22db6a0e68da61729239444ff941e84f8de1b336 Author: Matteo Frigo Date: Tue Jan 10 09:13:20 2006 -0500 Fixed comment typo. commit 219609390fc443e6defd5f4940aa36e059b0e6c6 Author: Matteo Frigo Date: Tue Jan 10 08:59:22 2006 -0500 Rearranged timeout checks so as to eliminate one of them. commit 5d22885da57a28d4ce96128650dba99a3ea76481 Author: Matteo Frigo Date: Tue Jan 10 08:56:55 2006 -0500 Converted residual CK() -> A(). commit d82a20e3e3a4d47aebbd2ce4350da4976ba32652 Author: Matteo Frigo Date: Tue Jan 10 08:36:13 2006 -0500 Maintain the invariant TIMED_OUT ==> NEED_TIMEOUT_CHECK. commit 08f674254d16c7770944dc9e7c0eaa3579f333bb Author: Matteo Frigo Date: Tue Jan 10 08:24:41 2006 -0500 silence some 64-bit warnings commit 37aaadd4f3be4c0a5f03fffae1df96e82e8064c9 Author: Matteo Frigo Date: Tue Jan 10 07:58:48 2006 -0500 Assertions. commit 3ee7cd888752144ff48442480446982dcbf3bba3 Author: Steven G. Johnson Date: Tue Jan 10 00:14:00 2006 -0500 some condensing commit 667419d3ac72c2cc43df2d10f704111a40320338 Author: Steven G. Johnson Date: Tue Jan 10 00:03:32 2006 -0500 eliminate X(seconds) in favor of X(elapsed_since), in paranoia of clock wrap commit f696d1fe43a496c64fcf0daaa83060ac70c789fb Author: Steven G. Johnson Date: Mon Jan 9 23:21:21 2006 -0500 [empty commit message] commit 95280e070545a42bbd407c52877e6f8b48d778d6 Author: Steven G. Johnson Date: Mon Jan 9 23:21:06 2006 -0500 hmm, a bit more pessimistic about clock wrapping commit 47d7479fd14d1baf3102a699e72eb7158fede8bd Author: Matteo Frigo Date: Mon Jan 9 23:20:26 2006 -0500 Revert to md5uint = unsigned int whenever possible, so as to avoid wasting space for unsigned long on 64-bit machines. commit 887d8a089ff5b925f88a198bf1b1cc7ddf61392a Author: Steven G. Johnson Date: Mon Jan 9 23:12:27 2006 -0500 note why clock() wrap should not be a concern commit 2991a94ba406fa1f245b62216e463a778f646bbd Author: Steven G. Johnson Date: Mon Jan 9 22:57:16 2006 -0500 bugfix in recent timeout changes - check for case where last solver times out commit 3a0c958aa20c64dab514ec5afe74531e933ac77a Author: Steven G. Johnson Date: Mon Jan 9 22:40:26 2006 -0500 started changes list from beta commit 63922f26968d87550c4fcfd47f41225d056e4977 Author: Matteo Frigo Date: Mon Jan 9 22:34:13 2006 -0500 Paranoia. commit 5bf3d3dd9c6ab2be2e450cd03cabb775bb3db4ca Author: Matteo Frigo Date: Mon Jan 9 22:27:37 2006 -0500 Paranoid assertions. commit 967f0848ad28ffe357a4758d477c5826075a4bac Author: Matteo Frigo Date: Mon Jan 9 22:13:32 2006 -0500 Added FIXME comment stating the 64-bit uncleaniness of fftw_tensor_to_bench_tensor(). commit 0a2228df28268ba4855063849942199ed2c86d31 Author: Matteo Frigo Date: Mon Jan 9 22:06:05 2006 -0500 Another 64-bit bug. commit dc20e0d303713ae5664b91eb4762b4a0f5cf0623 Author: Steven G. Johnson Date: Mon Jan 9 21:54:07 2006 -0500 more Windows DLL nonsense commit d884e3edc5ca24864e92470966ed04aeaccab8f9 Author: Steven G. Johnson Date: Mon Jan 9 21:18:25 2006 -0500 some additional dllexport tags required to build the test program, due to internal stuff called by hook.c commit c0fc6ffb403456e03f5e8dc425182e6607c1cd2a Author: Steven G. Johnson Date: Mon Jan 9 20:31:15 2006 -0500 [empty commit message] commit a85549d03edbe4bee47b0248fac7d76d9cdfeb06 Author: Steven G. Johnson Date: Mon Jan 9 20:30:19 2006 -0500 comment commit 1f72b4d52a499bd63cd52ec259ae2585c6df2b66 Author: Steven G. Johnson Date: Mon Jan 9 20:20:28 2006 -0500 [empty commit message] commit fb0eb0e86fcfffb4c1b5ba17cc520e27914c4ff4 Author: Steven G. Johnson Date: Mon Jan 9 20:16:50 2006 -0500 clarification commit 29de1846aefcd05cb14e0dd286a8374a4a9b18e8 Author: Steven G. Johnson Date: Mon Jan 9 20:12:23 2006 -0500 define FFTW_DLL if DLL_EXPORT (defined by libtool) is supplied commit b99426a4b113d6c8017a6feeb22d89b8a32211f7 Author: Steven G. Johnson Date: Mon Jan 9 20:05:11 2006 -0500 whoops commit 5bb395fcc8798c697d5158b9242d4d914922d9db Author: Steven G. Johnson Date: Mon Jan 9 20:00:47 2006 -0500 another stab at Windows DLL mess commit 9453c5ed5d0c160deb3aef127870b7d65c26d8d1 Author: Matteo Frigo Date: Mon Jan 9 19:23:42 2006 -0500 64-bit clean SIMD header file. I missed those because sparse does not know vector types. Grrr... commit a27e044b39f52abb6066e070b1a3492b6be2e155 Author: Steven G. Johnson Date: Mon Jan 9 19:08:36 2006 -0500 this option is called AC_DISABLE_SHARED in the documentation commit 25cd95982a2acda3a3d6220728768164d6d9c890 Author: Steven G. Johnson Date: Mon Jan 9 17:34:13 2006 -0500 fixed --with-gcc-arch to work when cross-compiling commit c0b9d3122ba267c448b98b0ede12bcf27b9b4e02 Author: Matteo Frigo Date: Mon Jan 9 12:04:04 2006 -0500 Moved the timeout check back into the search loop, sicut erat in principio. This gives us a precise control over the timeout. To avoid the overhead of X(seconds)(), only call X(seconds)() if some time measurement was taken since the last call to X(seconds)(). commit 8c4448e2b69fb02b70e85405bf58a77ec4c13de9 Author: Steven G. Johnson Date: Mon Jan 9 00:07:40 2006 -0500 comments commit 3cd770cab6fac7657b7cd55d6d98f3f516a20fb3 Author: Steven G. Johnson Date: Sun Jan 8 23:58:23 2006 -0500 generalized transpose-cut routine to be able to call transpose-gcd recursivly; TOMS follow-the-cycles algorithm now seems to be completely superseded commit 7ce8a67fabd9ed925a7aee905fa50c658ed2fd20 Author: Steven G. Johnson Date: Sun Jan 8 20:53:18 2006 -0500 [empty commit message] commit ee3cbdc7ad5dd5bfcb2f1f3df6b5ace55f121f32 Author: Steven G. Johnson Date: Sun Jan 8 20:52:16 2006 -0500 ignore errors from setscope -- POSIX standard does not require PTHREAD_SCOPE_SYSTEM to be supported, and PTHREAD_SCOPE_PROCESS is usually okay in that case commit 0ee88684468fc0dae5fd08cc684b8c174d885dd9 Author: Steven G. Johnson Date: Sun Jan 8 15:58:40 2006 -0500 added TODO comment commit 839a6d3192f804e3bc018419b90d18aa82d00292 Author: Steven G. Johnson Date: Sun Jan 8 15:39:28 2006 -0500 whoops commit d3fdf3fcd234dbb12aea0ab1029db2f121356f1e Author: Matteo Frigo Date: Sun Jan 8 14:44:23 2006 -0500 Boasted ``much faster altivec performance''. commit 6d85298a5a4c987cf192ae2df25673a8250d265d Author: Matteo Frigo Date: Sun Jan 8 11:44:52 2006 -0500 Added a new pass to the generator to schedule for the pipeline latency. (This schedule modifies the ``optimal'' cache-oblivious schedule and hence it uses more registers.) This pass is currently: * disabled for non-fma code, under the assumption that this will run on a register-starved fma. * enabled for non-simd fma code, under the assumption that this will run on a processor with 32 or more FP registers. The latency of 4 is conservative and does not introduce too much register pressure. * enabled for simd fma code, under the assumption that this will run on altivec. The latency of 8 seems to produce the best results. commit 1e7e0cd308f67033c681c0ae52836283f874fe51 Author: Steven G. Johnson Date: Sun Jan 8 03:13:53 2006 -0500 fixed estimator for vrank3-transpose commit 13dd2e84c1d331d07eaaef76bb78110dbe941446 Author: Steven G. Johnson Date: Sun Jan 8 02:02:11 2006 -0500 more detail on VC++ workaround commit 699008e51d100801bb19d99b2dbe595b1e33c445 Author: Steven G. Johnson Date: Sun Jan 8 00:19:19 2006 -0500 typo commit 2f842c52fbd7cac9b7564045378e1d649af6dbbf Author: Steven G. Johnson Date: Sun Jan 8 00:16:20 2006 -0500 screw it, just use planner for all sub-transposes in vrank3-transpose (still just use memcpy for contiguous copies, though) commit e6908d5d37b50dff661acfecd3687d1a9fd3300c Author: Steven G. Johnson Date: Sat Jan 7 23:13:45 2006 -0500 add an assert commit 000c5f8a4f6f83143f85268a03709d12ba1e896e Author: Steven G. Johnson Date: Sat Jan 7 21:57:34 2006 -0500 vrank3-transpose now uses planner to decide whether to use cpy2d, cpy2d_tiled, etc. commit f9db072d1270330e0fde90db33e71576d4a2e141 Author: Steven G. Johnson Date: Sat Jan 7 20:57:16 2006 -0500 too annoying to have isqrt unexpectedly fail for n==0 commit 9c8847c394cdd9bdd3d02a127a2497e09bab2d28 Author: Steven G. Johnson Date: Sat Jan 7 17:49:37 2006 -0500 clarifications commit 9fdeaf83ff81ca6931d74b65f8477f95fcfae323 Author: Steven G. Johnson Date: Sat Jan 7 16:39:20 2006 -0500 comment fix commit ad7b11b215b77bad24047e811e8bdaa2ee320edb Author: Steven G. Johnson Date: Sat Jan 7 15:16:22 2006 -0500 more faq updates commit 8bc87da1486f5f1a451cc418a345bb12b95479fc Author: Steven G. Johnson Date: Sat Jan 7 15:12:16 2006 -0500 enable fma on hppa, update FAQ entry commit 479aa905ff4136d48a86ef8ea28e46c06c07ee79 Author: Matteo Frigo Date: Sat Jan 7 14:06:31 2006 -0500 Accomodate different semantics of 'const' in C and C++ commit cf0d153fd10cf6e894520f58c2ce1e6259b683c9 Author: Matteo Frigo Date: Fri Jan 6 23:40:53 2006 -0500 Altivec is called VMX in IBM land. commit a46734a158edbc1e170c0e043d64fb3a320c8d80 Author: Matteo Frigo Date: Fri Jan 6 23:40:16 2006 -0500 Noted faster altivec support. commit 4e7329c580102980a2862964df1474c403d59f9d Author: Steven G. Johnson Date: Fri Jan 6 21:49:10 2006 -0500 updated icc flag detection commit 2de66ca6567360268fa4f1653c787903471a2ab7 Author: Matteo Frigo Date: Fri Jan 6 10:01:50 2006 -0500 Note ``memoize triggen''. commit c19609ea4726f8e842db68cbf15f2ee94abdf33d Author: Matteo Frigo Date: Fri Jan 6 09:36:51 2006 -0500 Use --enable-threads to generate dependencies in the threads/ directory. commit 7538d17a7e277e5f3099b285f85944ee81df6a7c Author: Matteo Frigo Date: Fri Jan 6 09:26:29 2006 -0500 Workaround to icc #defining __GNUC__. commit 3623ea4c4e5649470d360af6c89410b22da9b9ef Author: Matteo Frigo Date: Fri Jan 6 09:21:19 2006 -0500 Switched name to 3.1-beta1. commit 5022d2e2f5e385f82c9b298f958a6935de39233c Author: Matteo Frigo Date: Thu Jan 5 23:08:44 2006 -0500 More thoughts. commit d6262891e97139b27fdb2ca73addf122be568d17 Author: Matteo Frigo Date: Thu Jan 5 22:30:51 2006 -0500 Note wish that (block_size % 4) == 0. commit d6779fe4008a3ff1b5341cc82946e24a6e0cf418 Author: Matteo Frigo Date: Thu Jan 5 22:19:09 2006 -0500 Check alignment of mstart, mcount in SIMD codelets. commit 3d4fc920479d90ecc75a2256c6306c148d2a7bd8 Author: Matteo Frigo Date: Thu Jan 5 21:56:19 2006 -0500 Enable threads at bootstrap time, so I get the compiler warnings that I would otherwise ignore. commit 90f3ef0fb9b081f29eae1e1923e94ea3bb29d7ba Author: Matteo Frigo Date: Thu Jan 5 18:23:15 2006 -0500 made compilable by c++ commit b68d5ed7c28299cf92764bff3ab8b8f06ec1cf00 Author: Matteo Frigo Date: Thu Jan 5 17:39:02 2006 -0500 FIXED: incorrect twiddle_shift() commit b56739cdd0ea335b6ca48c8dd34103316cc43785 Author: Matteo Frigo Date: Thu Jan 5 16:01:51 2006 -0500 Replaced remnants of awake flag with the new enum wakefulness type. commit 8871d572d270aa76dea86073fc11362c6d516c9a Author: Matteo Frigo Date: Thu Jan 5 11:20:59 2006 -0500 Oops---there is no need to find a free slot. commit fedf131be6c553e13212c16f7a8f474a0e61fed6 Author: Matteo Frigo Date: Thu Jan 5 09:41:58 2006 -0500 Assertions. commit ff66bb4a211ea2640f833ae48bedb1b34a0b47f2 Author: Matteo Frigo Date: Thu Jan 5 09:29:55 2006 -0500 Commented the hash table lookup algorithm. commit 4bafb30ddfc85ff74bb758a23532ce60bb621d19 Author: Matteo Frigo Date: Thu Jan 5 09:12:00 2006 -0500 Fixed infinite loop in hashtable lookup/insert. Grrr... commit 02a5374038e878b9e0cfe88ee88b0389bf20a255 Author: Steven G. Johnson Date: Wed Jan 4 22:04:28 2006 -0500 updated copyright years to 2006 commit b2d48f50aa87d2b9e5f57c6c04959b7ce0984732 Author: Steven G. Johnson Date: Wed Jan 4 21:57:23 2006 -0500 whoops commit 24baeff279c41dbe00c5fd1b13844175e8f70cfe Author: Steven G. Johnson Date: Wed Jan 4 21:52:18 2006 -0500 whoops commit 490a044a9e2b2f599506ef415c3f87c2b64ba83a Author: Steven G. Johnson Date: Wed Jan 4 21:51:40 2006 -0500 more updates for recent pentia/amd commit 21fc6cf5d45450edd194c6d83d328dd7c27c8142 Author: Matteo Frigo Date: Wed Jan 4 20:57:47 2006 -0500 Pruned TODO. commit 96c862a6929365a5a78a2196cd72c5037082c5d8 Author: Matteo Frigo Date: Wed Jan 4 20:43:41 2006 -0500 Prototype of problem_destroy() commit 700b7dcd5331fe4317b214d64086771a404814ef Author: Steven G. Johnson Date: Wed Jan 4 20:43:13 2006 -0500 rm obsoleted TODOs commit f722e923cd823d4501bc8c3a730fbc09d2c26e06 Author: Matteo Frigo Date: Wed Jan 4 20:37:24 2006 -0500 Fallback to 970 if neither -mcpu=power5 nor -mcpu=power4 are supported. commit b5823feffb1b189d536e5c562959969c247a61c3 Author: Steven G. Johnson Date: Wed Jan 4 20:29:07 2006 -0500 NEWS updates, clarifications, and reorganization commit fffa543ce9d6cb43d2c09bf401c029b5f6830356 Author: Steven G. Johnson Date: Wed Jan 4 19:54:41 2006 -0500 remove some compiler warnings, add an assert check, make estimator work properly for nop plans commit 3c4889a04995ac9f01ffdb3c4dd0ddc4ef42dc53 Author: Matteo Frigo Date: Tue Jan 3 19:34:04 2006 -0500 Two big changes: 1) revised the twiddle generation machinery, to avoid generating twiddles when measuring, and to use a faster O(sqrt(N)) table when this entails no loss of precision. 2) implemented new ALLOW_PRUNING estimator hack. commit 30e3e40e0439f7109a75c063ebb0544bbe68a0c7 Author: Matteo Frigo Date: Sat Dec 24 22:08:29 2005 -0500 Estimator tweaks, mostly to favor generic over rader for small n. commit 2e0e06d43cef1259a6fdda21744c8fa71960ea69 Author: Matteo Frigo Date: Sat Dec 24 17:55:47 2005 -0500 Grrr... missing break statement in switch. commit 12348cb25f94416b730862ea4d0a5e85eb2c98b2 Author: Matteo Frigo Date: Sat Dec 24 16:08:50 2005 -0500 Swapped fields TW and OPS in struct ct_desc_s, to make k7 asm code insensitive to -malign-double. For consistency, changed struct hc2hc_desc_s in the same way. commit 33a820de9270d537b4079f08fe258a969c410632 Author: Matteo Frigo Date: Sat Dec 24 16:00:42 2005 -0500 Wrong check for infeasible slvndx in imprt(). commit 4b5008a48fbfaf95504f2816b980f971d6678326 Author: Matteo Frigo Date: Sat Dec 24 15:56:59 2005 -0500 Removed obsolete function invoke_solver_if_correct_kind(). commit e1959cade352dd407f5c1c87cf37580ef60f6eb3 Author: Matteo Frigo Date: Sat Dec 24 14:22:12 2005 -0500 Faster implementation of safe_mulmod(), avoiding divisions altogether. Works for 0 <= p <= INT_MAX. commit f827b89e687419b19b7133b64651c3a2f10de064 Author: Matteo Frigo Date: Sat Dec 24 12:05:54 2005 -0500 FFTW_ALLOW_LARGE_GENERIC must belong to flags->l, it cannot be overridden by fftw. commit 5dbe4dcaa75797cb76e09e4349b526993fb435b2 Author: Steven G. Johnson Date: Fri Dec 23 20:46:24 2005 -0500 no more need for limits.h, add some explanatory comments commit 1dba2396d5d50261e6c82014e279b4ac035120f2 Author: Matteo Frigo Date: Fri Dec 23 17:50:25 2005 -0500 Paranoia. commit a09014d7cc40be154096f5b14b0b136985ac39fb Author: Matteo Frigo Date: Fri Dec 23 17:40:41 2005 -0500 Fixed subtle bug involving overflow of the slvndx field in flags_t. commit 1a5304605e6f104eb147f96a5bc76dad55ad9dbf Author: Matteo Frigo Date: Fri Dec 23 16:33:56 2005 -0500 Note 64-bit clean. commit 7d6e177477acee44216776a7afff2306b58eb963 Author: Matteo Frigo Date: Fri Dec 23 15:34:32 2005 -0500 Threads are now 64-bit clean commit 208ba330fb9eaaa58a138350dc9f9e965b95bd2c Author: Matteo Frigo Date: Fri Dec 23 13:00:31 2005 -0500 Restored the old numbering TW_NEXT=3 etc, because the k7 code depends on it. commit 5a7e2e7cbedf9021d8b278afdd9762f3fe0cc697 Author: Matteo Frigo Date: Fri Dec 23 11:58:00 2005 -0500 Portable implementation of MULMOD() and safe_mulmod(). Removed all unnecessary AC_CHECK_SIZEOF() from configure.ac. commit e515294ed8f991b8efb4dc7a0891c16562783679 Author: Matteo Frigo Date: Thu Dec 22 11:12:29 2005 -0500 Inline the loop body in r2r codelets like we do everywhere else. commit 94210bafc8387499f631cdd6187ab293943261a2 Author: Matteo Frigo Date: Thu Dec 22 10:48:53 2005 -0500 Oops. commit 2dcf5d5b1908062b236d6aa2fba93b28937e9488 Author: Matteo Frigo Date: Thu Dec 22 10:25:15 2005 -0500 Renamed X(sin_and_cos)() to X(cexp)(). commit de2f6ff5df500a8d15c1cb36f620d277994ec098 Author: Matteo Frigo Date: Wed Dec 21 22:49:58 2005 -0500 Somewhat faster generation of twiddle factors. commit 2bda3ba8833c53949694b05f2518b57b2cda80a3 Author: Matteo Frigo Date: Tue Dec 20 23:50:01 2005 -0500 tweaks commit 86c8779bcf89bca6fad1812b716a0171b7ab0f91 Author: Matteo Frigo Date: Tue Dec 20 22:29:19 2005 -0500 Sped up planner, esp. in estimate mode. The planner now classifies all solvers into DFT, RDFT, and RDFT2, and it only invokes solvers appropriate for the problem being planned. Because we have several hundred solvers, the overhead of calling irrelevant solvers is significant, and this modification mitigates the issue somewhat. commit 98ea24afbd44d88617f25cd467def39b934cbed5 Author: Matteo Frigo Date: Mon Dec 19 22:04:00 2005 -0500 Eliminated all calls to sprintf() in favor of own routines, so as not to force users to link stdio and the associated locale/pthreads crap. commit 112a5e19c813a918315e26a80ed9e1f427aa59c3 Author: Matteo Frigo Date: Mon Dec 19 21:27:25 2005 -0500 Implemented routine to print INT, removing the need for c99's %td format. commit 5c20f07423e4661b32498afa8071e1f6dacd47c7 Author: Matteo Frigo Date: Mon Dec 19 12:06:33 2005 -0500 info->n is size_t commit 6ae75f3b9b700352da7e3ad728d49d988f80e864 Author: Matteo Frigo Date: Sun Dec 18 18:15:04 2005 -0500 Explicit casts in front of pointer difference in printf() context, just in case INT != ptrdiff_t. commit 25abe60b6b82d9cab328fbfc8dc17f33ffd6803a Author: Matteo Frigo Date: Sun Dec 18 16:52:38 2005 -0500 Forgot to add %D to print.c commit 7e07750df2164e8f8c88185b8857c527f145b444 Author: Matteo Frigo Date: Sun Dec 18 16:43:26 2005 -0500 Use %D as format character for type INT. commit 1bf67aff56a4e6b2f0fc41cb8b66e9b09d4b2ea0 Author: Matteo Frigo Date: Sun Dec 18 15:14:03 2005 -0500 Changed type of an_int_guaranteed_to_be_zero. Changed name as well. commit 602b07fee7f1fbb86b429e682fbce4a4f886e0d1 Author: Matteo Frigo Date: Sun Dec 18 14:41:31 2005 -0500 converted %o -> INT commit e99c67870f4d09190598610fc7c1bd5df8e4515e Author: Matteo Frigo Date: Sat Dec 17 20:28:50 2005 -0500 Major 64-bit cleanup. commit 3cd29a6839b31e093a5c715d6deb2867eafb1b15 Author: Steven G. Johnson Date: Wed Dec 7 22:39:01 2005 -0500 PGI x86-64 cycle counter, courtesy Cristiano Calonaci commit 7b830d38cb785513bde604f14a3253e171a75e0c Author: Matteo Frigo Date: Mon Dec 5 21:25:57 2005 -0500 Must insert into hash table when wisdom_state == WISDOM_ONLY, otherwise wisdom does not work. commit 9cfa064f6635afd41f01788e5a16a7a56babfca0 Author: Steven G. Johnson Date: Sat Oct 8 18:08:44 2005 -0400 comment commit 7fd8f4a4ff768b59317a318d3d83ac0726609868 Author: Matteo Frigo Date: Sun Oct 2 11:49:13 2005 -0400 Paranoia: made planner robust against MD5 collisions. commit 55004ef918346e933b7d46aa529fc76258c0b673 Author: Matteo Frigo Date: Tue Sep 27 22:33:18 2005 -0400 Note that --enable-3dnow is unsupported. commit 317d36cb4265710fe5ccbf3518f15f7f24c076cb Author: Matteo Frigo Date: Tue Sep 27 22:31:04 2005 -0400 * Removed --enable-3dnow support. * SIMD support for split complex arrays. commit 2f87ee31a3c1a416b983aee2ad2441b0624f6839 Author: Matteo Frigo Date: Tue Sep 27 22:28:41 2005 -0400 Removed --enabled-3dnow, since it is becoming useless as the world moves to x86-64, and it is a pain to maintain. (We should probably remove the k7 stuff as well.) commit e5a5da39405e5960f93478937fea04c98feabf49 Author: Matteo Frigo Date: Tue Sep 27 21:59:16 2005 -0400 Missing BEGIN_SIMD(), END_SIMD() statements. commit 7898dae11c979e9b069616b3d922b09b23b8750f Author: Matteo Frigo Date: Tue Sep 27 12:16:08 2005 -0400 Tweaks commit 3bc850803f4f000f1c979a3576bdd066c37eaafe Author: Matteo Frigo Date: Tue Sep 27 10:04:32 2005 -0400 Fixed wrong opcount for simd codelets. commit 2c35b6d0d3217976f3597d04403cfac7a4f7da57 Author: Matteo Frigo Date: Tue Sep 27 09:25:50 2005 -0400 Fixed wrong opcount for simd codelets. commit 27aa07803ba692bbdbc563607e6531222bb56488 Author: Matteo Frigo Date: Mon Sep 26 22:58:19 2005 -0400 fixed flop counts commit 97b8e6bc0d2daddf10da0eb41c94e8e8c4e92bf1 Author: Matteo Frigo Date: Mon Sep 26 22:34:40 2005 -0400 Silence warnings commit 804b1a4d34edaba87c4aa0f6f7fe3f173bb926f8 Author: Matteo Frigo Date: Mon Sep 26 20:52:36 2005 -0400 Implemented split-complex SIMD codelets commit 4c34b9513f4003ec04ebc836dd009d15d4f913f1 Author: Matteo Frigo Date: Sun Sep 25 22:25:35 2005 -0400 Generalized the ``store pairs'' trick (now called ``store multiple''). commit c8eb4f532fe1b280cd93313eab57b1e51cd6d4cf Author: Matteo Frigo Date: Sun Sep 25 18:58:20 2005 -0400 Silence some warnings. commit 7ecbbeacf952a07cbc1a338fa9bdc9612d99b7bb Author: Matteo Frigo Date: Sat Sep 24 12:37:16 2005 -0400 Removed obsolete cruft commit 9a8a94ca3fb2d0ee33268ae8527f65260631d958 Author: Matteo Frigo Date: Mon Sep 19 22:55:19 2005 -0400 Re-enabled check for because OSX requires it. commit 2525a542b0277af07f89f45a3e68c2ac022d4189 Author: Matteo Frigo Date: Sun Sep 11 11:03:03 2005 -0400 Check for sizeof(unsigned int) unconditionally, because the result is used by ifftw.h. commit 5750c658cabc6d64ab0f9817312b2399d75f4041 Author: Matteo Frigo Date: Sun Sep 11 10:59:40 2005 -0400 Higher size limit for t2 codelets. commit c5134ff6de3bfe5306428398c14cb7dcc9a09afe Author: Matteo Frigo Date: Sun Sep 11 10:50:37 2005 -0400 Heuristic: do not use t2 simd codelets for N>1024. commit 8c4b74a02763d61fd64c98f01fd2658bf80fbc68 Author: Matteo Frigo Date: Mon Sep 5 22:22:50 2005 -0400 Larger tolerance in timer calibration routine. commit ed07b941c3be22c7f19c569bd29230c683783b47 Author: Matteo Frigo Date: Mon Sep 5 16:03:33 2005 -0400 #include unconditionally. (There is no point in checking.) commit f03e0aced4c470b2b24d8d5abb94be526833a2b1 Author: Matteo Frigo Date: Mon Sep 5 15:23:27 2005 -0400 Removed SSE and SSE2 asm because it was bitrotting. Use the Intel API instead, which seems to be supported by gcc >= 3.3. Moved files that require -msse, -msse2 to new directory. commit a12a85c774d25cb85391f200a8e6d62da2572cce Author: Matteo Frigo Date: Mon Sep 5 12:56:28 2005 -0400 Parse cputypes of the form 7447A,altivecsupported commit 1d5a7d722689e83fdcccae9edae36ec276b68241 Author: Matteo Frigo Date: Mon Sep 5 12:52:30 2005 -0400 Distinguish powerpc 7400 from the 7450, which has a different pipeline. commit b363c2bb7fe126fe80afcd974a463349e63a48a6 Author: Matteo Frigo Date: Mon Sep 5 12:46:00 2005 -0400 Paranoia: define RIGHT_CPU unconditionally. commit 558789684b3fa4435a4fab4d86769f2a5ee53b57 Author: Matteo Frigo Date: Thu Aug 11 20:56:41 2005 -0400 Removed obsolete name fftw-wisdom2c. commit d73fb7f9d84bc1acccdf9c8f7f2b71e10b3d7854 Author: Matteo Frigo Date: Thu Aug 11 20:55:59 2005 -0400 Avoid creation of temporary files---use cpp magic instead. This fix solves a security bug and avoids nonportable tempfile creation hacks. commit a74941c286a12d9a008c3b89ba558cfab82587af Author: Matteo Frigo Date: Fri Aug 5 10:03:02 2005 -0400 Workaround for with gcc-3.3 altivec bug. commit 259f7d688fec2615a29b1aeb22321568cdcc4bc4 Author: Steven G. Johnson Date: Wed Jun 15 21:36:46 2005 -0400 solaris fix: check -pthreads first since gcc does not like -pthread but chokes due to stubbed libc (grr) commit 261b7c0fcfaa8c8e6a34d06b051c4355bcac60b1 Author: Steven G. Johnson Date: Fri Jun 3 17:19:56 2005 -0400 note that VC++ bug was fixed in 2005 commit 14832d8b25d4091667d3f0e5c8fd8fa1c14f8ce1 Author: Steven G. Johnson Date: Mon May 30 16:30:45 2005 -0400 generalized ax_cc_vendor to ax_compiler_vendor commit b13949fd1df86e14fcd73495557bea7532b49b8c Author: Steven G. Johnson Date: Mon May 30 15:55:07 2005 -0400 updated message commit ead701adfc138233d26e86258f0daa8041a41d37 Author: Steven G. Johnson Date: Mon May 30 15:45:14 2005 -0400 update for new AC archive format commit 56c34ca4db1ff26982040ff00e1cb549653ab720 Author: Steven G. Johnson Date: Mon May 23 23:12:22 2005 -0400 [empty commit message] commit c04871b2f43fe56cd9e921b4864a26ad354cf3f5 Author: Steven G. Johnson Date: Mon May 23 18:17:38 2005 -0400 [empty commit message] commit c4afbfd4ef5235b1b88715bac592b8f091d76d13 Author: Steven G. Johnson Date: Mon May 23 18:13:08 2005 -0400 more notes commit 1cf10c2f758f89da2c0f8bd68f0a8c974e93f33c Author: Steven G. Johnson Date: Sun May 22 23:37:08 2005 -0400 whoops commit 568dac7da89c3fe5dbab61ff28e2aa6dc52ca71f Author: Steven G. Johnson Date: Sun May 22 22:37:50 2005 -0400 note icc 8.x annoyance commit 1b1f5c242db3f55c2dfadb248a9fb292981c5e6b Author: Steven G. Johnson Date: Sun May 22 22:36:04 2005 -0400 [empty commit message] commit f66bc7b513029ac91ec983bb3279f3c0dec3468c Author: Steven G. Johnson Date: Sun May 22 22:35:34 2005 -0400 note gcc 3.4.[0123] bug, which is fixed in gcc 3.4.4 commit 0f2a7eb61a2bcf44583bd41245ad55c7e78eb70f Author: Steven G. Johnson Date: Sun May 22 22:21:26 2005 -0400 added automatic detection of icc architecture flag commit 7b90a23bc9ceeeb03131b4774aa0ff5d04e91c63 Author: Steven G. Johnson Date: Sun May 22 21:47:19 2005 -0400 add -no-gcc to icc flags...even if it is Intel's fault, I'm sick of dealing with bug reports about this commit ff0439a0bc1dc149d302630cb96062fc7fb053f1 Author: Steven G. Johnson Date: Sun May 22 21:40:59 2005 -0400 added @cindex portability commit e18637fa933a8a75ef831024c4c966d6a2dff76b Author: Steven G. Johnson Date: Sun May 22 21:34:10 2005 -0400 note --without-gcc-arch commit 7131ee53a750ff084f05b97c67e34a39e1a7011c Author: Steven G. Johnson Date: Sun May 22 20:54:54 2005 -0400 bsd ppc detection; some odd 603 types commit 7f439b2ab6289af0e08134c659480f9589b13387 Author: Steven G. Johnson Date: Sun May 22 11:53:20 2005 -0400 [empty commit message] commit 32419ec5a48e285cbcbee2f0a4c49e628fcf6ccb Author: Steven G. Johnson Date: Sat May 21 20:34:52 2005 -0400 ensure no spaces in cputype commit 7a6288d8a7617720cb8c46fc9152a31c7dab793a Author: Steven G. Johnson Date: Sat May 21 20:31:41 2005 -0400 nevermind commit b9bac647b7039e381615e0faac27fc3a8de06eb4 Author: Steven G. Johnson Date: Sat May 21 20:30:08 2005 -0400 more bsd stuff commit f1c985e46f8c17122e47ece0e9696258638be1f1 Author: Steven G. Johnson Date: Sat May 21 20:28:40 2005 -0400 added BSD cpu detection for SPARC and better super/hypersparc detection commit e35c028649be9cc1568401e9e39eb2e19d1cda3b Author: Steven G. Johnson Date: Sat May 21 20:22:11 2005 -0400 comment commit a0582b1056c2562cd639c18f2827fc124dd79fa6 Author: Steven G. Johnson Date: Fri May 20 19:40:09 2005 -0400 "alternate" == "alternative" is US-centric commit 333d9eb5086ed1afa77719e9f24142a8bd5dada9 Author: Steven G. Johnson Date: Fri May 20 19:36:26 2005 -0400 typo commit e2d0b93f5de6abb830a0d28324399d4689850b09 Author: Steven G. Johnson Date: Fri May 20 01:28:34 2005 -0400 clarification commit f8a4a4af8c47ae8e572e5f169c0eeb0720eb7473 Author: Steven G. Johnson Date: Tue May 17 18:56:46 2005 -0400 print out estimate-planner time from can_do in verbose>2 mode commit e1bbc2ce6ff2b094ad3549a5140d6acd0218b7d8 Author: Steven G. Johnson Date: Mon May 9 00:47:19 2005 -0400 comment commit 2e2b68117557549932c89d24586be1852a189462 Author: Steven G. Johnson Date: Thu May 5 23:47:55 2005 -0400 fixes for building Windows DLLs with Cygwin; thanks in part to Stephane Fillod commit bb8fc9fb4dda639b9f0b1f13ef448e39d71a4b39 Author: Steven G. Johnson Date: Fri Apr 22 19:47:43 2005 -0400 -ffast-math seems to produce code that is either about the same speed or slightly faster (gcc 3.3 and 4.0, x86) commit 2f7b1f2707810c171bb85b330c99a94196a257d0 Author: Steven G. Johnson Date: Fri Apr 22 19:18:23 2005 -0400 power5 fallback to power4 sched for older gcc's commit 169cba437dfb6f553bb1a8e2a404ca2bf74a5b56 Author: Steven G. Johnson Date: Fri Apr 22 19:14:53 2005 -0400 check for power5 commit 1978d7cd087b7e6e93133c7b4aa2c612f664203d Author: Matteo Frigo Date: Tue Apr 19 21:55:13 2005 -0400 Removed clause #3 commit 3c385073178a321cc4108d4b88f121276b5d0020 Author: Steven G. Johnson Date: Tue Apr 19 21:44:57 2005 -0400 license clarification commit ab865d9025afbb6c923e94956c3e7ebdd64ef75d Author: Matteo Frigo Date: Tue Apr 19 21:42:51 2005 -0400 Changed license of fftw3.h to X11. commit d851f36c4ff5e1febbc2ed47cb08eba3f8dbaf19 Author: Steven G. Johnson Date: Mon Apr 11 13:15:12 2005 -0400 delete fixed-input code commit cc673385bfc98894c37272241fcb6135756d2c14 Author: Matteo Frigo Date: Sun Apr 10 16:33:24 2005 -0400 joned L-U-planner branch commit d4b2b38d4a6b40919a6229bb574ecd49884ad58f Author: Steven G. Johnson Date: Thu Apr 7 23:15:02 2005 -0400 ref commit 8895af84fb9e4970420b21451977fde49072c2b9 Author: Steven G. Johnson Date: Thu Apr 7 00:11:13 2005 -0400 whoops commit 6dbfe38e27a7f4a5090917f8b53a03e334a40881 Author: Steven G. Johnson Date: Wed Apr 6 22:06:21 2005 -0400 added (optional) new split-radix algorithm, enabled with -newsplit; also new -standalone option to omit desc; also -unitary, -normalization, and -normsqr options to generate r2r codelets with various normalization (to match lit. in DCT-II, use: -unitary -normsqr 2) commit 5e1deadac7dbe4d60d493b86f66b37474388b11e Author: Matteo Frigo Date: Fri Mar 25 08:59:43 2005 -0500 Moved timeout check outside the search loop, because X(seconds) is expensive. commit 094cbe955f1ad43c143f7781eb524ede71d164bc Author: Matteo Frigo Date: Sun Mar 20 18:35:53 2005 -0500 Enable vector recursion for in-place problems, otherwise dftw-genericbuf works only in PATIENT mode. commit 14a9b596a784705637abb9cd5a47595ed2a4bcbd Author: Matteo Frigo Date: Sun Mar 20 17:53:58 2005 -0500 oops commit 7ea889cca28101323df5287b988ee6bd96c531a0 Author: Matteo Frigo Date: Sun Mar 20 17:49:13 2005 -0500 make solver UGLY for small N commit a4abcfa708787e3e18b32fc37506992215578c4b Author: Matteo Frigo Date: Sun Mar 20 17:16:37 2005 -0500 new dftw-genericbuf solver commit 70997fbe34952f59b14245e68e5fd4614d13c3ac Author: Matteo Frigo Date: Sun Mar 20 16:12:44 2005 -0500 new dftw-genericbuf solver commit 3d40d10cca6f0fb8ed0e327ae23d569829a43768 Author: Matteo Frigo Date: Thu Mar 17 21:48:19 2005 -0500 Hmm... what was I thinking? commit b27eff441bd1e24148569ed9ee02c05c08b46ea4 Author: Matteo Frigo Date: Thu Mar 17 19:20:54 2005 -0500 Workaround for a MSVC bug. commit 433960d78aef7dc12c5611baa3213b4db99f99cc Author: Matteo Frigo Date: Thu Mar 17 08:18:39 2005 -0500 Workaround for a MSVC bug that was reported by Eddie Yee. commit 0c4f3dfe86c936003eed705208a100c11a5bcce6 Author: Matteo Frigo Date: Tue Mar 15 13:25:53 2005 -0500 try both contiguous input and contiguous output when in doubt commit 155f07c46c6589d374f886a8ed86f985a64642e3 Author: Matteo Frigo Date: Tue Mar 15 08:44:41 2005 -0500 Added genfft flag -precompute-twiddles which moves the computation of the twiddle factors before the main schedule. This flag produces smaller code everywhere, and slightly faster code on powerpc. I observe no speed difference on x86. commit 5cc6165f9756f2faeab137eed5f8c25ebac08773 Author: Steven G. Johnson Date: Mon Mar 14 21:43:53 2005 -0500 sp commit 255c6db9915f31c3b323cee61a7900999c7b4cfe Author: Steven G. Johnson Date: Mon Mar 14 21:43:05 2005 -0500 whoops, spelling error (thanks to Steve Eddins for bug report) commit 556965536b7671795bc6e4ef86edfffe75b2ffd9 Author: Matteo Frigo Date: Sat Mar 12 15:03:47 2005 -0500 Do not approximate pcost = vl * child->pcost unless child is guaranteed not to be a simple codelet. commit a5282a50ce6211585a443fa099e2fa6e47450ceb Author: Matteo Frigo Date: Wed Mar 9 20:00:02 2005 -0500 Relaxed applicability conditions. commit 2496640b61c0ac594325d4fa68e3729873c004bd Author: Matteo Frigo Date: Wed Mar 9 00:05:47 2005 -0500 Minor optimization commit 81c49148f9fb58b0c541b2636b37bd8422a458b1 Author: Matteo Frigo Date: Tue Mar 8 22:14:02 2005 -0500 Interpret K to mean *1024. Similarly for M. commit b94f2eb04282f6c3c511944e3767a8895a19ef77 Author: Matteo Frigo Date: Tue Mar 8 20:44:25 2005 -0500 Hmm... somehow some previous commit got lost. commit 55b8abdbbc3a2bbb26f005735bd9d121634c4055 Author: Matteo Frigo Date: Tue Mar 8 20:30:42 2005 -0500 Paranoia commit 752db4c71fd1a447d9ed1699ed0382e042d4f89c Author: Steven G. Johnson Date: Mon Mar 7 14:30:01 2005 -0500 whoops commit 6c18ecea25e2a9f685131b49c7365fc35b8c4c7c Author: Steven G. Johnson Date: Mon Mar 7 14:29:43 2005 -0500 move fftw-specific HP/UX tweak into configure.ac commit 3916e3b25257834172ce4eb126a2d745b8943123 Author: Steven G. Johnson Date: Mon Mar 7 14:19:24 2005 -0500 ax_cc_family -> ax_cc_vendor (vendor names are easier to remember), add checks for many new compilers, use in ax_cc_maxopt commit a0ad3ef6add8118e82611c08b4c252ec8346efea Author: Matteo Frigo Date: Sun Mar 6 21:36:05 2005 -0500 Count FMA as one flop in estimator when HAVE_FMA commit 10a57b3a5a428bab777ec22f4eb83203498a743a Author: Matteo Frigo Date: Sun Mar 6 19:16:06 2005 -0500 Do not try radix-2 generic. commit e38ef2e30e6f41fb2301acf208ff7f9b775de0ac Author: Matteo Frigo Date: Sun Mar 6 13:04:23 2005 -0500 Use -O3 for xlc now that we use -O for CODELET_OPTIM commit be3c47c96bcc1ef146a296202b53db7a457b3230 Author: Matteo Frigo Date: Sun Mar 6 13:02:41 2005 -0500 New AX_CC_FAMILY macro, that detects the compiler based on symbols that it defines (as opposed to the name of the compiler). We need to start use this strategy everywhere else. commit 562882d5c889b0bce256013a056ce07f55c27dfb Author: Matteo Frigo Date: Sun Mar 6 11:33:15 2005 -0500 Runtime checks to guarantee small strides. commit 1fcf24126783752b3ab8f35f480a0e5d0fa90aab Author: Matteo Frigo Date: Sat Mar 5 20:09:25 2005 -0500 Reduced the search space for rank-0 transforms commit 77cbffe7c30bbac4d294cd2c7321163054732418 Author: Steven G. Johnson Date: Fri Mar 4 17:50:29 2005 -0500 little assert commit 495b9d7617c0167346817c4d5620fe80ee2d1194 Author: Matteo Frigo Date: Tue Mar 1 09:19:16 2005 -0500 Implemented directbuf, enabled for now. commit 1869b027f29cef23f101026dee512744fba87eaa Author: Matteo Frigo Date: Mon Feb 28 22:21:14 2005 -0500 Unified dftw-direct, dftw-directbuf in an attempt to tame code growth commit 82fce69cd912d2a58b86a5699c04d2eea3b9a536 Author: Steven G. Johnson Date: Sun Feb 27 13:51:24 2005 -0500 fixed copyright commit 7d1a5530230d76d105f3ed4aeebdf4f708ed0e8a Author: Matteo Frigo Date: Sat Feb 26 22:21:03 2005 -0500 silence warnings commit 753ab3b636f099eedb841e643898aed3e8c5c817 Author: Matteo Frigo Date: Sat Feb 26 22:19:16 2005 -0500 oops commit a64fecb2ccd2670c6b37d40d70558d553e4cb17d Author: Matteo Frigo Date: Sat Feb 26 21:28:39 2005 -0500 Tweaking while thinking about a higher-rank transposer (bitreverser) commit 9c7a7d3c45be7ca132fdece876ebea7eb053fad7 Author: Matteo Frigo Date: Sat Feb 26 20:06:49 2005 -0500 Transposed the buffer, and skewed it. This allows for contiguous copy operations, and the codelet should not incur associativity conflicts if the buffer is large. commit 521fa92ebcf99b32b35cb4c26b304f42a2812e22 Author: Steven G. Johnson Date: Sat Feb 26 18:14:11 2005 -0500 make tensor_max_index more reasonable (take maximum of input and output max indices, computed separately) commit c6c2bcbb2b8c8f3b1da7d5465e4bee93905c8d32 Author: Matteo Frigo Date: Sat Feb 26 10:04:30 2005 -0500 Use cpy2d instead of cpy2d_tiled, because vl may be too large. commit 269e71f3db6c3d1bcf8dc77e25983dcc9989d5f7 Author: Matteo Frigo Date: Sat Feb 26 00:31:52 2005 -0500 Fixed old bug that was introduced with yesterday's changes. commit e769a1735dd71165677025498471db8a41271198 Author: Matteo Frigo Date: Fri Feb 25 21:54:23 2005 -0500 ``Interesting'' switch statement. commit 7e729390b41355c7abf6c2a3901dec6cb40c4c23 Author: Matteo Frigo Date: Fri Feb 25 12:29:54 2005 -0500 Disabled -reorder-loads -reorder-stores, since they seem to do nothing. commit 4350026ea3252e1dbc25b1539941ee79b3cb6124 Author: Steven G. Johnson Date: Fri Feb 25 12:19:10 2005 -0500 Because of the recent changes to kernel/pickdim.c, splitrnk=0 is no longer equivalent to splitrnk=1 for rnk < 4, where the latter is the FFTW2 behavior. For small rnk, however, I observe the planner to pretty consistently choose the FFTW2 behavior (splitrnk=1), despite its not being asymptotically optimal in the cache oblivious sense. So, make splitrnk=1 instead of splitrnk=0 the default in FFTW_MEASURE and FFTW_ESTIMATE modes (rnk > 3 is pretty rare in practice anyway). commit 3bfeb642d11098a707ca70b7332077b6472917d6 Author: Steven G. Johnson Date: Fri Feb 25 00:33:27 2005 -0500 tweak commit 24560b26faac0a352c23e15c892c38a762bbb453 Author: Steven G. Johnson Date: Fri Feb 25 00:29:09 2005 -0500 slight relaxation commit cadf7b9d5561d14d8042ad3b051f7f95a010cb1f Author: Steven G. Johnson Date: Fri Feb 25 00:21:00 2005 -0500 cruft commit 42d46a1c8af18b951c978ee2cf1cc57ca106929f Author: Steven G. Johnson Date: Fri Feb 25 00:03:14 2005 -0500 added experimental indirect-transpose solver: when transforming the columns of the matrix, allow us to do a transpose to make the DFTs contiguous commit eec7f69ff78e1b95f1bdd09a2f96b3be5cf1b407 Author: Steven G. Johnson Date: Thu Feb 24 23:04:58 2005 -0500 check for abort() commit e1d0f900a4e4444b4ef0fa230de11da87a48a192 Author: Steven G. Johnson Date: Thu Feb 24 23:04:43 2005 -0500 call abort() on failed assertion commit 4d8aee345fa2da4b2383722a482d245d38288dad Author: Matteo Frigo Date: Thu Feb 24 21:17:23 2005 -0500 Forgot to change X(isqrt) -> isqrt_maybe commit 47e79fca2a795dcd96ecf59852cdc53bc883f9d1 Author: Steven G. Johnson Date: Thu Feb 24 20:18:59 2005 -0500 require finite_rnk commit 7e29047649fc202d7061c007ce3ba8a3962ed38c Author: Steven G. Johnson Date: Thu Feb 24 20:07:38 2005 -0500 #ifdef HAVE_STRING_H must come after rdft.h so that we get config.h commit d0b93533d99e69f85e2aaf759989f652311206ac Author: Matteo Frigo Date: Thu Feb 24 18:59:40 2005 -0500 Implemented reordering of loads and stores so that the real and imaginary part are loaded/stored together. This should improve out-of-cache performance in the presence of associativity conflicts, and maybe worsen in-cache performance because of worse scheduling. Enabled for now, for experimental purposes. commit 827ad1c139031037135765c5600dcf05b58030e4 Author: Steven G. Johnson Date: Thu Feb 24 18:10:49 2005 -0500 fix comment commit 35e5d61fd3b5f769ea631e357ac6f55002f74f96 Author: Steven G. Johnson Date: Thu Feb 24 18:10:23 2005 -0500 better message commit d2c6d9c9d37a6ea058c48c7445fbaca7089a6489 Author: Steven G. Johnson Date: Thu Feb 24 18:08:36 2005 -0500 use gcc version > 3.0 as fallback in check for alignment bug commit 9efbf189a95137e78b39f48e223e66df384eb89c Author: Steven G. Johnson Date: Thu Feb 24 18:02:31 2005 -0500 don't use -malign-double unconditionally (it is only available on x86) commit 858b560880b60856698a28728dd44964d456b7cf Author: Matteo Frigo Date: Thu Feb 24 12:03:30 2005 -0500 Subtler selection of tilesz. commit c44a6cff160e0ecd38f2a4f56bff4e34ddda2b59 Author: Matteo Frigo Date: Thu Feb 24 11:52:25 2005 -0500 Call cpy2d_tiledbuf, not cpy2d_tiled. commit 826a2387489dd9efde0ed09afc92e91e50a6d578 Author: Matteo Frigo Date: Thu Feb 24 11:29:28 2005 -0500 buffer sizes were wrong :-( commit fdabdfc4ef5010ed7965168b1ab583c296db3637 Author: Matteo Frigo Date: Thu Feb 24 11:19:01 2005 -0500 Single function for computing tile size. Eliminate spurious assertions. commit add19c2d3c32f843ff951cc227dc4ce1221fafb6 Author: Matteo Frigo Date: Thu Feb 24 10:00:02 2005 -0500 Do tiling recursively. commit 203fc5647fea6fe99f2d23cc43a24eeea47aee49 Author: Matteo Frigo Date: Thu Feb 24 09:40:30 2005 -0500 Reworked tiled transposes; provide tiling with and without buffering. I can't believe that one has to waste his life with this @#$%. commit c92a1fc69c9315d97f71a3070003d37923ac02b8 Author: Matteo Frigo Date: Wed Feb 23 22:21:19 2005 -0500 Clarified logic. I am not sure why the code was so confusing to begin with. The computation of *dp in the which_dim == 0 case was also wrong, returning e.g. *dp == -1 if sz->rnk == 1. commit 44692fa46d7313f08a624ec68bd421e282fa139f Author: Matteo Frigo Date: Wed Feb 23 22:00:15 2005 -0500 Enable aggressive inlining in codelets only, to avoid code bloat. commit e94240f1731b33ff9ad18ffe4c14a08a7d66d65a Author: Matteo Frigo Date: Wed Feb 23 21:51:50 2005 -0500 Removed cache-oblivious copy/transpose algorithms in favor of explicitly blocked algorithms. The cache-oblivious algorithms fail if there are associativity conflicts, in which case buffering is necessary, as per Carter and Gatlin. Once you set the buffer size, there is no point whatsoever to do the algorithm recursively, and you may as well use blocking. commit 77aeedee308c8b7bce0ff4c36986f715ced6748c Author: Steven G. Johnson Date: Wed Feb 23 18:46:12 2005 -0500 --disable-fortran now differs from --enable-fortran that fails commit 3cb3e167e76d53336c1307cecb6b1eb975bdda61 Author: Steven G. Johnson Date: Wed Feb 23 18:42:21 2005 -0500 comment tweak commit e0f881c48bd199f098eaa764fb17982cf1435475 Author: Steven G. Johnson Date: Wed Feb 23 18:41:14 2005 -0500 If a Fortran compiler was not detected, just make our best guess at what wrappers to use...I'm sick of dealing with user complaints from cases where wrapper detection fails for whatever reason. commit aa2c11cd3b47c6352d13b8f869f858082bb7a52a Author: Steven G. Johnson Date: Wed Feb 23 18:10:40 2005 -0500 fflush(stdout) after print_plan, in case F77 doesn't commit 76bdaf349e332587c7b5b4ae1fe55f4d3c0cc92d Author: Matteo Frigo Date: Tue Feb 22 22:54:42 2005 -0500 --enable-sse is necessary after all, to generate all dependencies correctly. commit 5844ac653fc5e937e4f2939d8a73dcc282657fd2 Author: Matteo Frigo Date: Tue Feb 22 22:32:06 2005 -0500 Put cpy2d_pair into its own file, so that I can experiment with buffering of nontwiddle codelets. commit e7d485c4f71be2a762c91d4d7e96a321afdfe858 Author: Matteo Frigo Date: Tue Feb 22 20:07:11 2005 -0500 Copy rfftwnd.png from ${srcdir}, not $PWD commit 0c56019ec6dc8f3c778b628a8a0b6094cd8a31d0 Author: Matteo Frigo Date: Tue Feb 22 17:08:48 2005 -0500 Do not bother memcpy-ing complex numbers. commit 6accb53a30744a5793b451670a70afb371cceeff Author: Matteo Frigo Date: Tue Feb 22 16:20:46 2005 -0500 Tighther layout of buffers. I am not sure it matters, but just in case... commit 0f5938fa6bcc89ad947656aa949a89feb73b7c77 Author: Matteo Frigo Date: Tue Feb 22 10:13:02 2005 -0500 Usec cpy1d for rank-0 copies commit 24a0b716253a1914882d738969bc8b101b70380f Author: Matteo Frigo Date: Tue Feb 22 10:06:13 2005 -0500 Implemented in-place transposes with buffering. Moved copy/transposition routines into own files, so that we can reuse them from multiple places. TODO: merge vrank3-transpose.c with rank0.c, or rename vrank3-transpose.c to rank0-fancy.c or something like that; decide whether square in-place transposes should be in rank0.c or vrank3-transpose.c; apply FIXME's in vrank3-transpose.c. commit 52f669f4280a8ad0834f201919290dc382898a4c Author: Matteo Frigo Date: Mon Feb 21 23:29:52 2005 -0500 Indentation should be printed after newline, not at the beginning of print() commit decdf03722050f50fba24b8152927c2327109e16 Author: Matteo Frigo Date: Mon Feb 21 10:07:24 2005 -0500 generalized in anticipation of more complicated solvers. commit 2a7b91a46dd814576f0dbfa54f17d38380bd35f0 Author: Matteo Frigo Date: Sun Feb 20 22:18:59 2005 -0500 Implemented buffered recursive transpose commit 4ce9d94def9d52633bb76b107aba65caa8c4fcf4 Author: Matteo Frigo Date: Sun Feb 20 18:27:29 2005 -0500 Fixed comment commit ac7a99027ee51e48f6be6dadcf00eb593d6017d9 Author: Matteo Frigo Date: Sun Feb 20 18:22:15 2005 -0500 grand unification of rank0 solvers commit 20af4f6724d7080f17a83aae996a6fd00e08ae7b Author: Matteo Frigo Date: Sun Feb 20 15:35:24 2005 -0500 manual tail-recursion optimization commit e834b974175d946c82b66c99c7bf18593f85cd8c Author: Matteo Frigo Date: Sat Feb 19 17:57:44 2005 -0500 implemented check for transpositions commit 6f6c5d224ae74b757b7013102ab25c018d7f9a30 Author: Matteo Frigo Date: Sat Feb 19 17:28:43 2005 -0500 Previous fix was wrong for rdft2 problems. commit 6bd660a504ef0345ea0f55db133690f9de7218ec Author: Matteo Frigo Date: Sat Feb 19 17:23:36 2005 -0500 vecsz->rnk must be finite for this solver to apply. commit 05d2a86385b2655cca135d882688ff493eccaa22 Author: Matteo Frigo Date: Sat Feb 19 17:15:19 2005 -0500 unified the various simple'' transposers commit e67ffc01608a1ebeedd99bb1390ff0ad58e33c0c Author: Matteo Frigo Date: Sat Feb 19 16:55:29 2005 -0500 Fixed stupid bug in rec_transpose_swap. Fixed stupid verifier that did not catch the bug. commit 49f3542f8f1ee7aa2bc7ddb12ded96d4b330b452 Author: Matteo Frigo Date: Sat Feb 19 15:24:03 2005 -0500 Minor cleanup of transposition routines. commit 770952578791d8ac1394ba8e19890fce2779ad67 Author: Matteo Frigo Date: Sat Feb 19 09:31:14 2005 -0500 Make the batch size B=Theta(r) instead of B=Theta(1) in buffered twiddle solvers. Theory: for cache line size L, we want B = Omega(L) to utilize the cache line fully. We also want B*r =O(Z), where Z is the size of the cache. It is safe to assume that Z = Theta(L^2): cache designers will tend to make L as large as they can get away with, because they don't have to program the machines that they build, and Z < Theta(L^2) will screw up the little matrix transposition benchmarks that they use to design the cache. Hence, B=Theta(r) is the right number. commit 0fc1650f8f411bc3fd1b6019b33d8e67d54b43a3 Author: Steven G. Johnson Date: Fri Feb 18 23:47:22 2005 -0500 for --enable-portable-binary, only try -mcpu=$arch and -m$arch on x86, since these generate non-portable code on every other target (and some other targets, like Alpha, don't support -mtune=$arch). commit 77be37a9825edf45432db688f9b6e307fc779320 Author: Matteo Frigo Date: Thu Feb 17 21:15:42 2005 -0500 gcc/aix defines _POWER, not __powerpc__ like the rest of the world does. commit da4852a84de13f2ed74462052a1081a8517fac9c Author: Matteo Frigo Date: Wed Feb 16 22:30:27 2005 -0500 enable fma for ia64, since it seems to help with the hpux compiler. commit e9b2b83177aabb8ff8d42f4b239e9eda1fbd10bf Author: Matteo Frigo Date: Wed Feb 16 21:47:48 2005 -0500 [empty commit message] commit 9f01f364832d025554f5912bd4f71c3c0b972d5c Author: Matteo Frigo Date: Wed Feb 16 15:27:18 2005 -0500 Fixes for darwin commit ff3f2d0d66afc832a1ec7f70d14e6d1520e40858 Author: Matteo Frigo Date: Wed Feb 16 14:27:42 2005 -0500 Made the correctness of the code more obvious. commit 0eaea796c7d8dfc833c38cc2485c68004bcb9d4c Author: Steven G. Johnson Date: Wed Feb 16 12:30:29 2005 -0500 s/with-portable-binary/enable-portable-binary/ to be GNUlly correct; I'm sticking with --with-gcc-arch=arch, however, as --enable-gcc-arch=arch has the wrong connotations for me commit 1f54539fae28f217a239c3dbc5c66a31784dbcd9 Author: Steven G. Johnson Date: Wed Feb 16 11:44:48 2005 -0500 whoops commit 743d6f8aa35cf29485b805e657e72afb83e401cf Author: Steven G. Johnson Date: Wed Feb 16 11:23:38 2005 -0500 bless wisdom with patience used to create it commit 741a55c0cb7529ae5ce8b1b3a01375a3f176a5e0 Author: Steven G. Johnson Date: Wed Feb 16 11:18:56 2005 -0500 whoops commit ab2c1f6788b6309abe08b585fa21ac7254e02f07 Author: Steven G. Johnson Date: Wed Feb 16 10:50:28 2005 -0500 whoops commit aa37add40de415143b25c5c3fa09d3d212af9ec2 Author: Steven G. Johnson Date: Tue Feb 15 23:53:53 2005 -0500 added 'timed' planner option commit 79f70936e6e19cb09dafb45f8ead8d9fff715111 Author: Matteo Frigo Date: Tue Feb 15 23:08:29 2005 -0500 Do not use SIMD_CFLAGS. The theory is that if taint.c is unsafe with SIMD_CFLAGS, then all files in this directory are as well. Conversely, if these files require SIMD_CFLAGS because they include "simd.h", then taint.c requires SIMD_CFLAGS as well, and thus we need some other hack. commit f9e6da507bcacf5aa503ce42e7cd73c0c501cbe2 Author: Matteo Frigo Date: Tue Feb 15 22:49:05 2005 -0500 Do not override CFLAGS in Makefile.am. commit 932e8f656a8a592700a3ca153c416e3e1504d278 Author: Matteo Frigo Date: Tue Feb 15 10:30:12 2005 -0500 Allow users to build long double version even if sizeof(long double) == sizeof(double) commit b35d88cdc10b06342c2c39a8d2012a71875aecf6 Author: Matteo Frigo Date: Mon Feb 14 19:55:38 2005 -0500 Updated for 3.1 commit 3c20661d7ca87a19ec855d94791bd24a3202e30d Author: Matteo Frigo Date: Mon Feb 14 19:07:14 2005 -0500 Oops, version.h is no longer used commit 485e6dbbea69f8e6438ec11fdb265cbe3b786464 Author: Matteo Frigo Date: Mon Feb 14 18:51:05 2005 -0500 unified fma and non-fma versions commit 800ea93e6f610aa9a7c15f1e9e7ed779dedefcfa Author: Matteo Frigo Date: Mon Feb 14 14:12:09 2005 -0500 forgot to remove inplace/Makefile from configure.ac commit 48bfe71f273d592eb0010911c4df16e12df1b9b4 Author: Matteo Frigo Date: Mon Feb 14 12:08:52 2005 -0500 Merged dft/codelets/inplace with the main dft/codelets/standard directory. This step makes dft codelets consistent with the rest of the naming conventions, and will simplify the eventual merge of fma and non-fma codelets. commit 1f70ee8f508d17b3cb0b694d838c71d4b411d740 Author: Matteo Frigo Date: Mon Feb 14 11:16:15 2005 -0500 inline altivec constants, since gcc seems to generate better code this way. commit 454930e2baceefbda8523cfbc103db0061604799 Author: Matteo Frigo Date: Sun Feb 13 18:17:32 2005 -0500 group altivec constants into a single array, for faster access commit 6cfc3df81b5b843ac0641d7aff61b76d29f82a63 Author: Matteo Frigo Date: Sun Feb 13 18:15:37 2005 -0500 code cleanup commit e8d683e0260b327eeedec8e25249bfd8c81cdda9 Author: Matteo Frigo Date: Sun Feb 13 10:29:32 2005 -0500 removed some unused stuff commit d495f6e14d219a63d1ed2a3e77e2c526e185a82c Author: Matteo Frigo Date: Sat Feb 12 22:04:40 2005 -0500 New twiddle scheme for altivec, 3dnow commit 510cdba23c47b1838f8a027da5680ad9ff21dcf3 Author: Matteo Frigo Date: Sat Feb 12 20:17:35 2005 -0500 Implemented new twiddle scheme for sse2 commit fd74e1eb06f6460dc3f0d8b6c5504fc005f98806 Author: Matteo Frigo Date: Sat Feb 12 19:57:46 2005 -0500 Implemented experimental t2* codelets, which store twiddle factors in a more convenient format, at the expense of twice the storage. Currently only SSE works; I have to port SSE2, altivec, etc. to the new scheme. After this, we will decide whether these codelets are worth the price. commit 9ba2ad18ff0a5c9a683120d7737cc6d343b83246 Author: Matteo Frigo Date: Fri Feb 11 08:07:12 2005 -0500 Forgot to define SIMD_STRIDE_OKPAIR commit 24aa1c39dc04c158a5275310b779bec639962a38 Author: Matteo Frigo Date: Thu Feb 10 22:20:00 2005 -0500 fixed sse2, 3dnow, and altivec, as promised commit fa8ee16c80d02c0a0a19391f9aa5897b37ac004b Author: Matteo Frigo Date: Thu Feb 10 21:47:40 2005 -0500 Generate n2?v_* codelets in such a way that we may or may not pair stores, depending on which mode happens to work best on a particular SIMD implementation. sse2, 3dnow, and altivec are currently broken---will fix soon. commit 8a141e0f8570683466ef4cf2aa4e8027d7ea698e Author: Matteo Frigo Date: Thu Feb 10 08:53:22 2005 -0500 instantiate altivec constants only once commit b23eef5ad62b650caafba583fae089d173718eac Author: Matteo Frigo Date: Thu Feb 10 06:37:56 2005 -0500 Fixed alignment checks for new SIMD scheme commit bf8b613b6a4299e8fcc3b36c1c0ec6c61ae944d6 Author: Matteo Frigo Date: Wed Feb 9 21:35:01 2005 -0500 Change n2?v_* codelets to store pairs of vectors, with implicit 2x2 transposition. Works for 2-way SIMD as well. Tested with sse and sse2. I haven't tried altivec yet, but I observed a huge speedup when I transformed one codelet by hand. commit b45f5e7af8fe63c291238eded48cff440ad1f4b9 Author: Matteo Frigo Date: Tue Feb 8 21:28:38 2005 -0500 Resurrected old DIF codelets for experimental purposes. They are disabled for now, but I am keeping the setup around for future reference. commit 2b2271e7df0c994e8ed02a49304a2ef279c084d2 Author: Steven G. Johnson Date: Tue Feb 8 20:10:19 2005 -0500 [empty commit message] commit c06695785e699d90aab66ce15e718ccab31f42bc Author: Steven G. Johnson Date: Tue Feb 8 19:37:09 2005 -0500 clarifications, document --with-portable-binary and --with-gcc-arch commit 4658829ef2505ec43aab6986fdc4778314c3e0bf Author: Steven G. Johnson Date: Tue Feb 8 19:23:41 2005 -0500 [empty commit message] commit 44be70997db3875b83dfe5dee436014717bdf235 Author: Steven G. Johnson Date: Tue Feb 8 01:36:22 2005 -0500 more change comments commit b7802bbb738b279d8d061756f90f03caecd0767a Author: Steven G. Johnson Date: Tue Feb 8 00:41:38 2005 -0500 fma is definitely beneficial on Itanium with the HP/UX compiler commit 95f76ca2081a043388616e815c0364bc6ffde166 Author: Matteo Frigo Date: Mon Feb 7 22:58:47 2005 -0500 Silence warnings. commit fe63ebfa96d081c7d45183e96a8d904d3dcfd226 Author: Steven G. Johnson Date: Mon Feb 7 22:55:49 2005 -0500 when we compile our own getopt, change symbol names to avoid conflicts (e.g. avoid build failure on MacOS X with --enable-shared) commit 151717343ac9ebd9197dfa0065de4176fa9d0894 Author: Steven G. Johnson Date: Mon Feb 7 22:36:42 2005 -0500 grr, more bugfixes for in-place case commit ca853db7099972e3b3840be7d1d3ee1abff00d04 Author: Matteo Frigo Date: Mon Feb 7 22:29:35 2005 -0500 removed relics of FRANZ mode commit b5015c430276d969565a9b6fe816a55556f8d6f7 Author: Matteo Frigo Date: Mon Feb 7 18:48:36 2005 -0500 Somehow xlc does not like ``vector int dummy;'' commit e8ba7b5c1885c85755dd33973ec8d2c5305f41e9 Author: Matteo Frigo Date: Mon Feb 7 13:59:47 2005 -0500 There is no need to enable sse to make the distribution. This might have been true in the past but not anymore. commit fea3ce788e0bd8cfd350e05d05c418e90b27ec63 Author: Matteo Frigo Date: Mon Feb 7 13:55:17 2005 -0500 Oops---included fortran file in C sources commit 2f4c935bb52c2e34940f4ad58ea6fd26ba30740f Author: Matteo Frigo Date: Mon Feb 7 13:42:45 2005 -0500 Set version string at ``make dist'' time, not at ``configure'' time, so we know whether a user is using the fma version or not. commit fcd17cfa8271300c8a41d87c9abd4968502ebaca Author: Matteo Frigo Date: Sun Feb 6 17:00:33 2005 -0500 Removed useless files commit 2707963bd735e791f7f5b8200c8c9d4f155bc4f8 Author: Matteo Frigo Date: Sun Feb 6 16:59:39 2005 -0500 Different (simpler?) way to prevent the compiler from optimizing loop inductive variables. We now explicitly corrupt stride variables by xor-ing them with another variable that happens to be zero (but the compiler does not know it). In this way, the compiler does not attempt to extract a zillion loop indices from codelets, which would overflow the register set. Set the -fno-loop-optimize flag to further help the process. Consequences: removed m* codelets. Smaller library size. Slightly faster code with gcc/powerpc (including altivec). Much faster code with xlc/powerpc. No changes for gcc/pentium. Maybe slightly faster with icc/pentium. commit 1e222893c8c84f35b16a63384ad1239e471ce684 Author: Steven G. Johnson Date: Sat Feb 5 18:51:08 2005 -0500 paranoia about in-place rodft00 plans commit 1d442744933c7161e86dd825d65aeb3d0c640e53 Author: Steven G. Johnson Date: Sat Feb 5 18:39:55 2005 -0500 don't believe pcost when using the estimator...there is no point, and it screws up estimator hacks to prefer in-codelet loops to vecloops commit 9ad39d1cad4ef56e0c29fc64a12a76e2e6195c52 Author: Matteo Frigo Date: Sat Feb 5 18:34:25 2005 -0500 Reduced optimization level from -O3 to -O for xlc, since -O generates faster code. commit 91fa9ff722538be49b29c22a3174cef3fdce9c25 Author: Steven G. Johnson Date: Sat Feb 5 16:26:58 2005 -0500 whoops, only applicable to redft00/rodft00 plans commit 6591b1e69eec3c3d11199ec3f84c341aa8e754db Author: Steven G. Johnson Date: Sat Feb 5 16:22:39 2005 -0500 fixed in-place operation, and don't create size-0 sub-plans commit f01834e572803db476083af9b0a0906b951ac9d0 Author: Matteo Frigo Date: Fri Feb 4 11:30:30 2005 -0500 Autodetect altivec on linux. This code works with gcc-3.4 and -maltivec, with or without -mabi=altivec. The code *should* work with gcc-3.3 without -mabi=altivec. However, disabling -mabi=altivec on gcc-3.4 produces much worse code (I don't know why). commit 2ac42677bbf31c868ad589a378f93887163910c1 Author: Steven G. Johnson Date: Fri Jan 28 00:04:58 2005 -0500 update reference commit 2f3db335dab469a165ed2d9a4f19435371ef9590 Author: Steven G. Johnson Date: Thu Jan 27 15:48:28 2005 -0500 note that DCT-II/III are often called the'' DCT/DCT commit a2480b0a7742cb4792f0a17ef54fcfa47bf9299f Author: Steven G. Johnson Date: Fri Jan 21 14:42:04 2005 -0500 added MSVC++ for ia64 (based on information at http://www.intel.com/cd/ids/developer/asmo-na/eng/19949.htm?prn=Y) commit fa86c1be03f8a3ac77ad8f17a4a0db76b8a08d04 Author: Steven G. Johnson Date: Fri Jan 21 14:22:50 2005 -0500 vc++ defines _M_AMD64 on x86-64, apparently commit 905e261576a2333fdc356609f6f6533740716663 Author: Steven G. Johnson Date: Tue Jan 18 22:30:27 2005 -0500 avoid gratuitous breakage with -Werror, requested by Simon Perreault commit 6fb09d4fad8df9be7c5cadda330234fbcf6bdecd Author: Steven G. Johnson Date: Mon Jan 17 18:54:55 2005 -0500 comment typo commit 2f9aac9cff6654101febb130659eab9345b58783 Author: Steven G. Johnson Date: Sat Jan 15 16:56:23 2005 -0500 bumped shared-lib revision# commit c793a51d3eafa054b132ebbc6095810261ac56b6 Author: Steven G. Johnson Date: Sat Jan 15 16:35:42 2005 -0500 add X(estimate_cost) to get estimator cost, and print from bench, to aid in tweaking estimator commit ef81def3aef05a8e513d2c28f9eba162af22020b Author: Steven G. Johnson Date: Sat Jan 15 14:57:56 2005 -0500 [empty commit message] commit 1b90ee6f155399994c4234601dfdce43c854555e Author: Steven G. Johnson Date: Sat Jan 15 12:57:07 2005 -0500 formatting fix commit 2abab58ebcf1286120285091b31ff706fa81cf81 Author: Steven G. Johnson Date: Sat Jan 15 12:31:28 2005 -0500 tweaks commit 044466122b66a254d87c396cbf0b17039543fd13 Author: Steven G. Johnson Date: Sat Jan 15 12:03:24 2005 -0500 use less buffer space commit 3e78c0361397476b699825b883be3d32331e8439 Author: Steven G. Johnson Date: Sat Jan 15 01:41:58 2005 -0500 added split-radix-based dct/dst I for odd n commit d994d2ded5077bfb54d19ee5c062e607b73ce73a Author: Steven G. Johnson Date: Fri Jan 14 21:50:08 2005 -0500 [empty commit message] commit cf8ef77af5eddfdda0d6c952ae0ae1955890bca4 Author: Steven G. Johnson Date: Fri Jan 14 21:49:55 2005 -0500 warn silly users who confuse CVS id with FFTW version commit e7ab0f25025fb3be5f73408419e51a2fcf54f031 Author: Steven G. Johnson Date: Fri Jan 14 16:57:36 2005 -0500 get sparc cpu type on solaris as well as with linux commit e82ef68d349c8df79cb772c944164b79b7f2c77a Author: Steven G. Johnson Date: Thu Jan 13 19:21:58 2005 -0500 detect prescott mobile (f37) commit 3622c28434b7292df2153c577f8262a2974fd6ce Author: Steven G. Johnson Date: Thu Jan 13 18:09:52 2005 -0500 use cpuid for x86_64 as well as i[56]86 commit ba6d8352bbd435da164d15a693e824711bcd86ce Author: Steven G. Johnson Date: Thu Jan 13 17:59:55 2005 -0500 update with x86info 1.7 and other sources (identify k8, nocona, etc), handle nonzero leading bytes in eax commit 92d9e4b244a2689bc7fb64105d20c874d09f9cca Author: Steven G. Johnson Date: Thu Jan 13 16:30:33 2005 -0500 compactified check for JOINABLE; use AC_DEFINE_UNQUOTED instead of AC_DEFINE for PTHREAD_CREATE_JOINABLE (thanks to Oliver Niekrenz for the bug report) commit 5440f786f094cdfb2b624e1e9050ba74a06ad780 Author: Matteo Frigo Date: Wed Jan 12 12:22:13 2005 -0500 The scheduler hack was incorrect because it swapped instructions of the form A = *B and *B = C. Fixed. commit 124a19a9d293ffa06f8b50519fc1e53ced2ca1ab Author: Matteo Frigo Date: Tue Jan 11 22:13:24 2005 -0500 Quote expressions such as ``if test $FOO = yes'' when $FOO may be empty. Also, $GCC is set to either ``yes'' or empty, never to ``no''. commit d52e4f122a2b71ab9272261bfec25931b8d9cd5b Author: Matteo Frigo Date: Tue Jan 11 19:30:47 2005 -0500 Hmm---somehow the previous commit did not work. commit ca5f6331f2b2432591707b129dc343705209e482 Author: Matteo Frigo Date: Tue Jan 11 16:54:45 2005 -0500 Fixed various gcc-related problems on powerpc: - gcc-3.4 becomes totally confused by expressions like vec_add(a, vec_add(b, vec_add(c, ...))) The compiler uses gigabytes of memory and then crashes, presumably because of the exponential-time search problem involved in typing the above expression (since vec_add can take either ints or floats). I changed VADD and similar macros to be inline functions, thus constraining the type system. - New flags --param inline-unit-growth=1000 --param large-function-growth=1000 to work around limitations of the gcc-3.4 inliner. commit 43a34b10c3383ccf1277216826b8201c3a0f3276 Author: Matteo Frigo Date: Mon Jan 10 21:27:24 2005 -0500 Check for HAVE_ALTIVEC_H commit 558d64554efbc303c104513b4f6243d2178335a8 Author: Matteo Frigo Date: Mon Jan 10 21:09:30 2005 -0500 Remove support for altivec using gcc builtins, since these keep changing across gcc versions. These changes work on gcc-3.4/linux; I haven't tried MacOS X yet. (The altivec ``spec'' differs between Motorola/Apple and gcc, grrr...) commit d9289c88276c6c878bd61c454049052d420013fa Author: Matteo Frigo Date: Mon Jan 10 18:57:30 2005 -0500 Stylistic changes commit 34b131fad38155ebb215614d02fba749c35c10ed Author: Matteo Frigo Date: Mon Jan 10 17:34:41 2005 -0500 Changed incorrect ugliness condition. commit 79acbd2e7f6820db37155925cdb1411a808b5bb4 Author: Steven G. Johnson Date: Mon Jan 10 16:09:43 2005 -0500 note x86info version number that was used, to make it easier to update the cpuid for changes in later versions commit 114d644618ae24c93784d908c47981dfbd32719e Author: Matteo Frigo Date: Mon Jan 10 15:00:51 2005 -0500 Make dft-r2hc non-UGLY for rank-0 problems commit 1a81406a03ef105ec8c188ee2f77dd605c25d422 Author: Matteo Frigo Date: Mon Jan 10 14:50:23 2005 -0500 Do not use -mcpu=970 on power4 processors, because power4 does not have altivec. commit 393ce48d0f58f8f7788198d59fa203e19f36db69 Author: Matteo Frigo Date: Mon Jan 10 14:48:47 2005 -0500 Note gcc-3.4 problem with inlining. commit c25eb53aa1676a746b9243a7463a62e3d753fb0f Author: Matteo Frigo Date: Mon Jan 10 13:51:08 2005 -0500 Oops, forgot to remove ``static'' from the declaration of noninlinable functions. commit 1447d501267177b4d3f4b5160a7e3b4fc16e7aba Author: Matteo Frigo Date: Mon Jan 10 12:31:26 2005 -0500 Recognize power4. Use ``head -n COUNT'' instead of obsolete ``head -COUNT'' (which fails on gentoo). commit 3de5bb754f1b9eb2514402c3b542a3735009f223 Author: Matteo Frigo Date: Sun Jan 9 22:12:16 2005 -0500 Remind to add FAQ entry concerning gcc-3.4.[1-3] crashes. commit 669ca8a3c4968477bf695ebc2961279779e0ec37 Author: Steven G. Johnson Date: Sun Jan 9 21:53:08 2005 -0500 whoops commit dcaa702e5c8d172b42b79a0c8ae14a1c8525f0a3 Author: Steven G. Johnson Date: Sun Jan 9 21:48:02 2005 -0500 support checking for major.minor.patchlevel commit 584fa85e1d7ca47d71b72c14f7dab1ac448048ec Author: Matteo Frigo Date: Sun Jan 9 21:40:18 2005 -0500 Revert CODELET_OPTIM to -O on IA32, which is faster than -O2. commit ec5ec6cbc0d0325a26eda54206f7f17253b39bae Author: Matteo Frigo Date: Sun Jan 9 20:30:12 2005 -0500 /bin/sh allows no spaces in assignments. commit 2b5a7ef73ab8bd55c32f63badf3120d1c4a62a28 Author: Matteo Frigo Date: Sun Jan 9 20:05:55 2005 -0500 Make non-inlinable functions external, so that gcc becomes confused and does not try to inline them. commit 321304bb50c85a0d5353f7bed5116d33b865dc4b Author: Matteo Frigo Date: Sun Jan 9 13:44:25 2005 -0500 Add -fno-web to CFLAGS, because -fweb destroys FMAs. commit 2f4f3044ed140d5b0edf1cf7415e0c0035392b40 Author: Matteo Frigo Date: Sun Jan 9 10:31:47 2005 -0500 Allow -mcpu=970 besides -mcpu=G5 commit e00f75f258a1b31526633b408804ed3c231cef68 Author: Matteo Frigo Date: Sun Jan 9 10:26:20 2005 -0500 configure was not using -fno-schedule-insns :-( commit e86fb1669da7d88ee98278e686d078ed205237c3 Author: Matteo Frigo Date: Sun Jan 9 08:52:40 2005 -0500 In mkplan() and elsewhere, use solver index instead of solver *pointer*, which looks marginally clearer. commit 446a3894d345237cabc59f659d5a2186c1f26554 Author: Matteo Frigo Date: Sun Jan 9 08:15:36 2005 -0500 Split planner hash table into two tables, for blessed and unblessed solutions respectively. Now an unblessed solution never overwrites a blessed solution, thus avoiding wisdom leakage by construction. Further, forget() is now a O(1) operation, which speeds up the estimator when the wisdom table is large. commit ee5380a2af1b55803ff5d64557ff5b9a2005b54b Author: Matteo Frigo Date: Sat Jan 8 21:19:45 2005 -0500 New TODO idea. commit 8bf4164bfd1d6aef62dac0e09eb5c5ef712ed8f4 Author: Matteo Frigo Date: Thu Jan 6 11:02:29 2005 -0500 Split search() into two routines to make the UGLY/NO_UGLY logic obvious. commit 1f170904d9848a43935bbd9a7c95d0249fa39138 Author: Steven G. Johnson Date: Fri Dec 17 16:08:54 2004 -0500 push/pop 64-bit registers on ia64; thanks to Orion Poplawski for the fix commit c53a0b8fa44ee6e63d41cdf2e4eb12589981f43d Author: Steven G. Johnson Date: Thu Dec 9 21:41:09 2004 -0500 patch from FreeBSD ports - FreeBSD does not have memalign, but its malloc is 16-byte aligned commit 31b763b9455632deddfb6425b630c4ce458b444e Author: Steven G. Johnson Date: Tue Nov 23 17:06:47 2004 -0500 don't compile taint.c with SIMD_CFLAGS (fixed Debian bug #259612) commit 5f505f2c11b292e769afc7de1e1fbb9bb75d1495 Author: Steven G. Johnson Date: Thu Nov 18 11:37:32 2004 -0500 revert incorrect change -- codlist.c should be rebuilt, but it is built in the build directory and not in the source directory commit 247e871cccf86dee2fa5543473c76373e5c46b34 Author: Steven G. Johnson Date: Wed Nov 17 22:53:53 2004 -0500 $(CODLIST) should be rebuilt only if Makefile.am changes, or alternatively only in maintainer mode, to prevent stomping in the source directory during user builds. (Thanks to Grant Cook for the bug report.) commit 7b6e452ba1709033b19a1056184ef5e7865773c3 Author: Steven G. Johnson Date: Sat Nov 13 13:43:01 2004 -0500 corrected #ifdef for icc/ia64, thanks to Matt Boman commit 80176573959dd2f034b41ab5d38c541281a5987a Author: Steven G. Johnson Date: Sat Nov 13 13:34:55 2004 -0500 spelling correction (Larsen, not Larson) commit 4e72b0ba4a2ee4245a1c996aabcea979753ded6e Author: Steven G. Johnson Date: Mon Nov 8 22:12:39 2004 -0500 use standard withval commit 38a050f2474601bd6fc7f1e9faca33e8656f0a63 Author: Steven G. Johnson Date: Mon Nov 8 22:09:16 2004 -0500 match doc commit 8d34c77d933aba00013d63875fb0a8cfdb5c5058 Author: Steven G. Johnson Date: Mon Nov 8 22:00:34 2004 -0500 formatting commit f354a059a0559c7816da1f1bfcbf30fef2965584 Author: Steven G. Johnson Date: Mon Nov 8 21:59:33 2004 -0500 make sure OPENMP_CFLAGS environment variable is used correctly commit caffdb38e0d057c260d21dcd45fee9d04ba48520 Author: Steven G. Johnson Date: Mon Nov 8 21:46:50 2004 -0500 replace ax_check_cc_flags with more generic ax_check_compiler_flags commit bc44b190250c3a55ddc841fdb85623efef8a1d04 Author: Steven G. Johnson Date: Mon Nov 8 17:49:42 2004 -0500 separate macro for OpenMP test commit 7bdd20309c710d7f29cb11cd2a130a2a453252ca Author: Steven G. Johnson Date: Fri Nov 5 16:24:22 2004 -0500 typo commit ba62ab6d94914626b1bb5c4fa59d239a92f5789a Author: Steven G. Johnson Date: Fri Oct 29 00:48:13 2004 -0400 [empty commit message] commit bbe80b4b34e5e86fb09b40b44a0f686b07bbd17b Author: Steven G. Johnson Date: Thu Oct 28 00:09:38 2004 -0400 better guessing of sparc type on Linux commit 93d85f0ab3a391bf35f1eb8c51e0d693736fa416 Author: Steven G. Johnson Date: Wed Oct 27 13:44:08 2004 -0400 note default commit 78065724b3f4e1170788d4d75cc1c1e318663b06 Author: Steven G. Johnson Date: Wed Oct 27 13:41:57 2004 -0400 tweak commit e43858fa862ad22519805870bef8be66593db88c Author: Steven G. Johnson Date: Wed Oct 27 13:34:25 2004 -0400 comment commit af53c27b20c589cc956cc567f7a85d05e5f9996d Author: Steven G. Johnson Date: Wed Oct 27 13:31:10 2004 -0400 whoops, m4 is EXTRA_DIST, not SUBDIR, since it doesn't have a Makefile commit fc7444822d899746b1c4e68cb06847ce95ff12b7 Author: Steven G. Johnson Date: Wed Oct 27 13:16:57 2004 -0400 silence warnings commit be281108e1c825de4313ece30b12fd918273b1a9 Author: Steven G. Johnson Date: Wed Oct 27 13:14:22 2004 -0400 clean up m4 macros; try to detect correct gcc -march flag on x86; new --with-portable-binary, --with-gcc-arch= flags; use -O2 for codelets with gcc 3.4 to work around bug commit 9403174ddea85728f959287755950e43901c2d39 Author: Steven G. Johnson Date: Tue Oct 26 16:46:14 2004 -0400 rename cexp -> mcexp to avoid conflict with C99 builtin commit d581a67939f4d7c95a0b07b3a4952d35e44bb17c Author: Steven G. Johnson Date: Mon Oct 25 16:58:23 2004 -0400 use basename , w/o args, for compiler-name comparisons; also detect Compaq ccc on alpha-linus commit a1d9fccd5bdda57ae410ba0ce15367e987d64f73 Author: Steven G. Johnson Date: Sun Oct 24 22:05:10 2004 -0400 note recent icc problems commit dfddc484065adab609af43ba17821394c23dc5cd Author: Steven G. Johnson Date: Sun Oct 24 02:10:12 2004 -0400 whoops, disable semaphores again (for now) commit a2dad5feeb7e13cc8d93adb55bb59ed0431341be Author: Steven G. Johnson Date: Sun Oct 24 02:04:58 2004 -0400 POSIX semaphores are *not* the same as SYSV semaphores commit 64a5d0fd73897b1f811382dc5238209dfe9672be Author: Steven G. Johnson Date: Sun Oct 24 01:18:14 2004 -0400 re-implement threaded stuff; dftw now takes parameters to indicate a portion of m loop commit 99fecf91b80dfe5aabdd4b3d69cc71639de2c483 Author: Steven G. Johnson Date: Thu Oct 21 20:44:51 2004 -0400 more C++ notes commit 77e885e9ca5d60b2b34f126b21cce95382cafc59 Author: Steven G. Johnson Date: Thu Oct 14 09:50:38 2004 -0400 note bug report for VC++ 6.0 from Dale Dickerhoof commit e5523dbd23cd0d4beff0d5b53ca76a275b7e5b1f Author: Steven G. Johnson Date: Fri Oct 1 16:06:59 2004 -0400 fmt commit 8e9f882720c1fc5f2c7c3b168a8f48608af95057 Author: Steven G. Johnson Date: Fri Oct 1 15:59:17 2004 -0400 comment typo commit 689ac491bc35a2728b1ae0ccc6e1698f84a04f4f Author: Steven G. Johnson Date: Fri Oct 1 15:48:09 2004 -0400 bug fix -- ishift/oshift only apply to execution of child plan commit 6438e86b96980ae10958e4483acf04e80573c1dd Author: Matteo Frigo Date: Thu Sep 30 21:12:47 2004 -0400 New planner that tries never to lose wisdom. commit 28f9e28b2b6d2c7d5969c93cdf3c460f6fd895a2 Author: Matteo Frigo Date: Thu Sep 30 13:36:43 2004 -0400 Nested comment was triggering a warning. commit 7f1f6a5fe5723ce3079588306a98c43289f6df32 Author: Steven G. Johnson Date: Fri Sep 10 15:20:07 2004 -0400 system "root" under dgjpp is /dev/env/DJDIR, not /dev/env/DJGPP, according to djgpp's libc.info; patch confirmed with J. M. Guerrero commit 354611ae36fd7494d3f90789fa33d6b26febeec2 Author: Steven G. Johnson Date: Wed Sep 8 18:50:03 2004 -0400 some minor portability fixes for djgpp; thanks to Juan Manuel Guerrero for the patch commit 133be56f2adeb3f4ab3c394a03da4254f758eacf Author: Steven G. Johnson Date: Thu Aug 19 12:41:23 2004 -0400 pointer to tutorial for quick start commit 6a23ed45415cae1a9825953e80dc99ceee5d185a Author: Steven G. Johnson Date: Thu Aug 19 12:39:50 2004 -0400 point users to manual commit b759a1ca992dee63a97a67ba2beddde782dba6c7 Author: Steven G. Johnson Date: Sat Aug 7 13:42:22 2004 -0400 minor typo commit 693ed3bc9f47a262b3502ad06b42be41f68ee47f Author: Steven G. Johnson Date: Sun Jul 18 18:54:18 2004 -0400 use __DECCXX for Compaq cxx, not Linux-specific symbol commit df4ddeeaad67144bd7d6f855f690cf06907f1d56 Author: Steven G. Johnson Date: Fri Jul 16 13:55:25 2004 -0400 patch by John Bowman to make cycle counter work with DEC cxx under Linux commit fd9cd11e5b8806245d6b5522fdef29b1626eda0f Author: Steven G. Johnson Date: Wed Jun 30 00:45:10 2004 -0400 updated pruned FFT discussion, with link to further details on www.fftw.org/pruned.html commit 243e4dafca54e62e83d796c176d4af2ce00690b1 Author: Steven G. Johnson Date: Mon Jun 14 20:08:27 2004 -0400 darwin is based on freebsd commit fa86af755d34199fa6ddf2a1e40dbedb9898f5bb Author: Steven G. Johnson Date: Thu Jun 3 14:23:41 2004 -0400 in --with-windows-f77-mangling, add lowercase + single underscore for Intel compilers, etc. (thanks to David Gomez for the bug report) commit 3f13a0eb176fe03d5937ef282b9defa42c258876 Author: Steven G. Johnson Date: Wed Apr 7 00:46:07 2004 -0400 whoops, extra alignment check commit f0e8345ba78e99831a1589192d6fc3b2e1e41e38 Author: Steven G. Johnson Date: Wed Apr 7 00:16:49 2004 -0400 disable most 2-float-as-double copying, add alignment check in one remaining place commit a12d8b846381396d54acbc1748e53cbc0c09baac Author: Steven G. Johnson Date: Tue Apr 6 13:49:13 2004 -0400 make sure it is clear that real-even/odd refers to symmetry, not size commit 920197fd649070eadef659b39572b155a8b0c36c Author: Steven G. Johnson Date: Mon Apr 5 20:18:29 2004 -0400 optimization commit c0d199f22910faaf1f4850900185c161a585f96b Author: Steven G. Johnson Date: Fri Apr 2 21:31:00 2004 -0500 separate cutoff for ugliness...these cutoffs are still not ideal commit e1920963de856b058811b84764d848947cab454f Author: Steven G. Johnson Date: Fri Apr 2 21:30:17 2004 -0500 transpose.c is gone commit a115ba2703fa6d7cfb8e1453904bf94cd9c25b7d Author: Steven G. Johnson Date: Fri Apr 2 21:18:27 2004 -0500 move all rank0 transforms to rdft commit 444b8f48586e952b107d4ee2ad58c56e357e5fbd Author: Steven G. Johnson Date: Fri Apr 2 20:35:35 2004 -0500 enable fp-moves/us comparison of rank-0 transforms commit 2cc4d9f4818fb41d6aa0c1be4224eb25a94b3ac7 Author: Steven G. Johnson Date: Thu Apr 1 16:13:22 2004 -0500 whoops commit b0ee7083fd7d7ff73366c8011fbf43d675380d8c Author: Steven G. Johnson Date: Thu Apr 1 15:25:30 2004 -0500 whoops commit 50854b83979e79e4a0a2f6e90404ca553d0a3d33 Author: Steven G. Johnson Date: Wed Mar 31 18:11:02 2004 -0500 sort tensor dims by stride absolute values, not strides commit 39cd8178427b5a70d5fa503a14c663c6a4f96edf Author: Steven G. Johnson Date: Tue Mar 30 20:22:50 2004 -0500 [empty commit message] commit 9b5e15aa7f7e515b9faa505be708a14d568ceb1b Author: Steven G. Johnson Date: Tue Mar 30 19:44:54 2004 -0500 added improved transpose algorithm for N x M where |N-M| is small commit 2db4ea7db1f587486546e244ea42930e51275806 Author: Steven G. Johnson Date: Tue Mar 30 19:41:14 2004 -0500 check to make sure SIMD matches precision, and make sure user doesn't select both SSE and SSE2 commit 8995d09da3bc5d0fd7daf6f6ad295fccd9e94893 Author: Matteo Frigo Date: Sun Mar 28 09:26:38 2004 -0500 Implemented hc2hc-generic hc2r. commit 581a83475a46b89a73b8a7fb3f2dccb140f72629 Author: Matteo Frigo Date: Thu Mar 25 11:19:25 2004 -0500 Inverted loop for stride-1 access. commit b0d68fa533d26d6bebf433c43c4dfee7b99a3701 Author: Matteo Frigo Date: Thu Mar 25 11:18:49 2004 -0500 Swapped j <-> k for consistency commit dc715359aa2bb496a60ae650612b42f0cdf998dc Author: Matteo Frigo Date: Tue Mar 23 12:08:07 2004 -0500 Require that R be odd commit 36e2199cf602f511e50a4bbc56e472d79c935e8f Author: Matteo Frigo Date: Tue Mar 23 11:49:01 2004 -0500 Implemented hc2hc-generic (DIT only for now). commit bc377e92e0d11be803dc1a3deb60f05a82799f85 Author: Matteo Frigo Date: Mon Mar 22 14:43:16 2004 -0500 Relax equality of twiddle description, since the `i' field is not used by TW_FULL or TW_HALF. commit ede9d975b188649b84cca9bf24c5f7feab3653c4 Author: Matteo Frigo Date: Mon Mar 22 13:22:44 2004 -0500 Do not allocate tw_instr's on the stack. Thus, the ``consistency check'' in twiddle.c becomes wrong. commit 19b8fbca72260c622266cd93466267c9dfb57cc3 Author: Matteo Frigo Date: Mon Mar 22 13:21:28 2004 -0500 Fixed incorrect malloc()/free() logic. commit 050be8cad10f411ab6ca025f59e5cffc3f7bf42d Author: Matteo Frigo Date: Mon Mar 22 09:04:37 2004 -0500 Silence warnings commit ae20d94938c08cb65f257fec653a9e3b1961a77b Author: Matteo Frigo Date: Mon Mar 22 09:02:55 2004 -0500 Separate file for hc2hc common routines commit e35b856a11108d5bdf61855976cddd7e8e7a84e9 Author: Matteo Frigo Date: Mon Mar 22 08:23:56 2004 -0500 (re)Implemented buffered hc2hc. Slight simplification of twiddle-factors management. commit de8ff3b06710f0dda76007150592239d4aa7565c Author: Matteo Frigo Date: Sun Mar 21 19:53:05 2004 -0500 Incremented libtool revision number before we forget. commit 5004b2e13de1b9b8635441bba800e8f6b850900a Author: Matteo Frigo Date: Sun Mar 21 19:25:56 2004 -0500 Fixed opcnt commit af360d8473ebdda79f57a3fa6bd3bbb2b7b041a2 Author: Matteo Frigo Date: Sun Mar 21 17:56:15 2004 -0500 Renamed files. These solvers are not really cooley-tukey. commit c6c735fb857127becb133e21c37544052b985806 Author: Matteo Frigo Date: Sun Mar 21 12:38:45 2004 -0500 Started moving rdft/ to the new cooley-tukey ontology commit 5df5843950df1fb50697f28d983ff0a9b8d5c5b9 Author: Matteo Frigo Date: Sun Mar 21 10:59:42 2004 -0500 Plans in ct-*.c are subtypes of plan_dftw, not plan_dft commit 5a4eb1dc842c864c311f175e9f97dde3f42dba2f Author: Matteo Frigo Date: Sun Mar 21 10:38:18 2004 -0500 Slight simplification commit 23b338208a4b752b307a0c6ff8d03f4e3f3c077f Author: Matteo Frigo Date: Sun Mar 21 10:20:06 2004 -0500 Minor simplification commit 71c684955ce3dfb91065a561e806edc213b2a1ae Author: Matteo Frigo Date: Sat Mar 20 08:43:57 2004 -0500 Workarounds for icc-8.0 nonsense. commit 446cbae42c628ae2ba7e6f63f4771355a10b5e0f Author: Matteo Frigo Date: Sun Mar 7 07:56:08 2004 -0500 FFTW_FORWARD is not technically an ``option''. commit 150af2bf6e6d380dc31ebffdcb79961e64d47f97 Author: Steven G. Johnson Date: Tue Feb 24 12:17:06 2004 -0500 Alejandro requested that his name be removed from @author commit 6948af91f0140722c52246a2b09faaeb7e664d99 Author: Steven G. Johnson Date: Mon Feb 23 17:42:56 2004 -0500 GNU Pth emulation library check commit b28089821d98c117e9688fdb7c65b4bfc0645345 Author: Steven G. Johnson Date: Sat Feb 21 17:51:13 2004 -0500 calling can-do calls the estimating-planner, which creates wisdom that we don't want ...we should be able to do all of the documented problems, anyway commit 262bd966d1d8394d17b2dc1ae7b76446b9300323 Author: Steven G. Johnson Date: Sat Feb 21 17:46:06 2004 -0500 don't forget_wisdom because of side effects commit b5c61a6821de885155d1b960a1d8b50a5464bc3d Author: Steven G. Johnson Date: Sat Feb 21 17:42:47 2004 -0500 forget wisdom from can_do commit 51442d30f17617100834e2fb27cbe7df79b3d61b Author: Steven G. Johnson Date: Thu Feb 19 14:11:14 2004 -0500 parenthesization commit 63bf06148e526cb5c90550fbd7b53a40fc73f2d4 Author: Matteo Frigo Date: Fri Feb 13 07:20:31 2004 -0500 Split malloc into kernel_malloc and API malloc commit 26fb1d12ecc37fda0f9760386b1f59a87e193e01 Author: Steven G. Johnson Date: Thu Feb 12 15:42:20 2004 -0500 X(malloc) must be extern "C" commit bb95c42e188e35ab4f22703978e5da7ba796eaff Author: Steven G. Johnson Date: Thu Feb 12 15:41:44 2004 -0500 satsify C++ compiler commit 5560fa42b5df5500dfd63303262c412f308ceb76 Author: Steven G. Johnson Date: Thu Feb 5 20:39:14 2004 -0500 with the new flags, fma is definitely beneficial on PA-RISC with HP/UX cc commit 795e5b6919fec5bbdf1fb9cff3be1db5f63ddeee Author: Steven G. Johnson Date: Thu Feb 5 19:52:17 2004 -0500 grr, Ofaster etcetera are not supported under older versions of the compiler. Note that +Ofltacc *disables* fp-reordering optimizations (which are enabled by +Oall). +Optrs_ansi is the older version of the aliasing stuff commit db287e0973e7d6ef19261b5a96979dff3b339b9a Author: Steven G. Johnson Date: Thu Feb 5 19:26:01 2004 -0500 +Otype_safety=ansi on hpux commit c98916ab1aa18fd95e8e43584e6eb618015de573 Author: Steven G. Johnson Date: Thu Feb 5 19:22:34 2004 -0500 just use +Ofaster on hpux (+O3 +Onolimit +Olibcalls +Ofltacc=relaxed -Wl,+mergeseg) commit 4e3bf163dca0615df17146ee2e18481d0a20a9e6 Author: Steven G. Johnson Date: Fri Jan 30 14:17:15 2004 -0500 check for win32 threads for mingw32; thanks to Alessio Massaro commit 86652c99050dcc4f52d17974597bdbf56a5998de Author: Steven G. Johnson Date: Thu Jan 29 15:23:33 2004 -0500 added missing 'static', thanks to Alessio Massaro commit 96566e4ddd0a9d00b23ad7c8ad04240cce7bfac1 Author: Steven G. Johnson Date: Fri Jan 9 16:36:48 2004 -0500 print more like bluestein commit 9ce57c8bf150fdf7d8177b0252abd7721d82d28b Author: Steven G. Johnson Date: Fri Jan 9 15:45:22 2004 -0500 fixed op count for R2HC_ONLY_CONV commit 1d28fc43969f2824c21efd2d1f2ce5a365dc0a07 Author: Steven G. Johnson Date: Fri Jan 9 15:41:50 2004 -0500 include DESTROY_INPUT in buffered flags for in-place...otherwise in-place hc2r uses rdft-dhtcvs diff commit bf6f542cb4702cf9d2c9346254cf09f0bce0e032 Author: Steven G. Johnson Date: Fri Jan 9 15:41:09 2004 -0500 resurrected R2HC_ONLY_CONV option to share plans and save on planning time commit 04d01b659718c6e66f9b14ad925fc5c630c7c1e8 Author: Steven G. Johnson Date: Fri Jan 9 14:47:00 2004 -0500 precompute folding for cyclic convolution commit 41947ea5b1fd5203da848d5afe3ecfed87f90d91 Author: Steven G. Johnson Date: Wed Jan 7 16:48:39 2004 -0500 minor commit 766e29f31c88457b71f94bc7607e81a39b445fdd Author: Steven G. Johnson Date: Wed Jan 7 16:48:25 2004 -0500 note reports of successful compilation on Windows commit a3b6ef73f675682810957a7770b13c5ede3c75a3 Author: Steven G. Johnson Date: Wed Jan 7 14:16:16 2004 -0500 citation year commit c6ff6592cd7196994610014cb3da0caafa4354df Author: Steven G. Johnson Date: Tue Jan 6 01:07:36 2004 -0500 comment commit 326cb17c5ee1b2d61f66a81bf90c012128148add Author: Steven G. Johnson Date: Tue Jan 6 01:07:08 2004 -0500 comment fix commit 16c7ff8cc5de0d74ad68a628e80e9ac8ede5e918 Author: Steven G. Johnson Date: Tue Jan 6 01:06:57 2004 -0500 fixed naming cruft commit 3c33d645c75a685c1b95f12be64b272dd01fb621 Author: Steven G. Johnson Date: Tue Jan 6 00:56:16 2004 -0500 space commit daf2625a4becbd9aac13358827eef8bbf2ef115e Author: Steven G. Johnson Date: Tue Jan 6 00:55:53 2004 -0500 comment commit 8bc4eaa51d81346cd07706771fc58bb8767bd428 Author: Steven G. Johnson Date: Tue Jan 6 00:54:07 2004 -0500 moved assert commit 679d41c77182afe28023a32c667fb6771f7df10d Author: Steven G. Johnson Date: Tue Jan 6 00:49:16 2004 -0500 comment commit 0ead6d3532ee317a8e8e99391655c0ef3b13bfd3 Author: Steven G. Johnson Date: Tue Jan 6 00:41:06 2004 -0500 delete old R2HC_ONLY_CONV hack, now defunct commit 4f45958b21e10e4b0ad128e4a36b3b1c456e7a22 Author: Steven G. Johnson Date: Tue Jan 6 00:32:58 2004 -0500 added padded real rader commit 2743f45c6e17d1cc72cce590faa7475c03e8ea74 Author: Steven G. Johnson Date: Mon Jan 5 22:56:58 2004 -0500 removed unused var commit 57cf035f36b08fae46144c4e03a52b3fb7a65f51 Author: Steven G. Johnson Date: Mon Jan 5 21:20:29 2004 -0500 handle both FFT_SIGN values commit 0f0e531863a2392a747c6b540a966b48b77debaa Author: Matteo Frigo Date: Fri Jan 2 06:07:51 2004 -0500 Oops: d->ros ==> d->ios commit 6ce67e298050d47829243bf692910eeef126601f Author: Matteo Frigo Date: Fri Jan 2 06:05:10 2004 -0500 Oops: d->ris should have been d->iis commit 3ddc923840694e141348bb8f48eb6bc9272b607b Author: Matteo Frigo Date: Thu Jan 1 16:00:07 2004 -0500 Removed rdft rader cooley-tukey, to be superseded by a generic reduction of rdft twiddle problems to dft + pre/post processing commit 3f82980635418e49dad204ff327021a8adf4bcfb Author: Matteo Frigo Date: Thu Jan 1 15:44:09 2004 -0500 In anticipation of the upcoming revision of rdft, removed rdft generic dit/dif cooley-tukey, in favor of generic rh2c and hc2r solvers. Cleaned up stuff that became unused after this change, such as TW_GENERIC. commit f7546dadff20223e87c698a9c3e8bcdb8496547e Author: Matteo Frigo Date: Thu Jan 1 12:59:30 2004 -0500 Removed useless file commit 822bd0498b7fe0a45a001af73cd4b317f33b0230 Author: Steven G. Johnson Date: Fri Dec 26 13:54:00 2003 -0500 whoops, don't call AC_F77_DUMMY_MAIN if no Fortran compiler is found; thanks to Charles Radley for the bug report. commit 6d8fa3754568aeb1979cbd6d1f6b91c90f524989 Author: Steven G. Johnson Date: Fri Dec 19 13:58:05 2003 -0500 guess good flags for Solaris/intel, suggested by J. Gregory Wright commit e393cf5533fdff4834a269b4d163641553f9532f Author: Steven G. Johnson Date: Fri Dec 5 19:55:13 2003 -0500 blah commit bcb1ecc806de458e9744b90452468221ab65d36d Author: Matteo Frigo Date: Sun Nov 30 06:59:41 2003 -0500 DIF generic solver was destroying the input. commit 1580db9c3c75c57928058fc81faa981295c7b6ca Author: Matteo Frigo Date: Sat Nov 29 19:28:39 2003 -0500 Fixed bug that caused HC2R transforms to destroy the input in certain cases, even if the user specified FFTW_PRESERVE_INPUT. commit 24f8af52f2a239ba51cd03e37e4c1c74befdc2f2 Author: Matteo Frigo Date: Sat Nov 29 16:49:01 2003 -0500 Implemented swap_io hack for r2r verifier. commit e15bf89a0e15d64e294ea23deb4f3de422e467b6 Author: Steven G. Johnson Date: Thu Nov 20 22:00:53 2003 -0500 citation commit f8afd813d4a9af4549ccca07ea7604c12c081761 Author: Matteo Frigo Date: Fri Nov 14 20:57:55 2003 -0500 Trying to get ``make paranoid-check'' to work. (Still broken.) commit 74399102001e6b633c21ca16f1b4369f63facab1 Author: Steven G. Johnson Date: Fri Nov 14 20:05:54 2003 -0500 fixes for input-preservation tests commit 29fc95192096b664dc7f23bfc6d3530f5880c66f Author: Matteo Frigo Date: Fri Nov 14 19:19:31 2003 -0500 Assume FFTW_PRESERVE_INPUT unless either the `d' flag is given in the problem, or the problem is multidimensional c2r (which fftw3 cannot without destroying the input). With this change, we can at least test that FFTW_PRESERVE_INPUT works in the c2r 1d case. commit 5a2907cf7121cc9e824150f654d83c9ff984aa92 Author: Steven G. Johnson Date: Fri Nov 14 19:14:40 2003 -0500 apply should copy back input for input-preservation check commit e5b287efdbd1a909467ac69e49f09c708462ea6d Author: Matteo Frigo Date: Fri Nov 14 19:01:36 2003 -0500 Undone previous bogus changes commit 55075f65e5f23bb045b5a076bd559d508e15fab8 Author: Matteo Frigo Date: Fri Nov 14 18:27:12 2003 -0500 Check dr[fb] in addition to r[fb] commit 74d5a2653d744d48adc748e8ebfaafdad0198cb7 Author: Matteo Frigo Date: Fri Nov 14 17:33:44 2003 -0500 Fixed conditions under which the rank-geq2-rdft2 solver is applicable. The old solver was not applicable for out-of-place problems unless DESTROY_INPUT. This is bogus. As long as the subsolvers honor !DESTROY_INPUT, the solver is always applicable. Changed semantics of test program, so that PRESERVE_INPUT is always true unless the problem specifies destroy_input explicitly. Without this change, there is no way to test the new solver. commit edcc72abc5fafc3147bfb8b802cea42d249c711b Author: Steven G. Johnson Date: Thu Oct 30 15:10:42 2003 -0500 added AIX OpenMP (-qsmp=omp) support; thanks to Greg Bauer commit 8dffe5112def767dc95ffe8c722d009bd2d3a5aa Author: Matteo Frigo Date: Thu Oct 30 10:11:39 2003 -0500 G5 CFLAGS commit 3cdf00d461370ae110601bf4612b31601a9b7100 Author: Steven G. Johnson Date: Fri Oct 24 04:17:39 2003 -0400 western FAQ commit 8ae00fe74ec955caecad22123ab716b908fb595a Author: Matteo Frigo Date: Thu Oct 23 11:34:11 2003 -0400 Oops. commit f7b3b4aae8910a377ab2c391da7855bad4c6875a Author: Matteo Frigo Date: Thu Oct 23 11:28:28 2003 -0400 Autodetect altivec commit 7458c1cb849f028a73209b18da00a2b63da0d861 Author: Steven G. Johnson Date: Wed Oct 22 01:14:10 2003 -0400 MinGW gets confused by a single / commit 3b8090b60a50893cb21b3e7442c5d8eec86c756e Author: Matteo Frigo Date: Fri Oct 17 10:46:41 2003 -0400 Paranoid portability fix commit 82175d1a4b25bd246759a5a9499a50037b51bc94 Author: Matteo Frigo Date: Thu Oct 16 11:07:46 2003 -0400 size -> length, which should make clear that we are not talking about arbitrary precision. commit b5f6b9f86f41b0429dd03c64101bc2cbd4a0b261 Author: Steven G. Johnson Date: Wed Oct 15 15:01:40 2003 -0400 pruned transforms are a FAQ commit 736d76c64078a558714dc87e31bc158117a274d7 Author: Steven G. Johnson Date: Wed Oct 8 23:54:17 2003 -0400 NO_SEARCH has already been mapped to FFTW_WISDOM_ONLY commit 02a8d7f029570cfb78c03215109a391d74f22ebd Author: Steven G. Johnson Date: Wed Oct 8 23:53:19 2003 -0400 newline commit 4177857895703cbd233c7b10e80cb95b8e8c25c5 Author: Steven G. Johnson Date: Sat Sep 27 20:27:32 2003 -0400 fix commit 694836051975049f0d2981df1372a23be9d9bc1b Author: Steven G. Johnson Date: Sat Sep 27 20:24:39 2003 -0400 clarification commit 0b20096c7a3afe66a13dc3efd84ba9e535748248 Author: Steven G. Johnson Date: Sat Sep 27 17:43:57 2003 -0400 minor fix commit 39ef965f44a5ba2245f12c7e1b182032746d6dda Author: Steven G. Johnson Date: Sat Sep 27 17:42:30 2003 -0400 grammar commit f7d34b13ca2adef07ab32520d97f05c403d34bd4 Author: Steven G. Johnson Date: Sat Sep 27 17:29:04 2003 -0400 html output fix commit 4b0c92ff25547e2f4fef16bf2089b6525407fc9e Author: Steven G. Johnson Date: Sat Sep 27 17:22:48 2003 -0400 mentioned sqrt(2) factors for DCT/DST commit 512c0e8650df0efa89bc8fea862a005f6f58f2cc Author: Steven G. Johnson Date: Sat Sep 27 17:07:18 2003 -0400 FFTW_WISDOM_ONLY flag (undocumented for now), suggested by Phil Dumont commit 54b4afc9f006bc10ce0423f09625b91af30d9dc3 Author: Steven G. Johnson Date: Tue Sep 23 23:36:19 2003 -0400 removed UpTime code commit 26c7e51b101004fe0cc9c2a5f90c732fd7bcf2b2 Author: Steven G. Johnson Date: Tue Sep 23 23:27:29 2003 -0400 updated documentation for mach_absolute_time commit 12a80b367661367374d32deeb29e01fd75e311e3 Author: Steven G. Johnson Date: Tue Sep 23 23:25:52 2003 -0400 use mach_absolute_time on MacOS/Darwin, as a fallback; don't bother checking for UpTime since it requires extra libs commit fa1787b57c9fb3539af76bd43c35ce224da7dace Author: Steven G. Johnson Date: Tue Sep 23 22:59:29 2003 -0400 support Apple UpTime function for asm-less xlc, grrr... commit 13e7c9ab7273a625f9b21015a75eff8ef163d468 Author: Steven G. Johnson Date: Tue Sep 23 15:42:29 2003 -0400 additional paranoia for xlc etc. commit 2da4a3de8376303c716cd7ee5b3b47b8f759983b Author: Steven G. Johnson Date: Mon Sep 22 15:28:56 2003 -0400 work around _Complex_I weirdness in xlc, reported by Greg Allen commit 3533775b3de13e397feb15794631f1d2fedd1e98 Author: Steven G. Johnson Date: Fri Sep 5 18:03:11 2003 -0400 typo commit ef0a55daee823f7ae55367f4304e32abf20c0d40 Author: Matteo Frigo Date: Fri Sep 5 13:11:40 2003 -0400 New script that produces commercial version. commit 4c4873b3aface20d5444216fcb5ea79221e5a289 Author: Matteo Frigo Date: Fri Sep 5 07:27:06 2003 -0400 Noted that VC++ is buggy. Noted that we know nothing about Windows. Noted that the sky is blue as well. commit a3d172eb32ea6f17849604998b55db355d60cc26 Author: Matteo Frigo Date: Tue Sep 2 09:04:19 2003 -0400 Noted that certain arrays are no longer used after the planner has completed. commit c68f62d97627bb869061a9433c4f4605f4dc8fd4 Author: Matteo Frigo Date: Tue Aug 26 08:22:38 2003 -0400 Typo commit b95fbd832374dacc4e8c9fb21b8c4085b33b3460 Author: Matteo Frigo Date: Mon Aug 25 21:27:43 2003 -0400 New item commit b2a02ef7112f03f73e25ccb67227265306b69b6c Author: Steven G. Johnson Date: Thu Aug 21 17:36:08 2003 -0400 try creating output file before planning (thanks to Phil Dumont for the suggestion) commit 766c3757fc99565ef8a14a9f3d5729740b1e7182 Author: Matteo Frigo Date: Tue Aug 19 10:08:07 2003 -0400 Clarified fftw_cleanup() commit 8eecb544f6ac10687ec258d3162a5c7508c6156d Author: Steven G. Johnson Date: Sat Aug 16 03:13:41 2003 -0400 typo commit 443c1d796f44813179c18d5b34c2836bd441a1e2 Author: Steven G. Johnson Date: Mon Jul 28 18:01:13 2003 -0400 use time() instead of clock() (FIXME: what to do for non-POSIX systems?) ...thanks to JP Sugarbroad and James A. Treacy for the bug report commit 9de40445c11cba14fa6eb7ae8e06d2792ebb2262 Author: Matteo Frigo Date: Thu Jul 24 18:58:10 2003 -0400 Need __volatile__ in sparc cycle counter. This is why the debian port hangs. commit 3da4cd5a3334e2b8415224657c5f5d9ce17eef12 Author: Steven G. Johnson Date: Sun Jul 20 16:02:43 2003 -0400 merged 3.0.1 notes commit cb6949db0271a00b15369efbd59d5c74af6d8c0c Author: Steven G. Johnson Date: Sun Jul 13 20:57:34 2003 -0400 whoops commit 906832308c9b7ba4ce3e55a3efa502ab55e6a676 Author: Matteo Frigo Date: Thu Jul 10 11:48:50 2003 -0400 Dealing with constants in a way that seems to confuse gcc less. commit e823de6c6b1433905ed2851aadcd1e11bf9b81b9 Author: Matteo Frigo Date: Wed Jul 9 17:39:23 2003 -0400 Enabled scheduler hack for FMA, where it seems to help. commit cff00fb9b000446f13c060876536184a03873ca5 Author: Matteo Frigo Date: Wed Jul 9 12:57:38 2003 -0400 Hmm---the new scheduler seems make things worse for gcc/x86, better for gcc/ppc, and about the same for icc/x86. Disabled for now. commit ca5556ba3956352649cd6d7342d16ffa660db23f Author: Matteo Frigo Date: Wed Jul 9 08:09:53 2003 -0400 New scheduling pass that keeps ``x = a + b'' and ``y = a - b'' close together. This property was no longer automatic for the dags generated in SIMD mode. I cannot measure any speed difference due to this change. However, the change is justified by a minimal-screwup argument. Moreover, the sse2 fftw library is now 1% smaller than it was before. commit 82ab8c034224f1364c148e9f725c90e6e16f721d Author: Matteo Frigo Date: Tue Jul 8 20:42:22 2003 -0400 -(FNMS()) => FMS() commit 471cc543a0805c19f676664861e5dc9d1fb5f1d7 Author: Steven G. Johnson Date: Sun Jul 6 13:53:23 2003 -0400 added more convenient target name commit 18303fef32c580b6c7dc03c4e8bfe30ca2a92724 Author: Steven G. Johnson Date: Sat Jul 5 13:30:10 2003 -0400 typo commit c30db69dc73fc965683cd147c948c3dba1f6aad7 Author: Matteo Frigo Date: Sat Jul 5 13:19:36 2003 -0400 Consistent naming commit da3b10c5645b3bb482b26cb42d0821dda213b994 Author: Matteo Frigo Date: Sat Jul 5 13:05:51 2003 -0400 Got rid of problemw. commit 21c3f87f755cadd9ef25945fe33448eeea7cb511 Author: Matteo Frigo Date: Fri Jul 4 06:56:26 2003 -0400 Increase TIME_MIN on intel only commit c749315d331fac4826ab1754a84f2a66e00197df Author: Matteo Frigo Date: Fri Jul 4 06:36:02 2003 -0400 A little hack to get more consistent scheduling. commit 1af463bd5b8ae6bd696ecb6a86d8b1952aaf6fd0 Author: Matteo Frigo Date: Thu Jul 3 16:47:42 2003 -0400 New experimental scheduler (currently disabled). The old scheduler is ``optimal'' in the sense that it minimizes register pressure. The only way to reduce register pressure is to schedule dependent instructions as closely as possible, so as to minimize the life time of registers. This strategy maximizes the number of pipeline stalls, however. With enough registers and short enough pipelines, this tradeoff is fine. This is no longer the case for the devilish pipeline of the Pentium IV or (probably) the PowerPC 970. The new scheduler switches to a ``list scheduler'' for dags smaller than a specified size. The list scheduler executes a butterfly left to right one column at the time. This amounts to the best possible pipeline utilization, and the worst possible register pressure. The ``specified size'' defaults to 0, i.e., no change from fftw2 and fftw-3.0. It seems like a value of 7--10 produces the best results for Pentium IV (probably screwing the G3/G4 powerpcs and sparc, but I haven't tried.) As time goes by, we may want to increase this number to favor newer processors over older processors. commit b4dc4ef39f37d036b9120f6e273549fd7bbaaa2a Author: Steven G. Johnson Date: Wed Jun 25 17:43:59 2003 -0400 remove non-portable use of tempfile; thanks to Nicolas Decoster for the patch commit 9630b97551ac80d0b1a8ecc26722ab98149a2be6 Author: Steven G. Johnson Date: Wed Jun 25 17:14:03 2003 -0400 increase stupid HP preprocessor limits commit a31916f0f41eb0a1398f38341da28991919123f0 Author: Matteo Frigo Date: Thu Jun 19 15:21:52 2003 -0400 Distribute gen_mdct.ml commit 367373d615cb66b335d9586544ead2f9d424effc Author: Matteo Frigo Date: Wed Jun 11 06:55:21 2003 -0400 Cleared int/ptrdiff_t confusions commit f1e0319906231b0e8d5675cc4ab24db00e560dc0 Author: Matteo Frigo Date: Tue Jun 10 22:15:42 2003 -0400 Cleared int/ptrdiff_t confusion commit 48d9ab9a8d3ddcb8fc21d4c8e90adfcbf7e4e200 Author: Matteo Frigo Date: Sun Jun 8 09:52:57 2003 -0400 Increased TIME_MIN. This seems to produce more reliable plans on Pentium IV. commit 3ba082c0f617d0c03cde783d3d7eba4392d13397 Author: Matteo Frigo Date: Sat Jun 7 21:43:00 2003 -0400 Removed relic -trivial-stores, which dates back to Franz's early experiments. Speed improved on SSE2, both with gcc and icc. commit 25a3b0e594d1b7fbe6b87c322ae34470bfdcccba Author: Steven G. Johnson Date: Thu Jun 5 22:29:52 2003 -0400 fix direntry commit 4ceff26934f86ada8712eabca96511462e7e8eaf Author: Steven G. Johnson Date: Thu Jun 5 13:41:34 2003 -0400 added imdct commit 1f23163e190c844ee3b2caf4564245cfbddd1c5b Author: Matteo Frigo Date: Wed Jun 4 19:54:38 2003 -0400 Collect pattern (a * b) +- (c * d) in generic-arith, because this operation can usually be computed with one rounding in fixed-point (and it possibly exposes a FMA instruction) commit 10d5f543e3ab8e1f2acb3f0bdeef0b196f22d6e0 Author: Matteo Frigo Date: Wed Jun 4 15:11:29 2003 -0400 Generic-arithmetic unparser commit d705a296a095ba4947adbd5e745b1a5ccf39f04a Author: Matteo Frigo Date: Sun Jun 1 09:05:30 2003 -0400 Oops---randomized CSE was using the same random numbers over and over commit fed2aa57dc95873ed83371338d16b9667c84c6f1 Author: Matteo Frigo Date: Sun Jun 1 07:01:17 2003 -0400 Paranoia. commit 4905e1d1498f044f37a6efd2b168c9bfac54a3de Author: Matteo Frigo Date: Sun Jun 1 07:00:54 2003 -0400 Use relative error instead of absolute error, to avoid problems when normalization factors are used. commit 967eecb8b745332dff25a3610a617bd73897abd6 Author: Steven G. Johnson Date: Sat May 31 22:11:28 2003 -0400 slight opt commit 6186c7e4fbaec8d816ce12a74c211890ad8c7fe9 Author: Steven G. Johnson Date: Sat May 31 22:10:45 2003 -0400 slight optimization commit f547dd3851ad0f88d4b79ac5b32af9ecbe727e4e Author: Steven G. Johnson Date: Sat May 31 20:43:31 2003 -0400 *W is const commit 9d9e1ec4a2623c32dd10304f84d3d3854b17b938 Author: Steven G. Johnson Date: Sat May 31 20:41:15 2003 -0400 comment commit 4269fae3e68941b115c0f8855ad3bb58e18c6f89 Author: Steven G. Johnson Date: Thu May 29 21:31:31 2003 -0400 added experimental MDCT commit 3028a550c6acc0fb367dbe26af192714715a09e2 Author: Steven G. Johnson Date: Wed May 28 22:01:37 2003 -0400 altivec (fma) needs simd codlist.c too commit 083e7c5e6bf88cffc3938cb6225551ec5af0f869 Author: Steven G. Johnson Date: Wed May 28 22:00:49 2003 -0400 make sure we include SIMD codlist.c for non-Unix folks commit 08028f9b0217ea164f25bcbf01824df23bb7245e Author: Steven G. Johnson Date: Tue May 27 20:31:25 2003 -0400 noted howmany_rank == 0 is a single transform commit 46b08adb7f478a6f5d51e1fefa6ab99891d3391d Author: Steven G. Johnson Date: Tue May 27 20:02:31 2003 -0400 further stride clarification commit 1264855f26ebf31705c1a6cf6067c3e996c71114 Author: Matteo Frigo Date: Mon May 26 10:21:22 2003 -0400 Removed transposed dftw problems. I now consider transposed dftw a Bad Idea, since it does not apply to the case that it was originally meant for (speed up four-step) and it complicates the implementation of the other thing I want to try (dftw m-slices). commit c198c3ed318d9864a22877795f7bac4f3eaf4d8b Author: Matteo Frigo Date: Mon May 26 07:22:59 2003 -0400 Obsolete comment commit bb96207501d8ca498bde638f46932c2bdd4bec66 Author: Matteo Frigo Date: Sat May 24 15:00:53 2003 -0400 comment commit a3733f2596b8d6d3972edfd942ce61296f2051d1 Author: Matteo Frigo Date: Sat May 24 07:20:35 2003 -0400 Oops---wrong test NO_UGLYP instead of !NO_UGLYP commit d8575658ab032ccf0b6553c4a84af8510d0cae55 Author: Matteo Frigo Date: Sat May 24 07:05:34 2003 -0400 Implemented radix r, where n=r^2 * p commit c2ca438ef110583287ce3c0e8527d4d382ccedde Author: Steven G. Johnson Date: Wed May 21 01:54:32 2003 -0400 xlc seems to properly use fma as well commit 3bf5cca5763573337c68978f05125e6e3eb4fe3d Author: Steven G. Johnson Date: Tue May 20 23:07:43 2003 -0400 print warning if there is no cycle counter commit 00cef912cbb09cf8a1080a3544d45d6bacc44222 Author: Steven G. Johnson Date: Tue May 20 17:32:04 2003 -0400 updated Funda reference commit a331d8a0841d1ccb7c314dbb98749bd77d69e709 Author: Matteo Frigo Date: Mon May 19 20:12:36 2003 -0400 const commit 200b3519c0ee6bd32babf52b352b8f8385da45d1 Author: Matteo Frigo Date: Mon May 19 15:41:09 2003 -0400 Implemented generic dif square transposed (q-style) solver. commit 8c6184ff5904082729018b5c36926b5bc479db14 Author: Matteo Frigo Date: Mon May 19 07:00:36 2003 -0400 applicable() is now a property of the solver (in anticipation of transposed solvers) commit 75102fd59a69589a2b23faeab596f43e7bcdc46c Author: Matteo Frigo Date: Mon May 19 06:33:40 2003 -0400 Slight cleanup commit fb49407efc496838a8f21a6cdfa52ad602b1cdfa Author: Matteo Frigo Date: Sun May 18 13:05:51 2003 -0400 Nothing, really commit df97ba383cdf4cc6a473e4e1ad041b11b8f965af Author: Matteo Frigo Date: Sun May 18 09:05:20 2003 -0400 Moved vector loop inside bytwiddle(), in anticipation of a q-style dftw-dit transposed solver. commit ee4edcdb0d229ae56167c04d4ffc36ee84d32361 Author: Matteo Frigo Date: Sun May 18 08:52:02 2003 -0400 Fixed flops count commit dccb90a9de4bd56cb5dad7340b27302bf2c6d245 Author: Matteo Frigo Date: Sun May 18 08:47:20 2003 -0400 style commit b83dec51bb0e588e9bc8fd4aff422b3e8b20e8ca Author: Matteo Frigo Date: Sun May 18 07:16:34 2003 -0400 Faster inner loop. commit c7bd9e9fc6d14ae3a28012fa0425a14330746572 Author: Matteo Frigo Date: Sat May 17 08:02:38 2003 -0400 Print vector length commit 74d6f9435c81aaafcf08927ebec58dd49ecea003 Author: Matteo Frigo Date: Sat May 17 07:55:33 2003 -0400 Oops commit 668b7018dd6ccd5a7802f71b29eb4e155801ff86 Author: Matteo Frigo Date: Sat May 17 07:50:35 2003 -0400 Allow vl > 1 commit 1919840986e87d611bccc5a1ffbaa469bccaa94a Author: Matteo Frigo Date: Sat May 17 07:01:42 2003 -0400 Radix can be derived from problem---no need to pre-specify it. commit a25c7ceebb0e65bb9b03bd7c30e3b97a29063185 Author: Steven G. Johnson Date: Fri May 16 22:50:50 2003 -0400 fixed comment commit e12663ca110ee43071e2344163161cd2122312c4 Author: Steven G. Johnson Date: Fri May 16 22:48:20 2003 -0400 whoops, gcd should be static commit 96c37858e236a75341bc45eca6e8a9a6180c61c8 Author: Steven G. Johnson Date: Fri May 16 22:40:32 2003 -0400 more unrolling commit ce888f64f2b19c2b1d0a2306c0f5a0bfb282e2cf Author: Matteo Frigo Date: Fri May 16 20:03:48 2003 -0400 Hack to avoid infinite recursion. commit 3be61e5d6f8b5c517feed2417902fc4fc8205180 Author: Steven G. Johnson Date: Fri May 16 19:52:43 2003 -0400 consistency commit 10ef200843d878ba4e88a6e59c53ec89b48cba11 Author: Matteo Frigo Date: Fri May 16 19:45:15 2003 -0400 Wrong comment. commit 9ad0f5ae45b2265e1307381d14a436eb43998c8d Author: Matteo Frigo Date: Fri May 16 19:45:03 2003 -0400 Style. commit bc609cdbd63dfd90154f4f0b07a0fb6c9c1f7354 Author: Steven G. Johnson Date: Fri May 16 18:35:27 2003 -0400 punctuation commit 3c931e88733a24d99d4639165f16f073ff25b35e Author: Steven G. Johnson Date: Fri May 16 18:33:45 2003 -0400 added allzero FAQ commit 4e3c1c97240d8dc8b8595f179994e9999e2a7b98 Author: Steven G. Johnson Date: Fri May 16 18:22:45 2003 -0400 simplification: instead of cldb, just use cldf with inputs/output values swapped commit 734444b8d502c323a04fd2cc6e6fc37d53cd4b04 Author: Matteo Frigo Date: Fri May 16 15:47:17 2003 -0400 Allow more general transform sizes. commit 77d47783b6445a14416a351ffb88c70348bb7ae1 Author: Steven G. Johnson Date: Fri May 16 14:22:37 2003 -0400 slight change commit 7bdfe7acb85d3e5c4081537789ee95c49d852e0c Author: Steven G. Johnson Date: Fri May 16 14:22:05 2003 -0400 MS has __int64 type, not long long (grr) commit 6778b57c92f2c729955fec383ee1ec817559b35f Author: Matteo Frigo Date: Fri May 16 13:34:16 2003 -0400 Fixed printout commit 26cad01414a0e9ec0f5809c3fafdcd0ebeca8eee Author: Matteo Frigo Date: Fri May 16 13:23:00 2003 -0400 Fixed flop count commit 6663b7b12eed820ccad08bbe8a7b13d4e7e96baf Author: Matteo Frigo Date: Fri May 16 13:02:06 2003 -0400 New bluestein solver commit a3444150521abc3e4522064bfbce259979d143dd Author: Matteo Frigo Date: Fri May 16 09:51:05 2003 -0400 Implemented generic radix. commit 105268f348df67714aaff107d5a4817a8ea9069e Author: Matteo Frigo Date: Fri May 16 08:19:38 2003 -0400 Removed conditional branch from inner loop in generic.c commit 44179d747df49fe429ae0108b108e1f28b71023c Author: Matteo Frigo Date: Fri May 16 07:48:28 2003 -0400 Simplified indexing commit 6a89bb8523df8e372f221f4ccdd6fa9e75120ec1 Author: Matteo Frigo Date: Fri May 16 06:53:56 2003 -0400 Better still. commit bc7126aa1f6bca65323f8d367629a9e6ddb18310 Author: Matteo Frigo Date: Fri May 16 06:24:31 2003 -0400 Further improvement of generic solver commit 29931919e62a0633afc7fdfe2738fba18419e30c Author: Matteo Frigo Date: Fri May 16 05:57:07 2003 -0400 Cleanup commit 516d81975ebfabe254800e61a072976ce2493792 Author: Matteo Frigo Date: Fri May 16 05:42:57 2003 -0400 Cleanup commit 9c40e9a8ab92ae76b96b1e57a51a8a46cd4202aa Author: Matteo Frigo Date: Fri May 16 05:31:40 2003 -0400 Generic now only works for odd sized. Added check. commit a4abb5b3c869ca3d4c1b572793c4128935461f2e Author: Matteo Frigo Date: Thu May 15 21:53:25 2003 -0400 Increased GENERIC_MIN_BAD because of new algorithm. commit 60bf38f4720ea99600008e1ad0772e3871cc975d Author: Matteo Frigo Date: Thu May 15 21:40:27 2003 -0400 Much, much better. commit bd0ae8b86cd6e44542f040b89670e8559cb4daef Author: Matteo Frigo Date: Thu May 15 21:25:00 2003 -0400 Still trying to understand why rdft-generic-dit is faster then dft-generic... commit 1ace458103964bbd9cc763efde55b6c64543e072 Author: Matteo Frigo Date: Thu May 15 21:04:33 2003 -0400 Nothing, really commit e68561ce796750faf2eb70606053723da3a3651b Author: Matteo Frigo Date: Thu May 15 20:59:45 2003 -0400 Never be clever for the sake of being clever. commit 3480d0dea4ccb5fa65ea2c8950aea4821cea6e3a Author: Matteo Frigo Date: Thu May 15 20:58:06 2003 -0400 Simplified. generic-dit is gone. The solver is now out-of-place only---buffering is done by the buffered solver. commit 21161d67e447696eda8fb463a6e629fdb9b9a286 Author: Matteo Frigo Date: Thu May 15 19:18:18 2003 -0400 rader-dit is gone. commit 99baac8e16f51413086aa8b35ff5894b43ddce25 Author: Matteo Frigo Date: Thu May 15 19:13:03 2003 -0400 Cast commit 9bc90955564668ef3b897434df873ea7a9e987b7 Author: Matteo Frigo Date: Thu May 15 19:09:07 2003 -0400 Introduced twiddle problem ``dftw''. Changed most other things to deal with this change. commit 57d761eab36c018f98849a04c82df5fdc61db498 Author: Steven G. Johnson Date: Thu May 15 18:47:18 2003 -0400 whoops, X(safe_mulmod) not fftw_safe_mulmod commit ad0f04aa3eead44c4f82e436a20241a8d76fdfba Author: Steven G. Johnson Date: Thu May 15 16:53:16 2003 -0400 add VC++ versions of asm commit 4e67675d7f66ce57718045e8ddf3769ba44f378f Author: Steven G. Johnson Date: Thu May 15 15:03:06 2003 -0400 VC++ reportedly supports the intel intrinsics, but requires __inline instead of __inline__ commit 8d72a4d25a56b9b8c9e918cb462ae7f8429fce9c Author: Steven G. Johnson Date: Thu May 15 14:32:06 2003 -0400 precompute array indices with VC++ commit 7a8ca44fd207d2de8947e6d7dad9b6122d5eacf4 Author: Steven G. Johnson Date: Wed May 14 21:57:39 2003 -0400 added doc note commit e21c7e8fbc7073874cec2c052a810cb8c8bafb6c Author: Steven G. Johnson Date: Wed May 14 19:45:54 2003 -0400 autodetect windows commit 9e15f067241ae365258fdae039f13855799566b5 Author: Steven G. Johnson Date: Wed May 14 15:08:49 2003 -0400 don't bother with #ifdef HAVE_CONFIG_H, since non-Unix users always forget to define it commit 8fd89cce099546af6bb94f83b4e84bc46609708a Author: Steven G. Johnson Date: Tue May 13 16:58:07 2003 -0400 VC++ uses __inline commit 02aaa87cb911b0d6d67ec4f11932357f702aa75f Author: Steven G. Johnson Date: Tue May 13 14:51:26 2003 -0400 added leak question commit 64d02f177161f96e87c02cde6015ceff42ac0bfe Author: Steven G. Johnson Date: Mon May 12 18:26:51 2003 -0400 LARGE_INTEGER needs windows.h (supposedly, there is some problem converting _itnt64 to double...damn MS and their nonstandard types) commit 342ab9adfdb7bf9a5936f1c1d3f0820fa729ab2e Author: Steven G. Johnson Date: Mon May 12 18:22:16 2003 -0400 whoops commit a8cb5339f580f0f4ee0ff02c58f91036b7fef886 Author: Steven G. Johnson Date: Mon May 12 17:16:19 2003 -0400 added 256x256 to canonical list commit 446260f6a6a84986c7eec6e1b3c0eea0f66f759d Author: Matteo Frigo Date: Mon May 12 07:02:06 2003 -0400 Oops... commit 924714d15f5ed063b1fa8a40a3bcd2ebe406e572 Author: Matteo Frigo Date: Sun May 11 11:04:46 2003 -0400 Unrolled loops, changed cutoff commit a8e681a4dd1d8cbae25becdb745926efde43cf3c Author: Matteo Frigo Date: Sun May 11 10:20:04 2003 -0400 Do not multiply strides by 2 twice. commit cba6f4731943edfe50f4bacd9de28d0551593f43 Author: Steven G. Johnson Date: Wed May 7 21:09:43 2003 -0400 added 'make smallcheck' commit 8f61201655a4d04b402d2cec34acb86e89cbe35f Author: Steven G. Johnson Date: Wed May 7 20:46:10 2003 -0400 --without-cycle-counter becomes --with-slow-timer, updated docs commit e77df17a33148f0cd531fcf1bcf371af0b69ced6 Author: Steven G. Johnson Date: Wed May 7 18:05:29 2003 -0400 remove duplicate -openmp check; Sun requires -xopenmp commit 34594ee9cdef76091eff1164f9518e92bf0b855b Author: Steven G. Johnson Date: Wed May 7 17:59:23 2003 -0400 fixed compilation under Sun C++ commit fe5788275ebad911c952662c50694c2f296ae4b2 Author: Matteo Frigo Date: Wed May 7 14:24:46 2003 -0400 Use estimator if cycle counter is unavailable, regardless of the FFTW_MEASURE/ESTIMATE setting. commit 7d2473af5f98cac96951e94c009b96f1d96dcea3 Author: Steven G. Johnson Date: Tue May 6 23:15:34 2003 -0400 _WIN32 (not __WIN32__) is always defined commit a9d4840add6bac6ef0f0f194868861615f52d91c Author: Steven G. Johnson Date: Tue May 6 23:11:52 2003 -0400 minor cleanup commit 33d6678021b7c966f0490729f9839282d88b7e68 Author: Steven G. Johnson Date: Tue May 6 22:50:07 2003 -0400 tentative VC++ stuff, some consolidation commit 4b2c8b1fdf43a442999e9309b1abb5f525b2a5e2 Author: Steven G. Johnson Date: Tue May 6 12:17:56 2003 -0400 made cycle.h more self-contained commit 17b78ccd6e3bf378453a85f671f02c82eb45ced4 Author: Matteo Frigo Date: Tue May 6 08:30:39 2003 -0400 Use ``%'' flag to denote commutative operations. commit b98342890cbb95b8f450d6da8e22637b455fccc0 Author: Steven G. Johnson Date: Mon May 5 20:42:30 2003 -0400 MIT license, brief documentation commit 95f79870876aa95354fecf59c0da025edb8982f9 Author: Steven G. Johnson Date: Mon May 5 20:31:16 2003 -0400 whoops, forgot f77_wisdom.f commit 5cdde47077a07f4aa39487741662e868f5cf11df Author: Matteo Frigo Date: Sun May 4 19:37:09 2003 -0400 Improved speed of accuracy test. commit ff00ccc1b3a83962c18e91ab12740ca63bbb6081 Author: Matteo Frigo Date: Tue Apr 29 11:45:34 2003 -0400 s390 cycle counter commit 2ab4e6e2c3bfdd6882bad8bca36fdc105f742847 Author: Steven G. Johnson Date: Sat Apr 26 12:26:15 2003 -0400 forgot r2r directory commit 990abcc219adbf0759807b9b2c20d80f639dd940 Author: Steven G. Johnson Date: Fri Apr 25 20:52:23 2003 -0400 delete unused files, since they don't compile any more commit a35c9fd7e587b8301131f8e530387dad7e62fc00 Author: Matteo Frigo Date: Thu Apr 24 06:37:41 2003 -0400 Better gcc code generation commit 462d92a21265012fd4fb89326da6bccd69f05406 Author: Steven G. Johnson Date: Wed Apr 23 15:30:50 2003 -0400 ccc is the Compaq C compiler on Linux/alpha commit a97d5f6b3b451179f501157bfe6fafde3481ea0d Author: Steven G. Johnson Date: Wed Apr 23 00:06:03 2003 -0400 whoops commit a53aa0afb9f63f64ee6235e07fd99014f6da32fb Author: Matteo Frigo Date: Sat Apr 19 09:18:25 2003 -0400 ia64 cycle counter with intel compiler. commit 20978a6bcaad9c07b4c969eae56ab29ae092e2bb Author: Matteo Frigo Date: Fri Apr 18 18:27:30 2003 -0400 More gcc bugs. Sigh. commit 1a9f1a74c640a09efbabff5043cc7074b6bfefe0 Author: Matteo Frigo Date: Fri Apr 18 18:01:49 2003 -0400 touch ChangeLog to observe GNU standards commit 4241f03ed18cc0acf61072c70b9c38b1c7dc7c31 Author: Matteo Frigo Date: Fri Apr 18 18:01:12 2003 -0400 We now build ChangeLog automatically at distribution time commit 1797417a3e517b1f9b9931e49797dff29ae760da Author: Matteo Frigo Date: Fri Apr 18 18:00:17 2003 -0400 Automatic ChangeLog hackery commit d76cd97496030b79d3450f2c6de88da7b4458bd6 Author: Steven G. Johnson Date: Fri Apr 18 13:25:26 2003 -0400 plural commit 6c59528dcbd6ce3676a0852bad2d909e68fdeeac Author: Steven G. Johnson Date: Fri Apr 18 13:25:01 2003 -0400 updated commit b37ba8f3518f8be4c0c25dd86f102c9e64527104 Author: Matteo Frigo Date: Fri Apr 18 12:59:41 2003 -0400 Updated commit 61ac8832cb1bd238132fe475c699f12e11232781 Author: Steven G. Johnson Date: Fri Apr 18 11:48:39 2003 -0400 a -> an commit 287a97f4366aeb55745345972896f06e378dcacf Author: Steven G. Johnson Date: Fri Apr 18 11:47:56 2003 -0400 hyphen commit 8791b19a3135636c10dd4e99695799a6ac315870 Author: Steven G. Johnson Date: Fri Apr 18 11:47:28 2003 -0400 comma commit ad823e8abbe446885056a5fc05555e295b7a174f Author: Steven G. Johnson Date: Fri Apr 18 11:46:59 2003 -0400 minor commit 7a09c0d18816d7d1c2ed89a0dfbd62843d3442eb Author: Matteo Frigo Date: Fri Apr 18 10:37:31 2003 -0400 Updated commit 13381c1ba5e8af34a8bb03710aa7741a8040cc07 Author: Matteo Frigo Date: Fri Apr 18 10:14:59 2003 -0400 New script that builds the distributions commit 459fa38ea6735a02e430cb0ecbca2323e07cef57 Author: Matteo Frigo Date: Fri Apr 18 08:51:07 2003 -0400 Oops again commit e57ee39dc083cd4461a548cded7fdc45e57fc74f Author: Matteo Frigo Date: Fri Apr 18 08:39:05 2003 -0400 Oops, forgot -sign 1 commit 396b6bc876a10a52ce9dc68230e2eb25af544f29 Author: Matteo Frigo Date: Fri Apr 18 08:28:25 2003 -0400 Reorganization of simd codelets commit fd7cb9b51d78aabe5b32969758bf472ca0d563ae Author: Matteo Frigo Date: Thu Apr 17 21:21:45 2003 -0400 k7 assembly was not updated after conversion of opcnt from int to double commit 3bf64e2b77975db0ec3c2ad2232fa9dfceeae35f Author: Matteo Frigo Date: Thu Apr 17 19:15:53 2003 -0400 Capital `X' looks bad in all-lowercase plans commit 448802e951a73d406bacc449b5d7eb0ece3bfaf6 Author: Matteo Frigo Date: Thu Apr 17 18:53:29 2003 -0400 Removed redundant inline/noinline codelets commit b72b1f8cdf96f12c6776efdb456cdd6e2eff00b3 Author: Matteo Frigo Date: Thu Apr 17 15:25:50 2003 -0400 New noinline Noinline real codelets commit 4f5ff427ae9e39bda6b17cdc61b9ecfad075f322 Author: Steven G. Johnson Date: Thu Apr 17 15:23:03 2003 -0400 more ideas commit e549828bdf29f4ba5b352f8d54e1d8fb65e86b0b Author: Matteo Frigo Date: Thu Apr 17 13:18:45 2003 -0400 Removed duplicate rules. commit 29889996e0d7e2beec6c4afaf8d06936f0bc8e7a Author: Matteo Frigo Date: Thu Apr 17 10:51:09 2003 -0400 acx_pthread.m4 was not distributed commit 4bcda610088022777266a9d4723e3108871a2382 Author: Matteo Frigo Date: Thu Apr 17 07:21:17 2003 -0400 Oops commit 92ba4bfacade8ab1d4dae0e256cda08e8b22eb3c Author: Matteo Frigo Date: Thu Apr 17 07:07:19 2003 -0400 Both inlined and non-inlined notw codelets. commit bc5fcf6d524989489b08f05b59fd2660b4331765 Author: Matteo Frigo Date: Thu Apr 17 06:44:21 2003 -0400 Initial experiment with both inlined and non-inlined simd codelets. Both are included for now. commit 5586bdcd9d791a373355fae20e4df01e8b51ef32 Author: Matteo Frigo Date: Thu Apr 17 05:57:36 2003 -0400 --enable-fma to build FMA distribution commit 6719f26d34cd9bd0dce5a3d279a06b113cd774a7 Author: Matteo Frigo Date: Wed Apr 16 17:21:53 2003 -0400 Inline SIMD nontwiddle codelets commit 5db4d2ae77f5600008ce54b88e93a0e7fbcc649b Author: Matteo Frigo Date: Wed Apr 16 16:18:29 2003 -0400 Pathetic attempt at saving a couple of registers... commit 7267a94d763a0380970f1b07ee84aad71f138c8f Author: Matteo Frigo Date: Wed Apr 16 15:51:27 2003 -0400 for (i = 0; i < m; ++i) ==> for (i = m; i > 0; --i) No proof of evidence that this is any faster, but just in case... commit 607d75d99f7b0c558d5664cc18b0c6a070d3aa02 Author: Steven G. Johnson Date: Tue Apr 15 15:03:20 2003 -0400 added hack to make sure that codelet loops are preferred to vecloop solvers in the estimator commit a772926574ae28c851b95b9eea8d22d0b244e25e Author: Steven G. Johnson Date: Tue Apr 15 14:53:44 2003 -0400 use double for flops commit 84c191f258a2ee1fde8b39e4a567f48bc84d273a Author: Steven G. Johnson Date: Tue Apr 15 14:51:50 2003 -0400 metrowerks reportedly supports gcc assembly extensions on ppc commit d83a8e3d6b322b293fb8b048bb46c1048faf430b Author: Matteo Frigo Date: Mon Apr 14 15:00:50 2003 -0400 foo_CFLAGS generates some automake junk that breaks the build on Redhat 7.3. Screw it. commit 54128f6b2dd2ea009736debbb0c2eee43c4a0ade Author: Matteo Frigo Date: Mon Apr 14 12:22:59 2003 -0400 Carefully check return status commit 8935dbb4a98ff9a7780aa1ce7a98c656b7284d79 Author: Matteo Frigo Date: Sun Apr 13 16:46:12 2003 -0400 Removed annoying -FMA() expressions. commit 8ce45c13aca6d081f84f8dcb84a973383d3e5ee8 Author: Matteo Frigo Date: Sat Apr 12 14:32:22 2003 -0400 Major fma hackery commit 4a294df6343206e437a3f24ed268a71c9cd9edb0 Author: Matteo Frigo Date: Sat Apr 12 14:25:43 2003 -0400 Slight cleanup commit bda29baca81b8098e25fb1d61d3aa7b882f33ef5 Author: Matteo Frigo Date: Sat Apr 12 10:04:51 2003 -0400 Updated version number commit 80a70d1b1e8e1d7e336301a3f65b26d153ba15a7 Author: Matteo Frigo Date: Sat Apr 12 08:03:07 2003 -0400 Damn autoconf commit 27c1334aec2b8b3bbc7e679761d0ddab53212487 Author: Matteo Frigo Date: Sat Apr 12 07:54:20 2003 -0400 Recognize all 74xx processors commit 7b1c87d4184dace0460075da82295c1fc90e523d Author: Matteo Frigo Date: Sat Apr 12 07:35:17 2003 -0400 Detect 7400 processor. commit ea19ce217870bff790c8e91865228328a08cd769 Author: Matteo Frigo Date: Fri Apr 11 20:42:11 2003 -0400 No need to check for gcc-2.95 commit fb6560399e6c1dc7382fc48209545f4494f87e65 Author: Steven G. Johnson Date: Fri Apr 11 16:14:39 2003 -0400 removed duplicate commit 114c5faeddef91d05efc3af062e58f21879cd77d Author: Matteo Frigo Date: Fri Apr 11 08:45:37 2003 -0400 mflops ==> ``mflops'' commit be09e2c160458ffa571c8c207546d77dd86f1022 Author: Matteo Frigo Date: Fri Apr 11 07:00:53 2003 -0400 Print setup time as well commit a55b833ea382a9dcf478517c83d68d044db4dcaa Author: Matteo Frigo Date: Thu Apr 10 15:36:18 2003 -0400 Enforce pointer equality for in-place problems. commit a920de28e41596cc862a7f7bcc14c27c68920b53 Author: Steven G. Johnson Date: Wed Apr 9 17:47:54 2003 -0400 updated commit 080c6f9a24e129da6a216d44e581ea9c5012df83 Author: Steven G. Johnson Date: Wed Apr 9 14:53:38 2003 -0400 cross-ref fftw-wisdom man page commit 920b026d6c76cc8b23b877e8238cb6cd9f71e7af Author: Matteo Frigo Date: Wed Apr 9 10:13:00 2003 -0400 Undone previous change, committed by mistake. commit c636a6d32d90fda78f15b6e5b0060feeea45b47c Author: Matteo Frigo Date: Wed Apr 9 10:12:24 2003 -0400 Quick and dirty README for bench commit e542ee15fcc1eaa62b3c1ea6a58cc3bc468ff599 Author: Matteo Frigo Date: Wed Apr 9 08:50:25 2003 -0400 Consider additional command-line arguments as problems to be benchmarked. commit 2196cad41694a580854e0f04991d3055d9e365e3 Author: Matteo Frigo Date: Wed Apr 9 08:44:13 2003 -0400 Default report format is now human-readable. Removed unnecessary complexity in benchmark reporting. commit 1ecc5f59fb401c7ecdeb54596088ac86ede3639a Author: Matteo Frigo Date: Wed Apr 9 06:10:40 2003 -0400 Updated for new interleaved/split api. commit 8d3536f2476441b3f7754a1d5298102d6cd14ac2 Author: Steven G. Johnson Date: Wed Apr 9 03:01:03 2003 -0400 updated citation commit aaf6b0e66924b89fb8c927bbcc3bc655512aab13 Author: Matteo Frigo Date: Tue Apr 8 19:35:59 2003 -0400 Time for beta3 commit f5c162435d5334990a7c6f3421191592a831bdd7 Author: Steven G. Johnson Date: Tue Apr 8 17:40:59 2003 -0400 whoops, added commit 14108da14b0738a1c8b036a901971104d5374ef7 Author: Steven G. Johnson Date: Tue Apr 8 17:33:47 2003 -0400 more comparison of different R*DFT types commit 75bbef9a658de085d8c21952d597dbca9e8fa722 Author: Steven G. Johnson Date: Tue Apr 8 16:48:08 2003 -0400 comments commit 0ba9318b95b11d2cb5470ebcf73a1819d31caafb Author: Steven G. Johnson Date: Tue Apr 8 16:19:39 2003 -0400 more accurate DCT-I and DST-I, at the expense of up to a factor of 2 in speed and memory commit 404912f3cee76dd7a6b3928798304c64c55129bf Author: Matteo Frigo Date: Tue Apr 8 05:38:09 2003 -0400 Workaround gcc/sparc bug commit f34586737c6b234a5e2316dddbbe425331d4a5b3 Author: Steven G. Johnson Date: Tue Apr 8 01:34:12 2003 -0400 rumors commit 78f9ac7bedec0c22cb7fc5fccdbb2adc8b8c4f3b Author: Steven G. Johnson Date: Mon Apr 7 18:54:11 2003 -0400 added rdft2 paranoid mode commit 55b03e7ef8ab680294bbbe73059cb32cef82ac65 Author: Steven G. Johnson Date: Mon Apr 7 18:47:37 2003 -0400 added paranoid mode for r2r commit 8361bbcd9549f5c5819b31ce44c2e733e185f1a5 Author: Steven G. Johnson Date: Mon Apr 7 15:10:08 2003 -0400 whoops, sincos is predefined on some systems commit 0e1c9cf517e0d4010af5a35d10d141b2d74f7d0e Author: Matteo Frigo Date: Sat Apr 5 16:50:57 2003 -0500 bp->destroy_input was not initialized commit 7b13a4d8dfbf05ed699e7a1a533e7edf9355e2bc Author: Matteo Frigo Date: Sat Apr 5 09:29:11 2003 -0500 Asserted correctness conditions for tainted pointers. (For now, use CK() while we test. They should be changed into A() at some point.) commit 6b16dfb3e11fcfa65d2064af8ee1c66f0e0ba2a2 Author: Matteo Frigo Date: Sat Apr 5 08:18:23 2003 -0500 Untaint pointers before zero'ing arrays and before hashing commit 1495e7c627b502d282f4fb290357d6fe573e12dd Author: Matteo Frigo Date: Sat Apr 5 07:11:56 2003 -0500 Alignment check did not work with icc, which seems to be confused by the fact that the variable is not used. commit e013a83a5d1fb9e98a7d035baa3e4c5a89f768f1 Author: Matteo Frigo Date: Sat Apr 5 06:41:20 2003 -0500 More paranoid paranoid-check commit 377dd60fc68c62595e87882b3a5caede183a1251 Author: Matteo Frigo Date: Sat Apr 5 06:19:25 2003 -0500 0 == x & 7 parses as (0 == x) & 7, which is wrong commit 109ea5550e130de0017dcdf2665c0872ff776e98 Author: Steven G. Johnson Date: Fri Apr 4 21:35:49 2003 -0500 alignment checks commit 97c940cb1b38b75289d99b2206d77a13db97f6fb Author: Steven G. Johnson Date: Fri Apr 4 21:04:14 2003 -0500 prevent infinite loops in exhaustive planning commit 20a0d16cc3bf2a26e0e5b2ed4f1691c617ab676e Author: Steven G. Johnson Date: Fri Apr 4 20:58:20 2003 -0500 split/unsplit guru interface commit ec77ade6672c46fde379e806bb25f26569eaa874 Author: Matteo Frigo Date: Fri Apr 4 20:39:55 2003 -0500 Need UNTAINT in verifier too. commit 2fd0ede87b74bd6a6b325910eb68ce55ee69ae66 Author: Matteo Frigo Date: Fri Apr 4 19:36:46 2003 -0500 Forgot #if HAVE_SIMD commit 0509bf08e01662eb716c8038093caab6bbbe867e Author: Matteo Frigo Date: Fri Apr 4 19:30:37 2003 -0500 Keep track of two separate taint bits commit dc9c49340a92349a47d46befc4f85937b95911c5 Author: Steven G. Johnson Date: Fri Apr 4 19:16:32 2003 -0500 added NO_SIMD problem flag, made UNALIGNED an API issue (taints input pointers) commit 1b8c8e9e88fa0f39226f2a8a853a07719d4faf40 Author: Steven G. Johnson Date: Fri Apr 4 18:14:14 2003 -0500 bugfix in buffered: wrong pointers passed for cldrest; also use TAINT instead of UNALIGNED in buffered2 commit 99fccbefe65b6e39c9b4e9be40e647facb900b4f Author: Matteo Frigo Date: Fri Apr 4 17:19:51 2003 -0500 Reverted previous change, committed accidentally commit db841c316cbd202532fd5b428396e5f4e9c74cf0 Author: Matteo Frigo Date: Fri Apr 4 17:18:39 2003 -0500 What was I thinking? commit 6235b967442a2150ad1e7100ae39070ecbee0ca9 Author: Matteo Frigo Date: Fri Apr 4 17:18:21 2003 -0500 [empty commit message] commit 4d690f88fdc36870e18b359db01ee23dbc005d72 Author: Steven G. Johnson Date: Fri Apr 4 16:48:32 2003 -0500 added --enable-debug-alignment commit 8890a79f285088b2b04ca1c2db939a582ac0328e Author: Steven G. Johnson Date: Fri Apr 4 16:29:43 2003 -0500 X(taint) prototype, define corresponding function only if HAVE_SIMD commit 3f29be3cc8a63846e725e496ae01474af84ab9fc Author: Matteo Frigo Date: Fri Apr 4 16:15:53 2003 -0500 Initial checkin of tained pointers commit faad01bdd384c083438df8ef016b8a18804cb72a Author: Matteo Frigo Date: Fri Apr 4 13:12:58 2003 -0500 More conservative preservation of alignment commit ac40b45c34f80bd09d25405935c3722528595a97 Author: Steven G. Johnson Date: Thu Apr 3 23:16:27 2003 -0500 plan/execute with aligned stack commit 978b7f409d31dde15736857998dada802a3ef49c Author: Steven G. Johnson Date: Thu Apr 3 15:40:01 2003 -0500 whoops, missed FFTW_MEASURE in fftw3.f commit 3274f607dea4bbf61b89f1d09703054007b28776 Author: Steven G. Johnson Date: Thu Apr 3 13:44:46 2003 -0500 use WITH_ALIGNED_STACK for experimental semaphore stuff, too commit 345df91b8bab3216268ca697850bc00767799265 Author: Matteo Frigo Date: Thu Apr 3 09:04:23 2003 -0500 Removed old file commit a36ad0e14ceb92c16cdc3bec19938c53c69f79a5 Author: Matteo Frigo Date: Thu Apr 3 07:50:43 2003 -0500 Improved stack-alignment hack commit c4f4e2d7d432203a0f99e3a50b29168c3d653a83 Author: Steven G. Johnson Date: Thu Apr 3 02:37:57 2003 -0500 use aligned stack for experimental semaphores, too commit cea2d48a884c03d448b9c688a192081e3e984983 Author: Steven G. Johnson Date: Thu Apr 3 02:17:58 2003 -0500 whoops commit c3bdcb8375c4c5181c0c642b0331d2a7268757f8 Author: Steven G. Johnson Date: Thu Apr 3 01:58:32 2003 -0500 fix(?) for SIMD thread problems commit 13dde386673933410cafa316f241cdc6544ecd65 Author: Steven G. Johnson Date: Wed Apr 2 20:33:12 2003 -0500 noted n=1 REDFT01 case commit 4a2c5556d9c6d080f3c3fee8c87d0aee50c12531 Author: Steven G. Johnson Date: Wed Apr 2 20:32:07 2003 -0500 note about n=2 REDFT00 formula commit ac5fe8c3ecce10f2e79f84279ce6e406db3891e8 Author: Steven G. Johnson Date: Wed Apr 2 20:30:10 2003 -0500 note about undefined REDFT00 commit 4761b3e61b5cf393deeacf6eba73d9f3a35e2d12 Author: Steven G. Johnson Date: Wed Apr 2 20:18:03 2003 -0500 noted n=1 RODFT01 case commit 00cd3721f0f757f691e62c836aff445fece4a9ef Author: Steven G. Johnson Date: Wed Apr 2 20:14:07 2003 -0500 corrected definitions commit 20545fe3112a9aa8bd9529129f24586a66f39f9d Author: Steven G. Johnson Date: Wed Apr 2 19:43:59 2003 -0500 added REODFT_KINDP, fixed nontrivial test for R2HC11 and HC2R11 (not that we support these yet anyway) commit dcd456710f59aea75abb5a4b62ad7b8c8592c28f Author: Steven G. Johnson Date: Wed Apr 2 19:16:54 2003 -0500 size 2 hc2r and dht are equivalent to r2hc commit dd3db55bba543cc4db74f3760716a251892089a9 Author: Steven G. Johnson Date: Wed Apr 2 15:09:08 2003 -0500 noted overwriting in upgrading section commit 4752fd3dcd81d75371bc667be6ab701ee36a24d3 Author: Matteo Frigo Date: Wed Apr 2 05:25:56 2003 -0500 Moved with_aligned_stack to its own file commit 821f37e9c6396afa7dcf22eae25e2ddb56f16218 Author: Matteo Frigo Date: Tue Apr 1 21:11:31 2003 -0500 Fixed comments commit 44b77936443c9dcbba1ccf21d3e90c2426a46e01 Author: Matteo Frigo Date: Tue Apr 1 20:57:39 2003 -0500 Alignment hacks commit 52974f9347f673ccfc5eca68ed2af2e39f0ae148 Author: Steven G. Johnson Date: Tue Apr 1 14:26:48 2003 -0500 phew, no, previous version was okay commit f599fa6d8cb159f0e636411e51f0bd07feca296e Author: Steven G. Johnson Date: Tue Apr 1 14:26:15 2003 -0500 whoops, crap commit da939ebd27d69c1e3693ebf71f81060e816af54e Author: Matteo Frigo Date: Tue Apr 1 08:01:06 2003 -0500 support sse2 in forthcoming gcc-3.3 commit bad66cbc1963d1beecba1205ff4d528026003427 Author: Steven G. Johnson Date: Tue Apr 1 01:17:15 2003 -0500 comment commit bde4d633afdc37f663c31f7aa2c4b3f8673e9607 Author: Steven G. Johnson Date: Tue Apr 1 01:16:46 2003 -0500 noted ac_check_headers commit 0e70968689aed47b11b44eb15752b97e21534366 Author: Steven G. Johnson Date: Tue Apr 1 01:11:31 2003 -0500 comment commit 716a92cca66059e083cc6dc764db18de707a6318 Author: Steven G. Johnson Date: Tue Apr 1 01:06:53 2003 -0500 documented autoconf tests, so that cycle.h can be distributed separately commit a081cb59d2fbd65042f4a1cec68ec04698a03594 Author: Steven G. Johnson Date: Mon Mar 31 22:12:02 2003 -0500 IRIX is all-caps commit c21fee75eade0b3c38780e252bb0dbe24383d2cf Author: Steven G. Johnson Date: Mon Mar 31 22:11:42 2003 -0500 noted Irix fix commit 0521214bc9e4b224ee18c31c165c8971d5d09fc6 Author: Steven G. Johnson Date: Mon Mar 31 22:10:33 2003 -0500 whoops commit e42bd5b20e10661a6cd8228c3b19ee7d8f1a1602 Author: Steven G. Johnson Date: Mon Mar 31 22:04:35 2003 -0500 use ithreads_init so as not to confuse fftw 2 users commit 95c74b4b2e3ef14b347ae7b50fdb455d6a7aa719 Author: Steven G. Johnson Date: Mon Mar 31 22:00:42 2003 -0500 IRIX lossage commit 746ced9c6d3a5d53c7b95090cbb99fcfd0b07344 Author: Steven G. Johnson Date: Mon Mar 31 21:19:20 2003 -0500 check for -openmp (icc) among the OpenMP flags (TODO: make this a separate macro, with a loop instead of repeated checks) commit 589adf0e340eafbabdd43f5beacae6740e9e64a0 Author: Steven G. Johnson Date: Mon Mar 31 17:12:19 2003 -0500 clarification commit 4242c9c8bf63111190cbcccd162a224af036e5af Author: Matteo Frigo Date: Mon Mar 31 17:01:16 2003 -0500 More liberal test for solaris CC commit d5928079a514ffaba5eedc2cd5ce76eb2dd9fa9b Author: Matteo Frigo Date: Mon Mar 31 15:13:33 2003 -0500 Allow x86-64 simd commit b7a2252e112c67968e6695c7ef13e375a04d23d1 Author: Matteo Frigo Date: Mon Mar 31 15:13:21 2003 -0500 Added x86-64 timer code commit 7f0d1b516cd025f72f304fdeb210c563b94bff31 Author: Steven G. Johnson Date: Mon Mar 31 13:10:54 2003 -0500 updated commit 914e74201ca244b441f7f971d2f05aced6aa405c Author: Steven G. Johnson Date: Mon Mar 31 13:07:19 2003 -0500 updated commit 202febc5ba6f89ad6e834d4e36a01caf4bb5fde2 Author: Steven G. Johnson Date: Mon Mar 31 13:05:27 2003 -0500 colon commit 2deea3231269a3e4bcbdfa9498ad253ad1b26a48 Author: Matteo Frigo Date: Mon Mar 31 07:20:20 2003 -0500 Reorganized compiler bugs section (which is growing out of control) commit b4bb5597a0d941eeefe4ec01208c139d37e9fce2 Author: Matteo Frigo Date: Mon Mar 31 07:15:20 2003 -0500 solaris gcc bug appears to be also in 2.95.2 commit efb7874ecc58a7e086abf8428d481a6e19c4e0d7 Author: Matteo Frigo Date: Mon Mar 31 07:13:45 2003 -0500 Workaround works---there is another gcc/sparc bug elsehwere commit 8ab897ec05303f83b56d2e349c3dba59da173ef2 Author: Matteo Frigo Date: Mon Mar 31 07:08:56 2003 -0500 Grrr, workaround does not work. commit 32707cc1247ff03834c3d37fceb57f53e268da65 Author: Matteo Frigo Date: Mon Mar 31 07:02:23 2003 -0500 ADDMOD is now function, which seems to avoid gcc bugs. commit c4c605027021db9b801e3e2695c802ed6e1bc44a Author: Matteo Frigo Date: Sun Mar 30 16:40:26 2003 -0500 Workaround sparc gcc bug commit b77fba4459439cf3d969088c9edb010ab151a893 Author: Steven G. Johnson Date: Sun Mar 30 15:51:59 2003 -0500 note commit 91e398fb21a1c46fac8174a5f2faf0b79548e188 Author: Steven G. Johnson Date: Sun Mar 30 15:34:57 2003 -0500 make non-square UGLY, for now commit 4233309534b8e309bce0dafeeff64c29ac9f4b1c Author: Steven G. Johnson Date: Sun Mar 30 15:33:57 2003 -0500 added -o amnesia to forget_wisdom before each plan commit 055907acc9ab6486266e2601f13e76e768bd990f Author: Matteo Frigo Date: Sun Mar 30 09:41:27 2003 -0500 Report setup time in benchmark commit 6a49d54d587cc678c9a4063e3ed620c998d2602e Author: Steven G. Johnson Date: Sat Mar 29 20:21:15 2003 -0500 comment commit 1ccc921a0398eb08789ac928e28840a524100587 Author: Steven G. Johnson Date: Sat Mar 29 19:11:10 2003 -0500 slight change commit ee2cf222eef51c2ee38a761765c58ed6a2faa35e Author: Matteo Frigo Date: Sat Mar 29 18:46:16 2003 -0500 More relaxed definition of UGLYness commit 2afbef3c1cd1edca0168bc5341dac85de41790ba Author: Steven G. Johnson Date: Sat Mar 29 15:28:01 2003 -0500 no more cvs id strings in header files...I'm tired of having to rebuild everything after a commit commit 6922449e07c11f405107d7e5fc63d7dfb0379b5d Author: Steven G. Johnson Date: Sat Mar 29 15:22:28 2003 -0500 rdft2 stride unification commit 383f9ebcd63e13f756a57f0801b6bdc4080f4887 Author: Steven G. Johnson Date: Sat Mar 29 14:38:23 2003 -0500 preserve in-place-ness commit 4989fd02c94baef2f163547b88f643fcd1172a72 Author: Steven G. Johnson Date: Sat Mar 29 14:23:31 2003 -0500 make nowisdom the default commit a2f08dcbee1508f40df179ca67ed0ddcefd66f37 Author: Matteo Frigo Date: Sat Mar 29 14:13:18 2003 -0500 --verbose in paranoid-check produces too much output. Make it quiet. commit 90cdd14a2b342236ae6e8367d94ad2e29ecadd76 Author: Steven G. Johnson Date: Sat Mar 29 13:45:13 2003 -0500 fixed transpose bugs...need to check ri-ii before deciding whether Ntuple fits commit 71fc37fa553e50623f56a5fb21731833cb2d9dfd Author: Matteo Frigo Date: Sat Mar 29 08:10:40 2003 -0500 try more 2^k commit d4e0d59380ec69df5a4250ebd0f62f002c964e19 Author: Matteo Frigo Date: Sat Mar 29 08:05:41 2003 -0500 MIN_ALIGNMENT was defined after being used, causing crash in sse2. commit 101331222a4ff1189042a5997260a7e171ae1136 Author: Steven G. Johnson Date: Sat Mar 29 03:07:34 2003 -0500 real transposes are currently unused, and are not needed for MPI code either commit 55b24758612593bac4f6b7065d32b33b815eb81f Author: Steven G. Johnson Date: Sat Mar 29 02:58:39 2003 -0500 added general transpose commit c111a90447eb6c3c1a0058a93e97557beaaf1605 Author: Steven G. Johnson Date: Fri Mar 28 22:49:04 2003 -0500 added transposition option commit 90fb8971b2092e9a1fa97b10065683ba8af9247c Author: Steven G. Johnson Date: Fri Mar 28 22:09:22 2003 -0500 yikes, fixed incorrect applicability of transpose plans commit 5776651de7f7152e07630b99ee8445fb004131a1 Author: Steven G. Johnson Date: Fri Mar 28 22:06:14 2003 -0500 in the future, we might want to allow sz->rnk == 0, vecsz->rnk arbitrary to be converted to r2hc (the apply function already should work for this case)...disabled for now, though commit db6988d7af647595db1ef218c039bb2755070b59 Author: Steven G. Johnson Date: Fri Mar 28 19:12:08 2003 -0500 use most_unaligned in rdft2 commit bf69a12d650bc9daee88f41bd0a04bf1abe664c8 Author: Steven G. Johnson Date: Fri Mar 28 19:11:47 2003 -0500 slight change commit b79360114562af8636d8c3da2898cc7ed7df7b98 Author: Steven G. Johnson Date: Fri Mar 28 19:00:21 2003 -0500 output message when checks pass commit 14afb1d94a6d7eb23f853cd2097814989148a9e2 Author: Steven G. Johnson Date: Fri Mar 28 17:21:47 2003 -0500 added ifndef alloca around alloca stuff commit 6cccb2f2fed1d79204cbbb7e1ee44685bf2ed300 Author: Matteo Frigo Date: Fri Mar 28 13:45:50 2003 -0500 Proper alignment in rader commit 643528ab599946750ef668ce19266fe5a0bab5c1 Author: Steven G. Johnson Date: Fri Mar 28 12:43:23 2003 -0500 whitespace commit 8c9af83603806d8d769f21b1222dfe717068f7c6 Author: Steven G. Johnson Date: Fri Mar 28 12:41:39 2003 -0500 whoops, alloca stuff inside HAVE_ALLOCA commit 4f4ed55f3679a721e23cf9cb61e9180646f0f176 Author: Steven G. Johnson Date: Fri Mar 28 12:35:21 2003 -0500 make check can afford to be a little bigger commit e7db3e5ee6c6cbb0c24626dc09c00e23e46e70e7 Author: Steven G. Johnson Date: Fri Mar 28 12:31:32 2003 -0500 use same alloca macrology as configure script commit 3c6ec07b6659b60cfb8e77365e75c872ccacd66d Author: Steven G. Johnson Date: Fri Mar 28 03:05:15 2003 -0500 fallback is no longer needed for mingw commit cbc91a4cae1193e9e27ef5885e1bb37c548c191b Author: Steven G. Johnson Date: Fri Mar 28 02:58:45 2003 -0500 alloca fallback for gcc commit 37a6e5be53d9273006dc360b8dafe2e3e53356e5 Author: Steven G. Johnson Date: Fri Mar 28 02:49:59 2003 -0500 _alloca was added for MinGW, but it causes problems there commit 37adf3eddeb59f98c6d4e8888ddb4208b10fb42a Author: Steven G. Johnson Date: Thu Mar 27 22:06:07 2003 -0500 fixed most_unaligned for split format commit fae5ff2e94558a024ef43a1cd4470f5c68b4de17 Author: Steven G. Johnson Date: Thu Mar 27 19:01:58 2003 -0500 whoops commit 5a2216ff945775dcd769967d2a58125b51c4b3c0 Author: Steven G. Johnson Date: Thu Mar 27 19:00:20 2003 -0500 added pkg-config commit 669fc84978762faee9e8d48a7b852eca22ee4303 Author: Steven G. Johnson Date: Thu Mar 27 15:59:01 2003 -0500 fixed asserts commit 8108cd595625c0e28683a556df95de39588c7fb4 Author: Matteo Frigo Date: Thu Mar 27 15:49:53 2003 -0500 Do not adjust r/i pointers separately. commit d9b6e6ea20bc01290efaabb99405a0b10a3dadca Author: Matteo Frigo Date: Thu Mar 27 15:17:40 2003 -0500 iForgot to add files commit 9c79c521f6c57b91f21a90731610214d9dafca8e Author: Matteo Frigo Date: Thu Mar 27 15:10:41 2003 -0500 Specialized n simd codelets for unit vector stride. commit 7e309fd9c2284d234e3932b6d3a2d5bbcc44c9e0 Author: Matteo Frigo Date: Thu Mar 27 08:22:03 2003 -0500 Changed version number to beta2 commit 513db4fd67e83952d5e510cf7a1eb23fbd6ef2bb Author: Matteo Frigo Date: Thu Mar 27 06:37:07 2003 -0500 Changed alignment requirements for n1 simd codelets. Changed mechanism for detecting lack of alignment. commit be8495756a69c610211f28e3f9a7ff20016eb901 Author: Matteo Frigo Date: Thu Mar 27 04:25:06 2003 -0500 Oops, wrong place for hook commit 575731d46f96f87a35f3a1a37dba70cc153728df Author: Steven G. Johnson Date: Thu Mar 27 02:37:52 2003 -0500 added comments to codelet makefiles, to aid people wanting to generate their own code commit 59245164a590789dd1ed892f910bc43a346b791b Author: Steven G. Johnson Date: Thu Mar 27 01:42:27 2003 -0500 Matteo is also a copyright holder commit c558091f6b4b0f37175f86a623e2f2376da9c01a Author: Steven G. Johnson Date: Thu Mar 27 01:41:08 2003 -0500 FORTRAN is officially Fortran, these days commit d0b28f4043bbc0aae200dd359e7ad52da98bc903 Author: Steven G. Johnson Date: Thu Mar 27 01:40:32 2003 -0500 punctuation commit 46bd3b7c143c2291021d10121a74d23936e3ccdd Author: Steven G. Johnson Date: Thu Mar 27 01:40:14 2003 -0500 don't use "wrapper" commit 9a8eba97546a52e4070f6910534c849009d027d8 Author: Steven G. Johnson Date: Thu Mar 27 01:37:53 2003 -0500 plural commit bc26c4cd5feb70158f734130ef3415ce557e207b Author: Steven G. Johnson Date: Thu Mar 27 01:35:32 2003 -0500 grammar commit 246a46ccdfc59616fdc3234ee8f773f54b9b5260 Author: Steven G. Johnson Date: Thu Mar 27 01:33:35 2003 -0500 better phrasing commit 8d4fae80f2b4558c3ec62f108316187e7dad2b84 Author: Steven G. Johnson Date: Wed Mar 26 22:47:58 2003 -0500 stddef.h should not be needed anymore for this file commit 1080fb42895231d251238b34f4af9458ee7329ec Author: Steven G. Johnson Date: Wed Mar 26 22:13:48 2003 -0500 added comments for Franz mode commit e995cc9d9c287c7681b4e8ff9e97dc57e5dcbdb4 Author: Steven G. Johnson Date: Wed Mar 26 22:11:58 2003 -0500 clarification commit cff23bce9ddaeddc3338be9cfcbc3cd3d57f2370 Author: Steven G. Johnson Date: Wed Mar 26 22:08:51 2003 -0500 commented on FRANZ codelets commit 0b33d349e4eab5f3fce6b0873cf0366e83e51d59 Author: Steven G. Johnson Date: Wed Mar 26 22:06:45 2003 -0500 updated commit 8467b9db21a1c618e7ccaf958299f9edc31bbb42 Author: Steven G. Johnson Date: Wed Mar 26 21:51:15 2003 -0500 disable DIF codelets, since they are never used (apparently) except for some non-power-of-two sizes...improve support for the latter by adding size 3, 5, and 6 q^2 codelets. commit 100f8e1667a8ffdc4ad997bbe4346603e7da122b Author: Steven G. Johnson Date: Wed Mar 26 20:07:11 2003 -0500 DHT has no forward/backward commit 9f5c7271cdd393f08d42a71669c9d3d1686ab641 Author: fftw Date: Wed Mar 26 19:46:12 2003 -0500 added hacky way to use an arbitrary flag commit 59d54e87e6bb971ba93e6b371aad0c3ee5d88d11 Author: Matteo Frigo Date: Wed Mar 26 19:44:31 2003 -0500 Better place to install hook commit b35aa5670a5cf242f215c8281c3c09097c3c740a Author: Steven G. Johnson Date: Wed Mar 26 19:40:28 2003 -0500 noted that the user should run make check if they think FFTW has a bug commit dd17b391f48608fdfe190c514eb865ff891689b9 Author: Matteo Frigo Date: Wed Mar 26 17:31:16 2003 -0500 Oops, what am I thinking commit 47c3588218fccd048fb32989c007dc693f402abc Author: Matteo Frigo Date: Wed Mar 26 17:23:56 2003 -0500 Grrr.... fixed bug in estimator commit a3f8ee308a4b9b1f83d1031991c9f8fdc55b3bc2 Author: Matteo Frigo Date: Wed Mar 26 17:16:19 2003 -0500 Oops---the flop count was right. The estimator is broken elsewhere. commit f2103b394847d39a74d720c5dc18b9f3139fc257 Author: Matteo Frigo Date: Wed Mar 26 14:28:41 2003 -0500 Fixed SIMD estimator commit 442a17b47519435071b0c7373c83cc50f5e4b826 Author: Matteo Frigo Date: Wed Mar 26 07:45:03 2003 -0500 Added twidsq simd codelets commit 9647b9a35046476b0697bb196f6ad80a1c81b763 Author: Steven G. Johnson Date: Tue Mar 25 23:33:03 2003 -0500 gensrc -> genfft commit e668b629605e9193d33403c9c87be52a7d08d134 Author: Steven G. Johnson Date: Tue Mar 25 23:32:16 2003 -0500 newline commit 76eeb4a83c788c638126d62924bbedb833573028 Author: Matteo Frigo Date: Tue Mar 25 19:17:08 2003 -0500 Noted need to add dif simd codelets commit 350bf8c788a6f8a0ec21b7b004ce7a83c163f511 Author: Steven G. Johnson Date: Tue Mar 25 13:03:47 2003 -0500 noted shift commit a5fa31a29076ae51d870e2db210b7f51aa46adbb Author: Steven G. Johnson Date: Tue Mar 25 13:02:47 2003 -0500 clarification commit 276ff68eb803fb179adefc146b05b4f616fd226f Author: Steven G. Johnson Date: Tue Mar 25 12:46:44 2003 -0500 need make after bootstrap commit f48787b41d83d8f21ec8ce19b275eaedf5316484 Author: Steven G. Johnson Date: Tue Mar 25 12:31:49 2003 -0500 slight change commit 7143220a87f7444e90964aadccece0c31bf3830b Author: Steven G. Johnson Date: Tue Mar 25 12:30:56 2003 -0500 libtool is also needed commit 212581eeb5c4011118653b3d8fe433b774bbcd1b Author: Steven G. Johnson Date: Tue Mar 25 12:29:52 2003 -0500 added code generator introduction commit e22b4de0a314136783316cc1acbbc7bf97ca105c Author: Steven G. Johnson Date: Tue Mar 25 11:51:49 2003 -0500 added support for REDFT/RODFT/DHT direct codelets commit cc149df36c0ddc161d91558da702572cd01f99c6 Author: Steven G. Johnson Date: Tue Mar 25 11:29:29 2003 -0500 noted ARM bug; thanks to Jay Treacy commit e313a7fb2e0c1c2524eaed8926b25055a38fb957 Author: Matteo Frigo Date: Tue Mar 25 07:55:54 2003 -0500 bugfix from Stefan commit dc62fc48ad26abb231c697a5a18b5f7ca64ab6fe Author: Steven G. Johnson Date: Mon Mar 24 15:59:08 2003 -0500 slight change commit 878030bb1ea7efd3b1e1dab02601732fd5c90c36 Author: Steven G. Johnson Date: Mon Mar 24 15:58:44 2003 -0500 caveat commit 776dd0aac7bb400bce14f59781f664062d7b4117 Author: Steven G. Johnson Date: Mon Mar 24 15:58:04 2003 -0500 warning about DHT commit 2bd26e46c0f7e3622be81d9922f0089923143c65 Author: Matteo Frigo Date: Mon Mar 24 08:34:14 2003 -0500 Oops commit 597693dba60d0535d890bbb5f161c3a01830a1ea Author: Matteo Frigo Date: Mon Mar 24 08:13:15 2003 -0500 Regression test for p4fftwgel commit 92603541cee018def425427f93dcb3739ab7c0f1 Author: Steven G. Johnson Date: Mon Mar 24 03:09:06 2003 -0500 make check is faster, old tests are in make bigcheck commit 518b188f2a8a30b7cbc2a5c34b335940afa54530 Author: Steven G. Johnson Date: Sat Mar 22 00:41:21 2003 -0500 note commit 82b8e611b2d1a65af695db0ddf0cf306a5804886 Author: Steven G. Johnson Date: Sat Mar 22 00:40:05 2003 -0500 whoops, line wrapping commit b9e7ade930fd2e2de8105a28ff7a8f32a799237f Author: Matteo Frigo Date: Fri Mar 21 15:10:00 2003 -0500 Franz-mode codelets even without SIMD. (disabled) commit bd548cc599b6178d2e1bdbc2c6abc08f276ae386 Author: Matteo Frigo Date: Fri Mar 21 09:09:30 2003 -0500 Bug is in netbsd-1.6, not 1.5 commit 1d1b6b166a1164c2499c4a7e5f9bd9b69f3cf5c3 Author: Matteo Frigo Date: Fri Mar 21 07:45:48 2003 -0500 const cast, should placate c++ compilers. commit 677ff57df2415f59cc701368e26dd23d1c6ec956 Author: Steven G. Johnson Date: Thu Mar 20 18:49:49 2003 -0500 added FAQ on why plans are array-specific commit f0c1a0a7c03bfb68f4559001c2b652aa7a601c0d Author: Steven G. Johnson Date: Thu Mar 20 16:12:56 2003 -0500 comment fix commit 3ac192669e4bbb596cc30adb429179fa58f11387 Author: Steven G. Johnson Date: Thu Mar 20 16:12:15 2003 -0500 noted comparison to NR commit 3f8a990d38ae5f796daa261636120dcb936acb2a Author: Steven G. Johnson Date: Wed Mar 19 20:13:16 2003 -0500 whoops, C99 complex didn't work if complex is a macro (as it is with glibc); thanks to Keh-Cheng Chu for the bug report commit faab1981e35c6596ac99e9c1e8379c77d92155fe Author: Steven G. Johnson Date: Wed Mar 19 16:52:54 2003 -0500 noted in help that --enable-k7 enables 3dnow, and that --enable-3dnow is only a fallback commit 297a4fd9785fe05d2149abf128413bd363fa2dbc Author: Matteo Frigo Date: Wed Mar 19 15:09:52 2003 -0500 New gcc bug. html.refs was not in repository/distribution. commit 8a81ec059d2c1c567c69a45f77d76b8f242c8836 Author: Matteo Frigo Date: Wed Mar 19 10:09:16 2003 -0500 Don't write wisdom if you don't have it. commit 4bc446d3e46e7a8c2f084d425e193e58f9ff76ec Author: Matteo Frigo Date: Tue Mar 18 15:44:41 2003 -0500 Added index entries for DHT. Similarly for DCT, DST commit 4a72bfaf1f333116de1e5e0a154bc87d17c9c234 Author: Steven G. Johnson Date: Tue Mar 18 14:50:04 2003 -0500 execute should not go through C api, for efficiency commit 22f933b01c30e0f68f46f8a73e474a1e8a893360 Author: Matteo Frigo Date: Tue Mar 18 06:14:51 2003 -0500 Renamed FFTW_IODIM, FFTW_R2R_KIND commit e57a38d55f979644a5fecd702c1d4bd105b1eac3 Author: Steven G. Johnson Date: Tue Mar 18 00:30:17 2003 -0500 added rfftwnd.eps to dist, so that transfig is not required for people trying to build other formats (e.g. ps); thanks to Brian Gough for the bug report commit f5713b796921f5e1cfded3ce96e33c6df0d09a8c Author: Steven G. Johnson Date: Mon Mar 17 15:17:59 2003 -0500 pointer to upgrading section from tutorial commit 7e222b6349b8a2bceeb8703d347715fb763efadd Author: Steven G. Johnson Date: Mon Mar 17 14:44:40 2003 -0500 make print_plan and fprint_plan, so that the former can be more easily called from other languages commit f358b64955871f01d87a42a05275f5f0cb5094e5 Author: Steven G. Johnson Date: Mon Mar 17 14:19:10 2003 -0500 whoops, forgot to change equation image links to .png commit ea32f5a93a88f6ddec9185886bbbea43cf8ed067 Author: Matteo Frigo Date: Mon Mar 17 04:15:50 2003 -0500 fixed c++ linkage problems commit de7c276d4b4ab36471c8dcb639d3c522d2cbe7cc Author: Matteo Frigo Date: Mon Mar 17 03:25:17 2003 -0500 Removed ``const'', otherwise c++ link fails commit f3bf675c6d0003e3087d634aab2ef34a6745dcb9 Author: Steven G. Johnson Date: Sun Mar 16 20:24:31 2003 -0500 fixed C++ annoyances: void* casts, and global variables are static by default(?!?) commit 45e54b3f9a8c0b5942cc21c0b2d2f19682d3a7c0 Author: Steven G. Johnson Date: Sun Mar 16 15:29:11 2003 -0500 ranlib bug is in binutils commit a17b7eb5a896ea6d7ca3f73fd7251bfc76de500d Author: Steven G. Johnson Date: Sun Mar 16 15:26:42 2003 -0500 ranlib Irix bug commit f482abd59b1c2afed27292d79bef782b935d0c51 Author: Steven G. Johnson Date: Sun Mar 16 15:13:35 2003 -0500 start with random tests commit a216647a57733c53d3407957caaaf759ed0dd700 Author: Steven G. Johnson Date: Sun Mar 16 15:00:04 2003 -0500 silenced some compiler warnings, eliminated unused variables, and fixed Makefile.am for f77funcs.h commit 2b581243067955d0e82eb7cf487def793b8f66b6 Author: Steven G. Johnson Date: Sun Mar 16 14:55:13 2003 -0500 whoops commit 058c4751ed4a98a52e6a878c78335f4997c60294 Author: Steven G. Johnson Date: Sun Mar 16 14:28:22 2003 -0500 3dnow is float commit 0b50f9ef3433e59f0b9cc7983652a8fe3c361fdf Author: Steven G. Johnson Date: Sun Mar 16 14:27:45 2003 -0500 fixed k7 docs commit 9179a17f1ba8db6733ccb2dbe541aa3f5f59727e Author: Steven G. Johnson Date: Sun Mar 16 14:19:10 2003 -0500 SGI compilers now support inline commit 353d40e964502f46aba99f094c08fd610cb9fc2c Author: Steven G. Johnson Date: Sun Mar 16 14:18:32 2003 -0500 cruft commit 455c3aa4c3e0cc6d5404c78ef12ed70b8751da45 Author: Steven G. Johnson Date: Sun Mar 16 14:15:47 2003 -0500 texinfo doesn't like commas in nodes commit 323b6d34cebb6be520075efaf4eeef0a369a6635 Author: Steven G. Johnson Date: Sun Mar 16 13:52:04 2003 -0500 updated commit 7762fe2f89dc86791560cad9326ece6fbdbceaf7 Author: Steven G. Johnson Date: Sun Mar 16 13:47:44 2003 -0500 f77funcs.c -> f77funcs.h so that people don't try to compile it commit acd3f5b16c0b85acfad30bb086199cc65bc6b326 Author: Steven G. Johnson Date: Sun Mar 16 13:46:11 2003 -0500 minor changes commit 8d4f8a05ac24ce13ba6adea137099c22c6f5362b Author: Steven G. Johnson Date: Sun Mar 16 13:39:24 2003 -0500 updated compiler bug list commit dc84fdefd84cac3bd6ecf521f48ca6cab0ae2b0e Author: Steven G. Johnson Date: Sun Mar 16 13:39:07 2003 -0500 noted how to set CC commit d71b55ff07b10fe5ee5dc24799511bdbb0b3f772 Author: Steven G. Johnson Date: Sun Mar 16 13:01:01 2003 -0500 TODONE commit 454b2a79327b2582f18024204a6ab683d97f9f41 Author: Steven G. Johnson Date: Sun Mar 16 13:00:42 2003 -0500 yikes, bugfix commit e741c61f2ab8b259c217e9e25adbcece21a6be4b Author: Steven G. Johnson Date: Sun Mar 16 10:26:28 2003 -0500 whoops commit f0073024ddb3bb621a4c71fcc7ddb575adf42871 Author: Matteo Frigo Date: Sun Mar 16 09:24:19 2003 -0500 Report SIMD extensions in version string commit 0b40f7e79a8110bd4d2215f9d81a3d100f1e9ecc Author: Steven G. Johnson Date: Sat Mar 15 18:56:11 2003 -0500 more verbose output commit 1310aa1ef6043afa44bc6c8bcc2d7b3bae66190c Author: Steven G. Johnson Date: Sat Mar 15 17:41:25 2003 -0500 a couple of additional non-Unix instructions commit 12cb13aafd73275762b5f2c098c436457b8f9be9 Author: Steven G. Johnson Date: Sat Mar 15 17:15:26 2003 -0500 hyphen commit 7aea3d41ed7a9dde86b14f410caf606a05f15fd5 Author: Steven G. Johnson Date: Sat Mar 15 17:12:29 2003 -0500 softened commit 2a251916b17e7380f33bf556d666781828819789 Author: Steven G. Johnson Date: Sat Mar 15 17:09:44 2003 -0500 added FAQ, used PNGs commit d3669c90789fbfcc99404a8fbd8d90540fae6c52 Author: Steven G. Johnson Date: Sat Mar 15 15:29:43 2003 -0500 great copyright update commit 1b82fbfbe632120cba76c9c6107bd3e1abbe4547 Author: Steven G. Johnson Date: Sat Mar 15 15:14:02 2003 -0500 threads in make check commit a7ebafd6aec670afd0a9d5165893abf7d7413870 Author: Steven G. Johnson Date: Sat Mar 15 15:11:24 2003 -0500 fixed const warnings commit b72d4726555aa5ef40e612f712eaa2190324c89e Author: Steven G. Johnson Date: Sat Mar 15 15:08:25 2003 -0500 make sure spawn_loop size > 1 (it has to be at least > 0 lest we crash, but > 1 is an optimization) commit 8f82cc0405e8d264d1a201e4b65d0e82e5822834 Author: Matteo Frigo Date: Sat Mar 15 14:00:17 2003 -0500 hpux seems to want machine/sys/inline.h as opposed to machine/inline.h. commit 195978c28fbdd1b1ead25d381c9c6af6f71a74fb Author: Steven G. Johnson Date: Sat Mar 15 13:36:56 2003 -0500 Sourceforge is really SourceForge.net, and is run by VA commit 93eaa99ca18255b538bd37c4742ff87898a9350c Author: Steven G. Johnson Date: Sat Mar 15 13:34:05 2003 -0500 comma commit aa16c88c1efdf9283884a6f3c28bda36d54c1cb9 Author: Steven G. Johnson Date: Sat Mar 15 13:31:42 2003 -0500 fixed AMD company name commit fa4887fa3ddccb2e53b50158d92f8cb9da3223f2 Author: Steven G. Johnson Date: Sat Mar 15 13:29:41 2003 -0500 minor changes commit 689f73454e57451cc4ceca48e6c9b3856550cc3f Author: Steven G. Johnson Date: Sat Mar 15 13:13:55 2003 -0500 more emitter->read_char renaming commit 469d7370865e70079d60fc5d2144c477847ff50b Author: Steven G. Johnson Date: Sat Mar 15 13:08:45 2003 -0500 more wisdom docs, noted wisdom utilities commit 69c2e6ee0d6523c9181828e9d918d00390f1b07f Author: Steven G. Johnson Date: Sat Mar 15 11:41:32 2003 -0500 compound adjectives are hyphenated commit 1c816b975a4d35c3296bceb2700bc665c2838788 Author: Steven G. Johnson Date: Sat Mar 15 11:40:30 2003 -0500 fftw does support another type of packed array via r2r commit 4510d672da97fc9273a574d9cad23f807c811192 Author: Steven G. Johnson Date: Sat Mar 15 11:29:12 2003 -0500 write_char/read_char for export/import functions commit 5d042765f68d22c08849f8120b432d637364a95a Author: Steven G. Johnson Date: Sat Mar 15 11:19:19 2003 -0500 comments commit ec4d319ec4d855dd2e5c3521429d77dcba1deffa Author: Matteo Frigo Date: Sat Mar 15 10:08:26 2003 -0500 Enabled randomized-cse commit 85619e6f972e3105691588bba210448ad468726f Author: Matteo Frigo Date: Sat Mar 15 09:47:49 2003 -0500 Changed to 3.0-beta1 commit 6c58169a5ef565ec595054c8a1a3644a119575ad Author: Matteo Frigo Date: Sat Mar 15 09:07:31 2003 -0500 First complete draft commit e014222e1611b0fda35eb4e81010d764371f645a Author: Matteo Frigo Date: Sat Mar 15 08:37:52 2003 -0500 EMITTER is a misnomer commit b4e71cdebd8e08a8e4cb6e4e021c9839b0240220 Author: Matteo Frigo Date: Sat Mar 15 05:50:50 2003 -0500 Revision, wisdom tutorial, acks. commit 304d6a33a960a6867e345b7a2391f580de183901 Author: Steven G. Johnson Date: Fri Mar 14 22:59:04 2003 -0500 noted OpenMP commit f0132ff87cdec8cce3eec22776267630ce5d52a8 Author: Steven G. Johnson Date: Fri Mar 14 22:38:49 2003 -0500 comment commit d32e3536671b2ddf95fd19eefd595903f53369c9 Author: Steven G. Johnson Date: Fri Mar 14 22:38:30 2003 -0500 comments commit 758a708f03680fe53ce46466e344370a9537adfc Author: Steven G. Johnson Date: Fri Mar 14 22:38:05 2003 -0500 reformatting commit f31a618619a119ba5df49807d225f5fef53e2acc Author: Steven G. Johnson Date: Fri Mar 14 22:26:28 2003 -0500 whoops commit 47acccb2c662f75a8b9b082032072bfa154f13e5 Author: Steven G. Johnson Date: Fri Mar 14 22:11:23 2003 -0500 some threads fixes, and added experimental semaphore (pre-thread-spawning) and Linux spinlock support commit b3f95134caa95e434d418ab40f2bb57c07521a33 Author: Steven G. Johnson Date: Fri Mar 14 20:50:46 2003 -0500 whoops commit caedcb4f9b8df5449616654ec8782156a2e63e7f Author: Steven G. Johnson Date: Fri Mar 14 18:23:03 2003 -0500 added note that FFTW_PATIENT will disable threads if they are not beneficial commit 34677912b28d4342f4ac1f84e27ee248d2c9ca71 Author: Steven G. Johnson Date: Fri Mar 14 18:20:44 2003 -0500 made fftw_cleanup* more restrictive, in that we don't want to guarantee that previously created plans will still work (they won't, in the case of threaded plans and fftw_cleanup_threads), and there is no reason to provide such a guarantee anyway. commit 4311c764859ea3a4a45fbb507ff0e131d12a5d44 Author: Matteo Frigo Date: Fri Mar 14 17:23:13 2003 -0500 Moved version.c from kernel/ into api/ commit b79acfd84c9dc9bf6ce933ef72af7aafa01623e4 Author: Matteo Frigo Date: Fri Mar 14 17:19:50 2003 -0500 icc-7.0 requires -openmp commit 36f49567ecc9ec71ab72b760ee70ceb688f51f4c Author: Matteo Frigo Date: Fri Mar 14 14:47:52 2003 -0500 Ensure that one can do make dist given the distribution commit 266bb8c14f0aa494b54fcaf1fd0b517c646d5618 Author: Matteo Frigo Date: Fri Mar 14 14:38:11 2003 -0500 Dist fftw3.pdf, not fftw.pdf commit a79801bc40a8ba8ba6f7b27f78aebb9426010b5a Author: Matteo Frigo Date: Fri Mar 14 14:36:25 2003 -0500 Support -onthreads=%d commit 84c91507e6f7f6a050cc8651c7ee8c017d5d1b2f Author: Steven G. Johnson Date: Fri Mar 14 14:34:21 2003 -0500 comment commit a8ef843faf74d0384c6ee1320b456f6aae56c5b2 Author: Steven G. Johnson Date: Fri Mar 14 14:33:27 2003 -0500 whoops commit 3e4f6ed2ad2fda1dbaa2bb444f81cbf116ab1931 Author: Steven G. Johnson Date: Fri Mar 14 12:32:18 2003 -0500 fftw_real is gone commit b55295b022d814a869b207fea2dbbb79c5091525 Author: Steven G. Johnson Date: Fri Mar 14 12:26:04 2003 -0500 typos commit 469579587defd8532f362c0ca4a2935532bae16a Author: Matteo Frigo Date: Fri Mar 14 06:21:43 2003 -0500 More BENCH_DOC strings commit 18f0d31d803f348a8494ac190b4b9ff8d9be7a97 Author: Matteo Frigo Date: Fri Mar 14 05:58:53 2003 -0500 Fixed xref's commit d39f035994e443ebbc933eae51b3d9116bc50bb4 Author: Matteo Frigo Date: Fri Mar 14 05:38:26 2003 -0500 Revised manual (esp. intro and tutorial), fixed texinfo hackery for figures. commit f0cf0419996f46abb0bdf85068d67c1f88435a87 Author: Steven G. Johnson Date: Wed Mar 12 02:42:33 2003 -0500 redirect users from guru execute to advanced interface, if possible commit d30d60239f8f57975f53876649f04f04458b8d90 Author: Steven G. Johnson Date: Wed Mar 12 02:35:22 2003 -0500 punctuation commit cc3b4e3f2fd1880b0a9ced57de8bc592ac868aab Author: Steven G. Johnson Date: Wed Mar 12 02:28:51 2003 -0500 use correct heading level commit 16e33bb6e9eba6c6ac3a3b5e88192f0937cbc79a Author: Steven G. Johnson Date: Wed Mar 12 02:24:37 2003 -0500 html generation commit 8ea08e261cef0528db1c181268c6aabca6c52e50 Author: Steven G. Johnson Date: Wed Mar 12 01:44:00 2003 -0500 added equation GIFs commit 6b511ad0e8551382fb008d5f7d9d6db7c923f5d7 Author: Steven G. Johnson Date: Wed Mar 12 01:43:27 2003 -0500 punctuation commit b223dbcdf2607d546dcde4593dfeb29740b5a2c3 Author: Steven G. Johnson Date: Wed Mar 12 01:26:46 2003 -0500 punctuation commit 8e6421b39b31952d4cde709e9a7dc68146eeac77 Author: Steven G. Johnson Date: Wed Mar 12 01:25:12 2003 -0500 added multi-dimensional transform definitions commit da7ac31fa42d9b594d9a458bc86b31e326d2631b Author: Steven G. Johnson Date: Wed Mar 12 00:14:03 2003 -0500 slight changes commit 4fa36533cd5df28fb24a7cd7678c4ff3a2b8e1f7 Author: Steven G. Johnson Date: Wed Mar 12 00:06:34 2003 -0500 typo commit 93fdbbd4434ff6db48765645e2af3eb2031caece Author: Steven G. Johnson Date: Tue Mar 11 23:50:43 2003 -0500 added 1d version of What FFTW Really Computes commit 989a15455a04e193bd71a2fe4b1daea5649d0f2d Author: Steven G. Johnson Date: Tue Mar 11 21:17:54 2003 -0500 note in upgrading section about FFTW_PATIENT commit f94fc8414c8477ad076f17bed5a1bffe87557ea9 Author: Steven G. Johnson Date: Tue Mar 11 15:18:39 2003 -0500 added cycle-counter section commit 32e58f9ac101c22551198abe31c5021196f69f0e Author: Steven G. Johnson Date: Tue Mar 11 14:53:44 2003 -0500 more ideas commit 54102c10c10da11afcf1dac0451ce4a1e064be8c Author: Steven G. Johnson Date: Mon Mar 10 17:41:35 2003 -0500 noted that indirect should probably be merged with rank-geq2, to make a rank-split solver commit e93a7d1eda3519a9467a0d1a7af57a176aae195c Author: Steven G. Johnson Date: Fri Mar 7 03:01:52 2003 -0500 added non-Unix installation instructions commit 910a5988b2529e4ebd33372540c9db14626a3e8c Author: Steven G. Johnson Date: Fri Mar 7 02:30:59 2003 -0500 also talk about stack alignment with SSE/SSE2 commit 620f6439ff6d382e7f79fba9735243ffbc4e98d6 Author: Steven G. Johnson Date: Fri Mar 7 02:24:07 2003 -0500 made warning more dire commit 6c49e3a0d90853a504b55ee2bb9e67e6961334c6 Author: Steven G. Johnson Date: Fri Mar 7 02:13:25 2003 -0500 fix commit 076cf960691702683f560140c3c90932f531c802 Author: Steven G. Johnson Date: Fri Mar 7 02:09:55 2003 -0500 number commit abe3e1b3e2ac5d1ce15dd74544550011079f056c Author: Steven G. Johnson Date: Fri Mar 7 02:09:08 2003 -0500 fix commit a43149065f2c521c8ce705f9ac0eeb519899ec2b Author: Steven G. Johnson Date: Fri Mar 7 02:08:01 2003 -0500 minor commit cb19343373774be75d78469cbcd3ac4f0f4a903a Author: Steven G. Johnson Date: Fri Mar 7 02:04:45 2003 -0500 minor fix commit d962180e504c71e46dc5b2f71d2304c254fcdace Author: Steven G. Johnson Date: Fri Mar 7 01:58:15 2003 -0500 cross-ref commit 35ef1ce130da4c0389a2f7cef5eaab36dbd614ae Author: Steven G. Johnson Date: Fri Mar 7 01:57:31 2003 -0500 minor commit 28fe03b9f79a6a80be8cc0d02cfc87e090f408d5 Author: Steven G. Johnson Date: Fri Mar 7 01:53:28 2003 -0500 more installation manual commit 650bf3b91d1fe392906f9aa25faed1707244f4f4 Author: Steven G. Johnson Date: Fri Mar 7 00:43:40 2003 -0500 GNU-lly correct commit aec18000f9851e8985d704ee50f49ea4d17f324e Author: Steven G. Johnson Date: Fri Mar 7 00:38:48 2003 -0500 started installation section commit f7bf8016fa681c46c51385297a58d6dae611862f Author: Steven G. Johnson Date: Fri Mar 7 00:25:02 2003 -0500 added --without-cycle-counter option as a last resort commit e97d01d48d003b290d6d2da7dc53cea35c90357d Author: Steven G. Johnson Date: Fri Mar 7 00:07:12 2003 -0500 macros with () arguments were only standardized in C99, and we don't need them anyway commit 459a56abf74ce71af7c63047b31d39f7befefbb9 Author: Steven G. Johnson Date: Thu Mar 6 23:10:41 2003 -0500 wording commit 20d77f4e2a461fab512a8b5cd0ccd301d42f3673 Author: Steven G. Johnson Date: Thu Mar 6 23:03:03 2003 -0500 parallelism commit 881feeb3f3d4813a30da4baf5d71b8af8ca72d23 Author: Steven G. Johnson Date: Thu Mar 6 23:01:47 2003 -0500 additions to upgrading chapter commit 59f6ac21ab762470d0d4740130fa2131cc3f684e Author: Steven G. Johnson Date: Thu Mar 6 22:39:36 2003 -0500 noted additional humility of FFTW 3 wisdom commit cf933ec73d68c2839a79d1fc53ba1198dc63fe39 Author: Steven G. Johnson Date: Thu Mar 6 22:32:44 2003 -0500 renaming commit 724b52700268a45264d168aaf7a63977a16af8bb Author: Steven G. Johnson Date: Thu Mar 6 22:31:00 2003 -0500 added placeholder for wisdom reference commit c286ee068195c75e012cdf36534aa5f4154b394f Author: Steven G. Johnson Date: Thu Mar 6 22:29:38 2003 -0500 wrote upgrading chapter commit 35c5a163f14e561b45a226dece35564f5773ce69 Author: Steven G. Johnson Date: Thu Mar 6 18:01:10 2003 -0500 slight change commit de53b4abb5481ee319ffcfc4e4b215861d814ed6 Author: Steven G. Johnson Date: Thu Mar 6 18:00:43 2003 -0500 placeholder for upgrade chapter commit a8a06d66b81a785625077d6de4fb8699ee4c718f Author: Steven G. Johnson Date: Thu Mar 6 13:47:49 2003 -0500 whoops commit a128a59973d9f74fa491a56fc22b374ad69a5ebc Author: Steven G. Johnson Date: Thu Mar 6 13:36:38 2003 -0500 strengthed warning about time commit 271819893ab4e7634f8cee294f9c68612ff811f2 Author: Steven G. Johnson Date: Thu Mar 6 13:35:42 2003 -0500 noted -t in example commit 08b64e3b15f7ad163677a348ba8d0a1a62720b07 Author: Steven G. Johnson Date: Thu Mar 6 13:21:03 2003 -0500 pay attention to WINDOWS_F77_MANGLING commit 5428bbf998b549e46c06f6f3e2ed9ff435304631 Author: Steven G. Johnson Date: Thu Mar 6 02:52:30 2003 -0500 punctuation commit 1462402c458e7a21360fcde1e6a5e9a023987747 Author: Steven G. Johnson Date: Thu Mar 6 02:51:02 2003 -0500 index commit 3cfc6a120672eeb46fca1300ba357ef6bff2b1cc Author: Steven G. Johnson Date: Thu Mar 6 02:50:38 2003 -0500 documented C++ usage commit 675b0233f6e57d4aa15fe422acb4c156e2c3692a Author: Steven G. Johnson Date: Thu Mar 6 02:25:32 2003 -0500 got rid of overfull hbox TeX warnings commit a5a689c09a184e7f361240b46f8a74cd5c0bea78 Author: Steven G. Johnson Date: Thu Mar 6 02:20:38 2003 -0500 whoops commit 9bdfa427108e546c8fd707d8bde9151b5cacd81d Author: Steven G. Johnson Date: Thu Mar 6 02:20:13 2003 -0500 noted fftw_iodim split for Fortran guru interface commit ba02448b7f27ddbff45651477c0ca5ea4d28b7bd Author: Steven G. Johnson Date: Thu Mar 6 02:14:21 2003 -0500 added guru reference commit db7990c25a72ecb1a1acddfa63bdd8c38fdaeedf Author: Steven G. Johnson Date: Wed Mar 5 22:56:05 2003 -0500 minor commit 58778ac5172128991fd8e88d4461004a03763596 Author: Steven G. Johnson Date: Wed Mar 5 22:45:31 2003 -0500 use @r{...} for comment text in code examples commit bd4b0411a2a7a9485f83d430455ff5d1571019f8 Author: Steven G. Johnson Date: Wed Mar 5 13:14:04 2003 -0500 eliminate warning commit 87d217e8cd045402dbb4d9a4bc7ac81481edbcf9 Author: Steven G. Johnson Date: Wed Mar 5 13:12:56 2003 -0500 SIMD_CFLAGS only for simd code commit 8346b6688d8e88aa91864685b77de030e8cb2549 Author: Matteo Frigo Date: Wed Mar 5 11:06:41 2003 -0500 Minor changes. commit 181d6c8fbdca0f24c1feb199c9a29edcf2187977 Author: Steven G. Johnson Date: Wed Mar 5 02:13:34 2003 -0500 cross-compiling with MinGW can't detect f77 mangling, so add an option to use what seems to be the most common styles commit 17f9e2aabc5526c6614d7055960c5e7f5fda3720 Author: Steven G. Johnson Date: Tue Mar 4 20:00:31 2003 -0500 comment commit b0715eb2e0f6662e3b3b41adf70799a31c2ab630 Author: Steven G. Johnson Date: Tue Mar 4 20:00:13 2003 -0500 we only use our-malloc-16 on machines where size_t == uintptr_t, so don't bother doing the right thing with the benchmark commit 72d331d4dbb9bf0bed0796e05eaf970a17c2975a Author: Steven G. Johnson Date: Tue Mar 4 19:46:09 2003 -0500 support WITH_OUR_MALLOC16 commit d2ee17676db2b01e1d57b6f6fcebe4c9c8987fff Author: fftw Date: Tue Mar 4 18:50:53 2003 -0500 automatically add -msse etcetera for --enable-sse etcetera commit 0a7cb6363f8effac8a34176c7b31d1dfbe4e71d0 Author: fftw Date: Tue Mar 4 18:24:26 2003 -0500 got rid of const warning commit f27a29dff516ba8bf8bd22a3affe1e881a045389 Author: fftw Date: Tue Mar 4 18:22:48 2003 -0500 missing header commit 58b8d88bdb16fde7d1400c93b1d976af4a29acaf Author: Steven G. Johnson Date: Tue Mar 4 15:55:47 2003 -0500 fixes commit a636d3b26c9ca10c0225bb058035e2f99ae41383 Author: Steven G. Johnson Date: Tue Mar 4 15:53:26 2003 -0500 whoops commit 530bdb066779445d91537bb42fafd03d98d24bd1 Author: Steven G. Johnson Date: Tue Mar 4 02:22:14 2003 -0500 started guru reference commit c44336102065022482f5d8a4eda068247672c05c Author: Steven G. Johnson Date: Tue Mar 4 01:44:09 2003 -0500 use same FFTW_IODIM between precisions commit da6302aba33f0dc74c9da6d7cd4824a6c431c948 Author: Steven G. Johnson Date: Tue Mar 4 00:25:57 2003 -0500 renamed section commit bf45437f266c9ce170d54e87466ba34f41b1937d Author: Steven G. Johnson Date: Tue Mar 4 00:21:49 2003 -0500 no need for "advanced" in subheadings commit 5fb9bd9fe4b93abeb0aa4b00e1ca6e9057da2fbd Author: Steven G. Johnson Date: Tue Mar 4 00:20:05 2003 -0500 typo commit 0127b618539bcb2ddf8634d4bb09c10673ba26a5 Author: Steven G. Johnson Date: Tue Mar 4 00:17:23 2003 -0500 finished advanced interface commit 76aa5434ffee4220caa0b1935d813723d43d55eb Author: Steven G. Johnson Date: Mon Mar 3 23:26:12 2003 -0500 more advance interface docs commit 05a9b164357317a362a1f4e0acb2067faa66910e Author: Steven G. Johnson Date: Mon Mar 3 23:12:09 2003 -0500 fail for win32 commit c49ad63f2fb49af4c81ea1fde51303013e637d7b Author: fftw Date: Mon Mar 3 17:18:48 2003 -0500 shortened help string commit 52ebcb06b186e8f796fdc71ae30d3ac7e9e35017 Author: fftw Date: Mon Mar 3 17:16:17 2003 -0500 fixed cross-refs commit 331a793c80e1bb04018aad92d07791ff432d792e Author: fftw Date: Mon Mar 3 17:07:27 2003 -0500 FFTW_POSSIBLY_UNALIGNED -> simpler FFTW_UNALIGNED in API, added bench option commit 3ba1c479988c55e2f9244fac654f491c5b1c4b78 Author: fftw Date: Mon Mar 3 16:58:07 2003 -0500 whoops commit 62a1622e28fcc9408467bccee64c50f977243b7f Author: fftw Date: Mon Mar 3 16:52:58 2003 -0500 noted assumption commit b6a1f1234fe0834ad8c7a313fc15c710bffafdc6 Author: fftw Date: Mon Mar 3 16:50:33 2003 -0500 provide our own malloc16 routine because of Windows lossage commit 22de7295407d77062d3611d326295950f90d4907 Author: Steven G. Johnson Date: Mon Mar 3 13:28:12 2003 -0500 capitalization commit 5756c9b659e1dda142a21c8c4c8fed00015bf29d Author: Steven G. Johnson Date: Mon Mar 3 13:26:32 2003 -0500 whoops commit 0f92b4f922681df3c6ea4a35bafb8c32907a028d Author: Steven G. Johnson Date: Mon Mar 3 12:55:57 2003 -0500 vertical skip looks better than indenting for setting off short paragraphs commit 767a89f2268461313cb0a3666be311640bb288af Author: Matteo Frigo Date: Mon Mar 3 06:34:09 2003 -0500 Removed franz-mode. Automake was distributing franz files whether franz mode was enabled or not. commit d40ea4ed0a561aa7f85008bb970d07b33010a0eb Author: Steven G. Johnson Date: Mon Mar 3 01:44:00 2003 -0500 made output boundary conditions more prominent; they are important, because they make the different transform types inequivalent in parity commit 909ed5b34a848e505c9a62fcb5b07d346183a43d Author: Steven G. Johnson Date: Mon Mar 3 01:17:28 2003 -0500 clarification commit feb1fc01699f139143e536e1d0f961b904bba74e Author: Steven G. Johnson Date: Mon Mar 3 01:17:07 2003 -0500 typo commit 8d2e91da57095741496a5ae8b809cee8bd01bdb9 Author: Steven G. Johnson Date: Mon Mar 3 01:10:28 2003 -0500 started advanced reference commit 34cc962abf3c75c27328c21fb2c9b053426870f8 Author: Steven G. Johnson Date: Mon Mar 3 00:52:02 2003 -0500 r2r reference commit 6a32d0463a93a19f01e9b13bdc2e0d73857c7eaa Author: Steven G. Johnson Date: Sun Mar 2 23:51:21 2003 -0500 workaround for info formatting bug commit a76009f2fb554d2af97e39f4857b70d26a263bf5 Author: Steven G. Johnson Date: Sun Mar 2 23:47:19 2003 -0500 noted lack of fftw_malloc in Fortran commit 53555b1acdefbc4b092702bcd7defa71dd523ee7 Author: Steven G. Johnson Date: Sun Mar 2 23:42:52 2003 -0500 parallelism commit a84b5314b96882b7495c7d0fbdd91a73f678683f Author: Steven G. Johnson Date: Sun Mar 2 23:39:54 2003 -0500 whoops commit f4b30c1aeb9cadcb0ef3586a40e2a41a6087304f Author: Steven G. Johnson Date: Sun Mar 2 23:33:02 2003 -0500 r2c/c2r reference commit 9afb0869850070a47c3b45df511efdaef0c19292 Author: Steven G. Johnson Date: Sun Mar 2 22:44:10 2003 -0500 table of contents was being included twice commit 9433ef02af21f2e3ee1c5a5e6034a2e5a02663af Author: Steven G. Johnson Date: Sun Mar 2 22:42:29 2003 -0500 minor changes commit 34aaf0acd96dc522e8b71c3844077a7d28149690 Author: Steven G. Johnson Date: Sun Mar 2 21:54:13 2003 -0500 started reference section commit 10afdab4c99f7d367227f61d6ea87e43113379ef Author: Steven G. Johnson Date: Sun Mar 2 19:10:02 2003 -0500 whoops commit da1655a272a6bd0bf3db360605818d3684e01919 Author: Steven G. Johnson Date: Sun Mar 2 19:03:23 2003 -0500 started ref. section commit a3cc56c2b538f79864f787f9480a7da21017624a Author: Steven G. Johnson Date: Sun Mar 2 18:50:58 2003 -0500 fftw_flops takes const plan commit e6c9dd42b944a416f6cca057b2277acb2a00d370 Author: Steven G. Johnson Date: Sun Mar 2 15:54:14 2003 -0500 typo commit 9d97e6245d45d65061499080021f2e0c877803b6 Author: Steven G. Johnson Date: Sun Mar 2 15:52:41 2003 -0500 added "Wisdom of Fortran?" section commit 85f80c144fc9da705ddc7da87d0e437a4125d1db Author: Steven G. Johnson Date: Sun Mar 2 15:50:37 2003 -0500 typo commit 0f4d81b32a7ddf1e011dcc66a7ca3a6f01602aa9 Author: Steven G. Johnson Date: Sun Mar 2 15:49:57 2003 -0500 wording commit 6c6dd67d7f64ce4ab293456c0b4fce7397b4204f Author: Steven G. Johnson Date: Sun Mar 2 15:46:13 2003 -0500 added comments commit d9ecf01ce4b7d0bb1c81de9097941541d96f68d0 Author: Steven G. Johnson Date: Sun Mar 2 15:44:01 2003 -0500 added example file commit 37b6da9ec0958f78193e343ff5adbb7221039698 Author: Steven G. Johnson Date: Sun Mar 2 15:37:32 2003 -0500 don't print out READ WISDOM unless we have commit c476c76dbda1de2cfcfed5db46f8eb6a59ca5eda Author: Steven G. Johnson Date: Sun Mar 2 15:36:28 2003 -0500 EOF is not a space commit 789f94ba726188b22495dffa33536923784cc893 Author: Matteo Frigo Date: Sun Mar 2 09:14:37 2003 -0500 Turn on inline by default commit f76cd82b2e8d570d38aafcd3bc479871a6bfef71 Author: Matteo Frigo Date: Sun Mar 2 07:11:56 2003 -0500 Optionally inline loop in notw codelets commit 4ee60a97aba5df7daa9a1f0f20fc8a18b4caeef9 Author: Steven G. Johnson Date: Sun Mar 2 01:37:41 2003 -0500 updated nodes commit a760bacb99bcb4d1b37deac1a0d03048564f06ae Author: Steven G. Johnson Date: Sun Mar 2 01:37:19 2003 -0500 wrote most of Fortran chapter commit 84b26fd1d2d412fc5dae194fa4f49ea8c5ad803b Author: Steven G. Johnson Date: Sun Mar 2 00:58:37 2003 -0500 citation commit 90c66908b4f24f05f5a77a85d890ef77a5946747 Author: Steven G. Johnson Date: Sun Mar 2 00:57:22 2003 -0500 added parallel FFTW chapter commit 1a89e4fc8d30e58c46d409543e5641d74d82012b Author: Steven G. Johnson Date: Sat Mar 1 20:42:23 2003 -0500 typo commit 125c6e2e61c2977a10fe882134b6daa518d211b6 Author: Steven G. Johnson Date: Sat Mar 1 20:34:38 2003 -0500 added inlining to TODO commit 86f19bdcd118e4f74034a5acf2a9f46ae0dd563b Author: Steven G. Johnson Date: Sat Mar 1 19:36:26 2003 -0500 added K commit c471cfe8ed04c68bd3ba96de578160018676966f Author: Steven G. Johnson Date: Sat Mar 1 19:15:18 2003 -0500 use K for constants commit c9132f12b56356608c7430b1aa8674c57982cf6f Author: Steven G. Johnson Date: Sat Mar 1 19:14:54 2003 -0500 fixed cross-ref commit 2c552e93b7ac76c6ed2cb15d84fb724e71d90901 Author: Steven G. Johnson Date: Sat Mar 1 19:14:16 2003 -0500 whoops commit ffd88e528368512ad6260f9829d093be01b0b8e0 Author: Steven G. Johnson Date: Sat Mar 1 18:50:43 2003 -0500 cleanup commit eb500b0aee97bc247fadc5f14053addd510f8911 Author: Steven G. Johnson Date: Sat Mar 1 18:46:38 2003 -0500 "words of wisdom" by itself is a little too obscure commit c110b9bcf9dc0e3ac3bd0a9dc0aa04a3003808ab Author: Steven G. Johnson Date: Sat Mar 1 18:43:21 2003 -0500 re-added multi-dimensional array stuff commit 3c1809be37bedc7b19bb0ad1645d2d0c55fb24af Author: Steven G. Johnson Date: Sat Mar 1 18:15:22 2003 -0500 added alignment section commit 5ea9d154e8d9b180445e82c228f66dc620435630 Author: Steven G. Johnson Date: Sat Mar 1 16:34:21 2003 -0500 shrunk code commit 969e6184c37360147d4377765e4209f740bbbc63 Author: Steven G. Johnson Date: Fri Feb 28 20:22:00 2003 -0500 slight compression commit 61f49745af277cf662c0b684d812bb937991da02 Author: Steven G. Johnson Date: Fri Feb 28 19:01:20 2003 -0500 style commit 7a450c9741b7d712c4b0647c8348b6f5c16c5b5b Author: Steven G. Johnson Date: Fri Feb 28 18:46:53 2003 -0500 noted not in API commit dcb2c790e6afe7674f917a64a27a5d757de04d54 Author: Steven G. Johnson Date: Fri Feb 28 18:43:14 2003 -0500 more updates commit 9c734e0be5f7e454d53ea076c85b07a1563d12d0 Author: Steven G. Johnson Date: Fri Feb 28 18:38:42 2003 -0500 slight updates commit 3e0a26ba8c35cc39e451dddb4ff538a9b6897853 Author: Steven G. Johnson Date: Fri Feb 28 18:28:58 2003 -0500 great const-ification of apply/solve and print commit 7531ed4ba4a1cd9a4e9caf11c225f930a72efc73 Author: Steven G. Johnson Date: Fri Feb 28 17:51:15 2003 -0500 make fftw_execute take a const plan, to remind the user that it is re-entrant (or should be)... commit 4688736baa020b3ea5f442e36b70d793b431c5c5 Author: Steven G. Johnson Date: Fri Feb 28 17:29:40 2003 -0500 weakening commit 0318454412dbe1cd837ddb068bd343ca6e112011 Author: Steven G. Johnson Date: Fri Feb 28 17:28:48 2003 -0500 note commit 91b816d6c3f80bdb7e0d0116306ae7ffd2c455a8 Author: Steven G. Johnson Date: Fri Feb 28 17:27:10 2003 -0500 footnote about why DHT is provided commit ade0a1b900ff7aad1f0b34334d0aeef444f9c6f1 Author: Steven G. Johnson Date: Fri Feb 28 15:07:03 2003 -0500 index commit 02af64c2431e9ebe1f95750c16596bb16b0130e2 Author: Steven G. Johnson Date: Fri Feb 28 15:05:48 2003 -0500 added DHT tutorial commit 4c0a2b93c6fabdbd47e06a9f6ba76008bcb560a1 Author: Steven G. Johnson Date: Fri Feb 28 14:36:45 2003 -0500 fixed O(n log n) commit fd7ecdadbf64ae5027bac415310c4a98a276db60 Author: Steven G. Johnson Date: Fri Feb 28 14:12:15 2003 -0500 whoops commit ee8d32cc161fa77c6d9566dfb000a80af883f835 Author: Steven G. Johnson Date: Fri Feb 28 14:06:22 2003 -0500 slight improvements commit 0b2ef4ccfd465403919403e5151753a4280f683e Author: Steven G. Johnson Date: Fri Feb 28 00:55:50 2003 -0500 addition commit 22bd399df29e7380522c5bac340a3f04a466fd79 Author: Steven G. Johnson Date: Fri Feb 28 00:54:09 2003 -0500 clarification commit 1b357d49f4d4ee22c59374391be91ddb42813a2d Author: Steven G. Johnson Date: Thu Feb 27 23:49:37 2003 -0500 fix commit 1c30eacc33d5c9d5daf303cfbbc5fa74e6a5bfa4 Author: Steven G. Johnson Date: Thu Feb 27 23:43:56 2003 -0500 slight changes commit 053b9356142e3b05c1ee11800f497813e5c9f119 Author: Steven G. Johnson Date: Thu Feb 27 23:27:48 2003 -0500 added R{E,O}DFTab tutorial commit a793a4024b69b7e4ec4bbbeedb00508845c0cab2 Author: Steven G. Johnson Date: Thu Feb 27 17:24:20 2003 -0500 fixes commit de5b2994a11c8c2b3d1948f43525864b0ac5d265 Author: Steven G. Johnson Date: Thu Feb 27 17:20:42 2003 -0500 fixes commit 027014da3b7f99190c9c1edbe0f6d0c0d15e043a Author: Steven G. Johnson Date: Thu Feb 27 17:11:54 2003 -0500 slight change commit 6359d6080ac4a827218faee02ba1bfe5a5a676bf Author: Steven G. Johnson Date: Thu Feb 27 17:07:45 2003 -0500 documented r2hc/hc2r commit a44e1bc64be97cffdf71bf77dcb526786daa8efe Author: Steven G. Johnson Date: Thu Feb 27 16:19:16 2003 -0500 minor changes commit 7186d1f0701c1507ce6b57f943f0d069c69e09d1 Author: Steven G. Johnson Date: Thu Feb 27 13:54:06 2003 -0500 timed planner and unifying radix-2 butterfly loops are not critical for release commit e22ae82e9d2c007712ae8e8523a2ba4844265b26 Author: Steven G. Johnson Date: Thu Feb 27 13:51:20 2003 -0500 reodft/verify.c no longer exists commit d562aee6ca0c9e2c375d31a2f283ef5188b8819a Author: Steven G. Johnson Date: Thu Feb 27 13:44:19 2003 -0500 optimization: REDFT00 of size 2 is same as R2HC commit 35bca2a3e6f2b887fe4517dfed61eb4cc614f9ff Author: Steven G. Johnson Date: Thu Feb 27 12:35:33 2003 -0500 R{E,O}DFT01 of size-1 is identity commit 3e86434a19f94bd85e576be96fb26b0db8456b7e Author: Steven G. Johnson Date: Thu Feb 27 12:15:10 2003 -0500 minor simplification commit 23aeb956f45a31061c6f0bee5c78119e332e9d20 Author: Steven G. Johnson Date: Thu Feb 27 02:46:31 2003 -0500 fixed add count commit 629bf73abe3666100c7a3cdb795cdf85f1c3467c Author: Steven G. Johnson Date: Thu Feb 27 02:25:04 2003 -0500 whoops commit 46350e9b4b06fc596f73c2e8297276e38871fbcc Author: Steven G. Johnson Date: Thu Feb 27 02:22:03 2003 -0500 another optimization commit 16310c985bad6d32fa0da6362c37fd375822d813 Author: Steven G. Johnson Date: Thu Feb 27 01:43:00 2003 -0500 added op counts commit 870808939ac67893ae3193d1eaf47d6722399743 Author: Steven G. Johnson Date: Thu Feb 27 01:29:32 2003 -0500 cleanup commit e13936e36480509c10d5f8da4806a17a1f2c9d34 Author: Steven G. Johnson Date: Thu Feb 27 01:17:23 2003 -0500 typo in comment commit 32c3d158f7f210901f1c16a8c8cbdfff05024993 Author: Steven G. Johnson Date: Thu Feb 27 01:13:49 2003 -0500 fixed comment commit 6e65b622f4e11f6b75ce19b92715054e01726a87 Author: Steven G. Johnson Date: Thu Feb 27 01:12:05 2003 -0500 use E instead of R commit b2dbcc1af3dac45c5dc937090de39d8c50f79f04 Author: Steven G. Johnson Date: Thu Feb 27 01:05:39 2003 -0500 more unrolling to eliminate if statements in loops, for speedups of 25-40% commit efdfcd1ab423b3b5f4c226859c38fe82ef8d5ee3 Author: Steven G. Johnson Date: Thu Feb 27 00:27:00 2003 -0500 some loop splitting to touch each element of output buf only once and eliminate some conditionals...speeds up by 30-40% commit ac2585fa04303d0a9733f25529a4de770165a96a Author: Steven G. Johnson Date: Wed Feb 26 17:48:26 2003 -0500 comma commit 12f6863d7ba56d03a828d47d95226914f7624343 Author: Steven G. Johnson Date: Wed Feb 26 17:46:17 2003 -0500 pointer to odd case commit b305de27048e5d88018afd557b9853fcfd938e7e Author: Steven G. Johnson Date: Wed Feb 26 17:40:54 2003 -0500 precision -> accuracy (c.f. Kahan) commit 8cce3f1c36041dfd0f3099ccd2b4d07af10ba0ae Author: Steven G. Johnson Date: Wed Feb 26 17:36:13 2003 -0500 added time limit for wisdom generation commit 57f9db2fb5d1498630bc04fa9ce59c0362383dc2 Author: Steven G. Johnson Date: Wed Feb 26 13:24:36 2003 -0500 caps commit 194e3fe2a23b43433042f38567d615508f0219f0 Author: Steven G. Johnson Date: Tue Feb 25 20:56:01 2003 -0500 another note commit 74d5d37f8b5f57257ac2996c1b78cd6e178009b2 Author: Steven G. Johnson Date: Tue Feb 25 20:54:57 2003 -0500 note commit 4c454a521c659245d7d5328a0428abe8e0e65ca0 Author: Steven G. Johnson Date: Tue Feb 25 20:42:08 2003 -0500 added new, more accurate (hopefully) reodft11 algorithms; added --disable-debug-malloc; added --impulse-accuracy-rounds=rounds flags to libbench2 for impulse-response accuracy tests commit 56c91af19d265df468a1c332950285ccc35cadf2 Author: Matteo Frigo Date: Sun Feb 23 14:07:48 2003 -0500 fftw_wisdom.1 is in $builddir, not $srcdir commit afb274d60def917682dcfb6752788ae69feb0e89 Author: Steven G. Johnson Date: Mon Feb 17 03:42:19 2003 -0500 pde commit 57844d17a4a5e42a9b3a6e264d4b9ef96a48b7d7 Author: Steven G. Johnson Date: Mon Feb 17 03:40:19 2003 -0500 consistent number commit da10f4a095936c4a272edf95561177e0ba1e0976 Author: Steven G. Johnson Date: Mon Feb 17 03:39:02 2003 -0500 started r2r doc commit 9339401bc1db11ab2b3ea8332adf2b7f8d2bd39d Author: Steven G. Johnson Date: Mon Feb 17 02:31:51 2003 -0500 rfftwnd commit e9481965be99453d16fce50a2cec8a7189d50e5a Author: Steven G. Johnson Date: Sat Feb 15 17:02:07 2003 -0500 continued commit 387c70c9f598cc84949f9b36c3a7ec3aee478107 Author: Steven G. Johnson Date: Sat Feb 15 15:16:26 2003 -0500 started r2c/c2r docs commit 0df57f98fa114607c9ea5a9e17e8aa4fa92bd0c1 Author: Steven G. Johnson Date: Sat Feb 15 01:12:52 2003 -0500 added r{e,o}dft11 accuracy test commit e24081ffd7a170743a930c91ec251fb1fa590072 Author: Steven G. Johnson Date: Sat Feb 15 00:42:48 2003 -0500 added more r2r accuracy checks commit da37c854fdf95a2cfc3cf2c6ef698ab1ed9e8a70 Author: Matteo Frigo Date: Fri Feb 14 19:19:54 2003 -0500 $< is a GNUism commit 01c0739002308b926e8ed648f93c2b46ef885404 Author: Steven G. Johnson Date: Wed Feb 12 21:02:16 2003 -0500 r2r test cases are in commit e0d1053729fe6e63cfc19bf040c14593ced050c5 Author: Steven G. Johnson Date: Wed Feb 12 21:01:28 2003 -0500 added vector radix to TODO commit eabfd75e1f96eb039ac8ba4f612ad92a5de3f3f2 Author: Steven G. Johnson Date: Wed Feb 12 17:21:33 2003 -0500 fixed cross-ref commit fe1a1f526ac5401ffbb69ddc61b07af2f9c08cfc Author: Steven G. Johnson Date: Wed Feb 12 17:19:56 2003 -0500 shorter synopsis commit 73464a04bcc91f1244cca8812515833da6cad60c Author: Steven G. Johnson Date: Wed Feb 12 12:53:19 2003 -0500 obsolete commit f235c4cdb767ed752563b5a12b609f4a606ae89d Author: Steven G. Johnson Date: Wed Feb 12 12:52:53 2003 -0500 removed old dotens commit 1b45907552bf8c3c7e91e77b9256f904a7dc46db Author: Steven G. Johnson Date: Wed Feb 12 12:52:16 2003 -0500 removed old verify files commit d2baa62fc65ce7b8c09581f2feaacd90466c07e2 Author: Steven G. Johnson Date: Wed Feb 12 12:37:17 2003 -0500 disable threads support by default commit 6fc7d66c60a2e9bfbac7bba821b5329c9fde4b0b Author: Matteo Frigo Date: Wed Feb 12 11:03:28 2003 -0500 Removed old test program commit 948df3a1949a1a5d9d8924a1c51c49d015477b73 Author: Steven G. Johnson Date: Tue Feb 11 22:30:55 2003 -0500 joke commit 06377bf381dbb2e1a05674678924168ee9235d46 Author: Steven G. Johnson Date: Tue Feb 11 22:27:44 2003 -0500 add --help and --version, to be GNU-lly correct commit c59c2fb43df57981f39141efe881ade700dffb3f Author: Steven G. Johnson Date: Tue Feb 11 22:27:18 2003 -0500 whoops commit ecc46199c7967a7164deaa4f6be2ad734eb6c986 Author: Steven G. Johnson Date: Tue Feb 11 22:17:35 2003 -0500 better help commit e73d1cfefcfdffa9a318c184463973e309e1f421 Author: Steven G. Johnson Date: Tue Feb 11 21:47:35 2003 -0500 comma commit dc27e6924a7f6e054e0d542d855d4f62c9545ce2 Author: Steven G. Johnson Date: Tue Feb 11 21:46:12 2003 -0500 formatting commit 06c5acf858b96e548a3d5664252103486c5dbb5e Author: Steven G. Johnson Date: Tue Feb 11 21:45:23 2003 -0500 man pages for tools commit d643ece55b08510928523882ac2213361d1eaf43 Author: Steven G. Johnson Date: Tue Feb 11 19:07:12 2003 -0500 added -V commit ad12cdca62eb5030d1388f12f7278fd1a3eb8a3a Author: Steven G. Johnson Date: Tue Feb 11 18:42:17 2003 -0500 added install-wisdom target commit 83162f468afd0941a99c408ae84e6c35ce43dbb3 Author: Steven G. Johnson Date: Tue Feb 11 18:23:02 2003 -0500 another note commit 52735853d05221978df609981a95f9d89ec03c0a Author: Steven G. Johnson Date: Tue Feb 11 17:32:56 2003 -0500 started r2r accuracy tests (only three kinds covered so far) commit 6fb598e12ddd2e595289c0d399cd7c283425540b Author: Steven G. Johnson Date: Mon Feb 10 22:04:18 2003 -0500 silence warning commit b94eaa910fb2a707a185e743514f009a77663600 Author: Matteo Frigo Date: Mon Feb 10 20:55:20 2003 -0500 gcc bug is now avoided. commit d142433a2935361da613eef685c306e1f86ef8cb Author: Matteo Frigo Date: Mon Feb 10 20:37:54 2003 -0500 Accuracy test commit 3e6c6925a0daf524ddff6ef711ebe2dbf07ebda2 Author: Matteo Frigo Date: Mon Feb 10 07:59:57 2003 -0500 There is no point in precomputing strides for the long-double code, as multiplication by sizeof(long double) cannot be folded into the addressing mode. This change also fixes the gcc-2.95 bug that causes miscompilation of certain codelets. commit 1cdf3be30717cb411fcb7272628ab72dc31ea3d0 Author: Steven G. Johnson Date: Mon Feb 10 02:54:35 2003 -0500 added random r2r tests commit 13fd49dc504be79d65f5c3b254b08572689fcd71 Author: Steven G. Johnson Date: Mon Feb 10 02:44:58 2003 -0500 whoops, bugfix: missing stride for ro10 commit f0926d171845f84e02584361b0a6a9b6c4d68e71 Author: Steven G. Johnson Date: Mon Feb 10 02:21:50 2003 -0500 formatting commit 2ec7cca77de0ed39b104a090158f4f3994f18343 Author: Steven G. Johnson Date: Sun Feb 9 23:24:52 2003 -0500 flop counts for reodft commit 1ec87d09b3698d5c2093d8436ea885225d67191a Author: Steven G. Johnson Date: Sun Feb 9 23:22:15 2003 -0500 declare aligned_main commit 9c3374ad54ec97ed408760b77234ea4980fcd311 Author: Steven G. Johnson Date: Sun Feb 9 20:56:06 2003 -0500 corrected rader op counts commit 6803f88282e3117c77721aff1a96515236b27fb9 Author: Steven G. Johnson Date: Sun Feb 9 20:25:32 2003 -0500 punctuation commit e8cbdde425f97261b79551ea78f87322a4983bf3 Author: Steven G. Johnson Date: Sun Feb 9 20:25:17 2003 -0500 noted need for better estimator commit 156eefce1a365107071ac016b4c818354a98e60b Author: Steven G. Johnson Date: Sun Feb 9 19:58:59 2003 -0500 noted F77 api fix for g77 mangling incompatibility commit e160cbe881f0f509fa09e6eedd76141b439c3ad9 Author: Steven G. Johnson Date: Sun Feb 9 19:30:55 2003 -0500 build f77 header file of constants from fftw3.h commit 370b6e68c535ab81d29047d5fd3a9a48f7e3ebec Author: Steven G. Johnson Date: Sun Feb 9 19:04:53 2003 -0500 updates commit f2c761d6d435ea22fc390b1e388dc0d01a747bd4 Author: Steven G. Johnson Date: Sun Feb 9 19:03:34 2003 -0500 threads f77 api commit b84617e3c6d025d4f13cfa3056ddbdbd5227b961 Author: Steven G. Johnson Date: Sun Feb 9 18:54:00 2003 -0500 finished f77 serial api commit 86446f99fc266c435826ab0f0ca77b48117dd21f Author: Steven G. Johnson Date: Sun Feb 9 18:32:26 2003 -0500 added flops, slight cleanups commit b02c6ea6492b370ac0dde405bc4d899b3b4d4ab7 Author: Matteo Frigo Date: Sun Feb 9 18:11:48 2003 -0500 Oops, forgot #include commit 218af736c45f2ac117c4fe70c79029a7bb26ae33 Author: Matteo Frigo Date: Sun Feb 9 18:08:26 2003 -0500 Removed duplication of stack-alignment code commit 5b5fc6186df8fa5214ae22ebaf84922aab584d90 Author: Steven G. Johnson Date: Sun Feb 9 15:48:15 2003 -0500 allow - to read problems from stdin commit c8e7f4b0b4ed904a7dc8b474f220d17bd061809e Author: Steven G. Johnson Date: Sun Feb 9 15:22:23 2003 -0500 added fftw-wisdom tool commit 216bb0693d91019be789666644d90c1f9afde7a5 Author: Steven G. Johnson Date: Sun Feb 9 15:06:38 2003 -0500 elim. warning commit 8ff159c3583032eb2b661bb50b34d77344f1898e Author: Steven G. Johnson Date: Sun Feb 9 14:24:19 2003 -0500 destroy_input should not contaminate flags of other problems commit c1e578a3c33cee071a10e2f8f49a5dd29f4749ae Author: Steven G. Johnson Date: Sun Feb 9 13:06:11 2003 -0500 updated commit 8b09de262bcd31d3ef04cff36791c389f75b733b Author: Steven G. Johnson Date: Sun Feb 9 13:01:45 2003 -0500 removed overzealous inplace check, which caused problems for rdft2 commit bfb7a5cab2f68265d33dea80716baec602a7c5ef Author: Matteo Frigo Date: Sun Feb 9 08:14:03 2003 -0500 Consistent syntax for RNK_MINFTY tensors commit 0f87db2efc6a2d72c3bb8584c195ee3682e09870 Author: Matteo Frigo Date: Sun Feb 9 07:31:13 2003 -0500 lisply-correct tensor print. We no longer need to parse tensors. commit 14826af57fa8cd1490d3d4d8111e64336ad638a4 Author: Steven G. Johnson Date: Sun Feb 9 03:35:56 2003 -0500 removed completed items commit ba72775e69c1b4ff00b77a37bd0c80312bcc072f Author: Steven G. Johnson Date: Sun Feb 9 03:27:56 2003 -0500 slight renaming commit a96011aa06fe98812ad45afba51a6f1c3ceeab31 Author: Steven G. Johnson Date: Sun Feb 9 03:15:28 2003 -0500 multi-dimensional r2r verifier commit d2c2e3058ab81d087848fdd251e8bb6e92416710 Author: Steven G. Johnson Date: Sun Feb 9 02:40:22 2003 -0500 comments commit 5553af4969fd029313dc53f63201fa9c40acd051 Author: Steven G. Johnson Date: Sun Feb 9 02:38:26 2003 -0500 slight simplification commit 8aa7d693d055305129c2518385e9816529c9a334 Author: Steven G. Johnson Date: Sun Feb 9 02:36:25 2003 -0500 added 1d r2r verifier (triple ugh) commit ef489a80e6559cf2828da23340df129302681dd5 Author: Steven G. Johnson Date: Sat Feb 8 22:23:00 2003 -0500 added vector transforms to random tests commit 826567b4d872cb6920840a850e0a584e0cc015e9 Author: Steven G. Johnson Date: Sat Feb 8 20:59:07 2003 -0500 whoops commit b4d28e3488a63128b0ad1500d2e8b5777eadc8e4 Author: Steven G. Johnson Date: Sat Feb 8 19:52:58 2003 -0500 fixed interaction between dwims for sz/vecsz with rdft2 transforms commit 0c8c54737beaa3db6a119769716f40416ddc7718 Author: Steven G. Johnson Date: Sat Feb 8 19:35:56 2003 -0500 added destroy_input flag/check commit 0e205231678541426c1a0bcd61b0442e7e24ad4a Author: Steven G. Johnson Date: Sat Feb 8 19:11:58 2003 -0500 added rdft2 verifier commit a20a05830b52221eda2f16ab7da1dc80e0e5a050 Author: Steven G. Johnson Date: Sat Feb 8 13:31:14 2003 -0500 an additional check for in-place case commit 6096b268ec7fb9e5c1ad5d41aff355e8f674fd22 Author: Steven G. Johnson Date: Fri Feb 7 17:36:56 2003 -0500 slight fix: hc2r constraints are mostly determined by sub-plan commit 668b0af47a07011aaa3202ee70d3588aeca0ddd9 Author: Steven G. Johnson Date: Fri Feb 7 16:28:55 2003 -0500 make radix2-dft inapplicable to in-place/split case (r == rio, iio >= rio + n/2+1 != r + 1) commit 533f0a1824842664dfe63287e03800c2426b8ba5 Author: Matteo Frigo Date: Tue Feb 4 06:36:29 2003 -0500 Allow plnr->hook to be 0 commit 5c89a91a0efc3714980409d12055f91a2bd33693 Author: Steven G. Johnson Date: Tue Feb 4 03:25:36 2003 -0500 moved dft stuff into verify-dft commit 941da36d0fa1562ef98fd796b05c0a8a94c4ff94 Author: Steven G. Johnson Date: Tue Feb 4 03:25:00 2003 -0500 cruft commit 727cc86ece827ba21a236149c66ef6c7e7890d6b Author: Steven G. Johnson Date: Tue Feb 4 03:18:28 2003 -0500 further unify libbench2 and paranoid verifiers commit 6fb68912913cd9ab647b0206a713470e1bad462b Author: Steven G. Johnson Date: Sun Feb 2 01:45:37 2003 -0500 typo in comment commit 3d1a5701f571ec275672faf3da2d7ea6f1e34b93 Author: Matteo Frigo Date: Sat Feb 1 09:30:03 2003 -0500 Fixed p==2 case commit 723093b36b481e0f742822129f33998ba5acff14 Author: Matteo Frigo Date: Sat Feb 1 09:23:43 2003 -0500 Incorporated new find_generator by Greg Dionne. commit 93a75fda2dad56fbf69030eabdb09af0987e5316 Author: Matteo Frigo Date: Fri Jan 31 20:46:24 2003 -0500 Removed nonportable call to gettext() commit 0d937fc4f0800cdad67d7a6a496c30c67c70b0ae Author: Matteo Frigo Date: Wed Jan 29 19:03:43 2003 -0500 uintptr_t is in in openbsd commit 9ffa4f6b400e1818a4c50a1385d916d501ff16b7 Author: Matteo Frigo Date: Wed Jan 29 15:41:56 2003 -0500 Huge speedups in wisdom I/O. commit 426e786cc0662f3926cd79d3d76b0825a65ff445 Author: Matteo Frigo Date: Tue Jan 28 19:36:51 2003 -0500 Added appropriate warning against likely future bug. commit b254ecc51abc22f1642e0bae9d6d22fbb2efb771 Author: Matteo Frigo Date: Tue Jan 28 19:00:24 2003 -0500 Don't attempt to remove bogus wisdom entries. commit c19570082c79ce6d86613248e700ee17bb3582b8 Author: Matteo Frigo Date: Tue Jan 28 18:16:24 2003 -0500 Fixed a couple of very very very nasty bugs---pointers became invalid after the hash table was relocated. commit 123972fa083c9fb07f18c3ee3a902a79606f5987 Author: Matteo Frigo Date: Tue Jan 28 07:34:10 2003 -0500 Read wisdom at can_do() time, otherwise wisdom is destroyed. commit d1e805e6353a689a61b6aec66a28d568723717fc Author: Matteo Frigo Date: Tue Jan 28 06:54:38 2003 -0500 More conservative inheritance of blessings commit e718fe3fa7a7c4194011493e0bd86b78b222c0b9 Author: Matteo Frigo Date: Tue Jan 28 06:50:20 2003 -0500 Print the same info as it is hashed commit 84199fe5035171395b24754b6f4428513b850e84 Author: Matteo Frigo Date: Tue Jan 28 06:49:48 2003 -0500 Print name of executable when FAILURE commit 3919d8a49fb4779e470deefd35cc3c7fc09c20ce Author: Matteo Frigo Date: Mon Jan 27 06:59:40 2003 -0500 New NO_SEARCH planner flag, which avoids searching altogether. A wisdom entry must lead to a NO_SEARCH-grade plan, or else the wisdom entry is bogus. commit 9534126e49e082098917ef5500133d8ef8a7289a Author: Matteo Frigo Date: Sun Jan 26 20:45:21 2003 -0500 Use cosl()/sinl() when appropriate commit 5cc66fc2964feb54cff148e70280c083715d371f Author: Matteo Frigo Date: Sun Jan 26 16:29:18 2003 -0500 Use null pointers when estimating. The estimator should never time anything. commit 8a54d02af36535be471d8326bf4e061165295320 Author: Steven G. Johnson Date: Sun Jan 26 15:19:01 2003 -0500 note commit 127681d03bd37c45649032138e7c976ec3395c99 Author: Steven G. Johnson Date: Sun Jan 26 15:16:22 2003 -0500 support multiple mangling schemes with g77 commit 757b13e27cfe6317d5c871796c129ec5b693e89b Author: Steven G. Johnson Date: Sun Jan 26 12:58:57 2003 -0500 fixed verbose, made random tests only use selected rank, use rank <= 4, fixed final flush_problems call commit c379edca317112097e76dacd0dfb69c83c319023 Author: Steven G. Johnson Date: Sun Jan 26 12:42:49 2003 -0500 fixed typo (count instead of maxcount) commit 6c0c2a4aac442f27536a584f1e619c69f6aa7ca6 Author: Steven G. Johnson Date: Sun Jan 26 12:12:07 2003 -0500 hypot is no longer used commit 8466e0fb929081a67acbe832ddd155f33ee13734 Author: Steven G. Johnson Date: Sun Jan 26 12:07:43 2003 -0500 check for _alloca (MSVC) commit 34321edf6b705ea8f04c0ac903baf9a2d0239cd2 Author: Steven G. Johnson Date: Sun Jan 26 11:56:53 2003 -0500 slight fix in assert commit c099d12f16d6131750ccde572b7651661b84881b Author: Matteo Frigo Date: Sun Jan 26 11:55:39 2003 -0500 Allocate problem in all cases--- can_do may need correct pointers. commit 93ba509b275e8a2b798b237dae50927c04da5b74 Author: Matteo Frigo Date: Sun Jan 26 11:51:27 2003 -0500 Nastier checks commit 91419140c877e227d804c4cbb18cb89b350527b3 Author: Matteo Frigo Date: Sun Jan 26 11:51:16 2003 -0500 X(use_plan) is a relic. commit 9cc664aacbc213b2cdbca13e686ca9f15f4d89f4 Author: Matteo Frigo Date: Sun Jan 26 09:23:16 2003 -0500 Print full pathname of the bench executable, so that I don't get confused when running multiple tests for different configurations. commit a755e0b1e768f7624d20ba4d564d9b658fc8aa45 Author: Matteo Frigo Date: Sun Jan 26 07:35:46 2003 -0500 Split done() into done() and cleanup(), in order to test multiple problems with the same planner from the command line. commit c9a2310aa41b815190cd73c801d28f6b68635734 Author: Matteo Frigo Date: Sat Jan 25 20:44:49 2003 -0500 Improved readability commit 6a7d0ba4578fa4f1989e521e80cd1504dddb5ff9 Author: Steven G. Johnson Date: Sat Jan 25 19:17:26 2003 -0500 comment commit 7e5332d67aa4dd505518874798560834170c2d1c Author: Steven G. Johnson Date: Sat Jan 25 19:16:53 2003 -0500 added macos9 mpallocatealigned function commit f3bba67e15e3ff2cc63e615a97ef4161af9fbb6d Author: Steven G. Johnson Date: Sat Jan 25 18:59:55 2003 -0500 sometimes __APPLE__ is defined instead of __MACOSX__ commit eb44a626174b2c4b5a3b91799f929f087ab89b90 Author: Steven G. Johnson Date: Sat Jan 25 18:54:39 2003 -0500 macos x malloc is already 16-byte aligned commit e1f4dfe3d7d517b655cbf1d9f34910cf5b91f16f Author: Matteo Frigo Date: Sat Jan 25 13:38:32 2003 -0500 Include because uintptr_t is defined there on solaris. commit 2e0d88fe660fa8d5dd70ac8b4d7ce327b8e3143a Author: Matteo Frigo Date: Sat Jan 25 13:22:59 2003 -0500 Oops---forgot getopt_long commit 8ca5ca5adffa7f09e53fd6876720807c9e09b526 Author: Matteo Frigo Date: Sat Jan 25 13:17:29 2003 -0500 Include default includes when checking for uintptr_t. (Otherwise solaris breaks.) commit b2e7887137a70e836841860650f673a32d8fd0e0 Author: Matteo Frigo Date: Sat Jan 25 12:39:52 2003 -0500 distribute check.pl commit f523570817e6d4e02d1229eb4fae65aa54b39c90 Author: Matteo Frigo Date: Sat Jan 25 12:38:34 2003 -0500 Check split format, too. commit 4cf6b31bc1d606a85ebe86b81538440c32ba16d4 Author: Matteo Frigo Date: Sat Jan 25 11:48:19 2003 -0500 New tests, added make check commit cc595c7702af171d1850e32593ad093a1884fa98 Author: Matteo Frigo Date: Thu Jan 23 08:34:24 2003 -0500 More tests commit 132d24bf7371a5738a8703d6700452432c1ff8d6 Author: Matteo Frigo Date: Tue Jan 21 20:32:12 2003 -0500 Deal with rnk(sz)=-infinity commit dbf5eba2cfe458f7fa1853b8b73ac880f50268d3 Author: Matteo Frigo Date: Tue Jan 21 10:07:16 2003 -0500 Crazy idea commit 538d043b618e83f8c9dd443618e30fad09412560 Author: Matteo Frigo Date: Tue Jan 21 07:14:22 2003 -0500 Test program, still barely worthy of the name. commit bd13e47fca93beafd8c87bd039e4c7f6f9843cc0 Author: Matteo Frigo Date: Mon Jan 20 08:29:21 2003 -0500 Stylistic changes commit 7a7f938bfa0596d8a971476e304a584e80c9af3e Author: Matteo Frigo Date: Mon Jan 20 07:03:38 2003 -0500 Implemented flops api commit 06f9de2ae48e8508332300af57ce4a892d5d7327 Author: Steven G. Johnson Date: Sun Jan 19 14:27:21 2003 -0500 cleanup commit 0004f3c1d04b2dbf2cd0c329464a761f513b17e8 Author: Steven G. Johnson Date: Sun Jan 19 14:14:49 2003 -0500 'v' syntax now defaults to an 'internal' (stride 1) vector, which is a more interesting case and corresponds more closely to the intuitive notion of a 'vector' transform, while '*' does the old 'external' (stride n) vector commit 3ae6aeb8ad69f728e24a22eaff8cb1c2d769dbfd Author: Steven G. Johnson Date: Sun Jan 19 13:55:35 2003 -0500 removed '/' overloading commit 16e5b7c653597353fa972d5da6226e3d1c21f09c Author: Steven G. Johnson Date: Sun Jan 19 13:52:09 2003 -0500 get rid of '*' and ',' synonyms for 'x' in problem parser; there's no need to clutter the namespace with syntax we never use commit fe570b1a3ef49b842a35c74088e1893023c924a3 Author: Matteo Frigo Date: Sun Jan 19 07:28:27 2003 -0500 Signed/unsigned fixes. commit 39087e0b7d51d64ce70403c94042723a27ebd90e Author: Matteo Frigo Date: Sun Jan 19 07:09:54 2003 -0500 Test split arrays. commit f5c448ba8c68ad9343a147b9ee0edddd48101248 Author: Steven G. Johnson Date: Sat Jan 18 23:46:57 2003 -0500 clarification commit ce827c93bd4b66fca1e4c6925c9638fc061f2a9c Author: Steven G. Johnson Date: Sat Jan 18 21:53:18 2003 -0500 caps commit 8e0bc243bfa4a19e901e09af2175220823a29fda Author: Steven G. Johnson Date: Sat Jan 18 21:52:51 2003 -0500 brackets commit 205193db72e85418b6db84064c2d0c417d3622ae Author: Steven G. Johnson Date: Sat Jan 18 21:52:32 2003 -0500 quote commit 53b6dc0784f2f573114f99a64e3c3a3f5c25d144 Author: Steven G. Johnson Date: Sat Jan 18 20:53:11 2003 -0500 referencing commit dc903b262a3cdbfacda95f8cacf08a79b26a3725 Author: Steven G. Johnson Date: Sat Jan 18 20:33:28 2003 -0500 fix commit 34867e8b93f1464aeb74afe7a57e6db29a6bf6ef Author: Steven G. Johnson Date: Sat Jan 18 20:31:41 2003 -0500 slight change commit de2f4e199030747045d6b15f10f81015e6fa77c9 Author: Matteo Frigo Date: Sat Jan 18 20:31:22 2003 -0500 Print errors when --verify. commit a241dce3b13972ae124686d2a73d6845172dca10 Author: Steven G. Johnson Date: Sat Jan 18 20:30:27 2003 -0500 improved description, noted that FFTW_ESTIMATE does not destroy arrays commit de9ad7da59f6f405cb9698340a708c51879074fa Author: Steven G. Johnson Date: Sat Jan 18 20:23:12 2003 -0500 FFTW_DEFAULTS isn't really needed commit 742ec9578cb87f7e8640c998b6455f0c1347cbad Author: Steven G. Johnson Date: Sat Jan 18 20:21:09 2003 -0500 added FFTW_MEASURE synonym for FFTW_DEFAULTS commit 7e4c0117633ecc6c774e5747fb88e5d9b901ade1 Author: Steven G. Johnson Date: Sat Jan 18 20:18:29 2003 -0500 slight change commit 1f5d8e6883c07b8b55b3ccdd76728dba0db83b51 Author: Matteo Frigo Date: Sat Jan 18 20:16:08 2003 -0500 Clearer name commit 72f6ff219f76d5836c974d7739c9deb1fdaae1b1 Author: Matteo Frigo Date: Sat Jan 18 20:13:14 2003 -0500 Completed dft api test commit d98d355d8025c3244f40cb21d3c13fd49b95bb31 Author: Steven G. Johnson Date: Sat Jan 18 20:07:33 2003 -0500 index commit 5abf9be2a1e971d3911958c2f2b0f830c1e94507 Author: Steven G. Johnson Date: Sat Jan 18 20:05:50 2003 -0500 fix commit 6ce8d648e9020903839bb75540e2c7f31c350a77 Author: Steven G. Johnson Date: Sat Jan 18 20:04:11 2003 -0500 parallel structure commit bf5e342ad8e4ec2778b7cb07e9fe04c3b88fef1c Author: Steven G. Johnson Date: Sat Jan 18 20:03:18 2003 -0500 fix commit 27f73ffc519eca88af9d51fccafa9d0a9eaec3d7 Author: Steven G. Johnson Date: Sat Jan 18 20:00:24 2003 -0500 joke commit fc0561411a690340303ab579fe66b5b919e94706 Author: Steven G. Johnson Date: Sat Jan 18 19:59:28 2003 -0500 recommendation to read tutorial in-order commit 23f008eece1d5af1cc9aff5c21f16c4b78626a43 Author: Steven G. Johnson Date: Sat Jan 18 19:54:55 2003 -0500 expanded outline commit dd05ed963f2b3b6248a90c8a28ec92ed0748447f Author: Steven G. Johnson Date: Sat Jan 18 19:35:52 2003 -0500 clarification commit 45f4203a263004153eb30c5e2b6d5fbf7d363ebe Author: Steven G. Johnson Date: Sat Jan 18 19:17:27 2003 -0500 draft complex-dft tutorial commit a1cf23e6204a958c2adb5fa5ad6908ed9ae8d5aa Author: Matteo Frigo Date: Sat Jan 18 17:27:15 2003 -0500 Paranoid mode is back. Fixed dwim to do what I mean. commit 02a981bcb005fd082e832f912a0d6970469af2db Author: Steven G. Johnson Date: Sat Jan 18 17:13:51 2003 -0500 started tut. commit db27392f9335988028063634e188cd6e0329b2db Author: Matteo Frigo Date: Sat Jan 18 16:13:15 2003 -0500 Great renaming, so that we can include both bench-user.h and ifftw.h to implement the paranoid-mode hook. commit 272ce9998c6c2ba1440c85c89adf525029c3713c Author: Matteo Frigo Date: Sat Jan 18 15:41:18 2003 -0500 Trying to tweak the verifier so that I can use it in bench.c for paranoid mode commit 9406410c744c3d040dcf53cab0033e6289315e0d Author: Matteo Frigo Date: Sat Jan 18 10:24:05 2003 -0500 Added stride_factor for complex arrays. commit be5440925e131346debad7cb5c52ec9ccca20838 Author: Matteo Frigo Date: Sat Jan 18 10:02:11 2003 -0500 can_do now calls the planner. commit 1c2aa801bd04200c319430596f26e33c57ade5b7 Author: Matteo Frigo Date: Sat Jan 18 09:59:24 2003 -0500 Call guru api in bench.c commit 5ccc685036846da380536544c08668012a62953a Author: Matteo Frigo Date: Sat Jan 18 08:17:23 2003 -0500 Fixed prototype. commit 6a0efba859963432de8d7ddef8a68615fba215df Author: Matteo Frigo Date: Sat Jan 18 08:14:48 2003 -0500 Attempt to make the signed/unsigned use of flags consistent. commit 6c6caca90a9df0f2f76cae61abf4d5b4108e5a16 Author: Matteo Frigo Date: Sat Jan 18 08:03:07 2003 -0500 Implemented useropt. commit 7165449ca5470fe7104141090f15d804f8fa3d58 Author: Matteo Frigo Date: Sat Jan 18 08:02:05 2003 -0500 The first map_flags pass must be transitive, i.e., always use the latest flags value as opposed to the original value. (I think.) commit b5ff8655a95e88173c98942113dedb0b8f293154 Author: Matteo Frigo Date: Sat Jan 18 07:20:19 2003 -0500 Started working on verifier commit 6c1864f54390a4ba6483dd6f6af716030275af40 Author: Steven G. Johnson Date: Fri Jan 17 14:53:28 2003 -0500 added X(threads_cleanup) commit 53ccbeeb98ce85aeee2dfdc73a79518dd428cabd Author: Matteo Frigo Date: Fri Jan 17 10:35:56 2003 -0500 Use C style for upper and lower array bounds. Free tensors properly. commit 8f979d12529a8cdcbc19773db64b203d396667f3 Author: Matteo Frigo Date: Fri Jan 17 08:50:42 2003 -0500 Fixed ambiguous syntax commit b4a79fbfcd90a04148e114c3dc9ffeec57475b91 Author: Matteo Frigo Date: Fri Jan 17 08:20:57 2003 -0500 Parse minus sign, bugfixes commit 74b7faa7902bc94ba6a2cb2229b29a0ae7fc1ae6 Author: Matteo Frigo Date: Fri Jan 17 08:11:56 2003 -0500 Skeleton libbench2 implemented (probably still buggy) commit e589fb07c231478fcaac2ff1747634bf9f06ea8f Author: Matteo Frigo Date: Fri Jan 17 04:23:37 2003 -0500 Formatting commit ca9524db0c137f154e83a76d36cf935f00674f2e Author: fftw Date: Fri Jan 17 03:15:24 2003 -0500 slight updates commit 9cf580eecfb6efdc94025f0016482c3b39e42d44 Author: Steven G. Johnson Date: Fri Jan 17 01:44:44 2003 -0500 eliminated obsolete uimin/uimax commit 43e7097cd5f50fec4d5cba68968062d735c70118 Author: Steven G. Johnson Date: Fri Jan 17 01:40:10 2003 -0500 threads needs to have its own library, lest all programs linking to libfftw3.so need -lpthread commit dfbd69e73262bfd32e4238660b05e9e66f2d4639 Author: Steven G. Johnson Date: Thu Jan 16 19:53:46 2003 -0500 whoops commit 2270fad47a873f34165771451625eb46b32f8934 Author: Steven G. Johnson Date: Thu Jan 16 19:53:30 2003 -0500 better name commit 90d92f5270d46d9e8f4775937e55433d425a5706 Author: Steven G. Johnson Date: Thu Jan 16 19:52:36 2003 -0500 added more functions commit 3f06842ca4733e7ecabf350ae1e679d52ed7698a Author: Steven G. Johnson Date: Thu Jan 16 16:57:06 2003 -0500 if 'long' is big enough, use it for mulmod in preference to 'long long' commit 66e1948c825bca967b2ad7e6746242e8b23f2b00 Author: Steven G. Johnson Date: Thu Jan 16 14:53:41 2003 -0500 use uintptr_t for pointer alignment arithmetic commit 7eb1f83c40d65241a97769cbd182b979f54b3694 Author: Matteo Frigo Date: Thu Jan 16 07:58:28 2003 -0500 More signed/unsigned cleanup commit 45b331a5c2824f7d0d08df9385910c66db337edf Author: Matteo Frigo Date: Thu Jan 16 07:57:40 2003 -0500 null function pointers are technically nonportable commit 67822e08115a08b056287208aa8db4cf8679eeb5 Author: Matteo Frigo Date: Thu Jan 16 07:17:45 2003 -0500 Free short_options commit 477c8d3241c4d9943d025ae59f9305a0b149231b Author: Matteo Frigo Date: Thu Jan 16 05:48:30 2003 -0500 Oops, forgot STACK_FREE commit 0e20238b7462741468c08db5854a75106766b2ef Author: Matteo Frigo Date: Thu Jan 16 05:40:39 2003 -0500 Do not require memalign() unless HAVE_SIMD commit e1ab6010079824a6d2eba12510455609646681fc Author: Steven G. Johnson Date: Thu Jan 16 01:03:31 2003 -0500 MS VC++ _aligned_malloc commit b60bc7e076569eb05d30aea259d6d6347e6a2da0 Author: Steven G. Johnson Date: Thu Jan 16 00:44:45 2003 -0500 added api fftw_malloc/free commit fce03e8f76d32e4642d3e3abe4ace0d60e5e14f5 Author: Steven G. Johnson Date: Thu Jan 16 00:43:48 2003 -0500 silence warning commit 641795cb961dfc1336f70563c2c7ad1ed3192395 Author: Steven G. Johnson Date: Wed Jan 15 22:39:04 2003 -0500 send error output to stderr commit f6710096b2309498d0d21582380e4edf3f3cc75c Author: Matteo Frigo Date: Wed Jan 15 13:20:35 2003 -0500 Pure paranoia. commit 91f5030882cd7a147a68a99634aa5e2b962998cf Author: Matteo Frigo Date: Wed Jan 15 06:51:34 2003 -0500 Fixed formatting that was messed up by the conversion uint->int. Ensure that iodims etc are kosher. commit e013a32092d6ec5aa0e9f2d9ae6c26d4b8659c6f Author: Steven G. Johnson Date: Wed Jan 15 01:32:18 2003 -0500 added version stamp commit 50b479b4aac66242696e7fd98f58455325526959 Author: Steven G. Johnson Date: Wed Jan 15 01:28:20 2003 -0500 added warning commit a1084fccb8215cfd46c69f6b5eeb7ff22f358d82 Author: Steven G. Johnson Date: Wed Jan 15 01:23:25 2003 -0500 add fftw-wisdom-to-conf to BUILT_SOURCES commit 4b8e34f3dba941ca2f59b9705ee49a9f29951906 Author: Steven G. Johnson Date: Wed Jan 15 01:09:29 2003 -0500 added const commit e3063ad93de5985a0cea8fcc35052dfdd31d3f24 Author: Steven G. Johnson Date: Wed Jan 15 01:04:10 2003 -0500 added wisdom-to-conf commit f1bc153c63191407f4af84ca6641b4153481abca Author: Steven G. Johnson Date: Wed Jan 15 00:23:36 2003 -0500 include type prefix in wisdom preamble commit 564b63e0eb961ab85824847dd4171323d185f2d3 Author: Steven G. Johnson Date: Wed Jan 15 00:02:31 2003 -0500 updates commit eed0a2c1a6165c360b7f87ff1aa77341dc112be5 Author: Steven G. Johnson Date: Tue Jan 14 23:59:26 2003 -0500 check the_plan before printing commit b90c45ecd325b1cbb5821b7d22b7d1003a01e11b Author: Matteo Frigo Date: Tue Jan 14 21:10:25 2003 -0500 Eliminated those unsigned values that would break LP64 machines. commit 2cfc97931df736f5090ba7eec7fa6d13686c6899 Author: Steven G. Johnson Date: Tue Jan 14 15:14:29 2003 -0500 comments commit 3b9adee3905d5c9686dd26e6af706297c57d3e6e Author: Matteo Frigo Date: Tue Jan 14 08:00:08 2003 -0500 Oops commit b8ef56b0756c8db296926946f027105168ac91c9 Author: Matteo Frigo Date: Tue Jan 14 07:59:14 2003 -0500 int/uint confusion commit 4063890615e1ebdd337cd0b6b79e3d8c191f7ac7 Author: Steven G. Johnson Date: Tue Jan 14 02:25:33 2003 -0500 updated introduction and some organization commit 23ce88399655bc3c3f102fb81927f18f964381d7 Author: Steven G. Johnson Date: Tue Jan 14 01:34:46 2003 -0500 whoops commit b165736884413d29ac6ea2d63b7784ebf40c8400 Author: Steven G. Johnson Date: Tue Jan 14 01:33:04 2003 -0500 newline commit 02a1859f44c60c5452b4d9fb3e89ecdac0d57873 Author: Steven G. Johnson Date: Tue Jan 14 00:23:04 2003 -0500 added win32 timer commit d0e64f8319671968827241d6923c1dcc613734ec Author: Steven G. Johnson Date: Tue Jan 14 00:12:21 2003 -0500 sync with kernel/alloc.c commit 1e179069c40aafd83bbaedf588ced907c60d8f7d Author: Steven G. Johnson Date: Tue Jan 14 00:03:20 2003 -0500 handle missing F77_FUNC_ commit d1e7472bbe33eaf99e4464fea7629ea9dc2549d8 Author: Steven G. Johnson Date: Mon Jan 13 17:42:50 2003 -0500 used fint instead of int to make Fortran integer type easier to change commit 2a5dd8f944a6ed354d8245abf6cc67de05ca7457 Author: Steven G. Johnson Date: Mon Jan 13 17:38:56 2003 -0500 slight abbreviation commit 1371e68a5061a7de34681052e5c7f31139752046 Author: Steven G. Johnson Date: Mon Jan 13 17:35:20 2003 -0500 the great lengthening, part I: int -> long in api; mv mktensor-rowmajor to api commit 1011711ec3ed3d1252ee9ea5134e8e18a9925081 Author: Steven G. Johnson Date: Mon Jan 13 15:23:22 2003 -0500 long types commit 2f236bb6f4b8d4b68a2799c59eed45c3fa5d9bef Author: Matteo Frigo Date: Mon Jan 13 04:20:37 2003 -0500 Renamed fftw_malloc -> MALLOC, X(free) -> X(ifree), X(free0) -> X(ifree0), non_fftw_malloc -> NATIVE_MALLOC commit ab8d02fc9ecab18a2639a0167616e782995592eb Author: Steven G. Johnson Date: Mon Jan 13 02:37:22 2003 -0500 added beginning of Fortran interface commit f2c44ba05c22d8cab1e72c5393ba64e97fb4eb57 Author: Steven G. Johnson Date: Mon Jan 13 01:05:29 2003 -0500 add fortran mangling check commit 59c96c1e23c8b4b4830a0f1aa70d8715a57db138 Author: Steven G. Johnson Date: Mon Jan 13 00:33:28 2003 -0500 added guru r2r interface commit d1b297f4a235356f816342e21c1f69617d836a4f Author: Steven G. Johnson Date: Mon Jan 13 00:23:26 2003 -0500 whoops commit 07839004aaa3e10e2493cf14fcaf6c603703ecf6 Author: Steven G. Johnson Date: Mon Jan 13 00:16:20 2003 -0500 added r2r planner commit f0e64dbc84dcd207fcf9ab13bf270707e878b9cb Author: Steven G. Johnson Date: Sun Jan 12 22:58:18 2003 -0500 more long-double checks commit fc870a86543c6166b8f3c689278c3e6c429c8fb5 Author: Steven G. Johnson Date: Sun Jan 12 20:01:51 2003 -0500 slight regrouping commit 889820ff1b5fe4f8ccf4c0f321cbcfc6066facc6 Author: Steven G. Johnson Date: Sun Jan 12 19:58:46 2003 -0500 added joke commit 709357f9b9ad15dbc409491672174b0369364de5 Author: Steven G. Johnson Date: Sun Jan 12 19:53:58 2003 -0500 simplified rdft2 padding commit b724cc6adafccd6b09b69ea2433567634d2b18fc Author: Steven G. Johnson Date: Sun Jan 12 19:02:09 2003 -0500 added comment commit f7e00499811c30295febdd6d70699c0bee9c2260 Author: Steven G. Johnson Date: Sun Jan 12 18:54:49 2003 -0500 use latest api commit 17dfd8a88bbd556d885e59de2c75f6ed10666ee3 Author: Steven G. Johnson Date: Sun Jan 12 18:49:58 2003 -0500 nembed should only be in advanced (many) interface, not basic interface...only a handful of people over the years have ever requested that functionality. commit de10a37b79b7222dff049d7b17a2f52c4d8818f7 Author: Steven G. Johnson Date: Sun Jan 12 18:41:57 2003 -0500 impatient is default; generalize mapping functions using xor trick commit d759ad32aae7ec487f4bacbacd50c36e9b9252de Author: Steven G. Johnson Date: Sun Jan 12 14:39:42 2003 -0500 use NULL nembed to signal padding commit c52303f271b00a8388b368b13e26e492e34e8ac1 Author: Steven G. Johnson Date: Sun Jan 12 14:23:00 2003 -0500 accept NULL nembed commit 130e62b15d813a605dbe261661f3d4f73eefd869 Author: Steven G. Johnson Date: Sun Jan 12 13:57:13 2003 -0500 added execute-dft-r2c/c2r commit 1fd627fbdef40e0158d1880e765131d7316614eb Author: Steven G. Johnson Date: Sun Jan 12 13:43:20 2003 -0500 don't need dft.h commit 116ca5713809a7a18bea146e4e1d2c13679f0570 Author: Steven G. Johnson Date: Sun Jan 12 13:22:14 2003 -0500 tensors are compressed in the problem, duh commit 2ede363d3dc04c22c6d801931c613f8acb365f20 Author: Steven G. Johnson Date: Sun Jan 12 12:45:26 2003 -0500 noted that posix_memalign bug is now fixed, thanks to bug report by yours truly commit aa78a752a45559c3cd10009619c38714715b4bd8 Author: Matteo Frigo Date: Sun Jan 12 12:44:43 2003 -0500 Bug: n[3] instead of n[2]. Bug was propagated by copy-and-paste. Grrr... commit da61449b6d55793e890eaf9246c2cef570656949 Author: Matteo Frigo Date: Sun Jan 12 12:41:43 2003 -0500 Express plan_dft() in terms of plan_many_dft() commit f50b2491505035d8da53cdc2f807f777ab7f2fa2 Author: Steven G. Johnson Date: Sun Jan 12 12:19:53 2003 -0500 whoops commit 91650cec6fb479345ace984c86a3d0bf8dd45fa3 Author: Matteo Frigo Date: Sun Jan 12 06:00:46 2003 -0500 Manual skeleton. commit 58983b0fcb5dde376eef5290f5afeda420bb3516 Author: Steven G. Johnson Date: Sat Jan 11 23:46:34 2003 -0500 added r2c/c2r guru api commit 7ab4791d61cf0a563110b7c4458f092ad3209452 Author: Steven G. Johnson Date: Sat Jan 11 23:42:10 2003 -0500 FFTW_DESTROY_INPUT is default for c2r transforms commit 702d37e3aa20ac9e2007f9415a6c09875dc58eec Author: Steven G. Johnson Date: Sat Jan 11 23:36:26 2003 -0500 added more of r2c/c2r api commit 877b1c30a8de302c16d17618928ea9eeafa1d840 Author: Steven G. Johnson Date: Sat Jan 11 21:09:41 2003 -0500 r2c doesn't have adjustible sign commit d7e17c10e9b94495bf5b8d91ee938bddb15a778f Author: Steven G. Johnson Date: Sat Jan 11 21:07:55 2003 -0500 note that copyright year is out of date commit 414ef3efe34a68c1d1886ebc7bf3696c9888312d Author: Steven G. Johnson Date: Sat Jan 11 21:04:23 2003 -0500 updated api for r2c commit f55aa9fa016782becff68f499151eb9b1142f48c Author: Steven G. Johnson Date: Sat Jan 11 21:00:07 2003 -0500 removed annoying nophys == niphys case commit 5ac383f909dedb9038b26d2534d1c50f831bb622 Author: Steven G. Johnson Date: Sat Jan 11 20:58:13 2003 -0500 added basic r2c/c2r planner commit 67a72b6fe3950808458f9db07fd17fdb5a23f174 Author: Steven G. Johnson Date: Sat Jan 11 19:34:14 2003 -0500 dist should be in terms of complex values commit 38330465de7aa72398c41e080a538abe90f11525 Author: Steven G. Johnson Date: Sat Jan 11 19:14:24 2003 -0500 added plan-with-nthreads commit 250cd26e00612f247ec647a8b1cd12757c6bc2dd Author: Steven G. Johnson Date: Sat Jan 11 19:12:51 2003 -0500 added function to set nthr commit 2a3a928928d0a1a720099f63d46f9c9335e60d07 Author: Steven G. Johnson Date: Sat Jan 11 18:04:57 2003 -0500 slight cleanup commit c70d4ae24f18ed8573746982ded357d7a66e45d7 Author: Steven G. Johnson Date: Sat Jan 11 17:57:29 2003 -0500 whoops commit f6eead982eac7fba05e3e1b211e92218fa75ac0e Author: Steven G. Johnson Date: Sat Jan 11 17:55:39 2003 -0500 maxlen is maximum string length, not including null termination commit 7d5ced1616625f49a8064e213c195cb0dfdfd015 Author: Steven G. Johnson Date: Sat Jan 11 17:50:49 2003 -0500 imprt reverts hashtable on failure commit 8b8397f47fca460f6f4d799ed4d3523dbb9febe4 Author: Steven G. Johnson Date: Sat Jan 11 16:43:54 2003 -0500 slight move commit ef10382faf88c76dbed1b15712ea4385f5c53d60 Author: Steven G. Johnson Date: Sat Jan 11 16:34:56 2003 -0500 stdio.h should be inlcuded outside of extern "C" commit a12b4db5cb652f45955ba8597ac6aad5494d10f2 Author: Steven G. Johnson Date: Sat Jan 11 16:26:35 2003 -0500 added guru planner API commit 6612a3a2112dc6db386ca1a7c9e80e0cdff8060a Author: Steven G. Johnson Date: Sat Jan 11 15:54:57 2003 -0500 added FFTW_FORWARD/BACKWARD commit e9182c7a6103c19c79d2d457aadfd3cbafc8e7f8 Author: Steven G. Johnson Date: Sat Jan 11 15:52:17 2003 -0500 added plan_many_dft commit 93581dbc842eb787a6a1f514d9ae4a3af66da1ae Author: Steven G. Johnson Date: Sat Jan 11 15:44:37 2003 -0500 indenting commit 4b42a448907aaef4bce3be179fe2676f89dc7580 Author: Matteo Frigo Date: Sat Jan 11 14:49:08 2003 -0500 Final \n commit 3174ca24fb957b047983215e5651a9f5db6a6687 Author: Matteo Frigo Date: Sat Jan 11 14:47:31 2003 -0500 Do not compile if not defined(FFTW_DEBUG), in order to avoid unused code in the shared library. commit e011c0ebee3524df3ebfe4c485e34247e5167ffd Author: Matteo Frigo Date: Sat Jan 11 14:45:56 2003 -0500 Implemented print_plan() commit 83d6f1227a7413bf1cee8e8fda10b15569e6391f Author: Steven G. Johnson Date: Sat Jan 11 13:12:01 2003 -0500 changed the OOP-like plan_destroy to the more-grammatical destroy_plan commit 7f9077eb88fc4deb6d8c1457988ad518ab450a92 Author: Steven G. Johnson Date: Sat Jan 11 12:58:04 2003 -0500 added guru execute_dft commit eb4083006537a4a3dc5ee3d202d1bc9c07909a3b Author: Steven G. Johnson Date: Sat Jan 11 12:38:40 2003 -0500 allow for malloc errors in wisdom string, since non-fftw-malloc commit a84ffa432d7e480e83d87090ed763a8ba8deefc1 Author: Steven G. Johnson Date: Sat Jan 11 12:16:05 2003 -0500 cleanup should reset plnr to zero so that fftw can be restarted commit 5c64b4a2e584e795861b00a8c2683f1ab740c5f4 Author: Steven G. Johnson Date: Sat Jan 11 12:13:18 2003 -0500 NO_UGLY is an internal planner flag commit f9e7b4ae52caaf33854eeab2f49cc98c0ed76431 Author: Matteo Frigo Date: Sat Jan 11 11:23:13 2003 -0500 Written 1d api in terms of generic n-d api. The code is less compact but easier to test commit 96c701ecb75dbd0236023c61f59a0cde3f0f330d Author: Matteo Frigo Date: Sat Jan 11 11:07:25 2003 -0500 Added wisdom to header file, made scanners/printer static. stdio.h no longer needed in fftw.h, removed. Probably the printer_file should be reintroduced in a separate file if we ever want to print plans... commit ea3e4d45a1aec83b6e5534b2f0fbdd8271601ebd Author: Matteo Frigo Date: Sat Jan 11 09:49:30 2003 -0500 Implemented more APIs commit 41044feee9e55eb6ff29128fca2ad7458087146b Author: Matteo Frigo Date: Sat Jan 11 09:21:53 2003 -0500 Added cleanup() to API commit 125c89f921354d7d4e18aa61700b2d2ce8704e5f Author: Matteo Frigo Date: Sat Jan 11 09:17:34 2003 -0500 Started new bench.c. I had to rename plan_destroy -> plan_destroy_internal to avoid conflicts with API commit f315b29db425d56e3daffc4a5710b8e6542a0c91 Author: Steven G. Johnson Date: Sat Jan 11 02:45:39 2003 -0500 fix types commit 9419d5287867213b7dec8bbb7e594a3f77157be2 Author: Steven G. Johnson Date: Sat Jan 11 02:13:25 2003 -0500 whoops commit 8a271133e0891ed171ae642860ef03dff81e4bce Author: Steven G. Johnson Date: Sat Jan 11 02:10:50 2003 -0500 added wisdom api commit ce93efb2d481b23ccb261df25cb2021dd38b5668 Author: Steven G. Johnson Date: Sat Jan 11 01:01:17 2003 -0500 grammar commit faefac80f41e5203c91c356619f97c3c1cdf8b13 Author: Steven G. Johnson Date: Sat Jan 11 00:54:54 2003 -0500 slight change commit c01969dd0125889865e81c33fff6f5a0055f71b5 Author: Steven G. Johnson Date: Sat Jan 11 00:52:04 2003 -0500 implemented api/mapflags commit fb2e4c252410f4b6d3e26ce97ca17083ca45a773 Author: Steven G. Johnson Date: Sat Jan 11 00:48:27 2003 -0500 IMPATIENT is an api issue commit 21879988984f816cbd2ff5250d85b004a7dac217 Author: Steven G. Johnson Date: Fri Jan 10 01:57:41 2003 -0500 removed un-needed headers commit d0d8c732879727d7af40c9301c58d661c4c62343 Author: Steven G. Johnson Date: Fri Jan 10 01:56:59 2003 -0500 mkplanner initializes nthr to 1 already commit e0b0e74169c6b2ee44abc01b035e356b5ab1aaa8 Author: Steven G. Johnson Date: Thu Jan 9 18:53:09 2003 -0500 boilerplate commit f90417638448166e44f56b0f7bcc61f0263c40b7 Author: Steven G. Johnson Date: Thu Jan 9 18:16:39 2003 -0500 fold vecloop into r{e,o}dft apply function to share buffer, etcetera commit aa1101d19e86b64d4753f8bf562df5db7ea5de73 Author: Steven G. Johnson Date: Thu Jan 9 18:10:19 2003 -0500 whoops, bugfix in impulse test for vecn > 1 commit d70526c96f5f1959cf5fa3df3e15ff71a8e66487 Author: Steven G. Johnson Date: Thu Jan 9 14:23:51 2003 -0500 bugfix, grr commit 6c4923f6c3d24b14b644dea8a85adaddfb165ef5 Author: Steven G. Johnson Date: Thu Jan 9 14:21:16 2003 -0500 fixed signed-ness enum problem commit 656713c6b00d9f53d81820fd4675fe568a204088 Author: Matteo Frigo Date: Thu Jan 9 14:12:42 2003 -0500 Explicit cast commit 06f32cbb5be575b9880ff2b1a0e4031fa9be68d1 Author: Matteo Frigo Date: Thu Jan 9 13:41:51 2003 -0500 Added configure_planner(). mkplan() behaves properly when plan is null. commit 0c9627b61142790be11d642e3348808cbfa7cd5e Author: Matteo Frigo Date: Thu Jan 9 06:48:53 2003 -0500 More API work commit e21443ac067af4615dc8513d68d880f78801b983 Author: Matteo Frigo Date: Thu Jan 9 05:40:34 2003 -0500 First skeleton of API infrastructure commit 8c1212b04af0632d827194223919a73133593c54 Author: Steven G. Johnson Date: Thu Jan 9 03:19:35 2003 -0500 unsigned strikes again commit d9142b307e261d5d50a1b2086eef9012e2c36602 Author: Steven G. Johnson Date: Thu Jan 9 01:51:45 2003 -0500 put rdft2_inplace_strides and rdft2_tensor_max_index in their own files for tighter linking commit 7c048dc37ce30e18367fc3e84ec7759a2c2f0b7e Author: Steven G. Johnson Date: Thu Jan 9 01:43:13 2003 -0500 added rdft2_tensor_max_index...incorrect use of tensor_max_index was preventing proper loop ordering for rnk > 2 rdft2 commit 561ca9cb4f10d1710cea9126fc0fa63366814127 Author: Steven G. Johnson Date: Thu Jan 9 00:44:45 2003 -0500 arbitrary spltrnk in rdft2 rank-geq2 commit f17e0e00c61ac65b9353fc879a5e33f185bc8f36 Author: Steven G. Johnson Date: Thu Jan 9 00:40:17 2003 -0500 don't mention wisdom when non-verbose commit be48b68a4776f2add565a8ff0b0b0c4b8095518e Author: Steven G. Johnson Date: Thu Jan 9 00:02:35 2003 -0500 bug fix: printing %T should pass tensor *, not tensor ** commit 13e8d5776b965f625f836ffb3ed0541c5ec1c3b4 Author: Steven G. Johnson Date: Wed Jan 8 23:40:48 2003 -0500 correct(?) normalization for rodft00 ... all of the even/odd transforms should be normalized according to the expanded'' DFT of ~twice the length commit 08581922580b63f9723d7bd0da7e341d49b0225a Author: Steven G. Johnson Date: Wed Jan 8 23:18:23 2003 -0500 fixed tests for n=1 commit cd3f97118a39ef25691a86f62df1a53abfe3f15b Author: Steven G. Johnson Date: Wed Jan 8 22:10:08 2003 -0500 fixed bug in vector tests for rdft(2) commit 81b7636d1db4f7c33fa315720b91077f0c189f22 Author: Steven G. Johnson Date: Wed Jan 8 20:12:00 2003 -0500 fixed handling when first rnk-1 dimensions compress to nothing (ugh) commit a1150e27e85473748f0705407bb3858272d25bca Author: Steven G. Johnson Date: Wed Jan 8 20:02:35 2003 -0500 fixed incorrect/missing rdft2 rank-0 handling commit 77ab86cd9b8adef254ae54ee9f5f1355efb82b6f Author: Steven G. Johnson Date: Wed Jan 8 19:49:05 2003 -0500 bug fix: for rnk > 1, must compress rnk-1 dims separately (ugh) commit cba19ba921fb1d660ea71804cd40ba3d14fac750 Author: Steven G. Johnson Date: Wed Jan 8 17:39:14 2003 -0500 added trailing newline commit 925276da406dd1908a70b57c584cab6719dfb44b Author: Steven G. Johnson Date: Wed Jan 8 17:38:02 2003 -0500 updated commit 3740fe7538b1f9e0c2776a305f1c46dde0e12082 Author: Steven G. Johnson Date: Wed Jan 8 16:53:16 2003 -0500 got rid of compiler warning commit 2dfda812b6ddde932b9dd627cfbc2677ec4caeb0 Author: Steven G. Johnson Date: Wed Jan 8 16:49:48 2003 -0500 whoops, test r2hc and not rodft00 by default commit 12f2eb610a61a32de3a2d961676f005a3c7bc0c9 Author: Steven G. Johnson Date: Wed Jan 8 16:46:24 2003 -0500 got rid of real_n...use physical n everywhere in rdft; fixed rdft sz compression; fixed rodft00 verify bug commit 17233aac9a159de06ecf2dec334205094e3e0a03 Author: Matteo Frigo Date: Wed Jan 8 07:20:47 2003 -0500 icc-6.0 bug workaround commit 8490d0c5c383dcfe1910afc3e006557fb7c9aa76 Author: Matteo Frigo Date: Wed Jan 8 04:21:40 2003 -0500 Reclaimed the fftw_real identifier, because I need it for the API commit 82c0ab6a22809a05739960cb8c06c9d14d5e7968 Author: Matteo Frigo Date: Wed Jan 8 04:14:55 2003 -0500 Use recommended AC_OUTPUT syntax commit 38010c2e123c85caeb3c0827f769f304b8f77c87 Author: Matteo Frigo Date: Wed Jan 8 04:00:22 2003 -0500 Removed FFTW(foo) as a synonym for X(foo). This is an API issue. commit 863cf56f79b7eac7b70f307d24f431d71bfbdd52 Author: Steven G. Johnson Date: Tue Jan 7 17:45:52 2003 -0500 get rid of warning commit fbc87e15fead24d239286af63e298620ac46b30b Author: Matteo Frigo Date: Tue Jan 7 16:22:39 2003 -0500 Renamed conflicting files */codelet.h into dft/codelet-dft.h and rdft/codelet-rdft.h commit 683c665e1da6396f9b2c2dc8ecc749b90e666907 Author: Steven G. Johnson Date: Tue Jan 7 16:21:16 2003 -0500 updated commit 13ef7881b1b28e1772271d54f92e7f7d96059c25 Author: Matteo Frigo Date: Tue Jan 7 15:47:24 2003 -0500 Silence warnings commit f35b6c4c226aa4cba7f2a0b30b5493cc94517e13 Author: Steven G. Johnson Date: Tue Jan 7 15:00:14 2003 -0500 fftw2 used spltrnk=1 commit 9a9b9463c83f021eeefa0743fd50b9e11c008103 Author: Matteo Frigo Date: Tue Jan 7 14:32:06 2003 -0500 Silence warning commit 86d050e48df435dd7091a75e4ee9647cc31d65e0 Author: Steven G. Johnson Date: Tue Jan 7 12:13:50 2003 -0500 noted deficiency commit 97269b487afae721bc3efc07d4510284d184500e Author: Matteo Frigo Date: Tue Jan 7 07:18:51 2003 -0500 Strengthened conditions for a problem to be POSSIBLY_UNALIGNED commit d135e51da8af9610080ca861eec8a12f04e33617 Author: Matteo Frigo Date: Tue Jan 7 05:09:42 2003 -0500 Strengthened conditions for a plan to be POSSIBLY_UNALIGNED commit 41d4363cc830c074d8e602a4046fcfb361714aa3 Author: Steven G. Johnson Date: Sun Jan 5 02:43:45 2003 -0500 added copyright todo commit 81f531aeaa2fb148c7f8b5519a792c7e226060dd Author: Steven G. Johnson Date: Sun Jan 5 02:37:31 2003 -0500 modified comment commit e17581aca74e377a94b5506199a6f3c0d95dd218 Author: Steven G. Johnson Date: Sun Jan 5 02:34:36 2003 -0500 fixed comment commit f33e50cd3dedd8472c0b37116e337749dd80efa8 Author: Steven G. Johnson Date: Sun Jan 5 02:31:56 2003 -0500 implemented rdft2 verify commit 352eadf383e28c25c7132ace3c4179e561c54aa8 Author: Steven G. Johnson Date: Sat Jan 4 16:20:42 2003 -0500 fix --enable-single commit 3cd824b965de4c51a977683e83bfaa1f2d8b37ab Author: Steven G. Johnson Date: Wed Oct 23 12:59:12 2002 -0400 slight fixes commit 64f0f3180cf46058053d0a452152f3fb7e4d5363 Author: Steven G. Johnson Date: Wed Oct 23 12:42:39 2002 -0400 typo commit b6cffe0e74206ccd7ae7726181a361bea4d94986 Author: Matteo Frigo Date: Tue Oct 1 09:32:56 2002 -0400 Experimental stuff commit b92e96518b5b9ac3275a6f7194d5e1ec49b36e7d Author: Matteo Frigo Date: Sat Sep 28 13:03:53 2002 -0400 Experimental Franz mode commit fd2ac8fb21fc75eccec5c5352069388b52ab00ea Author: Matteo Frigo Date: Thu Sep 26 15:14:38 2002 -0400 const-correct commit ec5733489ef85cbe78e5253358fdb320be5b2642 Author: Matteo Frigo Date: Thu Sep 26 15:06:38 2002 -0400 Reuse dimcmp routine for other purposes commit 6fa12bfc6f9ac208da72478981473011a292f57d Author: Matteo Frigo Date: Wed Sep 25 07:37:38 2002 -0400 Use tornk1 correctly. commit 97b84fbe4c90ade6b9cad6ac2efba9b6fb305412 Author: Matteo Frigo Date: Wed Sep 25 07:36:38 2002 -0400 Hmm... I thought I had fixed this before... commit 69de6d4b5d66e405c267001886d8a7ae9e84224b Author: Matteo Frigo Date: Tue Sep 24 21:27:49 2002 -0400 Collect more common idioms commit 1bbba9625dca12e70a6e26402ba1a2262b7ca984 Author: Matteo Frigo Date: Tue Sep 24 21:15:57 2002 -0400 Still collecting common idioms... commit 01a7139392f8170c8563510d0c489bfd91687520 Author: Matteo Frigo Date: Tue Sep 24 21:13:00 2002 -0400 More garbage collection. commit 45bb1a6c49ce1569ebc75896da0ed42b0b03ee59 Author: Matteo Frigo Date: Tue Sep 24 21:08:19 2002 -0400 More compact code commit eed5c4ed8045a26be389b99e1492aedc5017f448 Author: Matteo Frigo Date: Tue Sep 24 20:54:43 2002 -0400 Collect common pattern if (foo) free(foo) ==> free0(foo) commit e7d2657d2d3bb77eb2403856e102678d865de742 Author: Matteo Frigo Date: Tue Sep 24 20:08:44 2002 -0400 Collect some common code in */buffered*.c commit 61cd95889228f7a100d853c42e461780fd01dd92 Author: Steven G. Johnson Date: Tue Sep 24 19:39:22 2002 -0400 use STRUCT_HACK #define to determing rdft kind[] allocation commit 337af322b345f45b275182f7bc8f5949794ea140 Author: Steven G. Johnson Date: Tue Sep 24 17:21:09 2002 -0400 report total pcost of measured/estimated plans...epcost is especially useful to estimate the effects of various impatience flags on planning time for large transforms commit 5cbf8b44eabe724a226d58fbeac341b7f3c13e49 Author: Matteo Frigo Date: Mon Sep 23 18:49:10 2002 -0400 Prevent unwanted inlining commit 7342f004be53b759052eaf9a01a9a574dc64631f Author: Matteo Frigo Date: Mon Sep 23 18:37:59 2002 -0400 Space compaction commit d8299eef074631210e64b01453a7602dad45d6b8 Author: Matteo Frigo Date: Mon Sep 23 11:49:32 2002 -0400 Still reducing size commit 5df9269dc8d95153c138fd44e41effd6ed1f58e2 Author: Matteo Frigo Date: Sun Sep 22 16:03:30 2002 -0400 Saved another 5KB by redesigning opcnt protocol. (gasp!) commit 074344d84ab955d0ad7efdc9b58f8414952a0372 Author: Matteo Frigo Date: Sun Sep 22 15:00:59 2002 -0400 More code compression commit 7e2e90935398c3d3d50cc2bbcab66d4b188bf757 Author: Matteo Frigo Date: Sun Sep 22 13:27:46 2002 -0400 Smaller code size. commit 1da75a085efd3348694dafb0905fb59e2c6cee27 Author: Matteo Frigo Date: Sun Sep 22 12:50:36 2002 -0400 Started unification of rader commit e0cb464fbac3602192afd97211885e814674d246 Author: Matteo Frigo Date: Sun Sep 22 12:35:30 2002 -0400 Typo commit 363f9b3b1a6bbf78e371c46a74645b55281ec0ca Author: Matteo Frigo Date: Sun Sep 22 12:25:20 2002 -0400 Changed protocol for destroy_plan so as to save space. commit daf930d4450cc9caa5d528b631f964bfbf16a208 Author: Matteo Frigo Date: Sun Sep 22 11:08:57 2002 -0400 Introduced convenient function X(mkplan_d) commit e74d86afcd19e77f275c86c916449ae2b82310be Author: Matteo Frigo Date: Sun Sep 22 10:21:36 2002 -0400 Split tensor/md5 into separate files to allow independent linking and/or prevent undesidred inlining commit 249329f66447c68d67536d4a868ac589b264a9ff Author: Matteo Frigo Date: Sun Sep 22 09:49:09 2002 -0400 Treat all tensors as dynamically allocated objects. They were dynamically allocated in part anyway, so there is no point in complicating the object code with the clumsy calling conventions for by-value structs. commit 53cf5c7cab96e0657153327e660e787279e77c4f Author: Steven G. Johnson Date: Sat Sep 21 18:24:55 2002 -0400 typo commit e36da5f9b63af8a62dab370b005e2472e5edc33f Author: Matteo Frigo Date: Sat Sep 21 18:10:07 2002 -0400 Avoid generating NaN when n = 0. commit a49b921ea278fcb353b2be6338d04daf3b0a72dc Author: Matteo Frigo Date: Sat Sep 21 18:04:05 2002 -0400 Saved more. commit 2008afba6889d6f2b9d3f00dcbcf0bc9edd8c7c2 Author: Matteo Frigo Date: Sat Sep 21 17:47:36 2002 -0400 Save 1200 bytes of object code. Do not pass structs by value whenever practical, because the calling protocol generates clumsy code. commit 8dbaef7c3531ccca29ae4f52528ed11c5089700d Author: Matteo Frigo Date: Sat Sep 21 12:10:21 2002 -0400 Do not allocate buffers for rader omegas. Let the planner do it if necessary. commit 0cd3107a7fe058042f7e23b73658bacf82d08805 Author: Matteo Frigo Date: Sat Sep 21 12:03:46 2002 -0400 Check rank *before* reading kind[0], which may be undefined if rnk < 1 commit ffab113d0748937a80de8e046d5d971a7cfde97f Author: Matteo Frigo Date: Sat Sep 21 11:48:50 2002 -0400 Second step towards rader unification. commit 054daf75a708d4b060c35b13a48ee8e8b1732cc1 Author: Matteo Frigo Date: Sat Sep 21 11:37:06 2002 -0400 First step towards unification of Rader code commit fc97f7d9567238bd1930e63614352160ff2bc202 Author: Matteo Frigo Date: Sat Sep 21 07:58:11 2002 -0400 Fix ugliness condition for cooley-tukey. commit 28fe4962b2e634dc302c3fba3853b87788b411ad Author: Matteo Frigo Date: Fri Sep 20 16:53:45 2002 -0400 Removed RADER_MIN_GOOD and associated machinery commit dc40093700e7a00e3808b606108137c7ce5cb592 Author: Matteo Frigo Date: Fri Sep 20 14:49:12 2002 -0400 Proper cast commit 2eec2b720ae866f16db023e3815f27875f572a56 Author: Matteo Frigo Date: Fri Sep 20 14:45:54 2002 -0400 Typo commit d55f46a0acf7e75a5c216964aa0016166254876f Author: Matteo Frigo Date: Fri Sep 20 14:38:13 2002 -0400 Implemented NO_LARGE_GENERIC commit 535ecb44b8e4450306cf760afb294431e5595ae6 Author: Matteo Frigo Date: Thu Sep 19 07:48:25 2002 -0400 Consistent macroization of NO_DHT_R2HC commit fe02be9d79515c92b53d929977c270b46a8b7fdd Author: Matteo Frigo Date: Wed Sep 18 21:47:17 2002 -0400 NO_DHT_R2HC is a planner flag, otherwise the EXHAUSTIVE planner loops. commit 20e70850bb3d2cd4590c9bfce7777b8a2f9a80fc Author: Matteo Frigo Date: Wed Sep 18 20:47:31 2002 -0400 Resurrected NO_EXHAUSTIVE commit 4e477d8e68603cc899c8d0104fc6897817fd74d9 Author: Steven G. Johnson Date: Wed Sep 18 19:31:57 2002 -0400 au revoir, score() commit c3f01031fa05a9088d18e643a9b3476fa6a6437d Author: Steven G. Johnson Date: Wed Sep 18 19:31:05 2002 -0400 eliminated unused commit 25e32538394211412f3aac06baa6677ae148ea03 Author: Steven G. Johnson Date: Wed Sep 18 18:28:44 2002 -0400 capitalize and parenthesize SUBSUMES commit 7115ad27ce3a4390e6c81800126315f757abbdb5 Author: Steven G. Johnson Date: Wed Sep 18 18:26:58 2002 -0400 comment commit 3ec48dd0fd8e9cc88fd85a1b7b74f9ec5ef1789d Author: Matteo Frigo Date: Wed Sep 18 18:03:18 2002 -0400 Use flags from wisdom if wisdom is applicable. commit e16b332f900b1872044fe195f7e40ae15e5ed5e6 Author: Matteo Frigo Date: Wed Sep 18 17:16:17 2002 -0400 Removed score() machinery commit bc4041b9adab2d69de986123e38bee24f480eb3a Author: Matteo Frigo Date: Wed Sep 18 14:12:21 2002 -0400 Revised planner hack commit 4f3717ebf2eca24ac5e8017eaf8856bf5270020c Author: Matteo Frigo Date: Wed Sep 18 10:14:41 2002 -0400 Fix warning commit b627b00f2f1adf8c8839b27618ac1765064c0b78 Author: Matteo Frigo Date: Tue Sep 17 17:54:07 2002 -0400 Type qualifiers. commit 48fc716d339ceb08432ab2a6704e79de578ad5fc Author: Matteo Frigo Date: Tue Sep 17 16:17:55 2002 -0400 ESTIMATE is no longer subsumed by everything else. commit 1c6447f56fe864b172d70f8940dc9de74a15a499 Author: Matteo Frigo Date: Tue Sep 17 10:55:15 2002 -0400 NO_BUFFERING is a planner flag, not a problem flag commit 458afba08480c2115e585e898153352ca125ff39 Author: Matteo Frigo Date: Tue Sep 17 09:36:16 2002 -0400 Maintain flags in canonical form. commit 1a01c050c68d0ffa9380d7bd780194509c75a31e Author: Matteo Frigo Date: Tue Sep 17 09:09:57 2002 -0400 In dramatic break with tradition, SUBSUME is now a partial order. I swear. commit 7c1f9aafa59ca2c68f98f1b2f88ca8b029506e09 Author: Matteo Frigo Date: Tue Sep 17 07:29:00 2002 -0400 Added comment commit 8b8f6515fa6ddcc9ac579c80062a9b9aa55917c1 Author: Matteo Frigo Date: Tue Sep 17 07:27:17 2002 -0400 Inverted ESTIMATE flag, renamed USE_SCORE for consistency with the convention that 0 subsumes 1. commit 1fd38e50ba038d57947daa7c999bab9da4a33836 Author: Steven G. Johnson Date: Tue Sep 17 02:50:15 2002 -0400 NO_INDIRECT -> NO_INDIRECT_OP (out-of-place only) commit ff2617c02989df82c99fd064ec298e107afe627e Author: Steven G. Johnson Date: Tue Sep 17 00:40:04 2002 -0400 hpux needs -D_REENTRANT (thanks to Clinton Roy for the bug report) commit ef127fa967046516cf5658be72eb70c93b817120 Author: Matteo Frigo Date: Mon Sep 16 23:54:34 2002 -0400 Oops. commit 70546cbffe33ede1657b54f626e133039ba26528 Author: Matteo Frigo Date: Mon Sep 16 23:44:47 2002 -0400 Yet another attempt at getting the planner right. commit ac2a09b8c81db49fcc9c770b94723577beee286c Author: Matteo Frigo Date: Mon Sep 16 21:56:14 2002 -0400 Better coding. commit a0a3d5520d53b44194f63fe2873207b57a07d544 Author: Matteo Frigo Date: Mon Sep 16 21:51:06 2002 -0400 NO_UGLY is no longer a flag, but a separate planner field that does not interfere with wisdom. commit 69253431765ca3b9cfce2c4a56c846512f6c9968 Author: Matteo Frigo Date: Mon Sep 16 19:04:41 2002 -0400 Did not compile without FFTW_DEBUG commit 43a0347e3daa0fd854eec1d7ded5c6f45ce727e4 Author: Matteo Frigo Date: Mon Sep 16 18:37:06 2002 -0400 Changed scoring mechanism. commit e4f00711d6784b6f4196859738a039ae1f7b9edd Author: Matteo Frigo Date: Mon Sep 16 17:13:45 2002 -0400 Count infeasible plans commit 18299388527442d1dfc7b7a5748da0d987c019bc Author: Matteo Frigo Date: Mon Sep 16 16:36:12 2002 -0400 curse subsumed plans before export commit fb22a4fc3b6fa45b0f46f605ed1c94eba5960359 Author: Steven G. Johnson Date: Mon Sep 16 15:40:46 2002 -0400 removed ESTIMATE_BIT vs. ESTIMATE... ESTIMATE | IMPATIENT is a UI issue commit 548808e1fefe66c9b882d332d70488986e3b073d Author: Steven G. Johnson Date: Mon Sep 16 15:31:39 2002 -0400 cleanup commit 14a42333af6152472262413b8d1a97207a1aff59 Author: Steven G. Johnson Date: Mon Sep 16 15:28:47 2002 -0400 use CONSERVE_MEMORY flag to prevent buffered for large sizes commit 688cb6fee87d6ba5ed14e9e9899ba46c96eaddbb Author: Steven G. Johnson Date: Mon Sep 16 15:16:16 2002 -0400 moved NO_DHT_R2HC back into planner flags: there's no reason we would want this flag to block plan reuse commit b06ee447ad1ee0f95af06c2d91092db1475f44a5 Author: Steven G. Johnson Date: Mon Sep 16 14:59:14 2002 -0400 whoops, commas commit 396a6523178fa8aa79f3b716e6a14577bb83c337 Author: Steven G. Johnson Date: Mon Sep 16 14:58:26 2002 -0400 problem_flags == checked in applicable, planner_flags == checked in score commit b7ef5ad344bcd298e14a30b30bd2d6f2b3c7442f Author: Steven G. Johnson Date: Mon Sep 16 14:53:16 2002 -0400 ESTIMATE should not *include* all impatience flags, even if it subsumes them; some impatience flags, like NO_INDIRECT, might make a problem unsolvable commit 81a60e6002c427a15cbb298654f954c09954c9a4 Author: Steven G. Johnson Date: Mon Sep 16 00:56:29 2002 -0400 quotatio marks commit 0833118f7818c740e7387c607c320e79e088c6be Author: Steven G. Johnson Date: Sun Sep 15 23:55:44 2002 -0400 delete blank line commit 4cbe17440ce2d074a4c0a0d3245d25c63dd469fb Author: Steven G. Johnson Date: Sun Sep 15 23:51:14 2002 -0400 substitution commit 3963051622d435d96083c0d753dcd8f503bac2f5 Author: Steven G. Johnson Date: Sun Sep 15 23:49:50 2002 -0400 note that we are not GNUlly correct commit ec9b8c84419f5dd8cd533eca7b07391696019046 Author: Steven G. Johnson Date: Sun Sep 15 23:41:01 2002 -0400 indenting commit bb5f5581a5d05566bf679da7ed67a2e59e68781e Author: Steven G. Johnson Date: Sun Sep 15 23:37:46 2002 -0400 more jokes commit 0db38cc3a3f7215cdd2e9c308fa9d88c0422024e Author: Steven G. Johnson Date: Sun Sep 15 23:20:14 2002 -0400 NONTHREADED_ICKYP includes nthr > 1 check commit a1900e4f7fdc5bc663fe60ec30d99f342ac06d34 Author: Steven G. Johnson Date: Sun Sep 15 22:56:44 2002 -0400 use md5sig commit 7f2631f48f2874827ca50e2c9ee4d59ddf861ba3 Author: Steven G. Johnson Date: Sun Sep 15 22:55:41 2002 -0400 md5sig typedef commit c83d9aa4a856e2b34011a4285df02dc43937d982 Author: Steven G. Johnson Date: Sun Sep 15 22:35:13 2002 -0400 updated commit 849fd22c4bdead7cab04a20c1b63966946b2355a Author: Steven G. Johnson Date: Sun Sep 15 22:30:26 2002 -0400 partially-ordered impatience commit f811a39af185c82590b34fd1439901b8cbf32d03 Author: Matteo Frigo Date: Sat Sep 14 19:47:56 2002 -0400 Removed all that planner inheritance crap. commit 74cf5ca97fc18b5d64c869c64575c0095f8b81c2 Author: Steven G. Johnson Date: Sat Sep 14 16:35:28 2002 -0400 string.h is used for more than strlen commit 7f974585ea055241b1339d303ffdb472305c7d75 Author: Matteo Frigo Date: Sat Sep 14 12:19:13 2002 -0400 Reduced hashtable size by 1/6 (on 32-bit machines) at the expense of messier planner. commit 8b1efa0ba0e2a490fc04c66900ad41248a55c86c Author: Matteo Frigo Date: Sat Sep 14 08:31:29 2002 -0400 Only print wisdom if verbose > 3 commit abd7a17545150645bb864c140559ba794257a897 Author: Matteo Frigo Date: Sat Sep 14 07:56:56 2002 -0400 Changed syntax of temporaries to avoid shadowing library functions (which is harmless but I hate the warning) commit a120b53fd271fad4f9b879ff6247840764061813 Author: Steven G. Johnson Date: Fri Sep 13 23:07:39 2002 -0400 only add warnings in debug/maintainer mode, and add a few more warning flags; eliminate more warnings; add support for posix_memalign (broken in glibc, grrr) commit 7832eabf884004c42c3e4089fe637e205f47732e Author: Matteo Frigo Date: Fri Sep 13 21:57:50 2002 -0400 Explicit cast commit d5127e37db1b557049933fe9aff91d9c3b0a1dc0 Author: Matteo Frigo Date: Fri Sep 13 21:54:50 2002 -0400 Use double-hashing. This allows a slightly higher load factor at the expense of a messier computation of the hashtable size. commit e689e22a6e1b981c379989a760186035fa18939c Author: Steven G. Johnson Date: Fri Sep 13 17:53:13 2002 -0400 typo commit 1d2a159b2078ef8c6063fad80d7358fd30bd4f9d Author: Matteo Frigo Date: Fri Sep 13 15:36:07 2002 -0400 Slight change in hash table growth functions. commit 9e1d9f0454bc70a807bcdb0f9ff25ed18a7c9903 Author: Matteo Frigo Date: Fri Sep 13 14:58:22 2002 -0400 More statistics. commit e1049bcf9446871a4ed34cebaae6b5b542dbca53 Author: Matteo Frigo Date: Fri Sep 13 10:13:02 2002 -0400 Clearer logic. commit 4dda68614273939d7843da329ab6c8b4da2e7bb6 Author: Matteo Frigo Date: Fri Sep 13 10:11:10 2002 -0400 Oops. commit 223f36a95fc7bd42e3b2d4bac8ad506cc2e4c8d9 Author: Matteo Frigo Date: Fri Sep 13 09:31:46 2002 -0400 Cleaned up commit c78314bd598dfb1c7e54f18fc2d050240910de4c Author: Matteo Frigo Date: Fri Sep 13 09:16:07 2002 -0400 Deal properly with infeasible problems. commit 875f159755baff40c2dd02f462c6bc36c49fbc59 Author: Matteo Frigo Date: Fri Sep 13 07:15:06 2002 -0400 Redundantly initialize hash table to prevent valgrind warnings. commit b7047a11d0b3e41e53e1890f73135be6f2ce3b2c Author: Matteo Frigo Date: Thu Sep 12 19:00:22 2002 -0400 Removed relics from past. commit 4cae827eaf456e69f3155183afd52e4c0216c980 Author: Matteo Frigo Date: Thu Sep 12 18:53:44 2002 -0400 md5hash a problem only once. commit a1ef1699bff263e0141cd43801c7a4ff3431389e Author: Matteo Frigo Date: Thu Sep 12 16:33:49 2002 -0400 Renamed k7 codelets commit c4367d998eeed60d4618b8a5b54162d500b84271 Author: Steven G. Johnson Date: Thu Sep 12 16:32:03 2002 -0400 FORBID_DHT_R2HC -> DHT_R2HC_VERBOTEN for consistency commit 39a9858e45ca542695b9419c09ec6b61b09a6004 Author: Steven G. Johnson Date: Thu Sep 12 16:28:43 2002 -0400 removed obsolete macro commit bd1d1de9ba94e111921e911a49de82fe4ff2d16e Author: Matteo Frigo Date: Thu Sep 12 16:20:39 2002 -0400 Split flags in SIMD code. commit b9fbfffc3ee26e56c4c16448ced8db523670de55 Author: Matteo Frigo Date: Thu Sep 12 16:18:51 2002 -0400 Forgot to fix threads commit 1d3447ab63c27d4bd97beb41882ca34addd0df18 Author: Matteo Frigo Date: Thu Sep 12 16:10:05 2002 -0400 Split flags into planner_flags and problem_flags commit 075ff4047c6c5a98bd268a3bae692df6a9ec1d84 Author: Steven G. Johnson Date: Thu Sep 12 15:46:56 2002 -0400 tetrameter commit ff7f0235dd4460a5e3c332725151037107514954 Author: Matteo Frigo Date: Thu Sep 12 15:11:21 2002 -0400 Overwrite less impatient solutions properly. commit b470f419700398ec14357990abeb69aa6eb4d857 Author: Matteo Frigo Date: Thu Sep 12 11:29:16 2002 -0400 Oops. commit 1ae2a65b2895b51b43f316fa11fcc932ed127ae2 Author: Matteo Frigo Date: Thu Sep 12 10:58:56 2002 -0400 Keep less impatient solution in case of conflict. Paranoid cast to uint in certain places. commit 640b1f4df72028daa4293c304e53af0da7f31c36 Author: Matteo Frigo Date: Thu Sep 12 10:02:51 2002 -0400 Complete reimplementation of planner hash table. commit 40f47f4111154bd1e17e44f87908228ede39af18 Author: Matteo Frigo Date: Thu Sep 12 07:58:45 2002 -0400 planner->cnt was not properly decremented. commit fda67f21284b158043d7ba171a81a933a3891e1a Author: Steven G. Johnson Date: Wed Sep 11 17:52:39 2002 -0400 typo commit ebe84b30659823364a95bfd646512b387bef4629 Author: Matteo Frigo Date: Mon Sep 9 17:10:45 2002 -0400 Simplified commit 230458a658da6fa62fac4ccd66918f38442df00b Author: Matteo Frigo Date: Mon Sep 9 17:03:32 2002 -0400 Always overwrite old wisdom with new, in case the old is corrupt/conclicting. commit 2d91c8d00acc06eb228d7ba5492e8f6ec7ee24d9 Author: Steven G. Johnson Date: Mon Sep 9 16:56:03 2002 -0400 added quote/joke commit 0173e3dc140cec9b061b4cf0cc0a626e41105e1f Author: Matteo Frigo Date: Mon Sep 9 15:04:47 2002 -0400 Completed wisdom import commit dee4de2b0b7a9c60d9501d67e5ab17c5e828e474 Author: Matteo Frigo Date: Mon Sep 9 10:14:22 2002 -0400 Slight cleanup of md5 interface. commit b990a36ddb7c8ec04d248fcbbbc4a135827cf7b2 Author: Matteo Frigo Date: Tue Sep 3 22:32:43 2002 -0400 More consistent protocol between planner and inferior. commit fbf287fea9e51a6eb2a62030a115aea58ef2f630 Author: Matteo Frigo Date: Tue Sep 3 21:08:30 2002 -0400 I can't think of any situation where saving infeasible problems would be desirable. Removed relevant code. commit c194f7f7a34d6909408bcd55e543f4cbf7a60a2f Author: Matteo Frigo Date: Tue Sep 3 20:57:03 2002 -0400 Encoder registrar's names in wisdom. Remove export_conf, since a separate program can now generate it. commit e9a30d633c905ac3eba878af7839ad73f153dd06 Author: Matteo Frigo Date: Tue Sep 3 15:11:06 2002 -0400 Fixed typo commit 51b8ddee6eda85459d68909df089b7e251fb65ca Author: Matteo Frigo Date: Tue Sep 3 14:52:45 2002 -0400 Fixed broken trochaic meter. commit eb531c7d3242141b4603cca8f270d88bab0f48e3 Author: Matteo Frigo Date: Tue Sep 3 09:49:50 2002 -0400 Initialize planner->score. It is correct to leave it uninitialized, but I don't want people to send reports about purify complaining. commit 6a000fc379ab96b4ea9310e76f5391af7d6131a8 Author: Matteo Frigo Date: Tue Sep 3 09:03:46 2002 -0400 More latin silliness commit 3b9fecd5d0365958954cc149251fed5b9ce07ddc Author: Steven G. Johnson Date: Mon Sep 2 17:57:32 2002 -0400 updated commit 28a40bce8ba8e91b240d4f6e7ddcf55b68f05e77 Author: Steven G. Johnson Date: Mon Sep 2 17:33:49 2002 -0400 added clock() getseconds timer commit c004f7f51d23ac8f1c6220ff4a18e83d2e4fe7cf Author: Matteo Frigo Date: Mon Sep 2 16:16:58 2002 -0400 Oops commit 3f227ec57b346fe8688fbf2e08dfcf6cc3c3c955 Author: Matteo Frigo Date: Mon Sep 2 15:58:19 2002 -0400 Experimental INDIRECT_VERBOTEN flag (not used) commit 802f348a8a8c0bd97e15ed827e8092ab358abbe2 Author: Matteo Frigo Date: Mon Sep 2 15:36:21 2002 -0400 Do not allow buffering in children of indirect solvers. commit f081fc5e202141350664e3d9adbe947d5331ab9f Author: Matteo Frigo Date: Mon Sep 2 15:02:11 2002 -0400 Oops commit 08826857c28146b6366770565a9971eb4bdd9505 Author: Matteo Frigo Date: Mon Sep 2 14:32:28 2002 -0400 Hash sizeof(R) as part of wisdom. commit ff803ad22f9a5a980be0ab10aebd18ab210557de Author: Steven G. Johnson Date: Mon Sep 2 13:47:57 2002 -0400 added --enable-float synonym for --enable-single (since with have --enable-long-double) commit 99672a129c0032eeb3c99424d16f16547e1fff5d Author: Matteo Frigo Date: Mon Sep 2 13:46:08 2002 -0400 zerotens is now in its own file, so it does not cause dft to be linked in if only rdft is used. commit fe35f517845e4692b46077037dc40b155c9fa500 Author: Matteo Frigo Date: Mon Sep 2 11:56:37 2002 -0400 Removed unused var. commit 2a4e8a9a1121f4adb852256865ae2b52743d6f40 Author: Matteo Frigo Date: Mon Sep 2 11:55:33 2002 -0400 Split insert() in preparation for wisdom import commit fc1cf1dfa9a72fe8968426c4e694b7336926a03d Author: Matteo Frigo Date: Mon Sep 2 11:46:57 2002 -0400 Moved debugging infrastructure to test directory so that it is not linked into the shared library. commit 07a825b37e850981bc9fa18460538346cc7dd137 Author: Matteo Frigo Date: Mon Sep 2 11:04:54 2002 -0400 Reactivated wisdom export commit dfcc8fd2b155015d11c95762e4384ae139f922c6 Author: Matteo Frigo Date: Sun Sep 1 21:30:58 2002 -0400 Dump errors to stderr, not stdout. commit 44e1a88d3527239c405ca268888b3695c902c807 Author: Matteo Frigo Date: Sun Sep 1 21:26:38 2002 -0400 Removed traverse.c. traverse.c is no longer need for plan blessing. I figured out a way to avoid using it in planner-score.c, so the file is now redundant. commit 1c9ef6ccf7c373d274215c83bbede0fea30682c7 Author: Matteo Frigo Date: Sun Sep 1 19:51:50 2002 -0400 Removed code made obsolete by new MD5 scheme: problem equality tests, scanners, and associated list of problem kinds. commit 726b571dc2949d3369fc09237b41f99ef8ce058b Author: Matteo Frigo Date: Sun Sep 1 19:22:54 2002 -0400 Started md5 implementation commit d89348364f45c8f635356d8ae1047f6cb8508158 Author: Matteo Frigo Date: Sat Aug 31 14:00:04 2002 -0400 Keep track of hit rate commit 971b014a7698a2b54a6dec16b486b7953a1f41e0 Author: Matteo Frigo Date: Sat Aug 31 12:44:04 2002 -0400 Only dump when verbose > 4 commit 018df5704e37547209aeaecadc50811defcf5f2b Author: Matteo Frigo Date: Sat Aug 31 09:55:57 2002 -0400 Debugging infrastructure commit 837cecb7a386caabb14f3b41518083f18b364fc7 Author: Matteo Frigo Date: Sat Aug 31 09:21:48 2002 -0400 Use debug infrastructure to dump planner. commit dfaf407162a50f7a77ef3496dbaf754b27551029 Author: Matteo Frigo Date: Fri Aug 30 21:29:10 2002 -0400 Do not store plans in planner, plus general planner cleanup. commit e74dd299a89b62e7d0e51be3293163325b5044ea Author: Steven G. Johnson Date: Fri Aug 30 18:07:52 2002 -0400 renamed IN_DHT_R2HC to the more general FORBID_DHT_R2HC commit 904ff75e31a716b0c9d97f7e4efd425bd4309c06 Author: Steven G. Johnson Date: Fri Aug 30 18:07:21 2002 -0400 eliminated unused var commit 60f3382238de7ce933a192a923f06657900e4853 Author: Matteo Frigo Date: Fri Aug 30 12:09:48 2002 -0400 Score planner was not working correctly when using wisdom. Fixed. commit 0522d2fcf8b00ec9f1f3cdbd38cfa03d764e1154 Author: Matteo Frigo Date: Fri Aug 30 08:20:48 2002 -0400 Use hash table in debug malloc commit e451f6d74620eefd71304a543d0eb48ab9ea953d Author: Steven G. Johnson Date: Fri Aug 30 02:45:15 2002 -0400 listed some good stuff commit 4d5aeb7a8917367942f1e798bd19d5c3be2feaf1 Author: Steven G. Johnson Date: Fri Aug 30 02:17:30 2002 -0400 timed planner commit 3bb76589f0d1efc68b0a82eeecbdf30748a991fd Author: Steven G. Johnson Date: Fri Aug 30 02:07:00 2002 -0400 fma? commit e231f879031ab34c3a8fa8a8da0fbf642cd88a0b Author: Steven G. Johnson Date: Fri Aug 30 02:05:55 2002 -0400 update commit 1f29de7940d8c29acc6b608deec341cd982cc706 Author: Steven G. Johnson Date: Fri Aug 30 01:31:47 2002 -0400 rader-dht -> dht-rader commit 888439dcea7af2d64300c776238afa7c5c18a372 Author: Steven G. Johnson Date: Fri Aug 30 01:21:37 2002 -0400 add DHT solver, and break up rader-dht and r2hc-hc2r commit df668dba33c6181cb6feb58dba6f649c89d73fe6 Author: Steven G. Johnson Date: Thu Aug 29 23:20:35 2002 -0400 another option commit 213d66b5bcf73e5525c97bb6dc9461808600d483 Author: Steven G. Johnson Date: Thu Aug 29 22:55:29 2002 -0400 generalized indirect solvers for fftw2-like buffering and more commit 795353001d9c3db1d30d5def55b8671cb4eb67b0 Author: Steven G. Johnson Date: Thu Aug 29 18:08:16 2002 -0400 tensor_max_index and tensor_min_stride are now both unsigned commit d59c4e92144b248504c9c01cae0ea5d3f4e0aa60 Author: Steven G. Johnson Date: Thu Aug 29 17:58:35 2002 -0400 added iabs.c, and tensor_min_stride returns min absolute value commit 9247f8665076f514844f3fd4a0478f9988313251 Author: Steven G. Johnson Date: Thu Aug 29 17:31:39 2002 -0400 bug fix in cldrest hc2c/c2hc copy loops commit c8d575230e1d18331b0a1d8fe22d6c8fcfd70ce4 Author: Matteo Frigo Date: Thu Aug 29 13:45:08 2002 -0400 Added things to do. commit c8b62313d7952baa412a1c18427473c010451303 Author: Steven G. Johnson Date: Thu Aug 29 13:10:04 2002 -0400 added automake prereq commit 3a6be2745802ae618bbb0521fe5e54e17e1eecb2 Author: Matteo Frigo Date: Thu Aug 29 08:36:36 2002 -0400 Use indexed addressing commit b27567a442018af7ec7cf782f117bfc9f5476e08 Author: Matteo Frigo Date: Thu Aug 29 08:20:55 2002 -0400 Ooops commit dc19f8daf30d11be571d8856cb10e8d8a9046b6c Author: Matteo Frigo Date: Thu Aug 29 07:45:37 2002 -0400 Oops commit ee4bb3eb29224fe9ef1e5c3c8416256b04a22599 Author: Steven G. Johnson Date: Thu Aug 29 02:32:13 2002 -0400 updates to win32 threads code (ick) commit 6cfa2e60b0f2831342f21a72eb3732bf80366250 Author: Steven G. Johnson Date: Thu Aug 29 01:44:33 2002 -0400 added threaded version commit 8cc323cbe02b7c270bb664e2c8acedce4ddf48b5 Author: Steven G. Johnson Date: Wed Aug 28 19:47:21 2002 -0400 fix make dist commit 43fa7922084aae1bdb1b69aff7109aed56e1f025 Author: Steven G. Johnson Date: Wed Aug 28 15:09:03 2002 -0400 whoops, bugfix for inverse commit b3136883e3f02c5bbb68338e01d134aa2b2a25eb Author: Matteo Frigo Date: Wed Aug 28 14:50:34 2002 -0400 Use C9x convention for naming (fftwf etc.). Removed installable header files since they will be part of the API. commit ed3b5e17a932fe32d1a9397642c6e043eb3dbc40 Author: Steven G. Johnson Date: Tue Aug 27 23:34:00 2002 -0400 allow _1 variants to accept rnk 0 (sz 1) problems commit 004227a749ea2b1990047e29b15826437335239f Author: Steven G. Johnson Date: Tue Aug 27 15:56:09 2002 -0400 updated commit ca46171fc03dc63c4a93462abded63a039acdd82 Author: Matteo Frigo Date: Mon Aug 26 20:14:56 2002 -0400 Loop unroll is useless commit 6528250479b8700bc9082f776d5f3c340080175a Author: Matteo Frigo Date: Mon Aug 26 20:00:41 2002 -0400 Use indexed addressing commit 8f4d60a4abc3e10d5e4e2739119422babe433a1d Author: Matteo Frigo Date: Mon Aug 26 19:46:46 2002 -0400 Use indexed addressing in transpose routines. (Seems to be slightly better on athlon.) commit aac3c6a8800ddbc174774e9eeeb32f054c8af6a6 Author: Steven G. Johnson Date: Mon Aug 26 12:59:44 2002 -0400 added comment about stability commit bdaced931410f8e984ac5c3a833e842d6ffa8965 Author: Matteo Frigo Date: Mon Aug 26 07:43:53 2002 -0400 Approximate opcount commit 46c5151b696b0d6f0ff98f952d8a13283d95877b Author: Matteo Frigo Date: Mon Aug 26 06:38:49 2002 -0400 Finished rdft2 via dft/rdft commit c9122c8dbfcac3ae13893442c0ad348e410b646b Author: Steven G. Johnson Date: Mon Aug 26 00:15:59 2002 -0400 some updates commit b049bb9502bd3c00a3a8f1ff3cfd3c5596e9e7c0 Author: Steven G. Johnson Date: Mon Aug 26 00:05:53 2002 -0400 rdft kind is now per-dimension, added rdft/rank-geq2 commit 32db021f7eabd57af68c88e1e6266589a828df35 Author: Steven G. Johnson Date: Sun Aug 25 22:45:38 2002 -0400 added note commit e174f61162d8e897e181f1ae8f01b5c8ba4122d8 Author: Steven G. Johnson Date: Sun Aug 25 22:28:12 2002 -0400 must zero real sz commit 7881bf396852115443bd3ce1dbdce177d8d64b6e Author: Steven G. Johnson Date: Sun Aug 25 22:06:52 2002 -0400 unified pickdim funcs commit 9b588fdbd50ab5d47cb936aae0569b6f9b54fc4c Author: fftw Date: Sun Aug 25 14:10:55 2002 -0400 silence warnings commit f58dff38cc5c75f8c508e971a1ffd286be572f87 Author: Matteo Frigo Date: Sun Aug 25 13:16:49 2002 -0400 I had to add another planner flag to record whether pointers could become unaligned because of vrank-geq1 solvers (these solvers only plan the first element of a vector problem, but the second element may have a different alignment). This addition is ugly, but I don't see any way around it. commit 3633f42453ac103289d0c471630892680f1b0625 Author: Matteo Frigo Date: Sun Aug 25 10:18:25 2002 -0400 Added thoughts commit fb9c1acef1a3499a8629190b172a1ec0430260b4 Author: Matteo Frigo Date: Sun Aug 25 10:08:59 2002 -0400 Implemented rdft2 via vector rdft + radix2 step commit 8bc1aed075f15afc6de9d82adc44d6ab8b5e50f6 Author: Matteo Frigo Date: Sat Aug 24 17:43:54 2002 -0400 Stylistic changes commit 188add2600049e4313ba1e77c1976b887544ae90 Author: Matteo Frigo Date: Sat Aug 24 11:19:30 2002 -0400 Simplified mktwiddle interface commit 1c91434a8fea606141e28014376c2d2c9937f1b7 Author: Matteo Frigo Date: Sat Aug 24 11:05:08 2002 -0400 Unification of certain vector computations. rdft2-dft is now a vector transform. commit f9311503a90a428a78350116e1bf47c6ffefddcc Author: Matteo Frigo Date: Fri Aug 23 20:21:25 2002 -0400 Intel compiler seems to be still buggy commit de1bb9192bc2740a6fbe70bbac497a1ac34450f0 Author: Matteo Frigo Date: Fri Aug 23 16:07:12 2002 -0400 Streamlined twiddle protocol commit e2a28ed96b7b40db5f3fe6b72852acf550cdaca4 Author: Matteo Frigo Date: Fri Aug 23 13:22:17 2002 -0400 Implemented rdft2 via dft (forward only for now) commit 17d57ef85db79c55dcd5c77260618e798833e1d0 Author: Matteo Frigo Date: Thu Aug 22 11:29:29 2002 -0400 More cleanup of verify commit 0eb03788a7c1c13953638a19182235738511b77a Author: Matteo Frigo Date: Thu Aug 22 11:16:03 2002 -0400 Changed error criterion because old one was too strict commit e97f092fbcd955e08b36522352e0e9b94cfd473e Author: Matteo Frigo Date: Thu Aug 22 11:15:17 2002 -0400 Disable shared commit f611df2e683eea128367d652cf12e2c4a2b3dfb1 Author: Matteo Frigo Date: Thu Aug 22 09:19:12 2002 -0400 Added thoughts commit 6ad63b2082094c83de1fe5a01400423c249564a1 Author: Matteo Frigo Date: Thu Aug 22 09:17:28 2002 -0400 Oops commit 42381c1bcded2b7d1854300ff5de0addfca36575 Author: Matteo Frigo Date: Thu Aug 22 09:11:34 2002 -0400 Do not use inline. Minor changes. commit b9b2448db23e3d5d0d6d10b4bf3fe1858a847a05 Author: Steven G. Johnson Date: Wed Aug 21 16:23:26 2002 -0400 more commented flags commit 1c316981c3ed81a4550d6ba9bfa733745532bcf2 Author: Steven G. Johnson Date: Tue Aug 20 19:44:43 2002 -0400 added DCT-IV and DST-IV commit c15e995b01901e957e42c369b5341b6dbeaf3ac2 Author: Matteo Frigo Date: Tue Aug 20 16:01:36 2002 -0400 Slight improvement in twiddle scheme commit 8ba1ef4db7a3866fae35bd1825a5a5c35ae5673f Author: Steven G. Johnson Date: Tue Aug 20 15:31:54 2002 -0400 name fix commit 5b56bb057b02f41413a9d5436a3d9d1c50a0e7f5 Author: Steven G. Johnson Date: Tue Aug 20 15:16:48 2002 -0400 removed extraneous variable commit d8b1080be08abcfa55a88f38d7bc677d99a9c2d9 Author: Matteo Frigo Date: Tue Aug 20 11:46:29 2002 -0400 Oops commit b500a0d285f5b95a9b88952b8830aa8423be9332 Author: Matteo Frigo Date: Tue Aug 20 08:37:45 2002 -0400 Still playing around commit 7a44ac35618394bd3715c928e9dc0b3a7a149f0e Author: Matteo Frigo Date: Mon Aug 19 19:56:29 2002 -0400 Playing around with addition chain commit ac8dfff733ce38c8b013523ff4e9fc9888456989 Author: Steven G. Johnson Date: Mon Aug 19 19:48:56 2002 -0400 comments commit 175b3b2cec3441b1a0e34d03343e9f581f0e030e Author: Steven G. Johnson Date: Mon Aug 19 19:45:35 2002 -0400 comment fixes commit 0b6386c1ef38de51383f1306c82e7966b0db0d52 Author: Steven G. Johnson Date: Mon Aug 19 19:40:18 2002 -0400 added reodft stuff commit 8d4aef3c5738367c010a1bfd3004c94f73281950 Author: Matteo Frigo Date: Sun Aug 18 19:44:14 2002 -0400 Sync with nbenchfft commit 6ec9197550f61b20dad2a8e238bd00da3bf2cf23 Author: Matteo Frigo Date: Sun Aug 18 16:02:37 2002 -0400 Economy of thought commit 70610d2a45fcebc6b9c3c61e5dd6caa96d292b4f Author: Steven G. Johnson Date: Sat Aug 17 15:52:05 2002 -0400 distribute addchain.c commit 2fea59351e2abaeec9bb1ea094d06097282bdf7e Author: Matteo Frigo Date: Sat Aug 17 14:09:11 2002 -0400 Nothing serious commit c5ef4a2ddba0963a8c9a388edf050c5ee2fbbb00 Author: Matteo Frigo Date: Sat Aug 17 10:47:59 2002 -0400 New twiddle policy (disabled for now) commit bf62c3f3bb4be6257869db7d46f69b694c7a2688 Author: Steven G. Johnson Date: Fri Aug 16 23:44:28 2002 -0400 bug fix for hc2r (must use inverse dft) commit e7434c44d6c3f77e761da5e7a8e850f48c6fb872 Author: Matteo Frigo Date: Fri Aug 16 20:27:10 2002 -0400 New log3 twiddle policy commit d0f1857c45c12d35cbd9fded016c3b7ceac70aa7 Author: Matteo Frigo Date: Fri Aug 16 18:10:33 2002 -0400 More verify cleanup commit c8f750da8aab093581b6be29ff8d781906ca771b Author: Matteo Frigo Date: Fri Aug 16 16:31:19 2002 -0400 Oops commit eae86b4ff97b783a93ebd6f7b0a6352cea48359c Author: Matteo Frigo Date: Fri Aug 16 15:22:36 2002 -0400 Economy of thought (and code) commit d7bdf2e9b5a011b19bb16a9d12d5d763a3196c2a Author: Matteo Frigo Date: Fri Aug 16 14:05:45 2002 -0400 Added comment commit 4bec01a2c6ea089d18a81b8d7d3ce649cbe80fe8 Author: Matteo Frigo Date: Fri Aug 16 12:57:43 2002 -0400 Cleaner rounding algorithm commit d91cc0e5f23a61e226b2a575c23f35c79ec3ca06 Author: Matteo Frigo Date: Fri Aug 16 11:27:43 2002 -0400 Can get away with shorter length in bluestein (I think). commit 56113aa7d008511b8387a1d1652e03d9fd8844e7 Author: Matteo Frigo Date: Fri Aug 16 11:08:09 2002 -0400 Portability improvements commit b58468b7ecd1e0ff7b9a2b1236d64e357627d8a0 Author: Matteo Frigo Date: Fri Aug 16 08:06:31 2002 -0400 Optionally average accuracy test over many rounds commit 21b850aeaafa046e663e6bc5a42a9538c9571180 Author: Matteo Frigo Date: Fri Aug 16 07:50:24 2002 -0400 More accurate formula for trig tables commit ce0241125c235817e2132e938e8c9dcd3166773f Author: Matteo Frigo Date: Fri Aug 16 06:42:02 2002 -0400 Implemented accuracy test for all integers commit db374e203e4d37c399e6b3d877da8cdf192ec649 Author: Matteo Frigo Date: Thu Aug 15 18:54:44 2002 -0400 inv, neg: make static commit 79f1c53641c0cec5612621c1f72726a81d56144e Author: Matteo Frigo Date: Thu Aug 15 17:25:37 2002 -0400 Verify was not complete for real transforms commit c60e8fcdedd600b93f30f098ca49f794375e8377 Author: Matteo Frigo Date: Thu Aug 15 16:30:03 2002 -0400 Oops commit 688a0ef88f8ef6a8d060ad2b04ce51b4d94870b7 Author: Matteo Frigo Date: Thu Aug 15 16:29:16 2002 -0400 Fixed hb codelets commit 8a4d71183c0b5cd62b6f9f53f41cfd68a8b602fc Author: Matteo Frigo Date: Thu Aug 15 14:10:45 2002 -0400 Changed twiddle policy commit 9905db7579db957d5ebc9f472847910d24b65e10 Author: Steven G. Johnson Date: Thu Aug 15 13:32:24 2002 -0400 whoops commit 59c9d170edb4001d3f37b64cfb2d8d48e9cb9b7d Author: Matteo Frigo Date: Thu Aug 15 11:01:04 2002 -0400 No point in libbench being a shared library commit b75824c63085764eb1fbf97b83961eb0411bd969 Author: Matteo Frigo Date: Thu Aug 15 09:48:37 2002 -0400 Moved accuracy test to libbench commit ebac0dde6d77f268c45cfc7ba17230c547e60800 Author: Matteo Frigo Date: Wed Aug 14 19:48:23 2002 -0400 Modified accuracy test commit d5e2c4a63b8f9b195e7812f817cefc61617accf9 Author: Matteo Frigo Date: Wed Aug 14 08:34:26 2002 -0400 Fixes for long double commit 41c23eb9e18add9786e959871bcba7d1ffc44bb6 Author: Matteo Frigo Date: Wed Aug 14 08:17:57 2002 -0400 Normalize input commit d83e36740eaf0cd2d8ffecb25d38ffdcd6412bcb Author: Matteo Frigo Date: Wed Aug 14 07:26:41 2002 -0400 Oops commit 0d312034a4b8a8ece11903c0b81aa4ce57151783 Author: Matteo Frigo Date: Wed Aug 14 07:25:34 2002 -0400 Also compute relative error commit 10c281df8a8195c0eb497cd3b73955807c64f06e Author: Matteo Frigo Date: Wed Aug 14 07:08:20 2002 -0400 Loop over N commit 588a70753f53ef9fe7801fd3c0cd1b1f2c5da7fc Author: Matteo Frigo Date: Wed Aug 14 06:54:50 2002 -0400 simple-minded accuracy test commit b25380fae97bb3af2b38f592f5393b10be1ff430 Author: Steven G. Johnson Date: Wed Aug 14 03:26:06 2002 -0400 whoops commit d32e62c62857ed17fdf4a9fa7ebb12007c8e32bc Author: Matteo Frigo Date: Tue Aug 13 11:42:41 2002 -0400 fma() stuff is too nonportable, removed commit 583c58e086a592a198619d6c36fcb6137b4ea068 Author: Steven G. Johnson Date: Mon Aug 12 14:07:44 2002 -0400 slight fix commit 2be67d85e7e8c8b4db5644bdeca6cfa1a0211959 Author: Steven G. Johnson Date: Mon Aug 12 14:07:18 2002 -0400 use table for rdft_kind_str commit 331ca343e551313e04bc1c88ae8c8cd3e1dfb4fd Author: Steven G. Johnson Date: Mon Aug 12 13:43:08 2002 -0400 slight fixes commit 8bf7bf1145ef67937cf020d64f0e9913aef84d58 Author: Steven G. Johnson Date: Mon Aug 12 13:31:37 2002 -0400 multidimensional rdft2 commit 4457a7cf6bf60cff0e842bfd127e22e7b3de55e5 Author: Steven G. Johnson Date: Sat Aug 10 19:33:23 2002 -0400 use tensor_copy_inplace commit 5e370a1a072a67b940639f311e296a97150acf1c Author: Steven G. Johnson Date: Sat Aug 10 19:32:03 2002 -0400 bugfix, use tensor_copy_inplace commit 92f280c99e002d9ee78e42967ee81bb4fcf84d2b Author: Steven G. Johnson Date: Sat Aug 10 19:30:39 2002 -0400 use tensor_copy_inplace commit 55ee1b50c140e81f41abc05975f01393c8bd4cbd Author: Steven G. Johnson Date: Sat Aug 10 19:28:07 2002 -0400 added tensor_copy_inplace commit ce8083b65d5ae7952d40c253896ae0e6759e73e8 Author: Steven G. Johnson Date: Sat Aug 10 19:25:50 2002 -0400 fixed trig-function table type commit 9b354635204711389328f487a058a54604d58e0a Author: Matteo Frigo Date: Sat Aug 10 14:41:04 2002 -0400 Improved trig scheme commit 466d2a03411d082ab673c73582a08842f12f6846 Author: Matteo Frigo Date: Fri Aug 9 21:05:01 2002 -0400 Allow for testing using long double instead of pari commit 14b243d1d509236a5b19e8783570989cdfda6333 Author: Matteo Frigo Date: Fri Aug 9 20:49:32 2002 -0400 Yet another trig scheme. commit 361e112752a93e14cab74d86d92fccb88686fed1 Author: Matteo Frigo Date: Fri Aug 9 20:38:07 2002 -0400 Yet another scheme commit b3ca7c941515736b0ebd97c7d1195cd736d2b8d8 Author: Matteo Frigo Date: Fri Aug 9 20:31:16 2002 -0400 Careful with overflow commit c1af0a91c6bbcd3482427d1be4a812a0c061d879 Author: Matteo Frigo Date: Fri Aug 9 20:16:23 2002 -0400 Avoid overflow commit f06cb59c469661f10f65f220b91d79e8d98097f7 Author: Matteo Frigo Date: Fri Aug 9 19:26:57 2002 -0400 New(er) trig routines commit ba6e2f6487663745c402856288f95441c6191fe8 Author: Matteo Frigo Date: Fri Aug 9 19:25:44 2002 -0400 Oops commit 267f53395f5e34f83a0664c9405e4d7b17583695 Author: Matteo Frigo Date: Fri Aug 9 18:49:04 2002 -0400 New file commit cc25b36b4369f7fd773b614e416185078bc3e20c Author: Matteo Frigo Date: Fri Aug 9 13:04:00 2002 -0400 Commented about likely gcc bug commit 745572695256ffc140f9b3bd828b561f56bea1a5 Author: Matteo Frigo Date: Fri Aug 9 13:01:49 2002 -0400 Improved accuracy of twiddle factors commit b90ec91c045668caabc583c27da9400331fc34cc Author: Matteo Frigo Date: Thu Aug 8 06:36:23 2002 -0400 Wrong comment commit 01653dbd957c931c5e562c6cdf727c26a4570680 Author: Matteo Frigo Date: Wed Aug 7 17:14:09 2002 -0400 Experimental 3dnow port using gcc, to compare it with Stefan's stuff. commit 9716316af3a8a84ac9888e8b184fad1f8b34279d Author: Matteo Frigo Date: Wed Aug 7 12:58:10 2002 -0400 End of AREF experiment commit 03365b937b905ad6dd6dad3ec0044f010f2cec51 Author: Matteo Frigo Date: Wed Aug 7 07:47:19 2002 -0400 Oops commit 00d1519ee07579c41da9738b4bd0d9e130c252df Author: Matteo Frigo Date: Wed Aug 7 07:46:38 2002 -0400 Pathetic attempt to reduce size of configure script commit 882c809b6257b73377a20a807a20a61f5cc5a655 Author: Matteo Frigo Date: Tue Aug 6 20:38:11 2002 -0400 Changed array syntax for experiments. commit 06bf9f0b7d08eb0a66a07b4b517fede0514a4a2c Author: Matteo Frigo Date: Tue Aug 6 19:58:20 2002 -0400 Fix warning commit dd2b973d27111516233a46e5d44734f2d1cea503 Author: Matteo Frigo Date: Tue Aug 6 13:35:28 2002 -0400 Move nonportable stuff in one place. commit 3a3a36d48074544b746b464bd194f93a371615b9 Author: Matteo Frigo Date: Tue Aug 6 10:32:53 2002 -0400 Economy of thought: I didn't like having two algorithms for removing solutions, both correct. At least now we have the same algorithm copied twice. commit e0cf8fd96853061b2160a99ed871b621a69bacbe Author: Matteo Frigo Date: Tue Aug 6 09:12:21 2002 -0400 Added things to do commit f96ded332986cff7099c0dd6bf2cff07d3e59217 Author: Steven G. Johnson Date: Mon Aug 5 19:54:31 2002 -0400 improved interaction of planner with patience flags commit f37ad7a0a0a7009a6c29c02ff53b06440f12e846 Author: Steven G. Johnson Date: Mon Aug 5 14:17:58 2002 -0400 set up for real-even/odd DFTs, where n is not the size of the data commit 1a2ea854fa6156b907c817752dc47a1c07ef5c2e Author: Steven G. Johnson Date: Sun Aug 4 23:57:51 2002 -0400 DESTROY_INPUT flag commit 18483232ce3afae0412e565222de6c48891700d7 Author: Steven G. Johnson Date: Sun Aug 4 22:50:19 2002 -0400 CLASSIC -> IMPATIENT commit 0fee1c8d39ed87aaab3387028cc3ff4422261a41 Author: Matteo Frigo Date: Sun Aug 4 19:05:43 2002 -0400 Require make maintainer-clean to remove the generator, as opposed to make clean. In this way we can type make clean without regenerating all codelets. commit b633708685610bf42bb69bbe71f31f0fd849aff5 Author: Steven G. Johnson Date: Sun Aug 4 17:34:04 2002 -0400 ESTIMATE plans are not blessed commit 17f106f814fd30121f7fcc2de65cc78f77a6448d Author: Steven G. Johnson Date: Sun Aug 4 17:24:37 2002 -0400 use flags in wisdom commit 342928973eaf98429367ce537b088761c391505c Author: Steven G. Johnson Date: Sun Aug 4 17:03:45 2002 -0400 score now takes plnr, not flags, as arg commit 5ef96008dcfb0e7428716122ea8ea56d0637898a Author: Steven G. Johnson Date: Sun Aug 4 16:37:46 2002 -0400 align initial stack in alignment check, which should now pass for gcc 3.1.1 commit ce14480bda337274a988627272fbe696bcaf5589 Author: Matteo Frigo Date: Sat Aug 3 20:04:57 2002 -0400 Detect ultrasparc (sort of) commit 946e964b908a9fcd9b98345a5f525049b8143cce Author: Steven G. Johnson Date: Sat Aug 3 19:38:17 2002 -0400 added solvtab_rdft_r2r placeholder commit db8c63ea924d244e0c207d514dd425bfab39f2b6 Author: Matteo Frigo Date: Sat Aug 3 19:34:49 2002 -0400 Damn solaris commit 6f4f2a31d28db1040f796b703d9b6c9fd7b4052d Author: Steven G. Johnson Date: Sat Aug 3 17:55:44 2002 -0400 use E extended precision in solvers commit eb1a98695f9827716943ddc0ca00475c2d61d9c2 Author: Steven G. Johnson Date: Sat Aug 3 17:53:29 2002 -0400 an alternative notation for D{C,S}T: DXTio, where i/o are {0,1} according to whether the input/output are shifted, respectively. Alternatively, io is the binary representation of the usual DXT-{I,II,III,IV} nomenclature, minus 1. commit 24b13985e810f08cbef3c5dac739433c5ac0161a Author: Steven G. Johnson Date: Sat Aug 3 17:49:11 2002 -0400 use E extended precision in solvers commit 46b2fc024b187b4356bf6a7977d508a4c4ba22c1 Author: Matteo Frigo Date: Sat Aug 3 15:39:49 2002 -0400 More portability fixes, compiler bugs workarounds, etc. commit ca88f96aed7b0399f4d2199342c5287639e51d3b Author: Matteo Frigo Date: Sat Aug 3 15:09:56 2002 -0400 More portability work commit 3cfd742c2225f91d295d75af9e6ddc46cd4c39f4 Author: Matteo Frigo Date: Sat Aug 3 14:33:40 2002 -0400 Improved portability, removed gnu make dependencies commit ac8aa3edbc9864af3b3e3e8d753cc2388b80732c Author: Matteo Frigo Date: Sat Aug 3 13:48:53 2002 -0400 Remember to thank XXX commit 807dc0e147fedfa044a4ae2a03dbff426e155136 Author: Matteo Frigo Date: Fri Aug 2 17:38:18 2002 -0400 Multiplication on altivec requires FMA with -0.0 to be IEEE754 compliant. commit dfa0ebdb72edd084c82b682b62fffdbd8f9a7611 Author: Matteo Frigo Date: Fri Aug 2 15:26:37 2002 -0400 Allow for extended precision in codelets commit 2eee7899ea3308e919dbeafffeee423dd0c810b5 Author: Matteo Frigo Date: Fri Aug 2 08:52:04 2002 -0400 Shortened names commit 239f0f6f2197b4761abad5f8ac2f1da6736a5ccd Author: Steven G. Johnson Date: Fri Aug 2 03:49:09 2002 -0400 added infrastructure for future r2r transforms commit 4f64527883bd151d5f597abec9870dc9e6d0c8b7 Author: Matteo Frigo Date: Thu Aug 1 21:29:14 2002 -0400 Version info commit 1f6a7039b9fe3a439d6aa9fa83d179fb864ab920 Author: Matteo Frigo Date: Thu Aug 1 21:06:22 2002 -0400 Listened to one customer and added radix-12. Added radix-15 for consistency (whatever that is) commit ece6187a35d44322c45b0fc946187615d8d3bebd Author: Steven G. Johnson Date: Thu Aug 1 19:50:53 2002 -0400 whoops again, fixed the wrong line commit 53c48f4c8eb4f39a1bcea9b47a2cf78c669e2dd2 Author: Steven G. Johnson Date: Thu Aug 1 19:50:16 2002 -0400 whoops commit afb281f39223c26fe968873928fd8ca0c69c1fe7 Author: Steven G. Johnson Date: Thu Aug 1 16:01:15 2002 -0400 use new AC_INIT and add VERSION to wisdom commit 1d4b7a029734d0948b44713fb94429ffd4ce40d4 Author: Steven G. Johnson Date: Thu Aug 1 14:56:45 2002 -0400 mygetR -> getR commit 010ffe455949d901be083a52aeb485e933d4c252 Author: Steven G. Johnson Date: Thu Aug 1 14:56:02 2002 -0400 scanner cleanups: just return 0/1, simplify integer reads commit 052184d84276b884548c95a76e89d5f2ccd124d2 Author: Matteo Frigo Date: Thu Aug 1 08:04:01 2002 -0400 Reverted back to casting pointer to ulong commit c61b1e4aa77a06a1565d2f816bc2b6a22c82f6d8 Author: Matteo Frigo Date: Thu Aug 1 08:03:46 2002 -0400 Cast to unsigned long, not long commit bc2a8794eec9dbdd2eaa2d10070974ab1cdcc3bf Author: Steven G. Johnson Date: Thu Aug 1 03:14:50 2002 -0400 additional comment commit 72bc55e7f202b4d772bc8a50263870f1434becb0 Author: Steven G. Johnson Date: Thu Aug 1 03:12:37 2002 -0400 added comment commit 980a9e749d1361de03ea2256209ee0216942a6aa Author: Steven G. Johnson Date: Thu Aug 1 03:03:18 2002 -0400 added wisdom import commit b9bcf9486c742271f7c9fa64f41791666cf16cb6 Author: Steven G. Johnson Date: Wed Jul 31 23:12:05 2002 -0400 whoops commit 183a8a7311c571981db4ef087608b599de96b062 Author: Steven G. Johnson Date: Wed Jul 31 22:06:46 2002 -0400 use %u for alignment_of commit f9cc3f2e326569214e7ac246b5dacabe10f9f4aa Author: Steven G. Johnson Date: Wed Jul 31 21:47:15 2002 -0400 ptrdiff_t form commit 26346129bd45ff91529e18e5770220025ae5cc8c Author: Matteo Frigo Date: Wed Jul 31 21:33:35 2002 -0400 Cast to avoid warning from C++ compiler commit dc8c0c64365fd7f14a579a730f50107f4c01839e Author: Matteo Frigo Date: Wed Jul 31 18:57:04 2002 -0400 Make problem equality depend on alignments. commit 185babf3691983eb1fc109f4d2864ea80070319f Author: Matteo Frigo Date: Wed Jul 31 15:45:31 2002 -0400 Shorter names commit d0a23f2a7ca0ef90c893e1bc9fe38562bf4b97c4 Author: Matteo Frigo Date: Wed Jul 31 14:38:00 2002 -0400 Oops commit db553c5b6c9be77013e5e6862aecb074abd05daf Author: Matteo Frigo Date: Wed Jul 31 14:37:19 2002 -0400 Fix warning commit 20ce4a31106f745c8765cafa87b94df7b152ba01 Author: Matteo Frigo Date: Wed Jul 31 07:52:53 2002 -0400 Removed silly abstraction barrier. Also, cons() terminology was no longer appropriate. commit 6e519e71ee2bff45a45acc9860e6688b5a2ac0ca Author: Steven G. Johnson Date: Tue Jul 30 22:35:24 2002 -0400 removed register_registrar and solvtab_exec_reverse hacks commit 3bb2201fd6c0b2a0e2e6e1cb07849fc640c23fe4 Author: Steven G. Johnson Date: Tue Jul 30 19:54:41 2002 -0400 register_registrar doesn't search whole solver list (maybe we should change register_solver instead) commit acf987d04a520c14c0d452f2036338e4d89e91a0 Author: Steven G. Johnson Date: Tue Jul 30 19:36:37 2002 -0400 credit commit 1ae9a399e262ce07b3733a11fcb23ea08541bd45 Author: Steven G. Johnson Date: Tue Jul 30 19:34:16 2002 -0400 added HP/UX ia64 support, courtesy of Teresa L. Johnson commit 76ce2ea38a0a18376e316ee3348e8ffd069aebe1 Author: Matteo Frigo Date: Tue Jul 30 13:28:33 2002 -0400 Fixed alignment checks commit 7356d1bc11f552e41d0de8df8fc9e0ef4f83b1a0 Author: Steven G. Johnson Date: Tue Jul 30 01:20:11 2002 -0400 ugh, wisdom id fixes in exprt_conf commit 110cfd3d5abb89da042f3953d99179c04fcb6839 Author: Steven G. Johnson Date: Tue Jul 30 00:41:15 2002 -0400 exprt_registrars -> exprt_conf, added missing SOLVTAB_END commit 331b32dd8322273182a47c852416afaac4f6007b Author: Steven G. Johnson Date: Tue Jul 30 00:36:26 2002 -0400 exprt_registrars should output self-contained configuration commit ddd63d9b49d333a58f352f4f561a6ff1fbe17a5a Author: Steven G. Johnson Date: Mon Jul 29 23:52:07 2002 -0400 added exprt_registrars commit 691ba278639460f94cfd6ff45e14e10007d4f62c Author: Steven G. Johnson Date: Mon Jul 29 23:42:27 2002 -0400 whoops commit ebcd431d564b1f5f86f3bb274ed123971d449415 Author: Matteo Frigo Date: Mon Jul 29 21:24:51 2002 -0400 More stringent requirements on strides for SIMD codelets commit 4fa11627e55b15059ce9b91dce1383c29040f2bb Author: Steven G. Johnson Date: Mon Jul 29 21:05:49 2002 -0400 remove warning commit 30f4b2f2ca2fd97ae591c98d812ec38546a1cd8b Author: Steven G. Johnson Date: Mon Jul 29 20:51:19 2002 -0400 use %td for ptrdiff_t and %T for tensors commit 33c7a10abb7b7b1e3250654481f536b6e33de824 Author: Matteo Frigo Date: Mon Jul 29 16:17:11 2002 -0400 Fix for SIMD commit 1688dda0ec01678ac3d2e16af154c4898a56b568 Author: Matteo Frigo Date: Mon Jul 29 15:40:53 2002 -0400 Missing lfftw_mkstride and lfftw_stride_destroy commit 2e84b7c68c4270593cc2a1c152520b6f55e3c0c9 Author: Matteo Frigo Date: Mon Jul 29 14:34:46 2002 -0400 Implement LDA/STA commit 385b21d8dc7b1c465acbb83b5414caefa80960d2 Author: Matteo Frigo Date: Mon Jul 29 14:19:21 2002 -0400 More SIMD work commit 00e43e5facae3c33e901ca12dd57cf5905c8508d Author: Matteo Frigo Date: Mon Jul 29 13:16:12 2002 -0400 Cleanup commit 6fb8177180cf59f95bc37163f4e8d4c68b1657e8 Author: Steven G. Johnson Date: Mon Jul 29 13:02:38 2002 -0400 update commit 8354486a52f87afe52440aa3316acec7c768ac75 Author: Matteo Frigo Date: Mon Jul 29 12:45:33 2002 -0400 Also check strides in SIMD codelets commit 7b48f56b4e18bd9799c46214829e7b15531e5244 Author: Matteo Frigo Date: Mon Jul 29 11:26:08 2002 -0400 Minor changes, mostly for consistency with the big-endian processor commit ec8f6e4c58d50603587e0bba533ec2086e6174b8 Author: Steven G. Johnson Date: Mon Jul 29 00:50:06 2002 -0400 added comment commit a7cc792884a9acb1d81a346cdab1d9b07e9b2bdf Author: Steven G. Johnson Date: Sun Jul 28 21:19:35 2002 -0400 added code for icc's _mm_malloc (memalign replacement) commit d1398d4a205bae587e99b40049dd6a301c1f58f9 Author: Steven G. Johnson Date: Sun Jul 28 17:33:07 2002 -0400 slight fixes commit 5f21f0a04a242174ff85c63925c88e15e6ff101e Author: Steven G. Johnson Date: Sun Jul 28 16:28:43 2002 -0400 whoops commit d5256b19914cddf9b241ebce04f10042f4837e9b Author: Matteo Frigo Date: Sun Jul 28 16:13:19 2002 -0400 Use vec_xor to change sign commit ec0a29c8d03cbed27c09a96fcb3f022bfc9f647f Author: Steven G. Johnson Date: Sun Jul 28 16:10:59 2002 -0400 added rdft2 commit 516c9c1117a0811dba416bfa1ba20a5c93e91532 Author: Matteo Frigo Date: Sun Jul 28 15:45:54 2002 -0400 Optimized commit 8619a2039d6723004a1fef760203e5d6f33f9469 Author: Matteo Frigo Date: Sun Jul 28 15:11:14 2002 -0400 Changed ALIGNMENT commit 37c7c1fd79835b212e94e565fb3abe0352243919 Author: Matteo Frigo Date: Sun Jul 28 15:09:40 2002 -0400 alignment := 8 commit 27b891f615494d0f1996ed1acf0665eb386704e6 Author: Matteo Frigo Date: Sun Jul 28 14:57:22 2002 -0400 Avoid warning commit fd53f4d5bdfc8c8daf0126fab34270b09cf49aa2 Author: Matteo Frigo Date: Sun Jul 28 14:53:03 2002 -0400 Oops commit 8b749b4406276bb4b4d6e3b4c78486d0fea38fff Author: Matteo Frigo Date: Sun Jul 28 14:50:09 2002 -0400 New altivec experiment commit 87bd001083f039c6728a3a19d03b7e14eac11666 Author: Matteo Frigo Date: Sun Jul 28 13:48:20 2002 -0400 Nothing commit 3a5876fd4582a075560988801d7c958b0ca75a74 Author: Matteo Frigo Date: Sun Jul 28 13:47:50 2002 -0400 Oops commit 551ad6c0e199fcd5fce5defd470ce7d975dcacb4 Author: Matteo Frigo Date: Sun Jul 28 13:44:28 2002 -0400 Nothing commit a13f42aa3c37a3065a08a59220529d5292683ac9 Author: Matteo Frigo Date: Sun Jul 28 10:38:10 2002 -0400 Constants are now in separate file. commit 94226e68396c790ce6bfbbf8db0c299fed32e2f9 Author: Matteo Frigo Date: Sun Jul 28 07:58:37 2002 -0400 More precise comment commit 4009a4d5579eb5520346c956632ef0c2df5273d2 Author: Matteo Frigo Date: Sun Jul 28 07:56:40 2002 -0400 gcc-3.1 bug workaround commit 092830f99bf3fd15390980b4e441d4c7d1a9826c Author: Steven G. Johnson Date: Sun Jul 28 01:39:54 2002 -0400 slight optimization, and exported zerotens functions commit e3797dbb5984f5f1272b452c7005c775badb6fb2 Author: Steven G. Johnson Date: Sun Jul 28 00:54:59 2002 -0400 should be a plan_dft, not a plan_rdft commit ab69981af2f5c80981e7f1432560cbdaae08770c Author: Matteo Frigo Date: Sat Jul 27 21:36:46 2002 -0400 Optimizations. Make it work with vanilla non-Apple gcc. commit 9a7ad02a4bfebfa91a4afe01756023a3a74f5d8b Author: Steven G. Johnson Date: Sat Jul 27 19:20:09 2002 -0400 whoops commit 4aac8a4d98395b964b16b1251d8d52410fc232f8 Author: Steven G. Johnson Date: Sat Jul 27 18:54:01 2002 -0400 added hc2r (dif) commit abe907208a2a3e7ff558b3f12bb0b254768d670a Author: Steven G. Johnson Date: Sat Jul 27 18:31:43 2002 -0400 add hc2r (dif) case commit b933474c3373bdca65dd9cce3b16272c2b197ee8 Author: Matteo Frigo Date: Sat Jul 27 15:09:40 2002 -0400 Altivec port commit 0884acf4e8fc2cd9ec4144877e5a0879bbf779e6 Author: Matteo Frigo Date: Sat Jul 27 15:06:21 2002 -0400 Fixed signed/unsigned bug. commit 11508c3160c5d3a404a58eb143139d9088a213e5 Author: Matteo Frigo Date: Thu Jul 25 20:11:26 2002 -0400 Make rank0 unapplicable to in-place problems. commit 81a49b1e405be525a9ee5476ddfa16e8c70ef702 Author: Steven G. Johnson Date: Thu Jul 25 17:10:52 2002 -0400 only works for r odd commit 2b54747fb0e87bbd03b3c7b04ed1cb752a470796 Author: Matteo Frigo Date: Thu Jul 25 15:30:06 2002 -0400 Reinserted much better timing-avoidance heuristic commit 171716115f0f318397186964ecc341ac9268fd84 Author: Matteo Frigo Date: Thu Jul 25 15:21:13 2002 -0400 Score is now a property of the plan, not of the solver. Revised representation of closures. commit 67c69e319a7ca8ac6c81a45a1d0f6dde9efc2e12 Author: Matteo Frigo Date: Thu Jul 25 06:36:51 2002 -0400 Cosmetic changes. Added hc2r_128.c commit 0a22b8dd9629f62d1a682af581c17d6dc71e244a Author: Steven G. Johnson Date: Thu Jul 25 01:37:53 2002 -0400 added hc2r commit 22bad3aea85c62120134db4652c6ac990c8607e2 Author: Steven G. Johnson Date: Thu Jul 25 00:51:45 2002 -0400 added hc2hc-difbuf commit aac8e9d03008ccbe1c244717e404e283c03eabe1 Author: Steven G. Johnson Date: Thu Jul 25 00:25:06 2002 -0400 added rdft-dif commit 39d632acade375e06e60dc11cd0b693ed29bbf07 Author: Steven G. Johnson Date: Thu Jul 25 00:22:36 2002 -0400 whoops, hc2r must be conjugated to have right sign commit ebc9e7b4083f1d545cc47032a7bffbcc5d5a26ce Author: Steven G. Johnson Date: Wed Jul 24 23:27:45 2002 -0400 slight change commit 6c5a0b11d3a86a418e02108a90472ff19d97bae0 Author: Steven G. Johnson Date: Wed Jul 24 23:24:24 2002 -0400 whoops commit 28adebe469b82ee53e436f33389b459d8707a603 Author: Steven G. Johnson Date: Wed Jul 24 22:46:39 2002 -0400 support hc2r codelets commit af7b3ec85871349e26698fb5edf95c6a1e96bbbf Author: Steven G. Johnson Date: Wed Jul 24 22:01:53 2002 -0400 use vector plan for r/i instead of two separate plans commit b31e3e7d86ef1ab3aa58145768cc801979ba5cd6 Author: Steven G. Johnson Date: Wed Jul 24 20:36:34 2002 -0400 hack to allow rader/generic to work in-place for small prime sizes, instead of always using buffered commit cddf15b3b7c1d3baec98982550f18344c3361216 Author: Steven G. Johnson Date: Wed Jul 24 18:04:41 2002 -0400 added rdft-generic commit 76637f738e056d7e4fcba907ffd4ab52db457fed Author: Steven G. Johnson Date: Wed Jul 24 17:27:34 2002 -0400 fixed add count commit 7c1f6a8f3b35a5034daacc521a10c06424144047 Author: Steven G. Johnson Date: Wed Jul 24 14:52:26 2002 -0400 again commit ab910c9e4a7fc66e0a19e1b9557669e896ac465b Author: Steven G. Johnson Date: Wed Jul 24 14:51:58 2002 -0400 slight fix commit 2169c91de93a2c096765218e2b25e32e6f2d47f0 Author: Steven G. Johnson Date: Wed Jul 24 14:51:07 2002 -0400 fixed comment commit b6ed79694396f04555b0009027b94355c81a4019 Author: Steven G. Johnson Date: Wed Jul 24 14:41:24 2002 -0400 whoops commit 10fabba80f177e1ee4bfca04ac09836c798998ef Author: Steven G. Johnson Date: Wed Jul 24 14:38:15 2002 -0400 added rader-hc2hc commit 3015fea221f119cf88e68c12087c0ca8fbb508a9 Author: Steven G. Johnson Date: Wed Jul 24 00:07:59 2002 -0400 whoops, initialize W commit d48486c4715a0db6bb2653a34d868f5f52732f66 Author: Steven G. Johnson Date: Tue Jul 23 23:03:09 2002 -0400 strides should not be unsigned commit 7d6e7cacd21c97ef1622d681de2543e71ac2171d Author: Steven G. Johnson Date: Tue Jul 23 23:02:08 2002 -0400 more stride sign fixes commit b967fadc107addb8cec4effc1f0e7ae7d6ce1f86 Author: Steven G. Johnson Date: Tue Jul 23 23:01:04 2002 -0400 strides should not be unsigned! commit 0ad85517c669d39fcf0ac6f77e73ed8c2fa80e89 Author: Steven G. Johnson Date: Tue Jul 23 14:55:25 2002 -0400 added comment commit 5d278e1ac3640bc39cd6b7e19aaa5563cd319de4 Author: Steven G. Johnson Date: Tue Jul 23 14:52:04 2002 -0400 another fix to op count commit 9260aed8161a66eb5de14e68c932d11bc113cd56 Author: Steven G. Johnson Date: Tue Jul 23 14:51:01 2002 -0400 whoops commit 3f42b7510d2c0f2b1e7bc34342041f8123667897 Author: Steven G. Johnson Date: Tue Jul 23 14:49:43 2002 -0400 slight fix to op counts commit 1288dec288612070c531c98067255cf3de3d90b1 Author: Steven G. Johnson Date: Tue Jul 23 14:09:19 2002 -0400 added dft-r2hc commit ad4bf834d8b55b38d2766779e5d00c4f61e30dbe Author: Steven G. Johnson Date: Tue Jul 23 02:50:12 2002 -0400 better comment and var. name commit f1ab8ef1b9cf77432f6bb627a5c3ec2f586ebcd9 Author: Steven G. Johnson Date: Tue Jul 23 02:39:11 2002 -0400 fixed tests for hc2r, and added r2hc-hc2r commit d3b91945fd199f6bb99711479972b7074c00b352 Author: Steven G. Johnson Date: Tue Jul 23 00:45:23 2002 -0400 added rader-dht commit 57036068d38970156c0bcf5d4edd72cdb20a09fd Author: Matteo Frigo Date: Mon Jul 22 21:05:12 2002 -0400 Added r2hc_128, what the hell. commit d82c1c99be202e2cc55851a4bd406b4682cb0b4a Author: Matteo Frigo Date: Mon Jul 22 20:48:59 2002 -0400 Added codelets that compute twiddle factors commit f98ad798168562c0da5714110eb0c37972178728 Author: Steven G. Johnson Date: Mon Jul 22 19:57:16 2002 -0400 added rdft-buffered commit 50b0158abe60a9e62698baf54e31623bf29a34f9 Author: Steven G. Johnson Date: Mon Jul 22 19:43:39 2002 -0400 added hc2hc-ditbuf commit 4b7abfd7514cb4d98a0c87746c25fcafe6d263b3 Author: Steven G. Johnson Date: Mon Jul 22 14:29:04 2002 -0400 use STACK_MALLOC (alloca), since generic radix is always small commit d083d389c40a363c4b90a6ca2efd202c52b81713 Author: Steven G. Johnson Date: Mon Jul 22 14:22:43 2002 -0400 small cleanup commit 851d792b2de11df3620f32093e02632f78aeef6e Author: Matteo Frigo Date: Mon Jul 22 07:42:13 2002 -0400 What the hell was I thinking? commit 7237f72026e6aad4325427a52b0fb683ec4b2e0d Author: Matteo Frigo Date: Mon Jul 22 07:37:12 2002 -0400 Reduced code size by using table instead of switch statement. commit f253821d2c79215c87e18cf134e218e02d0235ed Author: Matteo Frigo Date: Mon Jul 22 07:27:06 2002 -0400 Changed hash function to avoid collisions with DFT. commit 602ef947b9122139e2b55fca3e007ca6bcda4bbf Author: Steven G. Johnson Date: Mon Jul 22 01:37:06 2002 -0400 added missing file, whoops commit 6b3144d456eb3c0caee53880e7fe60ddbd2c48d5 Author: Steven G. Johnson Date: Mon Jul 22 01:24:17 2002 -0400 whoops, generate enough twiddles for odd m commit 4738a6cbbc5206c3fdc7b0bf7cdc481609439497 Author: Steven G. Johnson Date: Mon Jul 22 01:10:21 2002 -0400 don't try to verify R2HCII or HC2RIII plans commit ec9e9517ca4ac29008a9b1b8f79f4543ef4ae90a Author: Steven G. Johnson Date: Mon Jul 22 01:05:00 2002 -0400 recursive case now works, I think commit 7ebf4c56ae4cc7861840cb8ee5d8a482c5e3f64a Author: Steven G. Johnson Date: Mon Jul 22 01:04:40 2002 -0400 add extra impulse test for debugging commit 7dacfd5778747c8ae3b803ddf37d7921eeab713f Author: Steven G. Johnson Date: Mon Jul 22 01:02:38 2002 -0400 whoops, multiply ios offset by stride (and rename to ioffset) commit ca3c5bf3c6de8946f1caf40e779487110e5b59ce Author: Steven G. Johnson Date: Mon Jul 22 00:22:02 2002 -0400 whoops commit e40381e0407f8570c076968fb7c7138ffebe9ae2 Author: Steven G. Johnson Date: Sun Jul 21 23:58:14 2002 -0400 whoops commit 030d0f7f52cbc000070d885b815768bfadb86649 Author: Steven G. Johnson Date: Sun Jul 21 23:43:03 2002 -0400 added hc2hc-dit commit c1c28b632b9cc24c542610dbdb3bf424eb740810 Author: Steven G. Johnson Date: Sun Jul 21 23:15:12 2002 -0400 twiddles can be shared with smaller m's commit cbb0b11b1a8aa023f1d81dba688278012451de8e Author: Steven G. Johnson Date: Sun Jul 21 22:34:28 2002 -0400 preparing for recursive rdft... commit 8f48e0e3caf86690c7328cd128cc981364c9026f Author: Steven G. Johnson Date: Sun Jul 21 19:31:22 2002 -0400 slight fix, to match libbench/verify.c commit d9aec187c49dbc272df30d040d4acfc160220b07 Author: Steven G. Johnson Date: Sun Jul 21 18:43:12 2002 -0400 r2hcII has imag parts offset by n-1, not n. We can also allocate fewer strides. commit 00e3acce93c910450482c37155200244adfc51b4 Author: Steven G. Johnson Date: Sun Jul 21 18:27:09 2002 -0400 delete unused var commit 469254570eda6c6851c8c76ac2ce631c7e160d40 Author: Steven G. Johnson Date: Sun Jul 21 02:06:53 2002 -0400 added some rdft solvers commit c267ad079a4ef7cb7a9fdbe4556c89121137be02 Author: Steven G. Johnson Date: Sun Jul 21 01:52:54 2002 -0400 pass identifier in FFTW() through another macro so that the mangled name can itself be a preprocessor symbol commit cf660c4cf10b80d7ec37cd99825c9663738d77e7 Author: Steven G. Johnson Date: Sun Jul 21 01:05:21 2002 -0400 fix in comment commit 14081a9d216ccc757b9ce46631d956f5135628ea Author: Steven G. Johnson Date: Sun Jul 21 00:47:03 2002 -0400 bench tests rdft plans commit 61ed41f792df937cc80b9fa0c643871ab7449968 Author: Steven G. Johnson Date: Sun Jul 21 00:22:14 2002 -0400 make rdft.h and dft.h compatible commit d314a5c84e70803b32075884ee96c0099c695d9a Author: Steven G. Johnson Date: Sun Jul 21 00:12:19 2002 -0400 first-draft rdft verify commit 01403979be858145b4f1f61f03c9f1f98c59587d Author: Steven G. Johnson Date: Sat Jul 20 22:09:15 2002 -0400 got rid of annoying warnings commit 710e4e4687092d0d823f7fe442c0bc981d99a598 Author: Steven G. Johnson Date: Sat Jul 20 22:07:37 2002 -0400 added stub codelet registration for linking purposes commit 9b9775415f67f53910d95e1ac963f1bed389ff9b Author: Steven G. Johnson Date: Sat Jul 20 21:46:03 2002 -0400 basic rdft stuff commit 9c7a553bedb1f7f2fce816ae284d4867ffc0924d Author: Steven G. Johnson Date: Sat Jul 20 21:06:50 2002 -0400 rdft codelets now compile commit fb7686cdfd1674f03c35ed523fcc2d11db157ecb Author: Matteo Frigo Date: Sat Jul 20 18:40:31 2002 -0400 Oops, was generating rdfts instead of hdfts commit f82dcb63a673b994a4677ed9f8d065766c79c31c Author: Matteo Frigo Date: Sat Jul 20 18:25:47 2002 -0400 Added hc2r codelets commit d8127083d80d0f0b9de30e6e3c9ae1b90f92a90d Author: Matteo Frigo Date: Sat Jul 20 17:54:39 2002 -0400 return W in hc2hc codelets commit 354e28470103a92db21d621263a687a6bf437595 Author: Matteo Frigo Date: Sat Jul 20 17:51:06 2002 -0400 Some work on rdft codelets commit 8a7b5a3242b8bd823c8d70e1b04e9492d6d65d43 Author: Matteo Frigo Date: Tue Jul 16 13:55:50 2002 -0400 fix const commit 6a3576889b8683e9ee15d2f95fb76f6fef645667 Author: Matteo Frigo Date: Tue Jul 16 07:00:10 2002 -0400 Separate CFLAGS in codelets. Fix const in certain places. commit 7870f6dff402e655def77265bc4ac0225608f677 Author: Steven G. Johnson Date: Mon Jul 15 21:10:42 2002 -0400 note buffering problem commit 0bd6af885007a6f0561577c521d4999c903f27df Author: Matteo Frigo Date: Mon Jul 15 20:27:51 2002 -0400 Removed unpredictable branch from inner loop commit 8a40f059239add905fa4c0abd6c20a40644559fa Author: Steven G. Johnson Date: Mon Jul 15 19:35:04 2002 -0400 update commit 45bb25aa64ce46c8821c9717770a28a5ab60e492 Author: Steven G. Johnson Date: Mon Jul 15 19:31:39 2002 -0400 optimization commit 526958106e6a43bfc1d4a7cab335fc3df41a7d9f Author: Steven G. Johnson Date: Mon Jul 15 19:28:30 2002 -0400 added generic dit commit aebc10cb69074f33b3370de5aff7bc20b684800b Author: Steven G. Johnson Date: Mon Jul 15 17:03:53 2002 -0400 whoops, mksolver should be static commit e2b6303fa6575e6796c2834f222b77d221e1a77e Author: Matteo Frigo Date: Mon Jul 15 16:46:36 2002 -0400 First implementation of gen_hc2hc, probably still buggy. commit 0105f03531806f86cc1c0e89c18b91947b15cb10 Author: Steven G. Johnson Date: Mon Jul 15 16:40:23 2002 -0400 don't count loading of twiddle factors in ops.other, since it isn't counted for the codelets commit 47f3220441f5da7ee844e0abd36f41f32b4bc17e Author: Steven G. Johnson Date: Mon Jul 15 15:13:19 2002 -0400 plan_destroy puts plan to sleep before deallocating it, to eliminate duplicate free calls in solvers commit 90347b282680ec2b611ededef7ab7272beb2857a Author: Steven G. Johnson Date: Mon Jul 15 15:07:41 2002 -0400 fftw2-like vector recursion flag commit df45d5d1588019d57e80aee326c92e5ffb49715f Author: Matteo Frigo Date: Sun Jul 14 21:01:44 2002 -0400 More jokes commit 5efd22c7d5499d7bad84216e526ec11551fb81f0 Author: Matteo Frigo Date: Sun Jul 14 20:36:01 2002 -0400 Bless plan for testing purposes commit dd45761d063a5473473f44d5800a55b35794c8a6 Author: Matteo Frigo Date: Sun Jul 14 20:35:49 2002 -0400 Canonical linked-list deletion (hope it is right) commit 04cbcbfe2eb171da6ee678d000f1cf7aa2435f5d Author: Steven G. Johnson Date: Sun Jul 14 18:26:19 2002 -0400 use estimating planner for cld_omega commit c2e125a60dc8101c25c1f08debd9a4b1661b1658 Author: Steven G. Johnson Date: Sun Jul 14 18:10:56 2002 -0400 better internal naming commit fac5147b9b14fe2997cde8bbd5a39c956f577eaf Author: Steven G. Johnson Date: Sun Jul 14 18:10:01 2002 -0400 printing should really be fixed now, grrr commit 8dbd07648153ea12bd52c12aad39b58adc479140 Author: Steven G. Johnson Date: Sun Jul 14 17:57:12 2002 -0400 print all distinct child plans commit af0c968546d0c39197e3c7925e21bf1897f1b5ab Author: Steven G. Johnson Date: Sun Jul 14 17:49:21 2002 -0400 whoops commit af601a5405861e68cedd4314f70b677b6c36e640 Author: Steven G. Johnson Date: Sun Jul 14 17:45:54 2002 -0400 whoops, destroy should delete twiddle/omega from list commit a20712e3a4b5d2364f092fd222b540cbc8c2df44 Author: Steven G. Johnson Date: Sun Jul 14 17:33:02 2002 -0400 whoops commit a43e6c2aeb20b20987891fa7461cc6a2898d1785 Author: Steven G. Johnson Date: Sun Jul 14 17:12:14 2002 -0400 added plan_bless and FORGET_ACCURSED commit 8da186b0e85df747bbd0a91db772c869e9b35e3c Author: Steven G. Johnson Date: Sun Jul 14 16:15:43 2002 -0400 further cleanup commit 255479f4ad3175722fe32fd4a2b7cefa858b3b35 Author: Steven G. Johnson Date: Sun Jul 14 16:14:15 2002 -0400 slight cleanup commit d5346f1dfc7154d9a4fbade8fba1dcce90c7bec5 Author: Steven G. Johnson Date: Sun Jul 14 16:09:17 2002 -0400 added traverse_plan via print (ugh) commit 1edcc5b2fb3cf8741aec7b32042453803a1eb145 Author: Steven G. Johnson Date: Sun Jul 14 15:08:29 2002 -0400 added TW_FULL, and additional n parameter for twiddles commit c300c4c9e119ee5e657fe52fa48ce8251321f8a2 Author: Steven G. Johnson Date: Sun Jul 14 15:03:51 2002 -0400 whoops commit 8eb08032b56dac1d0b4200c2a1e17e6a33674395 Author: Steven G. Johnson Date: Sun Jul 14 13:49:20 2002 -0400 save flags before invoking solver mkplan commit 68d1b66d54458eb685bee1a95bd4433421a68f58 Author: Matteo Frigo Date: Sun Jul 14 09:28:37 2002 -0400 [empty commit message] commit 8f335f455b54a35089073c690ecd93c7380c1b95 Author: Steven G. Johnson Date: Sat Jul 13 22:17:29 2002 -0400 added support for UNICOS _rtc() real-time-clock intrinsic function commit e0550777d2519623392bd1678c39e7491fd3d38c Author: Steven G. Johnson Date: Sat Jul 13 22:06:35 2002 -0400 fixed typo: HAVE_TIME_H should include time.h, not sys/time.h commit fcff09d063384ac24b87c16cfed1c246de45623f Author: Steven G. Johnson Date: Sat Jul 13 21:46:02 2002 -0400 support AIX read_real_time timer commit ca89737634be3d5de4851c1f3fbc19d900cf22b0 Author: Steven G. Johnson Date: Sat Jul 13 17:02:51 2002 -0400 use && instead of the (sigh) unportable -a commit 769cf9267df8b75c3e2849a171e995136bacd4af Author: Steven G. Johnson Date: Sat Jul 13 16:38:18 2002 -0400 use AC_HELP_STRING commit 6600ee1ae97f1919117e4c3877092249443c545b Author: Steven G. Johnson Date: Sat Jul 13 16:05:43 2002 -0400 support long-double precision commit d7aff35e1553f8735b56597fd524c5b52d8e475f Author: Steven G. Johnson Date: Sat Jul 13 15:48:10 2002 -0400 whoops whoops commit 9a20964a145ceef9018cf8bf0977be7ba63ecb6e Author: Steven G. Johnson Date: Sat Jul 13 15:47:39 2002 -0400 whoops commit d040c7ef353abc5accf76a9953a26feb2d11fc0c Author: Steven G. Johnson Date: Sat Jul 13 14:13:42 2002 -0400 buffered solver strides have been fixed commit 6bcbee663a0b8b8b23b70a180e1ca12ee1141724 Author: Steven G. Johnson Date: Sat Jul 13 13:48:13 2002 -0400 convention commit 4d3d49e4b447b49a45b803fea4ff4d23a31288a0 Author: Steven G. Johnson Date: Sat Jul 13 12:50:06 2002 -0400 share twiddle arrays in Rader commit 91dbf0b319de38c0b67df70aa4c39ccac0b523da Author: Steven G. Johnson Date: Sat Jul 13 12:48:10 2002 -0400 call done() after verify commit b5b07111cda5f2b5b1130829d05b698575f4a5f8 Author: Steven G. Johnson Date: Fri Jul 12 15:42:04 2002 -0400 output planner time with -v commit b71bd73584d1e960018fbda1b8f078fa4e2ea542 Author: Steven G. Johnson Date: Fri Jul 12 15:40:14 2002 -0400 support double outputs commit e808db8fbfe2b7d4afbabe558d5a757379c49dd8 Author: Steven G. Johnson Date: Fri Jul 12 15:09:19 2002 -0400 removed extraneous parens commit b1ca74610947a0007932fb0eb65c794868f15977 Author: Steven G. Johnson Date: Fri Jul 12 15:08:13 2002 -0400 increase maxbufsz to 64k; makes a big difference for large 2d transforms commit 92dfa732c944f37774e1b4b9b889ba64a7621ccb Author: Matteo Frigo Date: Fri Jul 12 05:59:26 2002 -0400 Fix commit fdae83d7830d6df98ac417066e0c5ea8bc254d35 Author: Steven G. Johnson Date: Fri Jul 12 01:22:38 2002 -0400 fix comment commit 8b316634377ad2f829c26d6d107005638c6ab8ba Author: Steven G. Johnson Date: Fri Jul 12 00:59:29 2002 -0400 fix in comment commit efb8ce2f3a2e518f02245f8eb12425a30bb420c0 Author: Steven G. Johnson Date: Fri Jul 12 00:13:13 2002 -0400 updated commit 21a94bd1783b4cde2728d54932cdf1ecf2485a21 Author: Steven G. Johnson Date: Thu Jul 11 23:39:27 2002 -0400 buffered malloc's buffers commit 2cec064ce9f3fd0ccd891651557a5739409c19c3 Author: Steven G. Johnson Date: Thu Jul 11 23:30:26 2002 -0400 share more code between apply and apply_dit in Rader commit afd5fe37e6c3060145530115b6c2f2d676ddfe37 Author: Matteo Frigo Date: Mon Jul 8 12:30:34 2002 -0400 Polished commit 71ae7be079984537f7770d1b70280b77ad23c722 Author: Matteo Frigo Date: Mon Jul 8 09:47:11 2002 -0400 [empty commit message] commit a5760afe5aed6838383937fad0a3243528ce15fc Author: Matteo Frigo Date: Mon Jul 8 09:42:08 2002 -0400 SIMD/FMA stuff commit ec76a60088a86df970b3cbf4005506ade4570040 Author: Matteo Frigo Date: Mon Jul 8 07:43:51 2002 -0400 Avoid code duplication commit ffce0587abc26960f1bffb08b99f61280176d25b Author: Matteo Frigo Date: Sun Jul 7 20:56:15 2002 -0400 Fixes for FMA+SIMD commit cd1278e203d5014ee55026d00eef0c5cd87091a7 Author: Matteo Frigo Date: Sun Jul 7 20:32:01 2002 -0400 Major changes in SIMD fftw commit 47b31e4f895a8385d29297182fd4ab3cbe756486 Author: Matteo Frigo Date: Fri Jul 5 17:32:09 2002 -0400 Use unpck instructions instead of shuffles commit 8390c4b680fa05c264d6308d70aeb8b69e97b44a Author: Matteo Frigo Date: Fri Jul 5 15:49:14 2002 -0400 Minor tweaks commit 9939d14df8ec43f0f3724eccce6907f723ae7bcd Author: Matteo Frigo Date: Fri Jul 5 15:02:54 2002 -0400 Use score planner commit db780c34509c8cc70385f63815249dbb982371ab Author: Matteo Frigo Date: Fri Jul 5 14:49:59 2002 -0400 Added verifier commit a4c35fbcefcca25a0e31431dcdabb0d44a2bfb98 Author: Matteo Frigo Date: Wed Jul 3 20:32:28 2002 -0400 More simd codelets commit 0b41b3e8c38d89cca050b1b0df6110056a55463e Author: Matteo Frigo Date: Tue Jul 2 16:18:09 2002 -0400 Oops commit 4aa14927597947c2f2c0c38064e92ce29850f3eb Author: Matteo Frigo Date: Tue Jul 2 16:13:24 2002 -0400 Fixed classic mode commit b32c4fa8b6fddb6a4af23a7d2794adb53733fc2d Author: Matteo Frigo Date: Tue Jul 2 15:38:36 2002 -0400 Use LDK for constants so that we can play games. commit 38505faa2d20e4d958d80dce05620dbf20420822 Author: Matteo Frigo Date: Tue Jul 2 13:15:58 2002 -0400 Improved support for fixed strides commit 2c99260bbd5e86361b09120817f07543384fc5e0 Author: Matteo Frigo Date: Tue Jul 2 10:30:58 2002 -0400 Changed accounting of flops commit ae3999cb3d0ec0d5140c9dead499de0cf4318e5e Author: Matteo Frigo Date: Tue Jul 2 08:51:38 2002 -0400 Wrong code in non-fma mode commit 55015bd78bfbcbffb833554b7df558efd1a826cc Author: Matteo Frigo Date: Mon Jul 1 23:17:06 2002 -0400 sse2 stuff commit 021b59968903662e9727f7833c19c613f1b192b7 Author: Matteo Frigo Date: Mon Jul 1 14:05:56 2002 -0400 Identify CPUs for special codelets commit f304f0151ac1ad333b9450a6d78c8cd8f8724d1a Author: Matteo Frigo Date: Mon Jul 1 09:26:42 2002 -0400 Change split problem syntax commit 48a37449fcbd51779bb3dde3f3b8c2d02bbc323d Author: Matteo Frigo Date: Mon Jul 1 09:11:39 2002 -0400 Removed -fma flag commit 38d63d20ab1bd900f5f89914ca7b7f90191d866f Author: Matteo Frigo Date: Sun Jun 30 20:08:26 2002 -0400 Work around gcc bug commit 6b96cea114710b35caa1d65a669f92a46e20f27f Author: Matteo Frigo Date: Sun Jun 30 18:34:06 2002 -0400 New simd stuff commit 5dd26fcef247d6776f4b5b587b15a1b317a97431 Author: Matteo Frigo Date: Sun Jun 30 17:00:09 2002 -0400 Added altivec support commit a81146d09b6762b1c82b9f998720454245ee5e25 Author: Matteo Frigo Date: Sun Jun 30 14:47:47 2002 -0400 Forgot file commit 734f270fddd3a03066eb4323706090f99c82bf9c Author: Matteo Frigo Date: Sun Jun 30 14:37:55 2002 -0400 Progress towards simd implementation commit 05dc59aa43296d7fb6b79edf5decf65e9a100401 Author: Matteo Frigo Date: Tue Jun 25 20:23:29 2002 -0400 Add 128- codelet commit a94cde7e798f7da510f20b25d1a4bd4aea4dc58b Author: Matteo Frigo Date: Sat Jun 22 20:47:28 2002 -0400 More simd changes. Ensure proper stack alignment in k7 codelets. commit c4ef1c53884a0a7fee4587ef0b1f4317ae83a644 Author: Matteo Frigo Date: Sat Jun 22 13:01:33 2002 -0400 Fixed prototypes commit 5383095f6dd63b1db544695c4b0f7f244344d698 Author: Matteo Frigo Date: Sat Jun 22 12:53:26 2002 -0400 Sparc cycle counter requires v9 commit a25e9ee31d663307683038fbf703f0ed60a502e3 Author: Matteo Frigo Date: Sat Jun 22 11:45:48 2002 -0400 Minor fixes commit 01922e916a7428cc0f7f188518720710b101e9e6 Author: Matteo Frigo Date: Sat Jun 22 11:11:46 2002 -0400 Fixed ev67 detection commit ff1e337f46f9f1bbdcc32756bcdaa0e86566df2e Author: Matteo Frigo Date: Sat Jun 22 10:19:11 2002 -0400 Print flops commit 3f2d94c9ccabcf93d7f8b1230c5b2f97ac6cc4d2 Author: Matteo Frigo Date: Sat Jun 22 09:36:47 2002 -0400 Nothing really commit 8843a01025a26b7bb5a3f26b94c46243332cca25 Author: Matteo Frigo Date: Fri Jun 21 22:19:20 2002 -0400 More simd work commit 3a71fc73cd6c17ba8df8d7aad29fa1bf5ad71a96 Author: Matteo Frigo Date: Thu Jun 20 21:22:41 2002 -0400 More simd work commit fcbb846544687bd8c14e9d004746230e8b6a49e2 Author: Matteo Frigo Date: Thu Jun 20 18:51:33 2002 -0400 More simd work commit 4e25f887266e572b5418dcd0bad8db69265ba3b3 Author: Matteo Frigo Date: Thu Jun 20 15:04:37 2002 -0400 Moving towards incorporation of simd stuff commit 8b98bf67f5e3c976f17988acc8c2e063d3848408 Author: Matteo Frigo Date: Wed Jun 19 18:47:55 2002 -0400 Reorganized k7 stuff into own directory commit 30f0669ed255025d8e4bad6adb9737022a7a6b34 Author: Matteo Frigo Date: Wed Jun 19 13:21:13 2002 -0400 Minor experimental stuff commit 51b0055df9ca6f4c9ea05ccbeb4714bd61d8469b Author: Matteo Frigo Date: Wed Jun 19 11:20:29 2002 -0400 Cosmetic changes commit 3309bd7a80d6dfb0da60d6c2a185d5213505b036 Author: fftw Date: Wed Jun 19 01:43:31 2002 -0400 allocate buffers on the fly commit d290c98ff9fdac1646b56bf9fd80913ecf4b42ed Author: Matteo Frigo Date: Tue Jun 18 17:48:41 2002 -0400 Added ct-ditbuf-k7.c . Major changes required in generator. commit c672bc817602bb03a8e6d7b637e78e84dc2f1f1d Author: Matteo Frigo Date: Tue Jun 18 11:55:57 2002 -0400 Nothing, really commit 327d908d5d396a22fa85216b24203c6b709f9379 Author: Matteo Frigo Date: Tue Jun 18 11:19:59 2002 -0400 !SINGLE ==> !K7_MODE (for some reason the contrapositive sounds wrong) commit fc34a6a92882caf5e8346225e9c25a2a1b6fcb2c Author: Matteo Frigo Date: Tue Jun 18 11:07:13 2002 -0400 Buffer is now symmetric wrt forward/backward transform commit 2dfa3580ad3c4d0960a3b18aba5464c6d9cc91c1 Author: Matteo Frigo Date: Tue Jun 18 10:33:58 2002 -0400 Fixed applicable() in indirect.c commit 40e9e2373f160b3760c87aa707e20aa91a30479d Author: Matteo Frigo Date: Tue Jun 18 08:41:18 2002 -0400 Fixed attempt to free() uninitialized pointer. commit 854771dbd1a262127ab6ef87b31e6ec3645dbce4 Author: Matteo Frigo Date: Tue Jun 18 08:13:55 2002 -0400 Added reference counts for awake() commit b65907ea5ba6b84347976ae59688acbc4a982b82 Author: Steven G. Johnson Date: Mon Jun 17 20:49:05 2002 -0400 updated comment commit 11cbdda3f3c4e688e59eb28d43946c6053ce461e Author: Steven G. Johnson Date: Mon Jun 17 20:46:45 2002 -0400 slight update commit df79d1312e84ddc47b65056c2b59fb6eec20915b Author: fftw Date: Mon Jun 17 02:30:16 2002 -0400 moved prime-number stuff into primes.c, so it can be shared with generic codelet and with rfftw rader commit 92c3a4be474dca7d3e4f2076f2d5c61e040e6739 Author: fftw Date: Mon Jun 17 02:01:58 2002 -0400 added comment commit b580b3303f83589a5b87ad88f104ed41b8c641a3 Author: fftw Date: Mon Jun 17 01:39:55 2002 -0400 added rader-dit commit 51f015c4a6df06fa475e6e291d7e0f8a0293a891 Author: fftw Date: Sun Jun 16 23:50:16 2002 -0400 added initial Rader (no DIT yet) commit d45d1bbd591b1c30885baa7b1025ae016b23e937 Author: fftw Date: Sun Jun 16 22:29:51 2002 -0400 don't warn about long long commit 16ad72af138d08605df2fadf239e142ace2680eb Author: Matteo Frigo Date: Sun Jun 16 21:30:42 2002 -0400 Added k7 DIF codelets commit 3728b053dde52469a7deea4654ca0352c40bd6d4 Author: Matteo Frigo Date: Sun Jun 16 19:13:31 2002 -0400 Added stuff to do commit 6eadf663f6d05339378e742de11484c6d46283a5 Author: Matteo Frigo Date: Sun Jun 16 19:05:58 2002 -0400 Handle dual case R = I + 1 commit f6e99e6f7959f1e91fb66ff344ce372c75567e9b Author: Matteo Frigo Date: Sun Jun 16 18:54:31 2002 -0400 Removed useless flag commit d38b5396624973e2ddc9531587b799eaa13f9daf Author: Matteo Frigo Date: Sun Jun 16 18:30:32 2002 -0400 Removed useless file commit 376194067d9decb0e20df12443a0ac64a16f67a2 Author: Matteo Frigo Date: Sun Jun 16 18:30:18 2002 -0400 More k7 work. Switched to runtime CLASSIC mode. commit 331b9479423ed2ad02e75cb8a759241178460ede Author: Steven G. Johnson Date: Sun Jun 16 17:15:18 2002 -0400 spelling commit c278f9c639c8c850773474634acb51104857ad21 Author: Matteo Frigo Date: Sun Jun 16 15:51:44 2002 -0400 Do not compile if not K7_MODE commit 375f66850303af4e6eb9c7263fe5c5c769876065 Author: Matteo Frigo Date: Sun Jun 16 15:35:02 2002 -0400 Do not require K7 definitions to compile commit 684b95447b420d52337cd499589d31dce430ca4a Author: Matteo Frigo Date: Sun Jun 16 08:05:17 2002 -0400 More k7 stuff commit 535c1c74ca2099099e3edbab3aa7acafa02ea7d6 Author: Matteo Frigo Date: Sat Jun 15 18:30:43 2002 -0400 Try to be compatible with automake-1.6 commit ba06164744e743ea9ea8dabb9359dd0e3b830c9c Author: Matteo Frigo Date: Sat Jun 15 18:23:40 2002 -0400 More merging of Stefan's generator with main genfft branch commit fbe6e3f25188363b31caadf2a598be16eeb2a6a7 Author: Matteo Frigo Date: Sat Jun 15 13:51:39 2002 -0400 Slowly merging genfft-k7 with main genfft branch commit 8a567ee1d079e0cb9ba06e66a3f06d9be0eb34b0 Author: Matteo Frigo Date: Fri Jun 14 21:33:02 2002 -0400 Fixed, really commit 6bd3b52c770b109a025d9982098066f91a84c937 Author: Matteo Frigo Date: Fri Jun 14 21:27:12 2002 -0400 Oops... commit 5b6a71f941de2e28005b7821317ec7032c0b9743 Author: Matteo Frigo Date: Fri Jun 14 21:25:34 2002 -0400 Work properly when $(ALL_CODELETS) = "" commit 07399bfca3c51c6e59dc5f7f9a0f1e7600ab2f41 Author: Matteo Frigo Date: Fri Jun 14 21:11:16 2002 -0400 Fixed k7 build machinery commit 015e0a9b55cfef97ad18e06af166a22d02240d09 Author: Matteo Frigo Date: Fri Jun 14 17:42:35 2002 -0400 More work on k7 stuff commit cf8b11788ed23e9e651cbadf1950302c67102f62 Author: Matteo Frigo Date: Fri Jun 14 15:54:29 2002 -0400 More work on k7 stuff commit 8bd8bb064c77d442eb9da44432a3030b2b48f88a Author: Matteo Frigo Date: Fri Jun 14 14:18:15 2002 -0400 Changed my mind again commit 1cfe47c1940dab749e1c63c15bfde4d0eed29495 Author: Matteo Frigo Date: Fri Jun 14 11:53:09 2002 -0400 Removed some useless stuff. commit 315edea8537b5df64d2eb456cd20f12e16c50544 Author: Matteo Frigo Date: Fri Jun 14 11:01:39 2002 -0400 Hmm... commit fb33fef8ea963d61445cfdef5dcf576cbd616cd8 Author: Matteo Frigo Date: Fri Jun 14 10:28:12 2002 -0400 More work in preparation for k7 stuff commit 1efd1ce4b0d507eab8ff1b618a75bb66303b690d Author: Matteo Frigo Date: Fri Jun 14 07:25:28 2002 -0400 Still preparing to include k7 stuff commit 4c4195fba4ee1d73c35a4d8695a714d788a542cb Author: Matteo Frigo Date: Fri Jun 14 07:06:02 2002 -0400 Create .depend commit 4a55307470a6737b48d2cfb10be690ce60b7ac25 Author: Matteo Frigo Date: Fri Jun 14 06:56:15 2002 -0400 Imported Stefan's K7 generator commit 61a7a73d101594961d9b63fb34fb2340635aaf1b Author: Matteo Frigo Date: Thu Jun 13 15:30:41 2002 -0400 Generator for real->halfcomplex and halfcomplex->real codelets commit d43342dc8c0aa4ac1802eff495ca96ac37c9fb22 Author: Matteo Frigo Date: Thu Jun 13 11:54:02 2002 -0400 Improved hash functions, printers commit b26a2a40553deea06a47abfd3ba1f45d54b28cc2 Author: Matteo Frigo Date: Thu Jun 13 11:17:31 2002 -0400 Only regenerate codlist.c in maintainer mode commit 39f18e53eaf87dc26e7001bccb2839fca11d1bf8 Author: Matteo Frigo Date: Thu Jun 13 11:04:24 2002 -0400 Planner can export solution list commit 94b38d1890179198beac49ead7263d4c0a345a59 Author: Matteo Frigo Date: Thu Jun 13 08:59:53 2002 -0400 Fixed for intel compiler commit bd4fbd5827358275240d991af98b0c477a4158cf Author: Matteo Frigo Date: Thu Jun 13 08:48:51 2002 -0400 Revised strategy for constants in codelets commit 9d1d76e5a32774ac2c7d9c43d2594032aeb20933 Author: Matteo Frigo Date: Thu Jun 13 06:21:31 2002 -0400 Enable score planner in classic mode, naive planner in pro mode. commit 81ae7fad037e7325c65da97a3c842c220ea68a2d Author: Matteo Frigo Date: Wed Jun 12 19:18:18 2002 -0400 Report classic/pro commit 2c6576feda81b17c61be5678e97ca1a4db5f7935 Author: Matteo Frigo Date: Wed Jun 12 19:07:48 2002 -0400 Fixed behavior of buffered solver for large buffers. commit e241b59af22b29dd33ada31e9dcfc93eadfc594f Author: Matteo Frigo Date: Wed Jun 12 18:57:19 2002 -0400 Make assumption COST(vector) = length * COST(scalar) in classic mode. commit 2ccbe15f93c5f1bd3bdf6997f28ef1f10a2a5c76 Author: Matteo Frigo Date: Wed Jun 12 18:19:48 2002 -0400 Revised planner implementation in preparation for wisdom. commit 40ff868c177cd7afc80a4b35f2771aadd59ec6a4 Author: Matteo Frigo Date: Wed Jun 12 08:27:36 2002 -0400 Manually hoist loop invariants. commit fca6f800f5e3a40bf20f80e4a2b3da5fe64da13e Author: Matteo Frigo Date: Wed Jun 12 07:47:41 2002 -0400 Revised loop to compile better with gcc -O commit c3e9fb16552f161f337915be9bba97d50aeca6a6 Author: Matteo Frigo Date: Tue Jun 11 17:24:09 2002 -0400 Changed tensor syntax commit c2fb4345e13f698ea829e790e9e50bf5f218d740 Author: Matteo Frigo Date: Tue Jun 11 16:39:45 2002 -0400 Added stuff to do. commit 79b41ae4b2cf1c9d44e386a0fad68531b6fc78a7 Author: Matteo Frigo Date: Tue Jun 11 16:28:14 2002 -0400 Report classic/pro in version number commit e80c221c61c5f10652272a7b86dc61d461ace6d1 Author: Matteo Frigo Date: Tue Jun 11 14:22:49 2002 -0400 Renamed versions into classic/pro commit 49f5d6fa06030e9ee51346622a68b20e37eff60b Author: Matteo Frigo Date: Tue Jun 11 14:06:06 2002 -0400 Revised planners, estimator commit cd4556586e22a54132fe9b13920474a2b404fe21 Author: Matteo Frigo Date: Tue Jun 11 11:45:41 2002 -0400 I don't know what I am doing. commit 2feca6ebca91d4c762240f32f2381be534adb289 Author: Matteo Frigo Date: Tue Jun 11 10:35:52 2002 -0400 Massive revision of estimator commit 9147712cee87c8b5aff5dc3deebcadf1c159ea90 Author: Matteo Frigo Date: Tue Jun 11 07:32:20 2002 -0400 Many changes commit a68d4a6962649cd7996d2320934764d7490bf685 Author: Matteo Frigo Date: Mon Jun 10 21:35:29 2002 -0400 Keep it simple, stupid. commit 6561b587e1de9ea7d45bd354ad1907512733d3e2 Author: Matteo Frigo Date: Mon Jun 10 19:24:28 2002 -0400 Fixed when #undef PRECOMPUTE_ARRAY_INDICES commit dc412dcd137b131ea524fedf1e7012ad405068bc Author: Matteo Frigo Date: Mon Jun 10 17:58:13 2002 -0400 Minor changes commit 9a633a7a248735746b8e8e4ef7675a2c0b2a8330 Author: Matteo Frigo Date: Mon Jun 10 16:30:37 2002 -0400 Added ct-ditbuf.c, many changes everywhere commit c8406b59941a26cd2145a45edbfa10d136572b94 Author: Matteo Frigo Date: Mon Jun 10 10:55:40 2002 -0400 More name mangling commit 0889cbac352d22d2214500301375f43bf584a6f6 Author: Matteo Frigo Date: Mon Jun 10 10:08:27 2002 -0400 Fixed build system for single/double precision commit c27e0f15eeb5336b8eebc47c215d2ba092e68aa9 Author: Matteo Frigo Date: Mon Jun 10 09:04:21 2002 -0400 Massive renaming to support both single and double precision. (Must recompile everything twice). commit a0b9a19548d7a6278163b36fa1d3088a3ae24cd7 Author: Matteo Frigo Date: Mon Jun 10 06:49:55 2002 -0400 Preliminary crude support for vector transforms in benchmark library. commit ac333b5f92707c9dd867b283d23a53bc64ef69dc Author: Matteo Frigo Date: Sun Jun 9 21:11:51 2002 -0400 Wrong cast commit 669c861be6b66386cd4e8bf2763a8beacebe9bf7 Author: Matteo Frigo Date: Sun Jun 9 16:48:54 2002 -0400 Added things to do. commit 9bfab3a2538b271e95b879402f2269d3cb796144 Author: Matteo Frigo Date: Sun Jun 9 16:07:12 2002 -0400 twlen0: make static commit 89e7b8c3a0488bd401d699312ce92ac4fc7ad872 Author: Matteo Frigo Date: Sun Jun 9 15:34:54 2002 -0400 Nothing commit d8b5a396d1befb9c8709b66e032d5babd304779b Author: Matteo Frigo Date: Sun Jun 9 15:30:13 2002 -0400 Forgot break in switch statement. commit 36c2890f3950c1994c94a98ddf84e218064211d1 Author: Matteo Frigo Date: Sun Jun 9 15:27:24 2002 -0400 Fix for c++ compatibility commit 71882a5547eeb7ca329df8033e7b2eddb759bf76 Author: Matteo Frigo Date: Sun Jun 9 15:16:43 2002 -0400 Added printer, changed everything commit fea5c4c9f8ba921c22c6d7388e5babe9c73b8e26 Author: Matteo Frigo Date: Sun Jun 9 11:37:07 2002 -0400 Removed redundant nop solver commit 382dec87c6ce525bdbf78111112feabc152eb8f7 Author: Matteo Frigo Date: Sun Jun 9 11:06:31 2002 -0400 More things to do commit e471ce8b9ea5726e0a4d2b63770ca8e242327e71 Author: Matteo Frigo Date: Sun Jun 9 11:01:41 2002 -0400 Introduced idea of rank -infinity and associated NOP plans commit 408125e1afdc419d7a914c6475dc663199d1e372 Author: Matteo Frigo Date: Sun Jun 9 08:36:27 2002 -0400 Fixed comment commit eb28a96b485229b8d6883369b0cab54fe3df5b3d Author: Matteo Frigo Date: Sun Jun 9 08:20:13 2002 -0400 Removed useless assertions. commit a05a666ec036474e44f87cecc89a76f13249c4cd Author: Matteo Frigo Date: Sun Jun 9 08:19:26 2002 -0400 Don't malloc(0). commit 53cf44cd85d0b4fe9fd486f24c591d66fd4cb9ff Author: Matteo Frigo Date: Sun Jun 9 08:08:13 2002 -0400 Fixed signed/unsigned puns commit e2aae81e2ec289bb799c02ff72172ffe7f34d076 Author: Matteo Frigo Date: Sun Jun 9 07:52:22 2002 -0400 Added buffered.c commit bb2eb63fb1a1ddf2a8c28a918c2108f9b128053a Author: Matteo Frigo Date: Sat Jun 8 16:57:54 2002 -0400 Fixed printout commit 5e196db13b6e3ea78d999f2a2958c7e65c4e5e68 Author: Matteo Frigo Date: Sat Jun 8 16:42:52 2002 -0400 Fixed comment commit 00c4dc36263864bb6edf511df147475ca8049e35 Author: Matteo Frigo Date: Sat Jun 8 16:40:58 2002 -0400 Added vrank3-transpose, renamed vrank0-transpose -> vrank2-transpose commit 70736b265541c54ab69946ad312e21300b0b2f47 Author: Matteo Frigo Date: Sat Jun 8 15:51:46 2002 -0400 Added vrank0-transpose commit 21fa46aab36c0306bf64d254b8718c8eaf96118c Author: Matteo Frigo Date: Sat Jun 8 15:11:09 2002 -0400 Added planner-score.c commit 3700ef27b625aa5dd4e42e19969b9d5d0e546b39 Author: Matteo Frigo Date: Sat Jun 8 11:10:44 2002 -0400 Added indirect.c commit 92cdbe47f89adcf0d5ae5a1535e171fa58b94f0c Author: Matteo Frigo Date: Sat Jun 8 09:34:58 2002 -0400 dif, ditf solvers commit 9382caabae5da944eb93a194ed963efa5b0dcd2a Author: Matteo Frigo Date: Fri Jun 7 18:07:53 2002 -0400 Implemented rank_geq2. Revised build system commit fd9d18f8d6fbe910aa48673bfcfa7b3e9a0ab7e4 Author: Matteo Frigo Date: Fri Jun 7 07:12:25 2002 -0400 Fixed printout commit 3f7d553cb7059f0f68b15004eb6a62a2a396c092 Author: Matteo Frigo Date: Fri Jun 7 07:07:46 2002 -0400 Added rank0. Revised codelet organization. commit 9b91cf2747d0b49d1220a4e1fc494fe72d2a6f64 Author: Matteo Frigo Date: Thu Jun 6 18:03:17 2002 -0400 Added memoization commit 61d0f601e04b8e1f9ff8fe350c4ef61211be20de Author: Matteo Frigo Date: Thu Jun 6 08:07:33 2002 -0400 Added vecloop commit 5995d0f346270a179f5156150ce1997613636f8f Author: Matteo Frigo Date: Wed Jun 5 19:02:56 2002 -0400 First DIT solver/plan commit 70714a1ca5a962fc4acf3c91b5b1dbb2b5518310 Author: Matteo Frigo Date: Wed Jun 5 16:03:44 2002 -0400 More work on ct commit 479c74ce55bbc9e78c22e4ed8506db9c494871c5 Author: Matteo Frigo Date: Wed Jun 5 11:28:09 2002 -0400 Only use cycle counters commit f397307a4a2ecb675736dbfaee0e3cb117ecafc4 Author: Matteo Frigo Date: Tue Jun 4 20:22:23 2002 -0400 Signed/unsigned fixup commit 26f9cec858cb382ad71e3d025ef4258dffce6e0d Author: Matteo Frigo Date: Tue Jun 4 20:03:56 2002 -0400 New file twiddle.c commit e31060a0f867b05a6cde5ade185fa6edc487c43b Author: Matteo Frigo Date: Tue Jun 4 17:49:39 2002 -0400 Made tensor ranks and vector lengths unsigned. Hopefully fixed all places where it matters. commit 33459884b1d822c57fec05becfccd6cf4a5c1efd Author: Matteo Frigo Date: Tue Jun 4 16:28:58 2002 -0400 System is in working state now (but very incomplete) commit 53e8499d5241b1194dcf9d39bb617b45ba00beed Author: Matteo Frigo Date: Mon Jun 3 18:10:12 2002 -0400 Started implementing planners commit 41ec7720369ea65ef877dacee5b43c73d36e9dc0 Author: Matteo Frigo Date: Mon Jun 3 11:44:18 2002 -0400 Imported libbench from the new benchfft. We will use libbench for benchmarking and testing. commit 936272ab0ecd1ecb585f889ef7d8c996a9e9920c Author: Matteo Frigo Date: Mon Jun 3 09:18:46 2002 -0400 Removed useless rand.c commit c0d9815658256675268110505f21e80b6a850e2c Author: Matteo Frigo Date: Mon Jun 3 08:09:05 2002 -0400 Added timer commit 1135ab2472586a6ddfd23571aa9724686470238c Author: Matteo Frigo Date: Sun Jun 2 21:03:51 2002 -0400 Split codelets into standard and inplace commit 8394a2d62bb726c0af14d1ca1bf721d538bbb6ce Author: Matteo Frigo Date: Sun Jun 2 19:49:03 2002 -0400 Many many changes commit 069ab6b1a318b8d31556dafc6b07953becc026ab Author: Matteo Frigo Date: Sun Jun 2 15:00:11 2002 -0400 Fixed anachronism commit 9a85d188479075e3f6d1de0d33c35008578e5b97 Author: Matteo Frigo Date: Sun Jun 2 14:42:32 2002 -0400 Initial revision fftw-3.3.11/INSTALL0000644000175000017500000003777114767572401007313 Installation Instructions ************************* Basic Installation ================== The following shell commands: test -f configure || ./bootstrap ./configure make make install should configure, build, and install this package. The first line, which bootstraps, is intended for developers; when building from distribution tarballs it does nothing and can be skipped. The following more-detailed instructions are generic; see the ‘README’ file for instructions specific to this package. Some packages provide this ‘INSTALL’ file but do not implement all of the features documented below. The lack of an optional feature in a given package is not necessarily a bug. More recommendations for GNU packages can be found in the GNU Coding Standards. Many packages have scripts meant for developers instead of ordinary builders, as they may use developer tools that are less commonly installed, or they may access the network, which has privacy implications. If the ‘bootstrap’ shell script exists, it attempts to build the ‘configure’ shell script and related files, possibly using developer tools or the network. Because the output of ‘bootstrap’ is system-independent, it is normally run by a package developer so that its output can be put into the distribution tarball and ordinary builders and users need not run ‘bootstrap’. Some packages have commands like ‘./autopull.sh’ and ‘./autogen.sh’ that you can run instead of ‘./bootstrap’, for more fine-grained control over bootstrapping. The ‘configure’ shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a ‘Makefile’ in each directory of the package. It may also create one or more ‘.h’ files containing system-dependent definitions. Finally, it creates a shell script ‘config.status’ that you can run in the future to recreate the current configuration, and a file ‘config.log’ containing output useful for debugging ‘configure’. It can also use an optional file (typically called ‘config.cache’ and enabled with ‘--cache-file=config.cache’ or simply ‘-C’) that saves the results of its tests to speed up reconfiguring. Caching is disabled by default to prevent problems with accidental use of stale cache files. If you need to do unusual things to compile the package, please try to figure out how ‘configure’ could check whether to do them, and mail diffs or instructions to the address given in the ‘README’ so they can be considered for the next release. If you are using the cache, and at some point ‘config.cache’ contains results you don’t want to keep, you may remove or edit it. The ‘autoconf’ program generates ‘configure’ from the file ‘configure.ac’. Normally you should edit ‘configure.ac’ instead of editing ‘configure’ directly. The simplest way to compile this package is: 1. ‘cd’ to the directory containing the package’s source code. 2. If this is a developer checkout and file ‘configure’ does not yet exist, type ‘./bootstrap’ to create it. You may need special developer tools and network access to bootstrap, and the network access may have privacy implications. 3. Type ‘./configure’ to configure the package for your system. This might take a while. While running, ‘configure’ prints messages telling which features it is checking for. 4. Type ‘make’ to compile the package. 5. Optionally, type ‘make check’ to run any self-tests that come with the package, generally using the just-built uninstalled binaries. 6. Type ‘make install’ to install the programs and any data files and documentation. When installing into a prefix owned by root, it is recommended that the package be configured and built as a regular user, and only the ‘make install’ phase executed with root privileges. 7. Optionally, type ‘make installcheck’ to repeat any self-tests, but this time using the binaries in their final installed location. This target does not install anything. Running this target as a regular user, particularly if the prior ‘make install’ required root privileges, verifies that the installation completed correctly. 8. You can remove the program binaries and object files from the source code directory by typing ‘make clean’. To also remove the files that ‘configure’ created (so you can compile the package for a different kind of computer), type ‘make distclean’. There is also a ‘make maintainer-clean’ target, but that is intended mainly for the package’s developers. If you use it, you may have to bootstrap again. 9. If the package follows the GNU Coding Standards, you can type ‘make uninstall’ to remove the installed files. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the ‘configure’ script does not know about. Run ‘./configure --help’ for details on some of the pertinent environment variables. You can give ‘configure’ initial values for configuration parameters by setting variables in the command line or in the environment. Here is an example: ./configure CC=gcc CFLAGS=-g LIBS=-lposix See “Defining Variables†for more details. Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each system in their own directory. To do this, you can use GNU ‘make’. ‘cd’ to the directory where you want the object files and executables to go and run the ‘configure’ script. ‘configure’ automatically checks for the source code in the directory that ‘configure’ is in and in ‘..’. This is known as a “VPATH†build. With a non-GNU ‘make’, it is safer to compile the package for one system at a time in the source code directory. After you have installed the package for one system, use ‘make distclean’ before reconfiguring for another system. Some platforms, notably macOS, support “fat†or “universal†binaries, where a single binary can execute on different architectures. On these platforms you can configure and compile just once, with options specific to that platform. Installation Names ================== By default, ‘make install’ installs the package’s commands under ‘/usr/local/bin’, include files under ‘/usr/local/include’, etc. You can specify an installation prefix other than ‘/usr/local’ by giving ‘configure’ the option ‘--prefix=PREFIX’, where PREFIX must be an absolute file name. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you pass the option ‘--exec-prefix=PREFIX’ to ‘configure’, the package uses PREFIX as the prefix for installing programs and libraries. Documentation and other data files still use the regular prefix. In addition, if you use an unusual directory layout you can give options like ‘--bindir=DIR’ to specify different values for particular kinds of files. Run ‘configure --help’ for a list of the directories you can set and what kinds of files go in them. In general, the default for these options is expressed in terms of ‘${prefix}’, so that specifying just ‘--prefix’ will affect all of the other directory specifications that were not explicitly provided. The most portable way to affect installation locations is to pass the correct locations to ‘configure’; however, many packages provide one or both of the following shortcuts of passing variable assignments to the ‘make install’ command line to change installation locations without having to reconfigure or recompile. The first method involves providing an override variable for each affected directory. For example, ‘make install prefix=/alternate/directory’ will choose an alternate location for all directory configuration variables that were expressed in terms of ‘${prefix}’. Any directories that were specified during ‘configure’, but not in terms of ‘${prefix}’, must each be overridden at install time for the entire installation to be relocated. The approach of makefile variable overrides for each directory variable is required by the GNU Coding Standards, and ideally causes no recompilation. However, some platforms have known limitations with the semantics of shared libraries that end up requiring recompilation when using this method, particularly noticeable in packages that use GNU Libtool. The second method involves providing the ‘DESTDIR’ variable. For example, ‘make install DESTDIR=/alternate/directory’ will prepend ‘/alternate/directory’ before all installation names. The approach of ‘DESTDIR’ overrides is not required by the GNU Coding Standards, and does not work on platforms that have drive letters. On the other hand, it does better at avoiding recompilation issues, and works well even when some directory options were not specified in terms of ‘${prefix}’ at ‘configure’ time. Optional Features ================= If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving ‘configure’ the option ‘--program-prefix=PREFIX’ or ‘--program-suffix=SUFFIX’. Some packages pay attention to ‘--enable-FEATURE’ and ‘--disable-FEATURE’ options to ‘configure’, where FEATURE indicates an optional part of the package. They may also pay attention to ‘--with-PACKAGE’ and ‘--without-PACKAGE’ options, where PACKAGE is something like ‘gnu-ld’. ‘./configure --help’ should mention the ‘--enable-...’ and ‘--with-...’ options that the package recognizes. Some packages offer the ability to configure how verbose the execution of ‘make’ will be. For these packages, running ‘./configure --enable-silent-rules’ sets the default to minimal output, which can be overridden with ‘make V=1’; while running ‘./configure --disable-silent-rules’ sets the default to verbose, which can be overridden with ‘make V=0’. Specifying a System Type ======================== By default ‘configure’ builds for the current system. To create binaries that can run on a different system type, specify a ‘--host=TYPE’ option along with compiler variables that specify how to generate object code for TYPE. For example, to create binaries intended to run on a 64-bit ARM processor: ./configure --host=aarch64-linux-gnu \ CC=aarch64-linux-gnu-gcc \ CXX=aarch64-linux-gnu-g++ If done on a machine that can execute these binaries (e.g., via ‘qemu-aarch64’, ‘$QEMU_LD_PREFIX’, and Linux’s ‘binfmt_misc’ capability), the build behaves like a native build. Otherwise it is a cross-build: ‘configure’ will make cross-compilation guesses instead of running test programs, and ‘make check’ will not work. A system type can either be a short name like ‘mingw64’, or a canonical name like ‘x86_64-pc-linux-gnu’. Canonical names have the form CPU-COMPANY-SYSTEM where SYSTEM is either OS or KERNEL-OS. To canonicalize and validate a system type, you can run the command ‘config.sub’, which is often squirreled away in a subdirectory like ‘build-aux’. For example: $ build-aux/config.sub arm64-linux aarch64-unknown-linux-gnu $ build-aux/config.sub riscv-lnx Invalid configuration 'riscv-lnx': OS 'lnx' not recognized You can look at the ‘config.sub’ file to see which types are recognized. If the file is absent, this package does not need the system type. If ‘configure’ fails with the diagnostic “cannot guess build typeâ€. ‘config.sub’ did not recognize your system’s type. In this case, first fetch the newest versions of these files from the GNU config package (https://savannah.gnu.org/projects/config). If that fixes things, please report it to the maintainers of the package containing ‘configure’. Otherwise, you can try the configure option ‘--build=TYPE’ where TYPE comes close to your system type; also, please report the problem to . For more details about configuring system types, see the Autoconf documentation. Sharing Defaults ================ If you want to set default values for ‘configure’ scripts to share, you can create a site shell script called ‘config.site’ that gives default values for variables like ‘CC’, ‘cache_file’, and ‘prefix’. ‘configure’ looks for ‘PREFIX/share/config.site’ if it exists, then ‘PREFIX/etc/config.site’ if it exists. Or, you can set the ‘CONFIG_SITE’ environment variable to the location of the site script. A warning: not all ‘configure’ scripts look for a site script. Defining Variables ================== Variables not defined in a site shell script can be set in the environment passed to ‘configure’. However, some packages may run configure again during the build, and the customized values of these variables may be lost. In order to avoid this problem, you should set them in the ‘configure’ command line, using ‘VAR=value’. For example: ./configure CC=/usr/local2/bin/gcc causes the specified ‘gcc’ to be used as the C compiler (unless it is overridden in the site shell script). Unfortunately, this technique does not work for ‘CONFIG_SHELL’ due to an Autoconf limitation. Until the limitation is lifted, you can use this workaround: CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash ‘configure’ Invocation ====================== ‘configure’ recognizes the following options to control how it operates. ‘--help’ ‘-h’ Print a summary of all of the options to ‘configure’, and exit. ‘--help=short’ ‘--help=recursive’ Print a summary of the options unique to this package’s ‘configure’, and exit. The ‘short’ variant lists options used only in the top level, while the ‘recursive’ variant lists options also present in any nested packages. ‘--version’ ‘-V’ Print the version of Autoconf used to generate the ‘configure’ script, and exit. ‘--cache-file=FILE’ Enable the cache: use and save the results of the tests in FILE, traditionally ‘config.cache’. FILE defaults to ‘/dev/null’ to disable caching. ‘--config-cache’ ‘-C’ Alias for ‘--cache-file=config.cache’. ‘--srcdir=DIR’ Look for the package’s source code in directory DIR. Usually ‘configure’ can determine that directory automatically. ‘--prefix=DIR’ Use DIR as the installation prefix. See “Installation Names†for more details, including other options available for fine-tuning the installation locations. ‘--host=TYPE’ Build binaries for system TYPE. See “Specifying a System Typeâ€. ‘--enable-FEATURE’ ‘--disable-FEATURE’ Enable or disable the optional FEATURE. See “Optional Featuresâ€. ‘--with-PACKAGE’ ‘--without-PACKAGE’ Use or omit PACKAGE when building. See “Optional Featuresâ€. ‘--quiet’ ‘--silent’ ‘-q’ Do not print messages saying which checks are being made. To suppress all normal output, redirect it to ‘/dev/null’ (any error messages will still be shown). ‘--no-create’ ‘-n’ Run the configure checks, but stop before creating any output files. ‘configure’ also recognizes several environment variables, and accepts some other, less widely useful, options. Run ‘configure --help’ for more details. Copyright notice ================ Copyright © 1994–1996, 1999–2002, 2004–2017, 2020–2024 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without warranty of any kind. fftw-3.3.11/NEWS0000644000175000017500000006173715170655127006754 FFTW 3.3.11: * New API fftw_copy_plan() * Support for SVE SIMD instructions. * Support for LoongArch LSX and LASX SIMD instructions. * Support for Apple ARM, RISCV, and LoongArch cycle counters. FFTW 3.3.10: * Fix bug that would cause 2-way SIMD (notably SSE2 in double precision) to attempt unaligned accesses in certain obscure cases, causing segfaults. The following test triggers the bug (SSE2, double precision): ./tests/bench -oexhaustive r4*2:5:3 This test computes a pair of length-4 real->complex transforms where the second input is 5 real numbers away from the first input. That is, there is a gap of one real number between the first and second input array. The -oexhaustive level allow FFTW to attempt to compute this transform by reducing it to a pair of complex transforms of length 2, but now the second input is not aligned to a complex-number boundary. The fact that 5 is odd is the problem. The bug cannot occur in complex->complex transforms because the complex interface accepts strides in units of complex numbers, so strides are aligned by construction. This bug has been around at least since fftw-3.1.2 (July 2006), and probably since fftw-3.0 (2003). FFTW 3.3.9: * New API fftw_planner_nthreads() returns the number of threads currently being used by the planner. * Fix incorrect math in 128-bit generic SIMD * Fix wisdom for avx512. The avx512 alignment requirement was set to 64 bytes, but this is wrong. Alignment requirements are a property of the platform (e.g., x86) and not of the instruction set (e.g., AVX). Among other things, this broke wisdom with avx512. Note that avx512 support is still experimental because the FFTW authors have no avx512 hardware available for testing. * fftw_threads_set_callback function to change the threading backend at runtime. FFTW 3.3.8: * Fixed AVX, AVX2 for gcc-8. By default, FFTW 3.3.7 was broken with gcc-8. AVX and AVX2 code assumed that the compiler honors the distinction between +0 and -0, but gcc-8 -ffast-math does not. The default CFLAGS included -ffast-math. This release ensures that FFTW works with gcc-8 -ffast-math, and removes -ffast-math from the default CFLAGS for good measure. FFTW 3.3.7: * Experimental support for CMake. The primary build mechanism for FFTW remains GNU autoconf/automake. CMake support is meant to offer an easy way to compile FFTW on Windows, and as such it does not cover all the features of the automake build system, such as exotic cycle counters, cross-compiling, or build of binaries for a mixture of ISA's (e.g., amd64 vs amd64+avx vs amd64+avx2). Patches are welcome. * Fixes for armv7a cycle counter. * Official support for aarch64, now that we have hardware to test it. * Tweak usage of FMA instructions in a way that favors newer processors (Skylake and Ryzen) over older processors (Haswell). * tests/bench: use 64-bit precision to compute mflops. FFTW 3.3.6-pl2: * Bugfix: MPI Fortran-03 headers were missing in FFTW 3.3.6-pl1. FFTW 3.3.6-pl1: * Bugfix: FFTW 3.3.6 had the wrong libtool version number, and generated shared libraries of the form libfftw3.so.2.6.6 instead of libfftw3.so.3.*. FFTW 3.3.6: * The fftw_make_planner_thread_safe() API introduced in 3.3.5 didn't work, and this 3.3.6 fixes it. Sorry about that. * compilation fixes for IBM XLC * compilation fixes for threads on Windows * fix SIMD autodetection on amd64 when (_MSC_VER > 1500) FFTW 3.3.5: * New SIMD support: - Power8 VSX instructions in single and double precision. To use, add --enable-vsx to configure. - Support for AVX2 (256-bit FMA instructions). To use, add --enable-avx2 to configure. - Experimental support for AVX512 and KCVI. (--enable-avx512, --enable-kcvi) This code is expected to work but the FFTW maintainers do not have hardware to test it. - Support for AVX128/FMA (for some AMD machines) (--enable-avx128-fma) - Double precision Neon SIMD for aarch64. This code is expected to work but the FFTW maintainers do not have hardware to test it. - generic SIMD support using gcc vector intrinsics * Add fftw_make_planner_thread_safe() API * fix #18 (disable float128 for CUDACC) * fix #19: missing Fortran interface for fftwq_alloc_real * fix #21 (don't use float128 on Portland compilers, which pretend to be gcc) * fix: Avoid segfaults due to double free in MPI transpose * Special note for distribution maintainers: Although FFTW supports a zillion SIMD instruction sets, enabling them all at the same time is a bad idea, because it increases the planning time for minimal gain. We recommend that general-purpose x86 distributions only enable SSE2 and perhaps AVX. Users who care about the last ounce of performance should recompile FFTW themselves. FFTW 3.3.4 * New functions fftw_alignment_of (to check whether two arrays are equally aligned for the purposes of applying a plan) and fftw_sprint_plan (to output a description of plan to a string). * Bugfix in fftw-wisdom-to-conf; thanks to Florian Oppermann for the bug report. * Fixed manual to work with texinfo-5. * Increased timing interval on x86_64 to reduce timing errors. * Default to Win32 threads, not pthreads, if both are present. * Various build-script fixes. FFTW 3.3.3 * Fix deadlock bug in MPI transforms (thanks to Michael Pippig for the bug report and patch, and to Graham Dennis for the bug report). * Use 128-bit ARM NEON instructions instead of 64-bits. This change appears to speed up even ARM processors with a 64-bit NEON pipe. * Speed improvements for single-precision AVX. * Speed up planner on machines without "official" cycle counters, such as ARM. FFTW 3.3.2 * Removed an archaic stack-alignment hack that was failing with gcc-4.7/i386. * Added stack-alignment hack necessary for gcc on Windows/i386. We will regret this in ten years (see previous change). * Fix incompatibility with Intel icc which pretends to be gcc but does not support quad precision. * make libfftw{threads,mpi} depend upon libfftw when using libtool; this is consistent with most other libraries and simplifies the life of various distributors of GNU/Linux. FFTW 3.3.1 * Changes since 3.3.1-beta1: - Reduced planning time in estimate mode for sizes with large prime factors. - Added AVX autodetection under Visual Studio. Thanks Carsten Steger for submitting the necessary code. - Modern Fortran interface now uses a separate fftw3l.f03 interface file for the long double interface, which is not supported by some Fortran compilers. Provided new fftw3q.f03 interface file to access the quadruple-precision FFTW routines with recent versions of gcc/gfortran. * Added support for the NEON extensions to the ARM ISA. (Note to beta users: an ARM cycle counter is not yet implemented; please contact fftw@fftw.org if you know how to do it right.) * MPI code now compiles even if mpicc is a C++ compiler; thanks to Kyle Spyksma for the bug report. FFTW 3.3 * Changes since 3.3-beta1: - Compiling OpenMP support (--enable-openmp) now installs a fftw3_omp library, instead of fftw3_threads, so that OpenMP and POSIX threads (--enable-threads) libraries can be built and installed at the same time. - Various minor compilation fixes, corrections of manual typos, and improvements to the benchmark test program. * Add support for the AVX extensions to x86 and x86-64. The AVX code works with 16-byte alignment (as opposed to 32-byte alignment), so there is no ABI change compared to FFTW 3.2.2. * Added Fortran 2003 interface, which should be usable on most modern Fortran compilers (e.g. gfortran) and provides type-checked access to the the C FFTW interface. (The legacy Fortran-77 interface is still included also.) * Added MPI distributed-memory transforms. Compared to 3.3alpha, the major changes in the MPI transforms are: - Fixed some deadlock and crashing bugs. - Added Fortran 2003 interface. - Added new-array execute functions for MPI plans. - Eliminated use of large MPI tags, since Cray MPI requires tags < 2^24; thanks to Jonathan Bentz for the bug report. - Expanded documentation. - 'make check' now runs MPI tests - Some ABI changes - not binary-compatible with 3.3alpha MPI. * Add support for quad-precision __float128 in gcc 4.6 or later (on x86. x86-64, and Itanium). The new routines use the fftwq_ prefix. * Removed support for MIPS paired-single instructions due to lack of available hardware for testing. Users who want this functionality should continue using FFTW 3.2.x. (Note that FFTW 3.3 still works on MIPS; this only concerns special instructions available on some MIPS chips.) * Removed support for the Cell Broadband Engine. Cell users should use FFTW 3.2.x. * New convenience functions fftw_alloc_real and fftw_alloc_complex to use fftw_malloc for real and complex arrays without typecasts or sizeof. * New convenience functions fftw_export_wisdom_to_filename and fftw_import_wisdom_from_filename that export/import wisdom to a file, which don't require you to open/close the file yourself. * New function fftw_cost to return FFTW's internal cost metric for a given plan; thanks to Rhys Ulerich and Nathanael Schaeffer for the suggestion. * The --enable-sse2 configure flag now works in both double and single precision (and is equivalent to --enable-sse in the latter case). * Remove --enable-portable-binary flag: we new produce portable binaries by default. * Remove the automatic detection of native architecture flag for gcc which was introduced in fftw-3.1, since new gcc supports -mtune=native. Remove the --with-gcc-arch flag; if you want to specify a particular arch to configure, use ./configure CC="gcc -mtune=...". * --with-our-malloc16 configure flag is now renamed --with-our-malloc. * Fixed build problem failure when srand48 declaration is missing; thanks to Ralf Wildenhues for the bug report. * Fixed bug in fftw_set_timelimit: ensure that a negative timelimit is equivalent to no timelimit in all cases. Thanks to William Andrew Burnson for the bug report. * Fixed stack-overflow problem on OpenBSD caused by using alloca with too large a buffer. FFTW 3.2.2 * Improve performance of some copy operations of complex arrays on x86 machines. * Add configure flag to disable alloca(), which is broken in mingw64. * Planning in FFTW_ESTIMATE mode for r2r transforms became slower between fftw-3.1.3 and 3.2. This regression has now been fixed. FFTW 3.2.1 * Performance improvements for some multidimensional r2c/c2r transforms; thanks to Eugene Miloslavsky for his benchmark reports. * Compile with icc on MacOS X, use better icc compiler flags. * Compilation fixes for systems where snprintf is defined as a macro; thanks to Marcus Mae for the bug report. * Fortran documentation now recommends not using dfftw_execute, because of reports of problems with various Fortran compilers; it is better to use dfftw_execute_dft etcetera. * Some documentation clarifications, e.g. of fact that --enable-openmp and --enable-threads are mutually exclusive (thanks to Long To), and document slightly odd behavior of plan_guru_r2r in Fortran (thanks to Alexander Pozdneev). * FAQ was accidentally omitted from 3.2 tarball. * Remove some extraneous (harmless) files accidentally included in a subdirectory of the 3.2 tarball. FFTW 3.2 * Worked around apparent glibc bug that leads to rare hangs when freeing semaphores. * Fixed segfault due to unaligned access in certain obscure problems that use SSE and multiple threads. * MPI transforms not included, as they are still in alpha; the alpha versions of the MPI transforms have been moved to FFTW 3.3alpha1. FFTW 3.2alpha3 * Performance improvements for sizes with factors of 5 and 10. * Documented FFTW_WISDOM_ONLY flag, at the suggestion of Mario Emmenlauer and Phil Dumont. * Port Cell code to SDK2.1 (libspe2), as opposed to the old libspe1 code. * Performance improvements in Cell code for N < 32k, thanks to Jan Wagner for the suggestions. * Cycle counter for Sun x86_64 compiler, and compilation fix in cycle counter for AIX/xlc (thanks to Jeff Haferman for the bug report). * Fixed incorrect type prefix in MPI code that prevented wisdom routines from working in single precision (thanks to Eric A. Borisch for the report). * Added 'make check' for MPI code (which still fails in a couple corner cases, but should be much better than in alpha2). * Many other small fixes. FFTW 3.2alpha2 * Support for the Cell processor, donated by IBM Research; see README.Cell and the Cell section of the manual. * New 64-bit API: for every "plan_guru" function there is a new "plan_guru64" function with the same semantics, but which takes fftw_iodim64 instead of fftw_iodim. fftw_iodim64 is the same as fftw_iodim, except that it takes ptrdiff_t integer types as parameters, which is a 64-bit type on 64-bit machines. This is only useful for specifying very large transforms on 64-bit machines. (Internally, FFTW uses ptrdiff_t everywhere regardless of what API you choose.) * Experimental MPI support. Complex one- and multi-dimensional FFTs, multi-dimensional r2r, multi-dimensional r2c/c2r transforms, and distributed transpose operations, with 1d block distributions. (This is an alpha preview: routines have not been exhaustively tested, documentation is incomplete, and some functionality is missing, e.g. Fortran support.) See mpi/README and also the MPI section of the manual. * Significantly faster r2c/c2r transforms, especially on machines with SIMD. * Rewritten multi-threaded support for better performance by re-using a fixed pool of threads rather than continually respawning and joining (which nowadays is much slower). * Support for MIPS paired-single SIMD instructions, donated by Codesourcery. * FFTW_WISDOM_ONLY planner flag, to create plan only if wisdom is available and return NULL otherwise. * Removed k7 support, which only worked in 32-bit mode and is becoming obsolete. Use --enable-sse instead. * Added --with-g77-wrappers configure option to force inclusion of g77 wrappers, in addition to whatever is needed for the detected Fortran compilers. This is mainly intended for GNU/Linux distros switching to gfortran that wish to include both gfortran and g77 support in FFTW. * In manual, renamed "guru execute" functions to "new-array execute" functions, to reduce confusion with the guru planner interface. (The programming interface is unchanged.) * Add missing __declspec attribute to threads API functions when compiling for Windows; thanks to Robert O. Morris for the bug report. * Fixed missing return value from dfftw_init_threads in Fortran; thanks to Markus Wetzstein for the bug report. FFTW 3.1.3 * Bug fix: FFTW computes incorrect results when the user plans both REDFT11 and RODFT11 transforms of certain sizes. The bug is caused by incorrect sharing of twiddle-factor tables between the two transforms, and only occurs when both are used. Thanks to Paul A. Valiant for the bug report. FFTW 3.1.2 * Correct bug in configure script: --enable-portable-binary option was ignored! Thanks to Andrew Salamon for the bug report. * Threads compilation fix on AIX: prefer xlc_r to cc_r, and don't use either if we are using gcc. Thanks to Guy Moebs for the bug report. * Updated FAQ to note that Apple gcc 4.0.1 on MacOS/Intel is broken, and suggest a workaround. configure script now detects Core/Duo arch. * Use -maltivec when checking for altivec.h. Fixes Gentoo bug #129304, thanks to Markus Dittrich. FFTW 3.1.1 * Performance improvements for Intel EMT64. * Performance improvements for large-size transforms with SIMD. * Cycle counter support for Intel icc and Visual C++ on x86-64. * In fftw-wisdom tool, replaced obsolete --impatient with --measure. * Fixed compilation failure with AIX/xlc; thanks to Joseph Thomas. * Windows DLL support for Fortran API (added missing __declspec(dllexport)). * SSE/SSE2 code works properly (i.e. disables itself) on older 386 and 486 CPUs lacking a CPUID instruction; thanks to Eric Korpela. FFTW 3.1 * Faster FFTW_ESTIMATE planner. * New (faster) algorithm for REDFT00/RODFT00 (type-I DCT/DST) of odd size. * "4-step" algorithm for faster FFTs of very large sizes (> 2^18). * Faster in-place real-data DFTs (for R2HC and HC2R r2r formats). * Faster in-place non-square transpositions (FFTW uses these internally for in-place FFTs, and you can also perform them explicitly using the guru interface). * Faster prime-size DFTs: implemented Bluestein's algorithm, as well as a zero-padded Rader variant to limit recursive use of Rader's algorithm. * SIMD support for split complex arrays. * Much faster Altivec/VMX performance. * New fftw_set_timelimit function to specify a (rough) upper bound to the planning time (does not affect ESTIMATE mode). * Removed --enable-3dnow support; use --enable-k7 instead. * FMA (fused multiply-add) version is now included in "standard" FFTW, and is enabled with --enable-fma (the default on PowerPC and Itanium). * Automatic detection of native architecture flag for gcc. New configure options: --enable-portable-binary and --with-gcc-arch=, for people distributing compiled binaries of FFTW (see manual). * Automatic detection of Altivec under Linux with gcc 3.4 (so that same binary should work on both Altivec and non-Altivec PowerPCs). * Compiler-specific tweaks/flags/workarounds for gcc 3.4, xlc, HP/UX, Solaris/Intel. * Various documentation clarifications. * 64-bit clean. (Fixes a bug affecting the split guru planner on 64-bit machines, reported by David Necas.) * Fixed Debian bug #259612: inadvertent use of SSE instructions on non-SSE machines (causing a crash) for --enable-sse binaries. * Fixed bug that caused HC2R transforms to destroy the input in certain cases, even if the user specified FFTW_PRESERVE_INPUT. * Fixed bug where wisdom would be lost under rare circumstances, causing excessive planning time. * FAQ notes bug in gcc-3.4.[1-3] that causes FFTW to crash with SSE/SSE2. * Fixed accidentally exported symbol that prohibited simultaneous linking to double/single multithreaded FFTW (thanks to Alessio Massaro). * Support Win32 threads under MinGW (thanks to Alessio Massaro). * Fixed problem with building DLL under Cygwin; thanks to Stephane Fillod. * Fix build failure if no Fortran compiler is found (thanks to Charles Radley for the bug report). * Fixed compilation failure with icc 8.0 and SSE/SSE2. Automatic detection of icc architecture flag (e.g. -xW). * Fixed compilation with OpenMP on AIX (thanks to Greg Bauer). * Fixed compilation failure on x86-64 with gcc (thanks to Orion Poplawski). * Incorporated patch from FreeBSD ports (FreeBSD does not have memalign, but its malloc is 16-byte aligned). * Cycle-counter compilation fixes for Itanium, Alpha, x86-64, Sparc, MacOS (thanks to Matt Boman, John Bowman, and James A. Treacy for reports/fixes). Added x86-64 cycle counter for PGI compilers, courtesy Cristiano Calonaci. * Fix compilation problem in test program due to C99 conflict. * Portability fix for import_system_wisdom with djgpp (thanks to Juan Manuel Guerrero). * Fixed compilation failure on MacOS 10.3 due to getopt conflict. * Work around Visual C++ (version 6/7) bug in SSE compilation; thanks to Eddie Yee for his detailed report. Changes from FFTW 3.1 beta 2: * Several minor compilation fixes. * Eliminate FFTW_TIMELIMIT flag and replace fftw_timelimit global with fftw_set_timelimit function. Make wisdom work with time-limited plans. Changes from FFTW 3.1 beta 1: * Fixes for creating DLLs under Windows; thanks to John Pavel for his feedback. * Fixed more 64-bit problems, thanks to John Pavel for the bug report. * Further speed improvements for Altivec/VMX. * Further speed improvements for non-square transpositions. * Many minor tweaks. FFTW 3.0.1 * Some speed improvements in SIMD code. * --without-cycle-counter option is removed. If no cycle counter is found, then the estimator is always used. A --with-slow-timer option is provided to force the use of lower-resolution timers. * Several fixes for compilation under Visual C++, with help from Stefane Ruel. * Added x86 cycle counter for Visual C++, with help from Morten Nissov. * Added S390 cycle counter, courtesy of James Treacy. * Added missing static keyword that prevented simultaneous linkage of different-precision versions; thanks to Rasmus Larsen for the bug report. * Corrected accidental omission of f77_wisdom.f file; thanks to Alan Watson. * Support -xopenmp flag for SunOS; thanks to John Lou for the bug report. * Compilation with HP/UX cc requires -Wp,-H128000 flag to increase preprocessor limits; thanks to Peter Vouras for the bug report. * Removed non-portable use of 'tempfile' in fftw-wisdom-to-conf script; thanks to Nicolas Decoster for the patch. * Added 'make smallcheck' target in tests/ directory, at the request of James Treacy. FFTW 3.0 Major goals of this release: * Speed: often 20% or more faster than FFTW 2.x, even without SIMD (see below). * Complete rewrite, to make it easier to add new algorithms and transforms. * New API, to support more general semantics. Other enhancements: * SIMD acceleration on supporting CPUs (SSE, SSE2, 3DNow!, and AltiVec). (With special thanks to Franz Franchetti for many experimental prototypes and to Stefan Kral for the vectorizing generator from fftwgel.) * True in-place 1d transforms of large sizes (as well as compressed twiddle tables for additional memory/cache savings). * More arbitrary placement of real & imaginary data, e.g. including interleaved (as in FFTW 2.x) as well as separate real/imag arrays. * Efficient prime-size transforms of real data. * Multidimensional transforms can operate on a subset of a larger matrix, and/or transform selected dimensions of a multidimensional array. * By popular demand, simultaneous linking to double precision (fftw), single precision (fftwf), and long-double precision (fftwl) versions of FFTW is now supported. * Cycle counters (on all modern CPUs) are exploited to speed planning. * Efficient transforms of real even/odd arrays, a.k.a. discrete cosine/sine transforms (types I-IV). (Currently work via pre/post processing of real transforms, ala FFTPACK, so are not optimal.) * DHTs (Discrete Hartley Transforms), again via post-processing of real transforms (and thus suboptimal, for now). * Support for linking to just those parts of FFTW that you need, greatly reducing the size of statically linked programs when only a limited set of transform sizes/types are required. * Canonical global wisdom file (/etc/fftw/wisdom) on Unix, along with a command-line tool (fftw-wisdom) to generate/update it. * Fortran API can be used with both g77 and non-g77 compilers simultaneously. * Multi-threaded version has optional OpenMP support. * Authors' good looks have greatly improved with age. Changes from 3.0beta3: * Separate FMA distribution to better exploit fused multiply-add instructions on PowerPC (and possibly other) architectures. * Performance improvements via some inlining tweaks. * fftw_flops now returns double arguments, not int, to avoid overflows for large sizes. * Workarounds for automake bugs. Changes from 3.0beta2: * The standard REDFT00/RODFT00 (DCT-I/DST-I) algorithm (used in FFTPACK, NR, etcetera) turns out to have poor numerical accuracy, so we replaced it with a slower routine that is more accurate. * The guru planner and execute functions now have two variants, one that takes complex arguments and one that takes separate real/imag pointers. * Execute and planner routines now automatically align the stack on x86, in case the calling program is misaligned. * README file for test program. * Fixed bugs in the combination of SIMD with multi-threaded transforms. * Eliminated internal fftw_threads_init function, which some people were calling accidentally instead of the fftw_init_threads API function. * Check for -openmp flag (Intel C compiler) when --enable-openmp is used. * Support AMD x86-64 SIMD and cycle counter. * Support SSE2 intrinsics in forthcoming gcc 3.3. Changes from 3.0beta1: * Faster in-place 1d transforms of non-power-of-two sizes. * SIMD improvements for in-place, multi-dimensional, and/or non-FFTW_PATIENT transforms. * Added support for hard-coded DCT/DST/DHT codelets of small sizes; the default distribution only includes hard-coded size-8 DCT-II/III, however. * Many minor improvements to the manual. Added section on using the codelet generator to customize and enhance FFTW. * The default 'make check' should now only take a few minutes; for more strenuous tests (which may take a day or so), do 'cd tests; make bigcheck'. * fftw_print_plan is split into fftw_fprint_plan and fftw_print_plan, where the latter uses stdout. * Fixed ability to compile with a C++ compiler. * Fixed support for C99 complex type under glibc. * Fixed problems with alloca under MinGW, AIX. * Workaround for gcc/SPARC bug. * Fixed multi-threaded initialization failure on IRIX due to lack of user-accessible PTHREAD_SCOPE_SYSTEM there. fftw-3.3.11/README0000644000175000017500000000411215170655127007115 FFTW is a free collection of fast C routines for computing the Discrete Fourier Transform in one or more dimensions. It includes complex, real, symmetric, and parallel transforms, and can handle arbitrary array sizes efficiently. FFTW is typically faster than other publically-available FFT implementations, and is even competitive with vendor-tuned libraries. (See our web page http://fftw.org/ for extensive benchmarks.) To achieve this performance, FFTW uses novel code-generation and runtime self-optimization techniques (along with many other tricks). The doc/ directory contains the manual in texinfo, PDF, info, and HTML formats. Frequently asked questions and answers can be found in the doc/FAQ/ directory in ASCII and HTML. For a quick introduction to calling FFTW, see the "Tutorial" section of the manual. INSTALLATION ------------ INSTALLATION FROM AN OFFICIAL RELEASE: Please read chapter 10 "Installation and Customization" of the manual. In short: ./configure make make install INSTALLATION FROM THE GIT REPOSITORY: First, install these programs: ocaml, ocamlbuild, autoconf, automake, indent, and libtool. You also need the ocaml Num library, which was standard in Ocaml but was removed without warning in OCaml 4.06.0 (3 Nov 2017). On Fedora 30, try installing the ocaml-num-devel package. Then, execute sh bootstrap.sh make The bootstrap.sh script runs configure directly, but if you need to re-run configure, you must pass the --enable-maintainer-mode flag: ./configure --enable-maintainer-mode [OTHER CONFIGURE FLAGS] Alternatively, you can run sh mkdist.sh which will run the entire bootstrapping process and generate .tar.gz files similar to those for official releases. CONTACTS -------- FFTW was written by Matteo Frigo and Steven G. Johnson. You can contact them at fftw@fftw.org. The latest version of FFTW, benchmarks, links, and other information can be found at the FFTW home page (http://www.fftw.org). You can also sign up to the fftw-announce Google group to receive (infrequent) updates and information about new releases. fftw-3.3.11/TODO0000644000175000017500000000250215170655127006726 TODO before FFTW-$2\pi$: * figure out how to autodetect NEON at runtime * figure out the arm cycle counter business * Wisdom: make it clear that it is specific to the exact fftw version and configuration. Report error codes when reading wisdom. Maybe have multiple system wisdom files, one per version? * DCT/DST codelets? which kinds? * investigate the addition-chain trig computation * I can't believe that there isn't a closed form for the omega array in Rader. * convolution problem type(s) * Explore the idea of having n < 0 in tensors, possibly to mean inverse DFT. * better estimator: possibly, let "other" cost be coef * n, where coef is a per-solver constant determined via some big numerical optimization/fit. * vector radix, multidimensional codelets * it may be a good idea to unify all those little loops that do copying, (X[i], X[n-i]) <- (X[i] + X[n-i], X[i] - X[n-i]), and multiplication of vectors by twiddle factors. * Pruned FFTs (basically, a vecloop that skips zeros). * Try FFTPACK-style back-and-forth (Stockham) FFT. (We tried this a few years ago and it was slower, but perhaps matters have changed.) * Generate assembly directly for more processors, or maybe fork gcc. =) * ensure that threaded solvers generate (block_size % 4 == 0) to allow SIMD to be used. * memoize triggen. fftw-3.3.11/compile0000755000175000017500000001670514767572401007632 #! /bin/sh # Wrapper for compilers which do not understand '-c -o'. scriptversion=2024-06-19.01; # UTC # Copyright (C) 1999-2024 Free Software Foundation, Inc. # Written by Tom Tromey . # # 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, 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, see . # 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. # This file is maintained in Automake, please report # bugs to or send patches to # . nl=' ' # We need space, tab and new line, in precisely that order. Quoting is # there to prevent tools from complaining about whitespace usage. IFS=" "" $nl" file_conv= # func_file_conv build_file lazy # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. If the determined conversion # type is listed in (the comma separated) LAZY, no conversion will # take place. func_file_conv () { file=$1 case $file in / | /[!/]*) # absolute file, and not a UNC file if test -z "$file_conv"; then # lazily determine how to convert abs files case `uname -s` in MINGW*) file_conv=mingw ;; CYGWIN* | MSYS*) file_conv=cygwin ;; *) file_conv=wine ;; esac fi case $file_conv/,$2, in *,$file_conv,*) ;; mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; cygwin/* | msys/*) file=`cygpath -m "$file" || echo "$file"` ;; wine/*) file=`winepath -w "$file" || echo "$file"` ;; esac ;; esac } # func_cl_dashL linkdir # Make cl look for libraries in LINKDIR func_cl_dashL () { func_file_conv "$1" if test -z "$lib_path"; then lib_path=$file else lib_path="$lib_path;$file" fi linker_opts="$linker_opts -LIBPATH:$file" } # func_cl_dashl library # Do a library search-path lookup for cl func_cl_dashl () { lib=$1 found=no save_IFS=$IFS IFS=';' for dir in $lib_path $LIB do IFS=$save_IFS if $shared && test -f "$dir/$lib.dll.lib"; then found=yes lib=$dir/$lib.dll.lib break fi if test -f "$dir/$lib.lib"; then found=yes lib=$dir/$lib.lib break fi if test -f "$dir/lib$lib.a"; then found=yes lib=$dir/lib$lib.a break fi done IFS=$save_IFS if test "$found" != yes; then lib=$lib.lib fi } # func_cl_wrapper cl arg... # Adjust compile command to suit cl func_cl_wrapper () { # Assume a capable shell lib_path= shared=: linker_opts= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. eat=1 case $2 in *.o | *.lo | *.[oO][bB][jJ]) func_file_conv "$2" set x "$@" -Fo"$file" shift ;; *) func_file_conv "$2" set x "$@" -Fe"$file" shift ;; esac ;; -I) eat=1 func_file_conv "$2" mingw set x "$@" -I"$file" shift ;; -I*) func_file_conv "${1#-I}" mingw set x "$@" -I"$file" shift ;; -l) eat=1 func_cl_dashl "$2" set x "$@" "$lib" shift ;; -l*) func_cl_dashl "${1#-l}" set x "$@" "$lib" shift ;; -L) eat=1 func_cl_dashL "$2" ;; -L*) func_cl_dashL "${1#-L}" ;; -static) shared=false ;; -Wl,*) arg=${1#-Wl,} save_ifs="$IFS"; IFS=',' for flag in $arg; do IFS="$save_ifs" linker_opts="$linker_opts $flag" done IFS="$save_ifs" ;; -Xlinker) eat=1 linker_opts="$linker_opts $2" ;; -*) set x "$@" "$1" shift ;; *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) func_file_conv "$1" set x "$@" -Tp"$file" shift ;; *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) func_file_conv "$1" mingw set x "$@" "$file" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -n "$linker_opts"; then linker_opts="-link$linker_opts" fi exec "$@" $linker_opts exit 1 } eat= case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: compile [--help] [--version] PROGRAM [ARGS] Wrapper for compilers which do not understand '-c -o'. Remove '-o dest.o' from ARGS, run PROGRAM with the remaining arguments, and rename the output as expected. If you are trying to build a whole package this is not the right script to run: please start by reading the file 'INSTALL'. Report bugs to . GNU Automake home page: . General help using GNU software: . EOF exit $? ;; -v | --v*) echo "compile (GNU Automake) $scriptversion" exit $? ;; cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ clang-cl | *[/\\]clang-cl | clang-cl.exe | *[/\\]clang-cl.exe | \ icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac ofile= cfile= for arg do if test -n "$eat"; then eat= else case $1 in -o) # configure might choose to run compile as 'compile cc -o foo foo.c'. # So we strip '-o arg' only if arg is an object. eat=1 case $2 in *.o | *.obj) ofile=$2 ;; *) set x "$@" -o "$2" shift ;; esac ;; *.c) cfile=$1 set x "$@" "$1" shift ;; *) set x "$@" "$1" shift ;; esac fi shift done if test -z "$ofile" || test -z "$cfile"; then # If no '-o' option was seen then we might have been invoked from a # pattern rule where we don't need one. That is ok -- this is a # normal compilation that the losing compiler can handle. If no # '.c' file was seen then we are probably linking. That is also # ok. exec "$@" fi # Name of file we expect compiler to create. cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` # Create the lock directory. # Note: use '[/\\:.-]' here to ensure that we don't use the same name # that we are using for the .o file. Also, base the name on the expected # object file name, since that is what matters with a parallel build. lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d while true; do if mkdir "$lockdir" >/dev/null 2>&1; then break fi sleep 1 done # FIXME: race condition here if user kills between mkdir and trap. trap "rmdir '$lockdir'; exit 1" 1 2 15 # Run the compile. "$@" ret=$? if test -f "$cofile"; then test "$cofile" = "$ofile" || mv "$cofile" "$ofile" elif test -f "${cofile}bj"; then test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" fi rmdir "$lockdir" exit $ret # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: fftw-3.3.11/config.guess0000755000175000017500000014306714770044664010575 #! /bin/sh # Attempt to guess a canonical system name. # Copyright 1992-2024 Free Software Foundation, Inc. # shellcheck disable=SC2006,SC2268 # see below for rationale timestamp='2024-07-27' # 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 # the Free Software Foundation, either version 3 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, see . # # 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. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: # https://git.savannah.gnu.org/cgit/config.git/plain/config.guess # # Please send patches to . # The "shellcheck disable" line above the timestamp inhibits complaints # about features and limitations of the classic Bourne shell that were # superseded or lifted in POSIX. However, this script identifies a wide # variety of pre-POSIX systems that do not have POSIX shells at all, and # even some reasonably current systems (Solaris 10 as case-in-point) still # have a pre-POSIX /bin/sh. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system '$me' is run on. Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright 1992-2024 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try '$me --help' for more information." # Parse command line 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. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi # Just in case it came from the environment. GUESS= # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # 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. tmp= # shellcheck disable=SC2172 trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 set_cc_for_build() { # prevent multiple calls if $tmp is already set test "$tmp" && return 0 : "${TMPDIR=/tmp}" # shellcheck disable=SC2039,SC3028 { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } dummy=$tmp/dummy case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in ,,) echo "int x;" > "$dummy.c" for driver in cc gcc c17 c99 c89 ; do if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then CC_FOR_BUILD=$driver 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 } # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if test -f /.attbin/uname ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown case $UNAME_SYSTEM in Linux|GNU|GNU/*) LIBC=unknown set_cc_for_build cat <<-EOF > "$dummy.c" #if defined(__ANDROID__) LIBC=android #else #include #if defined(__UCLIBC__) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc #elif defined(__GLIBC__) LIBC=gnu #elif defined(__LLVM_LIBC__) LIBC=llvm #else #include /* First heuristic to detect musl libc. */ #ifdef __DEFINED_va_list LIBC=musl #endif #endif #endif EOF cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` eval "$cc_set_libc" # Second heuristic to detect musl libc. if [ "$LIBC" = unknown ] && command -v ldd >/dev/null && ldd --version 2>&1 | grep -q ^musl; then LIBC=musl fi # If the system lacks a compiler, then just pick glibc. # We could probably try harder. if [ "$LIBC" = unknown ]; then LIBC=gnu fi ;; esac # Note: order is significant - the case branches are not exclusive. case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ echo unknown)` case $UNAME_MACHINE_ARCH in aarch64eb) machine=aarch64_be-unknown ;; armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; earmv*) arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` machine=${arch}${endian}-unknown ;; *) machine=$UNAME_MACHINE_ARCH-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently (or will in the future) and ABI. case $UNAME_MACHINE_ARCH in earm*) os=netbsdelf ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # Determine ABI tags. case $UNAME_MACHINE_ARCH in earm*) expr='s/^earmv[0-9]/-eabi/;s/eb$//' abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` ;; 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/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. GUESS=$machine-${os}${release}${abi-} ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE ;; *:SecBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'` GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE ;; *:LibertyBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE ;; *:MidnightBSD:*:*) GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE ;; *:ekkoBSD:*:*) GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE ;; *:SolidBSD:*:*) GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE ;; *:OS108:*:*) GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE ;; macppc:MirBSD:*:*) GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE ;; *:MirBSD:*:*) GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE ;; *:Sortix:*:*) GUESS=$UNAME_MACHINE-unknown-sortix ;; *:Twizzler:*:*) GUESS=$UNAME_MACHINE-unknown-twizzler ;; *:Redox:*:*) GUESS=$UNAME_MACHINE-unknown-redox ;; mips:OSF1:*.*) GUESS=mips-dec-osf1 ;; alpha:OSF1:*:*) # Reset EXIT trap before exiting to avoid spurious non-zero exit code. trap '' 0 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. OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` GUESS=$UNAME_MACHINE-dec-osf$OSF_REL ;; Amiga*:UNIX_System_V:4.0:*) GUESS=m68k-unknown-sysv4 ;; *:[Aa]miga[Oo][Ss]:*:*) GUESS=$UNAME_MACHINE-unknown-amigaos ;; *:[Mm]orph[Oo][Ss]:*:*) GUESS=$UNAME_MACHINE-unknown-morphos ;; *:OS/390:*:*) GUESS=i370-ibm-openedition ;; *:z/VM:*:*) GUESS=s390-ibm-zvmoe ;; *:OS400:*:*) GUESS=powerpc-ibm-os400 ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) GUESS=arm-acorn-riscix$UNAME_RELEASE ;; arm*:riscos:*:*|arm*:RISCOS:*:*) GUESS=arm-unknown-riscos ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) GUESS=hppa1.1-hitachi-hiuxmpp ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. case `(/bin/universe) 2>/dev/null` in att) GUESS=pyramid-pyramid-sysv3 ;; *) GUESS=pyramid-pyramid-bsd ;; esac ;; NILE*:*:*:dcosx) GUESS=pyramid-pyramid-svr4 ;; DRS?6000:unix:4.0:6*) GUESS=sparc-icl-nx6 ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) GUESS=sparc-icl-nx7 ;; esac ;; s390x:SunOS:*:*) SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL ;; sun4H:SunOS:5.*:*) SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` GUESS=sparc-hal-solaris2$SUN_REL ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` GUESS=sparc-sun-solaris2$SUN_REL ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) GUESS=i386-pc-auroraux$UNAME_RELEASE ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) set_cc_for_build SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if test "$CC_FOR_BUILD" != no_compiler_found; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH=x86_64 fi fi SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` GUESS=$SUN_ARCH-pc-solaris2$SUN_REL ;; 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. SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` GUESS=sparc-sun-solaris3$SUN_REL ;; sun4*:SunOS:*:*) case `/usr/bin/arch -k` in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like '4.1.3-JL'. SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'` GUESS=sparc-sun-sunos$SUN_REL ;; sun3*:SunOS:*:*) GUESS=m68k-sun-sunos$UNAME_RELEASE ;; 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 case `/bin/arch` in sun3) GUESS=m68k-sun-sunos$UNAME_RELEASE ;; sun4) GUESS=sparc-sun-sunos$UNAME_RELEASE ;; esac ;; aushp:SunOS:*:*) GUESS=sparc-auspex-sunos$UNAME_RELEASE ;; # 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 # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) GUESS=m68k-atari-mint$UNAME_RELEASE ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) GUESS=m68k-atari-mint$UNAME_RELEASE ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) GUESS=m68k-atari-mint$UNAME_RELEASE ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) GUESS=m68k-milan-mint$UNAME_RELEASE ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) GUESS=m68k-hades-mint$UNAME_RELEASE ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) GUESS=m68k-unknown-mint$UNAME_RELEASE ;; m68k:machten:*:*) GUESS=m68k-apple-machten$UNAME_RELEASE ;; powerpc:machten:*:*) GUESS=powerpc-apple-machten$UNAME_RELEASE ;; RISC*:Mach:*:*) GUESS=mips-dec-mach_bsd4.3 ;; RISC*:ULTRIX:*:*) GUESS=mips-dec-ultrix$UNAME_RELEASE ;; VAX*:ULTRIX*:*:*) GUESS=vax-dec-ultrix$UNAME_RELEASE ;; 2020:CLIX:*:* | 2430:CLIX:*:*) GUESS=clipper-intergraph-clix$UNAME_RELEASE ;; mips:*:*:UMIPS | mips:*:*:RISCos) set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); #endif #endif 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; } GUESS=mips-mips-riscos$UNAME_RELEASE ;; Motorola:PowerMAX_OS:*:*) GUESS=powerpc-motorola-powermax ;; Motorola:*:4.3:PL8-*) GUESS=powerpc-harris-powermax ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) GUESS=powerpc-harris-powermax ;; Night_Hawk:Power_UNIX:*:*) GUESS=powerpc-harris-powerunix ;; m88k:CX/UX:7*:*) GUESS=m88k-harris-cxux7 ;; m88k:*:4*:R4*) GUESS=m88k-motorola-sysv4 ;; m88k:*:3*:R3*) GUESS=m88k-motorola-sysv3 ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 then if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ test "$TARGET_BINARY_INTERFACE"x = x then GUESS=m88k-dg-dgux$UNAME_RELEASE else GUESS=m88k-dg-dguxbcs$UNAME_RELEASE fi else GUESS=i586-dg-dgux$UNAME_RELEASE fi ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) GUESS=m88k-dolphin-sysv3 ;; M88*:*:R3*:*) # Delta 88k system running SVR3 GUESS=m88k-motorola-sysv3 ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) GUESS=m88k-tektronix-sysv3 ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) GUESS=m68k-tektronix-bsd ;; *:IRIX*:*:*) IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'` GUESS=mips-sgi-irix$IRIX_REL ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) GUESS=i386-ibm-aix ;; ia64:AIX:*:*) if test -x /usr/bin/oslevel ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV=$UNAME_VERSION.$UNAME_RELEASE fi GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #include int main () { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` then GUESS=$SYSTEM_NAME else GUESS=rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then GUESS=rs6000-ibm-aix3.2.4 else GUESS=rs6000-ibm-aix3.2 fi ;; *:AIX:*:[4567]) 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 IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if test -x /usr/bin/lslpp ; then IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \ awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else IBM_REV=$UNAME_VERSION.$UNAME_RELEASE fi GUESS=$IBM_ARCH-ibm-aix$IBM_REV ;; *:AIX:*:*) GUESS=rs6000-ibm-aix ;; ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) GUESS=romp-ibm-bsd4.4 ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) GUESS=rs6000-bull-bosx ;; DPX/2?00:B.O.S.:*:*) GUESS=m68k-bull-sysv3 ;; 9000/[34]??:4.3bsd:1.*:*) GUESS=m68k-hp-bsd ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) GUESS=m68k-hp-bsd4.4 ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` case $UNAME_MACHINE in 9000/31?) HP_ARCH=m68000 ;; 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if test -x /usr/bin/getconf; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case $sc_cpu_version in 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case $sc_kernel_bits in 32) HP_ARCH=hppa2.0n ;; 64) HP_ARCH=hppa2.0w ;; '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi if test "$HP_ARCH" = ""; then set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } 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 test "$HP_ARCH" = hppa2.0w then 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 -q __LP64__ then HP_ARCH=hppa2.0w else HP_ARCH=hppa64 fi fi GUESS=$HP_ARCH-hp-hpux$HPUX_REV ;; ia64:HP-UX:*:*) HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` GUESS=ia64-hp-hpux$HPUX_REV ;; 3050*:HI-UX:*:*) set_cc_for_build sed 's/^ //' << EOF > "$dummy.c" #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } GUESS=unknown-hitachi-hiuxwe2 ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) GUESS=hppa1.1-hp-bsd ;; 9000/8??:4.3bsd:*:*) GUESS=hppa1.0-hp-bsd ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) GUESS=hppa1.0-hp-mpeix ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) GUESS=hppa1.1-hp-osf ;; hp8??:OSF1:*:*) GUESS=hppa1.0-hp-osf ;; i*86:OSF1:*:*) if test -x /usr/sbin/sysversion ; then GUESS=$UNAME_MACHINE-unknown-osf1mk else GUESS=$UNAME_MACHINE-unknown-osf1 fi ;; parisc*:Lites*:*:*) GUESS=hppa1.1-hp-lites ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) GUESS=c1-convex-bsd ;; 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*:*) GUESS=c34-convex-bsd ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) GUESS=c38-convex-bsd ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) GUESS=c4-convex-bsd ;; CRAY*Y-MP:*:*:*) CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` GUESS=ymp-cray-unicos$CRAY_REL ;; 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:*:*:*) CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` GUESS=t90-cray-unicos$CRAY_REL ;; CRAY*T3E:*:*:*) CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` GUESS=alphaev5-cray-unicosmk$CRAY_REL ;; CRAY*SV1:*:*:*) CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` GUESS=sv1-cray-unicos$CRAY_REL ;; *:UNICOS/mp:*:*) CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` GUESS=craynv-cray-unicosmp$CRAY_REL ;; 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/ /_/'` GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} ;; 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/ /_/'` GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE ;; sparc*:BSD/OS:*:*) GUESS=sparc-unknown-bsdi$UNAME_RELEASE ;; *:BSD/OS:*:*) GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE ;; arm:FreeBSD:*:*) UNAME_PROCESSOR=`uname -p` set_cc_for_build if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi else FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf fi ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`uname -p` case $UNAME_PROCESSOR in amd64) UNAME_PROCESSOR=x86_64 ;; i386) UNAME_PROCESSOR=i586 ;; esac FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL ;; i*:CYGWIN*:*) GUESS=$UNAME_MACHINE-pc-cygwin ;; *:MINGW64*:*) GUESS=$UNAME_MACHINE-pc-mingw64 ;; *:MINGW*:*) GUESS=$UNAME_MACHINE-pc-mingw32 ;; *:MSYS*:*) GUESS=$UNAME_MACHINE-pc-msys ;; i*:PW*:*) GUESS=$UNAME_MACHINE-pc-pw32 ;; *:SerenityOS:*:*) GUESS=$UNAME_MACHINE-pc-serenity ;; *:Interix*:*) case $UNAME_MACHINE in x86) GUESS=i586-pc-interix$UNAME_RELEASE ;; authenticamd | genuineintel | EM64T) GUESS=x86_64-unknown-interix$UNAME_RELEASE ;; IA64) GUESS=ia64-unknown-interix$UNAME_RELEASE ;; esac ;; i*:UWIN*:*) GUESS=$UNAME_MACHINE-pc-uwin ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) GUESS=x86_64-pc-cygwin ;; prep*:SunOS:5.*:*) SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` GUESS=powerpcle-unknown-solaris2$SUN_REL ;; *:GNU:*:*) # the GNU system GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'` GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'` GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL ;; *:GNU/*:*:*) # other systems with GNU libc and userland GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"` GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC ;; x86_64:[Mm]anagarm:*:*|i?86:[Mm]anagarm:*:*) GUESS="$UNAME_MACHINE-pc-managarm-mlibc" ;; *:[Mm]anagarm:*:*) GUESS="$UNAME_MACHINE-unknown-managarm-mlibc" ;; *:Minix:*:*) GUESS=$UNAME_MACHINE-unknown-minix ;; aarch64:Linux:*:*) set_cc_for_build CPU=$UNAME_MACHINE LIBCABI=$LIBC if test "$CC_FOR_BUILD" != no_compiler_found; then ABI=64 sed 's/^ //' << EOF > "$dummy.c" #ifdef __ARM_EABI__ #ifdef __ARM_PCS_VFP ABI=eabihf #else ABI=eabi #endif #endif EOF cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'` eval "$cc_set_abi" case $ABI in eabi | eabihf) CPU=armv8l; LIBCABI=$LIBC$ABI ;; esac fi GUESS=$CPU-unknown-linux-$LIBCABI ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC=gnulibc1 ; fi GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; arm*:Linux:*:*) set_cc_for_build if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then GUESS=$UNAME_MACHINE-unknown-linux-$LIBC else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi else GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf fi fi ;; avr32*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; cris:Linux:*:*) GUESS=$UNAME_MACHINE-axis-linux-$LIBC ;; crisv32:Linux:*:*) GUESS=$UNAME_MACHINE-axis-linux-$LIBC ;; e2k:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; frv:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; hexagon:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; i*86:Linux:*:*) GUESS=$UNAME_MACHINE-pc-linux-$LIBC ;; ia64:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; k1om:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; kvx:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; kvx:cos:*:*) GUESS=$UNAME_MACHINE-unknown-cos ;; kvx:mbr:*:*) GUESS=$UNAME_MACHINE-unknown-mbr ;; loongarch32:Linux:*:* | loongarch64:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; m32r*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; m68*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; mips:Linux:*:* | mips64:Linux:*:*) set_cc_for_build IS_GLIBC=0 test x"${LIBC}" = xgnu && IS_GLIBC=1 sed 's/^ //' << EOF > "$dummy.c" #undef CPU #undef mips #undef mipsel #undef mips64 #undef mips64el #if ${IS_GLIBC} && defined(_ABI64) LIBCABI=gnuabi64 #else #if ${IS_GLIBC} && defined(_ABIN32) LIBCABI=gnuabin32 #else LIBCABI=${LIBC} #endif #endif #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 CPU=mipsisa64r6 #else #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 CPU=mipsisa32r6 #else #if defined(__mips64) CPU=mips64 #else CPU=mips #endif #endif #endif #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) MIPS_ENDIAN=el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) MIPS_ENDIAN= #else MIPS_ENDIAN= #endif #endif EOF cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'` eval "$cc_set_vars" test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } ;; mips64el:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; openrisc*:Linux:*:*) GUESS=or1k-unknown-linux-$LIBC ;; or32:Linux:*:* | or1k*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; padre:Linux:*:*) GUESS=sparc-unknown-linux-$LIBC ;; parisc64:Linux:*:* | hppa64:Linux:*:*) GUESS=hppa64-unknown-linux-$LIBC ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;; PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;; *) GUESS=hppa-unknown-linux-$LIBC ;; esac ;; ppc64:Linux:*:*) GUESS=powerpc64-unknown-linux-$LIBC ;; ppc:Linux:*:*) GUESS=powerpc-unknown-linux-$LIBC ;; ppc64le:Linux:*:*) GUESS=powerpc64le-unknown-linux-$LIBC ;; ppcle:Linux:*:*) GUESS=powerpcle-unknown-linux-$LIBC ;; riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; s390:Linux:*:* | s390x:Linux:*:*) GUESS=$UNAME_MACHINE-ibm-linux-$LIBC ;; sh64*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; sh*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; sparc:Linux:*:* | sparc64:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; tile*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; vax:Linux:*:*) GUESS=$UNAME_MACHINE-dec-linux-$LIBC ;; x86_64:Linux:*:*) set_cc_for_build CPU=$UNAME_MACHINE LIBCABI=$LIBC if test "$CC_FOR_BUILD" != no_compiler_found; then ABI=64 sed 's/^ //' << EOF > "$dummy.c" #ifdef __i386__ ABI=x86 #else #ifdef __ILP32__ ABI=x32 #endif #endif EOF cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'` eval "$cc_set_abi" case $ABI in x86) CPU=i686 ;; x32) LIBCABI=${LIBC}x32 ;; esac fi GUESS=$CPU-pc-linux-$LIBCABI ;; xtensa*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; 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. GUESS=i386-sequent-sysv4 ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION ;; i*86:OS/2:*:*) # If we were able to find 'uname', then EMX Unix compatibility # is probably installed. GUESS=$UNAME_MACHINE-pc-os2-emx ;; i*86:XTS-300:*:STOP) GUESS=$UNAME_MACHINE-unknown-stop ;; i*86:atheos:*:*) GUESS=$UNAME_MACHINE-unknown-atheos ;; i*86:syllable:*:*) GUESS=$UNAME_MACHINE-pc-syllable ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) GUESS=i386-unknown-lynxos$UNAME_RELEASE ;; i*86:*DOS:*:*) GUESS=$UNAME_MACHINE-pc-msdosdjgpp ;; i*86:*:4.*:*) UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL else GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL fi ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL else GUESS=$UNAME_MACHINE-pc-sysv32 fi ;; 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 i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. GUESS=i586-pc-msdosdjgpp ;; Intel:Mach:3*:*) GUESS=i386-pc-mach3 ;; paragon:*:*:*) GUESS=i860-intel-osf1 ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4 fi ;; mini*:CTIX:SYS*5:*) # "miniframe" GUESS=m68010-convergent-sysv ;; mc68k:UNIX:SYSTEM5:3.51m) GUESS=m68k-convergent-sysv ;; M680?0:D-NIX:5.3:*) GUESS=m68k-diab-dnix ;; 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; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' 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; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) GUESS=m68k-unknown-lynxos$UNAME_RELEASE ;; mc68030:UNIX_System_V:4.*:*) GUESS=m68k-atari-sysv4 ;; TSUNAMI:LynxOS:2.*:*) GUESS=sparc-unknown-lynxos$UNAME_RELEASE ;; rs6000:LynxOS:2.*:*) GUESS=rs6000-unknown-lynxos$UNAME_RELEASE ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) GUESS=powerpc-unknown-lynxos$UNAME_RELEASE ;; SM[BE]S:UNIX_SV:*:*) GUESS=mips-dde-sysv$UNAME_RELEASE ;; RM*:ReliantUNIX-*:*:*) GUESS=mips-sni-sysv4 ;; RM*:SINIX-*:*:*) GUESS=mips-sni-sysv4 ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` GUESS=$UNAME_MACHINE-sni-sysv4 else GUESS=ns32k-sni-sysv fi ;; PENTIUM:*:4.0*:*) # Unisys 'ClearPath HMP IX 4000' SVR4/MP effort # says GUESS=i586-unisys-sysv4 ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm GUESS=hppa1.1-stratus-sysv4 ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. GUESS=i860-stratus-sysv4 ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. GUESS=$UNAME_MACHINE-stratus-vos ;; *:VOS:*:*) # From Paul.Green@stratus.com. GUESS=hppa1.1-stratus-vos ;; mc68*:A/UX:*:*) GUESS=m68k-apple-aux$UNAME_RELEASE ;; news*:NEWS-OS:6*:*) GUESS=mips-sony-newsos6 ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if test -d /usr/nec; then GUESS=mips-nec-sysv$UNAME_RELEASE else GUESS=mips-unknown-sysv$UNAME_RELEASE fi ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. GUESS=powerpc-be-beos ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. GUESS=powerpc-apple-beos ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. GUESS=i586-pc-beos ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. GUESS=i586-pc-haiku ;; ppc:Haiku:*:*) # Haiku running on Apple PowerPC GUESS=powerpc-apple-haiku ;; *:Haiku:*:*) # Haiku modern gcc (not bound by BeOS compat) GUESS=$UNAME_MACHINE-unknown-haiku ;; SX-4:SUPER-UX:*:*) GUESS=sx4-nec-superux$UNAME_RELEASE ;; SX-5:SUPER-UX:*:*) GUESS=sx5-nec-superux$UNAME_RELEASE ;; SX-6:SUPER-UX:*:*) GUESS=sx6-nec-superux$UNAME_RELEASE ;; SX-7:SUPER-UX:*:*) GUESS=sx7-nec-superux$UNAME_RELEASE ;; SX-8:SUPER-UX:*:*) GUESS=sx8-nec-superux$UNAME_RELEASE ;; SX-8R:SUPER-UX:*:*) GUESS=sx8r-nec-superux$UNAME_RELEASE ;; SX-ACE:SUPER-UX:*:*) GUESS=sxace-nec-superux$UNAME_RELEASE ;; Power*:Rhapsody:*:*) GUESS=powerpc-apple-rhapsody$UNAME_RELEASE ;; *:Rhapsody:*:*) GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE ;; arm64:Darwin:*:*) GUESS=aarch64-apple-darwin$UNAME_RELEASE ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` case $UNAME_PROCESSOR in unknown) UNAME_PROCESSOR=powerpc ;; esac if command -v xcode-select > /dev/null 2> /dev/null && \ ! xcode-select --print-path > /dev/null 2> /dev/null ; then # Avoid executing cc if there is no toolchain installed as # cc will be a stub that puts up a graphical alert # prompting the user to install developer tools. CC_FOR_BUILD=no_compiler_found else set_cc_for_build fi if test "$CC_FOR_BUILD" != no_compiler_found; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in i386) UNAME_PROCESSOR=x86_64 ;; powerpc) UNAME_PROCESSOR=powerpc64 ;; esac fi # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_PPC >/dev/null then UNAME_PROCESSOR=powerpc fi elif test "$UNAME_PROCESSOR" = i386 ; then # uname -m returns i386 or x86_64 UNAME_PROCESSOR=$UNAME_MACHINE fi GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE ;; *:QNX:*:4*) GUESS=i386-pc-qnx ;; NEO-*:NONSTOP_KERNEL:*:*) GUESS=neo-tandem-nsk$UNAME_RELEASE ;; NSE-*:NONSTOP_KERNEL:*:*) GUESS=nse-tandem-nsk$UNAME_RELEASE ;; NSR-*:NONSTOP_KERNEL:*:*) GUESS=nsr-tandem-nsk$UNAME_RELEASE ;; NSV-*:NONSTOP_KERNEL:*:*) GUESS=nsv-tandem-nsk$UNAME_RELEASE ;; NSX-*:NONSTOP_KERNEL:*:*) GUESS=nsx-tandem-nsk$UNAME_RELEASE ;; *:NonStop-UX:*:*) GUESS=mips-compaq-nonstopux ;; BS2000:POSIX*:*:*) GUESS=bs2000-siemens-sysv ;; DS/*:UNIX_System_V:*:*) GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "${cputype-}" = 386; then UNAME_MACHINE=i386 elif test "x${cputype-}" != x; then UNAME_MACHINE=$cputype fi GUESS=$UNAME_MACHINE-unknown-plan9 ;; *:TOPS-10:*:*) GUESS=pdp10-unknown-tops10 ;; *:TENEX:*:*) GUESS=pdp10-unknown-tenex ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) GUESS=pdp10-dec-tops20 ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) GUESS=pdp10-xkl-tops20 ;; *:TOPS-20:*:*) GUESS=pdp10-unknown-tops20 ;; *:ITS:*:*) GUESS=pdp10-unknown-its ;; SEI:*:*:SEIUX) GUESS=mips-sei-seiux$UNAME_RELEASE ;; *:DragonFly:*:*) DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case $UNAME_MACHINE in A*) GUESS=alpha-dec-vms ;; I*) GUESS=ia64-dec-vms ;; V*) GUESS=vax-dec-vms ;; esac ;; *:XENIX:*:SysV) GUESS=i386-pc-xenix ;; i*86:skyos:*:*) SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'` GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL ;; i*86:rdos:*:*) GUESS=$UNAME_MACHINE-pc-rdos ;; i*86:Fiwix:*:*) GUESS=$UNAME_MACHINE-pc-fiwix ;; *:AROS:*:*) GUESS=$UNAME_MACHINE-unknown-aros ;; x86_64:VMkernel:*:*) GUESS=$UNAME_MACHINE-unknown-esx ;; amd64:Isilon\ OneFS:*:*) GUESS=x86_64-unknown-onefs ;; *:Unleashed:*:*) GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE ;; *:Ironclad:*:*) GUESS=$UNAME_MACHINE-unknown-ironclad ;; esac # Do we have a guess based on uname results? if test "x$GUESS" != x; then echo "$GUESS" exit fi # No uname command or uname output not recognized. set_cc_for_build cat > "$dummy.c" < #include #endif #if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) #if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) #include #if defined(_SIZE_T_) || defined(SIGLOST) #include #endif #endif #endif int main () { #if defined (sony) #if defined (MIPSEB) /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, I don't know.... */ printf ("mips-sony-bsd\n"); exit (0); #else #include printf ("m68k-sony-newsos%s\n", #ifdef NEWSOS4 "4" #else "" #endif ); exit (0); #endif #endif #if defined (NeXT) #if !defined (__ARCHITECTURE__) #define __ARCHITECTURE__ "m68k" #endif int version; version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; if (version < 4) printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); else printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); exit (0); #endif #if defined (MULTIMAX) || defined (n16) #if defined (UMAXV) printf ("ns32k-encore-sysv\n"); exit (0); #else #if defined (CMU) printf ("ns32k-encore-mach\n"); exit (0); #else printf ("ns32k-encore-bsd\n"); exit (0); #endif #endif #endif #if defined (__386BSD__) printf ("i386-pc-bsd\n"); exit (0); #endif #if defined (sequent) #if defined (i386) printf ("i386-sequent-dynix\n"); exit (0); #endif #if defined (ns32000) printf ("ns32k-sequent-dynix\n"); exit (0); #endif #endif #if defined (_SEQUENT_) struct utsname un; uname(&un); if (strncmp(un.version, "V2", 2) == 0) { printf ("i386-sequent-ptx2\n"); exit (0); } if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ printf ("i386-sequent-ptx1\n"); exit (0); } printf ("i386-sequent-ptx\n"); exit (0); #endif #if defined (vax) #if !defined (ultrix) #include #if defined (BSD) #if BSD == 43 printf ("vax-dec-bsd4.3\n"); exit (0); #else #if BSD == 199006 printf ("vax-dec-bsd4.3reno\n"); exit (0); #else printf ("vax-dec-bsd\n"); exit (0); #endif #endif #else printf ("vax-dec-bsd\n"); exit (0); #endif #else #if defined(_SIZE_T_) || defined(SIGLOST) struct utsname un; uname (&un); printf ("vax-dec-ultrix%s\n", un.release); exit (0); #else printf ("vax-dec-ultrix\n"); exit (0); #endif #endif #endif #if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) #if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) #if defined(_SIZE_T_) || defined(SIGLOST) struct utsname *un; uname (&un); printf ("mips-dec-ultrix%s\n", un.release); exit (0); #else printf ("mips-dec-ultrix\n"); exit (0); #endif #endif #endif #if defined (alliant) && defined (i860) printf ("i860-alliant-bsd\n"); exit (0); #endif exit (1); } 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; } echo "$0: unable to guess system type" >&2 case $UNAME_MACHINE:$UNAME_SYSTEM in mips:Linux | mips64:Linux) # If we got here on MIPS GNU/Linux, output extra information. cat >&2 <&2 <&2 </dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = "$UNAME_MACHINE" UNAME_RELEASE = "$UNAME_RELEASE" UNAME_SYSTEM = "$UNAME_SYSTEM" UNAME_VERSION = "$UNAME_VERSION" EOF fi exit 1 # Local variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: fftw-3.3.11/config.sub0000755000175000017500000011544114770044664010233 #! /bin/sh # Configuration validation subroutine script. # Copyright 1992-2024 Free Software Foundation, Inc. # shellcheck disable=SC2006,SC2268,SC2162 # see below for rationale timestamp='2024-05-27' # 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 # the Free Software Foundation, either version 3 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, see . # # 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. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # Please send patches to . # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # https://git.savannah.gnu.org/cgit/config.git/plain/config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. # The "shellcheck disable" line above the timestamp inhibits complaints # about features and limitations of the classic Bourne shell that were # superseded or lifted in POSIX. However, this script identifies a wide # variety of pre-POSIX systems that do not have POSIX shells at all, and # even some reasonably current systems (Solaris 10 as case-in-point) still # have a pre-POSIX /bin/sh. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright 1992-2024 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try '$me --help' for more information." # Parse command line 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. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; *local*) # First pass through any local machine types. echo "$1" exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Split fields of configuration type saved_IFS=$IFS IFS="-" read field1 field2 field3 field4 <&2 exit 1 ;; *-*-*-*) basic_machine=$field1-$field2 basic_os=$field3-$field4 ;; *-*-*) # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two # parts maybe_os=$field2-$field3 case $maybe_os in cloudabi*-eabi* \ | kfreebsd*-gnu* \ | knetbsd*-gnu* \ | kopensolaris*-gnu* \ | linux-* \ | managarm-* \ | netbsd*-eabi* \ | netbsd*-gnu* \ | nto-qnx* \ | os2-emx* \ | rtmk-nova* \ | storm-chaos* \ | uclinux-gnu* \ | uclinux-uclibc* \ | windows-* ) basic_machine=$field1 basic_os=$maybe_os ;; android-linux) basic_machine=$field1-unknown basic_os=linux-android ;; *) basic_machine=$field1-$field2 basic_os=$field3 ;; esac ;; *-*) case $field1-$field2 in # Shorthands that happen to contain a single dash convex-c[12] | convex-c3[248]) basic_machine=$field2-convex basic_os= ;; decstation-3100) basic_machine=mips-dec basic_os= ;; *-*) # Second component is usually, but not always the OS case $field2 in # Do not treat sunos as a manufacturer sun*os*) basic_machine=$field1 basic_os=$field2 ;; # Manufacturers 3100* \ | 32* \ | 3300* \ | 3600* \ | 7300* \ | acorn \ | altos* \ | apollo \ | apple \ | atari \ | att* \ | axis \ | be \ | bull \ | cbm \ | ccur \ | cisco \ | commodore \ | convergent* \ | convex* \ | cray \ | crds \ | dec* \ | delta* \ | dg \ | digital \ | dolphin \ | encore* \ | gould \ | harris \ | highlevel \ | hitachi* \ | hp \ | ibm* \ | intergraph \ | isi* \ | knuth \ | masscomp \ | microblaze* \ | mips* \ | motorola* \ | ncr* \ | news \ | next \ | ns \ | oki \ | omron* \ | pc533* \ | rebel \ | rom68k \ | rombug \ | semi \ | sequent* \ | siemens \ | sgi* \ | siemens \ | sim \ | sni \ | sony* \ | stratus \ | sun \ | sun[234]* \ | tektronix \ | tti* \ | ultra \ | unicom* \ | wec \ | winbond \ | wrs) basic_machine=$field1-$field2 basic_os= ;; zephyr*) basic_machine=$field1-unknown basic_os=$field2 ;; *) basic_machine=$field1 basic_os=$field2 ;; esac ;; esac ;; *) # Convert single-component short-hands not valid as part of # multi-component configurations. case $field1 in 386bsd) basic_machine=i386-pc basic_os=bsd ;; a29khif) basic_machine=a29k-amd basic_os=udi ;; adobe68k) basic_machine=m68010-adobe basic_os=scout ;; alliant) basic_machine=fx80-alliant basic_os= ;; altos | altos3068) basic_machine=m68k-altos basic_os= ;; am29k) basic_machine=a29k-none basic_os=bsd ;; amdahl) basic_machine=580-amdahl basic_os=sysv ;; amiga) basic_machine=m68k-unknown basic_os= ;; amigaos | amigados) basic_machine=m68k-unknown basic_os=amigaos ;; amigaunix | amix) basic_machine=m68k-unknown basic_os=sysv4 ;; apollo68) basic_machine=m68k-apollo basic_os=sysv ;; apollo68bsd) basic_machine=m68k-apollo basic_os=bsd ;; aros) basic_machine=i386-pc basic_os=aros ;; aux) basic_machine=m68k-apple basic_os=aux ;; balance) basic_machine=ns32k-sequent basic_os=dynix ;; blackfin) basic_machine=bfin-unknown basic_os=linux ;; cegcc) basic_machine=arm-unknown basic_os=cegcc ;; cray) basic_machine=j90-cray basic_os=unicos ;; crds | unos) basic_machine=m68k-crds basic_os= ;; da30) basic_machine=m68k-da30 basic_os= ;; decstation | pmax | pmin | dec3100 | decstatn) basic_machine=mips-dec basic_os= ;; delta88) basic_machine=m88k-motorola basic_os=sysv3 ;; dicos) basic_machine=i686-pc basic_os=dicos ;; djgpp) basic_machine=i586-pc basic_os=msdosdjgpp ;; ebmon29k) basic_machine=a29k-amd basic_os=ebmon ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson basic_os=ose ;; gmicro) basic_machine=tron-gmicro basic_os=sysv ;; go32) basic_machine=i386-pc basic_os=go32 ;; h8300hms) basic_machine=h8300-hitachi basic_os=hms ;; h8300xray) basic_machine=h8300-hitachi basic_os=xray ;; h8500hms) basic_machine=h8500-hitachi basic_os=hms ;; harris) basic_machine=m88k-harris basic_os=sysv3 ;; hp300 | hp300hpux) basic_machine=m68k-hp basic_os=hpux ;; hp300bsd) basic_machine=m68k-hp basic_os=bsd ;; hppaosf) basic_machine=hppa1.1-hp basic_os=osf ;; hppro) basic_machine=hppa1.1-hp basic_os=proelf ;; i386mach) basic_machine=i386-mach basic_os=mach ;; isi68 | isi) basic_machine=m68k-isi basic_os=sysv ;; m68knommu) basic_machine=m68k-unknown basic_os=linux ;; magnum | m3230) basic_machine=mips-mips basic_os=sysv ;; merlin) basic_machine=ns32k-utek basic_os=sysv ;; mingw64) basic_machine=x86_64-pc basic_os=mingw64 ;; mingw32) basic_machine=i686-pc basic_os=mingw32 ;; mingw32ce) basic_machine=arm-unknown basic_os=mingw32ce ;; monitor) basic_machine=m68k-rom68k basic_os=coff ;; morphos) basic_machine=powerpc-unknown basic_os=morphos ;; moxiebox) basic_machine=moxie-unknown basic_os=moxiebox ;; msdos) basic_machine=i386-pc basic_os=msdos ;; msys) basic_machine=i686-pc basic_os=msys ;; mvs) basic_machine=i370-ibm basic_os=mvs ;; nacl) basic_machine=le32-unknown basic_os=nacl ;; ncr3000) basic_machine=i486-ncr basic_os=sysv4 ;; netbsd386) basic_machine=i386-pc basic_os=netbsd ;; netwinder) basic_machine=armv4l-rebel basic_os=linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony basic_os=newsos ;; news1000) basic_machine=m68030-sony basic_os=newsos ;; necv70) basic_machine=v70-nec basic_os=sysv ;; nh3000) basic_machine=m68k-harris basic_os=cxux ;; nh[45]000) basic_machine=m88k-harris basic_os=cxux ;; nindy960) basic_machine=i960-intel basic_os=nindy ;; mon960) basic_machine=i960-intel basic_os=mon960 ;; nonstopux) basic_machine=mips-compaq basic_os=nonstopux ;; os400) basic_machine=powerpc-ibm basic_os=os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson basic_os=ose ;; os68k) basic_machine=m68k-none basic_os=os68k ;; paragon) basic_machine=i860-intel basic_os=osf ;; parisc) basic_machine=hppa-unknown basic_os=linux ;; psp) basic_machine=mipsallegrexel-sony basic_os=psp ;; pw32) basic_machine=i586-unknown basic_os=pw32 ;; rdos | rdos64) basic_machine=x86_64-pc basic_os=rdos ;; rdos32) basic_machine=i386-pc basic_os=rdos ;; rom68k) basic_machine=m68k-rom68k basic_os=coff ;; sa29200) basic_machine=a29k-amd basic_os=udi ;; sei) basic_machine=mips-sei basic_os=seiux ;; sequent) basic_machine=i386-sequent basic_os= ;; sps7) basic_machine=m68k-bull basic_os=sysv2 ;; st2000) basic_machine=m68k-tandem basic_os= ;; stratus) basic_machine=i860-stratus basic_os=sysv4 ;; sun2) basic_machine=m68000-sun basic_os= ;; sun2os3) basic_machine=m68000-sun basic_os=sunos3 ;; sun2os4) basic_machine=m68000-sun basic_os=sunos4 ;; sun3) basic_machine=m68k-sun basic_os= ;; sun3os3) basic_machine=m68k-sun basic_os=sunos3 ;; sun3os4) basic_machine=m68k-sun basic_os=sunos4 ;; sun4) basic_machine=sparc-sun basic_os= ;; sun4os3) basic_machine=sparc-sun basic_os=sunos3 ;; sun4os4) basic_machine=sparc-sun basic_os=sunos4 ;; sun4sol2) basic_machine=sparc-sun basic_os=solaris2 ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun basic_os= ;; sv1) basic_machine=sv1-cray basic_os=unicos ;; symmetry) basic_machine=i386-sequent basic_os=dynix ;; t3e) basic_machine=alphaev5-cray basic_os=unicos ;; t90) basic_machine=t90-cray basic_os=unicos ;; toad1) basic_machine=pdp10-xkl basic_os=tops20 ;; tpf) basic_machine=s390x-ibm basic_os=tpf ;; udi29k) basic_machine=a29k-amd basic_os=udi ;; ultra3) basic_machine=a29k-nyu basic_os=sym1 ;; v810 | necv810) basic_machine=v810-nec basic_os=none ;; vaxv) basic_machine=vax-dec basic_os=sysv ;; vms) basic_machine=vax-dec basic_os=vms ;; vsta) basic_machine=i386-pc basic_os=vsta ;; vxworks960) basic_machine=i960-wrs basic_os=vxworks ;; vxworks68) basic_machine=m68k-wrs basic_os=vxworks ;; vxworks29k) basic_machine=a29k-wrs basic_os=vxworks ;; xbox) basic_machine=i686-pc basic_os=mingw32 ;; ymp) basic_machine=ymp-cray basic_os=unicos ;; *) basic_machine=$1 basic_os= ;; esac ;; esac # Decode 1-component or ad-hoc basic machines case $basic_machine in # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) cpu=hppa1.1 vendor=winbond ;; op50n) cpu=hppa1.1 vendor=oki ;; op60c) cpu=hppa1.1 vendor=oki ;; ibm*) cpu=i370 vendor=ibm ;; orion105) cpu=clipper vendor=highlevel ;; mac | mpw | mac-mpw) cpu=m68k vendor=apple ;; pmac | pmac-mpw) cpu=powerpc vendor=apple ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) cpu=m68000 vendor=att ;; 3b*) cpu=we32k vendor=att ;; bluegene*) cpu=powerpc vendor=ibm basic_os=cnk ;; decsystem10* | dec10*) cpu=pdp10 vendor=dec basic_os=tops10 ;; decsystem20* | dec20*) cpu=pdp10 vendor=dec basic_os=tops20 ;; delta | 3300 | delta-motorola | 3300-motorola | motorola-delta | motorola-3300) cpu=m68k vendor=motorola ;; # This used to be dpx2*, but that gets the RS6000-based # DPX/20 and the x86-based DPX/2-100 wrong. See # https://oldskool.silicium.org/stations/bull_dpx20.htm # https://www.feb-patrimoine.com/english/bull_dpx2.htm # https://www.feb-patrimoine.com/english/unix_and_bull.htm dpx2 | dpx2[23]00 | dpx2[23]xx) cpu=m68k vendor=bull ;; dpx2100 | dpx21xx) cpu=i386 vendor=bull ;; dpx20) cpu=rs6000 vendor=bull ;; encore | umax | mmax) cpu=ns32k vendor=encore ;; elxsi) cpu=elxsi vendor=elxsi basic_os=${basic_os:-bsd} ;; fx2800) cpu=i860 vendor=alliant ;; genix) cpu=ns32k vendor=ns ;; h3050r* | hiux*) cpu=hppa1.1 vendor=hitachi basic_os=hiuxwe2 ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) cpu=hppa1.0 vendor=hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) cpu=m68000 vendor=hp ;; hp9k3[2-9][0-9]) cpu=m68k vendor=hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) cpu=hppa1.0 vendor=hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) cpu=hppa1.1 vendor=hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp cpu=hppa1.1 vendor=hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp cpu=hppa1.1 vendor=hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) cpu=hppa1.1 vendor=hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) cpu=hppa1.0 vendor=hp ;; i*86v32) cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc basic_os=sysv32 ;; i*86v4*) cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc basic_os=sysv4 ;; i*86v) cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc basic_os=sysv ;; i*86sol2) cpu=`echo "$1" | sed -e 's/86.*/86/'` vendor=pc basic_os=solaris2 ;; j90 | j90-cray) cpu=j90 vendor=cray basic_os=${basic_os:-unicos} ;; iris | iris4d) cpu=mips vendor=sgi case $basic_os in irix*) ;; *) basic_os=irix4 ;; esac ;; miniframe) cpu=m68000 vendor=convergent ;; *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) cpu=m68k vendor=atari basic_os=mint ;; news-3600 | risc-news) cpu=mips vendor=sony basic_os=newsos ;; next | m*-next) cpu=m68k vendor=next ;; np1) cpu=np1 vendor=gould ;; op50n-* | op60c-*) cpu=hppa1.1 vendor=oki basic_os=proelf ;; pa-hitachi) cpu=hppa1.1 vendor=hitachi basic_os=hiuxwe2 ;; pbd) cpu=sparc vendor=tti ;; pbb) cpu=m68k vendor=tti ;; pc532) cpu=ns32k vendor=pc532 ;; pn) cpu=pn vendor=gould ;; power) cpu=power vendor=ibm ;; ps2) cpu=i386 vendor=ibm ;; rm[46]00) cpu=mips vendor=siemens ;; rtpc | rtpc-*) cpu=romp vendor=ibm ;; sde) cpu=mipsisa32 vendor=sde basic_os=${basic_os:-elf} ;; simso-wrs) cpu=sparclite vendor=wrs basic_os=vxworks ;; tower | tower-32) cpu=m68k vendor=ncr ;; vpp*|vx|vx-*) cpu=f301 vendor=fujitsu ;; w65) cpu=w65 vendor=wdc ;; w89k-*) cpu=hppa1.1 vendor=winbond basic_os=proelf ;; none) cpu=none vendor=none ;; leon|leon[3-9]) cpu=sparc vendor=$basic_machine ;; leon-*|leon[3-9]-*) cpu=sparc vendor=`echo "$basic_machine" | sed 's/-.*//'` ;; *-*) saved_IFS=$IFS IFS="-" read cpu vendor <&2 exit 1 ;; esac ;; esac # Here we canonicalize certain aliases for manufacturers. case $vendor in digital*) vendor=dec ;; commodore*) vendor=cbm ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if test x"$basic_os" != x then # First recognize some ad-hoc cases, or perhaps split kernel-os, or else just # set os. obj= case $basic_os in gnu/linux*) kernel=linux os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` ;; os2-emx) kernel=os2 os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` ;; nto-qnx*) kernel=nto os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` ;; *-*) saved_IFS=$IFS IFS="-" read kernel os <&2 fi ;; *) echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2 exit 1 ;; esac case $obj in aout* | coff* | elf* | pe*) ;; '') # empty is fine ;; *) echo "Invalid configuration '$1': Machine code format '$obj' not recognized" 1>&2 exit 1 ;; esac # Here we handle the constraint that a (synthetic) cpu and os are # valid only in combination with each other and nowhere else. case $cpu-$os in # The "javascript-unknown-ghcjs" triple is used by GHC; we # accept it here in order to tolerate that, but reject any # variations. javascript-ghcjs) ;; javascript-* | *-ghcjs) echo "Invalid configuration '$1': cpu '$cpu' is not valid with os '$os$obj'" 1>&2 exit 1 ;; esac # As a final step for OS-related things, validate the OS-kernel combination # (given a valid OS), if there is a kernel. case $kernel-$os-$obj in linux-gnu*- | linux-android*- | linux-dietlibc*- | linux-llvm*- \ | linux-mlibc*- | linux-musl*- | linux-newlib*- \ | linux-relibc*- | linux-uclibc*- | linux-ohos*- ) ;; uclinux-uclibc*- | uclinux-gnu*- ) ;; managarm-mlibc*- | managarm-kernel*- ) ;; windows*-msvc*-) ;; -dietlibc*- | -llvm*- | -mlibc*- | -musl*- | -newlib*- | -relibc*- \ | -uclibc*- ) # These are just libc implementations, not actual OSes, and thus # require a kernel. echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2 exit 1 ;; -kernel*- ) echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2 exit 1 ;; *-kernel*- ) echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2 exit 1 ;; *-msvc*- ) echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2 exit 1 ;; kfreebsd*-gnu*- | knetbsd*-gnu*- | netbsd*-gnu*- | kopensolaris*-gnu*-) ;; vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-) ;; nto-qnx*-) ;; os2-emx-) ;; rtmk-nova-) ;; *-eabi*- | *-gnueabi*-) ;; none--*) # None (no kernel, i.e. freestanding / bare metal), # can be paired with an machine code file format ;; -*-) # Blank kernel with real OS is always fine. ;; --*) # Blank kernel and OS with real machine code file format is always fine. ;; *-*-*) echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2 exit 1 ;; esac # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. case $vendor in unknown) case $cpu-$os in *-riscix*) vendor=acorn ;; *-sunos* | *-solaris*) vendor=sun ;; *-cnk* | *-aix*) vendor=ibm ;; *-beos*) vendor=be ;; *-hpux*) vendor=hp ;; *-mpeix*) vendor=hp ;; *-hiux*) vendor=hitachi ;; *-unos*) vendor=crds ;; *-dgux*) vendor=dg ;; *-luna*) vendor=omron ;; *-genix*) vendor=ns ;; *-clix*) vendor=intergraph ;; *-mvs* | *-opened*) vendor=ibm ;; *-os400*) vendor=ibm ;; s390-* | s390x-*) vendor=ibm ;; *-ptx*) vendor=sequent ;; *-tpf*) vendor=ibm ;; *-vxsim* | *-vxworks* | *-windiss*) vendor=wrs ;; *-aux*) vendor=apple ;; *-hms*) vendor=hitachi ;; *-mpw* | *-macos*) vendor=apple ;; *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) vendor=atari ;; *-vos*) vendor=stratus ;; esac ;; esac echo "$cpu-$vendor${kernel:+-$kernel}${os:+-$os}${obj:+-$obj}" exit # Local variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: fftw-3.3.11/install-sh0000755000175000017500000003611514767572401010255 #!/bin/sh # install - install a program, script, or datafile scriptversion=2024-06-19.01; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # 'make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. tab=' ' nl=' ' IFS=" $tab$nl" # Set DOITPROG to "echo" to test this script. doit=${DOITPROG-} doit_exec=${doit:-exec} # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_mkdir= # Desired mode of installed file. mode=0755 # Create dirs (including intermediate dirs) using mode 755. # This is like GNU 'install' as of coreutils 8.32 (2020). mkdir_umask=22 backupsuffix= chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false is_target_a_directory=possibly usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -p pass -p to $cpprog. -s $stripprog installed files. -S SUFFIX attempt to back up existing files, with suffix SUFFIX. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG By default, rm is invoked with -f; when overridden with RMPROG, it's up to you to specify -f if you want it. If -S is not specified, no backups are attempted. Report bugs to . GNU Automake home page: . General help using GNU software: ." while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -p) cpprog="$cpprog -p";; -s) stripcmd=$stripprog;; -S) backupsuffix="$2" shift;; -t) is_target_a_directory=always dst_arg=$2 # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) is_target_a_directory=never;; --version) echo "$0 (GNU Automake) $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done # We allow the use of options -d and -T together, by making -d # take the precedence; this is for compatibility with GNU install. if test -n "$dir_arg"; then if test -n "$dst_arg"; then echo "$0: target directory not allowed when installing a directory." >&2 exit 1 fi fi if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call 'install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then if test $# -gt 1 || test "$is_target_a_directory" = always; then if test ! -d "$dst_arg"; then echo "$0: $dst_arg: Is not a directory." >&2 exit 1 fi fi fi if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for 'test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? # Don't chown directories that already exist. if test $dstdir_status = 0; then chowncmd="" fi else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # If destination is a directory, append the input filename. if test -d "$dst"; then if test "$is_target_a_directory" = never; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dstbase=`basename "$src"` case $dst in */) dst=$dst$dstbase;; *) dst=$dst/$dstbase;; esac dstdir_status=0 else dstdir=`dirname "$dst"` test -d "$dstdir" dstdir_status=$? fi fi case $dstdir in */) dstdirslash=$dstdir;; *) dstdirslash=$dstdir/;; esac obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false # The $RANDOM variable is not portable (e.g., dash). Use it # here however when possible just to lower collision chance. tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap ' ret=$? rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null exit $ret ' 0 # Because "mkdir -p" follows existing symlinks and we likely work # directly in world-writable /tmp, make sure that the '$tmpdir' # directory is successfully created first before we actually test # 'mkdir -p'. if (umask $mkdir_umask && $mkdirprog $mkdir_mode "$tmpdir" && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibility with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. test_tmpdir="$tmpdir/a" ls_ld_tmpdir=`ls -ld "$test_tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null fi trap '' 0;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac oIFS=$IFS IFS=/ set -f set fnord $dstdir shift set +f IFS=$oIFS prefixes= for d do test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=${dstdirslash}_inst.$$_ rmtmp=${dstdirslash}_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && { test -z "$stripcmd" || { # Create $dsttmp read-write so that cp doesn't create it read-only, # which would cause strip to fail. if test -z "$doit"; then : >"$dsttmp" # No need to fork-exec 'touch'. else $doit touch "$dsttmp" fi } } && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # If $backupsuffix is set, and the file being installed # already exists, attempt a backup. Don't worry if it fails, # e.g., if mv doesn't support -f. if test -n "$backupsuffix" && test -f "$dst"; then $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null fi # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: fftw-3.3.11/ltmain.sh0000755000175000017500000122276514761703252010077 #! /usr/bin/env sh ## DO NOT EDIT - This file generated from ./build-aux/ltmain.in ## by inline-source v2019-02-19.15 # libtool (GNU libtool) 2.5.4 # Provide generalized library-building support services. # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996-2019, 2021-2024 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool 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. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool 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, see . PROGRAM=libtool PACKAGE=libtool VERSION="2.5.4 Debian-2.5.4-4" package_revision=2.5.4 ## ------ ## ## Usage. ## ## ------ ## # Run './libtool --help' for help with using this script from the # command line. ## ------------------------------- ## ## User overridable command paths. ## ## ------------------------------- ## # After configure completes, it has a better idea of some of the # shell tools we need than the defaults used by the functions shared # with bootstrap, so set those here where they can still be over- # ridden by the user, but otherwise take precedence. : ${AUTOCONF="autoconf"} : ${AUTOMAKE="automake"} ## -------------------------- ## ## Source external libraries. ## ## -------------------------- ## # Much of our low-level functionality needs to be sourced from external # libraries, which are installed to $pkgauxdir. # Set a version string for this script. scriptversion=2024-12-01.17; # UTC # General shell script boiler plate, and helper functions. # Written by Gary V. Vaughan, 2004 # This is free software. There is NO warranty; not even for # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # # Copyright (C) 2004-2019, 2021, 2023-2024 Bootstrap Authors # # This file is dual licensed under the terms of the MIT license # , and GPL version 2 or later # . You must apply one of # these licenses when using or redistributing this software or any of # the files within it. See the URLs above, or the file `LICENSE` # included in the Bootstrap distribution for the full license texts. # Please report bugs or propose patches to: # ## ------ ## ## Usage. ## ## ------ ## # Evaluate this file near the top of your script to gain access to # the functions and variables defined here: # # . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh # # If you need to override any of the default environment variable # settings, do that before evaluating this file. ## -------------------- ## ## Shell normalisation. ## ## -------------------- ## # Some shells need a little help to be as Bourne compatible as possible. # Before doing anything else, make sure all that help has been provided! DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # NLS nuisances: We save the old values in case they are required later. _G_user_locale= _G_safe_locale= for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test set = \"\${$_G_var+set}\"; then save_$_G_var=\$$_G_var $_G_var=C export $_G_var _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" fi" done # These NLS vars are set unconditionally (bootstrap issue #24). Unset those # in case the environment reset is needed later and the $save_* variant is not # defined (see the code above). LC_ALL=C LANGUAGE=C export LANGUAGE LC_ALL # Make sure IFS has a sensible default sp=' ' nl=' ' IFS="$sp $nl" # There are apparently some systems that use ';' as a PATH separator! if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # func_unset VAR # -------------- # Portably unset VAR. # In some shells, an 'unset VAR' statement leaves a non-zero return # status if VAR is already unset, which might be problematic if the # statement is used at the end of a function (thus poisoning its return # value) or when 'set -e' is active (causing even a spurious abort of # the script in this case). func_unset () { { eval $1=; (eval unset $1) >/dev/null 2>&1 && eval unset $1 || : ; } } # Make sure CDPATH doesn't cause `cd` commands to output the target dir. func_unset CDPATH # Make sure ${,E,F}GREP behave sanely. func_unset GREP_OPTIONS ## ------------------------- ## ## Locate command utilities. ## ## ------------------------- ## # func_executable_p FILE # ---------------------- # Check that FILE is an executable regular file. func_executable_p () { test -f "$1" && test -x "$1" } # func_path_progs PROGS_LIST CHECK_FUNC [PATH] # -------------------------------------------- # Search for either a program that responds to --version with output # containing "GNU", or else returned by CHECK_FUNC otherwise, by # trying all the directories in PATH with each of the elements of # PROGS_LIST. # # CHECK_FUNC should accept the path to a candidate program, and # set $func_check_prog_result if it truncates its output less than # $_G_path_prog_max characters. func_path_progs () { _G_progs_list=$1 _G_check_func=$2 _G_PATH=${3-"$PATH"} _G_path_prog_max=0 _G_path_prog_found=false _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} for _G_dir in $_G_PATH; do IFS=$_G_save_IFS test -z "$_G_dir" && _G_dir=. for _G_prog_name in $_G_progs_list; do for _exeext in '' .EXE; do _G_path_prog=$_G_dir/$_G_prog_name$_exeext func_executable_p "$_G_path_prog" || continue case `"$_G_path_prog" --version 2>&1` in *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; *) $_G_check_func $_G_path_prog func_path_progs_result=$func_check_prog_result ;; esac $_G_path_prog_found && break 3 done done done IFS=$_G_save_IFS test -z "$func_path_progs_result" && { echo "no acceptable sed could be found in \$PATH" >&2 exit 1 } } # We want to be able to use the functions in this file before configure # has figured out where the best binaries are kept, which means we have # to search for them ourselves - except when the results are already set # where we skip the searches. # Unless the user overrides by setting SED, search the path for either GNU # sed, or the sed that truncates its output the least. test -z "$SED" && { _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for _G_i in 1 2 3 4 5 6 7; do _G_sed_script=$_G_sed_script$nl$_G_sed_script done echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed _G_sed_script= func_check_prog_sed () { _G_path_prog=$1 _G_count=0 printf 0123456789 >conftest.in while : do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo '' >> conftest.nl "$_G_path_prog" -f conftest.sed conftest.out 2>/dev/null || break diff conftest.out conftest.nl >/dev/null 2>&1 || break _G_count=`expr $_G_count + 1` if test "$_G_count" -gt "$_G_path_prog_max"; then # Best one so far, save it but keep looking for a better one func_check_prog_result=$_G_path_prog _G_path_prog_max=$_G_count fi # 10*(2^10) chars as input seems more than enough test 10 -lt "$_G_count" && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out } func_path_progs "sed gsed" func_check_prog_sed "$PATH:/usr/xpg4/bin" rm -f conftest.sed SED=$func_path_progs_result } # Unless the user overrides by setting GREP, search the path for either GNU # grep, or the grep that truncates its output the least. test -z "$GREP" && { func_check_prog_grep () { _G_path_prog=$1 _G_count=0 _G_path_prog_max=0 printf 0123456789 >conftest.in while : do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo 'GREP' >> conftest.nl "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' conftest.out 2>/dev/null || break diff conftest.out conftest.nl >/dev/null 2>&1 || break _G_count=`expr $_G_count + 1` if test "$_G_count" -gt "$_G_path_prog_max"; then # Best one so far, save it but keep looking for a better one func_check_prog_result=$_G_path_prog _G_path_prog_max=$_G_count fi # 10*(2^10) chars as input seems more than enough test 10 -lt "$_G_count" && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out } func_path_progs "grep ggrep" func_check_prog_grep "$PATH:/usr/xpg4/bin" GREP=$func_path_progs_result } ## ------------------------------- ## ## User overridable command paths. ## ## ------------------------------- ## # All uppercase variable names are used for environment variables. These # variables can be overridden by the user before calling a script that # uses them if a suitable command of that name is not already available # in the command search PATH. : ${CP="cp -f"} : ${ECHO="printf %s\n"} : ${EGREP="$GREP -E"} : ${FGREP="$GREP -F"} : ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} ## -------------------- ## ## Useful sed snippets. ## ## -------------------- ## sed_dirname='s|/[^/]*$||' sed_basename='s|^.*/||' # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='s|\([`"$\\]\)|\\\1|g' # Same as above, but do not quote variable references. sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution that turns a string into a regex matching for the # string literally. sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' # Sed substitution that converts a w32 file name or path # that contains forward slashes, into one that contains # (escaped) backslashes. A very naive implementation. sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Re-'\' parameter expansions in output of sed_double_quote_subst that # were '\'-ed in input to the same. If an odd number of '\' preceded a # '$' in input to sed_double_quote_subst, that '$' was protected from # expansion. Since each input '\' is now two '\'s, look for any number # of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. _G_bs='\\' _G_bs2='\\\\' _G_bs4='\\\\\\\\' _G_dollar='\$' sed_double_backslash="\ s/$_G_bs4/&\\ /g s/^$_G_bs2$_G_dollar/$_G_bs&/ s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g s/\n//g" # require_check_ifs_backslash # --------------------------- # Check if we can use backslash as IFS='\' separator, and set # $check_ifs_backshlash_broken to ':' or 'false'. require_check_ifs_backslash=func_require_check_ifs_backslash func_require_check_ifs_backslash () { _G_save_IFS=$IFS IFS='\' _G_check_ifs_backshlash='a\\b' for _G_i in $_G_check_ifs_backshlash do case $_G_i in a) check_ifs_backshlash_broken=false ;; '') break ;; *) check_ifs_backshlash_broken=: break ;; esac done IFS=$_G_save_IFS require_check_ifs_backslash=: } ## ----------------- ## ## Global variables. ## ## ----------------- ## # Except for the global variables explicitly listed below, the following # functions in the '^func_' namespace, and the '^require_' namespace # variables initialised in the 'Resource management' section, sourcing # this file will not pollute your global namespace with anything # else. There's no portable way to scope variables in Bourne shell # though, so actually running these functions will sometimes place # results into a variable named after the function, and often use # temporary variables in the '^_G_' namespace. If you are careful to # avoid using those namespaces casually in your sourcing script, things # should continue to work as you expect. And, of course, you can freely # overwrite any of the functions or variables defined here before # calling anything to customize them. EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. # Allow overriding, eg assuming that you follow the convention of # putting '$debug_cmd' at the start of all your functions, you can get # bash to show function call trace with: # # debug_cmd='echo "${FUNCNAME[0]} $*" >&2' bash your-script-name debug_cmd=${debug_cmd-":"} exit_cmd=: # By convention, finish your script with: # # exit $exit_status # # so that you can set exit_status to non-zero if you want to indicate # something went wrong during execution without actually bailing out at # the point of failure. exit_status=$EXIT_SUCCESS # 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 "$sed_basename"` # Make sure we have an absolute progpath for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` progdir=`cd "$progdir" && pwd` progpath=$progdir/$progname ;; *) _G_IFS=$IFS IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS=$_G_IFS test -x "$progdir/$progname" && break done IFS=$_G_IFS test -n "$progdir" || progdir=`pwd` progpath=$progdir/$progname ;; esac ## ----------------- ## ## Standard options. ## ## ----------------- ## # The following options affect the operation of the functions defined # below, and should be set appropriately depending on run-time para- # meters passed on the command line. opt_dry_run=false opt_quiet=false opt_verbose=false # Categories 'all' and 'none' are always available. Append any others # you will pass as the first argument to func_warning from your own # code. warning_categories= # By default, display warnings according to 'opt_warning_types'. Set # 'warning_func' to ':' to elide all warnings, or func_fatal_error to # treat the next displayed warning as a fatal error. warning_func=func_warn_and_continue # Set to 'all' to display all warnings, 'none' to suppress all # warnings, or a space delimited list of some subset of # 'warning_categories' to display only the listed warnings. opt_warning_types=all ## -------------------- ## ## Resource management. ## ## -------------------- ## # This section contains definitions for functions that each ensure a # particular resource (a file, or a non-empty configuration variable for # example) is available, and if appropriate to extract default values # from pertinent package files. Call them using their associated # 'require_*' variable to ensure that they are executed, at most, once. # # It's entirely deliberate that calling these functions can set # variables that don't obey the namespace limitations obeyed by the rest # of this file, in order that that they be as useful as possible to # callers. # require_term_colors # ------------------- # Allow display of bold text on terminals that support it. require_term_colors=func_require_term_colors func_require_term_colors () { $debug_cmd test -t 1 && { # COLORTERM and USE_ANSI_COLORS environment variables take # precedence, because most terminfo databases neglect to describe # whether color sequences are supported. test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} if test 1 = "$USE_ANSI_COLORS"; then # Standard ANSI escape sequences tc_reset='' tc_bold=''; tc_standout='' tc_red=''; tc_green='' tc_blue=''; tc_cyan='' else # Otherwise trust the terminfo database after all. test -n "`tput sgr0 2>/dev/null`" && { tc_reset=`tput sgr0` test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` tc_standout=$tc_bold test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` } fi } require_term_colors=: } ## ----------------- ## ## Function library. ## ## ----------------- ## # This section contains a variety of useful functions to call in your # scripts. Take note of the portable wrappers for features provided by # some modern shells, which will fall back to slower equivalents on # less featureful shells. # func_append VAR VALUE # --------------------- # Append VALUE onto the existing contents of VAR. # _G_HAVE_PLUSEQ_OP # Can be empty, in which case the shell is probed, "yes" if += is # usable or anything else if it does not work. if test -z "$_G_HAVE_PLUSEQ_OP" && \ __PLUSEQ_TEST="a" && \ __PLUSEQ_TEST+=" b" 2>/dev/null && \ test "a b" = "$__PLUSEQ_TEST"; then _G_HAVE_PLUSEQ_OP=yes fi if test yes = "$_G_HAVE_PLUSEQ_OP" then # This is an XSI compatible shell, allowing a faster implementation... eval 'func_append () { $debug_cmd eval "$1+=\$2" }' else # ...otherwise fall back to using expr, which is often a shell builtin. func_append () { $debug_cmd eval "$1=\$$1\$2" } fi # func_append_quoted VAR VALUE # ---------------------------- # Quote VALUE and append to the end of shell variable VAR, separated # by a space. if test yes = "$_G_HAVE_PLUSEQ_OP"; then eval 'func_append_quoted () { $debug_cmd func_quote_arg pretty "$2" eval "$1+=\\ \$func_quote_arg_result" }' else func_append_quoted () { $debug_cmd func_quote_arg pretty "$2" eval "$1=\$$1\\ \$func_quote_arg_result" } fi # func_append_uniq VAR VALUE # -------------------------- # Append unique VALUE onto the existing contents of VAR, assuming # entries are delimited by the first character of VALUE. For example: # # func_append_uniq options " --another-option option-argument" # # will only append to $options if " --another-option option-argument " # is not already present somewhere in $options already (note spaces at # each end implied by leading space in second argument). func_append_uniq () { $debug_cmd eval _G_current_value='`$ECHO $'$1'`' _G_delim=`expr "$2" : '\(.\)'` case $_G_delim$_G_current_value$_G_delim in *"$2$_G_delim"*) ;; *) func_append "$@" ;; esac } # func_arith TERM... # ------------------ # Set func_arith_result to the result of evaluating TERMs. test -z "$_G_HAVE_ARITH_OP" \ && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ && _G_HAVE_ARITH_OP=yes if test yes = "$_G_HAVE_ARITH_OP"; then eval 'func_arith () { $debug_cmd func_arith_result=$(( $* )) }' else func_arith () { $debug_cmd func_arith_result=`expr "$@"` } fi # func_basename FILE # ------------------ # Set func_basename_result to FILE with everything up to and including # the last / stripped. if test yes = "$_G_HAVE_XSI_OPS"; then # If this shell supports suffix pattern removal, then use it to avoid # forking. Hide the definitions single quotes in case the shell chokes # on unsupported syntax... _b='func_basename_result=${1##*/}' _d='case $1 in */*) func_dirname_result=${1%/*}$2 ;; * ) func_dirname_result=$3 ;; esac' else # ...otherwise fall back to using sed. _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` if test "X$func_dirname_result" = "X$1"; then func_dirname_result=$3 else func_append func_dirname_result "$2" fi' fi eval 'func_basename () { $debug_cmd '"$_b"' }' # func_dirname FILE APPEND NONDIR_REPLACEMENT # ------------------------------------------- # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. eval 'func_dirname () { $debug_cmd '"$_d"' }' # func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT # -------------------------------------------------------- # Perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value returned in "$func_basename_result" # For efficiency, we do not delegate to the functions above but instead # duplicate the functionality here. eval 'func_dirname_and_basename () { $debug_cmd '"$_b"' '"$_d"' }' # func_echo ARG... # ---------------- # Echo program name prefixed message. func_echo () { $debug_cmd _G_message=$* func_echo_IFS=$IFS IFS=$nl for _G_line in $_G_message; do IFS=$func_echo_IFS $ECHO "$progname: $_G_line" done IFS=$func_echo_IFS } # func_echo_all ARG... # -------------------- # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } # func_echo_infix_1 INFIX ARG... # ------------------------------ # Echo program name, followed by INFIX on the first line, with any # additional lines not showing INFIX. func_echo_infix_1 () { $debug_cmd $require_term_colors _G_infix=$1; shift _G_indent=$_G_infix _G_prefix="$progname: $_G_infix: " _G_message=$* # Strip color escape sequences before counting printable length for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" do test -n "$_G_tc" && { _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` } done _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes func_echo_infix_1_IFS=$IFS IFS=$nl for _G_line in $_G_message; do IFS=$func_echo_infix_1_IFS $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 _G_prefix=$_G_indent done IFS=$func_echo_infix_1_IFS } # func_error ARG... # ----------------- # Echo program name prefixed message to standard error. func_error () { $debug_cmd $require_term_colors func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 } # func_fatal_error ARG... # ----------------------- # Echo program name prefixed message to standard error, and exit. func_fatal_error () { $debug_cmd func_error "$*" exit $EXIT_FAILURE } # func_grep EXPRESSION FILENAME # ----------------------------- # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $debug_cmd $GREP "$1" "$2" >/dev/null 2>&1 } # func_len STRING # --------------- # Set func_len_result to the length of STRING. STRING may not # start with a hyphen. test -z "$_G_HAVE_XSI_OPS" \ && (eval 'x=a/b/c; test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ && _G_HAVE_XSI_OPS=yes if test yes = "$_G_HAVE_XSI_OPS"; then eval 'func_len () { $debug_cmd func_len_result=${#1} }' else func_len () { $debug_cmd func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` } fi # func_mkdir_p DIRECTORY-PATH # --------------------------- # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { $debug_cmd _G_directory_path=$1 _G_dir_list= if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then # Protect directory names starting with '-' case $_G_directory_path in -*) _G_directory_path=./$_G_directory_path ;; esac # While some portion of DIR does not yet exist... while test ! -d "$_G_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list in case some portion of path contains whitespace. _G_dir_list=$_G_directory_path:$_G_dir_list # If the last portion added has no slash in it, the list is done case $_G_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` done _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` func_mkdir_p_IFS=$IFS; IFS=: for _G_dir in $_G_dir_list; do IFS=$func_mkdir_p_IFS # mkdir can fail with a 'File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$_G_dir" 2>/dev/null || : done IFS=$func_mkdir_p_IFS # Bail out if we (or some other process) failed to create a directory. test -d "$_G_directory_path" || \ func_fatal_error "Failed to create '$1'" fi } # func_mktempdir [BASENAME] # ------------------------- # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, BASENAME is the basename for that directory. func_mktempdir () { $debug_cmd _G_template=${TMPDIR-/tmp}/${1-$progname} if test : = "$opt_dry_run"; then # Return a directory name, but don't create it in dry-run mode _G_tmpdir=$_G_template-$$ else # If mktemp works, use that first and foremost _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` if test ! -d "$_G_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race _G_tmpdir=$_G_template-${RANDOM-0}$$ func_mktempdir_umask=`umask` umask 0077 $MKDIR "$_G_tmpdir" umask $func_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$_G_tmpdir" || \ func_fatal_error "cannot create temporary directory '$_G_tmpdir'" fi $ECHO "$_G_tmpdir" } # func_normal_abspath PATH # ------------------------ # Remove doubled-up and trailing slashes, "." path components, # and cancel out any ".." path components in PATH after making # it an absolute path. func_normal_abspath () { $debug_cmd # These SED scripts presuppose an absolute path with a trailing slash. _G_pathcar='s|^/\([^/]*\).*$|\1|' _G_pathcdr='s|^/[^/]*||' _G_removedotparts=':dotsl s|/\./|/|g t dotsl s|/\.$|/|' _G_collapseslashes='s|/\{1,\}|/|g' _G_finalslash='s|/*$|/|' # Start from root dir and reassemble the path. func_normal_abspath_result= func_normal_abspath_tpath=$1 func_normal_abspath_altnamespace= case $func_normal_abspath_tpath in "") # Empty path, that just means $cwd. func_stripname '' '/' "`pwd`" func_normal_abspath_result=$func_stripname_result return ;; # The next three entries are used to spot a run of precisely # two leading slashes without using negated character classes; # we take advantage of case's first-match behaviour. ///*) # Unusual form of absolute path, do nothing. ;; //*) # Not necessarily an ordinary path; POSIX reserves leading '//' # and for example Cygwin uses it to access remote file shares # over CIFS/SMB, so we conserve a leading double slash if found. func_normal_abspath_altnamespace=/ ;; /*) # Absolute path, do nothing. ;; *) # Relative path, prepend $cwd. func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ;; esac # Cancel out all the simple stuff to save iterations. We also want # the path to end with a slash for ease of parsing, so make sure # there is one (and only one) here. func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` while :; do # Processed it all yet? if test / = "$func_normal_abspath_tpath"; then # If we ascended to the root using ".." the result may be empty now. if test -z "$func_normal_abspath_result"; then func_normal_abspath_result=/ fi break fi func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$_G_pathcar"` func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$_G_pathcdr"` # Figure out what to do with it case $func_normal_abspath_tcomponent in "") # Trailing empty path component, ignore it. ;; ..) # Parent dir; strip last assembled component from result. func_dirname "$func_normal_abspath_result" func_normal_abspath_result=$func_dirname_result ;; *) # Actual path component, append it. func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" ;; esac done # Restore leading double-slash if one was found on entry. func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } # func_notquiet ARG... # -------------------- # Echo program name prefixed message only when not in quiet mode. func_notquiet () { $debug_cmd $opt_quiet || func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_relative_path SRCDIR DSTDIR # -------------------------------- # Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. func_relative_path () { $debug_cmd func_relative_path_result= func_normal_abspath "$1" func_relative_path_tlibdir=$func_normal_abspath_result func_normal_abspath "$2" func_relative_path_tbindir=$func_normal_abspath_result # Ascend the tree starting from libdir while :; do # check if we have found a prefix of bindir case $func_relative_path_tbindir in $func_relative_path_tlibdir) # found an exact match func_relative_path_tcancelled= break ;; $func_relative_path_tlibdir*) # found a matching prefix func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" func_relative_path_tcancelled=$func_stripname_result if test -z "$func_relative_path_result"; then func_relative_path_result=. fi break ;; *) func_dirname $func_relative_path_tlibdir func_relative_path_tlibdir=$func_dirname_result if test -z "$func_relative_path_tlibdir"; then # Have to descend all the way to the root! func_relative_path_result=../$func_relative_path_result func_relative_path_tcancelled=$func_relative_path_tbindir break fi func_relative_path_result=../$func_relative_path_result ;; esac done # Now calculate path; take care to avoid doubling-up slashes. func_stripname '' '/' "$func_relative_path_result" func_relative_path_result=$func_stripname_result func_stripname '/' '/' "$func_relative_path_tcancelled" if test -n "$func_stripname_result"; then func_append func_relative_path_result "/$func_stripname_result" fi # Normalisation. If bindir is libdir, return '.' else relative path. if test -n "$func_relative_path_result"; then func_stripname './' '' "$func_relative_path_result" func_relative_path_result=$func_stripname_result fi test -n "$func_relative_path_result" || func_relative_path_result=. : } # func_quote_portable EVAL ARG # ---------------------------- # Internal function to portably implement func_quote_arg. Note that we still # keep attention to performance here so we as much as possible try to avoid # calling sed binary (so far O(N) complexity as long as func_append is O(1)). func_quote_portable () { $debug_cmd $require_check_ifs_backslash func_quote_portable_result=$2 # one-time-loop (easy break) while true do if $1; then func_quote_portable_result=`$ECHO "$2" | $SED \ -e "$sed_double_quote_subst" -e "$sed_double_backslash"` break fi # Quote for eval. case $func_quote_portable_result in *[\\\`\"\$]*) # Fallback to sed for $func_check_bs_ifs_broken=:, or when the string # contains the shell wildcard characters. case $check_ifs_backshlash_broken$func_quote_portable_result in :*|*[\[\*\?]*) func_quote_portable_result=`$ECHO "$func_quote_portable_result" \ | $SED "$sed_quote_subst"` break ;; esac func_quote_portable_old_IFS=$IFS for _G_char in '\' '`' '"' '$' do # STATE($1) PREV($2) SEPARATOR($3) set start "" "" func_quote_portable_result=dummy"$_G_char$func_quote_portable_result$_G_char"dummy IFS=$_G_char for _G_part in $func_quote_portable_result do case $1 in quote) func_append func_quote_portable_result "$3$2" set quote "$_G_part" "\\$_G_char" ;; start) set first "" "" func_quote_portable_result= ;; first) set quote "$_G_part" "" ;; esac done done IFS=$func_quote_portable_old_IFS ;; *) ;; esac break done func_quote_portable_unquoted_result=$func_quote_portable_result case $func_quote_portable_result in # double-quote args containing shell metacharacters to delay # word splitting, command substitution and variable expansion # for a subsequent eval. # many bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") func_quote_portable_result=\"$func_quote_portable_result\" ;; esac } # func_quotefast_eval ARG # ----------------------- # Quote one ARG (internal). This is equivalent to 'func_quote_arg eval ARG', # but optimized for speed. Result is stored in $func_quotefast_eval. if test xyes = `(x=; printf -v x %q yes; echo x"$x") 2>/dev/null`; then printf -v _GL_test_printf_tilde %q '~' if test '\~' = "$_GL_test_printf_tilde"; then func_quotefast_eval () { printf -v func_quotefast_eval_result %q "$1" } else # Broken older Bash implementations. Make those faster too if possible. func_quotefast_eval () { case $1 in '~'*) func_quote_portable false "$1" func_quotefast_eval_result=$func_quote_portable_result ;; *) printf -v func_quotefast_eval_result %q "$1" ;; esac } fi else func_quotefast_eval () { func_quote_portable false "$1" func_quotefast_eval_result=$func_quote_portable_result } fi # func_quote_arg MODEs ARG # ------------------------ # Quote one ARG to be evaled later. MODEs argument may contain zero or more # specifiers listed below separated by ',' character. This function returns two # values: # i) func_quote_arg_result # double-quoted (when needed), suitable for a subsequent eval # ii) func_quote_arg_unquoted_result # has all characters that are still active within double # quotes backslashified. Available only if 'unquoted' is specified. # # Available modes: # ---------------- # 'eval' (default) # - escape shell special characters # 'expand' # - the same as 'eval'; but do not quote variable references # 'pretty' # - request aesthetic output, i.e. '"a b"' instead of 'a\ b'. This might # be used later in func_quote to get output like: 'echo "a b"' instead # of 'echo a\ b'. This is slower than default on some shells. # 'unquoted' # - produce also $func_quote_arg_unquoted_result which does not contain # wrapping double-quotes. # # Examples for 'func_quote_arg pretty,unquoted string': # # string | *_result | *_unquoted_result # ------------+-----------------------+------------------- # " | \" | \" # a b | "a b" | a b # "a b" | "\"a b\"" | \"a b\" # * | "*" | * # z="${x-$y}" | "z=\"\${x-\$y}\"" | z=\"\${x-\$y}\" # # Examples for 'func_quote_arg pretty,unquoted,expand string': # # string | *_result | *_unquoted_result # --------------+---------------------+-------------------- # z="${x-$y}" | "z=\"${x-$y}\"" | z=\"${x-$y}\" func_quote_arg () { _G_quote_expand=false case ,$1, in *,expand,*) _G_quote_expand=: ;; esac case ,$1, in *,pretty,*|*,expand,*|*,unquoted,*) func_quote_portable $_G_quote_expand "$2" func_quote_arg_result=$func_quote_portable_result func_quote_arg_unquoted_result=$func_quote_portable_unquoted_result ;; *) # Faster quote-for-eval for some shells. func_quotefast_eval "$2" func_quote_arg_result=$func_quotefast_eval_result ;; esac } # func_quote MODEs ARGs... # ------------------------ # Quote all ARGs to be evaled later and join them into single command. See # func_quote_arg's description for more info. func_quote () { $debug_cmd _G_func_quote_mode=$1 ; shift func_quote_result= while test 0 -lt $#; do func_quote_arg "$_G_func_quote_mode" "$1" if test -n "$func_quote_result"; then func_append func_quote_result " $func_quote_arg_result" else func_append func_quote_result "$func_quote_arg_result" fi shift done } # func_stripname PREFIX SUFFIX NAME # --------------------------------- # strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). if test yes = "$_G_HAVE_XSI_OPS"; then eval 'func_stripname () { $debug_cmd # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary variable first. func_stripname_result=$3 func_stripname_result=${func_stripname_result#"$1"} func_stripname_result=${func_stripname_result%"$2"} }' else func_stripname () { $debug_cmd case $2 in .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; esac } fi # func_show_eval CMD [FAIL_EXP] # ----------------------------- # Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { $debug_cmd _G_cmd=$1 _G_fail_exp=${2-':'} func_quote_arg pretty,expand "$_G_cmd" eval "func_notquiet $func_quote_arg_result" $opt_dry_run || { eval "$_G_cmd" _G_status=$? if test 0 -ne "$_G_status"; then eval "(exit $_G_status); $_G_fail_exp" fi } } # func_show_eval_locale CMD [FAIL_EXP] # ------------------------------------ # Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { $debug_cmd _G_cmd=$1 _G_fail_exp=${2-':'} $opt_quiet || { func_quote_arg expand,pretty "$_G_cmd" eval "func_echo $func_quote_arg_result" } $opt_dry_run || { eval "$_G_user_locale $_G_cmd" _G_status=$? eval "$_G_safe_locale" if test 0 -ne "$_G_status"; then eval "(exit $_G_status); $_G_fail_exp" fi } } # func_tr_sh # ---------- # Turn $1 into a string suitable for a shell variable name. # Result is stored in $func_tr_sh_result. All characters # not in the set a-zA-Z0-9_ are replaced with '_'. Further, # if $1 begins with a digit, a '_' is prepended as well. func_tr_sh () { $debug_cmd case $1 in [0-9]* | *[!a-zA-Z0-9_]*) func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` ;; * ) func_tr_sh_result=$1 ;; esac } # func_verbose ARG... # ------------------- # Echo program name prefixed message in verbose mode only. func_verbose () { $debug_cmd $opt_verbose && func_echo "$*" : } # func_warn_and_continue ARG... # ----------------------------- # Echo program name prefixed warning message to standard error. func_warn_and_continue () { $debug_cmd $require_term_colors func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 } # func_warning CATEGORY ARG... # ---------------------------- # Echo program name prefixed warning message to standard error. Warning # messages can be filtered according to CATEGORY, where this function # elides messages where CATEGORY is not listed in the global variable # 'opt_warning_types'. func_warning () { $debug_cmd # CATEGORY must be in the warning_categories list! case " $warning_categories " in *" $1 "*) ;; *) func_internal_error "invalid warning category '$1'" ;; esac _G_category=$1 shift case " $opt_warning_types " in *" $_G_category "*) $warning_func ${1+"$@"} ;; esac } # func_sort_ver VER1 VER2 # ----------------------- # 'sort -V' is not generally available. # Note this deviates from the version comparison in automake # in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a # but this should suffice as we won't be specifying old # version formats or redundant trailing .0 in bootstrap.conf. # If we did want full compatibility then we should probably # use m4_version_compare from autoconf. func_sort_ver () { $debug_cmd printf '%s\n%s\n' "$1" "$2" \ | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n } # func_lt_ver PREV CURR # --------------------- # Return true if PREV and CURR are in the correct order according to # func_sort_ver, otherwise false. Use it like this: # # func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." func_lt_ver () { $debug_cmd test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` } # Local variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" # time-stamp-time-zone: "UTC" # End: #! /bin/sh # A portable, pluggable option parser for Bourne shell. # Written by Gary V. Vaughan, 2010 # This is free software. There is NO warranty; not even for # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # # Copyright (C) 2010-2019, 2021, 2023-2024 Bootstrap Authors # # This file is dual licensed under the terms of the MIT license # , and GPL version 2 or later # . You must apply one of # these licenses when using or redistributing this software or any of # the files within it. See the URLs above, or the file `LICENSE` # included in the Bootstrap distribution for the full license texts. # Please report bugs or propose patches to: # # Set a version string for this script. scriptversion=2019-02-19.15; # UTC ## ------ ## ## Usage. ## ## ------ ## # This file is a library for parsing options in your shell scripts along # with assorted other useful supporting features that you can make use # of too. # # For the simplest scripts you might need only: # # #!/bin/sh # . relative/path/to/funclib.sh # . relative/path/to/options-parser # scriptversion=1.0 # func_options ${1+"$@"} # eval set dummy "$func_options_result"; shift # ...rest of your script... # # In order for the '--version' option to work, you will need to have a # suitably formatted comment like the one at the top of this file # starting with '# Written by ' and ending with '# Copyright'. # # For '-h' and '--help' to work, you will also need a one line # description of your script's purpose in a comment directly above the # '# Written by ' line, like the one at the top of this file. # # The default options also support '--debug', which will turn on shell # execution tracing (see the comment above debug_cmd below for another # use), and '--verbose' and the func_verbose function to allow your script # to display verbose messages only when your user has specified # '--verbose'. # # After sourcing this file, you can plug in processing for additional # options by amending the variables from the 'Configuration' section # below, and following the instructions in the 'Option parsing' # section further down. ## -------------- ## ## Configuration. ## ## -------------- ## # You should override these variables in your script after sourcing this # file so that they reflect the customisations you have added to the # option parser. # The usage line for option parsing errors and the start of '-h' and # '--help' output messages. You can embed shell variables for delayed # expansion at the time the message is displayed, but you will need to # quote other shell meta-characters carefully to prevent them being # expanded when the contents are evaled. usage='$progpath [OPTION]...' # Short help message in response to '-h' and '--help'. Add to this or # override it after sourcing this library to reflect the full set of # options your script accepts. usage_message="\ --debug enable verbose shell tracing -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] -v, --verbose verbosely report processing --version print version information and exit -h, --help print short or long help message and exit " # Additional text appended to 'usage_message' in response to '--help'. long_help_message=" Warning categories include: 'all' show all warnings 'none' turn off all the warnings 'error' warnings are treated as fatal errors" # Help message printed before fatal option parsing errors. fatal_help="Try '\$progname --help' for more information." ## ------------------------- ## ## Hook function management. ## ## ------------------------- ## # This section contains functions for adding, removing, and running hooks # in the main code. A hook is just a list of function names that can be # run in order later on. # func_hookable FUNC_NAME # ----------------------- # Declare that FUNC_NAME will run hooks added with # 'func_add_hook FUNC_NAME ...'. func_hookable () { $debug_cmd func_append hookable_fns " $1" } # func_add_hook FUNC_NAME HOOK_FUNC # --------------------------------- # Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must # first have been declared "hookable" by a call to 'func_hookable'. func_add_hook () { $debug_cmd case " $hookable_fns " in *" $1 "*) ;; *) func_fatal_error "'$1' does not accept hook functions." ;; esac eval func_append ${1}_hooks '" $2"' } # func_remove_hook FUNC_NAME HOOK_FUNC # ------------------------------------ # Remove HOOK_FUNC from the list of hook functions to be called by # FUNC_NAME. func_remove_hook () { $debug_cmd eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' } # func_propagate_result FUNC_NAME_A FUNC_NAME_B # --------------------------------------------- # If the *_result variable of FUNC_NAME_A _is set_, assign its value to # *_result variable of FUNC_NAME_B. func_propagate_result () { $debug_cmd func_propagate_result_result=: if eval "test \"\${${1}_result+set}\" = set" then eval "${2}_result=\$${1}_result" else func_propagate_result_result=false fi } # func_run_hooks FUNC_NAME [ARG]... # --------------------------------- # Run all hook functions registered to FUNC_NAME. # It's assumed that the list of hook functions contains nothing more # than a whitespace-delimited list of legal shell function names, and # no effort is wasted trying to catch shell meta-characters or preserve # whitespace. func_run_hooks () { $debug_cmd _G_rc_run_hooks=false case " $hookable_fns " in *" $1 "*) ;; *) func_fatal_error "'$1' does not support hook functions." ;; esac eval _G_hook_fns=\$$1_hooks; shift for _G_hook in $_G_hook_fns; do func_unset "${_G_hook}_result" eval $_G_hook '${1+"$@"}' func_propagate_result $_G_hook func_run_hooks if $func_propagate_result_result; then eval set dummy "$func_run_hooks_result"; shift fi done } ## --------------- ## ## Option parsing. ## ## --------------- ## # In order to add your own option parsing hooks, you must accept the # full positional parameter list from your hook function. You may remove # or edit any options that you action, and then pass back the remaining # unprocessed options in '_result', escaped # suitably for 'eval'. # # The '_result' variable is automatically unset # before your hook gets called; for best performance, only set the # *_result variable when necessary (i.e. don't call the 'func_quote' # function unnecessarily because it can be an expensive operation on some # machines). # # Like this: # # my_options_prep () # { # $debug_cmd # # # Extend the existing usage message. # usage_message=$usage_message' # -s, --silent don'\''t print informational messages # ' # # No change in '$@' (ignored completely by this hook). Leave # # my_options_prep_result variable intact. # } # func_add_hook func_options_prep my_options_prep # # # my_silent_option () # { # $debug_cmd # # args_changed=false # # # Note that, for efficiency, we parse as many options as we can # # recognise in a loop before passing the remainder back to the # # caller on the first unrecognised argument we encounter. # while test $# -gt 0; do # opt=$1; shift # case $opt in # --silent|-s) opt_silent=: # args_changed=: # ;; # # Separate non-argument short options: # -s*) func_split_short_opt "$_G_opt" # set dummy "$func_split_short_opt_name" \ # "-$func_split_short_opt_arg" ${1+"$@"} # shift # args_changed=: # ;; # *) # Make sure the first unrecognised option "$_G_opt" # # is added back to "$@" in case we need it later, # # if $args_changed was set to 'true'. # set dummy "$_G_opt" ${1+"$@"}; shift; break ;; # esac # done # # # Only call 'func_quote' here if we processed at least one argument. # if $args_changed; then # func_quote eval ${1+"$@"} # my_silent_option_result=$func_quote_result # fi # } # func_add_hook func_parse_options my_silent_option # # # my_option_validation () # { # $debug_cmd # # $opt_silent && $opt_verbose && func_fatal_help "\ # '--silent' and '--verbose' options are mutually exclusive." # } # func_add_hook func_validate_options my_option_validation # # You'll also need to manually amend $usage_message to reflect the extra # options you parse. It's preferable to append if you can, so that # multiple option parsing hooks can be added safely. # func_options_finish [ARG]... # ---------------------------- # Finishing the option parse loop (call 'func_options' hooks ATM). func_options_finish () { $debug_cmd func_run_hooks func_options ${1+"$@"} func_propagate_result func_run_hooks func_options_finish } # func_options [ARG]... # --------------------- # All the functions called inside func_options are hookable. See the # individual implementations for details. func_hookable func_options func_options () { $debug_cmd _G_options_quoted=false for my_func in options_prep parse_options validate_options options_finish do func_unset func_${my_func}_result func_unset func_run_hooks_result eval func_$my_func '${1+"$@"}' func_propagate_result func_$my_func func_options if $func_propagate_result_result; then eval set dummy "$func_options_result"; shift _G_options_quoted=: fi done $_G_options_quoted || { # As we (func_options) are top-level options-parser function and # nobody quoted "$@" for us yet, we need to do it explicitly for # caller. func_quote eval ${1+"$@"} func_options_result=$func_quote_result } } # func_options_prep [ARG]... # -------------------------- # All initialisations required before starting the option parse loop. # Note that when calling hook functions, we pass through the list of # positional parameters. If a hook function modifies that list, and # needs to propagate that back to rest of this script, then the complete # modified list must be put in 'func_run_hooks_result' before returning. func_hookable func_options_prep func_options_prep () { $debug_cmd # Option defaults: opt_verbose=false opt_warning_types= func_run_hooks func_options_prep ${1+"$@"} func_propagate_result func_run_hooks func_options_prep } # func_parse_options [ARG]... # --------------------------- # The main option parsing loop. func_hookable func_parse_options func_parse_options () { $debug_cmd _G_parse_options_requote=false # this just eases exit handling while test $# -gt 0; do # Defer to hook functions for initial option parsing, so they # get priority in the event of reusing an option name. func_run_hooks func_parse_options ${1+"$@"} func_propagate_result func_run_hooks func_parse_options if $func_propagate_result_result; then eval set dummy "$func_parse_options_result"; shift # Even though we may have changed "$@", we passed the "$@" array # down into the hook and it quoted it for us (because we are in # this if-branch). No need to quote it again. _G_parse_options_requote=false fi # Break out of the loop if we already parsed every option. test $# -gt 0 || break # We expect that one of the options parsed in this function matches # and thus we remove _G_opt from "$@" and need to re-quote. _G_match_parse_options=: _G_opt=$1 shift case $_G_opt in --debug|-x) debug_cmd='set -x' func_echo "enabling shell trace mode" >&2 $debug_cmd ;; --no-warnings|--no-warning|--no-warn) set dummy --warnings none ${1+"$@"} shift ;; --warnings|--warning|-W) if test $# = 0 && func_missing_arg $_G_opt; then _G_parse_options_requote=: break fi case " $warning_categories $1" in *" $1 "*) # trailing space prevents matching last $1 above func_append_uniq opt_warning_types " $1" ;; *all) opt_warning_types=$warning_categories ;; *none) opt_warning_types=none warning_func=: ;; *error) opt_warning_types=$warning_categories warning_func=func_fatal_error ;; *) func_fatal_error \ "unsupported warning category: '$1'" ;; esac shift ;; --verbose|-v) opt_verbose=: ;; --version) func_version ;; -\?|-h) func_usage ;; --help) func_help ;; # Separate optargs to long options (plugins may need this): --*=*) func_split_equals "$_G_opt" set dummy "$func_split_equals_lhs" \ "$func_split_equals_rhs" ${1+"$@"} shift ;; # Separate optargs to short options: -W*) func_split_short_opt "$_G_opt" set dummy "$func_split_short_opt_name" \ "$func_split_short_opt_arg" ${1+"$@"} shift ;; # Separate non-argument short options: -\?*|-h*|-v*|-x*) func_split_short_opt "$_G_opt" set dummy "$func_split_short_opt_name" \ "-$func_split_short_opt_arg" ${1+"$@"} shift ;; --) _G_parse_options_requote=: ; break ;; -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; *) set dummy "$_G_opt" ${1+"$@"}; shift _G_match_parse_options=false break ;; esac if $_G_match_parse_options; then _G_parse_options_requote=: fi done if $_G_parse_options_requote; then # save modified positional parameters for caller func_quote eval ${1+"$@"} func_parse_options_result=$func_quote_result fi } # func_validate_options [ARG]... # ------------------------------ # Perform any sanity checks on option settings and/or unconsumed # arguments. func_hookable func_validate_options func_validate_options () { $debug_cmd # Display all warnings if -W was not given. test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" func_run_hooks func_validate_options ${1+"$@"} func_propagate_result func_run_hooks func_validate_options # Bail if the options were screwed! $exit_cmd $EXIT_FAILURE } ## ----------------- ## ## Helper functions. ## ## ----------------- ## # This section contains the helper functions used by the rest of the # hookable option parser framework in ascii-betical order. # func_fatal_help ARG... # ---------------------- # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { $debug_cmd eval \$ECHO \""Usage: $usage"\" eval \$ECHO \""$fatal_help"\" func_error ${1+"$@"} exit $EXIT_FAILURE } # func_help # --------- # Echo long help message to standard output and exit. func_help () { $debug_cmd func_usage_message $ECHO "$long_help_message" exit 0 } # func_missing_arg ARGNAME # ------------------------ # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { $debug_cmd func_error "Missing argument for '$1'." exit_cmd=exit } # func_split_equals STRING # ------------------------ # Set func_split_equals_lhs and func_split_equals_rhs shell variables # after splitting STRING at the '=' sign. test -z "$_G_HAVE_XSI_OPS" \ && (eval 'x=a/b/c; test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ && _G_HAVE_XSI_OPS=yes if test yes = "$_G_HAVE_XSI_OPS" then # This is an XSI compatible shell, allowing a faster implementation... eval 'func_split_equals () { $debug_cmd func_split_equals_lhs=${1%%=*} func_split_equals_rhs=${1#*=} if test "x$func_split_equals_lhs" = "x$1"; then func_split_equals_rhs= fi }' else # ...otherwise fall back to using expr, which is often a shell builtin. func_split_equals () { $debug_cmd func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` func_split_equals_rhs= test "x$func_split_equals_lhs=" = "x$1" \ || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` } fi #func_split_equals # func_split_short_opt SHORTOPT # ----------------------------- # Set func_split_short_opt_name and func_split_short_opt_arg shell # variables after splitting SHORTOPT after the 2nd character. if test yes = "$_G_HAVE_XSI_OPS" then # This is an XSI compatible shell, allowing a faster implementation... eval 'func_split_short_opt () { $debug_cmd func_split_short_opt_arg=${1#??} func_split_short_opt_name=${1%"$func_split_short_opt_arg"} }' else # ...otherwise fall back to using expr, which is often a shell builtin. func_split_short_opt () { $debug_cmd func_split_short_opt_name=`expr "x$1" : 'x\(-.\)'` func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` } fi #func_split_short_opt # func_usage # ---------- # Echo short help message to standard output and exit. func_usage () { $debug_cmd func_usage_message $ECHO "Run '$progname --help |${PAGER-more}' for full usage" exit 0 } # func_usage_message # ------------------ # Echo short help message to standard output. func_usage_message () { $debug_cmd eval \$ECHO \""Usage: $usage"\" echo $SED -n 's|^# || /^Written by/{ x;p;x } h /^Written by/q' < "$progpath" echo eval \$ECHO \""$usage_message"\" } # func_version # ------------ # Echo version message to standard output and exit. # The version message is extracted from the calling file's header # comments, with leading '# ' stripped: # 1. First display the progname and version # 2. Followed by the header comment line matching /^# Written by / # 3. Then a blank line followed by the first following line matching # /^# Copyright / # 4. Immediately followed by any lines between the previous matches, # except lines preceding the intervening completely blank line. # For example, see the header comments of this file. func_version () { $debug_cmd printf '%s\n' "$progname $scriptversion" $SED -n ' /^# Written by /!b s|^# ||; p; n :fwd2blnk /./ { n b fwd2blnk } p; n :holdwrnt s|^# || s|^# *$|| /^Copyright /!{ /./H n b holdwrnt } s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| G s|\(\n\)\n*|\1|g p; q' < "$progpath" exit $? } # Local variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-pattern: "30/scriptversion=%:y-%02m-%02d.%02H; # UTC" # time-stamp-time-zone: "UTC" # End: # Set a version string. scriptversion='(GNU libtool) 2.5.4' # func_version # ------------ # Echo version message to standard output and exit. func_version () { $debug_cmd year=`date +%Y` cat < This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Originally written by Gordon Matzigkeit, 1996 (See AUTHORS for complete contributor listing) EOF exit $? } # func_echo ARG... # ---------------- # Libtool also displays the current mode in messages, so override # funclib.sh func_echo with this custom definition. func_echo () { $debug_cmd _G_message=$* func_echo_IFS=$IFS IFS=$nl for _G_line in $_G_message; do IFS=$func_echo_IFS $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line" done IFS=$func_echo_IFS } ## ---------------- ## ## Options parsing. ## ## ---------------- ## # Hook in the functions to make sure our own options are parsed during # the option parsing loop. usage='$progpath [OPTION]... [MODE-ARG]...' # Short help message in response to '-h'. usage_message="Options: --config show all configuration variables --debug enable verbose shell tracing -n, --dry-run display commands without modifying any files --features display basic configuration information --finish use operation '--mode=finish' --mode=MODE use operation mode MODE --no-finish don't update shared library cache --no-quiet, --no-silent print default informational messages --no-warnings equivalent to '-Wnone' --preserve-dup-deps don't remove duplicate dependency libraries --quiet, --silent don't print informational messages --reorder-cache=DIRS reorder shared library cache for preferred DIRS --tag=TAG use configuration variables from tag TAG -v, --verbose print more informational messages than default --version print version information -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] -h, --help, --help-all print short, long, or detailed help message " # Additional text appended to 'usage_message' in response to '--help'. func_help () { $debug_cmd func_usage_message $ECHO "$long_help_message MODE must be one of the following: clean remove files from the build directory compile compile a source file into a libtool object execute automatically set library path, then run a program finish complete the installation of libtool libraries install install libraries or executables link create a library or an executable uninstall remove libraries from an installed directory MODE-ARGS vary depending on the MODE. When passed as first option, '--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that. Try '$progname --help --mode=MODE' for a more detailed description of MODE. When reporting a bug, please describe a test case to reproduce it and include the following information: host-triplet: $host shell: $SHELL compiler: $LTCC compiler flags: $LTCFLAGS linker: $LD (gnu? $with_gnu_ld) version: $progname $scriptversion Debian-2.5.4-4 automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` Report bugs to . GNU libtool home page: . General help using GNU software: ." exit 0 } # func_lo2o OBJECT-NAME # --------------------- # Transform OBJECT-NAME from a '.lo' suffix to the platform specific # object suffix. lo2o=s/\\.lo\$/.$objext/ o2lo=s/\\.$objext\$/.lo/ if test yes = "$_G_HAVE_XSI_OPS"; then eval 'func_lo2o () { case $1 in *.lo) func_lo2o_result=${1%.lo}.$objext ;; * ) func_lo2o_result=$1 ;; esac }' # func_xform LIBOBJ-OR-SOURCE # --------------------------- # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise) # suffix to a '.lo' libtool-object suffix. eval 'func_xform () { func_xform_result=${1%.*}.lo }' else # ...otherwise fall back to using sed. func_lo2o () { func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"` } func_xform () { func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'` } fi # func_fatal_configuration ARG... # ------------------------------- # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { func_fatal_error ${1+"$@"} \ "See the $PACKAGE documentation for more information." \ "Fatal configuration error." } # func_config # ----------- # Display the configuration for all the tags in this script. func_config () { re_begincf='^# ### BEGIN LIBTOOL' re_endcf='^# ### END LIBTOOL' # Default configuration. $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" # Now print the configurations for the tags. for tagname in $taglist; do $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" done exit $? } # func_features # ------------- # Display the features supported by this script. func_features () { echo "host: $host" if test yes = "$build_libtool_libs"; then echo "enable shared libraries" else echo "disable shared libraries" fi if test yes = "$build_old_libs"; then echo "enable static libraries" else echo "disable static libraries" fi exit $? } # func_enable_tag TAGNAME # ----------------------- # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { # Global variable: tagname=$1 re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" sed_extractcf=/$re_begincf/,/$re_endcf/p # Validate tagname. case $tagname in *[!-_A-Za-z0-9,/]*) func_fatal_error "invalid tag name: $tagname" ;; esac # Don't test for the "default" C tag, as we know it's # there but not specially marked. case $tagname in CC) ;; *) if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # func_check_version_match # ------------------------ # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } # libtool_options_prep [ARG]... # ----------------------------- # Preparation for options parsed by libtool. libtool_options_prep () { $debug_mode # Option defaults: opt_config=false opt_dlopen= opt_dry_run=false opt_help=false opt_mode= opt_reorder_cache=false opt_preserve_dup_deps=false opt_quiet=false opt_finishing=true opt_warning= nonopt= preserve_args= _G_rc_lt_options_prep=: _G_rc_lt_options_prep=: # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; *) _G_rc_lt_options_prep=false ;; esac if $_G_rc_lt_options_prep; then # Pass back the list of options. func_quote eval ${1+"$@"} libtool_options_prep_result=$func_quote_result fi } func_add_hook func_options_prep libtool_options_prep # libtool_parse_options [ARG]... # --------------------------------- # Provide handling for libtool specific options. libtool_parse_options () { $debug_cmd _G_rc_lt_parse_options=false # Perform our own loop to consume as many options as possible in # each iteration. while test $# -gt 0; do _G_match_lt_parse_options=: _G_opt=$1 shift case $_G_opt in --dry-run|--dryrun|-n) opt_dry_run=: ;; --config) func_config ;; --dlopen|-dlopen) opt_dlopen="${opt_dlopen+$opt_dlopen }$1" shift ;; --preserve-dup-deps) opt_preserve_dup_deps=: ;; --features) func_features ;; --finish) set dummy --mode finish ${1+"$@"}; shift ;; --help) opt_help=: ;; --help-all) opt_help=': help-all' ;; --mode) test $# = 0 && func_missing_arg $_G_opt && break opt_mode=$1 case $1 in # Valid mode arguments: clean|compile|execute|finish|install|link|relink|uninstall) ;; # Catch anything else as an error *) func_error "invalid argument '$1' for $_G_opt" exit_cmd=exit ;; esac shift ;; --no-finish) opt_finishing=false func_append preserve_args " $_G_opt" ;; --no-silent|--no-quiet) opt_quiet=false func_append preserve_args " $_G_opt" ;; --no-warnings|--no-warning|--no-warn) opt_warning=false func_append preserve_args " $_G_opt" ;; --no-verbose) opt_verbose=false func_append preserve_args " $_G_opt" ;; --reorder-cache) opt_reorder_cache=true shared_lib_dirs=$1 if test -n "$shared_lib_dirs"; then case $1 in # Must begin with /: /*) ;; # Catch anything else as an error (relative paths) *) func_error "invalid argument '$1' for $_G_opt" func_error "absolute paths are required for $_G_opt" exit_cmd=exit ;; esac fi shift ;; --silent|--quiet) opt_quiet=: opt_verbose=false func_append preserve_args " $_G_opt" ;; --tag) test $# = 0 && func_missing_arg $_G_opt && break opt_tag=$1 func_append preserve_args " $_G_opt $1" func_enable_tag "$1" shift ;; --verbose|-v) opt_quiet=false opt_verbose=: func_append preserve_args " $_G_opt" ;; # An option not handled by this hook function: *) set dummy "$_G_opt" ${1+"$@"} ; shift _G_match_lt_parse_options=false break ;; esac $_G_match_lt_parse_options && _G_rc_lt_parse_options=: done if $_G_rc_lt_parse_options; then # save modified positional parameters for caller func_quote eval ${1+"$@"} libtool_parse_options_result=$func_quote_result fi } func_add_hook func_parse_options libtool_parse_options # func_warning ARG... # ------------------- # Libtool warnings are not categorized, so override funclib.sh # func_warning with this simpler definition. func_warning () { if $opt_warning; then $debug_cmd $warning_func ${1+"$@"} fi } # libtool_validate_options [ARG]... # --------------------------------- # Perform any sanity checks on option settings and/or unconsumed # arguments. libtool_validate_options () { # save first non-option argument if test 0 -lt $#; then nonopt=$1 shift fi # preserve --debug test : = "$debug_cmd" || func_append preserve_args " --debug" case $host_os in # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 cygwin* | mingw* | windows* | pw32* | cegcc* | solaris2* | os2*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ;; esac $opt_help || { # Sanity checks first: func_check_version_match test yes != "$build_libtool_libs" \ && test yes != "$build_old_libs" \ && func_fatal_configuration "not configured to build any kind of library" # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$opt_dlopen" && test execute != "$opt_mode"; then func_error "unrecognized option '-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help=$help help="Try '$progname --help --mode=$opt_mode' for more information." } # Pass back the unparsed argument list func_quote eval ${1+"$@"} libtool_validate_options_result=$func_quote_result } func_add_hook func_validate_options libtool_validate_options # Process options as early as possible so that --help and --version # can return quickly. func_options ${1+"$@"} eval set dummy "$func_options_result"; shift ## ----------- ## ## Main. ## ## ----------- ## magic='%%%MAGIC variable%%%' magic_exe='%%%MAGIC EXE variable%%%' # Global variables. extracted_archives= extracted_serial=0 # 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. exec_cmd= # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } # func_generated_by_libtool # True iff stdin has been generated by Libtool. This function is only # a basic sanity check; it will hardly flush out determined imposters. func_generated_by_libtool_p () { $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_p file # True iff FILE is a libtool '.la' library or '.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p } # func_lalib_unsafe_p file # True iff FILE is a libtool '.la' library or '.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if 'file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case $lalib_p_line in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test yes = "$lalib_p" } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { test -f "$1" && $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $debug_cmd save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$sp$nl eval cmd=\"$cmd\" IFS=$save_ifs func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE 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. func_source () { $debug_cmd case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_resolve_sysroot PATH # Replace a leading = in PATH with a sysroot. Store the result into # func_resolve_sysroot_result func_resolve_sysroot () { func_resolve_sysroot_result=$1 case $func_resolve_sysroot_result in =*) func_stripname '=' '' "$func_resolve_sysroot_result" func_resolve_sysroot_result=$lt_sysroot$func_stripname_result ;; esac } # func_replace_sysroot PATH # If PATH begins with the sysroot, replace it with = and # store the result into func_replace_sysroot_result. func_replace_sysroot () { case $lt_sysroot:$1 in ?*:"$lt_sysroot"*) func_stripname "$lt_sysroot" '' "$1" func_replace_sysroot_result='='$func_stripname_result ;; *) # Including no sysroot. func_replace_sysroot_result=$1 ;; esac } # 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 () { $debug_cmd if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` 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 "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # 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. func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # 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 func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with '--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=$1 if test yes = "$build_libtool_libs"; then write_lobj=\'$2\' else write_lobj=none fi if test yes = "$build_old_libs"; then write_oldobj=\'$3\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T </dev/null` if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | $SED -e "$sed_naive_backslashify"` else func_convert_core_file_wine_to_w32_result= fi fi } # end: func_convert_core_file_wine_to_w32 # func_convert_core_path_wine_to_w32 ARG # Helper function used by path conversion functions when $build is *nix, and # $host is mingw, windows, cygwin, or some other w32 environment. Relies on a # correctly configured wine environment available, with the winepath program # in $build's $PATH. Assumes ARG has no leading or trailing path separator # characters. # # ARG is path to be converted from $build format to win32. # Result is available in $func_convert_core_path_wine_to_w32_result. # Unconvertible file (directory) names in ARG are skipped; if no directory names # are convertible, then the result may be empty. func_convert_core_path_wine_to_w32 () { $debug_cmd # unfortunately, winepath doesn't convert paths, only file names func_convert_core_path_wine_to_w32_result= if test -n "$1"; then oldIFS=$IFS IFS=: for func_convert_core_path_wine_to_w32_f in $1; do IFS=$oldIFS func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" if test -n "$func_convert_core_file_wine_to_w32_result"; then if test -z "$func_convert_core_path_wine_to_w32_result"; then func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result else func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" fi fi done IFS=$oldIFS fi } # end: func_convert_core_path_wine_to_w32 # func_cygpath ARGS... # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or # (2), returns the Cygwin file name or path in func_cygpath_result (input # file name or path is assumed to be in w32 format, as previously converted # from $build's *nix or MSYS format). In case (3), returns the w32 file name # or path in func_cygpath_result (input file name or path is assumed to be in # Cygwin format). Returns an empty string on error. # # ARGS are passed to cygpath, with the last one being the file name or path to # be converted. # # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH # environment variable; do not put it in $PATH. func_cygpath () { $debug_cmd if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` if test "$?" -ne 0; then # on failure, ensure result is empty func_cygpath_result= fi else func_cygpath_result= func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'" fi } #end: func_cygpath # func_convert_core_msys_to_w32 ARG # Convert file name or path ARG from MSYS format to w32 format. Return # result in func_convert_core_msys_to_w32_result. func_convert_core_msys_to_w32 () { $debug_cmd # awkward: cmd appends spaces to result func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` } #end: func_convert_core_msys_to_w32 # func_convert_file_check ARG1 ARG2 # Verify that ARG1 (a file name in $build format) was converted to $host # format in ARG2. Otherwise, emit an error message, but continue (resetting # func_to_host_file_result to ARG1). func_convert_file_check () { $debug_cmd if test -z "$2" && test -n "$1"; then func_error "Could not determine host file name corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_file_result=$1 fi } # end func_convert_file_check # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH # Verify that FROM_PATH (a path in $build format) was converted to $host # format in TO_PATH. Otherwise, emit an error message, but continue, resetting # func_to_host_file_result to a simplistic fallback value (see below). func_convert_path_check () { $debug_cmd if test -z "$4" && test -n "$3"; then func_error "Could not determine the host path corresponding to" func_error " '$3'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This is a deliberately simplistic "conversion" and # should not be "improved". See libtool.info. if test "x$1" != "x$2"; then lt_replace_pathsep_chars="s|$1|$2|g" func_to_host_path_result=`echo "$3" | $SED -e "$lt_replace_pathsep_chars"` else func_to_host_path_result=$3 fi fi } # end func_convert_path_check # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT # and appending REPL if ORIG matches BACKPAT. func_convert_path_front_back_pathsep () { $debug_cmd case $4 in $1 ) func_to_host_path_result=$3$func_to_host_path_result ;; esac case $4 in $2 ) func_append func_to_host_path_result "$3" ;; esac } # end func_convert_path_front_back_pathsep # func_convert_delimited_path PATH ORIG_DELIMITER NEW_DELIMITER # Replaces a delimiter for a given path. func_convert_delimited_path () { converted_path=`$ECHO "$1" | $SED "s#$2#$3#g"` } # end func_convert_delimited_path ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ################################################## # invoked via '$to_host_file_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # Result will be available in $func_to_host_file_result. # func_to_host_file ARG # Converts the file name ARG from $build format to $host format. Return result # in func_to_host_file_result. func_to_host_file () { $debug_cmd $to_host_file_cmd "$1" } # end func_to_host_file # func_to_tool_file ARG LAZY # converts the file name ARG from $build format to toolchain format. Return # result in func_to_tool_file_result. If the conversion in use is listed # in (the comma separated) LAZY, no conversion takes place. func_to_tool_file () { $debug_cmd case ,$2, in *,"$to_tool_file_cmd",*) func_to_tool_file_result=$1 ;; *) $to_tool_file_cmd "$1" func_to_tool_file_result=$func_to_host_file_result ;; esac } # end func_to_tool_file # func_convert_file_noop ARG # Copy ARG to func_to_host_file_result. func_convert_file_noop () { func_to_host_file_result=$1 } # end func_convert_file_noop # func_convert_file_msys_to_w32 ARG # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_file_result. func_convert_file_msys_to_w32 () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_to_host_file_result=$func_convert_core_msys_to_w32_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_w32 # func_convert_file_cygwin_to_w32 ARG # Convert file name ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_file_cygwin_to_w32 () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then # because $build is cygwin, we call "the" cygpath in $PATH; no need to use # LT_CYGPATH in this case. func_to_host_file_result=`cygpath -m "$1"` fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_cygwin_to_w32 # func_convert_file_nix_to_w32 ARG # Convert file name ARG from *nix to w32 format. Requires a wine environment # and a working winepath. Returns result in func_to_host_file_result. func_convert_file_nix_to_w32 () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_file_wine_to_w32 "$1" func_to_host_file_result=$func_convert_core_file_wine_to_w32_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_w32 # func_convert_file_msys_to_cygwin ARG # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_file_msys_to_cygwin () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_cygpath -u "$func_convert_core_msys_to_w32_result" func_to_host_file_result=$func_cygpath_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_cygwin # func_convert_file_nix_to_cygwin ARG # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed # in a wine environment, working winepath, and LT_CYGPATH set. Returns result # in func_to_host_file_result. func_convert_file_nix_to_cygwin () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. func_convert_core_file_wine_to_w32 "$1" func_cygpath -u "$func_convert_core_file_wine_to_w32_result" func_to_host_file_result=$func_cygpath_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_cygwin ############################################# # $build to $host PATH CONVERSION FUNCTIONS # ############################################# # invoked via '$to_host_path_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # The result will be available in $func_to_host_path_result. # # Path separators are also converted from $build format to $host format. If # ARG begins or ends with a path separator character, it is preserved (but # converted to $host format) on output. # # All path conversion functions are named using the following convention: # file name conversion function : func_convert_file_X_to_Y () # path conversion function : func_convert_path_X_to_Y () # where, for any given $build/$host combination the 'X_to_Y' value is the # same. If conversion functions are added for new $build/$host combinations, # the two new functions must follow this pattern, or func_init_to_host_path_cmd # will break. # func_init_to_host_path_cmd # Ensures that function "pointer" variable $to_host_path_cmd is set to the # appropriate value, based on the value of $to_host_file_cmd. to_host_path_cmd= func_init_to_host_path_cmd () { $debug_cmd if test -z "$to_host_path_cmd"; then func_stripname 'func_convert_file_' '' "$to_host_file_cmd" to_host_path_cmd=func_convert_path_$func_stripname_result fi } # func_to_host_path ARG # Converts the path ARG from $build format to $host format. Return result # in func_to_host_path_result. func_to_host_path () { $debug_cmd func_init_to_host_path_cmd $to_host_path_cmd "$1" } # end func_to_host_path # func_convert_path_noop ARG # Copy ARG to func_to_host_path_result. func_convert_path_noop () { func_to_host_path_result=$1 } # end func_convert_path_noop # func_convert_path_msys_to_w32 ARG # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_path_result. func_convert_path_msys_to_w32 () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # Remove leading and trailing path separator characters from ARG. MSYS # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; # and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result=$func_convert_core_msys_to_w32_result func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_msys_to_w32 # func_convert_path_cygwin_to_w32 ARG # Convert path ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_path_cygwin_to_w32 () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_cygwin_to_w32 # func_convert_path_nix_to_w32 ARG # Convert path ARG from *nix to w32 format. Requires a wine environment and # a working winepath. Returns result in func_to_host_file_result. func_convert_path_nix_to_w32 () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result=$func_convert_core_path_wine_to_w32_result func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_nix_to_w32 # func_convert_path_msys_to_cygwin ARG # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_path_msys_to_cygwin () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_msys_to_w32_result" func_to_host_path_result=$func_cygpath_result func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_msys_to_cygwin # func_convert_path_nix_to_cygwin ARG # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a # a wine environment, working winepath, and LT_CYGPATH set. Returns result in # func_to_host_file_result. func_convert_path_nix_to_cygwin () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" func_to_host_path_result=$func_cygpath_result func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_nix_to_cygwin # func_dll_def_p FILE # True iff FILE is a Windows DLL '.def' file. # Keep in sync with _LT_DLL_DEF_P in libtool.m4 func_dll_def_p () { $debug_cmd func_dll_def_p_tmp=`$SED -n \ -e 's/^[ ]*//' \ -e '/^\(;.*\)*$/d' \ -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \ -e q \ "$1"` test DEF = "$func_dll_def_p_tmp" } # func_reorder_shared_lib_cache DIRS # Reorder the shared library cache by unconfiguring previous shared library cache # and configuring preferred search directories before previous search directories. # Previous shared library cache: /usr/lib /usr/local/lib # Preferred search directories: /tmp/testing # Reordered shared library cache: /tmp/testing /usr/lib /usr/local/lib func_reorder_shared_lib_cache () { $debug_cmd case $host_os in openbsd*) get_search_directories=`PATH="$PATH:/sbin" ldconfig -r | $GREP "search directories" | $SED "s#.*search directories:\ ##g"` func_convert_delimited_path "$get_search_directories" ':' '\ ' save_search_directories=$converted_path func_convert_delimited_path "$1" ':' '\ ' # Ensure directories exist for dir in $converted_path; do # Ensure each directory is an absolute path case $dir in /*) ;; *) func_error "Directory '$dir' is not an absolute path" exit $EXIT_FAILURE ;; esac # Ensure no trailing slashes func_stripname '' '/' "$dir" dir=$func_stripname_result if test -d "$dir"; then if test -n "$preferred_search_directories"; then preferred_search_directories="$preferred_search_directories $dir" else preferred_search_directories=$dir fi else func_error "Directory '$dir' does not exist" exit $EXIT_FAILURE fi done PATH="$PATH:/sbin" ldconfig -U $save_search_directories PATH="$PATH:/sbin" ldconfig -m $preferred_search_directories $save_search_directories get_search_directories=`PATH="$PATH:/sbin" ldconfig -r | $GREP "search directories" | $SED "s#.*search directories:\ ##g"` func_convert_delimited_path "$get_search_directories" ':' '\ ' reordered_search_directories=$converted_path $ECHO "Original: $save_search_directories" $ECHO "Reordered: $reordered_search_directories" exit $EXIT_SUCCESS ;; *) func_error "--reorder-cache is not supported for host_os=$host_os." exit $EXIT_FAILURE ;; esac } # end func_reorder_shared_lib_cache # func_mode_compile arg... func_mode_compile () { $debug_cmd # 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= pie_flag= 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) test -n "$libobj" && \ func_fatal_error "you cannot specify '-o' more than once" arg_mode=target continue ;; -pie | -fpie | -fPIE) func_append pie_flag " $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) func_append 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,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result lastarg= save_ifs=$IFS; IFS=, for arg in $args; do IFS=$save_ifs func_append_quoted lastarg "$arg" done IFS=$save_ifs func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. func_append 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. func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in arg) func_fatal_error "you must specify an argument for -Xcompile" ;; target) func_fatal_error "you must specify a target with '-o'" ;; *) # Get the name of the library object. test -z "$libobj" && { func_basename "$srcfile" libobj=$func_basename_result } ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo case $libobj in *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; esac case $libobj in *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) func_fatal_error "cannot determine name of library object from '$libobj'" ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -shared) test yes = "$build_libtool_libs" \ || func_fatal_configuration "cannot build a shared library" build_old_libs=no continue ;; -static) build_libtool_libs=no build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done func_quote_arg pretty "$libobj" test "X$libobj" != "X$func_quote_arg_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name '$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname=$func_basename_result xdir=$func_dirname_result lobj=$xdir$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test yes = "$build_old_libs"; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | windows* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test no = "$compiler_c_o"; then output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext lockfile=$output_obj.lock else output_obj= need_locks=no lockfile= fi # 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 yes = "$need_locks"; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test warn = "$need_locks"; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi func_append removelist " $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist func_append removelist " $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result func_quote_arg pretty "$srcfile" qsrcfile=$func_quote_arg_result # Only build a PIC object if we are building libtool libraries. if test yes = "$build_libtool_libs"; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test no != "$pic_mode"; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir func_append command " -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test warn = "$need_locks" && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_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 func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test yes = "$suppress_opt"; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test yes = "$build_old_libs"; then if test yes != "$pic_mode"; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test yes = "$compiler_c_o"; then func_append command " -o $obj" fi # Suppress compiler output if we already did a PIC compilation. func_append command "$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test warn = "$need_locks" && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_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 func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test no != "$need_locks"; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test compile = "$opt_mode" && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $opt_mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to build PIC objects only -prefer-non-pic try to build non-PIC objects only -shared do not build a '.o' file suitable for static linking -static only build a '.o' file suitable for static linking -Wc,FLAG -Xcompiler FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a 'standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix '.c' with the library object suffix, '.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to '-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the '--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the 'install' or 'cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -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 -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes) -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 -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler -Wa,FLAG -Xassembler FLAG pass linker-specific FLAG directly to the assembler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) All other options (arguments beginning with '-') are ignored. Every other argument is treated as a filename. Files ending in '.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in '.la', then a libtool library is created, only library objects ('.lo' files) may be specified, and '-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created using 'ar' and 'ranlib', or on Windows using 'lib'. If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode '$opt_mode'" ;; esac echo $ECHO "Try '$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then if test : = "$opt_help"; then func_mode_help else { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do func_mode_help done } | $SED -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do echo func_mode_help done } | $SED '1d /^When reporting/,/^Report/{ H d } $x /information about other modes/d /more detailed .*MODE/d s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' fi exit $? fi # If option '--reorder-cache', reorder the shared library cache and exit. if $opt_reorder_cache; then func_reorder_shared_lib_cache $shared_lib_dirs fi # func_mode_execute arg... func_mode_execute () { $debug_cmd # The first argument is the command name. cmd=$nonopt test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $opt_dlopen; do test -f "$file" \ || func_fatal_help "'$file' is not a file" dir= case $file in *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "'$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "'$file' was not linked with '-export-dynamic'" continue fi func_dirname "$file" "" "." dir=$func_dirname_result if test -f "$dir/$objdir/$dlname"; then func_append dir "/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir=$func_dirname_result ;; *) func_warning "'-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir=$absdir # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic=$magic # Check if any of the arguments is a wrapper script. args= for file do case $file in -* | *.la | *.lo ) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file=$progdir/$program elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file=$progdir/$program fi ;; esac # Quote arguments (to preserve shell metacharacters). func_append_quoted args "$file" done if $opt_dry_run; then # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" echo "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS else if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd=\$cmd$args fi } test execute = "$opt_mode" && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $debug_cmd libs= libdirs= admincmds= for opt in "$nonopt" ${1+"$@"} do if test -d "$opt"; then func_append libdirs " $opt" elif test -f "$opt"; then if func_lalib_unsafe_p "$opt"; then func_append libs " $opt" else func_warning "'$opt' is not a valid libtool archive" fi else func_fatal_error "invalid argument '$opt'" fi done if test -n "$libs"; then if test -n "$lt_sysroot"; then sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" else sysroot_cmd= fi # Remove sysroot references if $opt_dry_run; then for lib in $libs; do echo "removing references to $lt_sysroot and '=' prefixes from $lib" done else tmpdir=`func_mktempdir` for lib in $libs; do $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ > $tmpdir/tmp-la mv -f $tmpdir/tmp-la $lib done ${RM}r "$tmpdir" fi fi if test -n "$finish_cmds$finish_eval" && test -n "$libdirs" && $opt_finishing; then for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || func_append admincmds " $cmds" fi done fi # Exit here if they wanted silent mode. $opt_quiet && exit $EXIT_SUCCESS if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then echo "----------------------------------------------------------------------" echo "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done if test "false" = "$opt_finishing"; then echo echo "NOTE: finish_cmds were not executed during testing, so you must" echo "manually run ldconfig to add a given test directory, LIBDIR, to" echo "the search path for generated executables." fi 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" case $host in solaris2.[6789]|solaris2.1[0-9]) echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" echo "pages." ;; *) echo "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac echo "----------------------------------------------------------------------" fi exit $EXIT_SUCCESS } test finish = "$opt_mode" && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $debug_cmd # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" || # Allow the use of GNU shtool's install command. case $nonopt in *shtool*) :;; *) false;; esac then # Aesthetically quote it. func_quote_arg pretty "$nonopt" install_prog="$func_quote_arg_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_arg pretty "$arg" func_append install_prog "$func_quote_arg_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; *) install_cp=false ;; esac # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=false stripme= no_mode=: for arg do arg2= if test -n "$dest"; then func_append files " $dest" dest=$arg continue fi case $arg in -d) isdir=: ;; -f) if $install_cp; then :; else prev=$arg fi ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then if test X-m = "X$prev" && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_arg pretty "$arg" func_append install_prog " $func_quote_arg_result" if test -n "$arg2"; then func_quote_arg pretty "$arg2" fi func_append install_shared_prog " $func_quote_arg_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the '$prev' option requires an argument" if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else func_quote_arg pretty "$install_override_mode" func_append install_shared_prog " -m $func_quote_arg_result" fi fi if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=: if $isdir; then destdir=$dest destname= else func_dirname_and_basename "$dest" "" "." destdir=$func_dirname_result destname=$func_basename_result # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "'$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "'$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic=$magic staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. func_append staticlibs " $file" ;; *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "'$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) func_append current_libdirs " $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) func_append future_libdirs " $libdir" ;; esac fi func_dirname "$file" "/" "" dir=$func_dirname_result func_append dir "$objdir" if test -n "$relink_command"; then # Strip any trailing slash from the destination. func_stripname '' '/' "$libdir" destlibdir=$func_stripname_result func_stripname '' '/' "$destdir" s_destdir=$func_stripname_result # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "X$s_destdir" | $Xsed -e "s%$destlibdir\$%%"` # 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. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" 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 func_warning "relinking '$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname=$1 shift srcname=$realname test -n "$relink_command" && srcname=${realname}T # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme=$stripme case $host_os in cygwin* | mingw* | windows* | pw32* | cegcc*) case $realname in *.dll.a) tstripme= ;; esac ;; os2*) case $realname in *_dll.a) tstripme= ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_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 test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib=$destdir/$realname func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name=$func_basename_result instname=$dir/${name}i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && func_append staticlibs " $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile=$destdir/$destname else func_basename "$file" destfile=$func_basename_result destfile=$destdir/$destfile fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest=$destfile destfile= ;; *) func_fatal_help "cannot copy a libtool object to '$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test yes = "$build_old_libs"; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile=$destdir/$destname else func_basename "$file" destfile=$func_basename_result 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 func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=.exe fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw* | *windows*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script '$wrapper'" finalize=: for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'` if test -n "$libdir" && test ! -f "$libfile"; then func_warning "'$lib' has not been installed in '$libdir'" finalize=false fi done relink_command= func_source "$wrapper" outputname= if test no = "$fast_install" && test -n "$relink_command"; then $opt_dry_run || { if $finalize; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file=$func_basename_result outputname=$tmpdir/$file # Replace the output file specification. relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_quiet || { func_quote_arg expand,pretty "$relink_command" eval "func_echo $func_quote_arg_result" } if eval "$relink_command"; then : else func_error "error: relink '$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file=$outputname else func_warning "cannot relink '$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "$file$stripped_ext" | $SED "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 ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name=$func_basename_result # Set up the ranlib parameters. oldlib=$destdir/$name func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $tool_oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run '$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test install = "$opt_mode" && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $debug_cmd my_outputname=$1 my_originator=$2 my_pic_p=${3-false} my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms=${my_outputname}S.c else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist=$output_objdir/$my_outputname.nm func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif #if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) /* External symbol declarations for the compiler. */\ " if test yes = "$dlself"; then func_verbose "generating symbol list for '$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_to_tool_file "$progfile" func_convert_file_msys_to_w32 func_verbose "extracting global C symbols from '$func_to_tool_file_result'" $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols=$output_objdir/$outputname.exp $opt_dry_run || { $RM $export_symbols eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *windows* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* | *windows* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from '$dlprefile'" func_basename "$dlprefile" name=$func_basename_result case $host in *cygwin* | *mingw* | *windows* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" eval "curr_lafile=\$libfile_$func_tr_sh_result" dlprefile_dlbasename= if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then # Use subshell, to avoid clobbering current variable values dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` if test -n "$dlprefile_dlname"; then func_basename "$dlprefile_dlname" dlprefile_dlbasename=$func_basename_result else # no lafile. user explicitly requested -dlpreopen . $sharedlib_from_linklib_cmd "$dlprefile" dlprefile_dlbasename=$sharedlib_from_linklib_result fi fi $opt_dry_run || { if test -n "$dlprefile_dlbasename"; then eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' else func_warning "Could not compute DLL name from $name" eval '$ECHO ": $name " >> "$nlist"' fi func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 case $host in i[3456]86-*-mingw32*) eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" ;; *) eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/__nm_//' >> '$nlist'" ;; esac } else # not an import lib $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } fi ;; *) $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } ;; esac done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi func_show_eval '$RM "${nlist}I"' if test -n "$global_symbol_to_import"; then eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I' fi echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; extern LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[];\ " if test -s "$nlist"I; then echo >> "$output_objdir/$my_dlsyms" "\ static void lt_syminit(void) { LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols; for (; symbol->name; ++symbol) {" $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms" echo >> "$output_objdir/$my_dlsyms" "\ } }" fi echo >> "$output_objdir/$my_dlsyms" "\ LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = { {\"$my_originator\", (void *) 0}," if test -s "$nlist"I; then echo >> "$output_objdir/$my_dlsyms" "\ {\"@INIT@\", (void *) <_syminit}," fi case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) $my_pic_p && pic_flag_for_symtable=" $pic_flag" ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) func_append symtab_cflags " $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"' # Transform the symbol file into the correct name. symfileobj=$output_objdir/${my_outputname}S.$objext case $host in *cygwin* | *mingw* | *windows* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for '$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } # func_cygming_gnu_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is a GNU/binutils-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_gnu_implib_p () { $debug_cmd func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` test -n "$func_cygming_gnu_implib_tmp" } # func_cygming_ms_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is an MS-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_ms_implib_p () { $debug_cmd func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` test -n "$func_cygming_ms_implib_tmp" } # 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. # Despite the name, also deal with 64 bit binaries. func_win32_libid () { $debug_cmd 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 # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64|pe-aarch64)' >/dev/null; then case $nm_interface in "MS dumpbin") if func_cygming_ms_implib_p "$1" || func_cygming_gnu_implib_p "$1" then win32_nmres=import else win32_nmres= fi ;; *) func_to_tool_file "$1" func_convert_file_msys_to_w32 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $SED -n -e ' 1,100{ / I /{ s|.*|import| p q } }'` ;; esac 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_cygming_dll_for_implib ARG # # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib () { $debug_cmd sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` } # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs # # The is the core of a fallback implementation of a # platform-specific function to extract the name of the # DLL associated with the specified import library LIBNAME. # # SECTION_NAME is either .idata$6 or .idata$7, depending # on the platform and compiler that created the implib. # # Echos the name of the DLL associated with the # specified import library. func_cygming_dll_for_implib_fallback_core () { $debug_cmd match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` $OBJDUMP -s --section "$1" "$2" 2>/dev/null | $SED '/^Contents of section '"$match_literal"':/{ # Place marker at beginning of archive member dllname section s/.*/====MARK====/ p d } # These lines can sometimes be longer than 43 characters, but # are always uninteresting /:[ ]*file format pe[i]\{,1\}-/d /^In archive [^:]*:/d # Ensure marker is printed /^====MARK====/p # Remove all lines with less than 43 characters /^.\{43\}/!d # From remaining lines, remove first 43 characters s/^.\{43\}//' | $SED -n ' # Join marker and all lines until next marker into a single line /^====MARK====/ b para H $ b para b :para x s/\n//g # Remove the marker s/^====MARK====// # Remove trailing dots and whitespace s/[\. \t]*$// # Print /./p' | # we now have a list, one entry per line, of the stringified # contents of the appropriate section of all members of the # archive that possess that section. Heuristic: eliminate # all those that have a first or second character that is # a '.' (that is, objdump's representation of an unprintable # character.) This should work for all archives with less than # 0x302f exports -- but will fail for DLLs whose name actually # begins with a literal '.' or a single character followed by # a '.'. # # Of those that remain, print the first one. $SED -e '/^\./d;/^.\./d;q' } # func_cygming_dll_for_implib_fallback ARG # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # # This fallback implementation is for use when $DLLTOOL # does not support the --identify-strict option. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib_fallback () { $debug_cmd if func_cygming_gnu_implib_p "$1"; then # binutils import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` elif func_cygming_ms_implib_p "$1"; then # ms-generated import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` else # unknown sharedlib_from_linklib_result= fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { $debug_cmd f_ex_an_ar_dir=$1; shift f_ex_an_ar_oldlib=$1 if test yes = "$lock_old_archive_extraction"; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' if test yes = "$lock_old_archive_extraction"; then $opt_dry_run || rm -f "$lockfile" fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $debug_cmd my_gentop=$1; shift my_oldlibs=${1+"$@"} my_oldobjs= my_xlib= my_xabs= my_xdir= 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 func_basename "$my_xlib" my_xlib=$func_basename_result my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir=$my_gentop/$my_xlib_u func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` func_basename "$darwin_archive" darwin_base_archive=$func_basename_result darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches; do func_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've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done func_extract_archives_result=$my_oldobjs } # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw/windows # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory where it is stored is # the $objdir directory. This is a cygwin/mingw/windows-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # 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\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" func_quote_arg pretty "$ECHO" qECHO=$func_quote_arg_result $ECHO "\ # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } ECHO=$qECHO fi # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper # /script/ and the wrapper /executable/ that is used only on # windows platforms, and (c) all begin with the string "--lt-" # (application programs are unlikely to have options that match # this pattern). # # There are only two supported options: --lt-debug and # --lt-dump-script. There is, deliberately, no --lt-help. # # The first argument to this parsing function should be the # script's $0 value, followed by "$@". lt_option_debug= func_parse_lt_options () { lt_script_arg0=\$0 shift for lt_opt do case \"\$lt_opt\" in --lt-debug) lt_option_debug=1 ;; --lt-dump-script) lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` cat \"\$lt_dump_D/\$lt_dump_F\" exit 0 ;; --lt-*) \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 exit 1 ;; esac done # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2 fi } # Used when --lt-debug. Prints its arguments to stdout # (redirection is the responsibility of the caller) func_lt_dump_args () { lt_dump_args_N=1; for lt_arg do \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } # Core function for launching the target application func_exec_program_core () { " case $host in # Backslashes separate directories on plain windows *-*-mingw* | *-*-windows* | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 } # A function to encapsulate launching the target application # Strips options in the --lt-* namespace from \$@ and # launches target application with the remaining arguments. func_exec_program () { case \" \$* \" in *\\ --lt-*) for lt_wr_arg do case \$lt_wr_arg in --lt-*) ;; *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; esac shift done ;; esac func_exec_program_core \${1+\"\$@\"} } # Parse options func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done # Usually 'no', except on cygwin/mingw/windows when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test yes = "$fast_install"; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else \$ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # fixup the dll searchpath if we need to. # # Fix the DLL searchpath if we need to. Do this before prepending # to shlibpath, because on Windows, both are PATH and uninstalled # libraries must come first. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi # Export our shlibpath_var if we have one. if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $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 \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. func_exec_program \${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\ " } # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #if defined _WIN32 && !defined __GNUC__ # include # include # include #else # include # include # ifdef __CYGWIN__ # include # endif #endif #include #include #include #include #include #include #include #include #define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) /* declarations of non-ANSI functions */ #if defined __MINGW32__ # ifdef __STRICT_ANSI__ _CRTIMP int __cdecl _putenv (const char *); # endif #elif defined __CYGWIN__ # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif /* #elif defined other_platform || defined ... */ #endif /* portability defines, excluding path handling macros */ #if defined _MSC_VER # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC #elif defined __MINGW32__ # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv #elif defined __CYGWIN__ # define HAVE_SETENV # define FOPEN_WB "wb" /* #elif defined other platforms ... */ #endif #if defined PATH_MAX # define LT_PATHMAX PATH_MAX #elif defined MAXPATHLEN # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif /* path handling portability macros */ #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 # define FOPEN_WB "wb" # 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 */ #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free (stale); stale = 0; } \ } while (0) #if defined LT_DEBUGWRAPPER static int lt_debug = 1; #else static int lt_debug = 0; #endif const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_debugprintf (const char *file, int line, const char *fmt, ...); void lt_fatal (const char *file, int line, const char *message, ...); static const char *nonnull (const char *s); static const char *nonempty (const char *s); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); char **prepare_spawn (char **argv); void lt_dump_script (FILE *f); EOF cat <= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", nonempty (path)); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ 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]; size_t tmp_len; char *concat_name; lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", nonempty (wrapper)); 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 = (size_t) (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 (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); 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 (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); 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 * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { lt_debugprintf (__FILE__, __LINE__, "checking path component for symlinks: %s\n", tmp_pathspec); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { lt_fatal (__FILE__, __LINE__, "error accessing file \"%s\": %s", tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal (__FILE__, __LINE__, "could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } 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 (STREQ (str, pat)) *str = '\0'; } return str; } void lt_debugprintf (const char *file, int line, const char *fmt, ...) { va_list args; if (lt_debug) { (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } } static void lt_error_core (int exit_status, const char *file, int line, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } static const char * nonnull (const char *s) { return s ? s : "(null)"; } static const char * nonempty (const char *s) { return (s && !*s) ? "(empty)" : nonnull (s); } void lt_setenv (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_setenv) setting '%s' to '%s'\n", nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else size_t len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { size_t orig_value_len = strlen (orig_value); size_t add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } void lt_update_exe_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ size_t len = strlen (new_value); while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[--len] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF case $host_os in mingw* | windows*) cat <<"EOF" /* Prepares an argument vector before calling spawn(). Note that spawn() does not by itself call the command interpreter (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&v); v.dwPlatformId == VER_PLATFORM_WIN32_NT; }) ? "cmd.exe" : "command.com"). Instead it simply concatenates the arguments, separated by ' ', and calls CreateProcess(). We must quote the arguments since Win32 CreateProcess() interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a special way: - Space and tab are interpreted as delimiters. They are not treated as delimiters if they are surrounded by double quotes: "...". - Unescaped double quotes are removed from the input. Their only effect is that within double quotes, space and tab are treated like normal characters. - Backslashes not followed by double quotes are not special. - But 2*n+1 backslashes followed by a double quote become n backslashes followed by a double quote (n >= 0): \" -> " \\\" -> \" \\\\\" -> \\" */ #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" char ** prepare_spawn (char **argv) { size_t argc; char **new_argv; size_t i; /* Count number of arguments. */ for (argc = 0; argv[argc] != NULL; argc++) ; /* Allocate new argument vector. */ new_argv = XMALLOC (char *, argc + 1); /* Put quoted arguments into the new argument vector. */ for (i = 0; i < argc; i++) { const char *string = argv[i]; if (string[0] == '\0') new_argv[i] = xstrdup ("\"\""); else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) { int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); size_t length; unsigned int backslashes; const char *s; char *quoted_string; char *p; length = 0; backslashes = 0; if (quote_around) length++; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') length += backslashes + 1; length++; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) length += backslashes + 1; quoted_string = XMALLOC (char, length + 1); p = quoted_string; backslashes = 0; if (quote_around) *p++ = '"'; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') { unsigned int j; for (j = backslashes + 1; j > 0; j--) *p++ = '\\'; } *p++ = c; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) { unsigned int j; for (j = backslashes; j > 0; j--) *p++ = '\\'; *p++ = '"'; } *p = '\0'; new_argv[i] = quoted_string; } else new_argv[i] = (char *) string; } new_argv[argc] = NULL; return new_argv; } EOF ;; esac cat <<"EOF" void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | $SED -n -e ' s/^\(.\{79\}\)\(..*\)/\1\ \2/ h s/\([\\"]\)/\\\1/g s/$/\\n/ s/\([^\n]*\).*/ fputs ("\1", f);/p g D' cat <<"EOF" } EOF } # end: func_emit_cwrapperexe_src # func_win32_import_lib_p ARG # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { $debug_cmd case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; esac } # func_suncc_cstd_abi # !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!! # Several compiler flags select an ABI that is incompatible with the # Cstd library. Avoid specifying it if any are in CXXFLAGS. func_suncc_cstd_abi () { $debug_cmd case " $compile_command " in *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*) suncc_use_cstd_abi=no ;; *) suncc_use_cstd_abi=yes ;; esac } # func_mode_link arg... func_mode_link () { $debug_cmd case $host in *-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # what system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll that has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= compile_rpath_tail= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no bindir= dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= os2dllname= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=false prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= temp_rpath_tail= thread_safe=no vinfo= vinfo_number=no weak_libs= rpath_arg= single_module=$wl-single_module func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test yes != "$build_libtool_libs" \ && func_fatal_configuration "cannot build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg=$1 shift func_quote_arg pretty,unquoted "$arg" qarg=$func_quote_arg_unquoted_result func_append libtool_args " $func_quote_arg_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in bindir) bindir=$arg prev= continue ;; dlfiles|dlprefiles) $preload || { # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=: } case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test no = "$dlself"; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test dlprefiles = "$prev"; then dlself=yes elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test dlfiles = "$prev"; then func_append dlfiles " $arg" else func_append dlprefiles " $arg" fi prev= continue ;; esac ;; expsyms) export_symbols=$arg test -f "$arg" \ || func_fatal_error "symbol file '$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex=$arg prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) func_append deplibs " $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir=$arg prev= continue ;; mllvm) # Clang does not use LLVM to link, so we can simply discard any # '-mllvm $arg' options when doing the link step. prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # func_append moreargs " $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test none = "$pic_object" && test none = "$non_pic_object"; then func_fatal_error "cannot find name of object for '$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir=$func_dirname_result if test none != "$pic_object"; then # Prepend the subdirectory the object is found in. pic_object=$xdir$pic_object if test dlfiles = "$prev"; then if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then func_append 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 dlprefiles = "$prev"; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg=$pic_object fi # Non-PIC object. if test none != "$non_pic_object"; then # Prepend the subdirectory the object is found in. non_pic_object=$xdir$non_pic_object # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test none = "$pic_object"; 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 func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir=$func_dirname_result func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "'$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file '$arg' does not exist" fi arg=$save_arg prev= continue ;; os2dllname) os2dllname=$arg prev= continue ;; precious_regex) precious_files_regex=$arg prev= continue ;; release) release=-$arg prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "argument to -rpath is not absolute: $arg" ;; esac if test rpath = "$prev"; then case "$rpath " in *" $arg "*) ;; *) func_append rpath " $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) func_append xrpath " $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds=$arg prev= continue ;; weak) func_append weak_libs " $arg" prev= continue ;; xassembler) func_append compiler_flags " -Xassembler $qarg" prev= func_append compile_command " -Xassembler $qarg" func_append finalize_command " -Xassembler $qarg" continue ;; xcclinker) func_append linker_flags " $qarg" func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) func_append linker_flags " $qarg" func_append compiler_flags " $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg=$arg case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "'-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -bindir) prev=bindir continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test X-export-symbols = "X$arg"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework 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*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname "-L" '' "$arg" if test -z "$func_stripname_result"; then if test "$#" -gt 0; then func_fatal_error "require no space between '-L' and '$1'" else func_fatal_error "need path for '-L' option" fi fi func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of '$dir'" dir=$absdir ;; esac case "$deplibs " in *" -L$dir "* | *" $arg "*) # Will only happen for absolute or sysroot arguments ;; *) # Preserve sysroot, but never include relative directories case $dir in [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; *) func_append deplibs " -L$dir" ;; esac func_append lib_search_path " $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) func_append dllsearchpath ":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac continue ;; -l*) if test X-lc = "X$arg" || test X-lm = "X$arg"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # 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-lc = "X$arg" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-midnightbsd*) # Do not include libc due to us having libc/libc_r. test X-lc = "X$arg" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework func_append deplibs " System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test X-lc = "X$arg" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test X-lc = "X$arg" && continue ;; esac elif test X-lc_r = "X$arg"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-midnightbsd*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi func_append deplibs " $arg" continue ;; -mllvm) prev=mllvm continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. # -q