You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1436 lines
39 KiB
1436 lines
39 KiB
# Process this file with autoconf to produce a configure script.
|
|
|
|
AC_INIT(transcode,1.1.7)
|
|
AC_CONFIG_AUX_DIR(autotools)
|
|
AC_CONFIG_SRCDIR(src/transcode.c)
|
|
|
|
dnl Detect the canonical host and target build environment
|
|
AC_CANONICAL_SYSTEM
|
|
|
|
AM_INIT_AUTOMAKE(transcode,1.1.7)
|
|
AM_CONFIG_HEADER(config.h)
|
|
|
|
AM_MAINTAINER_MODE
|
|
|
|
dnl Checks for programs.
|
|
AC_LANG([C])
|
|
AC_PROG_CC
|
|
AM_PROG_CC_C_O
|
|
AC_PROG_CPP
|
|
AC_PROG_AWK
|
|
AC_PROG_INSTALL
|
|
AC_PROG_LN_S
|
|
AC_PROG_MAKE_SET
|
|
AM_PROG_AS
|
|
AM_CONDITIONAL(HAVE_GCC, test x"$GCC" = x"yes")
|
|
|
|
dnl Check for gcc2, which doesn't seem to handle asm templates
|
|
dnl And check for gcc4, which also has problems with filter_tomsmocomp
|
|
dnl
|
|
gcc2=no
|
|
gcc4=no
|
|
if test x"$GCC" = x"yes" ; then
|
|
gcc_ver="`LANG=C $CC -dumpversion`"
|
|
if test x"$gcc_ver" != x"" ; then
|
|
if echo $gcc_ver | grep -q ^2 ; then
|
|
gcc2=yes
|
|
fi
|
|
if echo $gcc_ver | grep -q ^4 ; then
|
|
gcc4=yes
|
|
fi
|
|
fi
|
|
fi
|
|
AM_CONDITIONAL(HAVE_GCC2, test x"$gcc2" = x"yes")
|
|
AM_CONDITIONAL(HAVE_GCC4, test x"$gcc4" = x"yes")
|
|
|
|
dnl we got $AWK already, but not its full path
|
|
AC_PATH_PROG(PATH_TO_AWK, $AWK)
|
|
|
|
dnl Check the OS. This has to be done here, after checks for proograms and
|
|
dnl before checks for libraries.
|
|
|
|
deflib="/lib"
|
|
is_linux=no
|
|
is_bsd=no
|
|
is_osx=no
|
|
case "${target_os}" in
|
|
*linux*)
|
|
is_linux=yes
|
|
AC_DEFINE([OS_LINUX], 1, [Define if your system is Linux])
|
|
;;
|
|
freebsd*|openbsd*|netbsd*|bsdi*|darwin*|rhapsody*)
|
|
is_bsd=yes
|
|
AC_DEFINE([OS_BSD], 1, [Define if your system is modern BSD])
|
|
|
|
# darwin is a subcase of BSD
|
|
case "${target_os}" in
|
|
darwin*)
|
|
is_osx=yes
|
|
CFLAGS="${CFLAGS} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"
|
|
#LDFLAGS="${LDFLAGS} -all_load"
|
|
|
|
AC_DEFINE([OS_DARWIN], 1, [Define if this is a Darwin / MacOS X system.])
|
|
AC_DEFINE([BROKEN_PTHREADS], 1, [Define if you have weird pthreads.])
|
|
|
|
# Include Fink in compile and link if present
|
|
if test -d /sw; then
|
|
CPPFLAGS="${CPPFLAGS} -I/sw/include"
|
|
LDFLAGS="${LDFLAGS} -L/sw/lib"
|
|
fi
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
AM_CONDITIONAL([OS_LINUX], test x"$is_linux" = x"yes")
|
|
AM_CONDITIONAL([OS_BSD], test x"$is_bsd" = x"yes")
|
|
AM_CONDITIONAL([OS_DARWIN], test x"$is_osx" = x"yes")
|
|
|
|
|
|
dnl Checks for libraries.
|
|
AC_CHECK_LIB(dl, dlopen)
|
|
AC_CHECK_FUNCS([dlopen])
|
|
if test x"$is_osx" = x"true" ; then
|
|
AC_CHECK_FUNCS(dlsym_prepend_underscore,
|
|
[CFLAGS="${CFLAGS} -Ddlsym=dlsym_prepend_underscore"],
|
|
AC_MSG_WARN([Function 'dlsym_prepend_underscore' not found.])
|
|
AC_MSG_WARN([Using function 'dlsym' directly instead.])
|
|
AC_MSG_WARN([This can be a problem if the installed dlsym])
|
|
AC_MSG_WARN([does not automatically prepend an underscore])
|
|
AC_MSG_WARN([to symbols.]))
|
|
fi
|
|
|
|
USE_DLDARWIN=no
|
|
if test x"$ac_cv_lib_dl_dlopen" = x"no" ; then
|
|
case x${target_os} in
|
|
xdarwin*)
|
|
USE_DLDARWIN=yes
|
|
DLDARWIN_CFLAGS="-I\$(top_srcdir)/libdldarwin/"
|
|
DLDARWIN_LIBS="\$(top_builddir)/libdldarwin/libdldarwin.a"
|
|
;;
|
|
esac
|
|
fi
|
|
AC_SUBST(USE_DLDARWIN)
|
|
AC_SUBST(DLDARWIN_CFLAGS)
|
|
AC_SUBST(DLDARWIN_LIBS)
|
|
AM_CONDITIONAL(USE_DLDARWIN, test x"$USE_DLDARWIN" = x"yes")
|
|
|
|
dnl libtool setup
|
|
AC_PROVIDE([AC_PROG_CXX]) dnl we don't want it!
|
|
AC_PROVIDE([AC_PROG_F77]) dnl likewise
|
|
AC_DISABLE_STATIC
|
|
AC_LIBTOOL_DLOPEN
|
|
AC_PROG_LIBTOOL
|
|
|
|
|
|
dnl Checks for header files.
|
|
TC_CHECK_STD_HEADERS
|
|
AC_CHECK_HEADERS([endian.h malloc.h sys/mman.h sys/select.h])
|
|
|
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
AC_C_CONST
|
|
AC_C_INLINE
|
|
AC_C_BIGENDIAN([words_bigendian=true
|
|
AC_DEFINE([WORDS_BIGENDIAN], 1, [Define if your CPU is big-endian.])],
|
|
words_bigendian=false)
|
|
AM_CONDITIONAL(WORDS_BIGENDIAN, test x"$words_bigendian" = x"true")
|
|
TC_C_GCC_ATTRIBUTES
|
|
TC_C_ATTRIBUTE_ALIGNED
|
|
|
|
dnl Checks for library functions.
|
|
AC_FUNC_MALLOC
|
|
AC_TYPE_SIGNAL
|
|
AC_CHECK_FUNCS([getopt_long_only getpagesize gettimeofday mmap strlcat strlcpy strtof vsscanf])
|
|
AM_CONDITIONAL(HAVE_GETOPT_LONG_ONLY, test x"$ac_cv_func_getopt_long_only" = x"yes")
|
|
AM_CONDITIONAL(HAVE_MMAP, test x"$ac_cv_func_mmap" = x"yes")
|
|
AM_CONDITIONAL(HAVE_GETTIMEOFDAY, test x"$ac_cv_func_gettimeofday" = x"yes")
|
|
|
|
dnl Special check for sysconf() to ensure _SC_PAGESIZE is also available.
|
|
AC_CACHE_CHECK([for sysconf(_SC_PAGESIZE)], ac_cv_sysconf_with_sc_pagesize,
|
|
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <unistd.h>]],[[sysconf(_SC_PAGESIZE);]])],
|
|
[ac_cv_sysconf_with_sc_pagesize=yes],
|
|
[ac_cv_sysconf_with_sc_pagesize=no])])
|
|
if test x"$ac_cv_sysconf_with_sc_pagesize" = x"yes"; then
|
|
AC_DEFINE([HAVE_SYSCONF_WITH_SC_PAGESIZE], 1,
|
|
[Define to 1 if you have sysconf(_SC_PAGESIZE).])
|
|
fi
|
|
|
|
dnl Large file support.
|
|
AC_SYS_LARGEFILE
|
|
AC_FUNC_FSEEKO
|
|
|
|
dnl Thread support (pthreads).
|
|
case "$host" in
|
|
*-*-freebsd*)
|
|
pthread_cflags="-pthread -D_REENTRANT -D_THREAD_SAFE"
|
|
pthread_libs="-pthread"
|
|
;;
|
|
*-*-openbsd*)
|
|
pthread_cflags="-D_REENTRANT"
|
|
pthread_libs="-pthread"
|
|
;;
|
|
*-*-bsdi*)
|
|
pthread_cflags="-D_REENTRANT -D_THREAD_SAFE"
|
|
pthread_libs=""
|
|
;;
|
|
*)
|
|
pthread_cflags="-D_REENTRANT"
|
|
pthread_libs="-lpthread"
|
|
;;
|
|
esac
|
|
# let user override
|
|
if test -n "$PTHREAD_LIBS" ; then
|
|
pthread_libs="$PTHREAD_LIBS"
|
|
fi
|
|
if test -n "$PTHREAD_CFLAGS" ; then
|
|
pthread_cflags="$PTHREAD_CFLAGS"
|
|
fi
|
|
save_LIBS="$LIBS"
|
|
LIBS="$LIBS $pthread_libs"
|
|
save_CFLAGS="$CFLAGS"
|
|
CFLAGS="$CFLAGS $pthread_cflags"
|
|
AC_MSG_CHECKING(for pthreads in $pthread_libs)
|
|
AC_TRY_LINK([
|
|
#include <pthread.h>
|
|
],[
|
|
pthread_attr_t type;
|
|
pthread_attr_init(&type);
|
|
],
|
|
[use_pthreads="yes"],
|
|
[use_pthreads="no"]
|
|
);
|
|
LIBS="$save_LIBS"
|
|
CFLAGS="$save_CFLAGS"
|
|
AC_MSG_RESULT($use_pthreads)
|
|
if test x"$use_pthreads" = x"yes" ; then
|
|
PTHREAD_LIBS="$pthread_libs"
|
|
PTHREAD_CFLAGS="$pthread_cflags"
|
|
else
|
|
PTHREAD_LIBS=""
|
|
PTHREAD_CFLAGS=""
|
|
fi
|
|
AC_SUBST(PTHREAD_LIBS)
|
|
AC_SUBST(PTHREAD_CFLAGS)
|
|
|
|
|
|
dnl
|
|
dnl Architecture specific instructions
|
|
dnl
|
|
|
|
AC_MSG_CHECKING([for build architecture])
|
|
have_x86cpu=false
|
|
have_x86_64cpu=false
|
|
have_ppccpu=false
|
|
case x"$host_cpu" in
|
|
xi?86*|xk6*)
|
|
have_x86cpu=true
|
|
AC_MSG_RESULT([Intel Pentium architecture (IA32)])
|
|
AC_DEFINE([ARCH_X86], 1, [Define if your machine is x86 based])
|
|
;;
|
|
xx86_64*|xamd64*)
|
|
have_x86_64cpu=true
|
|
AC_MSG_RESULT([AMD64 architecture (AMD64)])
|
|
AC_DEFINE([ARCH_X86_64], 1, [Define if your machine is AMD64 based])
|
|
;;
|
|
xpowerpc*)
|
|
have_ppccpu=true
|
|
AC_MSG_RESULT([Mac PPC architecture (PPC)])
|
|
AC_DEFINE([ARCH_PPC], 1, [Define if your machine is PPC based])
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
AM_CONDITIONAL(ARCH_X86, test x"$have_x86cpu" = x"true")
|
|
AM_CONDITIONAL(ARCH_X86_64, test x"$have_x86_64cpu" = x"true")
|
|
AM_CONDITIONAL(ARCH_PPC, test x"$have_ppccpu" = x"true")
|
|
|
|
|
|
dnl x86 & x86_64 architectures
|
|
|
|
dnl MMX support
|
|
dnl
|
|
explicit_mmx=no
|
|
AC_ARG_ENABLE(mmx,
|
|
AC_HELP_STRING([--enable-mmx],
|
|
[enable MMX code portions (yes)]),
|
|
[case "${enableval}" in
|
|
yes) use_mmx=yes ;;
|
|
no) use_mmx=no ;;
|
|
*) AC_MSG_ERROR(bad value ${enableval} for --enable-mmx) ;;
|
|
esac
|
|
explicit_mmx=yes],
|
|
[if test x"$have_x86cpu" = x"true" -o x"$have_x86_64cpu" = x"true" ; then
|
|
use_mmx=yes
|
|
else
|
|
use_mmx=no
|
|
fi])
|
|
|
|
have_asm_mmx="no"
|
|
if test x"$use_mmx" = x"yes" ; then
|
|
AC_MSG_CHECKING([if \$CC groks MMX inline assembly])
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));])],
|
|
[have_asm_mmx="yes"])
|
|
if test x"$have_asm_mmx" = x"yes" ; then
|
|
AC_DEFINE([HAVE_ASM_MMX], 1,
|
|
[Define if your compiler understands MMX assembly instructions])
|
|
fi
|
|
AC_MSG_RESULT($have_asm_mmx)
|
|
if test x"$have_asm_mmx" = x"no" -a x"$explicit_mmx" = x"yes" ; then
|
|
AC_MSG_WARN(*** Ignoring --enable-mmx due to no compiler support ***)
|
|
fi
|
|
fi
|
|
AM_CONDITIONAL(HAVE_ASM_MMX, test x"$have_asm_mmx" = x"yes")
|
|
if test x"$have_asm_mmx" = x"no" ; then
|
|
AC_MSG_WARN(*** All MMX dependent parts will be disabled ***)
|
|
fi
|
|
|
|
dnl 3DNow support
|
|
dnl
|
|
explicit_3dnow=no
|
|
AC_ARG_ENABLE(3dnow,
|
|
AC_HELP_STRING([--enable-3dnow],
|
|
[enable 3DNow code portions (yes)]),
|
|
[case "${enableval}" in
|
|
yes) if test x"$have_asm_mmx" = x"no"; then
|
|
AC_MSG_ERROR(--enable-3dnow requires --enable-mmx)
|
|
else
|
|
use_3dnow=yes
|
|
fi ;;
|
|
no) use_3dnow=no ;;
|
|
*) AC_MSG_ERROR(bad value ${enableval} for --enable-3dnow) ;;
|
|
esac
|
|
explicit_3dnow=yes],
|
|
[if test x"$have_asm_mmx" = x"yes" -a \( x"$have_x86cpu" = x"true" -o x"$have_x86_64cpu" = x"true" \) ; then
|
|
use_3dnow=yes
|
|
else
|
|
use_3dnow=no
|
|
fi])
|
|
have_asm_3dnow="no"
|
|
if test x"$use_3dnow" = x"yes" ; then
|
|
AC_MSG_CHECKING([if \$CC groks 3DNow inline assembly])
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [void *p;asm volatile("pfmul %%mm3,%%mm4"::"r"(p));])],
|
|
[have_asm_3dnow="yes"])
|
|
if test x"$have_asm_3dnow" = x"yes" ; then
|
|
AC_DEFINE([HAVE_ASM_3DNOW], 1,
|
|
[Define if your compiler understands 3DNow assembly instructions])
|
|
fi
|
|
AC_MSG_RESULT($have_asm_3dnow)
|
|
if test x"$have_asm_3dnow" = x"no" -a x"$explicit_3dnow" = x"yes" ; then
|
|
AC_MSG_WARN(*** Ignoring --enable-3dnow due to no compiler support ***)
|
|
fi
|
|
fi
|
|
AM_CONDITIONAL(HAVE_ASM_3DNOW, test x"$have_asm_3dnow" = x"yes")
|
|
if test x"$have_asm_3dnow" = x"no" ; then
|
|
AC_MSG_WARN(*** All 3DNow dependent parts will be disabled ***)
|
|
fi
|
|
|
|
|
|
dnl SSE support
|
|
dnl
|
|
explicit_sse=no
|
|
AC_ARG_ENABLE(sse,
|
|
AC_HELP_STRING([--enable-sse],
|
|
[enable SSE code portions (yes)]),
|
|
[case "${enableval}" in
|
|
yes) if test x"$have_asm_mmx" = x"no"; then
|
|
AC_MSG_ERROR(--enable-sse requires --enable-mmx)
|
|
else
|
|
use_sse=yes
|
|
fi ;;
|
|
no) use_sse=no ;;
|
|
*) AC_MSG_ERROR(bad value ${enableval} for --enable-sse) ;;
|
|
esac
|
|
explicit_sse=yes],
|
|
[if test x"$have_asm_mmx" = x"yes" -a \( x"$have_x86cpu" = x"true" -o x"$have_x86_64cpu" = x"true" \) ; then
|
|
use_sse=yes
|
|
else
|
|
use_sse=no
|
|
fi])
|
|
have_asm_sse="no"
|
|
if test x"$use_sse" = x"yes" ; then
|
|
AC_MSG_CHECKING([if \$CC groks SSE inline assembly])
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [void *p; asm volatile("movntps %%xmm0, 0"::"r"(p));])],
|
|
[have_asm_sse=yes])
|
|
if test x"$have_asm_sse" = x"yes" ; then
|
|
AC_DEFINE([HAVE_ASM_SSE], 1,
|
|
[Define if your compiler understands SSE assembly instructions])
|
|
fi
|
|
AC_MSG_RESULT($have_asm_sse)
|
|
if test x"$have_asm_sse" = x"no" -a x"$explicit_sse" = x"yes" ; then
|
|
AC_MSG_WARN(*** Ignoring --enable-sse due to no compiler support ***)
|
|
fi
|
|
fi
|
|
AM_CONDITIONAL(HAVE_ASM_SSE, test x"$have_asm_sse" = x"yes")
|
|
if test x"$have_asm_sse" = x"no" ; then
|
|
AC_MSG_WARN(*** All SSE dependent parts will be disabled ***)
|
|
fi
|
|
|
|
|
|
dnl SSE2 support
|
|
dnl
|
|
explicit_sse2=no
|
|
AC_ARG_ENABLE(sse2,
|
|
AC_HELP_STRING([--enable-sse2],
|
|
[enable SSE2 code portions (yes)]),
|
|
[case "${enableval}" in
|
|
yes) if test x"$have_asm_sse" = x"no"; then
|
|
AC_MSG_ERROR(--enable-sse2 requires --enable-sse)
|
|
else
|
|
use_sse2=yes
|
|
fi ;;
|
|
no) use_sse2=no ;;
|
|
*) AC_MSG_ERROR(bad value ${enableval} for --enable-sse2) ;;
|
|
esac
|
|
explicit_sse2=yes],
|
|
[if test x"$have_asm_sse" = x"yes" -a \( x"$have_x86cpu" = x"true" -o x"$have_x86_64cpu" = x"true" \) ; then
|
|
use_sse2=yes
|
|
else
|
|
use_sse2=no
|
|
fi])
|
|
have_asm_sse2="no"
|
|
if test x"$use_sse2" = x"yes" ; then
|
|
AC_MSG_CHECKING([if \$CC can handle SSE2 inline asm])
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [void *p; asm volatile("movdqa %%xmm2, %%xmm3"::"r"(p));])],
|
|
[have_asm_sse2=yes])
|
|
if test x"$have_asm_sse2" = x"yes" ; then
|
|
AC_DEFINE([HAVE_ASM_SSE2], 1,
|
|
[Define if your compiler understands SSE2 assembly instructions])
|
|
fi
|
|
AC_MSG_RESULT($have_asm_sse2)
|
|
if test x"$have_asm_sse2" = x"no" -a x"$explicit_sse2" = x"yes" ; then
|
|
AC_MSG_WARN(*** Ignoring --enable-sse2 due to no compiler support ***)
|
|
fi
|
|
fi
|
|
AM_CONDITIONAL(HAVE_ASM_SSE2, test x"$have_asm_sse2" = x"yes")
|
|
if test x"$have_asm_sse2" = x"no" ; then
|
|
AC_MSG_RESULT(*** All SSE2 dependent parts will be disabled ***)
|
|
fi
|
|
|
|
|
|
|
|
dnl ppc architectures
|
|
|
|
|
|
dnl
|
|
dnl Altivec support
|
|
dnl
|
|
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_ppccpu" = x"true" ; then
|
|
use_altivec=yes
|
|
else
|
|
use_altivec=no
|
|
fi])
|
|
dnl if test x"$use_altivec" = x"no" ; then
|
|
dnl AC_MSG_WARN(*** All Altivec dependent parts will be disabled ***)
|
|
dnl fi
|
|
|
|
|
|
AC_MSG_CHECKING([if \$CC groks AltiVec inline assembly])
|
|
have_asm_altivec=no
|
|
if test x"$use_altivec" = x"yes" ; then
|
|
AC_COMPILE_IFELSE([AC_LANG_SOURCE([], [asm volatile("vperm 0,1,2,3");])],
|
|
[have_asm_altivec=yes],
|
|
[save_CFLAGS="$CFLAGS"
|
|
CFLAGS="$CFLAGS -Wa,-m7400"
|
|
AC_COMPILE_IFELSE([AC_LANG_SOURCE([], [asm volatile("vperm 0,1,2,3");])],
|
|
[have_asm_altivec=yes])
|
|
CFLAGS="$save_CFLAGS"])
|
|
fi
|
|
AC_MSG_RESULT($have_asm_altivec)
|
|
if test x"$have_asm_altivec" = x"yes" ; then
|
|
AC_DEFINE([HAVE_ASM_ALTIVEC], 1,
|
|
[Define if your compiler understands AltiVec inline assembly])
|
|
fi
|
|
|
|
AC_MSG_CHECKING([if \$CC groks AltiVec C extensions])
|
|
have_c_altivec=no
|
|
if test x"$use_altivec" = x"yes" ; then
|
|
# Darwin test
|
|
save_CFLAGS="$CFLAGS"
|
|
CFLAGS="$CFLAGS -faltivec"
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [vec_mtvscr((vector unsigned int)(0));])],
|
|
[have_c_altivec=yes
|
|
ALTIVEC_CFLAGS="-faltivec"],
|
|
[# Linux/PPC test
|
|
CFLAGS="${save_CFLAGS} -fvec"
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [vec_mtvscr((vector unsigned int)(0));])],
|
|
[have_c_altivec=yes
|
|
ALTIVEC_CFLAGS="-fvec"])
|
|
])
|
|
CFLAGS="$save_CFLAGS"
|
|
fi
|
|
AC_MSG_RESULT($have_c_altivec)
|
|
AM_CONDITIONAL(CAN_COMPILE_C_ALTIVEC, test x"$have_c_altivec" = x"yes")
|
|
if test x"$have_c_altivec" = x"yes" ; then
|
|
AC_DEFINE([CAN_COMPILE_C_ALTIVEC], 1,
|
|
[Define if your compiler groks C AltiVec extensions.])
|
|
AC_SUBST(ALTIVEC_CFLAGS)
|
|
fi
|
|
|
|
AC_MSG_CHECKING([if linker needs -framework vecLib])
|
|
if test x"$use_altivec" = x"yes" ; then
|
|
save_LDFLAGS="$LDFLAGS"
|
|
LDFLAGS="$LDFLAGS -framework vecLib"
|
|
ld_altivec=no
|
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [ld_altivec=yes])
|
|
LDFLAGS="$save_LDFLAGS"
|
|
fi
|
|
AC_MSG_RESULT($ld_altivec)
|
|
if test x"$ld_altivec" = x"yes" ; then
|
|
LDFLAGS="$LDFLAGS -framework vecLib"
|
|
fi
|
|
|
|
|
|
dnl ---------------------------------------------------------------------
|
|
dnl
|
|
dnl pkgconfig
|
|
dnl
|
|
PKG_PROG_PKG_CONFIG([0.20])
|
|
if test -z "$PKG_CONFIG" ; then
|
|
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
|
|
fi
|
|
|
|
|
|
dnl ---------------------------------------------------------------------
|
|
dnl X11 checks
|
|
|
|
AC_PATH_XTRA
|
|
if test x"${no_x}" = x"yes" ; then
|
|
AC_MSG_WARN(can not find X11)
|
|
USE_X11=no
|
|
else
|
|
AC_DEFINE([HAVE_X11], 1, [Have X11 support])
|
|
USE_X11=yes
|
|
fi
|
|
|
|
AC_SUBST(X_CFLAGS)
|
|
AC_SUBST(X_PRE_LIBS)
|
|
AC_SUBST(X_EXTRA_LIBS)
|
|
AC_SUBST(X_LIBS)
|
|
AC_SUBST(x_includes)
|
|
AC_SUBST(x_libraries)
|
|
|
|
dnl fi
|
|
|
|
AM_CONDITIONAL(HAVE_X11, test x"${USE_X11}" = x"yes")
|
|
|
|
if test x"${USE_X11}" = x"yes" ; then
|
|
AC_CHECK_LIB(Xv, XvQueryExtension,
|
|
[have_xv=yes
|
|
AC_DEFINE([HAVE_LIBXV], 1,
|
|
[Have libxv support])],
|
|
[have_xv=no],
|
|
[$X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS])
|
|
|
|
AC_CHECK_LIB(X11, XShmQueryExtension,
|
|
[have_xshm=yes
|
|
AC_DEFINE([HAVE_X11_SHM], 1,
|
|
[Have Xshm support])],
|
|
[have_xshm=no],
|
|
[$X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS])
|
|
|
|
AC_CHECK_HEADERS([X11/Xaw/Simple.h],
|
|
[have_xaw_simple=yes
|
|
AC_DEFINE([HAVE_XAW_SIMPLE], 1,
|
|
[Have the Xaw Simple.h file support])],
|
|
[have_xaw_simple=no])
|
|
|
|
AC_CHECK_LIB(Xpm, XpmFreeAttributes,
|
|
[have_xpm=yes
|
|
AC_DEFINE([HAVE_LIBXPM], 1,
|
|
[Have libXpm support])],
|
|
[have_xpm=no],
|
|
[$X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS])
|
|
else
|
|
have_xv="no"
|
|
have_xshm="no"
|
|
have_xaw_simple="no"
|
|
have_xpm="no"
|
|
fi
|
|
|
|
AM_CONDITIONAL(HAVE_LIBXV, test x"$have_xv" = x"yes")
|
|
AM_CONDITIONAL(HAVE_X11_SHM, test x"$have_xshm" = x"yes")
|
|
AM_CONDITIONAL(HAVE_XAW_SIMPLE, test x"$have_xaw_simple" = x"yes" )
|
|
AM_CONDITIONAL(HAVE_LIBXPM, test x"$have_xpm" = x"yes")
|
|
|
|
dnl end X11 checks
|
|
dnl ---------------------------------------------------------------------
|
|
|
|
AC_CHECK_LIB(z, gzopen,
|
|
[],
|
|
[AC_MSG_ERROR([transcode depends on libz, but cannot links against libz])],
|
|
[])
|
|
|
|
AC_CHECK_LIB(m, sin,
|
|
[],
|
|
[AC_MSG_ERROR([transcode depends on libm (>= 2.0), but cannot link against libm])],
|
|
[-lc])
|
|
|
|
TC_PKG_INIT
|
|
|
|
have_libavcodec=no
|
|
have_libavformat=no
|
|
AC_MSG_CHECKING([for ffmpeg support])
|
|
AC_ARG_ENABLE(ffmpeg,
|
|
AC_HELP_STRING([--enable-ffmpeg],
|
|
[enable support for FFmpeg libraries - RECOMMENDED (yes)]),
|
|
[case "${enableval}" in
|
|
yes) ;;
|
|
no) ;;
|
|
*) AC_MSG_ERROR(bad value ${enableval} for --enable-ffmpeg) ;;
|
|
esac],
|
|
[enable_ffmpeg=yes])
|
|
if test x"$enable_ffmpeg" = x"no" ; then
|
|
AC_MSG_RESULT(disabled)
|
|
else
|
|
AC_MSG_RESULT(requested, checking for libraries)
|
|
|
|
dnl
|
|
dnl libavcodec
|
|
dnl
|
|
TC_PKG_CONFIG_CHECK(libavcodec, "$enable_ffmpeg", LIBAVCODEC, libavcodec, [http://www.ffmpeg.org/])
|
|
|
|
dnl
|
|
dnl libavformat
|
|
dnl
|
|
TC_PKG_CONFIG_CHECK(libavformat, "$enable_ffmpeg", LIBAVFORMAT, libavformat, [http://www.ffmpeg.org/])
|
|
|
|
AC_DEFINE([HAVE_FFMPEG], 1, [Have FFmpeg libraries support])
|
|
fi
|
|
|
|
TC_PKG_HAVE(libavcodec, LIBAVCODEC)
|
|
TC_PKG_HAVE(libavformat, LIBAVFORMAT)
|
|
|
|
AM_CONDITIONAL(HAVE_FFMPEG, test x"$enable_ffmpeg" = x"yes")
|
|
|
|
|
|
|
|
dnl
|
|
dnl setup layout define once
|
|
dnl
|
|
|
|
dnl
|
|
dnl libv4l toolkit
|
|
dnl
|
|
TC_PKG_CONFIG_CHECK(libv4l2, no, LIBV4L2, libv4l2,
|
|
[http://hansdegoede.livejournal.com/3636.html])
|
|
TC_PKG_CONFIG_CHECK(libv4lconvert, no, LIBV4LCONVERT,
|
|
libv4lconvert,
|
|
[http://hansdegoede.livejournal.com/3636.html])
|
|
TC_PKG_HAVE(libv4l2, LIBV4L2)
|
|
TC_PKG_HAVE(libv4lconvert, LIBV4LCONVERT)
|
|
|
|
dnl
|
|
dnl libmpeg2
|
|
dnl
|
|
TC_PKG_CONFIG_CHECK(libmpeg2, no, LIBMPEG2, libmpeg2,
|
|
[http://libmpeg2.sf.net/])
|
|
TC_PKG_CONFIG_CHECK(libmpeg2convert, no, LIBMPEG2CONVERT,
|
|
libmpeg2convert, [http://libmpeg2.sf.net/])
|
|
TC_PKG_HAVE(libmpeg2, LIBMPEG2)
|
|
TC_PKG_HAVE(libmpeg2convert, LIBMPEG2CONVERT)
|
|
|
|
dnl
|
|
dnl build options
|
|
dnl
|
|
|
|
dnl
|
|
dnl support for new/experimental features (1.1.0: NMS)
|
|
dnl
|
|
AC_MSG_CHECKING([enable new or experimental components])
|
|
AC_ARG_ENABLE(experimental,
|
|
AC_HELP_STRING([--enable-experimental],
|
|
[enable new, experimental or even incomplete transcode components (no)]),
|
|
[case "${enableval}" in
|
|
yes) ;;
|
|
no) ;;
|
|
*) AC_MSG_ERROR(bad value ${enableval} for --enable-experimental) ;;
|
|
esac],
|
|
[enable_experimental=no])
|
|
AC_MSG_RESULT($enable_experimental)
|
|
if test x"$enable_experimental" = x"yes" ; then
|
|
AC_DEFINE([ENABLE_EXPERIMENTAL], 1, [Enable experimental components])
|
|
fi
|
|
AM_CONDITIONAL(ENABLE_EXPERIMENTAL, test x"$enable_experimental" = x"yes")
|
|
|
|
dnl
|
|
dnl support for deprecated features (1.1.0: tcrequant)
|
|
dnl
|
|
AC_MSG_CHECKING([enable deprecated components])
|
|
AC_ARG_ENABLE(deprecated,
|
|
AC_HELP_STRING([--enable-deprecated],
|
|
[enable deprecated or even broken transcode components (no)]),
|
|
[case "${enableval}" in
|
|
yes) ;;
|
|
no) ;;
|
|
*) AC_MSG_ERROR(bad value ${enableval} for --enable-deprecated) ;;
|
|
esac],
|
|
[enable_deprecated=no])
|
|
AC_MSG_RESULT($enable_deprecated)
|
|
if test x"$enable_deprecated" = x"yes" ; then
|
|
AC_DEFINE([ENABLE_DEPRECATED], 1, [Enable deprecated components])
|
|
fi
|
|
AM_CONDITIONAL(ENABLE_DEPRECATED, test x"$enable_deprecated" = x"yes")
|
|
|
|
dnl
|
|
dnl static import frame buffer
|
|
dnl
|
|
AC_MSG_CHECKING([for internal static framebuffer support])
|
|
AC_ARG_ENABLE(statbuffer,
|
|
AC_HELP_STRING([--enable-statbuffer],
|
|
[enable internal static framebuffer support; recommended (yes)]),
|
|
[case "${enableval}" in
|
|
yes) ;;
|
|
no) ;;
|
|
*) AC_MSG_ERROR(bad value ${enableval} for --enable-statbuffer) ;;
|
|
esac],
|
|
[enable_statbuffer=yes])
|
|
AC_MSG_RESULT($enable_statbuffer)
|
|
if test x"$enable_statbuffer" = x"yes" ; then
|
|
AC_DEFINE([STATBUFFER], 1, [Use the static buffers])
|
|
fi
|
|
|
|
|
|
dnl
|
|
dnl hardware/OS dependent modules
|
|
dnl
|
|
|
|
dnl
|
|
dnl v4l
|
|
dnl
|
|
TC_CHECK_V4L(AC_DEFINE([HAVE_V4L], 1, [Have video4linux(2)]))
|
|
AM_CONDITIONAL(HAVE_V4L, test x"$have_v4l" = x"yes")
|
|
AM_CONDITIONAL(HAVE_V4L2, test x"$have_v4l2" = x"yes")
|
|
|
|
dnl
|
|
dnl bktr
|
|
dnl
|
|
TC_CHECK_BKTR(AC_DEFINE([HAVE_BKTR], 1, [Have bktr(4)]))
|
|
AM_CONDITIONAL(HAVE_BKTR, test x"$have_bktr" = x"yes")
|
|
|
|
dnl
|
|
dnl sunau
|
|
dnl
|
|
TC_CHECK_SUNAU(AC_DEFINE([HAVE_SUNAU], 1, [Have Sun style audio(4)]))
|
|
AM_CONDITIONAL(HAVE_SUNAU, test x"$have_sunau" = x"yes")
|
|
|
|
dnl
|
|
dnl OSS
|
|
dnl
|
|
TC_CHECK_OSS(AC_DEFINE([HAVE_OSS], 1, [Have OSS audio]))
|
|
AM_CONDITIONAL(HAVE_OSS, test x"$have_oss" = x"yes")
|
|
|
|
dnl
|
|
dnl ALSA
|
|
dnl
|
|
TC_CHECK_ALSA(AC_DEFINE([HAVE_ALSA], 1, [Have ALSA audio]))
|
|
AM_CONDITIONAL(HAVE_ALSA, test x"$have_alsa" = x"yes")
|
|
|
|
dnl
|
|
dnl optional 3rd party package support
|
|
dnl
|
|
|
|
dnl
|
|
dnl Divx4linux
|
|
dnl
|
|
AC_CHECK_HEADERS([encore2.h])
|
|
|
|
dnl
|
|
dnl libpostproc
|
|
dnl
|
|
TC_PKG_CONFIG_CHECK(libpostproc, no, LIBPOSTPROC, libpostproc, [http://ffmpeg.mplayerhq.hu/])
|
|
TC_PKG_HAVE(libpostproc, LIBPOSTPROC)
|
|
|
|
dnl
|
|
dnl freetype2
|
|
dnl
|
|
TC_PKG_CONFIG_CHECK(freetype2, no, FREETYPE2, freetype2, [http://www.freetype.org/])
|
|
TC_PKG_HAVE(freetype2, FREETYPE2)
|
|
|
|
dnl
|
|
dnl lame
|
|
dnl
|
|
TC_PKG_CHECK(lame, yes, LAME, no, none, mp3lame, lame_init, lame,
|
|
[http://www.mp3dev.org/])
|
|
if test x"$have_lame" = x"yes" ; then
|
|
lame_inc="no"
|
|
save_CPPFLAGS="$CPPFLAGS"
|
|
CPPFLAGS="$CPPFLAGS $lame_ii"
|
|
AC_CHECK_HEADER([lame/lame.h],
|
|
[AC_DEFINE([HAVE_LAME_INC], [1],
|
|
[Have Lame includes in separate path]) lame_inc=yes])
|
|
if test x"$lame_inc" = x"no" ; then
|
|
AC_CHECK_HEADER([lame.h], lame_inc="yes")
|
|
fi
|
|
if test x"$lame_inc" = x"no" ; then
|
|
have_lame="no"
|
|
TC_PKG_ERROR(lame, lame.h, yes, lame, [http://www.mp3dev.org/],
|
|
[cannot compile lame.h])
|
|
else
|
|
LAME_CFLAGS="$lame_ii"
|
|
fi
|
|
CPPFLAGS="$save_CPPFLAGS"
|
|
|
|
AC_MSG_CHECKING([lame version])
|
|
ac_save_CFLAGS="$CFLAGS"
|
|
ac_save_LIBS="$LIBS"
|
|
CFLAGS="$CFLAGS $LAME_CFLAGS"
|
|
LIBS="$LIBS $LAME_LIBS"
|
|
AC_RUN_IFELSE([AC_LANG_SOURCE([[
|
|
#include <stdio.h>
|
|
|
|
#ifdef HAVE_LAME_INC
|
|
#include <lame/lame.h>
|
|
#else
|
|
#include <lame.h>
|
|
#endif
|
|
|
|
int main () {
|
|
lame_version_t lv;
|
|
get_lame_version_numerical(&lv);
|
|
if(lv.alpha || lv.beta) lv.minor--;
|
|
printf("%d%d\n", lv.major, lv.minor);
|
|
return 0;
|
|
}
|
|
]])],
|
|
[lame_version="`./conftest$ac_exeext`"],
|
|
[AC_MSG_RESULT([failed])
|
|
TC_PKG_ERROR(lame, lame.h, yes, lame, [http://www.mp3dev.org/],
|
|
[cannot compile and run a test program])],,
|
|
[AC_MSG_RESULT([cross compiling; assumed OK...])])
|
|
CFLAGS="$ac_save_CFLAGS"
|
|
LIBS="$ac_save_LIBS"
|
|
|
|
if test 393 -ge "$lame_version" ; then
|
|
have_lame="no"
|
|
TC_PKG_ERROR(lame, lame.h, yes, lame, [http://www.mp3dev.org/],
|
|
[lame version < 3.93])
|
|
fi
|
|
fi
|
|
TC_PKG_HAVE(lame, LAME)
|
|
|
|
dnl
|
|
dnl xvid
|
|
dnl
|
|
TC_PKG_CHECK(xvid, no, xvid, no, xvid.h, xvidcore, xvid_global, xvid,
|
|
[http://www.xvid.org/])
|
|
if test x"$have_xvid" = x"yes" ; then
|
|
AC_MSG_CHECKING([xvid version >= 1.0])
|
|
AC_RUN_IFELSE([AC_LANG_SOURCE([[
|
|
#include <stdio.h>
|
|
#include <xvid.h>
|
|
|
|
int main() {
|
|
printf("%s\n", (XVID_API >= XVID_MAKE_API(4, 0)) ?"yes" :"no");
|
|
return 0;
|
|
}
|
|
]])],
|
|
[xvid_version_ok="`./conftest$ac_exeext`"],
|
|
[AC_MSG_RESULT([failed])
|
|
TC_PKG_ERROR(xvid, xvid.h, yes, xvid, [http://www.xvid.org/],
|
|
[cannot compile and run a test program])],,
|
|
[AC_MSG_RESULT([cross compiling; assumed OK...])])
|
|
if test x"$xvid_version_ok" = x"yes"; then
|
|
XVID_LIBS="-lxvidcore"
|
|
else
|
|
have_xvid="no"
|
|
TC_PKG_ERROR(xvid, xvid.h, yes, xvid, [http://www.xvid.org/],
|
|
[XviD version < 1.0])
|
|
fi
|
|
fi
|
|
TC_PKG_HAVE(xvid, XVID)
|
|
|
|
dnl
|
|
dnl x264
|
|
dnl
|
|
TC_PKG_CONFIG_CHECK(x264, no, X264, x264, [http://developers.videolan.org/x264.html])
|
|
if test x"$have_x264" = x"yes" ; then
|
|
AC_MSG_CHECKING([x264 version])
|
|
AC_RUN_IFELSE([AC_LANG_SOURCE([[
|
|
#include <stdio.h>
|
|
#include <stdint.h> /* required by x264.h */
|
|
#include <x264.h>
|
|
|
|
int main() {
|
|
printf("%d\n", X264_BUILD);
|
|
return 0;
|
|
}
|
|
]])],
|
|
[x264_version="`./conftest$ac_exeext`"],
|
|
[AC_MSG_RESULT([failed])
|
|
TC_PKG_ERROR(x264, x264.h, yes, x264,
|
|
[http://developers.videolan.org/x264.html],
|
|
[cannot compile and run a test program])],
|
|
[AC_MSG_RESULT([cross compiling; assumed OK...])
|
|
x264_version=54])
|
|
if test 54 -gt "$x264_version"; then
|
|
have_x264="no"
|
|
TC_PKG_ERROR(x264, x264.h, yes, x264,
|
|
[http://developers.videolan.org/x264.html],
|
|
[x264 version too old (must be at least 54)])
|
|
fi
|
|
fi
|
|
TC_PKG_HAVE(x264, X264)
|
|
|
|
dnl
|
|
dnl ogg
|
|
dnl
|
|
TC_PKG_CONFIG_CHECK(ogg, no, OGG, ogg, [http://www.xiph.org/ogg/])
|
|
TC_PKG_HAVE(ogg, OGG)
|
|
|
|
dnl
|
|
dnl vorbis
|
|
dnl
|
|
TC_PKG_CONFIG_CHECK(vorbis, no, VORBIS, vorbis, [http://www.xiph.org/ogg/vorbis/])
|
|
TC_PKG_HAVE(vorbis, VORBIS)
|
|
|
|
dnl
|
|
dnl theora
|
|
dnl
|
|
TC_PKG_CONFIG_CHECK(theora, no, THEORA, theora, [http://www.theora.org/])
|
|
TC_PKG_HAVE(theora, THEORA)
|
|
|
|
dnl
|
|
dnl libdvdread
|
|
dnl
|
|
LIBDVDREAD_EXTRA_LIBS="$LIBDVDREAD_EXTRA_LIBS -lm"
|
|
TC_PKG_CHECK(libdvdread, yes, LIBDVDREAD, no, none, dvdread, DVDOpen,
|
|
libdvdread, [http://www.dtek.chalmers.se/groups/dvd/downloads.shtml])
|
|
if test x"$have_libdvdread" = x"yes" ; then
|
|
libdvdread_inc="no"
|
|
save_CPPFLAGS="$CPPFLAGS"
|
|
CPPFLAGS="$CPPFLAGS $libdvdread_ii"
|
|
AC_CHECK_HEADER([dvdread/dvd_reader.h],
|
|
[AC_DEFINE([HAVE_LIBDVDREAD_INC], [1],
|
|
[have libdvdread includes in separate path])
|
|
libdvdread_inc="yes"])
|
|
if test x"$libdvdread_inc" = x"no" ; then
|
|
AC_CHECK_HEADER([dvd_reader.h],
|
|
[libdvdread_inc="yes"])
|
|
fi
|
|
CPPFLAGS="$save_CPPFLAGS"
|
|
if test x"$libdvdread_inc" = x"no" ; then
|
|
have_libdvdread="no"
|
|
TC_PKG_ERROR(libdvdread, dvd_reader.h, yes, libdvdread,
|
|
[http://www.dtek.chalmers.se/groups/dvd/downloads.shtml],
|
|
[cannot compile dvd_reader.h])
|
|
else
|
|
LIBDVDREAD_CFLAGS="$libdvdread_ii"
|
|
fi
|
|
fi
|
|
TC_PKG_HAVE(libdvdread, LIBDVDREAD)
|
|
|
|
dnl
|
|
dnl PVM3
|
|
dnl
|
|
PVM3_EXTRA_LIBS="$PVM3_EXTRA_LIBS -lgpvm3"
|
|
TC_PKG_CHECK(pvm3, no, PVM3, no, pvm3.h, pvm3, pvm_initsend,
|
|
pvm3, [])
|
|
if test x"$have_pvm3" = x"yes" ; then
|
|
save_CPPFLAGS="$CPPFLAGS"
|
|
CPPFLAGS="$CPPFLAGS $PVM3_CFLAGS"
|
|
AC_RUN_IFELSE([AC_LANG_SOURCE([[
|
|
#include <stdio.h>
|
|
#include <pvm3.h>
|
|
int main ()
|
|
{
|
|
if ((PVM_MAJOR_VERSION == 3) && (PVM_MINOR_VERSION < 4))
|
|
{
|
|
printf("You need to upgrade pvm3 to version > 3.4\n");
|
|
return(1);
|
|
}
|
|
if (PVM_MAJOR_VERSION < 3)
|
|
{
|
|
printf("You need to upgrade pvm3 to version > 3.4\n");
|
|
return(1);
|
|
}
|
|
return 0;
|
|
}
|
|
]])],
|
|
[have_pvm3="yes"],
|
|
[have_pvm3="no"],
|
|
[AC_MSG_RESULT([cross compiling; assumed OK...])
|
|
have_pvm3="yes"])
|
|
CPPFLAGS="$save_CPPFLAGS"
|
|
# also include the in-tree pvm3 headers
|
|
PVM3_CFLAGS="$PVM3_CFLAGS -I\$(top_srcdir)/pvm3"
|
|
PVM3_PVMGS="$w_pvm3_l/pvmgs"
|
|
fi
|
|
AC_SUBST(PVM3_PVMGS)
|
|
TC_PKG_HAVE(pvm3, PVM3)
|
|
|
|
dnl
|
|
dnl libdv
|
|
dnl
|
|
TC_PKG_CONFIG_CHECK(libdv, no, LIBDV, libdv, [http://libdv.sourceforge.net/])
|
|
TC_PKG_HAVE(libdv, LIBDV)
|
|
|
|
dnl
|
|
dnl libquicktime
|
|
dnl
|
|
TC_PKG_CONFIG_CHECK(libquicktime, no, LIBQUICKTIME, libquicktime,
|
|
[http://libquicktime.sourceforge.net/])
|
|
if test x"$have_libquicktime" = x"yes" ; then
|
|
AC_CHECK_LIB(quicktime, lqt_encode_video,
|
|
[AC_DEFINE([LIBQUICKTIME_000904], [1], [Have libquicktime 1.0.0 or newer])],
|
|
[],
|
|
[$LIBQUICKTIME_LIBS $LIBQUICKTIME_EXTRA_LIBS])
|
|
fi
|
|
TC_PKG_HAVE(libquicktime, LIBQUICKTIME)
|
|
|
|
dnl
|
|
dnl LZO
|
|
dnl
|
|
TC_PKG_CHECK(lzo, no, LZO, no, [lzo/lzo1x.h], lzo2, lzo_version, lzo,
|
|
[http://www.oberhumer.com/opensource/lzo/])
|
|
TC_PKG_HAVE(lzo, LZO)
|
|
|
|
dnl
|
|
dnl A52
|
|
dnl
|
|
A52_EXTRA_LIBS="$A52_EXTRA_LIBS -lm"
|
|
TC_PKG_CHECK(a52, no, A52, no, [a52dec/a52.h], a52, a52_init, liba52,
|
|
[http://liba52.sourceforge.net/])
|
|
TC_PKG_HAVE(a52, A52)
|
|
if test x"$have_a52" = x"yes" ; then
|
|
enable_a52_default_decoder="yes"
|
|
else
|
|
enable_a52_default_decoder="no"
|
|
fi
|
|
|
|
dnl
|
|
dnl FAAC
|
|
dnl
|
|
TC_PKG_CHECK(faac, no, FAAC, no, [faac.h], faac, faacEncGetVersion, no,
|
|
[http://www.audiocoding.com/])
|
|
TC_PKG_HAVE(faac, FAAC)
|
|
|
|
dnl
|
|
dnl libxml2
|
|
dnl
|
|
TC_PKG_CONFIG_CHECK(libxml2, no, LIBXML2, libxml-2.0, [http://xmlsoft.org])
|
|
TC_PKG_HAVE(libxml2, LIBXML2)
|
|
|
|
dnl
|
|
dnl ibp, lors and libxio -- must be after libxml2
|
|
dnl
|
|
TC_PATH_IBP(AC_DEFINE([HAVE_IBP], 1, [ibp and lors support]))
|
|
AM_CONDITIONAL(HAVE_IBP, test x"$have_ibp" = x"yes")
|
|
|
|
XIO_CFLAGS="-I\$(top_srcdir)/libtc"
|
|
if test x"$have_ibp" = x"yes" ; then
|
|
XIO_LIBS="\$(top_builddir)/libtc/libtc.la $IBP_LIBS $LIBXML2_LIBS"
|
|
else
|
|
XIO_LIBS=""
|
|
fi
|
|
AC_SUBST(XIO_CFLAGS)
|
|
AC_SUBST(XIO_LIBS)
|
|
|
|
dnl
|
|
dnl mjpegtools (actually only YUV4MPEG)
|
|
dnl
|
|
TC_PKG_CONFIG_CHECK(mjpegtools, no, MJPEGTOOLS, mjpegtools,
|
|
[http://mjpeg.sourceforge.net/])
|
|
if test x"$have_mjpegtools" = x"yes" ; then
|
|
# check if mjpegtools version >= Mar 31 2004
|
|
save_CFLAGS="$CFLAGS"
|
|
save_LIBS="$LIBS"
|
|
CFLAGS="$CFLAGS $MJPEGTOOLS_CFLAGS"
|
|
LIBS="$LIBS $MJPEGTOOLS_LIBS"
|
|
AC_LINK_IFELSE([AC_LANG_PROGRAM([
|
|
#if defined(HAVE_MJPEGTOOLS_INC)
|
|
#include "yuv4mpeg.h"
|
|
#include "mpegconsts.h"
|
|
#else
|
|
#include "mjpegtools/yuv4mpeg.h"
|
|
#include "mjpegtools/mpegconsts.h"
|
|
#endif
|
|
],
|
|
[y4m_write_frame_header(1, NULL, NULL)])],
|
|
[AC_DEFINE([USE_NEW_MJPEGTOOLS_CODE], [1],
|
|
[using mjpegtools post Mar 31 2004])])
|
|
CFLAGS="$save_CFLAGS"
|
|
LIBS="$save_LIBS"
|
|
fi
|
|
TC_PKG_HAVE(mjpegtools, MJPEGTOOLS)
|
|
|
|
dnl
|
|
dnl SDL
|
|
dnl
|
|
TC_PKG_CONFIG_CHECK(sdl, no, SDL, sdl, [http://www.libsdl.org/])
|
|
if test x"$have_sdl" = x"yes" ; then
|
|
sdl_major_version=1
|
|
sdl_minor_version=2
|
|
sdl_micro_version=5
|
|
save_CPPFLAGS="$CPPFLAGS"
|
|
CPPFLAGS="$CPPFLAGS $SDL_CFLAGS"
|
|
AC_RUN_IFELSE([AC_LANG_SOURCE([[
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include "SDL.h"
|
|
int main (int argc, char *argv[])
|
|
{
|
|
if ( (SDL_MAJOR_VERSION > $sdl_major_version) ||
|
|
((SDL_MAJOR_VERSION == $sdl_major_version) &&
|
|
(SDL_MINOR_VERSION > $sdl_minor_version)) ||
|
|
((SDL_MAJOR_VERSION == $sdl_major_version) &&
|
|
(SDL_MINOR_VERSION == $sdl_minor_version) &&
|
|
(SDL_PATCHLEVEL >= $sdl_micro_version)) )
|
|
{
|
|
return 0;
|
|
}
|
|
else
|
|
{
|
|
fprintf(stderr, "SDL version %d.%d.%d is too old!\n",
|
|
SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_PATCHLEVEL);
|
|
return 1;
|
|
}
|
|
}
|
|
]])],
|
|
[have_sdl="yes"],
|
|
[have_sdl="no"],
|
|
[AC_MSG_RESULT([cross compiling; assumed OK...])
|
|
have_sdl="yes"])
|
|
CPPFLAGS="$save_CPPFLAGS"
|
|
fi
|
|
TC_PKG_HAVE(sdl, SDL)
|
|
|
|
dnl
|
|
dnl ImageMagick
|
|
dnl
|
|
IMAGEMAGICK_EXTRA_LIBS="$IMAGEMAGICK_EXTRA_LIBS $($PKG_CONFIG --libs ImageMagick)"
|
|
TC_PKG_CHECK(imagemagick, no, IMAGEMAGICK, no, [magick/api.h],
|
|
none, InitializeMagick, Wand, [http://www.imagemagick.org/])
|
|
TC_PKG_HAVE(imagemagick, IMAGEMAGICK)
|
|
if test x"$have_imagemagick" = x"yes" ; then
|
|
SAVE_CPPFLAGS="$CPPFLAGS"
|
|
CPPFLAGS="$IMAGEMAGICK_CFLAGS $CPPFLAGS"
|
|
AC_CHECK_HEADER([wand/magick-wand.h],
|
|
[AC_DEFINE([HAVE_BROKEN_WAND], [1], ["have old wand header"])])
|
|
CPPFLAGS="$SAVE_CPPFLAGS"
|
|
fi
|
|
|
|
dnl
|
|
dnl libjpegmmx or libjpeg
|
|
dnl
|
|
TC_PKG_CHECK(libjpegmmx, no, LIBJPEGMMX, no, jpeglib.h, jpeg-mmx,
|
|
jpeg_CreateCompress, jpeg-mmx, [http://sourceforge.net/projects/mjpeg/])
|
|
if test x"$have_libjpegmmx" = x"no" ; then
|
|
TC_PKG_CHECK(libjpeg, yes, LIBJPEG, no, jpeglib.h, jpeg,
|
|
jpeg_CreateCompress, jpeg, [ftp://ftp.uu.net/graphics/jpeg/])
|
|
else
|
|
have_libjpeg="yes"
|
|
LIBJPEG_CFLAGS="$LIBJPEGMMX_CFLAGS"
|
|
LIBJPEG_LIBS="$LIBJPEGMMX_LIBS"
|
|
fi
|
|
TC_PKG_HAVE(libjpeg, LIBJPEG)
|
|
|
|
|
|
dnl
|
|
dnl bsdav
|
|
dnl
|
|
TC_PKG_CHECK(bsdav, no, BSDAV, no, bsdav.h, bsdav,
|
|
bsdav_read_stream_header, bsdav, [http://www.jakemsr.com/bsdav/])
|
|
TC_PKG_HAVE(bsdav, BSDAV)
|
|
|
|
|
|
dnl
|
|
dnl iconv
|
|
dnl
|
|
TC_PKG_CHECK(iconv, yes, ICONV, no, iconv.h, none, none, libiconv,
|
|
[http://www.gnu.org/software/libiconv/])
|
|
if test x"$have_iconv" = x"yes" ; then
|
|
save_LDFLAGS="$LDFLAGS"
|
|
LDFLAGS="$LDFLAGS $iconv_ll"
|
|
AC_CHECK_LIB(iconv, iconv_open,
|
|
[],
|
|
[have_iconv="no"],
|
|
[$ICONV_EXTRA_LIBS])
|
|
LDFLAGS="$save_LDFLAGS"
|
|
if test x"$have_iconv" = x"no" ; then
|
|
save_LDFLAGS="$LDFLAGS"
|
|
LDFLAGS="$LDFLAGS $iconv_ll"
|
|
AC_CHECK_LIB(iconv, libiconv_open,
|
|
[have_iconv="yes"],
|
|
[have_iconv="no"],
|
|
[$ICONV_EXTRA_LIBS])
|
|
LDFLAGS="$save_LDFLAGS"
|
|
fi
|
|
# see if iconv_open is in (g)libc
|
|
have_libc_iconv="no"
|
|
if test x"$have_iconv" = x"no" ; then
|
|
save_LDFLAGS="$LDFLAGS"
|
|
LDFLAGS="$LDFLAGS $iconv_ll"
|
|
AC_CHECK_LIB(c, iconv_open,
|
|
[have_iconv="yes" have_libc_iconv="yes"],
|
|
[have_iconv="no"],
|
|
[$ICONV_EXTRA_LIBS])
|
|
LDFLAGS="$save_LDFLAGS"
|
|
fi
|
|
if test x"$have_iconv" = x"yes" ; then
|
|
if test x"$have_libc_iconv" != x"yes" ; then
|
|
ICONV_LIBS="$iconv_ll -liconv $ICONV_EXTRA_LIBS"
|
|
fi
|
|
else
|
|
TC_PKG_ERROR(iconv, [iconv_open()], yes, libiconv,
|
|
[http://www.gnu.org/software/libiconv/],
|
|
[cannot find either iconv_open() or libiconv_open()])
|
|
fi
|
|
fi
|
|
TC_PKG_HAVE(iconv, ICONV)
|
|
|
|
|
|
dnl
|
|
dnl Other modules
|
|
dnl
|
|
|
|
dnl
|
|
dnl import_pv3
|
|
dnl
|
|
AC_MSG_CHECKING([for PV3 support])
|
|
AC_ARG_ENABLE(pv3,
|
|
AC_HELP_STRING([--enable-pv3],
|
|
[enable PV3 support (no)]),
|
|
[case "${enableval}" in
|
|
yes) if test true != "$have_x86cpu" -o yes != "$is_linux" -o yes != "$ac_cv_func_mmap"; then
|
|
AC_MSG_ERROR(PV3 not supported on this platform)
|
|
fi
|
|
;;
|
|
no) ;;
|
|
*) AC_MSG_ERROR(bad value ${enableval} for --enable-pv3) ;;
|
|
esac],
|
|
[enable_pv3=no])
|
|
AC_MSG_RESULT($enable_pv3)
|
|
AM_CONDITIONAL(ENABLE_PV3, test "yes" = "$enable_pv3")
|
|
|
|
dnl
|
|
dnl import_nuv
|
|
dnl
|
|
AC_MSG_CHECKING([for NuppelVideo support])
|
|
AC_ARG_ENABLE(nuv,
|
|
AC_HELP_STRING([--enable-nuv],
|
|
[enable NuppelVideo support (no)]),
|
|
[case "${enableval}" in
|
|
yes) if test yes != "$have_lzo"; then
|
|
AC_MSG_ERROR([liblzo2 is required for NuppelVideo support, try --enable-lzo])
|
|
fi
|
|
if test true == "$have_x86_64cpu"; then
|
|
AC_MSG_WARN([NuppelVideo support on x86_64 platform is ***EXPERIMENTAL***])
|
|
elif test true != "$have_x86cpu"; then
|
|
AC_MSG_ERROR([NuppelVideo is supported only on x86 and x86_64 platforms yet])
|
|
fi
|
|
;;
|
|
no) ;;
|
|
*) AC_MSG_ERROR(bad value ${enableval} for --enable-nuv) ;;
|
|
esac],
|
|
[enable_nuv=no])
|
|
AC_MSG_RESULT($enable_nuv)
|
|
AM_CONDITIONAL(ENABLE_NUV, test "yes" = "$enable_nuv")
|
|
|
|
|
|
dnl
|
|
dnl The following come with transcode
|
|
dnl
|
|
|
|
dnl
|
|
dnl libtc
|
|
dnl
|
|
LIBTC_LIBS="\$(top_builddir)/libtc/libtc.la"
|
|
AC_SUBST(LIBTC_LIBS)
|
|
|
|
dnl
|
|
dnl libtcaudio
|
|
dnl
|
|
LIBTCAUDIO_LIBS="\$(top_builddir)/libtcaudio/libtcaudio.la"
|
|
AC_SUBST(LIBTCAUDIO_LIBS)
|
|
|
|
dnl
|
|
dnl libtcvideo
|
|
dnl
|
|
LIBTCVIDEO_LIBS="\$(top_builddir)/libtcvideo/libtcvideo.la"
|
|
AC_SUBST(LIBTCVIDEO_LIBS)
|
|
|
|
dnl
|
|
dnl avilib
|
|
dnl
|
|
AVILIB_LIBS="\$(top_builddir)/avilib/libavi.la"
|
|
AC_SUBST(AVILIB_LIBS)
|
|
|
|
dnl
|
|
dnl wavlib
|
|
dnl
|
|
WAVLIB_LIBS="\$(top_builddir)/avilib/libwav.la"
|
|
AC_SUBST(WAVLIB_LIBS)
|
|
|
|
|
|
dnl
|
|
dnl aclib
|
|
dnl
|
|
AC_ARG_ENABLE([x86-textrels],
|
|
AC_HELP_STRING([--enable-x86-textrels], [enable x86-32 optimizations which use text relocations (yes)]),
|
|
[if test "no" = "$enableval"; then
|
|
AC_DEFINE([ACLIB_DISABLE_X86_TEXTRELS], [1], [Disable x86-32 optimizations in aclib that require text relocations])
|
|
fi])
|
|
ACLIB_LIBS="\$(top_builddir)/aclib/libac.la"
|
|
AC_SUBST(ACLIB_LIBS)
|
|
|
|
|
|
|
|
dnl
|
|
dnl warning flags; always add -Wall -Wstrict-prototypes -Wmissing-prototypes
|
|
dnl note that autoconf uses an unprototyped main(), so we disable prototype
|
|
dnl warnings when checking whether -Werror works
|
|
dnl
|
|
AC_ARG_ENABLE([warnings-as-errors],
|
|
AC_HELP_STRING([--enable-warnings-as-errors], [treat warnings as errors]))
|
|
dnl GCC 4.2.x spits out bogus warnings when un-consting arguments in a
|
|
dnl function call (GCC bug 29478), so don't use -Werror there
|
|
if test x"$GCC" = x"yes" && test -n "`$CC -v 2>&1 | tail -1 | grep '4\.2\.'`"; then
|
|
AC_MSG_WARN([GCC 4.2.x produces spurious warnings, -Werror disabled])
|
|
elif test x"$GCC" = x"yes" ; then
|
|
OPT_CFLAGS="-Wall -Wstrict-prototypes -Wmissing-prototypes"
|
|
TMP_CFLAGS=""
|
|
TC_TRY_CFLAGS([$OPT_CFLAGS $CFLAGS],[TMP_CFLAGS="$OPT_CFLAGS "])
|
|
dnl Don't assign this yet, as -Wall would counteract the -Wno-XXX options
|
|
if test x"$enable_warnings_as_errors" = x"yes" ; then
|
|
dnl compiler warnings treated as errors
|
|
dnl we don't care about pointer sign warnings, and empty format
|
|
dnl strings are occasionally useful, so disable those warnings
|
|
OPT_CFLAGS="-Werror -Wno-pointer-sign -Wno-format-zero-length $CFLAGS"
|
|
TC_TRY_CFLAGS([$OPT_CFLAGS -Wno-strict-prototypes -Wno-missing-prototypes],[CFLAGS=$OPT_CFLAGS])
|
|
fi
|
|
CFLAGS="$TMP_CFLAGS$CFLAGS"
|
|
fi
|
|
AC_SUBST(CFLAGS)
|
|
|
|
dnl import/export module path
|
|
dnl
|
|
MOD_PATH="\${libdir}/transcode"
|
|
AC_ARG_WITH(mod-path,
|
|
AC_HELP_STRING([--with-mod-path],
|
|
[where export/import modules are installed (${libdir}/transcode)]),
|
|
MOD_PATH=$withval)
|
|
AC_SUBST(MOD_PATH)
|
|
|
|
dnl export profiles data path
|
|
dnl
|
|
PROF_PATH="\${datadir}/transcode/profiles"
|
|
AC_ARG_WITH(prof-path,
|
|
AC_HELP_STRING([--with-prof-path],
|
|
[where export profiles data are installed (${datadir}/transcode/profiles)]),
|
|
PROF_PATH=$withval)
|
|
AC_SUBST(PROF_PATH)
|
|
|
|
|
|
X_CFLAGS=`echo $X_CFLAGS | sed -e 's/ */ /g'`
|
|
X_PRE_LIBS=`echo $X_PRE_LIBS | sed -e 's/ */ /g'`
|
|
X_LIBS=`echo $X_LIBS | sed -e 's/ */ /g'`
|
|
X_EXTRA_LIBS=`echo $X_EXTRA_LIBS | sed -e 's/ */ /g'`
|
|
|
|
CC=`echo $CC | sed -e 's/ */ /g'`
|
|
CFLAGS=`echo $CFLAGS | sed -e 's/ */ /g'`
|
|
CPPFLAGS=`echo $CPPFLAGS | sed -e 's/ */ /g'`
|
|
CXXFLAGS=`echo $CXXFLAGS | sed -e 's/ */ /g'`
|
|
LDFLAGS=`echo $LDFLAGS | sed -e 's/ */ /g'`
|
|
|
|
AC_SUBST(CFLAGS)
|
|
AC_SUBST(CC)
|
|
AC_SUBST(LDFLAGS)
|
|
AC_SUBST(SIMD_FLAGS)
|
|
|
|
AC_CONFIG_FILES([
|
|
Makefile
|
|
aclib/Makefile
|
|
avilib/Makefile
|
|
docs/Makefile
|
|
docs/html/Makefile
|
|
docs/man/Makefile
|
|
docs/pvm3/Makefile
|
|
docs/tech/Makefile
|
|
docs/tech/html/Makefile
|
|
encode/Makefile
|
|
export/Makefile
|
|
filter/Makefile
|
|
filter/divxkey/Makefile
|
|
filter/extsub/Makefile
|
|
filter/preview/Makefile
|
|
filter/subtitler/Makefile
|
|
filter/tomsmocomp/Makefile
|
|
filter/yuvdenoise/Makefile
|
|
filter/stabilize/Makefile
|
|
import/Makefile
|
|
import/framegen/Makefile
|
|
import/nuv/Makefile
|
|
import/v4l/Makefile
|
|
multiplex/Makefile
|
|
libdldarwin/Makefile
|
|
libtc/Makefile
|
|
libtcaudio/Makefile
|
|
libtcvideo/Makefile
|
|
pvm3/Makefile
|
|
src/Makefile
|
|
testsuite/Makefile
|
|
tools/Makefile
|
|
transcode.spec
|
|
filter/parse_csv.awk
|
|
filter/filter_list.awk
|
|
])
|
|
AC_OUTPUT
|
|
|
|
|
|
AC_MSG_RESULT([
|
|
----------------------------------------
|
|
Summary for transcode $VERSION:
|
|
----------------------------------------
|
|
|
|
core options
|
|
----------------------------------------
|
|
enable experimental code $enable_experimental
|
|
enable deprecated code $enable_deprecated
|
|
static AV-frame buffering $enable_statbuffer
|
|
A52 default decoder $enable_a52_default_decoder
|
|
FFmpeg support $enable_ffmpeg
|
|
|
|
hardware support
|
|
----------------------------------------
|
|
v4l (legacy) $have_v4l
|
|
v4l2 $have_v4l2
|
|
ALSA $have_alsa
|
|
OSS $have_oss
|
|
bktr $have_bktr
|
|
sunau $have_sunau
|
|
|
|
optional module support
|
|
----------------------------------------
|
|
PV3 $enable_pv3
|
|
NuppelVideo $enable_nuv
|
|
|
|
optional package support
|
|
----------------------------------------
|
|
IBP (libxio) $have_ibp
|
|
X11 $USE_X11
|
|
Xv extension $have_xv
|
|
Xshm extension $have_xshm
|
|
Xaw library $have_xaw_simple
|
|
Xpm library $have_xpm
|
|
])
|
|
|
|
TC_PKG_REPORT
|
|
|
|
if test x"yes" = x"$have_pvm3"; then
|
|
AC_MSG_WARN([PVM3 support is yet untested, unsupported and may be BROKEN!.])
|
|
AC_MSG_WARN([Please be careful and be prepared for bugs or nasty behaviours.])
|
|
AC_MSG_WARN([Report problems on transcode-devel mailing list.])
|
|
# ugly -- has anyone a better idea?
|
|
echo
|
|
echo
|
|
fi
|
|
|