AC_DEFUN([LOC_CHECK_USE],[ AC_MSG_CHECKING(whether to use $2) AC_MSG_RESULT("$with_$1") case "$with_$1" in "no") $3= ;; "yes") $3="1" ;; *) AC_MSG_ERROR([*** You must answer yes or no.]) ;; esac ]) AC_DEFUN([LOC_CHECK_INC_PATH],[ AC_MSG_CHECKING(for location of $2 includes) case "$with_$1_includes" in y | ye | yes | n | no) AC_MSG_ERROR([*** You must supply a directory to --with-$1-includes.]) ;; esac AC_MSG_RESULT($with_$1_includes) if test -n "$with_$1_includes" ; then for dir in $with_$1_includes; do if test -d "$dir"; then $3="$$3 -I$dir" else AC_MSG_ERROR([*** $2 includes directory $dir does not exist.]) fi done fi ]) AC_DEFUN([LOC_CHECK_LIB_PATH],[ AC_MSG_CHECKING(for location of $2 library) case "$with_$1_libs" in y | ye | yes | n | no) AC_MSG_ERROR([*** You must supply a directory to --with-$1-libs.]) ;; esac AC_MSG_RESULT($with_$1_libs) if test -n "$with_$1_libs"; then for dir in $with_$1_libs; do if test -d "$dir"; then $3="$$3 -L$dir" else AC_MSG_ERROR([*** $2 library directory $dir does not exist.]) fi done fi ]) AC_DEFUN([LOC_CHECK_FRAMEWORK_PATH],[ AC_MSG_CHECKING(for location of $2 framework) case "$with_$1_framework" in y | ye | yes | n | no) AC_MSG_ERROR([*** You must supply a directory to --with-$1-framework.]) ;; esac AC_MSG_RESULT($with_$1_framework) if test -n "$with_$1_framework"; then if test -d $with_$1_framework; then $3="$$3 -F$with_$1_framework" else AC_MSG_ERROR([*** $2 framework directory $dir does not exist.]) fi fi ]) AC_DEFUN([LOC_CHECK_SHARE_PATH],[ AC_MSG_CHECKING(for location of $2 data files) case "$with_$1_share" in y | ye | yes | n | no) AC_MSG_ERROR([*** You must supply a directory to --with-$1-share.]) ;; esac AC_MSG_RESULT($with_$1_share) if test -n "$with_$1_share" ; then if test -d "$with_$1_share"; then $3="$with_$1_share" else AC_MSG_ERROR([*** $2 data directory $dir does not exist.]) fi fi ]) AC_DEFUN([LOC_CHECK_LDFLAGS],[ AC_MSG_CHECKING(for $2 linking flags) case "$with_$1_ldflags" in y | ye | yes | n | no) AC_MSG_ERROR([*** You must supply a directory to --with-$1-ldflags.]) ;; esac AC_MSG_RESULT($with_$1_ldflags) $3="$$3 $with_$1_ldflags" ]) AC_DEFUN([LOC_CHECK_INCLUDES],[ ac_save_cppflags="$CPPFLAGS" CPPFLAGS="$3 $CPPFLAGS" AC_CHECK_HEADERS($1, [], ifelse($4,[],[ AC_MSG_ERROR([*** Unable to locate $2 includes.]) ], $4)) CPPFLAGS=$ac_save_cppflags ]) dnl $1 = library dnl $2 = header dnl $3 = function call dnl $4 = descriptive name dnl $5 = LDFLAGS initialiser dnl $6 = result variable dnl $7 = mandatory dependencies (not added to $5) dnl $8 = mandatory dependencies (added to $5) dnl $9 = ACTION-IF-NOT-FOUND define(LOC_CHECK_LINK,[ ac_save_ldflags="$LDFLAGS" ac_save_libs="$LIBS" AC_MSG_CHECKING(for $4 library) LDFLAGS="$5 $LDFLAGS" LIBS="-l$1 $7 $8" AC_TRY_LINK([$2],[$3],[ AC_MSG_RESULT(found) $6="$$6 -l$1 $8" ],[ ifelse($9,[],[ AC_MSG_ERROR([*** Unable to locate $4 library.]) ],$9) ]) LIBS=${ac_save_libs} LDFLAGS=${ac_save_ldflags} ]) dnl autoconf undefines "shift", so use "builtin([shift], ...)" define(LOC_SHIFT1,[builtin([shift],$*)]) define(LOC_SHIFT2,[LOC_SHIFT1(LOC_SHIFT1($*))]) define(LOC_SHIFT4,[LOC_SHIFT2(LOC_SHIFT2($*))]) define(LOC_SHIFT8,[LOC_SHIFT4(LOC_SHIFT4($*))]) define(LOC_SHIFT9,[LOC_SHIFT1(LOC_SHIFT8($*))]) dnl $1 = library dnl $2 = function dnl $3 = descriptive name dnl $4 = LDFLAGS initialiser dnl $5 = result variable dnl $6 = mandatory dependencies (not added to $5) dnl $7 = mandatory dependencies (added to $5) dnl $8 = ACTION-IF-NOT-FOUND dnl $9+ = optional dependencies define(LOC_CHECK_LIBS_0,[ AC_CHECK_LIB($1, $2, $5="$$5 -l$1 $7",[ [$8] ],$6 $7) ]) define(LOC_CHECK_LIBS_1,[ ifelse($9,[], LOC_CHECK_LIBS_0($1,$2,,,$5,$6,$7,$8), [ LOC_CHECK_LIBS_1($1,$2,,,$5,$6,$7, LOC_CHECK_LIBS_1($1,$2,,,$5,$6,$7 $9,$8,LOC_SHIFT9($*)), LOC_SHIFT9($*)) ] ) ]) define(LOC_CHECK_LIBS,[ ac_save_ldflags="$LDFLAGS" LDFLAGS="$4 $LDFLAGS" LOC_CHECK_LIBS_1($1,$2,,,$5,$6,$7, LDFLAGS=${ac_save_ldflags} ifelse($8,[],[ AC_MSG_ERROR([*** Unable to locate $3 library.]) ],$8),LOC_SHIFT8($*)) LDFLAGS=${ac_save_ldflags} ]) dnl $1 = function dnl $2 = descriptive name dnl $3 = result variable dnl $4 = LIBS initialiser (added to $3) dnl $5 = LDFLAGS initialiser (not added to $3) dnl $6 = LIBS initialiser (not added to $3) dnl $7 = ACTION-IF-FOUND dnl $8 = ACTION-IF-NOT-FOUND define(LOC_CHECK_FUNC,[ ac_save_libs="$LIBS" ac_save_ldflags="$LDFLAGS" LIBS="$4 $6 $LIBS" LDFLAGS="$5 $LDFLAGS" AC_CHECK_FUNC($1,[ ifelse($7,[],[ $3="$$3 $4" ],$7) ],[ ifelse($8,[],[ ifelse($2,[], [AC_MSG_ERROR([*** Unable to locate $1.])], [AC_MSG_ERROR([*** Unable to locate $2.])] ) ],$8) ]) LIBS=${ac_save_libs} LDFLAGS=${ac_save_ldflags} ]) AC_DEFUN([LOC_CHECK_VERSION_STRING],[ AC_MSG_CHECKING($3 version) ac_save_cppflags="$CPPFLAGS" CPPFLAGS="$5 $CPPFLAGS" AC_TRY_RUN([ #include #include <$1> int main(void) { FILE *fp = fopen("conftestdata","w"); fputs($2, fp); return 0; } ], [ $4=`cat conftestdata` AC_MSG_RESULT($$4)], [ AC_MSG_ERROR([*** Could not determine $3 version.]) ], [ $4=$6 AC_MSG_RESULT([unknown (cross-compiling)]) ]) CPPFLAGS=$ac_save_cppflags ]) AC_DEFUN([LOC_CHECK_SHARE],[ AC_CHECK_FILE($3/$1, [], ifelse($4,[],[ AC_MSG_ERROR([*** Unable to locate $2 data files.]) ], $4)) ]) AC_DEFUN([LOC_CHECK_VERSION_INT],[ AC_MSG_CHECKING($3 version) ac_save_cppflags="$CPPFLAGS" CPPFLAGS="$5 $CPPFLAGS" AC_TRY_RUN([ #include #include <$1> int main(void) { FILE *fp = fopen("conftestdata","w"); fprintf(fp, "%d", $2); return 0; } ], [ $4=`cat conftestdata` AC_MSG_RESULT($$4)], [ AC_MSG_ERROR([*** Could not determine $3 version.]) ], [ $4=$6 AC_MSG_RESULT([unknown (cross-compiling)]) ]) CPPFLAGS=$ac_save_cppflags ]) dnl autoconf undefines "eval", so use "builtin([eval], ...)" AC_DEFUN([LOC_PAD],[$1[]ifelse(builtin([eval],len($1) > 23),1,[ ],substr([ ],len($1)))]) AC_DEFUN([LOC_ARG_WITH],[ AC_ARG_WITH($1, LOC_PAD([ --with-$1])[support $2 functionality (default: ]ifelse([$3],,yes,[$3])[)],, [with_]patsubst([$1], -, _)[=]ifelse([$3],,yes,[$3])) ]) AC_DEFUN([LOC_ARG_WITH_INC],[ AC_ARG_WITH($1-includes, LOC_PAD([ --with-$1-includes=DIRS])[$2 include files are in DIRS]) ]) AC_DEFUN([LOC_ARG_WITH_LIB],[ AC_ARG_WITH($1-libs, LOC_PAD([ --with-$1-libs=DIRS])[$2 library files are in DIRS]) ]) AC_DEFUN([LOC_ARG_WITH_LDFLAGS],[ AC_ARG_WITH($1-ldflags, LOC_PAD([ --with-$1-ldflags=FLAGS])[$2 needs FLAGS when linking]) ]) AC_DEFUN([LOC_ARG_WITH_SHARE],[ AC_ARG_WITH($1-share, LOC_PAD([ --with-$1-share=DIR])[$2 data files are in DIR]) ]) AC_DEFUN([LOC_ARG_WITH_FRAMEWORK],[ AC_ARG_WITH($1-framework, LOC_PAD([ --with-$1-framework=DIR])[$2 framework is in DIR]) ]) AC_DEFUN([LOC_OPTIONAL],[ AC_MSG_CHECKING(whether to build $1) if test -n "$USE_$2" ; then AC_MSG_RESULT(yes) BUILD_$3="$4" else AC_MSG_RESULT(no) BUILD_$3= fi AC_SUBST(BUILD_$3) ]) dnl checks for complete floating-point support (infinity, NaN) define(LOC_FP_TEST,[ #include int main(void) { double one = 1.0; double zero = 0.0; if (one/zero > DBL_MAX) /* infinity */ if (zero/zero != zero/zero) /* NaN */ return 0; return 1; } ]) AC_DEFUN([LOC_CHECK_FP_INF_NAN],[ AC_MSG_CHECKING([for full floating-point support]$1) AC_TRY_RUN(LOC_FP_TEST, [ AC_MSG_RESULT(yes) $2], [ AC_MSG_RESULT(no) $3], [ AC_MSG_RESULT([unknown (cross-compiling)]) $4] ) ]) dnl check whether the compiler supports the -mieee switch AC_DEFUN([LOC_CHECK_CC_MIEEE],[ AC_MSG_CHECKING(whether "cc -mieee" works) ac_save_cflags=${CFLAGS} CFLAGS="$CFLAGS -mieee" AC_TRY_COMPILE(,, [ AC_MSG_RESULT(yes) IEEEFLAG="-mieee"], [ AC_MSG_RESULT(no)]) CFLAGS=${ac_save_cflags} ]) AC_DEFUN([LOC_MSG],[ echo "$1" ]) AC_DEFUN([LOC_PAD_26],[substr([ ],len($1))]) AC_DEFUN([LOC_YES_NO],[if test -n "${$1}" ; then echo yes ; else echo no ; fi]) AC_DEFUN([LOC_MSG_USE],[ [echo " $1:]LOC_PAD_26($1)`LOC_YES_NO($2)`"]) AC_DEFUN(LOC_EXEEXT, [AC_REQUIRE([AC_CYGWIN]) AC_REQUIRE([AC_MINGW32]) AC_MSG_CHECKING([for executable suffix]) AC_CACHE_VAL(ac_cv_exeext, [if test "$CYGWIN" = yes || test "$MINGW32" = yes; then ac_cv_exeext=.exe else ac_cv_exeext=no fi]) EXEEXT="" test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext} AC_MSG_RESULT(${ac_cv_exeext}) dnl Setting ac_exeext will implicitly change the ac_link command. ac_exeext=$EXEEXT AC_SUBST(EXEEXT)]) #------------------------------------------------------------------------ # SC_ENABLE_SHARED -- # # Allows the building of shared libraries # # Arguments: # none # # Results: # # Adds the following arguments to configure: # --enable-shared=yes|no # # Defines the following vars: # STATIC_BUILD Used for building import/export libraries # on Windows. # # Sets the following vars: # SHARED_BUILD Value of 1 or 0 #------------------------------------------------------------------------ AC_DEFUN([SC_ENABLE_SHARED], [ AC_MSG_CHECKING([how to build libraries]) AC_ARG_ENABLE(shared, [ --enable-shared build and link with shared libraries [--enable-shared]], [shared_ok=$enableval], [shared_ok=yes]) if test "${enable_shared+set}" = set; then enableval="$enable_shared" shared_ok=$enableval else shared_ok=yes fi if test "$shared_ok" = "yes" ; then AC_MSG_RESULT([shared]) SHARED_BUILD=1 GRASS_LIB_PREFIX='$(SHLIB_PREFIX)' GRASS_LIB_SUFFIX='$(SHLIB_SUFFIX)' GRASS_LIBRARY_TYPE='shlib' else AC_MSG_RESULT([static]) SHARED_BUILD=0 AC_DEFINE(STATIC_BUILD) GRASS_LIB_PREFIX='$(STLIB_PREFIX)' GRASS_LIB_SUFFIX='$(STLIB_SUFFIX)' GRASS_LIBRARY_TYPE='stlib' fi AC_SUBST(GRASS_LIB_PREFIX) AC_SUBST(GRASS_LIB_SUFFIX) AC_SUBST(GRASS_LIBRARY_TYPE) ]) #-------------------------------------------------------------------- # SC_CONFIG_CFLAGS # # Try to determine the proper flags to pass to the compiler # for building shared libraries and other such nonsense. # # Arguments: # none # # Results: # # Defines and substitutes the following vars: # # LDFLAGS - Flags to pass to the compiler when linking object # files into an executable application binary such # as tclsh. # LD_SEARCH_FLAGS-Flags to pass to ld, such as "-R /usr/local/tcl/lib", # that tell the run-time dynamic linker where to look # for shared libraries such as libtcl.so. Depends on # the variable LIB_RUNTIME_DIR in the Makefile. Could # be the same as CC_SEARCH_FLAGS if ${CC} is used to link. # CC_SEARCH_FLAGS-Flags to pass to ${CC}, such as "-Wl,-rpath,/usr/local/tcl/lib", # that tell the run-time dynamic linker where to look # for shared libraries such as libtcl.so. Depends on # the variable LIB_RUNTIME_DIR in the Makefile. # MAKE_LIB - Command to execute to build the a library; # differs when building shared or static. # MAKE_STUB_LIB - # Command to execute to build a stub library. # INSTALL_LIB - Command to execute to install a library; # differs when building shared or static. # INSTALL_STUB_LIB - # Command to execute to install a stub library. # STLIB_LD - Base command to use for combining object files # into a static library. # SHLIB_CFLAGS - Flags to pass to cc when compiling the components # of a shared library (may request position-independent # code, among other things). # SHLIB_LD - Base command to use for combining object files # into a shared library. # SHLIB_LD_FLAGS -Flags to pass when building a shared library. This # differes from the SHLIB_CFLAGS as it is not used # when building object files or executables. # SHLIB_LD_LIBS - Dependent libraries for the linker to scan when # creating shared libraries. This symbol typically # goes at the end of the "ld" commands that build # shared libraries. The value of the symbol is # "${LIBS}" if all of the dependent libraries should # be specified when creating a shared library. If # dependent libraries should not be specified (as on # SunOS 4.x, where they cause the link to fail, or in # general if Tcl and Tk aren't themselves shared # libraries), then this symbol has an empty string # as its value. # SHLIB_SUFFIX - Suffix to use for the names of dynamically loadable # extensions. An empty string means we don't know how # to use shared libraries on this platform. # GRASS_SHLIB_LD_EXTRAS - Additional element which are added to SHLIB_LD_LIBS # for the build of Tcl and Tk, but not recorded in the # tclConfig.sh, since they are only used for the build # of Tcl and Tk. # Examples: MacOS X records the library version and # compatibility version in the shared library. But # of course the Tcl version of this is only used for Tcl. # LIB_SUFFIX - Specifies everything that comes after the "libfoo" # in a static or shared library name, using the $LIB_VER variable # to put the version in the right place. This is used # by platforms that need non-standard library names. # Examples: ${LIB_VER}.so.1.1 on NetBSD, since it needs # to have a version after the .so, and ${LIB_VER}.a # on AIX, since a shared library needs to have # a .a extension whereas shared objects for loadable # extensions have a .so extension. Defaults to # ${LIB_VER}${SHLIB_SUFFIX}. # GRASS_NEEDS_EXP_FILE - # 1 means that an export file is needed to link to a # shared library. # GRASS_EXP_FILE - The name of the installed export / import file which # should be used to link to the Tcl shared library. # Empty if Tcl is unshared. # GRASS_BUILD_EXP_FILE - # The name of the built export / import file which # should be used to link to the Tcl shared library. # Empty if Tcl is unshared. # GRASS_LIBS - # Libs to use when linking Tcl shell or some other # shell that includes Tcl libs. # CFLAGS_DEBUG - # Flags used when running the compiler in debug mode # CFLAGS_OPTIMIZE - # Flags used when running the compiler in optimize mode # EXTRA_CFLAGS # #-------------------------------------------------------------------- AC_DEFUN([SC_CONFIG_CFLAGS], [ # Step 0.a: Enable 64 bit support? AC_MSG_CHECKING([if 64bit support is requested]) AC_ARG_ENABLE(64bit,[ --enable-64bit enable 64bit support (where applicable)],,enableval="no") if test "$enableval" = "yes"; then do64bit=yes else do64bit=no fi AC_MSG_RESULT($do64bit) # Step 0.b: Enable Solaris 64 bit VIS support? AC_MSG_CHECKING([if 64bit Sparc VIS support is requested]) AC_ARG_ENABLE(64bit-vis,[ --enable-64bit-vis enable 64bit Sparc VIS support],,enableval="no") if test "$enableval" = "yes"; then # Force 64bit on with VIS do64bit=yes do64bitVIS=yes else do64bitVIS=no fi AC_MSG_RESULT($do64bitVIS) # Step 1: set the variable "system" to hold the name and version number # for the system. This can usually be done via the "uname" command, but # there are a few systems, like Next, where this doesn't work. AC_MSG_CHECKING([system version (for dynamic loading)]) if test -f /usr/lib/NextStep/software_version; then system=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version` else system=`uname -s`-`uname -r` if test "$?" -ne 0 ; then AC_MSG_RESULT([unknown (can't find uname command)]) system=unknown else # Special check for weird MP-RAS system (uname returns weird # results, and the version is kept in special file). if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then system=MP-RAS-`awk '{print $3}' /etc/.relid` fi if test "`uname -s`" = "AIX" ; then system=AIX-`uname -v`.`uname -r` fi AC_MSG_RESULT($system) fi fi # Step 2: check for existence of -ldl library. This is needed because # Linux can use either -ldl or -ldld for dynamic loading. AC_CHECK_LIB(dl, dlopen, have_dl=yes, have_dl=no) # Require ranlib early so we can override it in special cases below. AC_REQUIRE([AC_PROG_RANLIB]) # Step 3: set configuration options based on system name and version. do64bit_ok=no EXTRA_CFLAGS="" GRASS_EXPORT_FILE_SUFFIX="" UNSHARED_LIB_SUFFIX="" GRASS_TRIM_DOTS='`echo ${LIB_VER} | tr -d .`' ECHO_VERSION='`echo ${LIB_VER}`' GRASS_LIB_VERSIONS_OK=ok CFLAGS_DEBUG=-g CFLAGS_OPTIMIZE=-O if test "$GCC" = "yes" ; then CFLAGS_WARNING="-Wall -Wconversion -Wno-implicit-int" else CFLAGS_WARNING="" fi GRASS_NEEDS_EXP_FILE=0 GRASS_BUILD_EXP_FILE="" GRASS_EXP_FILE="" dnl FIXME: Replace AC_CHECK_PROG with AC_CHECK_TOOL once cross compiling is fixed. dnl AC_CHECK_TOOL(AR, ar) AC_CHECK_PROG(AR, ar, ar) if test "${AR}" = "" ; then AC_MSG_ERROR([Required archive tool 'ar' not found on PATH.]) fi STLIB_LD='${AR} cr' LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH" PLAT_OBJS="" case $system in AIX-5.*) if test "${GRASS_THREADS}" = "1" -a "$GCC" != "yes" ; then # AIX requires the _r compiler when gcc isn't being used if test "${CC}" != "cc_r" ; then CC=${CC}_r fi AC_MSG_RESULT(Using $CC for compiling with threads) fi LIBS="$LIBS -lc" # AIX-5 uses ELF style dynamic libraries SHLIB_CFLAGS="" # Note: need the LIBS below, otherwise Tk won't find Tcl's # symbols when dynamically loaded into tclsh. SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".so" LDFLAGS="" LD_LIBRARY_PATH_VAR="LIBPATH" # Check to enable 64-bit flags for compiler/linker if test "$do64bit" = "yes" ; then if test "$GCC" = "yes" ; then AC_MSG_WARN("64bit mode not supported with GCC on $system") else do64bit_ok=yes EXTRA_CFLAGS="-q64" LDFLAGS="-q64" RANLIB="${RANLIB} -X64" AR="${AR} -X64" SHLIB_LD_FLAGS="-b64" fi fi if test "`uname -m`" = "ia64" ; then # AIX-5 uses ELF style dynamic libraries on IA-64, but not PPC SHLIB_LD="/usr/ccs/bin/ld -G -z text" # AIX-5 has dl* in libc.so if test "$GCC" = "yes" ; then CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' else CC_SEARCH_FLAGS='-R${LIB_RUNTIME_DIR}' fi LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' else SHLIB_LD="${SRCDIR}/ldAix /bin/ld -bhalt:4 -bM:SRE -bE:lib.exp -H512 -T512 -bnoentry ${SHLIB_LD_FLAGS}" CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} GRASS_NEEDS_EXP_FILE=1 GRASS_EXPORT_FILE_SUFFIX='${LIB_VER}.exp' fi ;; AIX-*) if test "${GRASS_THREADS}" = "1" -a "$GCC" != "yes" ; then # AIX requires the _r compiler when gcc isn't being used if test "${CC}" != "cc_r" ; then CC=${CC}_r fi AC_MSG_RESULT(Using $CC for compiling with threads) fi LIBS="$LIBS -lc" SHLIB_CFLAGS="" SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".so" LDFLAGS="" CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} LD_LIBRARY_PATH_VAR="LIBPATH" GRASS_NEEDS_EXP_FILE=1 GRASS_EXPORT_FILE_SUFFIX='${LIB_VER}.exp' # Check to enable 64-bit flags for compiler/linker if test "$do64bit" = "yes" ; then if test "$GCC" = "yes" ; then AC_MSG_WARN("64bit mode not supported with GCC on $system") else do64bit_ok=yes EXTRA_CFLAGS="-q64" LDFLAGS="-q64" RANLIB="${RANLIB} -X64" AR="${AR} -X64" SHLIB_LD_FLAGS="-b64" fi fi SHLIB_LD="${SRCDIR}/ldAix /bin/ld -bhalt:4 -bM:SRE -bE:lib.exp -H512 -T512 -bnoentry ${SHLIB_LD_FLAGS}" # On AIX <=v4 systems, libbsd.a has to be linked in to support # non-blocking file IO. This library has to be linked in after # the MATH_LIBS or it breaks the pow() function. The way to # insure proper sequencing, is to add it to the tail of MATH_LIBS. # This library also supplies gettimeofday. # # AIX does not have a timezone field in struct tm. When the AIX # bsd library is used, the timezone global and the gettimeofday # methods are to be avoided for timezone deduction instead, we # deduce the timezone by comparing the localtime result on a # known GMT value. AC_CHECK_LIB(bsd, gettimeofday, libbsd=yes, libbsd=no) if test $libbsd = yes; then MATH_LIBS="$MATH_LIBS -lbsd" AC_DEFINE(USE_DELTA_FOR_TZ) fi ;; BeOS*) SHLIB_CFLAGS="-fPIC" SHLIB_LD="${CC} -nostart" SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".so" LDFLAGS="" #----------------------------------------------------------- # Check for inet_ntoa in -lbind, for BeOS (which also needs # -lsocket, even if the network functions are in -lnet which # is always linked to, for compatibility. #----------------------------------------------------------- AC_CHECK_LIB(bind, inet_ntoa, [LIBS="$LIBS -lbind -lsocket"]) ;; BSD/OS-2.1*|BSD/OS-3*) SHLIB_CFLAGS="" SHLIB_LD="shlicc -r" SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".so" LDFLAGS="" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" ;; BSD/OS-4.*) SHLIB_CFLAGS="-export-dynamic -fPIC" SHLIB_LD="cc -shared" SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".so" LDFLAGS="-export-dynamic" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" ;; dgux*) SHLIB_CFLAGS="-K PIC" SHLIB_LD="cc -G" SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" LDFLAGS="" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" ;; HP-UX-*.11.*) # Use updated header definitions where possible AC_DEFINE(_XOPEN_SOURCE) # Use the XOPEN network library AC_DEFINE(_XOPEN_SOURCE_EXTENDED) # Use the XOPEN network library LIBS="$LIBS -lxnet" # Use the XOPEN network library SHLIB_SUFFIX=".sl" AC_CHECK_LIB(dld, shl_load, shared_ok=yes, shared_ok=no) if test "$shared_ok" = yes; then SHLIB_CFLAGS="+z" SHLIB_LD="ld -b" SHLIB_LD_LIBS='${LIBS}' LDFLAGS="-Wl,-E" CC_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.' LD_SEARCH_FLAGS='+s +b ${LIB_RUNTIME_DIR}:.' LD_LIBRARY_PATH_VAR="SHLIB_PATH" fi # Users may want PA-RISC 1.1/2.0 portable code - needs HP cc #EXTRA_CFLAGS="+DAportable" # Check to enable 64-bit flags for compiler/linker if test "$do64bit" = "yes" ; then if test "$GCC" = "yes" ; then hpux_arch=`gcc -dumpmachine` case $hpux_arch in hppa64*) # 64-bit gcc in use. Fix flags for GNU ld. do64bit_ok=yes SHLIB_LD="gcc -shared" SHLIB_LD_LIBS="" LD_SEARCH_FLAGS='' CC_SEARCH_FLAGS='' ;; *) AC_MSG_WARN("64bit mode not supported with GCC on $system") ;; esac else do64bit_ok=yes if test "`uname -m`" = "ia64" ; then EXTRA_CFLAGS="+DD64" LDFLAGS="+DD64 $LDFLAGS" else EXTRA_CFLAGS="+DA2.0W" LDFLAGS="+DA2.0W $LDFLAGS" fi fi fi ;; HP-UX-*.08.*|HP-UX-*.09.*|HP-UX-*.10.*) SHLIB_SUFFIX=".sl" AC_CHECK_LIB(dld, shl_load, shared_ok=yes, shared_ok=no) if test "$shared_ok" = yes; then SHLIB_CFLAGS="+z" SHLIB_LD="ld -b" SHLIB_LD_LIBS="" LDFLAGS="-Wl,-E" CC_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.' LD_SEARCH_FLAGS='+s +b ${LIB_RUNTIME_DIR}:.' LD_LIBRARY_PATH_VAR="SHLIB_PATH" fi ;; IRIX-4.*) SHLIB_CFLAGS="-G 0" SHLIB_SUFFIX=".a" SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r -G 0" SHLIB_LD_LIBS='${LIBS}' LDFLAGS="-Wl,-D,08000000" CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} SHARED_LIB_SUFFIX='${LIB_VER}.a' ;; IRIX-5.*) SHLIB_CFLAGS="" SHLIB_LD="ld -shared -rdata_shared" SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".so" CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' EXTRA_CFLAGS="" LDFLAGS="" ;; IRIX-6.2) SHLIB_CFLAGS="" SHLIB_LD="ld -shared -rdata_shared" SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".so" CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' ;; IRIX-6.*|IRIX64-6.5*) SHLIB_CFLAGS="" SHLIB_LD="ld -n32 -shared -rdata_shared" SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".so" CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' if test "$GCC" = "yes" ; then EXTRA_CFLAGS="-mabi=n32" LDFLAGS="-mabi=n32" else case $system in IRIX-6.3) # Use to build 6.2 compatible binaries on 6.3. EXTRA_CFLAGS="-n32 -D_OLD_TERMIOS" ;; *) EXTRA_CFLAGS="-n32" ;; esac LDFLAGS="-n32" fi ;; IRIX64-6.*) SHLIB_CFLAGS="" SHLIB_LD="ld -n32 -shared -rdata_shared" SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".so" LDFLAGS="" CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' # Check to enable 64-bit flags for compiler/linker if test "$do64bit" = "yes" ; then if test "$GCC" = "yes" ; then AC_MSG_WARN([64bit mode not supported by gcc]) else do64bit_ok=yes SHLIB_LD="ld -64 -shared -rdata_shared" EXTRA_CFLAGS="-64" LDFLAGS="-64" fi fi ;; Linux*) SHLIB_CFLAGS="-fPIC" SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".so" CFLAGS_OPTIMIZE=-O2 # egcs-2.91.66 on Redhat Linux 6.0 generates lots of warnings # when you inline the string and math operations. Turn this off to # get rid of the warnings. #CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES" if test "$have_dl" = yes; then SHLIB_LD="${CC} -shared" LDFLAGS="-Wl,--export-dynamic" CC_SEARCH_FLAGS='-Wl,-rpath-link,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} else AC_CHECK_HEADER(dld.h, [ SHLIB_LD="ld -shared" LDFLAGS="" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS=""]) fi if test "`uname -m`" = "alpha" ; then EXTRA_CFLAGS="-mieee" fi # The combo of gcc + glibc has a bug related # to inlining of functions like strtod(). The # -fno-builtin flag should address this problem # but it does not work. The -fno-inline flag # is kind of overkill but it works. # Disable inlining only when one of the # files in compat/*.c is being linked in. if test x"${USE_COMPAT}" != x ; then EXTRA_CFLAGS="${EXTRA_CFLAGS} -fno-inline" fi # XIM peeking works under XFree86. AC_DEFINE(PEEK_XCLOSEIM) ;; GNU*) SHLIB_CFLAGS="-fPIC" SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".so" if test "$have_dl" = yes; then SHLIB_LD="${CC} -shared" LDFLAGS="-Wl,--export-dynamic" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" else AC_CHECK_HEADER(dld.h, [ SHLIB_LD="ld -shared" LDFLAGS="" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS=""]) fi if test "`uname -m`" = "alpha" ; then EXTRA_CFLAGS="-mieee" fi ;; CYGWIN*) SHLIB_CFLAGS="" SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".dll" SHLIB_LD="${CC} -shared" LDFLAGS="-Wl,--export-dynamic" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" LD_LIBRARY_PATH_VAR="PATH" ;; MINGW* | MSYS*) SHLIB_CFLAGS="" SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".dll" SHLIB_LD="${CC} -shared" LDFLAGS="-Wl,--export-dynamic,--enable-runtime-pseudo-reloc" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" LD_LIBRARY_PATH_VAR="PATH" ;; MP-RAS-02*) SHLIB_CFLAGS="-K PIC" SHLIB_LD="cc -G" SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" LDFLAGS="" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" ;; MP-RAS-*) SHLIB_CFLAGS="-K PIC" SHLIB_LD="cc -G" SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" LDFLAGS="-Wl,-Bexport" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" ;; NetBSD-*) # NetBSD has ELF. SHLIB_CFLAGS="-fPIC" SHLIB_LD="ld -Bshareable -x" SHLIB_LD_LIBS="${LIBS}" SHLIB_SUFFIX=".so" LDFLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR} -export-dynamic' CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' if test "${GRASS_THREADS}" = "1" ; then # The -pthread needs to go in the CFLAGS, not LIBS LIBS=`echo $LIBS | sed s/-pthread//` EXTRA_CFLAGS="-pthread" LDFLAGS="$LDFLAGS -pthread" fi # NetBSD doesn't handle version numbers with dots. UNSHARED_LIB_SUFFIX='${GRASS_TRIM_DOTS}.a' SHARED_LIB_SUFFIX='${GRASS_TRIM_DOTS}.so', GRASS_LIB_VERSIONS_OK=nodots ;; OpenBSD-*) SHLIB_LD="${CC} -shared" SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".so" LDFLAGS="" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" AC_MSG_CHECKING(for ELF) AC_EGREP_CPP(yes, [ #ifdef __ELF__ yes #endif ], [AC_MSG_RESULT(yes) SHARED_LIB_SUFFIX='${GRASS_TRIM_DOTS}.so.1.0'], [AC_MSG_RESULT(no) SHARED_LIB_SUFFIX='${GRASS_TRIM_DOTS}.so.1.0'] ) # OpenBSD doesn't do version numbers with dots. UNSHARED_LIB_SUFFIX='${GRASS_TRIM_DOTS}.a' GRASS_LIB_VERSIONS_OK=nodots ;; FreeBSD-[[1-2]].*) # Not available on all versions: check for include file. AC_CHECK_HEADER(dlfcn.h, [ SHLIB_CFLAGS="-fPIC" SHLIB_LD="ld -Bshareable -x" SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" LDFLAGS="" CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' AC_MSG_CHECKING(for ELF) AC_EGREP_CPP(yes, [ #ifdef __ELF__ yes #endif ], AC_MSG_RESULT(yes) SHARED_LIB_SUFFIX='${GRASS_TRIM_DOTS}.so', AC_MSG_RESULT(no) SHARED_LIB_SUFFIX='${GRASS_TRIM_DOTS}.so.1.0' ) ], [ SHLIB_CFLAGS="" SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r" SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".a" LDFLAGS="" CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} SHARED_LIB_SUFFIX='${GRASS_TRIM_DOTS}.a' ]) UNSHARED_LIB_SUFFIX='${GRASS_TRIM_DOTS}.a' GRASS_LIB_VERSIONS_OK=nodots ;; FreeBSD-*) # FreeBSD 3.* and greater have ELF. SHLIB_CFLAGS="-fPIC" SHLIB_LD="ld -Bshareable -x" SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".so" LDFLAGS="-export-dynamic" CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' if test "${GRASS_THREADS}" = "1" ; then # The -pthread needs to go in the CFLAGS, not LIBS LIBS=`echo $LIBS | sed s/-pthread//` EXTRA_CFLAGS="-pthread" LDFLAGS="$LDFLAGS -pthread" fi case $system in FreeBSD-3.*) # FreeBSD-3 doesn't handle version numbers with dots. UNSHARED_LIB_SUFFIX='${GRASS_TRIM_DOTS}.a' SHARED_LIB_SUFFIX='${GRASS_TRIM_DOTS}.so' GRASS_LIB_VERSIONS_OK=nodots ;; esac ;; Rhapsody-*|Darwin-*) SHLIB_CFLAGS="-fno-common" SHLIB_LD="cc -dynamiclib -compatibility_version \${GRASS_VERSION_MAJOR}.\${GRASS_VERSION_MINOR} -current_version \${GRASS_VERSION_MAJOR}.\${GRASS_VERSION_MINOR} -install_name \${INST_DIR}/lib/lib\${LIB_NAME}\${SHLIB_SUFFIX}" GRASS_SHLIB_LD_EXTRAS="" SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".dylib" PLAT_OBJS="" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" CFLAGS_OPTIMIZE="-Os" LD_LIBRARY_PATH_VAR="DYLD_LIBRARY_PATH" # for compatibility with autoconf vers 2.13 : HACK="" EXTRA_CFLAGS="" LIBS="$LIBS" ;; NEXTSTEP-*) SHLIB_CFLAGS="" SHLIB_LD="cc -nostdlib -r" SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" LDFLAGS="" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" ;; OS/390-*) CFLAGS_OPTIMIZE="" # Optimizer is buggy AC_DEFINE(_OE_SOCKETS) # needed in sys/socket.h ;; OSF1-1.0|OSF1-1.1|OSF1-1.2) # OSF/1 1.[012] from OSF, and derivatives, including Paragon OSF/1 SHLIB_CFLAGS="" # Hack: make package name same as library name SHLIB_LD='ld -R -export $@:' SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" LDFLAGS="" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" ;; OSF1-1.*) # OSF/1 1.3 from OSF using ELF, and derivatives, including AD2 SHLIB_CFLAGS="-fPIC" if test "$SHARED_BUILD" = "1" ; then SHLIB_LD="ld -shared" else SHLIB_LD="ld -non_shared" fi SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" LDFLAGS="" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" ;; OSF1-V*) # Digital OSF/1 SHLIB_CFLAGS="" if test "$SHARED_BUILD" = "1" ; then SHLIB_LD='ld -shared -expect_unresolved "*"' else SHLIB_LD='ld -non_shared -expect_unresolved "*"' fi SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" LDFLAGS="" CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' if test "$GCC" = "yes" ; then EXTRA_CFLAGS="-mieee" else EXTRA_CFLAGS="-DHAVE_TZSET -std1 -ieee" fi # see pthread_intro(3) for pthread support on osf1, k.furukawa if test "${GRASS_THREADS}" = "1" ; then EXTRA_CFLAGS="${EXTRA_CFLAGS} -DHAVE_PTHREAD_ATTR_SETSTACKSIZE" EXTRA_CFLAGS="${EXTRA_CFLAGS} -DGRASS_THREAD_STACK_MIN=PTHREAD_STACK_MIN*64" LIBS=`echo $LIBS | sed s/-lpthreads//` if test "$GCC" = "yes" ; then LIBS="$LIBS -lpthread -lmach -lexc" else EXTRA_CFLAGS="${EXTRA_CFLAGS} -pthread" LDFLAGS="-pthread" fi fi ;; QNX-6*) # QNX RTP # This may work for all QNX, but it was only reported for v6. SHLIB_CFLAGS="-fPIC" SHLIB_LD="ld -Bshareable -x" SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" LDFLAGS="" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" ;; RISCos-*) SHLIB_CFLAGS="-G 0" SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r -G 0" SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".a" LDFLAGS="-Wl,-D,08000000" CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} ;; SCO_SV-3.2*) # Note, dlopen is available only on SCO 3.2.5 and greater. However, # this test works, since "uname -s" was non-standard in 3.2.4 and # below. if test "$GCC" = "yes" ; then SHLIB_CFLAGS="-fPIC -melf" LDFLAGS="-melf -Wl,-Bexport" else SHLIB_CFLAGS="-Kpic -belf" LDFLAGS="-belf -Wl,-Bexport" fi SHLIB_LD="ld -G" SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" ;; SINIX*5.4*) SHLIB_CFLAGS="-K PIC" SHLIB_LD="cc -G" SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" LDFLAGS="" CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" ;; SunOS-4*) SHLIB_CFLAGS="-PIC" SHLIB_LD="ld" SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" LDFLAGS="" CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} # SunOS can't handle version numbers with dots in them in library # specs, like -ltcl7.5, so use -ltcl75 instead. Also, it # requires an extra version number at the end of .so file names. # So, the library has to have a name like libtcl75.so.1.0 SHARED_LIB_SUFFIX='${GRASS_TRIM_DOTS}.so.1.0' UNSHARED_LIB_SUFFIX='${GRASS_TRIM_DOTS}.a' GRASS_LIB_VERSIONS_OK=nodots ;; SunOS-5.[[0-6]].*) # Note: If _REENTRANT isn't defined, then Solaris # won't define thread-safe library routines. AC_DEFINE(_REENTRANT) AC_DEFINE(_POSIX_PTHREAD_SEMANTICS) # Note: need the LIBS below, otherwise Tk won't find Tcl's # symbols when dynamically loaded into tclsh. SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".so" LDFLAGS="" if test "$GCC" = "yes" ; then SHLIB_CFLAGS="-fPIC" SHLIB_LD="$CC -shared" CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} else SHLIB_CFLAGS="-KPIC" SHLIB_LD="/usr/ccs/bin/ld -G -z text" CC_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} fi ;; SunOS-5*) # Note: If _REENTRANT isn't defined, then Solaris # won't define thread-safe library routines. AC_DEFINE(_REENTRANT) AC_DEFINE(_POSIX_PTHREAD_SEMANTICS) LDFLAGS="" # Check to enable 64-bit flags for compiler/linker if test "$do64bit" = "yes" ; then arch=`isainfo` if test "$arch" = "sparcv9 sparc" ; then if test "$GCC" = "yes" ; then AC_MSG_WARN("64bit mode not supported with GCC on $system") else SHLIB_CFLAGS="-KPIC" do64bit_ok=yes if test "$do64bitVIS" = "yes" ; then EXTRA_CFLAGS="-xarch=v9a" LDFLAGS="-xarch=v9a" else EXTRA_CFLAGS="-xarch=v9" LDFLAGS="-xarch=v9" fi fi else AC_MSG_WARN("64bit mode only supported sparcv9 system") fi fi # Note: need the LIBS below, otherwise Tk won't find Tcl's # symbols when dynamically loaded into tclsh. SHLIB_LD_LIBS='${LIBS}' SHLIB_SUFFIX=".so" if test "$GCC" = "yes" ; then SHLIB_CFLAGS="-fPIC" SHLIB_LD="$CC -shared" CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} else SHLIB_CFLAGS="-KPIC" SHLIB_LD="CC -G -z text" CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' fi ;; ULTRIX-4.*) SHLIB_CFLAGS="-G 0" SHLIB_SUFFIX=".a" SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r -G 0" SHLIB_LD_LIBS='${LIBS}' LDFLAGS="-Wl,-D,08000000" CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} if test "$GCC" != "yes" ; then EXTRA_CFLAGS="-DHAVE_TZSET -std1" fi ;; UNIX_SV* | UnixWare-5*) SHLIB_CFLAGS="-KPIC" SHLIB_LD="cc -G" SHLIB_LD_LIBS="" SHLIB_SUFFIX=".so" # Some UNIX_SV* systems (unixware 1.1.2 for example) have linkers # that don't grok the -Bexport option. Test that it does. hold_ldflags=$LDFLAGS AC_MSG_CHECKING(for ld accepts -Bexport flag) LDFLAGS="${LDFLAGS} -Wl,-Bexport" AC_TRY_LINK(, [int i;], found=yes, found=no) LDFLAGS=$hold_ldflags AC_MSG_RESULT($found) if test $found = yes; then LDFLAGS="-Wl,-Bexport" else LDFLAGS="" fi CC_SEARCH_FLAGS="" LD_SEARCH_FLAGS="" ;; esac # If we're running gcc, then change the C flags for compiling shared # libraries to the right flags for gcc, instead of those for the # standard manufacturer compiler. if test "$GCC" = "yes" ; then case $system in AIX-*) ;; BSD/OS*) ;; *) ;; NetBSD-*|FreeBSD-*) ;; Rhapsody-*|Darwin-*) ;; RISCos-*) ;; SCO_SV-3.2*) ;; ULTRIX-4.*) ;; *) SHLIB_CFLAGS="-fPIC" ;; esac fi if test "$SHARED_LIB_SUFFIX" = "" ; then SHARED_LIB_SUFFIX='${LIB_VER}${SHLIB_SUFFIX}' fi if test "$UNSHARED_LIB_SUFFIX" = "" ; then UNSHARED_LIB_SUFFIX='${LIB_VER}.a' fi if test "${SHARED_BUILD}" = "1" && test "${SHLIB_SUFFIX}" != "" ; then LIB_SUFFIX=${SHARED_LIB_SUFFIX} MAKE_LIB='${SHLIB_LD} -o [$]@ ${SHLIB_LD_FLAGS} ${OBJS} ${SHLIB_LD_LIBS} ${GRASS_SHLIB_LD_EXTRAS} ${LD_SEARCH_FLAGS}' INSTALL_LIB='$(INSTALL_LIBRARY) $(LIB_FILE) $(LIB_INSTALL_DIR)/$(LIB_FILE)' else LIB_SUFFIX=${UNSHARED_LIB_SUFFIX} if test "$RANLIB" = "" ; then MAKE_LIB='$(STLIB_LD) [$]@ ${OBJS}' INSTALL_LIB='$(INSTALL_LIBRARY) $(LIB_FILE) $(LIB_INSTALL_DIR)/$(LIB_FILE)' else MAKE_LIB='${STLIB_LD} [$]@ ${OBJS} ; ${RANLIB} [$]@' INSTALL_LIB='$(INSTALL_LIBRARY) $(LIB_FILE) $(LIB_INSTALL_DIR)/$(LIB_FILE) ; (cd $(LIB_INSTALL_DIR) ; $(RANLIB) $(LIB_FILE))' fi dnl Not at all clear what this was doing in Tcl's configure.in dnl or why it was needed was needed. In any event, this sort of dnl things needs to be done in the big loop above. dnl REMOVE THIS BLOCK LATER! (mdejong) dnl case $system in dnl BSD/OS*) dnl ;; dnl AIX-[[1-4]].*) dnl ;; dnl *) dnl SHLIB_LD_LIBS="" dnl ;; dnl esac fi # Stub lib does not depend on shared/static configuration if test "$RANLIB" = "" ; then MAKE_STUB_LIB='${STLIB_LD} [$]@ ${STUB_LIB_OBJS}' INSTALL_STUB_LIB='$(INSTALL_LIBRARY) $(STUB_LIB_FILE) $(LIB_INSTALL_DIR)/$(STUB_LIB_FILE)' else MAKE_STUB_LIB='${STLIB_LD} [$]@ ${STUB_LIB_OBJS} ; ${RANLIB} [$]@' INSTALL_STUB_LIB='$(INSTALL_LIBRARY) $(STUB_LIB_FILE) $(LIB_INSTALL_DIR)/$(STUB_LIB_FILE) ; (cd $(LIB_INSTALL_DIR) ; $(RANLIB) $(STUB_LIB_FILE))' fi AC_SUBST(PLAT_OBJS) AC_SUBST(CFLAGS) AC_SUBST(CFLAGS_DEBUG) AC_SUBST(CFLAGS_OPTIMIZE) AC_SUBST(CFLAGS_WARNING) AC_SUBST(EXTRA_CFLAGS) AC_SUBST(LDFLAGS) AC_SUBST(LDFLAGS_DEBUG) AC_SUBST(LDFLAGS_OPTIMIZE) AC_SUBST(CC_SEARCH_FLAGS) AC_SUBST(LD_SEARCH_FLAGS) AC_SUBST(LD_LIBRARY_PATH_VAR) AC_SUBST(STLIB_LD) AC_SUBST(SHLIB_LD) AC_SUBST(GRASS_SHLIB_LD_EXTRAS) AC_SUBST(SHLIB_LD_FLAGS) AC_SUBST(SHLIB_LD_LIBS) AC_SUBST(SHLIB_CFLAGS) AC_SUBST(SHLIB_SUFFIX) AC_SUBST(MAKE_LIB) AC_SUBST(MAKE_STUB_LIB) AC_SUBST(INSTALL_LIB) AC_SUBST(INSTALL_STUB_LIB) AC_SUBST(RANLIB) ]) dnl XXXX Begin Stolen from cdrtools-2.01 dnl XXXX by Joerg Schilling et al. XXXXXXXXX dnl XXXXXXXXX Begin Stolen (but modified) from GNU tar XXXXXXXXXXXXXXXXXXXXX dnl Changes: dnl One line has been changed to: [ac_save_CC="${CC-cc}" to default to "'cc" dnl AC_SYS_LARGEFILE_MACRO_VALUE test moved from AC_FUNC_FSEEKO into AC_SYS_LARGEFILE dnl Do not call AC_FUNC_FSEEKO because it does not check whether fseeko() is dnl available on non Large File mode. There are additionoal tests for fseeko()/ftello() dnl inside the AC_HAVE_LARGEFILES test. dnl largefile_cc_opt definition added #serial 18 dnl By default, many hosts won't let programs access large files; dnl one must use special compiler options to get large-file access to work. dnl For more details about this brain damage please see: dnl http://www.sas.com/standards/large.file/x_open.20Mar96.html dnl Written by Paul Eggert . dnl Internal subroutine of AC_SYS_LARGEFILE. dnl AC_SYS_LARGEFILE_TEST_INCLUDES AC_DEFUN([AC_SYS_LARGEFILE_TEST_INCLUDES], [[#include /* Check that off_t can represent 2**63 - 1 correctly. We can't simply "#define LARGE_OFF_T 9223372036854775807", since some C++ compilers masquerading as C compilers incorrectly reject 9223372036854775807. */ # define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; ]]) dnl Internal subroutine of AC_SYS_LARGEFILE. dnl AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE, CACHE-VAR, COMMENT, INCLUDES, FUNCTION-BODY) AC_DEFUN([AC_SYS_LARGEFILE_MACRO_VALUE], [AC_CACHE_CHECK([for $1 value needed for large files], $3, [$3=no AC_TRY_COMPILE([$5], [$6], , [AC_TRY_COMPILE([#define $1 $2] [$5] , [$6], [$3=$2])])]) if test "[$]$3" != no; then AC_DEFINE_UNQUOTED([$1], [$]$3, [$4]) fi]) AC_DEFUN([AC_SYS_LARGEFILE], [AC_ARG_ENABLE(largefile, [ --enable-largefile enable support for large files (LFS)]) if test "$enable_largefile" = yes; then AC_CACHE_CHECK([for special C compiler options needed for large files], ac_cv_sys_largefile_CC, [ac_cv_sys_largefile_CC=no largefile_cc_opt="" if test "$GCC" != yes; then # IRIX 6.2 and later do not support large files by default, # so use the C compiler's -n32 option if that helps. AC_TRY_COMPILE(AC_SYS_LARGEFILE_TEST_INCLUDES, , , [ac_save_CC="${CC-cc}" CC="$CC -n32" AC_TRY_COMPILE(AC_SYS_LARGEFILE_TEST_INCLUDES, , ac_cv_sys_largefile_CC=' -n32') CC="$ac_save_CC"]) fi]) if test "$ac_cv_sys_largefile_CC" != no; then CC="$CC$ac_cv_sys_largefile_CC" largefile_cc_opt="$ac_cv_sys_largefile_CC" fi AC_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64, ac_cv_sys_file_offset_bits, [Number of bits in a file offset, on hosts where this is settable.], AC_SYS_LARGEFILE_TEST_INCLUDES) AC_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES, 1, ac_cv_sys_large_files, [Define for large files, on AIX-style hosts.], AC_SYS_LARGEFILE_TEST_INCLUDES) AC_SYS_LARGEFILE_MACRO_VALUE(_LARGEFILE_SOURCE, 1, ac_cv_sys_largefile_source, [Define to make fseeko visible on some hosts (e.g. glibc 2.2).], [#include ], [return !fseeko;]) fi ]) AC_DEFUN([AC_FUNC_FSEEKO], [AC_SYS_LARGEFILE_MACRO_VALUE(_LARGEFILE_SOURCE, 1, ac_cv_sys_largefile_source, [Define to make fseeko visible on some hosts (e.g. glibc 2.2).], [#include ], [return !fseeko;]) # We used to try defining _XOPEN_SOURCE=500 too, to work around a bug # in glibc 2.1.3, but that breaks too many other things. # If you want fseeko and ftello with glibc, upgrade to a fixed glibc. AC_CACHE_CHECK([for fseeko], ac_cv_func_fseeko, [ac_cv_func_fseeko=no AC_TRY_LINK([#include ], [return fseeko && fseeko (stdin, 0, 0);], [ac_cv_func_fseeko=yes])]) if test $ac_cv_func_fseeko != no; then AC_DEFINE(HAVE_FSEEKO, 1, [Define if fseeko (and presumably ftello) exists and is declared.]) fi]) dnl XXXXXXXXXXXXXXXXXX End Stolen (but modified) from GNU tar XXXXXXXXXXXXXX AC_DEFUN([AC_HAVE_LARGEFILES], [AC_CACHE_CHECK([if system supports Large Files at all], ac_cv_largefiles, [AC_TRY_COMPILE([#include #include ], [ /* * Check that off_t can represent 2**63 - 1 correctly. * We can't simply "#define LARGE_OFF_T 9223372036854775807", * since some C++ compilers masquerading as C compilers * incorrectly reject 9223372036854775807. * * For MinGW, off64_t should be used and __MSVCRT_VERSION__ >= 0x0601 * (msvcrt.dll version 6.10 or higher) is needed for _fstat64 and _stat64. */ #ifdef __MINGW32__ # define LARGE_OFF_T (((off64_t) 1 << 62) - 1 + ((off64_t) 1 << 62)) #else # define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) #endif int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 && LARGE_OFF_T % 2147483647 == 1) ? 1 : -1]; #ifdef __MINGW32__ return !fseeko64; return !ftello64; #else return !fseeko; return !ftello; #endif], [ac_cv_largefiles=yes], [ac_cv_largefiles=no])]) if test $ac_cv_largefiles = yes; then AC_DEFINE(HAVE_LARGEFILES) fi]) dnl Checks for whether fseeko() is available in non large file mode dnl and whether there is a prototype for fseeko() dnl Defines HAVE_FSEEKO on success. AC_DEFUN([AC_SMALL_FSEEKO], [AC_CACHE_CHECK([for fseeko()], ac_cv_func_fseeko, [AC_TRY_LINK([#include ], [return !fseeko;], [ac_cv_func_fseeko=yes], [ac_cv_func_fseeko=no])]) if test $ac_cv_func_fseeko = yes; then AC_DEFINE(HAVE_FSEEKO) fi]) dnl Checks for whether ftello() is available in non large file mode dnl and whether there is a prototype for ftello() dnl Defines HAVE_FTELLO on success. AC_DEFUN([AC_SMALL_FTELLO], [AC_CACHE_CHECK([for ftello()], ac_cv_func_ftello, [AC_TRY_LINK([#include ], [return !ftello;], [ac_cv_func_ftello=yes], [ac_cv_func_ftello=no])]) if test $ac_cv_func_ftello = yes; then AC_DEFINE(HAVE_FTELLO) fi]) dnl XXXXXXXXXXX End Stolen from cdrtools-2.01 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX