shithub: sox

ref: 29c4dba087e245d7ff9dc33d276e660c1a94dff7
dir: /configure.in/

View raw version
dnl Process this file with autoconf to produce a configure script.
dnl
dnl configure.in
dnl

AC_REVISION([configure.in 0.5])
AC_INIT(sox.c)
dnl AC_CONFIG_HEADER(config.h)

dnl Parameters to configure

AC_ARG_ENABLE(old_rate,
	[  --enable-old-rate       Use old rate code])

AC_ARG_ENABLE(fast_ulaw,
	[  --enable-fast-ulaw      Use fast ulaw compression (+32K memory)])

AC_ARG_ENABLE(fast_alaw,
	[  --enable-fast-alaw      Use fast alaw compression (+32K memory)])

AC_ARG_WITH(gsmlib,
	[  --with-gsmlib           Location of GSM 6.10 library (=dir)],
	[gsmlib="$withval"],
	[gsmlib=auto])

AC_ARG_WITH(gsminc,
	[  --with-gsminc           Location of GSM 6.10 headers (=dir)],
	[gsminc="$withval"],
	[gsminc=auto])

AC_ARG_WITH(alsa_dsp,
	[  --with-alsa-dsp         Force support for /dev/snd/pcmABXY (ALSA)],
	[alsa_dsp="$withval"],
	[alsa_dsp=auto])

AC_ARG_WITH(oss_dsp,
	[  --with-oss-dsp          Force support for /dev/dsp (OSS)],
	[oss_dsp="$withval"],
	[oss_dsp=auto])

AC_ARG_WITH(sun_audio,
	[  --with-sun-audio        Force support for /dev/audio (SUN, etc)],
	[sun_audio="$withval"],
	[sun_audio=auto])

dnl Checks for programs.

AC_PROG_CC
AC_PROG_RANLIB
AC_PROG_INSTALL
AC_PROG_CPP

dnl Set host type

AC_CANONICAL_SYSTEM

case "$target" in
	*aix* )
		CFLAGS="$CFLAGS -D_ALL_SOURCE"
		;;

	*hpux* )
		CFLAGS="$CFLAGS -D_HPUX_SOURCE"
		;;

	*next*|*rhapsody*|*apple*darwin* )
		CFLAGS="$CFLAGS -DNeXT"
		;;

	*cygwin* )
		CFLAGS="$CFLAGS -mno-cygwin"
		LDFLAGS="$LDFLAGS -mno-cygwin"
esac

dnl Initial values for exported symbols.

NEED_OSS=0
NEED_SUNAU=0
NEED_ALSA=0
PLAY_SUPPORT=0

dnl Extra CFLAGS if we have gcc
if test "$GCC" = yes
then
    CFLAGS="$CFLAGS -Wall"
fi

dnl Checks for libraries.

dnl Check if math library is needed.

AC_CHECKING(if math library is required during link)
AC_CHECK_FUNC(pow)
if test "$ac_cv_func_pow" = no
then
  AC_CHECK_LIB(m, pow)
fi

dnl Test for GSM library.

if test "$gsmlib" != auto  && test "$gsmlib" != no
then
  LIBS="$LIBS -L$gsmlib"
fi

dnl Need to tell preprocess where to look for GSM include files
dnl when they are not in system directories.  Because of this make
dnl a backup copy of the CPPFLAGS.
ac_save_CPPFLAGS="$CPPFLAGS"

if test "$gsminc" != auto && test "$gsminc" != no
then
  CFLAGS="$CFLAGS -I$gsminc"
  ac_save_CPPFLAGS="$CPPFLAGS"
  if test \! -z "$gsminc" ; then
    CPPFLAGS="$CPPFLAGS -I$gsminc"
  fi
fi

AC_CHECK_HEADER(gsm.h, gsminc=yes, gsminc=no)
if test "$gsminc" = yes
then
  AC_CHECK_LIB(gsm, gsm_create)
fi
CPPFLAGS="$ac_save_CPPFLAGS"

dnl Checks for header files.

AC_CHECK_HEADERS(getopt.h unistd.h malloc.h byteswap.h)

dnl Checks for library functions.

AC_CHECK_FUNCS(getopt strerror memmove rand)

dnl Checks for system services.

if test "$alsa_dsp" = auto
then
	AC_CACHE_CHECK(
		[whether /proc/asound is functional (ALSA)],
		ac_cv_dev_alsa_dsp,
		AC_TRY_RUN(
			[
			void *opendir(const char *);
			void *closedir(const char *);
			int
			main()
				{
				void *vp = opendir("/proc/asound");
				if (vp != 0)
					{
					closedir(vp);
					return 0;
					}
				return 1;
				}
			],
			ac_cv_dev_alsa_dsp=yes,
			ac_cv_dev_alsa_dsp=no,
			ac_cv_dev_alsa_dsp=no)
		)
	if test "$ac_cv_dev_alsa_dsp" = yes
	then
		AC_CHECK_HEADERS(linux/asound.h, alsa_dsp=yes)
		if test "$alsa_dsp" = auto
		then
			AC_WARN([No asound.h to compile with ALSA /dev/snd/pcmABXY])
		fi
	fi
fi
if test "$alsa_dsp" = yes
then
	if test "$ac_cv_dev_alsa_dsp" = ""
	then
		AC_CHECK_HEADERS(linux/asound.h)
	fi
	CFLAGS="$CFLAGS -DALSA_PLAYER"
	NEED_ALSA=1
	PLAY_SUPPORT=1
fi

if test "$oss_dsp" = auto
then
	AC_CACHE_CHECK(
		[whether /dev/dsp is functional (OSS)],
		ac_cv_dev_oss_dsp,
		AC_TRY_RUN(
			[
			int open(const char *, int);
			int close(int);
			int
			main()
				{
				int fd = open("/dev/dsp", 0);
				if (fd != -1)
					{
					close(fd);
					return 0;
					}
				return 1;
				}
			],
			ac_cv_dev_oss_dsp=yes,
			ac_cv_dev_oss_dsp=no,
			ac_cv_dev_oss_dsp=no)
		)
	if test "$ac_cv_dev_oss_dsp" = yes
	then
		AC_CHECK_HEADERS(sys/soundcard.h machine/soundcard.h, oss_dsp=yes)
		if test "$oss_dsp" = auto
		then
			AC_WARN([No soundcard.h to compile with OSS /dev/dsp])
		fi
	fi
fi
if test "$oss_dsp" = yes
then
	if test "$ac_cv_dev_oss_dsp" = ""
	then
		AC_CHECK_HEADERS(sys/soundcard.h machine/soundcard.h)
	fi
	CFLAGS="$CFLAGS -DOSS_PLAYER"
	NEED_OSS=1
	PLAY_SUPPORT=1
fi

if test "$sun_audio" = auto
then
	AC_CACHE_CHECK(
		[whether /dev/audio is functional (SUN style)],
		ac_cv_dev_sun_audio,
		AC_TRY_RUN(
			[
			int open(const char *, int);
			int close(int);
			int
			main()
				{
				int fd = open("/dev/audio", 0);
				if (fd != -1)
					{
					close(fd);
					return 0;
					}
				return 1;
				}
			],
			ac_cv_dev_sun_audio=yes,
			ac_cv_dev_sun_audio=no,
			ac_cv_dev_sun_audio=no)
		)
	if test "$ac_cv_dev_sun_audio" = yes
	then
		AC_CHECK_HEADERS(sys/audioio.h sun/audioio.h, sun_audio=yes)
		if test "$sun_audio" = auto
		then
			AC_WARN([No audioio.h to compile with SUN /dev/audio])
		fi
	fi
fi
if test "$sun_audio" = yes
then
	if test "$ac_cv_dev_sun_audio" = ""
	then
		AC_CHECK_HEADERS(sys/audioio.h sun/audioio.h)
	fi
	CFLAGS="$CFLAGS -DSUNAUDIO_PLAYER"
	NEED_SUNAU=1
	PLAY_SUPPORT=1
fi

dnl The end

if test "$old_rate" = yes
then
	CFLAGS="$CFLAGS -DUSE_OLD_RATE"
fi
if test "$enable_fast_ulaw" = yes
then
	CFLAGS="$CFLAGS -DFAST_ULAW_CONVERSION"
fi
if test "$enable_fast_alaw" = yes
then
	CFLAGS="$CFLAGS -DFAST_ALAW_CONVERSION"
fi

LIBS="-L. -lst $LIBS"

AC_SUBST(NEED_OSS)
AC_SUBST(NEED_SUNAU)
AC_SUBST(NEED_ALSA)
AC_SUBST(PLAY_SUPPORT)

dnl Generate output files...

AC_OUTPUT([Makefile])

if test ! -f tests.sh; then cp ${srcdir}/tests.sh tests.sh; fi
if test ! -f monkey.au; then cp ${srcdir}/monkey.au monkey.au; fi
if test ! -f monkey.voc; then cp ${srcdir}/monkey.voc monkey.voc; fi

echo
echo "Configure finished.  Do 'make; make install' to compile and install SoX."
echo

dnl Local Variables:
dnl comment-start: "dnl "
dnl comment-end: ""
dnl comment-start-skip: "\\bdnl\\b\\s *"
dnl compile-command: "autoconf"
dnl End: