configure.ac.in 74.2 KB
Newer Older
Sam Hocevar's avatar
 
Sam Hocevar committed
1
dnl Autoconf settings for vlc
2

3
AC_INIT(vlc,0.5.0-cvs)
4

Sam Hocevar's avatar
Sam Hocevar committed
5 6
CONFIGURE_LINE="$0 $*"
CODENAME="Natalya"
7

8 9 10 11
AC_PREREQ(2.50)
AC_CONFIG_SRCDIR(src/libvlc.c)
AC_CANONICAL_SYSTEM

12 13
dnl XXX: we don't put any flags here, because automake 1.5 doesn't support
dnl them. And we need the comma otherwize automake will choke on it.
14
AM_INIT_AUTOMAKE(vlc,0.5.0-cvs)
15 16
AM_CONFIG_HEADER(config.h)

Sam Hocevar's avatar
Sam Hocevar committed
17 18 19
dnl
dnl  Save *FLAGS
dnl
20 21 22 23 24
CPPFLAGS_save="${CPPFLAGS}"
CFLAGS_save="${CFLAGS}"
CXXFLAGS_save="${CXXFLAGS}"
OBJCFLAGS_save="${OBJCFLAGS}"
LDFLAGS_save="${LDFLAGS}"
Sam Hocevar's avatar
 
Sam Hocevar committed
25

Sam Hocevar's avatar
Sam Hocevar committed
26
dnl
27
dnl Check for tools
Sam Hocevar's avatar
Sam Hocevar committed
28
dnl
Sam Hocevar's avatar
 
Sam Hocevar committed
29
AC_PROG_CC
30
AM_PROG_CC_C_O
Sam Hocevar's avatar
 
Sam Hocevar committed
31
AC_PROG_CPP
32
AC_PROG_CXX
33 34
AC_PROG_MAKE_SET
AC_PROG_INSTALL
35

36 37 38 39 40 41 42 43 44 45 46 47
dnl AC_PROG_OBJC doesn't seem to exist, this is the KDE workaround
AC_MSG_CHECKING(for an Objective-C compiler)
OBJC="${CXX}"
AC_SUBST(OBJC)
OBJCFLAGS="${CXXFLAGS} -fgnu-runtime -fconstant-string-class=NSConstantString"
AC_SUBST(OBJCFLAGS)
dnl _AM_DEPENDENCIES(OBJC) doesn't work, so hard code OBJCDEPMODE here
#OBJCDEPMODE="depmode=gcc3"
#AC_SUBST(OBJCDEPMODE)
_AM_DEPENDENCIES(OBJC)
AC_MSG_RESULT(not implemented yet)

Gildas Bazin's avatar
 
Gildas Bazin committed
48 49
dnl Find the right ranlib, even when cross-compiling
AC_CHECK_TOOL(RANLIB, ranlib, :)
Sam Hocevar's avatar
 
Sam Hocevar committed
50
AC_CHECK_TOOL(STRIP, strip, :)
Gildas Bazin's avatar
 
Gildas Bazin committed
51

52
dnl
Sam Hocevar's avatar
 
Sam Hocevar committed
53
dnl Gettext stuff
54
dnl
55
ALL_LINGUAS="de en_GB fr ja no ru nl pl se"
56
AM_GNU_GETTEXT_VERSION(0.10.40)
Sam Hocevar's avatar
 
Sam Hocevar committed
57
AM_GNU_GETTEXT
58 59 60 61 62
if test "${nls_cv_force_use_gnu_gettext}" = "yes"; then
  AC_DEFINE(HAVE_INCLUDED_GETTEXT, 1, Define if we use the local libintl)
  INCLUDES="${INCLUDES} -I\\\$(top_srcdir)/intl"
fi
AM_CONDITIONAL(BUILD_INTL, test "${nls_cv_force_use_gnu_gettext}" = "yes")
Sam Hocevar's avatar
 
Sam Hocevar committed
63

64 65 66
dnl AM_PROG_LIBTOOL
AC_PROG_INSTALL

67 68 69 70
dnl Check for compiler properties
AC_C_CONST
AC_C_INLINE

Sam Hocevar's avatar
Sam Hocevar committed
71
dnl
72
dnl  Set default values
Sam Hocevar's avatar
Sam Hocevar committed
73
dnl
74 75
LDFLAGS_vlc="${LDFLAGS}"
LIBEXT=".so"
Sam Hocevar's avatar
Sam Hocevar committed
76

Gildas Bazin's avatar
 
Gildas Bazin committed
77 78 79
dnl
dnl  Check the operating system
dnl
80
case "x${target_os}" in
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
  x)
    SYS=unknown
    ;;
  xlinux*)
    SYS=linux
    ;;
  xbsdi*)
    SYS=bsdi
    CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
    LDFLAGS_dvd="${LDFLAGS_dvd} -ldvd"
    LDFLAGS_vcd="${LDFLAGS_vcd} -ldvd"
    ;;
  x*bsd*)
    SYS="${target_os}"
    CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
    ;;
  xdarwin*)
    SYS=darwin
    CFLAGS_save="${CFLAGS_save} -no-cpp-precomp"; CFLAGS="${CFLAGS_save}"
    CXXFLAGS_save="${CXXFLAGS_save} -no-cpp-precomp"; CXXFLAGS="${CXXFLAGS_save}"
    OBJCFLAGS_save="${OBJCFLAGS_save} -no-cpp-precomp"; OBJCFLAGS="${OBJCFLAGS_save}"
    LDFLAGS_vlc="${LDFLAGS_vlc} -all_load"
    LIBEXT=".dylib"
    ;;
Gildas Bazin's avatar
 
Gildas Bazin committed
105
  x*mingw32* | x*cygwin*)
106 107
    AC_CHECK_TOOL(WINDRES, windres, :)
    LIBEXT=".dll"
Gildas Bazin's avatar
 
Gildas Bazin committed
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132

    case "x${target_os}" in
      x*mingw32*)
        SYS=mingw32
        ;;
      x*cygwin*)
        dnl Check if we are using the mno-cygwin mode in which case we are
        dnl actually dealing with a mingw32 compiler.
        AC_EGREP_CPP(yes,
            [#ifdef WIN32
             yes
             #endif],
            SYS=mingw32, SYS=cygwin)
        ;;
    esac

    if test "x$SYS" = "xmingw32"; then
        CPPFLAGS_save="${CPPFLAGS_save} -D_OFF_T_ -D_off_t=long"
        CPPFLAGS="${CPPFLAGS_save}"
        LDFLAGS_vlc="${LDFLAGS_vlc} -lws2_32 -lnetapi32 -mwindows"
        LDFLAGS_ipv4="${LDFLAGS_ipv4} -lws2_32"
        LDFLAGS_ipv6="${LDFLAGS_ipv6} -lws2_32"
        LDFLAGS_access_http="${LDFLAGS_http} -lws2_32"
        LDFLAGS_rc="${LDFLAGS_rc} -lws2_32"
    fi
133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
    ;;
  x*nto*)
    SYS=nto
    LDFLAGS_x11="${LDFLAGS_x11} -lsocket"
    LDFLAGS_xvideo="${LDFLAGS_xvideo} -lsocket"
    ;;
  xsolaris*)
    SYS=solaris
    ;;
  xhpux*)
    SYS=hpux
    LIBEXT=".sl"
    ;;
  xbeos)
    SYS=beos
    CFLAGS_save="${CFLAGS_save} -Wno-multichar -Wno-ctor-dtor-privacy -Woverloaded-virtual"; CFLAGS="${CFLAGS_save}"
    CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar -Wno-ctor-dtor-privacy -Woverloaded-virtual"; CXXFLAGS="${CXXFLAGS_save}"
    LDFLAGS_vlc="${LDFLAGS_vlc} -lbe"
    LDFLAGS_plugins="${LDFLAGS_plugins} -nostart"
152
    LDFLAGS_beos="${LDFLAGS_beos} -lbe -lmedia -lroot -ltracker -lstdc++.r4 -ltranslation"
153 154 155 156 157
    LDFLAGS_ipv4="${LDFLAGS_ipv4} -lbind"
    ;;
  x*)
    SYS="${target_os}"
    ;;
Gildas Bazin's avatar
 
Gildas Bazin committed
158
esac
159 160 161 162 163 164
AM_CONDITIONAL(HAVE_BEOS, test "x${SYS}" = "xbeos")
AM_CONDITIONAL(HAVE_DARWIN, test "x${SYS}" = "xdarwin")
AM_CONDITIONAL(HAVE_WIN32, test "x${SYS}" = "xmingw32")

AC_MSG_CHECKING(for suffix of libraries)
AC_MSG_RESULT(${LIBEXT})
Gildas Bazin's avatar
 
Gildas Bazin committed
165

Gildas Bazin's avatar
 
Gildas Bazin committed
166 167 168 169 170
dnl Check for the need to include the mingwex lib for mingw32
if test x$SYS = xmingw32
then
    AC_CHECK_LIB(mingwex,opendir,
        AC_CHECK_LIB(mingw32,opendir,LDFLAGS_vlc="${LDFLAGS_vlc}",
Gildas Bazin's avatar
 
Gildas Bazin committed
171 172
            [LDFLAGS_vlc="${LDFLAGS_vlc} -lmingwex"
             LDFLAGS_gtk="${LDFLAGS_gtk} -lmingwex"])
Gildas Bazin's avatar
 
Gildas Bazin committed
173 174 175
    )
fi

Gildas Bazin's avatar
 
Gildas Bazin committed
176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191
dnl Check for fnative-struct or mms-bitfields support for mingw32
if test x$SYS = xmingw32
then
    AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
        [ac_cv_c_mms_bitfields],
        [CFLAGS="${CFLAGS_save} -mms-bitfields"
         AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
    if test x"$ac_cv_c_mms_bitfields" != x"no"; then
        CFLAGS_mingw32_special="-mms-bitfields"
    else
        CFLAGS_mingw32_special="-fnative-struct"
    fi

    CFLAGS_save="${CFLAGS_save} ${CFLAGS_mingw32_special}"; CFLAGS="${CFLAGS_save}"
fi

Sam Hocevar's avatar
 
Sam Hocevar committed
192
dnl Flags for plugin compilation
193 194
case "x${SYS}" in
  xmingw32|xcygwin)
Gildas Bazin's avatar
 
Gildas Bazin committed
195 196 197 198 199 200
    CFLAGS_pics="${CFLAGS_pics} ${CFLAGS_mingw32_special}"
    CXXFLAGS_pics="${CXXFLAGS_pics} ${CFLAGS_mingw32_special}"
    OBJCFLAGS_pics="${OBJCFLAGS_pics} ${CFLAGS_mingw32_special}"
    CFLAGS_plugins="${CFLAGS_plugins} ${CFLAGS_mingw32_special}"
    CXXFLAGS_plugins="${CXXFLAGS_plugins} ${CFLAGS_mingw32_special}"
    OBJCFLAGS_plugins="${OBJCFLAGS_plugins} ${CFLAGS_mingw32_special}"
201 202 203 204 205 206 207 208 209 210 211
    ;;
  x*)
    CFLAGS_pics="${CFLAGS_pics} -fPIC"
    CXXFLAGS_pics="${CXXFLAGS_pics} -fPIC"
    OBJCFLAGS_pics="${OBJCFLAGS_pics} -fPIC"
    CFLAGS_plugins="${CFLAGS_plugins} -fPIC"
    CXXFLAGS_plugins="${CXXFLAGS_plugins} -fPIC"
    OBJCFLAGS_plugins="${OBJCFLAGS_plugins} -fPIC"
    LDFLAGS_plugins="${LDFLAGS_plugins} -fPIC"
    ;;
esac
Sam Hocevar's avatar
 
Sam Hocevar committed
212 213

dnl The -DSYS_FOO flag
214
CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
Sam Hocevar's avatar
 
Sam Hocevar committed
215

216
dnl Check for system libs needed
217
need_libc=false
218

219 220 221 222 223 224 225 226 227 228 229
AC_CHECK_FUNCS(gettimeofday select strerror strtod strtol isatty vasprintf swab sigrelse getpwuid memalign posix_memalign gethostbyname2 atoll getenv putenv setenv)

dnl Check for usual libc functions
AC_CHECK_FUNCS(strdup,,[need_libc=:])
AC_CHECK_FUNCS(strndup,,[need_libc=:])
AC_CHECK_FUNCS(atof,,[need_libc=:])
AC_CHECK_FUNCS(lseek,,[need_libc=:])
AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp,,[need_libc=:])])
AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp,,[need_libc=:])])

AM_CONDITIONAL(BUILD_LIBC, ${need_libc})
Sam Hocevar's avatar
 
Sam Hocevar committed
230

Sam Hocevar's avatar
 
Sam Hocevar committed
231
AC_CHECK_FUNC(connect,,[
232 233 234
  AC_CHECK_LIB(socket,connect,
    LDFLAGS_ipv4="${LDFLAGS_ipv4} -lsocket"
    LDFLAGS_vlc="${LDFLAGS_vlc} -lsocket"
Sam Hocevar's avatar
 
Sam Hocevar committed
235
)])
236

Sam Hocevar's avatar
Sam Hocevar committed
237
AC_CHECK_FUNC(send,,[
238 239
  AC_CHECK_LIB(socket,send,
    LDFLAGS_http="${LDFLAGS_http} -lsocket"
Sam Hocevar's avatar
Sam Hocevar committed
240
)])
241

Sam Hocevar's avatar
 
Sam Hocevar committed
242
AC_CHECK_FUNC(gethostbyname,,[
243 244
  AC_CHECK_LIB(nsl,gethostbyname,LDFLAGS_ipv4="${LDFLAGS_ipv4} -lnsl",[
    AC_CHECK_LIB(bind,gethostbyname,LDFLAGS_ipv4="${LDFLAGS_ipv4} -lbind")])
Sam Hocevar's avatar
 
Sam Hocevar committed
245
])
246 247 248

have_nanosleep=false
AC_CHECK_FUNC(nanosleep,have_nanosleep=:,[
249
  AC_CHECK_LIB(rt,nanosleep,
250
    [LDFLAGS_vlc="${LDFLAGS_vlc} -lrt"; have_nanosleep=:],
251
    [AC_CHECK_LIB(posix4,nanosleep,
252
        [LDFLAGS_vlc="${LDFLAGS_vlc} -lposix4"; have_nanosleep=:])]
253
  )
Sam Hocevar's avatar
 
Sam Hocevar committed
254
])
255 256 257
if ${have_nanosleep}; then
  AC_DEFINE(HAVE_NANOSLEEP, 1,
            Define if nanosleep is available.)
258
fi
259
# HP/UX port
260
AC_CHECK_LIB(rt,sem_init, [LDFLAGS_vlc="${LDFLAGS_vlc} -lrt"])
261

Sam Hocevar's avatar
 
Sam Hocevar committed
262
AC_CHECK_FUNC(inet_aton,,[
263
  AC_CHECK_LIB(resolv,inet_aton,LDFLAGS_ipv4="${LDFLAGS_ipv4} -lresolv")
264 265
])
AC_CHECK_FUNC(textdomain,,[
266 267 268 269
  AC_CHECK_LIB(intl,textdomain,
    LDFLAGS_vlc="${LDFLAGS_vlc} -lintl"
    LDFLAGS_plugins="${LDFLAGS_plugins} -lintl"
  )
Sam Hocevar's avatar
 
Sam Hocevar committed
270
])
Sam Hocevar's avatar
 
Sam Hocevar committed
271

Sam Hocevar's avatar
 
Sam Hocevar committed
272
dnl Check for getopt
273
need_getopt=false
Sam Hocevar's avatar
 
Sam Hocevar committed
274 275
AC_CHECK_FUNC(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
[ # FreeBSD has a gnugetopt library for this:
276 277 278 279
  AC_CHECK_LIB([gnugetopt],[getopt_long],
    [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support) LDFLAGS_vlc="${LDFLAGS_vlc} -lgnugetopt"],
    [need_getopt=:])])
AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
Sam Hocevar's avatar
 
Sam Hocevar committed
280

281
AC_TYPE_SIGNAL
282
AC_CHECK_LIB(dl,dlopen,LDFLAGS_vlc="${LDFLAGS_vlc} -ldl")
Sam Hocevar's avatar
 
Sam Hocevar committed
283
AC_CHECK_LIB(m,cos,
284 285
  LDFLAGS_imdct="${LDFLAGS_imdct} -lm"
  LDFLAGS_filter_distort="${LDFLAGS_filter_distort} -lm")
Sam Hocevar's avatar
 
Sam Hocevar committed
286
AC_CHECK_LIB(m,pow,
287 288 289 290 291 292
  LDFLAGS_ffmpeg="${LDFLAGS_ffmpeg} -lm"
  LDFLAGS_imdct="${LDFLAGS_imdct} -lm"
  LDFLAGS_imdct3dn="${LDFLAGS_imdct3dn} -lm"
  LDFLAGS_imdctsse="${LDFLAGS_imdctsse} -lm"
  LDFLAGS_i420_rgb="${LDFLAGS_i420_rgb} -lm"
  LDFLAGS_faad="${LDFLAGS_faad} -lm"
Sam Hocevar's avatar
 
Sam Hocevar committed
293
)
Sam Hocevar's avatar
 
Sam Hocevar committed
294

Sam Hocevar's avatar
 
Sam Hocevar committed
295
dnl Check for pthreads - borrowed from XMMS
Sam Hocevar's avatar
 
Sam Hocevar committed
296
THREAD_LIB=error
297
if test "x${THREAD_LIB}" = "xerror"; then
298
  AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
Sam Hocevar's avatar
 
Sam Hocevar committed
299
fi
300
if test "x${THREAD_LIB}" = "xerror"; then
301
  AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
Sam Hocevar's avatar
 
Sam Hocevar committed
302
fi
303
if test "x${THREAD_LIB}" = "xerror"; then
304
  AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
Sam Hocevar's avatar
 
Sam Hocevar committed
305
fi
306
if test "x${THREAD_LIB}" = "xerror"; then
307 308
  AC_CHECK_FUNC(pthread_mutex_lock)
  THREAD_LIB=""
Sam Hocevar's avatar
 
Sam Hocevar committed
309
fi
Sam Hocevar's avatar
 
Sam Hocevar committed
310 311 312

dnl Check for cthreads under GNU/Hurd for instance
AC_CHECK_LIB(threads,cthread_fork,THREAD_LIB="-lthreads")
313

Sam Hocevar's avatar
 
Sam Hocevar committed
314 315
dnl Check for misc headers
AC_EGREP_HEADER(pthread_cond_t,pthread.h,[
316 317
  AC_DEFINE(PTHREAD_COND_T_IN_PTHREAD_H, 1,
            Define if <pthread.h> defines pthread_cond_t.)])
Sam Hocevar's avatar
Sam Hocevar committed
318
AC_EGREP_HEADER(pthread_once,pthread.h,[
319 320
  AC_DEFINE(PTHREAD_ONCE_IN_PTHREAD_H, 1,
            Define if <pthread.h> defines pthread_once.)])
Sam Hocevar's avatar
 
Sam Hocevar committed
321
AC_EGREP_HEADER(strncasecmp,strings.h,[
322 323
  AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
            Define if <strings.h> defines strncasecmp.)])
Sam Hocevar's avatar
 
Sam Hocevar committed
324

Sam Hocevar's avatar
 
Sam Hocevar committed
325
dnl Check for headers
326 327
AC_CHECK_HEADERS(signal.h time.h errno.h stdint.h getopt.h strings.h inttypes.h sys/int_types.h)
AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h)
Sam Hocevar's avatar
 
Sam Hocevar committed
328 329
AC_CHECK_HEADERS(dlfcn.h image.h)
AC_CHECK_HEADERS(arpa/inet.h net/if.h netinet/in.h sys/socket.h)
Sam Hocevar's avatar
 
Sam Hocevar committed
330
AC_CHECK_HEADERS(machine/param.h sys/shm.h)
331
AC_CHECK_HEADERS(linux/version.h)
Sam Hocevar's avatar
 
Sam Hocevar committed
332

Sam Hocevar's avatar
 
Sam Hocevar committed
333 334
AC_HEADER_TIME

335 336
dnl Check for dirent
need_dirent=false
337
AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
338 339
AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})

340
dnl Mac OS X and other OSes don't have declaration for nanosleep
341
AC_EGREP_HEADER(nanosleep,time.h,[
342 343
  AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
            Define if <time.h> defines nanosleep.)
344
])
345 346

dnl Make sure we have timespecs
347
AC_EGREP_HEADER(timespec,sys/time.h,[
348 349
  AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
            Define if <sys/time.h> defines struct timespec.)
350
])
351

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

355 356
dnl Default X headers and libraries
if test "x${x_includes}" = "xNONE"; then
357
  x_includes="/usr/X11R6/include"
358 359
fi
if test "x${x_libraries}" = "xNONE"; then
360
  x_libraries="/usr/X11R6/lib"
361 362
fi

363
dnl Build the gtk_main plugins?
364
NEED_GTK_MAIN=no
365
NEED_GNOME_MAIN=no
366

Sam Hocevar's avatar
 
Sam Hocevar committed
367
dnl Check for DPMS
368
if test "x${SYS}" != "xmingw32"
Sam Hocevar's avatar
 
Sam Hocevar committed
369
then
370 371 372 373 374 375 376 377
  CPPFLAGS="${CPPFLAGS_save} -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="${CPPFLAGS_save}"
Sam Hocevar's avatar
 
Sam Hocevar committed
378 379
fi

Sam Hocevar's avatar
 
Sam Hocevar committed
380
dnl Check for ntohl, etc.
381
AC_CACHE_CHECK([for ntohl in sys/param.h],
382 383 384 385 386
    [ac_cv_c_ntohl_sys_param_h],
    [CFLAGS="${CFLAGS_save} -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)])
387
if test "x${ac_cv_c_ntohl_sys_param_h}" != "xno"; then
388
    AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
389
fi
Sam Hocevar's avatar
 
Sam Hocevar committed
390

Sam Hocevar's avatar
 
Sam Hocevar committed
391
dnl Check for inline function size limit
392
AC_CACHE_CHECK([if \$CC accepts -finline-limit],
393 394 395
    [ac_cv_c_inline_limit],
    [CFLAGS="${CFLAGS_save} -finline-limit-30000"
     AC_TRY_COMPILE([],,ac_cv_c_inline_limit=yes, ac_cv_c_inline_limit=no)])
396
if test "x${ac_cv_c_inline_limit}" != "xno"; then
397 398 399
    CFLAGS_save="${CFLAGS_save} -finline-limit-30000"; CFLAGS="${CFLAGS_save}"
    CXXFLAGS_save="${CXXFLAGS_save} -finline-limit-30000"; CXXFLAGS="${CXXFLAGS_save}"
    OBJCFLAGS_save="${OBJCFLAGS_save} -finline-limit-30000"; OBJCFLAGS="${OBJCFLAGS_save}"
400
fi
Sam Hocevar's avatar
 
Sam Hocevar committed
401

Sam Hocevar's avatar
 
Sam Hocevar committed
402 403
dnl Check for -W or -w flags
AC_CACHE_CHECK([if \$CC accepts -Wall -Winline],
404 405 406
    [ac_cv_c_Wall_Winline],
    [CFLAGS="-Wall -Winline ${CFLAGS_save}"
     AC_TRY_COMPILE([],,ac_cv_c_Wall_Winline=yes, ac_cv_c_Wall_Winline=no)])
407
if test "x${ac_cv_c_Wall_Winline}" != "xno"; then
408 409 410
    CFLAGS_save="-Wall -Winline ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
    CXXFLAGS_save="-Wall -Winline ${CXXFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
    OBJCFLAGS_save="-Wall -Winline ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
Sam Hocevar's avatar
 
Sam Hocevar committed
411
else
412 413 414 415 416 417 418 419 420
    AC_CACHE_CHECK([if \$CC accepts -wall -winline],
        [ac_cv_c_wall_winline],
        [CFLAGS="-wall -winline ${CFLAGS_save}"
         AC_TRY_COMPILE([],,ac_cv_c_wall_winline=yes, ac_cv_c_wall_winline=no)])
    if test "x${ac_cv_c_wall_winline}" != "xno"; then
        CFLAGS_save="-wall -winline ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
        CXXFLAGS_save="-wall -winline ${CXXFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
        OBJCFLAGS_save="-wall -winline ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
    fi
Sam Hocevar's avatar
 
Sam Hocevar committed
421 422 423 424
fi

dnl Check for -pipe
AC_CACHE_CHECK([if \$CC accepts -pipe],
425 426 427
    [ac_cv_c_pipe],
    [CFLAGS="${CFLAGS_save} -pipe"
     AC_TRY_COMPILE([],,ac_cv_c_pipe=yes, ac_cv_c_pipe=no)])
428
if test "x${ac_cv_c_pipe}" != "xno"; then
429 430 431
    CFLAGS_save="${CFLAGS_save} -pipe"; CFLAGS="${CFLAGS_save}"
    CXXFLAGS_save="${CXXFLAGS_save} -pipe"; CXXFLAGS="${CXXFLAGS_save}"
    OBJCFLAGS_save="${OBJCFLAGS_save} -pipe"; OBJCFLAGS="${OBJCFLAGS_save}"
Sam Hocevar's avatar
 
Sam Hocevar committed
432 433 434 435
fi

dnl Check for various optimization flags
AC_CACHE_CHECK([if \$CC accepts -O3],
436 437 438
    [ac_cv_c_o3],
    [CFLAGS="${CFLAGS_save} -O3"
     AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
439
if test "x${ac_cv_c_o3}" != "xno"; then
440
    CFLAGS_OPTIM="${CFLAGS_OPTIM} -O3"
441
else
442 443 444 445 446 447 448 449 450 451 452 453 454 455
    AC_CACHE_CHECK([if \$CC accepts -O2],
        [ac_cv_c_o2],
        [CFLAGS="${CFLAGS_save} -O2"
         AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
    if test "x${ac_cv_c_o2}" != "xno"; then
        CFLAGS_OPTIM="${CFLAGS_OPTIM} -O2"
    else
        AC_CACHE_CHECK([if \$CC accepts -O],
            [ac_cv_c_o],
            [CFLAGS="${CFLAGS_save} -O"
             AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
        if test "x${ac_cv_c_o}" != "xno"; then
            CFLAGS_OPTIM="${CFLAGS_OPTIM} -O"
        fi
Sam Hocevar's avatar
 
Sam Hocevar committed
456 457 458 459 460
    fi
fi

dnl Check for -ffast-math
AC_CACHE_CHECK([if \$CC accepts -ffast-math],
461 462 463
    [ac_cv_c_fast_math],
    [CFLAGS="${CFLAGS_save} -ffast-math"
     AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
464
if test "x${ac_cv_c_fast_math}" != "xno"; then
465
    CFLAGS_OPTIM="${CFLAGS_OPTIM} -ffast-math"
Sam Hocevar's avatar
 
Sam Hocevar committed
466 467 468 469
fi

dnl Check for -funroll-loops
AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
470 471 472
    [ac_cv_c_unroll_loops],
    [CFLAGS="${CFLAGS_save} -funroll-loops"
     AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
473
if test "x${ac_cv_c_unroll_loops}" != "xno"; then
474
    CFLAGS_OPTIM="${CFLAGS_OPTIM} -funroll-loops"
Sam Hocevar's avatar
 
Sam Hocevar committed
475 476 477 478
fi

dnl Check for -fomit-frame-pointer
AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
479 480 481
    [ac_cv_c_omit_frame_pointer],
    [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
     AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
482
if test "x${ac_cv_c_omit_frame_pointer}" != "xno"; then
483 484 485
    CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
    # this plugin does not compile without -fomit-frame-pointer, damn gcc!
    CFLAGS_i420_yuy2_mmx="${CFLAGS_i420_yuy2_mmx} -fomit-frame-pointer"
Sam Hocevar's avatar
 
Sam Hocevar committed
486 487
fi

488 489 490 491 492 493
dnl Check for -mdynamic-no-pic
AC_CACHE_CHECK([if \$CC accepts -mdynamic-no-pic],
    [ac_cv_c_dynamic_no_pic],
    [CFLAGS="${CFLAGS_save} -mdynamic-no-pic"
     AC_TRY_COMPILE([],,ac_cv_c_dynamic_no_pic=yes, ac_cv_c_dynamic_no_pic=no)])
if test "x${ac_cv_c_dynamic_no_pic}" != "xno"; then
494
    CFLAGS_builtins="${CFLAGS_OPTIM} -mdynamic-no-pic"
495 496
fi

Sam Hocevar's avatar
 
Sam Hocevar committed
497
dnl Check for Darwin plugin linking flags
Christophe Massiot's avatar
Christophe Massiot committed
498
AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error -lcc_dynamic],
499 500 501
    [ac_cv_ld_darwin],
    [CFLAGS="${CFLAGS_save} -bundle -undefined error -lcc_dynamic"
     AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
502
if test "x${ac_cv_ld_darwin}" != "xno"; then
503
    LDFLAGS_plugins="${LDFLAGS_plugins} -bundle -undefined error -lcc_dynamic"
504
fi
Sam Hocevar's avatar
 
Sam Hocevar committed
505 506

dnl Check for standard plugin linking flags
507
AC_CACHE_CHECK([if \$CC accepts -shared],
508 509 510
    [ac_cv_ld_plugins],
    [CFLAGS="${CFLAGS_save} -shared"
     AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
511
if test "x${ac_cv_ld_plugins}" != "xno"; then
512
    LDFLAGS_plugins="${LDFLAGS_plugins} -shared"
Sam Hocevar's avatar
 
Sam Hocevar committed
513
fi
514

515 516
dnl Check for variadic macros
AC_CACHE_CHECK([for variadic cpp macros],
517 518 519 520 521 522 523 524
    [ac_cv_cpp_variadic_macros],
    [CFLAGS="${CFLAGS_save}"
     AC_TRY_COMPILE(
         [#include <stdio.h>
          #define a(b,c...) printf(b,##c)],
         [a("foo");a("%s","bar");a("%s%s","baz","quux");],
         ac_cv_cpp_variadic_macros=yes,
         ac_cv_cpp_variadic_macros=no)])
525
if test "x${ac_cv_cpp_variadic_macros}" != "xno"; then
526
    AC_DEFINE(HAVE_VARIADIC_MACROS, 1, Support for variadic macros)
527 528
fi

529 530
dnl Checks for __attribute__(aligned()) directive
AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
531 532 533 534 535 536 537 538 539
    [ac_cv_c_attribute_aligned],
    [ac_cv_c_attribute_aligned=0
        CFLAGS="${CFLAGS_save} -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
        CFLAGS="${CFLAGS_save}"])
540
if test "x${ac_cv_c_attribute_aligned}" != "x0"; then
541 542
    AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
        [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
543 544
fi

Sam Hocevar's avatar
 
Sam Hocevar committed
545 546 547
dnl
dnl  Check the CPU
dnl
548
case "x${target_cpu}" in
549 550 551 552 553 554 555 556 557 558 559 560
  x)
    ARCH=unknown
    ;;
  *)
    ARCH="${target_cpu}"
    ;;
esac

case "${ARCH}" in
  hppa64)
    CFLAGS_mpeg_video="${CFLAGS_mpeg_video} -ffunction-sections"
    ;;
Sam Hocevar's avatar
 
Sam Hocevar committed
561
esac
Sam Hocevar's avatar
 
Sam Hocevar committed
562 563 564 565

dnl
dnl  default modules
dnl
566
PLUGINS="${PLUGINS} dummy rc logger access_file memcpy"
567 568 569
PLUGINS="${PLUGINS} es audio mpeg_system ps ts"
PLUGINS="${PLUGINS} idct idctclassic motion mpeg_video spudec mpeg_audio"
#PLUGINS="${PLUGINS} a52old imdct downmix"
570
PLUGINS="${PLUGINS} lpcm a52"
571
PLUGINS="${PLUGINS} deinterlace invert yuv wall transform distort clone crop motionblur"
Gildas Bazin's avatar
 
Gildas Bazin committed
572
PLUGINS="${PLUGINS} float32tos16 float32tos8 float32tou16 float32tou8 a52tospdif fixed32tofloat32 fixed32tos16 s16tofloat32 s16tofloat32swab s8tofloat32 u8tofloat32"
573
PLUGINS="${PLUGINS} trivial_resampler ugly_resampler linear_resampler"
574 575 576 577 578 579
PLUGINS="${PLUGINS} trivial_channel_mixer"
PLUGINS="${PLUGINS} trivial_mixer spdif_mixer"
PLUGINS="${PLUGINS} aout_file"
#PLUGINS="${PLUGINS} scope"
PLUGINS="${PLUGINS} i420_rgb i420_yuy2 i422_yuy2 i420_ymga"
PLUGINS="${PLUGINS} id3"
580
PLUGINS="${PLUGINS} wav araw"
581

582 583 584
dnl
dnl  Network modules
dnl
585
NETWORK_MODULES="access_udp access_http access_rtp ipv4"
586

Sam Hocevar's avatar
 
Sam Hocevar committed
587 588 589
dnl
dnl  Accelerated modules
dnl
590 591 592 593 594
MMX_MODULES="memcpymmx idctmmx motionmmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx"
MMXEXT_MODULES="memcpymmxext idctmmxext motionmmxext"
THREEDNOW_MODULES="memcpy3dn imdct3dn downmix3dn"
SSE_MODULES="imdctsse downmixsse"
ALTIVEC_MODULES="idctaltivec motionaltivec memcpyaltivec"
595

596
if test x${SYS} != xbeos
597
then
598
  PLUGINS="${PLUGINS} ${NETWORK_MODULES}"
599 600
fi

601 602
AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
    [ac_cv_mmx_inline],
603
    [CFLAGS="${CFLAGS_save}"
Sam Hocevar's avatar
Sam Hocevar committed
604
     AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
605
                    ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
606
if test "x${ac_cv_mmx_inline}" != "xno"; then
Sam Hocevar's avatar
 
Sam Hocevar committed
607
  ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
608
fi
Sam Hocevar's avatar
 
Sam Hocevar committed
609

610 611
AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
    [ac_cv_mmxext_inline],
612
    [CFLAGS="${CFLAGS_save}"
Sam Hocevar's avatar
Sam Hocevar committed
613
     AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
614
                    ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
615
if test "x${ac_cv_mmxext_inline}" != "xno"; then
Sam Hocevar's avatar
 
Sam Hocevar committed
616
  ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
617
fi
Sam Hocevar's avatar
 
Sam Hocevar committed
618

619 620
AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
    [ac_cv_3dnow_inline],
621
    [CFLAGS="${CFLAGS_save}"
Sam Hocevar's avatar
Sam Hocevar committed
622
     AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
623
                    ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
624
if test "x${ac_cv_3dnow_inline}" != "xno"; then
Sam Hocevar's avatar
 
Sam Hocevar committed
625
  AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
Sam Hocevar's avatar
 
Sam Hocevar committed
626
  ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
627
fi
Sam Hocevar's avatar
 
Sam Hocevar committed
628

629 630
AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
    [ac_cv_sse_inline],
631
    [CFLAGS="${CFLAGS_save}"
Sam Hocevar's avatar
Sam Hocevar committed
632
     AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
633
                    ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
634
if test "x${ac_cv_sse_inline}" != "xno" -a "x${SYS}" != "xmingw32"; then
Sam Hocevar's avatar
 
Sam Hocevar committed
635
  AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.)
Sam Hocevar's avatar
 
Sam Hocevar committed
636
  ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
637
fi
Sam Hocevar's avatar
 
Sam Hocevar committed
638

Sam Hocevar's avatar
Sam Hocevar committed
639
# don't try to grok AltiVec with native mingw32 it doesn't work right now
Gildas Bazin's avatar
 
Gildas Bazin committed
640
# we should be able to remove this test with future versions of mingw32
641
if test "x${SYS}" != "xmingw32"; then
Sam Hocevar's avatar
Sam Hocevar committed
642
AC_CACHE_CHECK([if \$CC groks AltiVec inline assembly],
643
    [ac_cv_altivec_inline],
644
    [CFLAGS="${CFLAGS_save}"
Sam Hocevar's avatar
Sam Hocevar committed
645
     AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
646
         ac_cv_altivec_inline=yes,
647
         [CFLAGS="${CFLAGS_save} -Wa,-m7400"
Sam Hocevar's avatar
 
Sam Hocevar committed
648
          AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
649
            [ac_cv_altivec_inline="-Wa,-m7400"],
650
            ac_cv_altivec_inline=no)
651
         ])])
652
if test "x${ac_cv_altivec_inline}" != "xno"; then
Sam Hocevar's avatar
Sam Hocevar committed
653
  AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks AltiVec inline assembly.)
654
  if test "x${ac_cv_altivec_inline}" != "xyes"; then
655 656 657 658
    CFLAGS_idctaltivec="${CFLAGS_idctaltivec} ${ac_cv_altivec_inline}"
    CFLAGS_motionaltivec="${CFLAGS_motionaltivec} ${ac_cv_altivec_inline}"
    CFLAGS_memcpyaltivec="${CFLAGS_memcpyaltivec} ${ac_cv_altivec_inline}"
    CFLAGS_vlc="${CFLAGS_vlc} ${ac_cv_altivec_inline}"
659
  fi
660
  ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
661
fi
662

Sam Hocevar's avatar
Sam Hocevar committed
663
AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
664
    [ac_cv_c_altivec],
665
    [CFLAGS="${CFLAGS_save} -faltivec"
666
     # Darwin test
Sam Hocevar's avatar
 
Sam Hocevar committed
667
     AC_TRY_COMPILE(,[vec_mtvscr((vector unsigned int)(0));],
668 669
        ac_cv_c_altivec=-faltivec, [
        # Linux/PPC test
670
        CFLAGS="${CFLAGS_save} ${CFLAGS_idctaltivec} -fvec"
Sam Hocevar's avatar
 
Sam Hocevar committed
671
        AC_TRY_COMPILE(,[vec_mtvscr((vector unsigned int)(0));],
672 673
            [ac_cv_c_altivec="-fvec"], ac_cv_c_altivec=no)
        ])
674
     CFLAGS="${CFLAGS_save}"])
675
if test "x${ac_cv_c_altivec}" != "xno"; then
Sam Hocevar's avatar
Sam Hocevar committed
676
  AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C AltiVec extensions.)
677 678 679 680
  CFLAGS_idctaltivec="${CFLAGS_idctaltivec} ${ac_cv_c_altivec}"
  CFLAGS_motionaltivec="${CFLAGS_motionaltivec} ${ac_cv_c_altivec}"
  CFLAGS_memcpyaltivec="${CFLAGS_memcpyaltivec} ${ac_cv_c_altivec}"
  CFLAGS_vlc="${CFLAGS_vlc} ${ac_cv_c_altivec}"
681
  ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
682 683 684 685
fi

AC_CACHE_CHECK([if linker needs -framework vecLib],
    [ac_cv_ld_altivec],
686
    [LDFLAGS="${LDFLAGS_vlc} -framework vecLib"
687
     AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
688
     LDFLAGS="${LDFLAGS_save}"
689
    ])
690
if test "x${ac_cv_ld_altivec}" != "xno"; then
691 692 693 694
  LDFLAGS_idctaltivec="${LDFLAGS_idctaltivec} -framework vecLib"
  LDFLAGS_motionaltivec="${LDFLAGS_motionaltivec} -framework vecLib"
  LDFLAGS_memcpyaltivec="${LDFLAGS_memcpyaltivec} -framework vecLib"
  LDFLAGS_vlc="${LDFLAGS_vlc} -framework vecLib"
695
fi
Gildas Bazin's avatar
 
Gildas Bazin committed
696
fi # end if mingw32
697

Sam Hocevar's avatar
 
Sam Hocevar committed
698 699 700
AC_ARG_WITH(,[])
AC_ARG_WITH(,[Optimization options:])

Sam Hocevar's avatar
 
Sam Hocevar committed
701
dnl
702
dnl  Special arch tuning
Sam Hocevar's avatar
 
Sam Hocevar committed
703
dnl
704
AC_ARG_WITH(tuning,
Sam Hocevar's avatar
 
Sam Hocevar committed
705
[  --with-tuning=ARCH      enable special tuning for an architecture
706
                          (default i686 on IA-32 and 750 on PPC)])
707
if test "x${with_tuning}" != "x"; then
708 709 710 711 712
    if test "x${target_cpu}" = "xpowerpc"; then
        CFLAGS_TUNING="-mtune=${with_tuning}"
    else
        CFLAGS_TUNING="-mcpu=${with_tuning}"
    fi
713
else
714
    if test "x${target_cpu}" = "xi686" -o "x${target_cpu}" = "xi586" -o "x${target_cpu}" = "xi486" -o "x${target_cpu}" = "xi386"; then CFLAGS_TUNING="-mcpu=pentiumpro"
715
    else
716
        if test "x${target_cpu}" = "xpowerpc"; then CFLAGS_TUNING="-mtune=750"; fi
717 718
    fi
fi
Sam Hocevar's avatar
 
Sam Hocevar committed
719 720

dnl
Sam Hocevar's avatar
 
Sam Hocevar committed
721
dnl  x86 accelerations
Sam Hocevar's avatar
 
Sam Hocevar committed
722
dnl
723
if test "x${target_cpu}" = "xi686" -o "x${target_cpu}" = "xi586" -o "x${target_cpu}" = "xx86" -o "x${target_cpu}" = "xi386"
Sam Hocevar's avatar
 
Sam Hocevar committed
724 725
then
    ARCH="${ARCH} mmx"
Sam Hocevar's avatar
Sam Hocevar committed
726
    PLUGINS="${PLUGINS} ${ACCEL_MODULES}"
Sam Hocevar's avatar
 
Sam Hocevar committed
727
fi
Sam Hocevar's avatar
 
Sam Hocevar committed
728

Sam Hocevar's avatar
 
Sam Hocevar committed
729 730 731 732
dnl
dnl  Enable/disable optimizations
dnl
AC_ARG_ENABLE(optimizations,
733 734
[  --disable-optimizations disable compiler optimizations (default enabled)])
AM_CONDITIONAL(OPTIM, test "x${enable_optimizations}" != "xno")
Sam Hocevar's avatar
 
Sam Hocevar committed
735

Sam Hocevar's avatar
 
Sam Hocevar committed
736 737 738
dnl
dnl  AltiVec acceleration
dnl
739
AC_ARG_ENABLE(altivec,
Sam Hocevar's avatar
Sam Hocevar committed
740
[  --disable-altivec       disable AltiVec optimizations (default enabled on PPC)],
741
[ if test "x${enable_altivec}" = "xyes"; then ARCH="${ARCH} altivec";
742
    BUILTINS="${BUILTINS} ${ACCEL_MODULES}"; fi ],
743
[ if test "x${target_cpu}" = "xpowerpc"; then ARCH="${ARCH} altivec";
744
    BUILTINS="${BUILTINS} ${ACCEL_MODULES}"; fi ])
Sam Hocevar's avatar
 
Sam Hocevar committed
745 746 747 748

dnl
dnl  Debugging mode
dnl
749
AC_ARG_ENABLE(debug,
750 751
[  --enable-debug          debug mode (default disabled)])
AM_CONDITIONAL(DEBUG, test "x${enable_debug}" = "xyes")
Sam Hocevar's avatar
 
Sam Hocevar committed
752

Sam Hocevar's avatar
 
Sam Hocevar committed
753
dnl
Sam Hocevar's avatar
 
Sam Hocevar committed
754
dnl  Enable release-specific flags
Sam Hocevar's avatar
 
Sam Hocevar committed
755
dnl
Sam Hocevar's avatar
 
Sam Hocevar committed
756
AC_ARG_ENABLE(release,
757 758
[  --enable-release        activate extra optimizations (default disabled)])
AM_CONDITIONAL(RELEASE, test "x${enable_release}" = "xyes")
Sam Hocevar's avatar
 
Sam Hocevar committed
759

Sam Hocevar's avatar
 
Sam Hocevar committed
760
dnl
Sam Hocevar's avatar
 
Sam Hocevar committed
761
dnl  Input plugins
Sam Hocevar's avatar
 
Sam Hocevar committed
762 763
dnl

Sam Hocevar's avatar
 
Sam Hocevar committed
764
AC_ARG_WITH(,[Input plugins:])
Sam Hocevar's avatar
 
Sam Hocevar committed
765 766

dnl
Sam Hocevar's avatar
 
Sam Hocevar committed
767 768 769 770
dnl  DVD module: optionally check for installed libdvdcss
dnl
AC_ARG_ENABLE(dvd,
[  --enable-dvd            DVD input module (default enabled)])
771
if test "x${enable_dvd}" != "xno"
Sam Hocevar's avatar
 
Sam Hocevar committed
772
then
773
  AC_ARG_WITH(dvdcss,
Sam Hocevar's avatar
 
Sam Hocevar committed
774
  [    --with-dvdcss=PATH    libdvdcss headers and libraries])
775
  AC_ARG_WITH(dvdcss-tree,
Sam Hocevar's avatar
 
Sam Hocevar committed
776
  [    --with-dvdcss-tree=PATH libdvdcss tree for static linking])
777
  case "x${with_dvdcss}" in
Sam Hocevar's avatar
 
Sam Hocevar committed
778
  x|xyes)
779
    if test "x${with_dvdcss_tree}" = x
Sam Hocevar's avatar
 
Sam Hocevar committed
780 781
    then
      AC_CHECK_HEADERS(dvdcss/dvdcss.h,
782
        [ PLUGINS="${PLUGINS} dvd"
783 784
          LDFLAGS_dvd="${LDFLAGS_dvd} -ldvdcss"
          LDFLAGS_dvdcss="${LDFLAGS_dvdcss} -ldvdcss" ],
Sam Hocevar's avatar
 
Sam Hocevar committed
785 786 787 788 789
        [ AC_MSG_WARN([libdvdcss is no longer provided with vlc; please get libdvdcss from http://www.videolan.org/libdvdcss/ and build it. Then either use --with-dvdcss=<path/where/libdvdcss/was/installed> for dynamic linking (recommended under Unix) or --with-dvdcss-tree=<path/where/libdvdcss/was/built> for static linking (recommended under BeOS, Windows, MacOS X). Alternatively you can use --disable-dvd to disable the DVD plugin.])
          AC_MSG_ERROR([cannot find libdvdcss headers]) ])
    else
      AC_MSG_CHECKING(for libdvdcss.a in ${with_dvdcss_tree})
      real_dvdcss_tree="`cd ${with_dvdcss_tree} 2>/dev/null && pwd`"
790
      if test "x${real_dvdcss_tree}" = "x"
Sam Hocevar's avatar
 
Sam Hocevar committed
791 792 793 794 795 796 797 798 799
      then
        dnl  The given directory can't be found
        AC_MSG_RESULT(no)
        AC_MSG_ERROR([cannot cd to ${with_dvdcss_tree}])
      fi
      if test -f "${real_dvdcss_tree}/src/.libs/libdvdcss.a"
      then
        dnl  Use a custom libdvdcss
        AC_MSG_RESULT(${real_dvdcss_tree}/src/.libs/libdvdcss.a)
800 801
        BUILTINS="${BUILTINS} dvd"
        LDFLAGS_dvd="${LDFLAGS_dvd} ${real_dvdcss_tree}/src/.libs/libdvdcss.a"
802
        LDFLAGS_dvdcss="${LDFLAGS_dvdcss} ${real_dvdcss_tree}/src/.libs/libdvdcss.a"
803
        CPPFLAGS_dvd="${CPPFLAGS_dvd} -I${real_dvdcss_tree}/src"
Sam Hocevar's avatar
 
Sam Hocevar committed
804 805 806 807 808 809
      else
        dnl  The given libdvdcss wasn't built
        AC_MSG_RESULT(no)
        AC_MSG_ERROR([cannot find ${real_dvdcss_tree}/src/.libs/libdvdcss.a, make sure you compiled libdvdcss in ${with_dvdcss_tree}])
      fi
    fi
Sam Hocevar's avatar
 
Sam Hocevar committed
810 811
  ;;
  xno)
Sam Hocevar's avatar
 
Sam Hocevar committed
812
    dnl  Compile without dvdcss (dlopen version, works only under Linux)
813 814 815
    PLUGINS="${PLUGINS} dvd"
    CPPFLAGS_dvd="${CPPFLAGS_dvd} -DGOD_DAMN_DMCA"
    LDFLAGS_dvd="${LDFLAGS_dvd} -ldl"
Sam Hocevar's avatar
 
Sam Hocevar committed
816 817
  ;;
  *)
Sam Hocevar's avatar
 
Sam Hocevar committed
818 819
    AC_MSG_CHECKING(for dvdcss headers in ${with_dvdcss})
    if test -f ${with_dvdcss}/include/dvdcss/dvdcss.h
Sam Hocevar's avatar
 
Sam Hocevar committed
820
    then
Sam Hocevar's avatar
 
Sam Hocevar committed
821
      dnl  Use ${with_dvdcss}/include/dvdcss/dvdcss.h
Sam Hocevar's avatar
 
Sam Hocevar committed
822
      AC_MSG_RESULT(yes)
823 824
      PLUGINS="${PLUGINS} dvd"
      LDFLAGS_dvd="${LDFLAGS_dvd} -L${with_dvdcss}/lib -ldvdcss"
825
      LDFLAGS_dvdcss="${LDFLAGS_dvdcss} -L${with_dvdcss}/lib -ldvdcss"
826
      CPPFLAGS_dvd="${CPPFLAGS_dvd} -I${with_dvdcss}/include"
Sam Hocevar's avatar
 
Sam Hocevar committed
827
    else
Sam Hocevar's avatar
 
Sam Hocevar committed
828
      dnl  No libdvdcss could be found, sorry
Sam Hocevar's avatar
 
Sam Hocevar committed
829
      AC_MSG_RESULT(no)
Sam Hocevar's avatar
 
Sam Hocevar committed
830
      AC_MSG_ERROR([cannot find ${with_dvdcss}/include/dvdcss/dvdcss.h])
Sam Hocevar's avatar
 
Sam Hocevar committed
831 832 833 834
    fi
  ;;
  esac
fi
Sam Hocevar's avatar
 
Sam Hocevar committed
835

Stéphane Borel's avatar
Stéphane Borel committed
836
dnl
Sam Hocevar's avatar
 
Sam Hocevar committed
837
dnl dvdread module: check for libdvdread plugin
Stéphane Borel's avatar
Stéphane Borel committed
838
dnl
Sam Hocevar's avatar
 
Sam Hocevar committed
839 840
AC_ARG_ENABLE(dvdread,
[  --enable-dvdread        dvdread input module (default disabled)])
841
if test "x${enable_dvdread}" != "xno"
Sam Hocevar's avatar
 
Sam Hocevar committed
842
then
843
  AC_ARG_WITH(dvdread,
Sam Hocevar's avatar
 
Sam Hocevar committed
844
  [    --with-dvdread=PATH   libdvdread headers and libraries])
845
  if test "x${with_dvdread}" = "x"
Sam Hocevar's avatar
 
Sam Hocevar committed
846
  then
847 848
    LDFLAGS_test=""
    CPPFLAGS_test=""
Sam Hocevar's avatar
 
Sam Hocevar committed
849
  else
850 851
    LDFLAGS_test="-L${with_dvdread}/lib"
    CPPFLAGS_test="-I${with_dvdread}/include"
Sam Hocevar's avatar
 
Sam Hocevar committed
852
  fi
853
  CPPFLAGS="${CPPFLAGS_save} ${CPPFLAGS_test}"
Sam Hocevar's avatar
 
Sam Hocevar committed
854 855
  AC_CHECK_HEADERS(dvdread/dvd_reader.h, [
     AC_TRY_COMPILE([#include <dvdread/dvd_reader.h>],
856
        [int foo() { return DVD_VIDEO_LB_LEN; }],[
857
          PLUGINS="${PLUGINS} dvdread"
858
          LDFLAGS_dvdread="${LDFLAGS_dvdread} ${LDFLAGS_test} -ldvdread ${LDFLAGS_dvdcss}"
859
          CPPFLAGS_dvdread="${CPPFLAGS_dvdread} ${CPPFLAGS_test}"
Sam Hocevar's avatar
 
Sam Hocevar committed
860
        ],[
861
          if test "x${enable_dvdread}" != "x"
Sam Hocevar's avatar
 
Sam Hocevar committed
862 863 864 865 866
          then
            AC_MSG_ERROR([Cannot find DVD_VIDEO_LB_LEN in dvdread/dvd_reader.h, please install libdvdread version 0.9.2 or later])
          fi
        ])
  ],[
867
    if test "x${enable_dvdread}" != "x"
868
    then
869
      if test "x${with_dvdread}" != "x"
Sam Hocevar's avatar
 
Sam Hocevar committed
870
      then
871
        AC_MSG_ERROR([Cannot find dvdread/dvd_reader.h in ${with_dvdread}/include])
Sam Hocevar's avatar
 
Sam Hocevar committed
872 873 874
      else
        AC_MSG_ERROR([Cannot find dvdread/dvd_reader.h])
      fi
Sam Hocevar's avatar
 
Sam Hocevar committed
875
    fi
Sam Hocevar's avatar
 
Sam Hocevar committed
876
  ])
877
  CPPFLAGS="${CPPFLAGS_save}"
878 879 880 881 882 883 884
fi

dnl
dnl dvdplay module: check for libdvdplay
dnl
AC_ARG_ENABLE(dvdplay,
[  --enable-dvdplay        dvdplay input module (default disabled)])
885
if test "x${enable_dvdplay}" != "xno"
886
then
887
  AC_ARG_WITH(dvdplay,
888
  [    --with-dvdplay=PATH   libdvdplay headers and libraries])
889
  if test "x${with_dvdplay}" = x
890
  then
891 892
    LDFLAGS_test=""
    CPPFLAGS_test=""
893
  else
894 895