# -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ(2.59) AC_INIT(cfitsio, 3.040, pence@tetra.gsfc.nasa.gov) AM_INIT_AUTOMAKE([foreign]) AC_PROG_LIBTOOL AC_CHECK_PROGS(FC, f77 xlf cf77 gf77 gfortran g77 af77 ncf f2c ifort g95 , nope) if test $FC = 'nope' ; then AC_MSG_WARN(cfitsio: == No acceptable f77 found in \$PATH) AC_MSG_WARN(cfitsio: == Cfitsio will be built without Fortran wrapper support) FC= F77_WRAPPERS= else CFORTRANFLAGS= F77_WRAPPERS="\${FITSIO_SRC}" echo $ac_n "checking whether we are using GNU Fortran""... $ac_c" 1>&6 if test `$FC --version -c < /dev/null 2> /dev/null | grep -c GNU` -gt 0 -o \ `$FC --version -c < /dev/null 2> /dev/null | grep -ic egcs` -gt 0 then echo "$ac_t""yes" 1>&6 echo $ac_n "cfitsio: == Adding wrapper support for GNU Fortran""... $ac_c" 1>&6 CFORTRANFLAGS="-Dg77Fortran" echo "$ac_t"" done" 1>&6 else echo "$ac_t""no" 1>&6 if test $FC = 'f2c' ; then echo $ac_n "cfitsio: == Adding wrapper support for f2c""... $ac_c" 1>&6 CFORTRANFLAGS="-Df2cFortran" echo "$ac_t"" done" 1>&6 fi fi fi # taken from configure.in # determine system type #-------------------------------------------------------------------- AC_PROGRAM_CHECK(uname_found, uname, 1, 0) if test $uname_found -eq 0 ; then echo "cfitsio: No uname found; setting system type to unknown." system="unknown" else system=`uname -s`-`uname -r` fi case $system in Darwin-*) # For large file support (but may break Absoft compilers): AC_DEFINE(_LARGEFILE_SOURCE) AC_DEFINE(_FILE_OFFSET_BITS,64) ;; HP-UX-*) if test "x$CFORTRANFLAGS" = x ; then CFORTRANFLAGS="-Dappendus" fi CFLAGS="$CFLAGS -DPG_PPU" LIBPRE="-Wl," ;; SunOS-5*) if test "x$CFORTRANFLAGS" = x ; then CFORTRANFLAGS="-Dsolaris" fi # For large file support: AC_DEFINE(_LARGEFILE_SOURCE) AC_DEFINE(_FILE_OFFSET_BITS,64) ;; IRIX*) CFLAGS="$CFLAGS -DHAVE_POSIX_SIGNALS" ;; Linux*) AC_DEFINE(_LARGEFILE_SOURCE) AC_DEFINE(_FILE_OFFSET_BITS,64) ;; CYGWIN*) CFLAGS="$CFLAGS -DHAVE_POSIX_SIGNALS" ;; *) ;; esac CFLAGS="$CFLAGS $CFORTRANFLAGS" case $CC in gcc) GCCVERSION="`gcc -dumpversion 2>&1`" echo "cfitsio: == Using gcc version $GCCVERSION" AC_SUBST(GCCVERSION) changequote(,) if test `echo $GCCVERSION | grep -c '2\.[45678]'` -gt 0 then CFLAGS=`echo $CFLAGS | sed 's:-O[^ ]* *::'` # AC_MSG_WARN(This gcc is pretty old. Disabling optimization to be safe.) fi changequote([,]) ;; cc) echo "cfitsio: Old CFLAGS is $CFLAGS" CFLAGS=`echo $CFLAGS | sed -e "s/-g/-O/"` case $system in SunOS-5*) changequote(,) if test `echo $CFLAGS | grep -c fast` -gt 0 then echo "cfitsio: Replacing -fast with -O3" CFLAGS=`echo $CFLAGS | sed 's:-fast:-O3:'` fi changequote([,]) CFLAGS="$CFLAGS -DHAVE_ALLOCA_H -DHAVE_POSIX_SIGNALS" ;; *) echo "== No special changes for $system" ;; esac echo "New CFLAGS is $CFLAGS" ;; *) # Don't do anything now ;; esac # ================= test for the unix ftruncate function ================ AC_MSG_CHECKING("whether ftruncate works") AC_TRY_LINK([#include ], [ ftruncate(0, 0); ], [ AC_DEFINE(HAVE_FTRUNCATE) AC_MSG_RESULT("yes") ], AC_MSG_RESULT("no") ) # --------------------------------------------------------- # some systems define long long for 64-bit ints # --------------------------------------------------------- AC_MSG_CHECKING("whether long long is defined") AC_TRY_COMPILE([#include ], [ long long filler; ], [ AC_DEFINE(HAVE_LONGLONG) AC_MSG_RESULT("yes") ], AC_MSG_RESULT("no") ) # ==================== SHARED MEMORY DRIVER SECTION ======================= # # 09-Mar-98 : modified by JB/ISDC # 3 checks added to support autoconfiguration of shared memory # driver. First generic check is made whether shared memory is supported # at all, then 2 more specific checks are made (architecture dependent). # Currently tested on : sparc-solaris, intel-linux, sgi-irix, dec-alpha-osf # ------------------------------------------------------------------------- # check is System V IPC is supported on this machine # ------------------------------------------------------------------------- AC_MSG_CHECKING("whether system V style IPC services are supported") AC_TRY_LINK([#include #include #include ], [ shmat(0, 0, 0); shmdt(0); shmget(0, 0, 0); semget(0, 0, 0); ], [ AC_DEFINE(HAVE_SHMEM_SERVICES) my_shmem=\${SOURCES_SHMEM} AC_MSG_RESULT("yes") ], AC_MSG_RESULT("no") ) AC_SUBST(my_shmem) # ------------------------------------------------------------------------- # some systems define flock_t, for others we have to define it ourselves # ------------------------------------------------------------------------- AC_MSG_CHECKING("do we have flock_t defined in sys/fcntl.h") AC_TRY_COMPILE([#include ], [ flock_t filler; ], [ AC_DEFINE(HAVE_FLOCK_T) AC_MSG_RESULT("yes") ], AC_MSG_RESULT("no") ) if test "$HAVE_FLOCK_T" != 1; then AC_MSG_CHECKING("do we have flock_t defined in sys/flock.h") AC_TRY_COMPILE([#include ], [ flock_t filler; ], [ AC_DEFINE(HAVE_FLOCK_T) AC_MSG_RESULT("yes") ], AC_MSG_RESULT("no") ) fi # ------------------------------------------------------------------------- # there are some idiosyncrasies with semun defs (used in semxxx). Solaris # does not define it at all # ------------------------------------------------------------------------- AC_MSG_CHECKING("do we have union semun defined") AC_TRY_COMPILE( [#include #include #include ], [ union semun filler; ], [ AC_DEFINE(HAVE_UNION_SEMUN) AC_MSG_RESULT("yes") ], AC_MSG_RESULT("no") ) # ==================== END OF SHARED MEMORY DRIVER SECTION ================ # ================= test for the unix networking functions ================ #-------------------------------------------------------------------- # Check for the existence of the -lsocket and -lnsl libraries. # The order here is important, so that they end up in the right # order in the command line generated by make. Here are some # special considerations: # 1. Use "connect" and "accept" to check for -lsocket, and # "gethostbyname" to check for -lnsl. # 2. Use each function name only once: can't redo a check because # autoconf caches the results of the last check and won't redo it. # 3. Use -lnsl and -lsocket only if they supply procedures that # aren't already present in the normal libraries. This is because # IRIX 5.2 has libraries, but they aren't needed and they're # bogus: they goof up name resolution if used. # 4. On some SVR4 systems, can't use -lsocket without -lnsl too. # To get around this problem, check for both libraries together # if -lsocket doesn't work by itself. #-------------------------------------------------------------------- cfitsio_checkBoth=0 AC_CHECK_FUNC(connect, cfitsio_checkSocket=0, cfitsio_checkSocket=1) if test "$cfitsio_checkSocket" = 1; then AC_CHECK_LIB(socket, main, LIBS="$LIBS -lsocket", cfitsio_checkBoth=1) fi if test "$cfitsio_checkBoth" = 1; then tk_oldLibs=$LIBS LIBS="$LIBS -lsocket -lnsl" AC_CHECK_FUNC(accept, cfitsio_checkNsl=0, [LIBS=$tk_oldLibs]) fi AC_CHECK_FUNC(gethostbyname, , AC_CHECK_LIB(nsl, main, [LIBS="$LIBS -lnsl"])) AC_DEFINE(HAVE_NET_SERVICES) # ==================== END OF unix networking SECTION ================ AM_CONDITIONAL(F77BUILD, test x$F77WRAPPERS ) AC_CHECK_LIB(m, cos, [LIBS="$LIBS -lm"]) AC_CONFIG_FILES([Makefile]) AC_OUTPUT