shithub: sox

ref: e8c783850229efae0c76d3d22df91b63db3913a0
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 1.2])

AC_INIT(sox.c)

dnl Parameters to configure

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

AC_ARG_ENABLE(fast_ulaw,
	[  --disable-fast-ulaw     Disable fast ulaw compression (-32K memory)],
	enable_fast_ulaw=$enableval, enable_fast_ulaw=yes)

AC_ARG_ENABLE(fast_alaw,
	[  --disable-fast-alaw     Disable fast alaw compression (-32K memory)],
	enable_fast_alaw=$enableval, enable_fast_alaw=yes)

AC_ARG_ENABLE(gsm,
	[  --disable-gsm           Disable internal GSM support],
	enable_gsm=$enableval, enable_gsm=yes)

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])

AC_ARG_WITH(ogg_vorbislib,
	[  --with-ogg-vorbislib    Location of Ogg Vorbis libraries (=dir)],
	[ogg_vorbislib="$withval"],
	[ogg_vorbislib=auto])

AC_ARG_WITH(ogg_vorbisinc,
	[  --with-ogg-vorbisinc    Location of Ogg Vorbis headers (=dir)],
	[ogg_vorbisinc="$withval"],
	[ogg_vorbisinc=auto])

dnl Checks for programs.
AC_PROG_CC
AC_PROG_RANLIB
AC_PROG_INSTALL
AC_PROG_LN_S
AC_PROG_CPP
AC_CHECK_PROGS(SED, sed)

dnl Set host type
AC_CANONICAL_SYSTEM

case "$target" in
	*cygwin* )
		CFLAGS="$CFLAGS -mno-cygwin"
		LDFLAGS="$LDFLAGS -mno-cygwin"
esac

dnl Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS(getopt.h fcntl.h limits.h malloc.h unistd.h byteswap.h sys/types.h inttypes.h stdint.h string.h errno.h)

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

dnl Check for system dependent features.
AC_C_BIGENDIAN
AC_C_CONST
AC_C_INLINE
AC_TYPE_SIZE_T
AC_NEED_STDINT_H

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 Initial values for exported symbols.

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

dnl Test for Ogg Vorbis libraries.

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

dnl Need to tell preprocess where to look for Ogg Vorbis 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 "$ogg_vorbisinc" != auto && test "$ogg_vorbisinc" != no
then
  CFLAGS="$CFLAGS -I$ogg_vorbisinc"
  ac_save_CPPFLAGS="$CPPFLAGS"
  if test \! -z "$ogg_vorbisinc" ; then
    CPPFLAGS="$CPPFLAGS -I$ogg_vorbisinc"
  fi
fi

AC_CHECK_HEADER(vorbis/codec.h, ogg_vorbisinc=yes, ogg_vorbisinc=no)
if test "$ogg_vorbisinc" = yes
then
  AC_CHECK_LIB(vorbis, vorbis_analysis_init,
               LIBS="$LIBS -logg -lvorbis -lvorbisfile -lvorbisenc"
               AC_DEFINE(HAVE_LIBVORBIS))
fi
CPPFLAGS="$ac_save_CPPFLAGS"

dnl Checks for library functions.

AC_CHECK_FUNCS(getopt strerror memmove rand)

dnl Checks for system services.

if test "$alsa_dsp" = auto
then
	AC_CHECK_HEADERS(linux/asound.h, alsa_dsp=yes)
fi

if test "$alsa_dsp" = yes
then
	AC_MSG_CHECKING([for ALSA ioctl API])
	AC_TRY_COMPILE(
[
#include <linux/asound.h>
],
[
snd_pcm_capture_info_t c_info;
],
		alsa_api_ver=oldapi,alsa_api_ver=newapi)
	AC_MSG_RESULT($alsa_api_ver)
	CFLAGS="$CFLAGS -DALSA_PLAYER"
	if test "$alsa_api_ver" = oldapi; then CFLAGS="$CFLAGS -DUSE_OLD_API"; fi
	NEED_ALSA=1
	PLAY_SUPPORT=1
fi

if test "$oss_dsp" = auto
then
	AC_CHECK_HEADERS(sys/soundcard.h machine/soundcard.h, oss_dsp=yes)
fi

if test "$oss_dsp" = yes
then
	CFLAGS="$CFLAGS -DOSS_PLAYER"
	NEED_OSS=1
	PLAY_SUPPORT=1
fi

if test "$sun_audio" = auto
then
	AC_CHECK_HEADERS(sys/audioio.h sun/audioio.h, sun_audio=yes)
fi

if test "$sun_audio" = yes
then
	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
if test "$enable_gsm" = yes
then
	CFLAGS="$CFLAGS -DENABLE_GSM"
	LIBS="$LIBS -lgsm"
	GSM_SUPPORT=1
fi

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

dnl Generate output files...

AC_OUTPUT([Makefile gsm/Makefile])

if test ! -f tests.sh; then cp ${srcdir}/tests.sh tests.sh; fi
if test ! -f testall.sh; then cp ${srcdir}/testall.sh testall.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

AC_DEFUN([AC_NEED_STDINT_H],
[AC_MSG_CHECKING([for stdint-types])
 ac_cv_header_stdint="no-file"
 ac_cv_header_stdint_u="no-file"
 for i in $1 inttypes.h sys/inttypes.h sys/int_types.h stdint.h ; do
   AC_CHECK_TYPEDEF_(uint32_t, $i, [ac_cv_header_stdint=$i])
 done
 for i in $1 sys/types.h inttypes.h sys/inttypes.h sys/int_types.h ; do
   AC_CHECK_TYPEDEF_(u_int32_t, $i, [ac_cv_header_stdint_u=$i])
 done
 dnl debugging: __AC_MSG( !$ac_cv_header_stdint!$ac_cv_header_stdint_u! ...)

 ac_stdint_h=`echo ifelse($1, , stdint.h, $1)`
 if test "$ac_cv_header_stdint" != "no-file" ; then
   if test "$ac_cv_header_stdint" != "$ac_stdint_h" ; then
     AC_MSG_RESULT(found in $ac_cv_header_stdint)
     echo "#include <$ac_cv_header_stdint>" >$ac_stdint_h
     AC_MSG_RESULT(creating $ac_stdint_h - (just to include  $ac_cv_header_stdint) )
   else
     AC_MSG_RESULT(found in $ac_stdint_h)
   fi
   ac_cv_header_stdint_generated=false
 elif test "$ac_cv_header_stdint_u" != "no-file" ; then
   AC_MSG_RESULT(found u_types in $ac_cv_header_stdint_u)
   if test $ac_cv_header_stdint = "$ac_stdint_h" ; then
     AC_MSG_RESULT(creating $ac_stdint_h - includes $ac_cv_header_stdint, expect problems!)
   else
     AC_MSG_RESULT(creating $ac_stdint_h - (include inet-types in $ac_cv_header_stdint_u and re-typedef))
   fi
   cat >$ac_stdint_h <<EOF
#ifndef __AC_STDINT_H
#define __AC_STDINT_H 1
#include <stddef.h>
#include <$ac_cv_header_stdint_u>
/* int8_t int16_t int32_t defined by inet code */
typedef u_int8_t uint8_t;
typedef u_int16_t uint16_t;
typedef u_int32_t uint32_t;
/* it's a networkable system, but without any stdint.h */
/* hence it's an older 32-bit system... (a wild guess that seems to work) */
typedef u_int32_t uintptr_t;
typedef   int32_t  intptr_t;
EOF
   ac_cv_header_stdint_generated=true
 else
   AC_MSG_RESULT(not found, need to guess the types now... )
   AC_COMPILE_CHECK_SIZEOF(long, 32)
   AC_COMPILE_CHECK_SIZEOF(void*, 32)
   AC_MSG_RESULT( creating $ac_stdint_h - using detected values for sizeof long and sizeof void* )
   cat >$ac_stdint_h <<EOF

#ifndef __AC_STDINT_H
#define __AC_STDINT_H 1
/* ISO C 9X: 7.18 Integer types <stdint.h> */

#define __int8_t_defined  
typedef   signed char    int8_t;
typedef unsigned char   uint8_t;
typedef   signed short  int16_t;
typedef unsigned short uint16_t;
EOF

   if test "$ac_cv_sizeof_long" = "64" ; then
     cat >>$ac_stdint_h <<EOF

typedef   signed int    int32_t;
typedef unsigned int   uint32_t;
typedef   signed long   int64_t;
typedef unsigned long  uint64_t;
#define  int64_t  int64_t
#define uint64_t uint64_t
EOF

   else
     cat >>$ac_stdint_h <<EOF

typedef   signed long   int32_t;
typedef unsigned long  uint32_t;
EOF

   fi
   if test "$ac_cv_sizeof_long" != "$ac_cv_sizeof_voidp" ; then
     cat >>$ac_stdint_h <<EOF

typedef   signed int   intptr_t;
typedef unsigned int  uintptr_t;
EOF
   else
     cat >>$ac_stdint_h <<EOF

typedef   signed long   intptr_t;
typedef unsigned long  uintptr_t;
EOF
     ac_cv_header_stdint_generated=true
   fi
 fi   

 if "$ac_cv_header_stdint_generated" ; then
   cat >>$ac_stdint_h <<EOF

typedef  int8_t    int_least8_t;
typedef  int16_t   int_least16_t;
typedef  int32_t   int_least32_t;

typedef uint8_t   uint_least8_t;
typedef uint16_t  uint_least16_t;
typedef uint32_t  uint_least32_t;

typedef  int8_t    int_fast8_t; 
typedef  int32_t   int_fast16_t;
typedef  int32_t   int_fast32_t;

typedef uint8_t   uint_fast8_t; 
typedef uint32_t  uint_fast16_t;
typedef uint32_t  uint_fast32_t;

typedef long int       intmax_t;
typedef unsigned long uintmax_t;
#endif
EOF
 fi dnl
])

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