Skip to content
Snippets Groups Projects
configure.in 45.8 KiB
Newer Older
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl Autoconf settings for vlc and libdvdcss
Samuel Hocevar's avatar
 
Samuel Hocevar committed
AC_INIT(include/main.h)
AC_CONFIG_HEADER(include/defs.h)
Samuel Hocevar's avatar
 
Samuel Hocevar committed
HAVE_VLC=0
if test -r src/interface/main.c; then
  HAVE_VLC=1
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  VLC_CODENAME=Ourumov
fi

HAVE_LIBDVDCSS=0
if test -r extras/libdvdcss/libdvdcss.c; then
  HAVE_LIBDVDCSS=1
  LIBDVDCSS_VERSION="1.0.1-dev"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  AC_SUBST(LIBDVDCSS_VERSION)
  if test -r extras/libdvdcss/csskeys.h; then
    AC_DEFINE(HAVE_CSSKEYS,1,css decryption with player keys)
  fi
Samuel Hocevar's avatar
 
Samuel Hocevar committed
fi
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl Save CFLAGS and LDFLAGS
Samuel Hocevar's avatar
 
Samuel Hocevar committed
save_CFLAGS="${CFLAGS}"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
save_LDFLAGS="${LDFLAGS}"
Samuel Hocevar's avatar
 
Samuel Hocevar committed

dnl Check for tools
AC_PROG_MAKE_SET
Samuel Hocevar's avatar
 
Samuel Hocevar committed
AC_PROG_CC
AC_PROG_CPP
gbazin's avatar
 
gbazin committed
dnl Find the right ranlib, even when cross-compiling
AC_CHECK_TOOL(RANLIB, ranlib, :)

Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl Gettext stuff
Samuel Hocevar's avatar
 
Samuel Hocevar committed
ALL_LINGUAS="de fr ru"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
AC_DEFINE_UNQUOTED(PACKAGE, "vlc")
AC_DEFINE_UNQUOTED(VERSION, "$VLC_VERSION")
Samuel Hocevar's avatar
 
Samuel Hocevar committed
AM_GNU_GETTEXT

dnl AM_PROG_LIBTOOL
AC_PROG_INSTALL

Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl  Endianness check, AC_C_BIGENDIAN doesn't work if we are cross-compiling
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl  We give the user the opportunity to specify
dnl  --with-words=big or --with-words=little ; otherwise, try to guess
dnl
AC_ARG_WITH(words,
  [  --with-words=endianness Set endianness (big or little)])
  case "x$withval" in
    xbig)
      ac_cv_c_bigendian=yes
      ;;
    xlittle)
      ac_cv_c_bigendian=no
      ;;
    *)
      dnl  Try to guess endianness by matching patterns on a compiled
      dnl  binary, by looking for an ASCII or EBCDIC string
      AC_CACHE_CHECK([whether the byte order is big-endian],
        [ac_cv_c_bigendian],
        [ac_cv_c_bigendian=unknown
        [cat >conftest.c <<EOF
        short am[] = { 0x4249, 0x4765, 0x6e44, 0x6961, 0x6e53, 0x7953, 0 };
        short ai[] = { 0x694c, 0x5454, 0x656c, 0x6e45, 0x6944, 0x6e61, 0 };
        void _a(void) { char*s = (char*)am; s = (char *)ai; }
        short ei[] = { 0x89D3, 0xe3e3, 0x8593, 0x95c5, 0x89c4, 0x9581, 0 };
        short em[] = { 0xc2c9, 0xc785, 0x95c4, 0x8981, 0x95e2, 0xa8e2, 0 };
        void _e(void) { char*s = (char*)em; s = (char*)ei; }
        int main(void) { _a(); _e(); return 0; }
EOF
        ]
        if test -f conftest.c
        then 
          if ${CC-cc} conftest.c -o conftest.o >config.log 2>&1 \
              && test -f conftest.o
            if test `grep -l BIGenDianSyS conftest.o`
            then
              ac_cv_c_bigendian=yes
            fi
            if test `grep -l LiTTleEnDian conftest.o`
            then
              ac_cv_c_bigendian=no
            fi
      if test $ac_cv_c_bigendian = xunknown
      then
        AC_MSG_ERROR([Could not guess endianness, please use --with-words])
      fi
      ;;
  esac
dnl  Now we know what to use for endianness, just put it in the header
if test $ac_cv_c_bigendian = yes
then
  AC_DEFINE(WORDS_BIGENDIAN, 1, big endian system)
fi

dnl Check for system libs needed
Samuel Hocevar's avatar
 
Samuel Hocevar committed
AC_CHECK_FUNCS(gettimeofday select strerror strtod strtol isatty)
Samuel Hocevar's avatar
 
Samuel Hocevar committed
AC_CHECK_FUNC(connect,,[
  AC_CHECK_LIB(socket,connect,LIB="${LIB} -lsocket")
])
AC_CHECK_FUNC(gethostbyname,,[
  AC_CHECK_LIB(nsl,gethostbyname,LIB="${LIB} -lnsl")
])
AC_CHECK_FUNC(nanosleep,,[
  AC_CHECK_LIB(rt,nanosleep,LIB="${LIB} -lrt",[
    AC_CHECK_LIB(posix4,nanosleep,LIB="${LIB} -lposix4")
  ])
])
AC_CHECK_FUNCS(usleep)
Samuel Hocevar's avatar
 
Samuel Hocevar committed
AC_CHECK_FUNC(inet_aton,,[
  AC_CHECK_LIB(resolv,inet_aton,LIB="${LIB} -lresolv")
])
Samuel Hocevar's avatar
 
Samuel Hocevar committed
AC_CHECK_FUNCS(vasprintf)
Samuel Hocevar's avatar
 
Samuel Hocevar committed
AC_CHECK_FUNCS(swab)
AC_CHECK_FUNCS([memalign valloc])
Samuel Hocevar's avatar
 
Samuel Hocevar committed

Samuel Hocevar's avatar
 
Samuel Hocevar committed
AC_CHECK_FUNCS(sigrelse)

Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl Check for getopt
Samuel Hocevar's avatar
 
Samuel Hocevar committed
NEED_GETOPT=0
Samuel Hocevar's avatar
 
Samuel Hocevar committed
AC_CHECK_FUNC(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
[ # FreeBSD has a gnugetopt library for this:
  AC_CHECK_LIB([gnugetopt],[getopt_long],
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support) LIB="${LIB} -lgnugetopt"],
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    [NEED_GETOPT=1])])
Samuel Hocevar's avatar
 
Samuel Hocevar committed

Samuel Hocevar's avatar
 
Samuel Hocevar committed
AC_CHECK_LIB(dl,dlopen,LIB="${LIB} -ldl")
Samuel Hocevar's avatar
 
Samuel Hocevar committed
AC_CHECK_LIB(m,cos,
  LIB_IMDCT="${LIB_IMDCT} -lm"
  LIB_FILTER_DISTORT="${LIB_FILTER_DISTORT} -lm")
Samuel Hocevar's avatar
 
Samuel Hocevar committed
AC_CHECK_LIB(m,pow,
  LIB_IMDCT="${LIB_IMDCT} -lm"
  LIB_IMDCT3DN="${LIB_IMDCT3DN} -lm"
  LIB_IMDCTSSE="${LIB_IMDCTSSE} -lm"
)
Samuel Hocevar's avatar
 
Samuel Hocevar committed

Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl Check for pthreads - borrowed from XMMS
Samuel Hocevar's avatar
 
Samuel Hocevar committed
THREAD_LIB=error
if test "x${THREAD_LIB}" = xerror; then
  AC_CHECK_LIB(pthread,pthread_attr_init,THREAD_LIB="-lpthread")
fi
if test "x${THREAD_LIB}" = xerror; then
  AC_CHECK_LIB(pthreads,pthread_attr_init,THREAD_LIB="-lpthreads")
fi
if test "x${THREAD_LIB}" = xerror; then
  AC_CHECK_LIB(c_r,pthread_attr_init,THREAD_LIB="-lc_r")
fi
if test "x${THREAD_LIB}" = xerror; then
  AC_CHECK_FUNC(pthread_attr_init)
  THREAD_LIB=""
fi
Samuel Hocevar's avatar
 
Samuel Hocevar committed

dnl Check for cthreads under GNU/Hurd for instance
AC_CHECK_LIB(threads,cthread_fork,THREAD_LIB="-lthreads")
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl Check for misc headers
AC_EGREP_HEADER(pthread_cond_t,pthread.h,[
  AC_DEFINE(PTHREAD_COND_T_IN_PTHREAD_H, 1,
Samuel Hocevar's avatar
 
Samuel Hocevar committed
            Define if <pthread.h> defines pthread_cond_t.)])
Samuel Hocevar's avatar
 
Samuel Hocevar committed
AC_EGREP_HEADER(strncasecmp,strings.h,[
  AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
Samuel Hocevar's avatar
 
Samuel Hocevar committed
            Define if <strings.h> defines strncasecmp.)])
Samuel Hocevar's avatar
 
Samuel Hocevar committed

Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl Check for headers
Samuel Hocevar's avatar
 
Samuel Hocevar committed
AC_CHECK_HEADERS(getopt.h strings.h)
AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/time.h sys/times.h)
Samuel Hocevar's avatar
 
Samuel Hocevar committed
AC_CHECK_HEADERS(sys/soundcard.h machine/soundcard.h)
AC_CHECK_HEADERS(dlfcn.h image.h)
AC_CHECK_HEADERS(arpa/inet.h net/if.h netinet/in.h sys/socket.h)
Samuel Hocevar's avatar
 
Samuel Hocevar committed
AC_CHECK_HEADERS(machine/param.h sys/shm.h)
Samuel Hocevar's avatar
 
Samuel Hocevar committed

Samuel Hocevar's avatar
 
Samuel Hocevar committed
AC_HEADER_TIME

Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl Check for threads library
AC_CHECK_HEADERS(cthreads.h pthread.h kernel/scheduler.h kernel/OS.h)

Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl Check for DPMS
if test x$SYS != xmingw32
then
  if test x$x_includes = xNONE; then
    x_includes=/usr/X11R6/include
  fi
  if test x$x_libraries = xNONE; then
    x_libraries=/usr/X11R6/lib
  fi
  saved_CPPFLAGS=$CPPFLAGS
  CPPFLAGS="$CPPFLAGS -I$x_includes"
  AC_CHECK_HEADERS(X11/extensions/dpms.h, [
    AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
      AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
                Define if <X11/extensions/dpms.h> defines DPMSInfo.)
    ])
  ])
  CPPFLAGS=$saved_CPPFLAGS
fi

Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl Check for ntohl, etc.
AC_CACHE_CHECK([for ntohl in sys/param.h],
    [ac_cv_c_ntohl_sys_param_h],
    [CFLAGS="${save_CFLAGS} -Wall -Werror"
     AC_TRY_COMPILE([#include <sys/param.h>],
        [void foo() { int meuh; ntohl(meuh); }],
        ac_cv_c_ntohl_sys_param_h=yes, ac_cv_c_ntohl_sys_param_h=no)])
if test x"$ac_cv_c_ntohl_sys_param_h" != x"no"; then
    AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
fi
Samuel Hocevar's avatar
 
Samuel Hocevar committed

Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl Check for inline function size limit
AC_CACHE_CHECK([if \$CC accepts -finline-limit],
    [ac_cv_c_inline_limit],
    [CFLAGS="${save_CFLAGS} -finline-limit-30000"
     AC_TRY_COMPILE([],,ac_cv_c_inline_limit=yes, ac_cv_c_inline_limit=no)])
if test x"$ac_cv_c_inline_limit" != x"no"; then
    save_CFLAGS="${save_CFLAGS} -finline-limit-30000"
fi
Samuel Hocevar's avatar
 
Samuel Hocevar committed

Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl Check for -W or -w flags
AC_CACHE_CHECK([if \$CC accepts -Wall -Winline],
    [ac_cv_c_Wall_Winline],
    [CFLAGS="${save_CFLAGS} -Wall -Winline"
     AC_TRY_COMPILE([],,ac_cv_c_Wall_Winline=yes, ac_cv_c_Wall_Winline=no)])
if test x"$ac_cv_c_Wall_Winline" != x"no"; then
    save_CFLAGS="${save_CFLAGS} -Wall -Winline"
else
    AC_CACHE_CHECK([if \$CC accepts -wall -winline],
        [ac_cv_c_wall_winline],
        [CFLAGS="${save_CFLAGS} -wall -winline"
         AC_TRY_COMPILE([],,ac_cv_c_wall_winline=yes, ac_cv_c_wall_winline=no)])
    if test x"$ac_cv_c_wall_winline" != x"no"; then
        save_CFLAGS="${save_CFLAGS} -wall -winline"
    fi
fi

dnl Check for -pipe
AC_CACHE_CHECK([if \$CC accepts -pipe],
    [ac_cv_c_pipe],
    [CFLAGS="${save_CFLAGS} -pipe"
     AC_TRY_COMPILE([],,ac_cv_c_pipe=yes, ac_cv_c_pipe=no)])
if test x"$ac_cv_c_pipe" != x"no"; then
    save_CFLAGS="${save_CFLAGS} -pipe"
fi

dnl Check for various optimization flags
AC_CACHE_CHECK([if \$CC accepts -O3],
    [ac_cv_c_o3],
    [CFLAGS="${save_CFLAGS} -O3"
     AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
if test x"$ac_cv_c_o3" != x"no"; then
    CFLAGS_OPTIM="${CFLAGS_OPTIM} -O3"
else
    AC_CACHE_CHECK([if \$CC accepts -O2],
        [ac_cv_c_o2],
        [CFLAGS="${save_CFLAGS} -O2"
         AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
    if test x"$ac_cv_c_o2" != x"no"; then
        CFLAGS_OPTIM="${CFLAGS_OPTIM} -O2"
    else
        AC_CACHE_CHECK([if \$CC accepts -O],
            [ac_cv_c_o],
            [CFLAGS="${save_CFLAGS} -O"
             AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
        if test x"$ac_cv_c_o" != x"no"; then
            CFLAGS_OPTIM="${CFLAGS_OPTIM} -O"
        fi
    fi
fi

dnl Check for -ffast-math
AC_CACHE_CHECK([if \$CC accepts -ffast-math],
    [ac_cv_c_fast_math],
    [CFLAGS="${save_CFLAGS} -ffast-math"
     AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
if test x"$ac_cv_c_fast_math" != x"no"; then
    CFLAGS_OPTIM="${CFLAGS_OPTIM} -ffast-math"
fi

dnl Check for -funroll-loops
AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
    [ac_cv_c_unroll_loops],
    [CFLAGS="${save_CFLAGS} -funroll-loops"
     AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
if test x"$ac_cv_c_unroll_loops" != x"no"; then
    CFLAGS_OPTIM="${CFLAGS_OPTIM} -funroll-loops"
fi

dnl Check for -fomit-frame-pointer
AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
    [ac_cv_c_omit_frame_pointer],
    [CFLAGS="${save_CFLAGS} -fomit-frame-pointer"
     AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
if test x"$ac_cv_c_omit_frame_pointer" != x"no"; then
    CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
fi

Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl Check for Darwin plugin linking flags
AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error],
    [ac_cv_ld_darwin],
    [CFLAGS="${save_CFLAGS} -bundle -undefined error"
     AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
if test x"$ac_cv_ld_darwin" != x"no"; then
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    PLDFLAGS="${PLDFLAGS} -bundle -undefined error"
Samuel Hocevar's avatar
 
Samuel Hocevar committed

dnl Check for standard plugin linking flags
AC_CACHE_CHECK([if \$CC accepts -shared],
    [ac_cv_ld_plugins],
    [CFLAGS="${save_CFLAGS} -shared"
     AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
if test x"$ac_cv_ld_plugins" != x"no"; then
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    PLDFLAGS="${PLDFLAGS} -shared"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
fi
Samuel Hocevar's avatar
 
Samuel Hocevar committed
if test x"${SOFLAGS}" = x; then
    AC_CACHE_CHECK([for soname setting],
        [ac_cv_ld_soname],
        [
        # Standard
        try_SOFLAGS="-Wl,-soname -Wl,"
        LDFLAGS="${save_LDFLAGS} ${try_SOFLAGS}foo.so.0"
        AC_TRY_LINK([],,ac_cv_ld_soname="${try_SOFLAGS}", [
            # SunOS
            try_SOFLAGS="-Wl,-h -Wl,"
            LDFLAGS="${save_LDFLAGS} ${try_SOFLAGS}foo.so.0"
            AC_TRY_LINK([],,ac_cv_ld_soname="${try_SOFLAGS}",
                ac_cv_ld_soname=none)
        ])])
    if test x"$ac_cv_ld_soname" != x"none"; then
        SOFLAGS=$ac_cv_ld_soname
    else
        echo "
------------
Your system doesn't seem to have support for dynamic linking. You may
have problems using libdvdcss.
------------
"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
fi

dnl Checks for __attribute__(aligned()) directive
AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
    [ac_cv_c_attribute_aligned],
    [ac_cv_c_attribute_aligned=0
Samuel Hocevar's avatar
 
Samuel Hocevar committed
        CFLAGS="${save_CFLAGS} -Werror"
    for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
        AC_TRY_COMPILE([],
        [static char c __attribute__ ((aligned($ac_cv_c_attr_align_try))) = 0; return c;],
        [ac_cv_c_attribute_aligned=$ac_cv_c_attr_align_try])
    done])
if test x"$ac_cv_c_attribute_aligned" != x"0"; then
    AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
        [$ac_cv_c_attribute_aligned],[Maximum supported data alignment])
fi

Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl End of the bizarre compilation tests
Samuel Hocevar's avatar
 
Samuel Hocevar committed
CFLAGS="${save_CFLAGS}"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
LDFLAGS="${save_LDFLAGS}"
AC_CACHE_CHECK([for boolean_t in sys/types.h],
    [ac_cv_c_boolean_t_sys_types_h],
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    [AC_TRY_COMPILE([#include <sys/types.h>], [boolean_t foo;],
     ac_cv_c_boolean_t_sys_types_h=yes, ac_cv_c_boolean_t_sys_types_h=no)])
if test x"$ac_cv_c_boolean_t_sys_types_h" != x"no"; then
    AC_DEFINE(BOOLEAN_T_IN_SYS_TYPES_H, 1, Define if <sys/types.h> defines boolean_t.)
fi

AC_CACHE_CHECK([for boolean_t in pthread.h],
    [ac_cv_c_boolean_t_pthread_h],
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    [AC_TRY_COMPILE([#include <pthread.h>], [boolean_t foo;],
     ac_cv_c_boolean_t_pthread_h=yes, ac_cv_c_boolean_t_pthread_h=no)])
if test x"$ac_cv_c_boolean_t_pthread_h" != x"no"; then
    AC_DEFINE(BOOLEAN_T_IN_PTHREAD_H, 1, Define if <pthread.h> defines boolean_t.)
fi

AC_CACHE_CHECK([for boolean_t in cthreads.h],
    [ac_cv_c_boolean_t_cthreads_h],
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    [AC_TRY_COMPILE([#include <cthreads.h>], [boolean_t foo;],
     ac_cv_c_boolean_t_cthreads_h=yes, ac_cv_c_boolean_t_cthreads_h=no)])
if test x"$ac_cv_c_boolean_t_cthreads_h" != x"no"; then
    AC_DEFINE(BOOLEAN_T_IN_CTHREADS_H, 1, Define if <cthreads.h> defines boolean_t.)
fi
Samuel Hocevar's avatar
 
Samuel Hocevar committed

Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl
dnl  Check the CPU
dnl
case x"${target_cpu}" in
  x)
    ARCH=unknown
    ;;
  *)
    ARCH=${target_cpu}
    ;;
esac
Samuel Hocevar's avatar
 
Samuel Hocevar committed

dnl
dnl  default modules
dnl
Samuel Hocevar's avatar
 
Samuel Hocevar committed
BUILTINS="${BUILTINS} mpeg_es mpeg_ps mpeg_ts memcpy idct idctclassic motion imdct downmix chroma_i420_rgb chroma_i420_yuy2 chroma_i422_yuy2 chroma_i420_ymga mpeg_adec ac3_adec mpeg_vdec"
PLUGINS="${PLUGINS} lpcm_adec ac3_spdif spudec filter_deinterlace filter_invert filter_wall filter_transform filter_distort"
Samuel Hocevar's avatar
 
Samuel Hocevar committed

dnl
dnl  Accelerated modules
dnl
Samuel Hocevar's avatar
 
Samuel Hocevar committed
MMX_MODULES="memcpymmx idctmmx motionmmx chroma_i420_rgb_mmx chroma_i420_yuy2_mmx chroma_i422_yuy2_mmx chroma_i420_ymga_mmx"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
MMXEXT_MODULES="memcpymmxext idctmmxext motionmmxext"
THREEDNOW_MODULES="memcpy3dn imdct3dn downmix3dn"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
SSE_MODULES="imdctsse downmixsse"
ALTIVEC_MODULES="idctaltivec motionaltivec"
AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
    [ac_cv_mmx_inline],
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    [AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
                    ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
if test x"$ac_cv_mmx_inline" != x"no"; then
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
Samuel Hocevar's avatar
 
Samuel Hocevar committed

AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
    [ac_cv_mmxext_inline],
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    [AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
                    ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
if test x"$ac_cv_mmxext_inline" != x"no"; then
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
Samuel Hocevar's avatar
 
Samuel Hocevar committed

AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
    [ac_cv_3dnow_inline],
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    [AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
                    ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
if test x"$ac_cv_3dnow_inline" != x"no"; then
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
Samuel Hocevar's avatar
 
Samuel Hocevar committed

AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
    [ac_cv_sse_inline],
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    [AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
                    ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
if test x"$ac_cv_sse_inline" != x"no"; then
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.)
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
Samuel Hocevar's avatar
 
Samuel Hocevar committed

AC_CACHE_CHECK([if \$CC groks Altivec inline assembly],
    [ac_cv_altivec_inline],
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
         ac_cv_altivec_inline=yes,
         [save_CFLAGS=$CFLAGS
          CFLAGS="$CFLAGS -Wa,-m7400"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
          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" != x"no"; then
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks ALTIVEC inline assembly.)
  if test x"$ac_cv_altivec_inline" != x"yes"; then
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    CFLAGS_IDCTALTIVEC="$CFLAGS_IDCTALTIVEC $ac_cv_altivec_inline"
    CFLAGS_MOTIONALTIVEC="$CFLAGS_MOTIONALTIVEC $ac_cv_altivec_inline"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    CFLAGS_VLC="$CFLAGS_VLC $ac_cv_altivec_inline"
  ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
AC_CACHE_CHECK([if \$CC groks Altivec C extensions],
    [ac_cv_c_altivec],
    [save_CFLAGS=$CFLAGS
     CFLAGS="$CFLAGS -faltivec"
     # Darwin test
Samuel Hocevar's avatar
 
Samuel Hocevar committed
     AC_TRY_COMPILE(,[vec_mtvscr((vector unsigned int)(0));],
        ac_cv_c_altivec=-faltivec, [
        # Linux/PPC test
Samuel Hocevar's avatar
 
Samuel Hocevar committed
        CFLAGS="$save_CFLAGS $CFLAGS_IDCTALTIVEC -fvec"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
        AC_TRY_COMPILE(,[vec_mtvscr((vector unsigned int)(0));],
            [ac_cv_c_altivec="-fvec"], ac_cv_c_altivec=no)
        ])
     CFLAGS=$save_CFLAGS
    ])
if test x"$ac_cv_c_altivec" != x"no"; then
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C altivec extensions.)
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  CFLAGS_IDCTALTIVEC="$CFLAGS_IDCTALTIVEC $ac_cv_c_altivec"
  CFLAGS_MOTIONALTIVEC="$CFLAGS_MOTIONALTIVEC $ac_cv_c_altivec"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  CFLAGS_VLC="$CFLAGS_VLC $ac_cv_c_altivec"
  ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
fi

AC_CACHE_CHECK([if linker needs -framework vecLib],
    [ac_cv_ld_altivec],
    [save_LDFLAGS=$LDFLAGS
     LDFLAGS="$LDFLAGS -framework vecLib"
     AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
     LDFLAGS=$save_LDFLAGS
    ])
if test x"$ac_cv_ld_altivec" != x"no"; then
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  LIB_IDCTALTIVEC="${LIB_IDCTALTIVEC} -framework vecLib"
  LIB_MOTIONALTIVEC="${LIB_MOTIONALTIVEC} -framework vecLib"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  LIB="${LIB} -framework vecLib"
dnl
dnl  Check the operating system
dnl
Samuel Hocevar's avatar
 
Samuel Hocevar committed
case x"${target_os}" in
  x)
    SYS=unknown
    ;;
  xlinux*)
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    ;;
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  xbsdi*)
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  xdarwin*)
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  x*mingw32*)
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    AC_CHECK_TOOL(WINDRES, windres, :)
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    LIB_MPEG_TS="${LIB_MPEG_TS} -lws2_32"
    LIB_RC="${LIB_RC} -lws2_32"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  x*nto*)
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    SYS=nto
    LIB_X11="${LIB_X11} -lsocket"
    LIB_XVIDEO="${LIB_XVIDEO} -lsocket"
    ;;
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  xbeos)
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    SYS=beos
    LIB="${LIB} -lbe"
    LIB_BEOS="${LIB_BEOS} -lbe -lgame -lroot -ltracker"
    PLDFLAGS="${PLDFLAGS} -nostart"
    ;;
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  x*)
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl  DVD and VCD devices
Samuel Hocevar's avatar
 
Samuel Hocevar committed
case x$SYS in
  xmingw32)
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    DVD_DEVICE="E:"
    VCD_DEVICE="E:"
    ;;
  *)
    DVD_DEVICE="/dev/dvd"
    VCD_DEVICE="/dev/cdrom"
    ;;
esac

AC_DEFINE_UNQUOTED(DVD_DEVICE, "$DVD_DEVICE")
AC_DEFINE_UNQUOTED(VCD_DEVICE, "$VCD_DEVICE")

Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl  libdvdcss: check for DVD ioctls
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl
Samuel Hocevar's avatar
 
Samuel Hocevar committed

Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl  default is no
CAN_BUILD_LIBDVDCSS=0

Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl  for windoze
AC_CHECK_HEADERS(winioctl.h,[
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  CAN_BUILD_LIBDVDCSS="${HAVE_LIBDVDCSS}"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
])

Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl  for Un*x and BeOS
Samuel Hocevar's avatar
 
Samuel Hocevar committed
AC_CHECK_HEADERS(sys/ioctl.h,[
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  CAN_BUILD_LIBDVDCSS="${HAVE_LIBDVDCSS}"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  AC_CHECK_HEADERS(sys/cdio.h sys/dvdio.h linux/cdrom.h dvd.h)
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  BSD_DVD_STRUCT=0
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  LINUX_DVD_STRUCT=0
  OPENBSD_DVD_STRUCT=0
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  dnl
  dnl Old FreeBSD: sys/cdio.h
  dnl
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  AC_EGREP_HEADER(dvd_struct,sys/cdio.h,[
    AC_DEFINE(DVD_STRUCT_IN_SYS_CDIO_H, 1,
              Define if <sys/cdio.h> defines dvd_struct.)
    AC_EGREP_HEADER(struct dvd_struct,sys/cdio.h,[
                    BSD_DVD_STRUCT=1],[LINUX_DVD_STRUCT=1; OPENBSD_DVD_STRUCT=1])
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  ])
  dnl
  dnl Newer FreeBSD: sys/dvdio.h
  dnl
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  AC_EGREP_HEADER(dvd_struct,sys/dvdio.h,[
    AC_DEFINE(DVD_STRUCT_IN_SYS_DVDIO_H, 1,
              Define if <sys/dvdio.h> defines dvd_struct.)
    AC_EGREP_HEADER(struct dvd_struct,sys/dvdio.h,[
                    BSD_DVD_STRUCT=1],[LINUX_DVD_STRUCT=1])
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  ])
  dnl
  dnl Linux: linux/cdrom.h
  dnl
  AC_EGREP_HEADER(dvd_struct,linux/cdrom.h,[
    AC_DEFINE(DVD_STRUCT_IN_LINUX_CDROM_H, 1,
              Define if <linux/cdrom.h> defines DVD_STRUCT.)
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    LINUX_DVD_STRUCT=1
  ])
  dnl
  dnl BSDI: dvd.h
  dnl
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  NEED_BSDI_LIBDVD=0
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  AC_EGREP_HEADER(dvd_struct,dvd.h,[
    AC_DEFINE(DVD_STRUCT_IN_DVD_H, 1,
              Define if <dvd.h> defines DVD_STRUCT.)
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    LIB_LIBDVDCSS="${LIB_LIBDVDCSS} -ldvd"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    LINUX_DVD_STRUCT=1
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  ],[
    dnl
    dnl BSDI: /sys/dev/scsi/scsi_ioctl.h, using our own libdvd
    dnl
    AC_CHECK_HEADERS(/sys/dev/scsi/scsi_ioctl.h,[
      NEED_BSDI_LIBDVD=1
Samuel Hocevar's avatar
 
Samuel Hocevar committed
      AC_DEFINE(DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H, 1,
                Define if <extras/BSDI_dvdioctl/dvd.h> defines DVD_STRUCT.)
Samuel Hocevar's avatar
 
Samuel Hocevar committed
      SRC_DVDCSS_EXTRA="${SRC_DVDCSS_EXTRA} bsdi_dvdioctl.c"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
      LINUX_DVD_STRUCT=1
    ])
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  ])
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  dnl
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  dnl Solaris: sys/scsi/scsi_types.h, sys/scsi/impl/uscsi.h
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  dnl
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  AC_CHECK_HEADER(sys/scsi/scsi_types.h,[
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    AC_CHECK_HEADER(sys/scsi/impl/uscsi.h,[
      AC_DEFINE(SOLARIS_USCSI, 1, Have userspace SCSI headers.)
    ])
  ])
  dnl
  dnl HP-UX: sys/scsi.h
  dnl
  AC_CHECK_HEADER(sys/scsi.h,[
    AC_EGREP_HEADER(sctl_io,sys/scsi.h,[
      AC_DEFINE(HPUX_SCTL_IO, 1, Define if <sys/scsi.h> defines sctl_io.)
    ])
  ])
  dnl
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  dnl Final tests to check what was detected
  dnl
  if test x$LINUX_DVD_STRUCT = x1; then
    AC_DEFINE(HAVE_LINUX_DVD_STRUCT, 1,
              Define if Linux-like dvd_struct is defined.)
    if test x$OPENBSD_DVD_STRUCT = x1; then
      AC_DEFINE(HAVE_OPENBSD_DVD_STRUCT, 1,
                Define if OpenBSD-like dvd_struct is defined.)
    fi
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  else
    if test x$BSD_DVD_STRUCT = x1; then
      AC_DEFINE(HAVE_BSD_DVD_STRUCT, 1,
Samuel Hocevar's avatar
 
Samuel Hocevar committed
                Define if FreeBSD-like dvd_struct is defined.)
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    fi
  fi
Samuel Hocevar's avatar
 
Samuel Hocevar committed
])

dnl
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl
AC_ARG_WITH(tuning,
[  --with-tuning=[arch]    Enable special tuning for an architecture
                          (default i686 on IA-32 and 750 on PPC)])
if test "x$withval" != "x"; then
    TUNING=$withval
else
    if test x${target_cpu} = xi686 -o x${target_cpu} = xi586 -o x${target_cpu} = xi486 -o x${target_cpu} = xi386; then TUNING="pentiumpro"
        if test x${target_cpu} = xpowerpc; then TUNING="750"; fi
Samuel Hocevar's avatar
 
Samuel Hocevar committed

dnl
dnl  Enable release-specific flags
dnl
AC_ARG_ENABLE(release,
[  --enable-release        Activate extra optimizations (default disabled)],
[ if test x$enableval = xyes; then RELEASE=1; fi ],
[ VLC_VERSION="${VLC_VERSION}_`date +%Y-%m-%d`";
  LIBDVDCSS_VERSION="${LIBDVDCSS_VERSION}_`date +%Y-%m-%d`"; ])

Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl  x86 accelerations
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl
Samuel Hocevar's avatar
 
Samuel Hocevar committed
if test x${target_cpu} = xi686 -o x${target_cpu} = xi586 -o x${target_cpu} = xx86 -o x${target_cpu} = xi386
then
    ARCH="${ARCH} mmx"
    BUILTINS="${BUILTINS} ${ACCEL_MODULES}"
fi
Samuel Hocevar's avatar
 
Samuel Hocevar committed

dnl
dnl  AltiVec acceleration
dnl
[  --disable-altivec       Disable altivec optimizations (default enabled on PPC)],
[ if test x$enableval = xyes; then ARCH="${ARCH} altivec";
    BUILTINS="${BUILTINS} ${ACCEL_MODULES}"; fi ],
[ if test x${target_cpu} = xpowerpc; then ARCH="${ARCH} altivec";
    BUILTINS="${BUILTINS} ${ACCEL_MODULES}"; fi ])
Samuel Hocevar's avatar
 
Samuel Hocevar committed

dnl
dnl  Debugging mode
dnl
Samuel Hocevar's avatar
 
Samuel Hocevar committed
DEBUG=0
[  --enable-debug          Enable debug mode (default disabled)],
[ if test x$enableval = xyes; then DEBUG=1; fi ])
Samuel Hocevar's avatar
 
Samuel Hocevar committed

Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl
Samuel Hocevar's avatar
 
Samuel Hocevar committed
GPROF=0
AC_ARG_ENABLE(gprof,
[  --enable-gprof          Enable gprof profiling (default disabled)],
[ if test x$enableval = xyes; then GPROF=1; fi ])

CPROF=0
AC_ARG_ENABLE(cprof,
[  --enable-cprof          Enable cprof profiling (default disabled)],
[ if test x$enableval = xyes;
  then
    LIB="${LIB} -lcprof"
    CPROF=1
  fi
])
Samuel Hocevar's avatar
 
Samuel Hocevar committed

Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl
dnl  Enable/disable optimizations
dnl
[  --disable-optimizations Disable compiler optimizations (default enabled)],
[ if test x$enableval = xno; then OPTIMS=0; fi ],
[ OPTIMS=1 ])
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl
dnl  GNU portable threads
dnl
AC_ARG_ENABLE(pth,
  [  --enable-pth            Enable GNU Pth support (default disabled)],
  [ if test x$enableval = xyes; then
    AC_CHECK_LIB(pth,pth_init)
    AC_EGREP_HEADER(pth_init,pth.h,[
      AC_DEFINE(PTH_INIT_IN_PTH_H, 1,
                Define if <pth.h> defines pth_init)
    THREAD_LIB="-lpth"
    fi])
])

LIB="${LIB} ${THREAD_LIB}"

dnl
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl  DVD module: check for installed libdvdcss or local libdvdcss
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl
Samuel Hocevar's avatar
 
Samuel Hocevar committed
NEED_LIBDVDCSS=0
Samuel Hocevar's avatar
 
Samuel Hocevar committed
STATIC_LIBDVDCSS=0
Samuel Hocevar's avatar
 
Samuel Hocevar committed
DUMMY_LIBDVDCSS=0
Samuel Hocevar's avatar
 
Samuel Hocevar committed
AC_ARG_WITH(dvdcss,
  [  --with-dvdcss[=name]    way to use libdvdcss, either 'yes' or 'no',
                          or 'local-static', 'local-shared', or a path to
                          another libdvdcss such as '/usr/local'
                          (default 'local-static')],
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  [ case "x${withval}" in
    xlocal-static|xyes)
      # local libdvdcss, statically linked
      BUILTINS="${BUILTINS} dvd"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
      if test x${CAN_BUILD_LIBDVDCSS} = x1
      then
Samuel Hocevar's avatar
 
Samuel Hocevar committed
        NEED_LIBDVDCSS=1
Samuel Hocevar's avatar
 
Samuel Hocevar committed
        STATIC_LIBDVDCSS=1
        CFLAGS_DVD="${CFLAGS_DVD} -I../../extras/libdvdcss"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
        LIB_DVD="${LIB_DVD} lib/libdvdcss.a ${LIB_LIBDVDCSS}"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
      fi
    ;;
    xlocal-shared)
      # local libdvdcss, dynamically linked
      PLUGINS="${PLUGINS} dvd"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
      if test x${CAN_BUILD_LIBDVDCSS} = x1
      then
Samuel Hocevar's avatar
 
Samuel Hocevar committed
        NEED_LIBDVDCSS=1
Samuel Hocevar's avatar
 
Samuel Hocevar committed
        CFLAGS_DVD="${CFLAGS_DVD} -I../../extras/libdvdcss"
        LIB_DVD="${LIB_DVD} -L../../lib -ldvdcss"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
      fi
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    ;;
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    xno)
      # don't use libdvdcss at all, build a DVD module that can dlopen() it
      BUILTINS="${BUILTINS} dvd"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
      SRC_DVD_EXTRA="${SRC_DVD_EXTRA} dummy_dvdcss.c"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
      CFLAGS_DVD="${CFLAGS_DVD} -DGOD_DAMN_DMCA"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
      CFLAGS_DVD="${CFLAGS_DVD} -DLIBDVDCSS_VERSION=\"${LIBDVDCSS_VERSION}\""
Samuel Hocevar's avatar
 
Samuel Hocevar committed
      LIB_DVD="${LIB_DVD} -ldl"
    ;;
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    *)
Samuel Hocevar's avatar
 
Samuel Hocevar committed
      # existing libdvdcss
      PLUGINS="${PLUGINS} dvd"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
      if test "x$withval" != "xyes"
      then
        LIB_DVD="${LIB_DVD} -L"$withval"/lib"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
        CFLAGS_DVD="${CFLAGS_DVD} -I"$withval"/include"
      fi
      LIB_DVD="${LIB_DVD} -ldvdcss"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    esac ],
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  # user didn't decide, we choose to use local libdvdcss and link statically
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  # if libdvdcss is in the archive, or to use the dummy replacement otherwise.
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  [ if test x${CAN_BUILD_LIBDVDCSS} = x1
    then
      BUILTINS="${BUILTINS} dvd"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
      NEED_LIBDVDCSS=1
Samuel Hocevar's avatar
 
Samuel Hocevar committed
      STATIC_LIBDVDCSS=1
      CFLAGS_DVD="${CFLAGS_DVD} -I../../extras/libdvdcss"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
      LIB_DVD="${LIB_DVD} lib/libdvdcss.a ${LIB_LIBDVDCSS}"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    else
      # XXX: no check for libdl is done, don't try this at home !
      BUILTINS="${BUILTINS} dvd"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
      SRC_DVD_EXTRA="${SRC_DVD_EXTRA} dummy_dvdcss.c"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
      CFLAGS_DVD="${CFLAGS_DVD} -DGOD_DAMN_DMCA"
      LIB_DVD="${LIB_DVD} -ldl"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    fi ])
Samuel Hocevar's avatar
 
Samuel Hocevar committed

Stéphane Borel's avatar
Stéphane Borel committed
dnl
dnl DVDREAD module: check for libdvdread plugin
dnl
if test x${DUMMY_LIBDVDCSS} = x1; then STATIC_LIBDVDREAD=1; fi
if test x${STATIC_LIBDVDCSS} = x1; then STATIC_LIBDVDREAD=1; fi
AC_ARG_WITH(dvdread,
  [  --with-dvdread[=name]   way to use libdvdread,
                          same options as --with-dvdcss (default no)],
  [ case "x${withval}" in
    xlocal-static|xyes)
      if test x${STATIC_LIBDVDREAD} = x1
      then
        BUILTINS="${BUILTINS} dvdread" 
        CFLAGS_DVDREAD="${CFLAGS_DVDREAD} ${CFLAGS_DVD} -I../../extras/libdvdread"
        LIB_DVDREAD="${LIB_DVDREAD} lib/libdvdread.a ${LIB_DVD}"
      else
        AC_MSG_ERROR([Can't link static dvdread with shared dvdcss])
      fi
    ;;
    xno)
    ;;
    x)
      if test x${STATIC_LIBDVDREAD} = x1
      then
        BUILTINS="${BUILTINS} dvdread" 
        CFLAGS_DVDREAD="${CFLAGS_DVDREAD} ${CFLAGS_DVD} -I../../extras/libdvdread"
        LIB_DVDREAD="${LIB_DVDREAD} lib/libdvdread.a ${LIB_DVD}"
      else
        PLUGINS="${PLUGINS} dvdread"
        CFLAGS_DVDREAD="${CFLAGS_DVDREAD} -I../../extras/libdvdread  ${CFLAGS_DVD}"
        LIB_DVDREAD="${LIB_DVDREAD} -Llib -ldvdread ${LIB_DVD}"
      fi 
    ;;
    *)
      if test "x$withval" != "xlocal-shared"
      then
        LIB_DVDREAD="${LIB_DVDREAD} -L"$withval"/lib"
        CFLAGS_DVDREAD="${CFLAGS_DVDREAD} -I"$withval"/include"
      else
        LIB_DVDREAD="${LIB_DVDREAD} -L../../lib"
        CFLAGS_DVDREAD="${CFLAGS_DVDREAD} -I../../extras/libdvdread"
      fi
      if test x${STATIC_LIBDVDCSS} = x1
      then
        AC_MSG_ERROR([Can't link shared dvdread with static dvdcss])
      else
        PLUGINS="${PLUGINS} dvdread"
        CFLAGS_DVDREAD="${CFLAGS_DVDREAD} ${CFLAGS_DVD}"
        LIB_DVDREAD="${LIB_DVDREAD} -ldvdread ${LIB_DVD}"
      fi
    esac
    if test x${DUMMY_LIBDVDCSS} = x1
    then
      LIB_LIBDVDREAD="${LIB_LIBDVDREAD} -ldl"
    else
      LIB_LIBDVDREAD="${LIB_LIBDVDREAD} -L../../lib -ldvdcss"
    fi ])
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl  VCD module
dnl
AC_ARG_ENABLE(vcd,
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  [  --enable-vcd            VCD support for Linux (default enabled)])
Samuel Hocevar's avatar
 
Samuel Hocevar committed
if test x$enable_vcd != xno
then
  AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
    BUILTINS="${BUILTINS} vcd"
  ])
fi
if test x$enable_vcd != xno -a "${SYS}" = "bsdi"
then
  BUILTINS="${BUILTINS} vcd"
fi

if test x$enable_vcd != xno -a "${SYS}" = "darwin"
then
  BUILTINS="${BUILTINS} vcd"
  LIB_VCD="${LIB_VCD} -framework IOKit" 
fi

Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl
dnl  dummy plugin
dnl
AC_ARG_ENABLE(dummy,
  [  --disable-dummy         dummy module (default enabled)])
Samuel Hocevar's avatar
 
Samuel Hocevar committed

if test x$enable_dummy != xno
then
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  PLUGINS="${PLUGINS} dummy"
fi

dnl
dnl  log plugin
dnl
AC_ARG_ENABLE(logger,
  [  --disable-logger        file logger module (default enabled)])

if test x$enable_logger != xno
then
  PLUGINS="${PLUGINS} logger"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
fi
Samuel Hocevar's avatar
 
Samuel Hocevar committed

dnl
dnl  null plugin
dnl
AC_ARG_ENABLE(null,
  [  --disable-null          Null module (default enabled)])
Samuel Hocevar's avatar
 
Samuel Hocevar committed

if test x$enable_null != xno
then
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  PLUGINS="${PLUGINS} null"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
fi
Samuel Hocevar's avatar
 
Samuel Hocevar committed

dnl
dnl  rc plugin
dnl
AC_ARG_ENABLE(rc,
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  [  --disable-rc            Remote Control module (default enabled)])

Samuel Hocevar's avatar
 
Samuel Hocevar committed
if test x$enable_rc != xno
then
Samuel Hocevar's avatar
 
Samuel Hocevar committed
  PLUGINS="${PLUGINS} rc"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
fi
Samuel Hocevar's avatar
 
Samuel Hocevar committed

Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl  mad plugin
Samuel Hocevar's avatar
 
Samuel Hocevar committed
AC_ARG_WITH(mad,
  [  --with-mad[=PATH]       libmad module (default disabled)],
  [ if test "x$with_val" != "xno"; then
      if test -n $with_val; then
Samuel Hocevar's avatar
 
Samuel Hocevar committed
        CFLAGS_MAD="${CFLAGS_MAD} -I$with_val/include"
        LIB_MAD="${LIB_MAD} -L$with_val/lib -lmad"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
        LIB_MAD="${LIB_MAD} -lmad"
      fi
      save_CFLAGS=$CFLAGS
      save_LDFLAGS=$LDFLAGS
Samuel Hocevar's avatar
 
Samuel Hocevar committed
      CFLAGS="$CFLAGS $CFLAGS_MAD"
      LDFLAGS="$LDFLAGS $LIB_MAD"
      AC_CHECK_HEADERS(mad.h, ,
      [ echo "Cannot find development headers for libmad..."
        exit 1
      ])
      AC_CHECK_LIB(mad, mad_bit_init, ,
      [ echo "Cannot find libmad library..."
        exit 1
      ])
      CFLAGS=$save_CFLAGS
      LDFLAGS=$save_LDFLAGS
Samuel Hocevar's avatar
 
Samuel Hocevar committed
      PLUGINS="${PLUGINS} mad"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl special case for BeOS
Samuel Hocevar's avatar
 
Samuel Hocevar committed
if test x$SYS = xbeos
then
Samuel Hocevar's avatar
 
Samuel Hocevar committed
    PLUGINS="${PLUGINS} beos"
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl
dnl  OSS /dev/dsp module
dnl  (enabled by default except on win32)
Samuel Hocevar's avatar
 
Samuel Hocevar committed
dnl
  [  --disable-dsp           Linux /dev/dsp support (default enabled)])
Samuel Hocevar's avatar
 
Samuel Hocevar committed

if test x$enable_dsp != xno &&