dnl $Id$ dnl Process this file with autoconf to produce a configure script. dnl AC_PREREQ(2.59) dnl Sneaky way to get an Id tag into the configure script AC_COPYRIGHT([$Id$]) AC_INIT([wsjt],[5.9.2]) AC_PREFIX_DEFAULT(/usr/local/) OLD_CFLAGS="$CFLAGS" dnl Checks for programs. AC_PROG_CC AC_LANG(C) AC_PROG_F77 dnl Make sure autoconf doesn't interfere with cflags -jmallett CFLAGS="$OLD_CFLAGS" dnl Lets guess at some likely places for extra libs/includes XXX -db CPPFLAGS="-Iportaudio-v19/include -I/usr/local/include -I/usr/include/alsa -I/usr/local/include/alsa ${CPPFLAGS}" LDFLAGS="-L/usr/local/lib ${LDFLAGS}" LIBS=" -lpthread ${LIBS}" AC_MSG_CHECKING([uname -s for Cygwin, Solaris or HPUX]) case `uname -s` in CYGWIN*) AC_MSG_RESULT(Cygwin) CYGWIN=yes ;; SunOS*) AC_MSG_RESULT(SunOS or Solaris) AC_DEFINE(__EXTENSIONS__, 1, [This is needed to use strtok_r on Solaris.]) ;; *) AC_MSG_RESULT(no) ;; esac if test "$ac_cv_c_compiler_gnu" = yes; then AC_MSG_CHECKING(if $CC is Apple GCC) if expr "`$CC -v 2>&1 | tail -1`" : ".*Apple" >/dev/null; then AppleGCC=yes else AppleGCC=no fi AC_MSG_RESULT($AppleGCC) CFLAGS="$CFLAGS -Wall -O0" fi dnl If we support -g, use it! if test "$ac_cv_prog_cc_g" = yes; then CFLAGS="$CFLAGS -g" fi dnl jdc -- If CFLAGS is defined, best use it everywhere... dnl NOTE: jv says it must be added to the *END*, because things like dnl "gcc -O9 -O2" will result in -O2 getting preference. How stupid. if test ! -z "$CFLAGS"; then CFLAGS="$CFLAGS $CFLAGS" fi AC_ISC_POSIX AC_C_INLINE AC_PROG_GCC_TRADITIONAL AC_PROG_MAKE_SET AC_PROG_INSTALL AC_PATH_PROG(RM, rm) AC_PATH_PROG(CP, cp) AC_PATH_PROG(MV, mv) AC_PATH_PROG(LN, ln) AC_PATH_PROG(SED, sed) AC_PATH_PROG(AR, ar) AC_PATH_PROG(LD, ld) AC_PATH_PROG(TEST, [test], [test]) AC_PATH_PROG(PYTHON, python) AC_PATH_PROG(F2PY, f2py) AC_PATH_PROG(G95, g95) AC_MSG_CHECKING([g95 lib path]) G95_LIB_PATH=`${G95} -print-file-name=` AC_MSG_RESULT(${G95_LIB_PATH}) AC_PATH_PROG(GFORTRAN, gfortran) dnl dnl FreeBSD currently installs gfortran as gfortran41 dnl See http://gcc.gnu.org/fortran/ dnl AC_PATH_PROG(GFORTRAN, gfortran41) AC_MSG_CHECKING([gfortran lib path]) GFORTRAN_LIB_PATH=`${GFORTRAN} -print-file-name=` AC_MSG_RESULT(${GFORTRAN_LIB_PATH}) AC_MSG_CHECKING([OS]) OS=`uname` AC_SUBST(OS, "${OS}") dnl Checks for header files. AC_HEADER_STDC AC_CHECK_HEADERS([inttypes.h stdint.h sys/resource.h sys/param.h errno.h \ sys/syslog.h stddef.h libgen.h sys/wait.h wait.h stdio.h termios.h \ sys/resource.h linux/ppdev.h dev/ppbus/ppi.h sys/stat.h fcntl.h sys/ioctl.h ]) AC_HEADER_TIME AC_CHECK_HEADER([sys/soundcard.h], [HAS_SOUNDCARD_H=1], [HAS_SOUNDCARD_H=0]) AC_CHECK_HEADER([alsa/asoundlib.h], [HAS_ASOUNDLIB_H=1], [HAS_ASOUNDLIB_H=0]) AC_CHECK_HEADER([jack/jack.h], [HAS_JACK_H=1], [HAS_JACK_H=0]) if test -e "portaudio-v19/include/portaudio.h" ; then echo "Checking for portaudio...yes" HAS_PORTAUDIO_H=1 else echo "Checking for portaudio...no" HAS_PORTAUDIO_H=0 fi AC_CHECK_HEADER([samplerate.h], [HAS_SAMPLERATE_H=1], [HAS_SAMPLERATE_H=0]) dnl See whether we can include both string.h and strings.h. AC_CACHE_CHECK([whether string.h and strings.h may both be included], gcc_cv_header_string, [ AC_COMPILE_IFELSE( [#include #include ], [gcc_cv_header_string=yes], [gcc_cv_header_string=no]) ]) if test "$gcc_cv_header_string" = "yes"; then AC_DEFINE(STRING_WITH_STRINGS, 1, [Define to 1 if string.h may be included along with strings.h]) fi AC_CHECK_LIB(rt, clock_gettime, [RTLIBS="-lrt"], [RTLIBS=""]) AC_CHECK_LIB(asound, snd_pcm_open, [ASOUNDLIBS="-lasound"], [ASOUNDLIBS=""]) AC_CHECK_SIZEOF(int64_t) AC_CHECK_SIZEOF(long long) if test "$ac_cv_sizeof_int64_t" = 8; then AC_CHECK_TYPE(uint64_t) AC_CHECK_TYPE(int64_t) elif test "$ac_cv_sizeof_long_long" = 8; then AC_CHECK_TYPE(uint64_t, unsigned long long) AC_CHECK_TYPE(int64_t, long long) fi AC_CHECK_TYPE([u_int32_t], [], [ AC_CHECK_TYPE([uint32_t], [ AC_DEFINE(u_int32_t, [uint32_t], [If system does not define u_int32_t, define a reasonable substitute.]) ], [ AC_MSG_WARN([system has no u_int32_t or uint32_t, default to unsigned long int]) AC_DEFINE(u_int32_t, [unsigned long int], [If system does not define u_int32_t, define to unsigned long int here.]) ]) ]) AC_CHECK_TYPE([u_int16_t], [], [ AC_CHECK_TYPE([uint16_t], [ AC_DEFINE(u_int16_t, [uint16_t], [If system does not define u_int16_t, define a usable substitute]) ], [ AC_MSG_WARN([system has no u_int16_t or uint16_t, default to unsigned short int]) AC_DEFINE(u_int16_t, [unsigned short int], [If system does not define u_int16_t, define a usable substitute.]) ]) ]) AC_C_BIGENDIAN dnl Check for stdarg.h - if we can't find it, halt configure AC_CHECK_HEADER(stdarg.h, , [AC_MSG_ERROR([** stdarg.h could not be found - wsjt will not compile without it **])]) dnl Debug-related options dnl ===================== AC_ARG_ENABLE(clobber, AC_HELP_STRING([--enable-clobber], [Don't preserve old binaries on make install]), [clobber=$enableval], [clobber=no]) if test "$clobber" = yes; then AC_SUBST(CLOBBER, yes) fi AC_ARG_ENABLE(assert, AC_HELP_STRING([--enable-assert],[Enable assert().]), [assert=$enableval], [assert=no]) if test "$assert" = no; then AC_DEFINE(NDEBUG, 1, [Define this to disable debugging support.]) fi if test "$prefix" = "NONE"; then AC_DEFINE_UNQUOTED(PREFIX, "$ac_default_prefix", [Prefix where wsjt is installed.]) else dnl Don't get bitten by Cygwin's stupidity if the user specified dnl a custom prefix with a trailing slash prefix=`echo $prefix | sed 's/\/$//'` AC_DEFINE_UNQUOTED(PREFIX, "$prefix", [Prefix where wsjt is installed.]) fi AC_CONFIG_FILES( \ Makefile ) dnl alsa soundsupport dnl ================= AC_ARG_ENABLE(alsa, AC_HELP_STRING([--enable-alsa],[Force ALSA SOUNDCARD usage.]), [alsa=$enableval] , [alsa=no]) dnl oss soundsupport dnl ================ AC_ARG_ENABLE(oss, AC_HELP_STRING([--enable-oss],[Force OSS SOUND usage.]), [oss=$enableval] , [oss=no]) dnl portaudio soundsupport dnl ====================== AC_ARG_ENABLE(portaudio, AC_HELP_STRING([--enable-portaudio],[Force PORTAUDIO SOUND usage.]), [portaudio=$enableval], [portaudio=no]) dnl pick gfortran or g95 dnl ==================== AC_ARG_ENABLE(g95, AC_HELP_STRING([--enable-g95],[Use G95 compiler if available.]), [g95=$enableval], [g95=no]) AC_ARG_ENABLE(gfortran, AC_HELP_STRING([--enable-gfortran],[Use gfortran compiler if available.]), [gfortran=$enableval], [gfortran=no]) dnl now set conf.h,, CPPFLAGS and CFLAGS flags as needed dnl ==================================================== if test "$g95" = yes; then FC_LIB_PATH=${G95_LIB_PATH} FC=${G95} gfortran=no elif test "$gfortran" = yes; then FC_LIB_PATH=${GFORTRAN_LIB_PATH} FC=${GFORTRAN} g95=no fi if test -z $FC ; then if test ! -z $GFORTRAN ; then FC_LIB_PATH=${GFORTRAN_LIB_PATH} FC=${GFORTRAN} gfortran=yes elif test ! -z $G95 ; then FC_LIB_PATH=${G95_LIB_PATH} FC=${G95} g95=yes fi fi if test -z $FC ; then AC_MSG_ERROR([You need g95 or gfortran]) fi AC_DEFINE_UNQUOTED(FC_LIB_PATH, "${FC_LIB_PATH}", [Path to fortran libs.]) AC_SUBST(FC_LIB_PATH, "${FC_LIB_PATH}") AC_DEFINE_UNQUOTED(FC, "${FC}", [Fortran compiler.]) AC_SUBST(FC, "${FC}") dnl set defaults dnl ============ if test "$alsa" != yes -a "$oss" != yes -a \ "$portaudio" != yes; then if test $HAS_PORTAUDIO_H -eq 1; then [portaudio=yes]; elif test $HAS_ASOUNDLIB_H -eq 1; then [alsa=yes]; elif test $HAS_SOUNDCARD_H -eq 1; then [oss=yes]; fi fi if test "$alsa" = yes; then AC_DEFINE(USE_ALSA, 1, [Define if you want ALSA used.]) AC_SUBST(AUDIO, "start_alsa.c") LIBS="${LIBS} -lasound" fi if test "$oss" = yes; then AC_DEFINE(USE_OSS, 1, [Define if you want OSS used.]) AC_SUBST(AUDIO, "start_oss.c") fi if test "$portaudio" = yes; then AC_DEFINE(USE_PORTAUDIO, 1, [Define if you want PORTAUDIO used.]) AC_SUBST(AUDIO, "a2d.f90 jtaudio.c resample.c start_portaudio.c") AC_SUBST(NEEDPORTAUDIO, "portaudio-v19/lib/.libs/libportaudio.a") dnl dnl new portaudio-v19 on linux will be referencing alsa. dnl LIBS="${LIBS} ${RTLIBS} -lsamplerate ./portaudio-v19/lib/.libs/libportaudio.a" LIBS="${LIBS} ${ASOUNDLIBS}" else AC_SUBST(NEEDPORTAUDIO, "") fi dnl set conf flags dnl ============== if test $HAS_ASOUNDLIB_H -eq 1; then AC_DEFINE(HAS_ASOUNDLIB_H, 1, ) fi if test $HAS_SOUNDCARD_H -eq 1; then AC_DEFINE(HAS_SOUNDCARD_H, 1, ) fi if test $HAS_JACK_H -eq 1; then AC_DEFINE(HAS_JACK_H, 1, ) fi if test $HAS_PORTAUDIO_H -eq 1; then AC_DEFINE(HAS_PORTAUDIO_H, 1, ) fi if test $HAS_SAMPLERATE_H -eq 1; then AC_DEFINE(HAS_SAMPLERATE_H, 1, ) fi dnl sanity tests. dnl ============= if test "$alsa" = yes; then if test $HAS_ASOUNDLIB_H -eq 0; then AC_MSG_ERROR([You need asoundlib.h to use --enable-alsa]) fi fi if test "$oss" = yes; then if test $HAS_SOUNDCARD_H -eq 0; then AC_MSG_ERROR([You need soundcard.h to use --enable-oss]) fi fi if test "$portaudio" = yes; then if test $HAS_PORTAUDIO_H -eq 0; then AC_MSG_ERROR([You need portaudio.h to use --enable-portaudio]) fi if test $HAS_SAMPLERATE_H -eq 0; then AC_MSG_ERROR([You need samplerate.h to use --enable-portaudio]) fi fi if test "$F2PY" = ""; then AC_MSG_ERROR([You are missing f2py]) fi dnl AC_SUBST(CPPFLAGS, "${CPPFLAGS}") AC_SUBST(LDFLAGS, "${LDFLAGS}") AC_SUBST(LIBS, "${LIBS}") AC_SUBST(CFLAGS) AC_OUTPUT dnl AC_CONFIG_FILES(Makefile) dnl do summary echo echo if test $g95 == "yes"; then echo "Using g95 as fortran compiler."; fi if test $gfortran == "yes"; then echo "Using gfortran as fortran compiler."; fi if test $portaudio == "yes"; then echo "Using portaudio."; fi if test $alsa == "yes"; then echo "Using alsa."; fi if test $oss == "yes"; then echo "Using oss."; fi echo echo "Compiling $PACKAGE_NAME $PACKAGE_VERSION" echo echo "Installing into: $prefix" echo