mirror of
https://github.com/game-stop/veejay.git
synced 2025-12-18 13:49:58 +01:00
905 lines
26 KiB
Plaintext
905 lines
26 KiB
Plaintext
dnl Process this file with autoconf to produce a configure script.
|
|
dnl AC_INIT
|
|
dnl AC_CONFIG_SRCDIR([veejay/lav_io.c])
|
|
AC_INIT
|
|
AC_CANONICAL_TARGET
|
|
AC_CONFIG_SRCDIR([configure.in])
|
|
|
|
VEEJAY_MAJOR_VERSION=0
|
|
VEEJAY_MINOR_VERSION=6
|
|
VEEJAY_MICRO_VERSION=0
|
|
VEEJAY_VERSION=$VEEJAY_MAJOR_VERSION.$VEEJAY_MINOR_VERSION.$VEEJAY_MICRO_VERSION
|
|
PACKAGE_VERSION=VEEJAY_VERSION
|
|
|
|
AM_INIT_AUTOMAKE(veejay, $VEEJAY_VERSION)
|
|
AM_CONFIG_HEADER(config.h)
|
|
AM_MAINTAINER_MODE
|
|
AM_OUTPUT_DEPENDENCY_COMMANDS
|
|
|
|
dnl pick up the gnome macros
|
|
dnl AM_ACLOCAL_INCLUDE(macros)
|
|
|
|
AC_PROG_CC
|
|
AM_PROG_AS
|
|
AC_PROG_CPP
|
|
AC_PROG_CXX
|
|
AC_PROG_CXXCPP
|
|
AC_PROG_GCC_TRADITIONAL
|
|
AC_ISC_POSIX
|
|
AC_HEADER_STDC
|
|
|
|
dnl Set PACKAGE_LOCALE_DIR in config.h.
|
|
dnl if test "x${prefix}" = "xNONE"; then
|
|
dnl AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR, "${ac_default_prefix}/${DATADIRNAME}/locale")
|
|
dnl else
|
|
dnl AC_DEFINE_UNQUOTED(PACKAGE_LOCALE_DIR, "${prefix}/${DATADIRNAME}/locale")
|
|
dnl fi
|
|
|
|
jack_support=yes
|
|
# libtool versioning
|
|
|
|
LT_RELEASE=$VEEJAY_MAJOR_VERSION.$VEEJAY_MINOR_VERSION
|
|
LT_CURRENT=$VEEJAY_MICRO_VERSION
|
|
LT_REVISION=$VEEJAY_MICRO_VERSION
|
|
LT_AGE=$VEEJAY_MICRO_VERSION
|
|
AC_SUBST(LT_RELEASE)
|
|
AC_SUBST(LT_CURRENT)
|
|
AC_SUBST(LT_REVISION)
|
|
AC_SUBST(LT_AGE)
|
|
|
|
dnl **********************************************************************
|
|
dnl Options
|
|
AC_ARG_ENABLE(gcov,
|
|
--enable-gcov, Turn on test coverage.])
|
|
AC_ARG_ENABLE(compile-warnings,
|
|
[ --enable-compile-warnings, Turn on compiler warnings.])
|
|
AC_ARG_ENABLE(warnings_as_errors,
|
|
[ --enable-warnings_as_errors, Compiler warnings are errors.])
|
|
AC_ARG_ENABLE(jack,
|
|
[ --disable-jack Disable JACK support (default=no)],
|
|
jack_support=no)
|
|
AC_ARG_WITH(dv,
|
|
[ --with-dv, libDV (digital video) support])
|
|
AC_ARG_WITH(dv-yv12,
|
|
[ --with-dv-yv12, libDV PAL YV12 read-support])
|
|
AC_ARG_ENABLE(large-file,
|
|
[ --disable-large-file, disable large file support (>2GB)])
|
|
AC_PROG_AWK
|
|
AC_PROG_INSTALL
|
|
AC_PROG_LN_S
|
|
AC_PROG_MAKE_SET
|
|
AC_PROG_RANLIB
|
|
AC_C_BIGENDIAN
|
|
AC_C_CONST
|
|
AC_C_INLINE
|
|
have_asm_mmx=false
|
|
have_asm_sse=false
|
|
have_asm_nasm=false
|
|
have_cmov=false
|
|
have_asm_3dnow=false
|
|
have_asm_mmx2=false
|
|
have_x86cpu=false
|
|
have_ppccpu=false
|
|
have_ppc_altivec=false
|
|
have_darwin=false
|
|
dnl check for intel
|
|
AC_CACHE_CHECK(for Intel processor(s), ac_cv_flag_intelcpu, [
|
|
if [ uname -m |grep -q "i.86" ]; then
|
|
ac_cv_flag_intelcpu=yes
|
|
else
|
|
ac_cv_flag_intelcpu=no
|
|
fi
|
|
])
|
|
|
|
dnl check for mmx
|
|
AC_CACHE_CHECK(for MMX on processor(s), ac_cv_flag_mxx, [
|
|
if grep "^flags.* mmx" /proc/cpuinfo > /dev/null; then
|
|
ac_cv_flag_mmx=yes
|
|
else
|
|
ac_cv_flag_mmx=no
|
|
fi
|
|
])
|
|
|
|
if test $ac_cv_flag_mmx = yes; then
|
|
AC_DEFINE(HAVE_ASM_MMX,1)
|
|
AC_DEFINE(HAVE_MMX,1)
|
|
have_asm_mmx=true
|
|
fi
|
|
|
|
dnl check for sse
|
|
AC_CACHE_CHECK(for SSE on processor(s), ac_cv_flag_sse, [
|
|
if grep "^flags.* sse" /proc/cpuinfo > /dev/null; then
|
|
ac_cv_flag_sse=yes
|
|
else
|
|
ac_cv_flag_sse=no
|
|
fi
|
|
])
|
|
|
|
if test $ac_cv_flag_sse = yes; then
|
|
AC_DEFINE(HAVE_ASM_SSE,1)
|
|
have_asm_sse=true
|
|
fi
|
|
|
|
dnl check for 3dnow
|
|
AC_CACHE_CHECK(for 3DNOW on processor(s), ac_cv_flag_3dnow, [
|
|
if grep "^flags.* 3dnow" /proc/cpuinfo > /dev/null; then
|
|
ac_cv_flag_3dnow=yes
|
|
else
|
|
ac_cv_flag_3dnow=no
|
|
fi
|
|
])
|
|
|
|
if test $ac_cv_flag_3dnow = yes; then
|
|
AC_DEFINE(HAVE_ASM_3DNOW,1)
|
|
have_asm_3dnow=true
|
|
fi
|
|
|
|
dnl check for CMOV
|
|
AC_CACHE_CHECK(for CMOV on processor(s), ac_cv_flag_cmov, [
|
|
if grep "^flags.* cmov" /proc/cpuinfo > /dev/null; then
|
|
ac_cv_flag_cmov=yes
|
|
else
|
|
ac_cv_flag_cmov=no
|
|
fi
|
|
])
|
|
|
|
if test $ac_cv_flag_cmov = yes; then
|
|
AC_DEFINE(HAVE_CMOV,1)
|
|
have_cmov=true
|
|
fi
|
|
|
|
|
|
dnl check for MMX2
|
|
AC_CACHE_CHECK(for MMX2 on processor(s), ac_cv_flag_mmx2, [
|
|
if grep "^flags.* mmxext" /proc/cpuinfo > /dev/null; then
|
|
ac_cv_flag_mmx2=yes
|
|
else
|
|
ac_cv_flag_mmx2=no
|
|
fi
|
|
])
|
|
|
|
if test $ac_cv_flag_mmx2 = yes; then
|
|
AC_DEFINE(HAVE_ASM_MMX2,1)
|
|
have_asm_mmx2=true
|
|
fi
|
|
|
|
|
|
dnl Initialize libtool
|
|
AM_PROG_LIBTOOL
|
|
|
|
AC_CHECK_HEADERS(fenv.h stdint.h inttypes.h sys/types.h stdbool.h getopt.h alloca.h sys/soundcard.h)
|
|
|
|
dnl sizeof PRId64 etc...
|
|
AC_CHECK_SIZEOF(int)
|
|
AC_CHECK_SIZEOF(long)
|
|
AC_CHECK_SIZEOF(long long)
|
|
case 8 in
|
|
$ac_cv_sizeof_int)
|
|
PRID64_STRING_FORMAT="d"
|
|
;;
|
|
$ac_cv_sizeof_long)
|
|
PRID64_STRING_FORMAT="ld"
|
|
;;
|
|
$ac_cv_sizeof_long_long)
|
|
PRID64_STRING_FORMAT="lld"
|
|
;;
|
|
*)
|
|
AC_MSG_WARN(No suitable variant for 64bits integers found)
|
|
;;
|
|
esac
|
|
AC_DEFINE_UNQUOTED(PRID64_STRING_FORMAT, "$PRID64_STRING_FORMAT")
|
|
AC_SUBST(PRID64_STRING_FORMAT)
|
|
|
|
AC_CHECK_FUNC(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
|
|
[ # FreeBSD and BSD/OS have a gnugetopt library for this:
|
|
AC_CHECK_LIB([gnugetopt],[getopt_long],
|
|
[AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support) LIBGETOPT_LIB="-lgnugetopt"])])
|
|
AC_SUBST(LIBGETOPT_LIB)
|
|
|
|
AC_TYPE_SIGNAL
|
|
|
|
AC_CHECK_FUNCS([bzero])
|
|
AC_CHECK_FUNCS([floot])
|
|
AC_CHECK_FUNCS([ftruncate])
|
|
AC_CHECK_FUNCS([gettimeofday])
|
|
AC_CHECK_FUNCS([getwd])
|
|
AC_CHECK_FUNCS([memmove])
|
|
AC_CHECK_FUNCS([memset])
|
|
AC_CHECK_FUNCS([mkdir])
|
|
AC_CHECK_FUNCS([mkfifo])
|
|
AC_CHECK_FUNCS([munmap])
|
|
AC_CHECK_FUNCS([pow])
|
|
AC_CHECK_FUNCS([realpath])
|
|
AC_CHECK_FUNCS([rint])
|
|
AC_CHECK_FUNCS([select])
|
|
AC_CHECK_FUNCS([setenv])
|
|
AC_CHECK_FUNCS([socket])
|
|
AC_CHECK_FUNCS([sqrt])
|
|
AC_CHECK_FUNCS([strchr])
|
|
AC_CHECK_FUNCS([strdup])
|
|
AC_CHECK_FUNCS([strerror])
|
|
AC_CHECK_FUNCS([strncasecmp])
|
|
AC_CHECK_FUNCS([strndup])
|
|
AC_CHECK_FUNCS([strstr])
|
|
AC_CHECK_FUNCS([strrchr])
|
|
AC_CHECK_FUNCS([strtol])
|
|
AC_CHECK_HEADERS([fcntl.h])
|
|
AC_CHECK_HEADERS([limits.h])
|
|
AC_CHECK_HEADERS([malloc.h])
|
|
AC_CHECK_HEADERS([netinet/in.h.])
|
|
AC_CHECK_HEADERS([stddef.h])
|
|
AC_CHECK_HEADERS([sys/ioctl.h])
|
|
AC_CHECK_HEADERS([sys/param.h])
|
|
AC_CHECK_HEADERS([sys/socket.h])
|
|
AC_CHECK_HEADERS([sys/time.h])
|
|
AC_CHECK_HEADERS([sys/vfs.h])
|
|
AC_FUNC_FORK
|
|
AC_FUNC_MALLOC
|
|
AC_FUNC_MMAP
|
|
AC_FUNC_STAT
|
|
AC_FUNC_STRTOD
|
|
AC_FUNC_VPRINTF
|
|
AC_FUNC_MEMCMP
|
|
AC_FUNC_REALLOC
|
|
AC_FUNC_SELECT_ARGTYPES
|
|
|
|
AC_HEADER_TIME
|
|
AC_HEADER_SYS_WAIT
|
|
AC_HEADER_DIRENT
|
|
AC_HEADER_STDC
|
|
AC_TYPE_SIZE_T
|
|
AC_TYPE_PID_T
|
|
AC_TYPE_OFF_T
|
|
AC_C_VOLATILE
|
|
|
|
OS_ARCH=`uname -s | sed -e 's|/|_|g'`
|
|
OS_RELEASE=`uname -r`
|
|
OS_CPU=`uname -m`
|
|
|
|
|
|
dnl Set up the usual compiler infos...
|
|
have_large_file=false
|
|
if test ! x$enable_large_file = xno
|
|
then
|
|
if test x$OS_ARCH = xLinux ; then
|
|
AC_MSG_CHECKING([whether glibc supports 64-bit file offsets])
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
|
#define _LARGEFILE_SOURCE
|
|
#define _LARGEFILE64_SOURCE
|
|
#define _FILE_OFFSET_BITS 64
|
|
#include <gnu/libc-version.h>
|
|
#include <stdio.h> ]], [[
|
|
if(sizeof(__off_t) == 8 && sizeof(fpos_t) == 8) return 0;
|
|
return 1;
|
|
]])],[ have_large_file=true
|
|
AC_MSG_RESULT([yes])],[ have_large_file=false
|
|
AC_MSG_RESULT([no])])
|
|
|
|
fi
|
|
dnl test for glibc 2.1.3 or later
|
|
dnl test for kernel 2.4.0 or later
|
|
AC_DEFINE(_FILE_OFFSET_BITS,64)
|
|
AC_DEFINE(_LARGEFILE_SOURCE)
|
|
AC_DEFINE(_LARGEFILE64_SOURCE)
|
|
dnl CFLAGS="$CFLAGS -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
|
|
else
|
|
AC_DEFINE(_FILE_OFFSET_BITS,32)
|
|
fi
|
|
|
|
dnl test for alpha architecture, and Compaq Math Library (cpml) -- much faster
|
|
dnl than GNU libm on this arch.
|
|
dnl does veejay work for alpha ?
|
|
LIBM_LIBS="-lm "
|
|
AC_SUBST(LIBM_LIBS)
|
|
AC_MSG_CHECKING([for alpha architecture])
|
|
if test x$OS_ARCH = xLinux && test x$OS_CPU = xalpha ; then
|
|
AC_MSG_RESULT([yes])
|
|
AC_CHECK_LIB(cpml, asin,
|
|
[ LIBM_LIBS="-lcpml"
|
|
have_cpml=true ],,)
|
|
else
|
|
AC_MSG_RESULT([no])
|
|
fi
|
|
|
|
dnl *********************************************************************
|
|
dnl madmac/gernot: This activates architecture specific changes (e g no MMX)
|
|
dnl
|
|
dnl It defines a tag called "IRIX" to circumvent all the Linux video device code (and its includes)
|
|
dnl and defines WORD_BIGENDIAN to flag a big iron system ;-)
|
|
dnl does veejay work on IRIX ?
|
|
case "$HOSTTYPE" in
|
|
mips*)
|
|
echo NEW: Activating IRIX architecture flags:IRIX and WORD_BIGENDIAN !
|
|
CFLAGS="$CFLAGS -DIRIX -DWORD_BIGENDIAN";;
|
|
esac
|
|
|
|
dnl *********************************************************************
|
|
dnl Test whether we're linux or not. If so, define HAVE_V4L and build the
|
|
dnl video4linux/hardware dependent tools. Else, undefine HAVE_V4L
|
|
|
|
os_type=`uname`
|
|
have_video4linux=false
|
|
if test x$os_type = x"Linux"; then
|
|
AC_CHECK_HEADER(linux/videodev.h,
|
|
have_video4linux=true
|
|
AC_DEFINE(HAVE_V4L),
|
|
AC_MSG_ERROR([videodev.h not found - please install the linux kernel headers])
|
|
)
|
|
else
|
|
AC_MSG_WARN([Did not find linux platform - no v4l. ])
|
|
AC_MSG_WARN([Happy porting!])
|
|
fi
|
|
|
|
dnl *********************************************************************
|
|
dnl Check for the various libraries we depend on.
|
|
dnl
|
|
dnl First lets see if glib is present on this machine
|
|
|
|
AM_PATH_GLIB(1.2.0)
|
|
|
|
dnl *********************************************************************
|
|
dnl Check for the pthread lib
|
|
dnl
|
|
AC_SUBST(PTHREAD_LIBS)
|
|
have_pthread=false
|
|
AC_CHECK_LIB(pthread, pthread_create,
|
|
[ PTHREAD_LIBS="-lpthread"
|
|
AC_DEFINE(HAVE_LIBPTHREAD)
|
|
have_pthread=true ],,)
|
|
|
|
AC_CHECK_FUNC(pthread_attr_getstacksize,
|
|
[
|
|
AC_DEFINE(HAVE_PTHREADSTACKSIZE)
|
|
] )
|
|
|
|
|
|
|
|
dnl ********************************************************************
|
|
dnl Check for Ncurses
|
|
dnl
|
|
|
|
dnl AC_SUBST(NCURSES_LIBS)
|
|
dnl have_ncurses=false
|
|
dnl AC_CHECK_LIB(ncurses, initscr,
|
|
dnl [ NCURSES_LIBS="-lncurses"
|
|
dnl AC_DEFINE(HAVE_NCURSES)
|
|
dnl have_ncurses=true ],,)
|
|
|
|
|
|
|
|
dnl *********************************************************************
|
|
dnl Check for the special mmx accelerated jpeg library
|
|
dnl At the end of this mess, JPEG_LIBS will contain the libraries and
|
|
dnl flags needed to link with the jpeg library and JPEG_CFLAGS will
|
|
dnl have the needed flags to compile against said library
|
|
AC_SUBST(JPEG_LIBS)
|
|
AC_SUBST(JPEG_CFLAGS)
|
|
have_jpeg=false
|
|
if test x$with_jpeg_mmx = xyes ; then
|
|
AC_MSG_ERROR([
|
|
*** A directory must be specified for --with-jpeg-mmx option.])
|
|
fi
|
|
if test x$with_jpeg_mmx = x ; then
|
|
dnl Special case for building .deb's
|
|
if test -d ../jpeg-mmx ; then
|
|
with_jpeg_mmx=`pwd`/../jpeg-mmx
|
|
elif test -d ../jpeg-mmx-0.1.4 ; then
|
|
with_jpeg_mmx=`pwd`/../jpeg-mmx-0.1.4
|
|
else
|
|
with_jpeg_mmx=/usr/local/src/jpeg-mmx
|
|
fi
|
|
fi
|
|
|
|
dnl
|
|
dnl Look for the installed/specified copy
|
|
dnl
|
|
|
|
OLD_CFLAGS="$CFLAGS"
|
|
OLD_LIBS="$LIBS"
|
|
LIBS="$LIBS -L$with_jpeg_mmx"
|
|
CFLAGS="$CFLAGS -I$with_jpeg_mmx"
|
|
AC_CHECK_LIB(jpeg-mmx, jpeg_start_compress,
|
|
[ JPEG_LIBS="$LIBS -ljpeg-mmx"
|
|
JPEG_CFLAGS="-I$with_jpeg_mmx"
|
|
have_jpeg=true ],,)
|
|
LIBS="$OLD_LIBS"
|
|
CFLAGS="$OLD_CFLAGS"
|
|
|
|
dnl
|
|
dnl Look for _a_ jpeg lib that will work.
|
|
dnl
|
|
if test x$have_jpeg = xfalse ; then
|
|
AC_CHECK_LIB(jpeg, jpeg_start_compress,
|
|
[ JPEG_LIBS="-ljpeg"
|
|
JPEG_CFLAGS=""
|
|
have_jpeg=true ],,)
|
|
fi
|
|
|
|
|
|
|
|
dnl *********************************************************************
|
|
dnl Check for the libdv
|
|
dnl At the end of this mess, DV_LIBS will contain the libraries and
|
|
dnl flags needed to link with the jpeg library and DV_CFLAGS will
|
|
dnl have the needed flags to compile against said library
|
|
AC_SUBST(DV_LIBS)
|
|
AC_SUBST(DV_CFLAGS)
|
|
if test x$with_dv = xyes ; then
|
|
AC_MSG_ERROR([
|
|
*** A directory must be specified for the --with-dv option.])
|
|
else if test x$with_dv = x ; then
|
|
with_dv_l=/usr/local/lib
|
|
with_dv_i=/usr/local/include
|
|
fi
|
|
fi
|
|
|
|
have_dv=false
|
|
if test x$have_pthread = xtrue ; then
|
|
EXTRA_LIBS=" $LIBM_LIBS $GLIB_LIBS $PTHREAD_LIBS -ldl "
|
|
else
|
|
EXTRA_LIBS="-L$with_dv$with_dv_l $LIBM_LIBS $GLIB_LIBS -ldl "
|
|
fi
|
|
AC_CHECK_LIB(dv, dv_init,
|
|
[ DV_LIBS="-L$with_dv$with_dv_l -ldv ${EXTRA_LIBS}"
|
|
DV_CFLAGS="-I$with_dv$with_dv_i"
|
|
AC_DEFINE(SUPPORT_READ_DV2)
|
|
AC_DEFINE(SUPPORT_READ_YUV420)
|
|
have_dv=true],,
|
|
-L$with_dv$with_dv_l ${EXTRA_LIBS})
|
|
|
|
dnl ******************
|
|
dnl ...and now if we have libdv, check if version >= 0.9.9
|
|
dnl (by checking if the new function dv_decoder_free() exists)
|
|
have_dv_gte_0_9_9=false
|
|
if test x$have_dv = xtrue; then
|
|
AC_CHECK_LIB(dv, dv_decoder_free,
|
|
[ DV_LIBS="-L$with_dv$with_dv_l -ldv ${EXTRA_LIBS}"
|
|
DV_CFLAGS="-I$with_dv$with_dv_i"
|
|
have_dv_gte_0_9_9=true ],
|
|
[ AC_DEFINE(LIBDV_PRE_0_9_9) ],
|
|
-L$with_dv$with_dv_l ${EXTRA_LIBS})
|
|
else
|
|
AC_MSG_WARN([Cannot find libdv])
|
|
fi
|
|
|
|
dnl *********************************************************************
|
|
dnl Check for libDV YV12 read-support
|
|
if test x$with_dv_yv12 = xyes; then
|
|
if test x$have_pthread = xtrue ; then
|
|
EXTRA_LIBS=" $LIBM_LIBS $GLIB_LIBS $PTHREAD_LIBS -ldl "
|
|
else
|
|
EXTRA_LIBS="-L$with_dv$with_dv_l $LIBM_LIBS $GLIB_LIBS -ldl "
|
|
fi
|
|
build_dv=false
|
|
AC_CHECK_LIB(dv, dv_init,
|
|
[ DV_LIBS="-L$with_dv$with_dv_l -ldv ${EXTRA_LIBS}"
|
|
build_dv=true
|
|
DV_CFLAGS="-I$with_dv$with_dv_i"
|
|
AC_DEFINE(LIBDV_PAL_YV12)],,
|
|
-L$with_dv$with_dv_l ${EXTRA_LIBS})
|
|
fi
|
|
|
|
|
|
dnl *********************************************************************
|
|
dnl Lets find where xwindows lives on this machine. Punt if not found.
|
|
AC_PATH_XTRA
|
|
|
|
if test "-DX_DISPLAY_MISSING" = "$X_CFLAGS"; then
|
|
AC_MSG_ERROR(can not find X11)
|
|
fi
|
|
|
|
dnl add some more libs which are probably needed
|
|
if test x$have_pthread = xtrue ; then
|
|
EXTRA_LIBS="$LIBM_LIBS $GLIB_LIBS $PTHREAD_LIBS -ldl"
|
|
else
|
|
EXTRA_LIBS="$LIBM_LIBS $GLIB_LIBS -ldl"
|
|
fi
|
|
|
|
AC_SUBST(X_CFLAGS)
|
|
AC_SUBST(X_PRE_LIBS)
|
|
AC_SUBST(X_EXTRA_LIBS)
|
|
AC_SUBST(X_LIBS)
|
|
AC_SUBST(x_libraries)
|
|
|
|
dnl ********************************************************************
|
|
dnl Check to see if __progname is provided by the system
|
|
dnl ********************************************************************
|
|
AC_MSG_CHECKING(for __progname)
|
|
AC_CACHE_VAL(ac_cv_extern__progname,
|
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[extern char *__progname;
|
|
puts(__progname)]])],[ac_cv_extern___progname=yes],[ac_cv_extern___progname=no]))
|
|
if test x$ac_cv_extern___progname = xyes ; then
|
|
AC_DEFINE(HAVE___PROGNAME,,[Is __progname defined by system?])
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
|
|
|
|
|
|
|
|
dnl ********************************************************************
|
|
dnl Check for DGA (for v4l-conf)
|
|
dnl ********************************************************************
|
|
AC_SUBST(V4LCONF_LIBS)
|
|
AC_CHECK_LIB(Xxf86dga, XF86DGAQueryExtension,
|
|
V4LCONF_LIBS="$X_LIBS -lXxf86dga" AC_DEFINE(HAVE_LIBXXF86DGA),,
|
|
$X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS)
|
|
|
|
dnl ********************************************************************
|
|
dnl Check for the SDL library (for software playback)
|
|
dnl
|
|
dnl AM_PATH_SDL defines SDL_CFLAGS and SDL_LIBS for us..
|
|
have_sdl=false
|
|
ifdef([AM_PATH_SDL],
|
|
[ AM_PATH_SDL(1.2.3, [ AC_DEFINE(BUILD_VEEJAY)
|
|
have_sdl=true
|
|
AC_DEFINE(HAVE_SDL)],,) ])
|
|
|
|
dnl *********************************************************************
|
|
dnl Check for the DirectFB library (for Matrox G550 Tvout)
|
|
dnl
|
|
have_directfb=false
|
|
PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.17, have_directfb=true,
|
|
have_directfb=false)
|
|
|
|
if test x$have_directfb = xtrue ; then
|
|
AC_SUBST(DIRECTFB_LIBS)
|
|
AC_SUBST(DIRECTFB_CFLAGS)
|
|
AC_DEFINE(HAVE_DIRECTFB)
|
|
fi
|
|
|
|
dnl **********************************************************************
|
|
dnl Check for the Jack audio connection kit
|
|
dnl
|
|
|
|
have_jack=false
|
|
if test x$jack_support = xyes ; then
|
|
PKG_CHECK_MODULES(JACK, jack >= 0.98.1 , have_jack=true, have_jack=false)
|
|
if test x$have_jack = xtrue ; then
|
|
AC_SUBST(JACK_LIBS)
|
|
AC_SUBST(JACK_CFLAGS)
|
|
AC_DEFINE(HAVE_JACK,1)
|
|
else
|
|
AC_MSG_WARN([Jack >= 0.981.1 is required, get it at http://jackit.sourceforge.net]);
|
|
fi
|
|
fi
|
|
|
|
dnl ********************************************************************
|
|
dnl Check for the libxml2 library (for saving/loading project files)
|
|
dnl
|
|
dnl AM_PATH_SDL defines SDL_CFLAGS and SDL_LIBS for us..
|
|
have_xml2=false
|
|
ifdef([AM_PATH_XML2],
|
|
[ AM_PATH_XML2(2.5.4, [ AC_DEFINE(BUILD_VEEJAY)
|
|
have_xml2=true
|
|
AC_DEFINE(HAVE_XML2)],,) ])
|
|
|
|
if test x$have_xml2 = xfalse ; then
|
|
AC_MSG_ERROR(cannot find The XML C library for gnome)
|
|
fi
|
|
|
|
|
|
dnl ********************************************************************
|
|
dnl Test for MMX support, if we find an IA32 platform then check to see
|
|
dnl if gcc and its tools can generate MMX instructions, also make sure
|
|
dnl nasm is present for the files that need that.
|
|
dnl Both are checked for for the maximum flexablity.
|
|
dnl
|
|
dnl TODO: host = non intel, target = intel <blah> do the checks also?
|
|
dnl remeber we are checking that the toolchain can generate the
|
|
dnl code, not whether the host can execute the code, thats done
|
|
dnl at run time with the exception of the SSE code.
|
|
dnl
|
|
dnl
|
|
|
|
|
|
|
|
AC_MSG_CHECKING([for Intel Pentium architecture (IA32)])
|
|
if test "$host_cpu" = "i386" -o "$host_cpu" = "i486" \
|
|
-o "$host_cpu" = "i586" -o "$host_cpu" = "i686" \
|
|
-o "$host_cpu" = "i786" ; then
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(HAVE_X86CPU,1)
|
|
AC_DEFINE(ARCH_X86,1)
|
|
have_x86cpu=true
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
|
|
AC_MSG_CHECKING([for PowerPC architecture])
|
|
if test "$host_cpu" = "powerpc" ; then
|
|
AC_MSG_RESULT(yes)
|
|
have_ppccpu=true
|
|
AC_DEFINE(ARCH_PPC,1)
|
|
AC_CACHE_CHECK([if \$CC groks AltiVec inline assembly],
|
|
[ac_cv_altivec_inline],
|
|
[CFLAGS="${CFLAGS_save}"
|
|
AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
|
|
ac_cv_altivec_inline=yes,
|
|
[CFLAGS="${CFLAGS_save} -Wa,-m7400"
|
|
AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
|
|
[ac_cv_altivec_inline="-Wa,-m7400"],
|
|
ac_cv_altivec_inline=no)
|
|
])])
|
|
if test "x${ac_cv_altivec_inline}" != "xno"; then
|
|
AC_DEFINE(HAVE_PPC_ALTIVEC, 1, Define if \$CC groks AltiVec inline assembly.)
|
|
if test "x${ac_cv_altivec_inline}" != "xyes"; then
|
|
use_altivec=yes
|
|
fi
|
|
fi
|
|
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
have_c_altivec=no
|
|
fi
|
|
|
|
|
|
AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
|
|
[ac_cv_c_altivec],
|
|
[CFLAGS="${CFLAGS_save} -faltivec"
|
|
# Darwin test
|
|
AC_TRY_COMPILE(,[vec_mtvscr((vector unsigned int)(0));],
|
|
ac_cv_c_altivec=-faltivec, [
|
|
# Linux/PPC test
|
|
CFLAGS="${CFLAGS_save} ${CFLAGS_idctaltivec} -fvec"
|
|
AC_TRY_COMPILE(,[vec_mtvscr((vector unsigned int)(0));],
|
|
[ac_cv_c_altivec="-fvec"], ac_cv_c_altivec=no)
|
|
])
|
|
CFLAGS="${CFLAGS_save}"])
|
|
if test "x${ac_cv_c_altivec}" != "xno"; then
|
|
AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C AltiVec extensions.)
|
|
have_c_altivec=true
|
|
fi
|
|
|
|
AC_CACHE_CHECK([if linker needs -framework vecLib],
|
|
[ac_cv_ld_altivec],
|
|
[LDFLAGS_save="${LDFLAGS}"
|
|
LDFLAGS="${LDFLAGS} -framework vecLib"
|
|
AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
|
|
LDFLAGS="${LDFLAGS_save}"
|
|
])
|
|
if test "x${ac_cv_ld_altivec}" != "xno"; then
|
|
LDFLAGS_save="${LDFLAGS_save} -framework vecLib"; LDFLAGS="${LDFLAGS_save}"
|
|
fi
|
|
|
|
echo enable_simd_accel = X"$enable_simd_accel"X
|
|
|
|
if test "$enable_simd_accel" != "false" -a "$enable_simd_accel" != "no"
|
|
then
|
|
if test x$have_x86cpu = xtrue
|
|
then
|
|
AC_DEFINE(HAVE_X86CPU,1)
|
|
AC_DEFINE(ARCH_X86,1)
|
|
AC_MSG_CHECKING([for support for gcc-style register parameters on Intel])
|
|
AC_TRY_COMPILE([],
|
|
[extern void x(
|
|
const unsigned char *src1,
|
|
const unsigned char *src2,
|
|
unsigned count,
|
|
unsigned char *dst) __attribute((regparm(3)));],
|
|
[AC_MSG_RESULT(yes)
|
|
AC_MSG_CHECKING([for support of MMX in assembly code])
|
|
cat > conftest.S <<EOF
|
|
.text
|
|
|
|
psubusb %mm3, %mm4
|
|
EOF
|
|
if $CC -c conftest.S ; then
|
|
AC_MSG_RESULT(yes)
|
|
rm -f conftest.*
|
|
AC_DEFINE(HAVE_ASM_MMX)
|
|
have_asm_mmx=true
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
echo "configure: failed program was:" >&AC_FD_CC
|
|
cat conftest.S >&AC_FD_CC
|
|
rm -f conftest.*;
|
|
fi
|
|
AC_PATH_PROGS(AS, nasm nasmw)
|
|
if test x$AS = x -o x$AS = x'"$AS"'; then
|
|
echo "*************************************************************************"
|
|
echo "** nasm not found! X86 optimizations disabled! (MMX/SSE instructions)**"
|
|
echo "** INSTALL NASM OR PERFORMANCE WILL BE CRAP! **"
|
|
echo "*************************************************************************"
|
|
enable_3dnow_accel=no
|
|
enable_cmov_extension=no
|
|
enable_simd_accel=no
|
|
have_asm_mmx=false
|
|
have_asm_sse=false
|
|
have_asm_nasm=false
|
|
else
|
|
AC_DEFINE(HAVE_ASM_NASM)
|
|
have_asm_nasm=true
|
|
ASFLAGS="-f elf"
|
|
if test x$CYGWIN = xyes; then
|
|
ASFLAGS="-f coff"
|
|
fi
|
|
AC_SUBST(ASFLAGS)
|
|
fi
|
|
],
|
|
[AC_MSG_RESULT(no)
|
|
AC_MSG_WARN(*** MMX Optimizations disabled....)]);
|
|
fi
|
|
fi
|
|
|
|
|
|
|
|
|
|
dnl *********************************************************************
|
|
dnl For x86 machines only check which code model we should use
|
|
dnl and whether the GCC tool chain can generate 3DNow assmebly instructions
|
|
dnl
|
|
|
|
if test x$have_x86cpu = xtrue ; then
|
|
AC_MSG_CHECKING(x86 sub-architecture settings)
|
|
|
|
if test "$enable_cmov_extension" != "no" ; then
|
|
arch=`uname -m`
|
|
else
|
|
arch=i586
|
|
fi
|
|
have_cmov=false
|
|
case $arch in
|
|
i786) ARCHFLAGS="-mcpu=i786 -march=$arch"
|
|
have_cmov=true
|
|
;;
|
|
i686) ARCHFLAGS="-mcpu=i686 -march=$arch"
|
|
have_cmov=true
|
|
;;
|
|
i586) ARCHFLAGS="-mcpu=i586 -march=$arch"
|
|
have_cmov=false
|
|
;;
|
|
*)
|
|
have_cmov=false
|
|
;;
|
|
esac
|
|
AC_MSG_RESULT($ARCHFLAGS)
|
|
|
|
else
|
|
have_cmov=false
|
|
fi
|
|
|
|
dnl **********************************************************************
|
|
dnl All the conditional stuff for the Makefiles
|
|
dnl
|
|
AM_CONDITIONAL(BUILD_VEEJAY, test x$have_sdl = xtrue)
|
|
AM_CONDITIONAL(HAVE_ASM_MMX, test x$have_asm_mmx = xtrue)
|
|
AM_CONDITIONAL(HAVE_ASM_MMX2, test x$have_asm_mmx2 = xtrue)
|
|
AM_CONDITIONAL(HAVE_ASM_SSE, test x$have_asm_sse = xtrue)
|
|
AM_CONDITIONAL(HAVE_ASM_NASM, test x$have_asm_nasm = xtrue)
|
|
AM_CONDITIONAL(HAVE_ASM_CMOV,test x$have_cmov = xtrue)
|
|
AM_CONDITIONAL(HAVE_X86CPU, test x$have_x86cpu = xtrue)
|
|
AM_CONDITIONAL(ARCH_X86, test x$have_x86cpu = xtrue)
|
|
AM_CONDITIONAL(HAVE_PPCCPU, test x$have_ppccpu = xtrue)
|
|
AM_CONDITIONAL(HAVE_SDL, test x$have_sdl = xtrue)
|
|
AM_CONDITIONAL(HAVE_XML2, test x$have_xml2 = xtrue)
|
|
AM_CONDITIONAL(HAVE_V4L, test x$have_video4linux = xtrue)
|
|
AM_CONDITIONAL(HAVE_DIRECTFB, test x$have_directfb = xtrue)
|
|
AM_CONDITIONAL(HAVE_JACK, test x$jack_support = xyes)
|
|
AM_CONDITIONAL(ARCH_PPC, test x$have_ppccpu = xtrue)
|
|
AM_CONDITIONAL(CAN_COMPILE_C_ALTIVEC,test, "x${have_c_altivec}" = xtrue)
|
|
AM_CONDITIONAL(LIBDV_PRE_0_9_9, test x$have_dv_gte_0_9_9 = xtrue)
|
|
AM_CONDITIONAL(HAVE_MMX, test x$have_asm_mmx = xtrue)
|
|
AM_CONDITIONAL(SYSTEM_DARWIN,test x$have_darwin = xtrue)
|
|
dnl AM_CONDITIONAL(HAVE_NCURSES, test x$have_ncurses = xtrue)
|
|
dnl *********************************************************************
|
|
dnl Check for what warnings we want gcc to use and adjust the CFLAGS
|
|
dnl as needed. This only works for GCC.
|
|
dnl We do this last as it can screw up library detection etc...
|
|
dnl
|
|
|
|
|
|
|
|
CFLAGS="$ARCHFLAGS $CFLAGS"
|
|
if test "x${GCC}" != "xyes" ; then
|
|
enable_compile_warnings=no
|
|
fi
|
|
|
|
CFLAGS="$CFLAGS -O3"
|
|
|
|
AC_MSG_CHECKING(what warning flags to pass to the C compiler)
|
|
warnCFLAGS=
|
|
if test "x$enable_compile_warnings" != "xno" ; then
|
|
if test "x$GCC" = "xyes" ; then
|
|
case "$CFLAGS" in
|
|
*-Wall*) ;;
|
|
*) warnCFLAGS="-Wall -Wunused" ;;
|
|
esac
|
|
if test "x$enable_compile_warnings" = "xyes" ; then
|
|
warnCFLAGS="$warnCFLAGS -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wcast-align -Wwrite-strings -Wcast-qual"
|
|
fi
|
|
if test "x$enable_warnings_as_errors" = "xyes" ; then
|
|
warnCFLAGS="$warnCFLAGS -Werror"
|
|
fi
|
|
fi
|
|
fi
|
|
AC_MSG_CHECKING(whether to use gcov)
|
|
gcovCFLAGS=
|
|
if test "x$enable_gcov" == "xyes" ; then
|
|
gcovCFLAGS="-fprofile-arcs -ftest-coverage"
|
|
fi
|
|
AC_MSG_RESULT($gcovCFLAGS)
|
|
|
|
AC_MSG_RESULT($warnCFLAGS)
|
|
if test "x$cflags_set" != "xyes" ; then
|
|
CFLAGS="$CFLAGS $warnCFLAGS"
|
|
cflags_set=yes
|
|
fi
|
|
|
|
AC_ARG_ENABLE(altivec, AC_HELP_STRING([--enable-altivec], [enable Altivec code portions (yes)]),[case "${enableval}" in
|
|
yes) use_altivec=yes ;;
|
|
no) use_altivec=no ;;
|
|
*) AC_MSG_ERROR(bad value ${enableval} for --enable-altivec) ;;
|
|
esac], [if test x"$have_ppc_altivec" = x"true"; then use_altivec=yes; else use_altivec=no;fi])
|
|
|
|
AM_CONDITIONAL(HAVE_PPC_ALTIVEC, test x"$use_altivec" = x"yes")
|
|
|
|
|
|
AC_ARG_ENABLE(assert,
|
|
[ --disable-assert Do not assert parameters to functions in libraries.],
|
|
[ case "$enableval" in yes|no) : ;; *) AC_MSG_ERROR(bad value for --enable-assert) ;; esac ],
|
|
[ enable_assert=yes ])
|
|
|
|
if test x"$enable_assert" = x"no"; then NDEBUG=1; fi
|
|
|
|
if test $ac_cv_flag_mmx = yes; then
|
|
WHAT=mmx
|
|
else
|
|
WHAT=c2
|
|
fi
|
|
AC_SUBST(WHAT)
|
|
|
|
dnl AC_DEFINE(VEEJAYTOOLS)
|
|
dnl case x"$NDEBUG" in x"1") AC_DEFINE(NDEBUG) ;; esac
|
|
|
|
dnl **********************************************************************
|
|
dnl Output a Makefile or two and the lib/header descriptor script
|
|
dnl
|
|
AC_CONFIG_FILES([
|
|
Makefile
|
|
ccvt/Makefile
|
|
libOMC/Makefile
|
|
utils/Makefile
|
|
ffmpeg/Makefile
|
|
ffmpeg/libavcodec/Makefile
|
|
ffmpeg/libavcodec/i386/Makefile
|
|
ffmpeg/libavcodec/ppc/Makefile
|
|
bio2jack/Makefile
|
|
veejay/Makefile
|
|
man/Makefile
|
|
tools/Makefile
|
|
])
|
|
AC_OUTPUT
|
|
|
|
AC_DEFINE(VERSION, ${VERSION})
|
|
|
|
dnl ************************************************************************
|
|
dnl Summarize the config for the user.
|
|
dnl
|
|
echo ""
|
|
echo " veejay ${VERSION} build configuration :"
|
|
echo ""
|
|
echo " Build configuration:"
|
|
echo " MMX enabled : ${have_asm_mmx}"
|
|
echo " MMX2 enabled : ${have_asm_mmx2}"
|
|
echo " SSE enabled : ${have_asm_sse}"
|
|
echo " 3DNow enabled : ${have_asm_3dnow}"
|
|
echo " CMOV enabled : ${have_cmov}"
|
|
echo " glibc support for >2GB files : ${have_large_file}"
|
|
echo ""
|
|
echo " Required dependencies:"
|
|
echo " POSIX Threads (pthread) : ${have_pthread}"
|
|
echo " video4linux recording/playback : ${have_video4linux}"
|
|
echo " Simple Direct Media Layer : ${have_sdl}"
|
|
echo " XML C library for Gnome libxml2 : ${have_xml2}"
|
|
echo " libJPEG : ${have_jpeg}"
|
|
echo ""
|
|
echo " Optional dependencies:"
|
|
echo " libDV (digital video) : ${have_dv}"
|
|
echo " Jack Audio Connection Kit : ${have_jack}"
|
|
echo " DirectFB support : ${have_directfb}"
|
|
dnl echo " Ncurses support : ${have_ncurses}"
|
|
|
|
|