configure.in 65.7 KB
Newer Older
Sam Hocevar's avatar
 
Sam Hocevar committed
1
dnl Autoconf settings for vlc
Sam Hocevar's avatar
 
Sam Hocevar committed
2
AC_INIT(include/main.h)
3
AC_CONFIG_HEADER(include/defs.h)
4
AC_CANONICAL_SYSTEM
5

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

Sam Hocevar's avatar
 
Sam Hocevar committed
8
PACKAGE="vlc"
Sam Hocevar's avatar
Sam Hocevar committed
9 10
VERSION="0.5.0-cvs"
CODENAME="Natalya"
11

Sam Hocevar's avatar
Sam Hocevar committed
12 13 14
dnl
dnl  Save *FLAGS
dnl
15
save_CPPFLAGS="${CPPFLAGS}"
Sam Hocevar's avatar
Sam Hocevar committed
16
save_CFLAGS="${CFLAGS}"
Sam Hocevar's avatar
 
Sam Hocevar committed
17
save_LDFLAGS="${LDFLAGS}"
Sam Hocevar's avatar
 
Sam Hocevar committed
18

Sam Hocevar's avatar
Sam Hocevar committed
19
dnl
20
dnl Check for tools
Sam Hocevar's avatar
Sam Hocevar committed
21
dnl
22
AC_PROG_MAKE_SET
Sam Hocevar's avatar
 
Sam Hocevar committed
23 24
AC_PROG_CC
AC_PROG_CPP
25

gbazin's avatar
 
gbazin committed
26 27
dnl Find the right ranlib, even when cross-compiling
AC_CHECK_TOOL(RANLIB, ranlib, :)
Sam Hocevar's avatar
 
Sam Hocevar committed
28
AC_CHECK_TOOL(STRIP, strip, :)
gbazin's avatar
 
gbazin committed
29

Sam Hocevar's avatar
Sam Hocevar committed
30
dnl
Christophe Massiot's avatar
Christophe Massiot committed
31
dnl Check for GNU make
Sam Hocevar's avatar
Sam Hocevar committed
32
dnl
Christophe Massiot's avatar
Christophe Massiot committed
33
AC_PATH_PROG(GMAKE, gmake, no)
34
if test "x${GMAKE}" = "xno"; then
Christophe Massiot's avatar
Christophe Massiot committed
35 36 37 38 39 40 41 42 43 44 45 46 47 48
  AC_CACHE_CHECK([whether GNU make is installed],
      [ac_cv_gmake],
      [if make --version | grep -q -i gnu; then
         ac_cv_gmake="yes"
       else
         echo "This software needs you to install GNU make to compile properly."
         echo "You can get it from http://www.gnu.org/."
         exit
       fi])
  VLC_MAKE="make"
else
  VLC_MAKE="gmake"
fi

Sam Hocevar's avatar
 
Sam Hocevar committed
49
dnl Gettext stuff
50
ALL_LINGUAS="de en_GB fr ja no ru nl pl se"
Sam Hocevar's avatar
Sam Hocevar committed
51

52 53
AC_DEFINE_UNQUOTED(VLC_PACKAGE, "${PACKAGE}", [Package name])
AC_DEFINE_UNQUOTED(VLC_VERSION, "${VERSION}", [Package version])
Sam Hocevar's avatar
 
Sam Hocevar committed
54 55
AM_GNU_GETTEXT

56 57 58
dnl AM_PROG_LIBTOOL
AC_PROG_INSTALL

59 60 61 62
dnl Check for compiler properties
AC_C_CONST
AC_C_INLINE

Sam Hocevar's avatar
Sam Hocevar committed
63 64 65 66 67
dnl
dnl  Set default LDFLAGS
dnl
vlc_LDFLAGS="${LDFLAGS}"

gbazin's avatar
 
gbazin committed
68 69 70
dnl
dnl  Check the operating system
dnl
71
case "x${target_os}" in
gbazin's avatar
 
gbazin committed
72 73 74 75 76 77 78 79
  x)
    SYS=unknown
    ;;
  xlinux*)
    SYS=linux
    ;;
  xbsdi*)
    SYS=bsdi
80
    save_CFLAGS="${save_CFLAGS} -pthread"; CFLAGS="${save_CFLAGS}"
Sam Hocevar's avatar
 
Sam Hocevar committed
81 82 83 84 85
    dvd_LDFLAGS="${dvd_LDFLAGS} -ldvd"
    vcd_LDFLAGS="${vcd_LDFLAGS} -ldvd"
    ;;
  x*bsd*)
    SYS="${target_os}"
86
    save_CFLAGS="${save_CFLAGS} -pthread"; CFLAGS="${save_CFLAGS}"
gbazin's avatar
 
gbazin committed
87 88 89
    ;;
  xdarwin*)
    SYS=darwin
90
    save_CFLAGS="${save_CFLAGS} -no-cpp-precomp"; CFLAGS="${save_CFLAGS}"
91
    vlc_LDFLAGS="${vlc_LDFLAGS} -all_load"
gbazin's avatar
 
gbazin committed
92 93 94 95
    ;;
  x*mingw32*)
    SYS=mingw32
    AC_CHECK_TOOL(WINDRES, windres, :)
96
    save_CFLAGS="${save_CFLAGS} -fnative-struct -D_OFF_T_ -D_off_t=long"; CFLAGS="${save_CFLAGS}"
Sam Hocevar's avatar
 
Sam Hocevar committed
97
    vlc_LDFLAGS="${vlc_LDFLAGS} -mwindows -Xlinker --force-exe-suffix"
Sam Hocevar's avatar
 
Sam Hocevar committed
98 99
    vlc_LDFLAGS="${vlc_LDFLAGS} -lws2_32 -lnetapi32"
    ipv4_LDFLAGS="${ipv4_LDFLAGS} -lws2_32"
gbazin's avatar
 
gbazin committed
100
    ipv6_LDFLAGS="${ipv6_LDFLAGS} -lws2_32"
101
    http_LDFLAGS="${http_LDFLAGS} -lws2_32"
Sam Hocevar's avatar
 
Sam Hocevar committed
102
    rc_LDFLAGS="${rc_LDFLAGS} -lws2_32"
gbazin's avatar
 
gbazin committed
103 104 105
    ;;
  x*nto*)
    SYS=nto
Sam Hocevar's avatar
 
Sam Hocevar committed
106 107
    x11_LDFLAGS="${x11_LDFLAGS} -lsocket"
    xvideo_LDFLAGS="${xvideo_LDFLAGS} -lsocket"
gbazin's avatar
 
gbazin committed
108
    ;;
109 110 111
  xsolaris*)
    SYS=solaris
    ;;
gbazin's avatar
 
gbazin committed
112 113
  xbeos)
    SYS=beos
114
    save_CFLAGS="${save_CFLAGS} -Wno-multichar -Wno-ctor-dtor-privacy -Woverloaded-virtual"; CFLAGS="${save_CFLAGS}"
Sam Hocevar's avatar
 
Sam Hocevar committed
115 116
    vlc_LDFLAGS="${vlc_LDFLAGS} -lbe"
    plugins_LDFLAGS="${plugins_LDFLAGS} -nostart"
117
    beos_LDFLAGS="${beos_LDFLAGS} -lbe -lgame -lroot -ltracker -lstdc++.r4"
Sam Hocevar's avatar
 
Sam Hocevar committed
118
    ipv4_LDFLAGS="${ipv4_LDFLAGS} -lbind"
gbazin's avatar
 
gbazin committed
119 120
    ;;
  x*)
Sam Hocevar's avatar
 
Sam Hocevar committed
121
    SYS="${target_os}"
gbazin's avatar
 
gbazin committed
122 123 124
    ;;
esac

Sam Hocevar's avatar
 
Sam Hocevar committed
125
dnl Flags for plugin compilation
126
if test "x${SYS}" = "xmingw32"
Sam Hocevar's avatar
 
Sam Hocevar committed
127 128 129 130
then
  plugins_CFLAGS="${plugins_CFLAGS} -fnative-struct"
else
  plugins_CFLAGS="${plugins_CFLAGS} -fPIC"
131
  plugins_LDFLAGS="${plugins_LDFLAGS} -fPIC"
Sam Hocevar's avatar
 
Sam Hocevar committed
132 133 134
fi

dnl The -DSYS_FOO flag
135
save_CFLAGS="${save_CFLAGS} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CFLAGS="${save_CFLAGS}"
Sam Hocevar's avatar
 
Sam Hocevar committed
136

137
dnl Check for system libs needed
138
AC_CHECK_FUNCS(gettimeofday select strerror strtod strtol isatty vasprintf swab sigrelse getpwuid memalign posix_memalign gethostbyname2 atoll strndup)
Sam Hocevar's avatar
 
Sam Hocevar committed
139

Sam Hocevar's avatar
 
Sam Hocevar committed
140
AC_CHECK_FUNC(connect,,[
Sam Hocevar's avatar
 
Sam Hocevar committed
141
  AC_CHECK_LIB(socket,connect,
Sam Hocevar's avatar
 
Sam Hocevar committed
142 143
    ipv4_LDFLAGS="${ipv4_LDFLAGS} -lsocket"
    vlc_LDFLAGS="${vlc_LDFLAGS} -lsocket"
Sam Hocevar's avatar
 
Sam Hocevar committed
144
)])
Sam Hocevar's avatar
Sam Hocevar committed
145 146 147 148
AC_CHECK_FUNC(send,,[
  AC_CHECK_LIB(socket,send,
    http_LDFLAGS="${http_LDFLAGS} -lsocket"
)])
Sam Hocevar's avatar
 
Sam Hocevar committed
149
AC_CHECK_FUNC(gethostbyname,,[
Sam Hocevar's avatar
 
Sam Hocevar committed
150
  AC_CHECK_LIB(nsl,gethostbyname,ipv4_LDFLAGS="${ipv4_LDFLAGS} -lnsl")
Sam Hocevar's avatar
 
Sam Hocevar committed
151 152
])
AC_CHECK_FUNC(gethostbyname,,[
Sam Hocevar's avatar
 
Sam Hocevar committed
153
  AC_CHECK_LIB(bind,gethostbyname,ipv4_LDFLAGS="${ipv4_LDFLAGS} -lbind")
Sam Hocevar's avatar
 
Sam Hocevar committed
154
])
155 156
have_nanosleep=0
AC_CHECK_FUNC(nanosleep,have_nanosleep=1,[
157
  AC_CHECK_LIB(rt,nanosleep,
158
    [vlc_LDFLAGS="${vlc_LDFLAGS} -lrt"; have_nanosleep=1],
159
    [AC_CHECK_LIB(posix4,nanosleep,
160
        [vlc_LDFLAGS="${vlc_LDFLAGS} -lposix4"; have_nanosleep=1])]
161
  )
Sam Hocevar's avatar
 
Sam Hocevar committed
162
])
163 164 165 166
if test x$have_nanosleep = x1; then
  AC_DEFINE(HAVE_NANOSLEEP, 1,
            Define if nanosleep is available.)
fi
167 168 169
# HP/UX port
AC_CHECK_LIB(rt,sem_init, [vlc_LDFLAGS="${vlc_LDFLAGS} -lrt"])

Sam Hocevar's avatar
 
Sam Hocevar committed
170
AC_CHECK_FUNC(inet_aton,,[
Sam Hocevar's avatar
 
Sam Hocevar committed
171
  AC_CHECK_LIB(resolv,inet_aton,ipv4_LDFLAGS="${ipv4_LDFLAGS} -lresolv")
172 173
])
AC_CHECK_FUNC(textdomain,,[
174 175 176 177
  AC_CHECK_LIB(intl,textdomain,
    vlc_LDFLAGS="${vlc_LDFLAGS} -lintl"
    plugins_LDFLAGS="${plugins_LDFLAGS} -lintl"
  )
Sam Hocevar's avatar
 
Sam Hocevar committed
178
])
Sam Hocevar's avatar
 
Sam Hocevar committed
179

Sam Hocevar's avatar
 
Sam Hocevar committed
180
dnl Check for getopt
Sam Hocevar's avatar
 
Sam Hocevar committed
181
NEED_GETOPT=0
Sam Hocevar's avatar
 
Sam Hocevar committed
182 183 184
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],
Sam Hocevar's avatar
 
Sam Hocevar committed
185
    [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support) vlc_LDFLAGS="${vlc_LDFLAGS} -lgnugetopt"],
Sam Hocevar's avatar
 
Sam Hocevar committed
186
    [NEED_GETOPT=1])])
Sam Hocevar's avatar
 
Sam Hocevar committed
187

188
AC_TYPE_SIGNAL
Sam Hocevar's avatar
 
Sam Hocevar committed
189
AC_CHECK_LIB(dl,dlopen,vlc_LDFLAGS="${vlc_LDFLAGS} -ldl")
Sam Hocevar's avatar
 
Sam Hocevar committed
190
AC_CHECK_LIB(m,cos,
Sam Hocevar's avatar
 
Sam Hocevar committed
191 192
  imdct_LDFLAGS="${imdct_LDFLAGS} -lm"
  filter_distort_LDFLAGS="${filter_distort_LDFLAGS} -lm")
Sam Hocevar's avatar
 
Sam Hocevar committed
193
AC_CHECK_LIB(m,pow,
Sam Hocevar's avatar
Sam Hocevar committed
194
  ffmpeg_LDFLAGS="${ffmpeg_LDFLAGS} -lm"
Sam Hocevar's avatar
 
Sam Hocevar committed
195 196 197
  imdct_LDFLAGS="${imdct_LDFLAGS} -lm"
  imdct3dn_LDFLAGS="${imdct3dn_LDFLAGS} -lm"
  imdctsse_LDFLAGS="${imdctsse_LDFLAGS} -lm"
198
  i420_rgb_LDFLAGS="${i420_rgb_LDFLAGS} -lm"
199
  faad_LDFLAGS="${faad_LDFLAGS} -lm"
Sam Hocevar's avatar
 
Sam Hocevar committed
200
)
Sam Hocevar's avatar
 
Sam Hocevar committed
201

Sam Hocevar's avatar
 
Sam Hocevar committed
202
dnl Check for pthreads - borrowed from XMMS
Sam Hocevar's avatar
 
Sam Hocevar committed
203
THREAD_LIB=error
204
if test "x${THREAD_LIB}" = "xerror"; then
205
  AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
Sam Hocevar's avatar
 
Sam Hocevar committed
206
fi
207
if test "x${THREAD_LIB}" = "xerror"; then
208
  AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
Sam Hocevar's avatar
 
Sam Hocevar committed
209
fi
210
if test "x${THREAD_LIB}" = "xerror"; then
211
  AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
Sam Hocevar's avatar
 
Sam Hocevar committed
212
fi
213
if test "x${THREAD_LIB}" = "xerror"; then
214
  AC_CHECK_FUNC(pthread_mutex_lock)
Sam Hocevar's avatar
 
Sam Hocevar committed
215 216
  THREAD_LIB=""
fi
Sam Hocevar's avatar
 
Sam Hocevar committed
217 218 219

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

Sam Hocevar's avatar
 
Sam Hocevar committed
221 222 223
dnl Check for misc headers
AC_EGREP_HEADER(pthread_cond_t,pthread.h,[
  AC_DEFINE(PTHREAD_COND_T_IN_PTHREAD_H, 1,
Sam Hocevar's avatar
 
Sam Hocevar committed
224
            Define if <pthread.h> defines pthread_cond_t.)])
Sam Hocevar's avatar
Sam Hocevar committed
225 226 227
AC_EGREP_HEADER(pthread_once,pthread.h,[
  AC_DEFINE(PTHREAD_ONCE_IN_PTHREAD_H, 1,
            Define if <pthread.h> defines pthread_once.)])
Sam Hocevar's avatar
 
Sam Hocevar committed
228 229
AC_EGREP_HEADER(strncasecmp,strings.h,[
  AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
Sam Hocevar's avatar
 
Sam Hocevar committed
230
            Define if <strings.h> defines strncasecmp.)])
Sam Hocevar's avatar
 
Sam Hocevar committed
231

Sam Hocevar's avatar
 
Sam Hocevar committed
232
dnl Check for headers
Sam Hocevar's avatar
Sam Hocevar committed
233
AC_CHECK_HEADERS(stdint.h getopt.h strings.h inttypes.h sys/int_types.h)
Sam Hocevar's avatar
 
Sam Hocevar committed
234
AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h)
Sam Hocevar's avatar
 
Sam Hocevar committed
235 236
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
237
AC_CHECK_HEADERS(machine/param.h sys/shm.h)
238
AC_CHECK_HEADERS(linux/version.h)
Sam Hocevar's avatar
 
Sam Hocevar committed
239

Sam Hocevar's avatar
 
Sam Hocevar committed
240 241
AC_HEADER_TIME

242
dnl Mac OS X and other OSes don't have declaration for nanosleep
243 244 245 246
AC_EGREP_HEADER(nanosleep,time.h,[
  AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
            Define if <time.h> defines nanosleep.)
])
247 248

dnl Make sure we have timespecs
249 250 251 252
AC_EGREP_HEADER(timespec,sys/time.h,[
  AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
            Define if <sys/time.h> defines struct timespec.)
])
253

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

257 258 259 260 261 262 263 264
dnl Default X headers and libraries
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

Sam Hocevar's avatar
 
Sam Hocevar committed
265
dnl Check for DPMS
266
if test "x${SYS}" != "xmingw32"
Sam Hocevar's avatar
 
Sam Hocevar committed
267
then
268
  CPPFLAGS="${save_CPPFLAGS} -I${x_includes}"
Sam Hocevar's avatar
 
Sam Hocevar committed
269 270 271 272 273 274
  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.)
    ])
  ])
275
  CPPFLAGS="${save_CPPFLAGS}"
Sam Hocevar's avatar
 
Sam Hocevar committed
276 277
fi

Sam Hocevar's avatar
 
Sam Hocevar committed
278
dnl Check for ntohl, etc.
279 280 281 282 283 284
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)])
285
if test "x${ac_cv_c_ntohl_sys_param_h}" != "xno"; then
286 287
    AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
fi
Sam Hocevar's avatar
 
Sam Hocevar committed
288

Sam Hocevar's avatar
 
Sam Hocevar committed
289
dnl Check for inline function size limit
290 291 292 293
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)])
294 295
if test "x${ac_cv_c_inline_limit}" != "xno"; then
    save_CFLAGS="${save_CFLAGS} -finline-limit-30000"; CFLAGS="${save_CFLAGS}"
296
fi
Sam Hocevar's avatar
 
Sam Hocevar committed
297

Sam Hocevar's avatar
 
Sam Hocevar committed
298 299 300
dnl Check for -W or -w flags
AC_CACHE_CHECK([if \$CC accepts -Wall -Winline],
    [ac_cv_c_Wall_Winline],
Sam Hocevar's avatar
Sam Hocevar committed
301
    [CFLAGS="-Wall -Winline ${save_CFLAGS}"
Sam Hocevar's avatar
 
Sam Hocevar committed
302
     AC_TRY_COMPILE([],,ac_cv_c_Wall_Winline=yes, ac_cv_c_Wall_Winline=no)])
303 304
if test "x${ac_cv_c_Wall_Winline}" != "xno"; then
    save_CFLAGS="-Wall -Winline ${save_CFLAGS}"; CFLAGS="${save_CFLAGS}"
Sam Hocevar's avatar
 
Sam Hocevar committed
305 306 307
else
    AC_CACHE_CHECK([if \$CC accepts -wall -winline],
        [ac_cv_c_wall_winline],
Sam Hocevar's avatar
Sam Hocevar committed
308
        [CFLAGS="-wall -winline ${save_CFLAGS}"
Sam Hocevar's avatar
 
Sam Hocevar committed
309
         AC_TRY_COMPILE([],,ac_cv_c_wall_winline=yes, ac_cv_c_wall_winline=no)])
310 311
    if test "x${ac_cv_c_wall_winline}" != "xno"; then
        save_CFLAGS="-wall -winline ${save_CFLAGS}"; CFLAGS="${save_CFLAGS}"
Sam Hocevar's avatar
 
Sam Hocevar committed
312 313 314 315 316 317 318 319
    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)])
320 321
if test "x${ac_cv_c_pipe}" != "xno"; then
    save_CFLAGS="${save_CFLAGS} -pipe"; CFLAGS="${save_CFLAGS}"
Sam Hocevar's avatar
 
Sam Hocevar committed
322 323 324 325 326 327 328
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)])
329
if test "x${ac_cv_c_o3}" != "xno"; then
Sam Hocevar's avatar
 
Sam Hocevar committed
330 331 332 333 334 335
    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)])
336
    if test "x${ac_cv_c_o2}" != "xno"; then
Sam Hocevar's avatar
 
Sam Hocevar committed
337 338 339 340 341 342
        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)])
343
        if test "x${ac_cv_c_o}" != "xno"; then
Sam Hocevar's avatar
 
Sam Hocevar committed
344 345 346 347 348 349 350 351 352 353
            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)])
354
if test "x${ac_cv_c_fast_math}" != "xno"; then
Sam Hocevar's avatar
 
Sam Hocevar committed
355 356 357 358 359 360 361 362
    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)])
363
if test "x${ac_cv_c_unroll_loops}" != "xno"; then
Sam Hocevar's avatar
 
Sam Hocevar committed
364 365 366 367 368 369 370 371
    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)])
372
if test "x${ac_cv_c_omit_frame_pointer}" != "xno"; then
Sam Hocevar's avatar
 
Sam Hocevar committed
373
    CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
Sam Hocevar's avatar
Sam Hocevar committed
374
    # this plugin does not compile without -fomit-frame-pointer, damn gcc!
375
    i420_yuy2_mmx_CFLAGS="${i420_yuy2_mmx_CFLAGS} -fomit-frame-pointer"
Sam Hocevar's avatar
 
Sam Hocevar committed
376 377
fi

Sam Hocevar's avatar
 
Sam Hocevar committed
378
dnl Check for Darwin plugin linking flags
Christophe Massiot's avatar
Christophe Massiot committed
379
AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error -lcc_dynamic],
380
    [ac_cv_ld_darwin],
Christophe Massiot's avatar
Christophe Massiot committed
381
    [CFLAGS="${save_CFLAGS} -bundle -undefined error -lcc_dynamic"
382
     AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
383
if test "x${ac_cv_ld_darwin}" != "xno"; then
Sam Hocevar's avatar
 
Sam Hocevar committed
384
    plugins_LDFLAGS="${plugins_LDFLAGS} -bundle -undefined error -lcc_dynamic"
385
fi
Sam Hocevar's avatar
 
Sam Hocevar committed
386 387

dnl Check for standard plugin linking flags
388 389 390 391
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)])
392
if test "x${ac_cv_ld_plugins}" != "xno"; then
Sam Hocevar's avatar
 
Sam Hocevar committed
393
    plugins_LDFLAGS="${plugins_LDFLAGS} -shared"
Sam Hocevar's avatar
 
Sam Hocevar committed
394
fi
395
        
396 397 398 399 400 401 402 403 404 405
dnl Check for variadic macros
AC_CACHE_CHECK([for variadic cpp macros],
    [ac_cv_cpp_variadic_macros],
    [CFLAGS="${save_CFLAGS}"
     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)])
406
if test "x${ac_cv_cpp_variadic_macros}" != "xno"; then
407 408 409
    AC_DEFINE(HAVE_VARIADIC_MACROS, 1, Support for variadic macros)
fi

410 411 412 413
dnl Checks for __attribute__(aligned()) directive
AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
    [ac_cv_c_attribute_aligned],
    [ac_cv_c_attribute_aligned=0
Sam Hocevar's avatar
 
Sam Hocevar committed
414
        CFLAGS="${save_CFLAGS} -Werror"
415 416
    for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
        AC_TRY_COMPILE([],
417 418 419 420 421
        [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="${save_CFLAGS}"])
if test "x${ac_cv_c_attribute_aligned}" != "x0"; then
422
    AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
423
        [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
424 425
fi

Sam Hocevar's avatar
 
Sam Hocevar committed
426 427 428
dnl
dnl  Check the CPU
dnl
429
case "x${target_cpu}" in
Sam Hocevar's avatar
 
Sam Hocevar committed
430 431 432 433
  x)
    ARCH=unknown
    ;;
  *)
Sam Hocevar's avatar
 
Sam Hocevar committed
434
    ARCH="${target_cpu}"
Sam Hocevar's avatar
 
Sam Hocevar committed
435 436
    ;;
esac
Sam Hocevar's avatar
 
Sam Hocevar committed
437 438 439 440

dnl
dnl  default modules
dnl
441
BUILTINS="${BUILTINS}"
442
PLUGINS="${PLUGINS} misc/dummy/dummy misc/null/null"
443
PLUGINS="${PLUGINS} control/rc/rc misc/logger/logger access/file misc/memcpy/memcpy"
444
PLUGINS="${PLUGINS} demux/mpeg/es demux/mpeg/audio demux/mpeg/mpeg_system demux/mpeg/ps demux/mpeg/ts"
445 446
PLUGINS="${PLUGINS} codec/mpeg_video/idct/idct codec/mpeg_video/idct/idctclassic codec/mpeg_video/motion/motion codec/mpeg_video/mpeg_video codec/spudec/spudec codec/spdif codec/mpeg_audio/mpeg_audio"
#PLUGINS="${PLUGINS} codec/a52old/imdct/imdct codec/a52old/downmix/downmix codec/a52old/a52old codec/lpcm/lpcm"
447
PLUGINS="${PLUGINS} video_filter/deinterlace/deinterlace video_filter/invert video_filter/wall video_filter/transform video_filter/distort video_filter/clone video_filter/crop"
448
PLUGINS="${PLUGINS} audio_filter/converter/float32tos16 audio_filter/converter/float32tos8 audio_filter/converter/float32tou16 audio_filter/converter/float32tou8 audio_filter/converter/a52tospdif"
449
PLUGINS="${PLUGINS} audio_filter/resampler/trivial"
450
PLUGINS="${PLUGINS} audio_mixer/trivial audio_mixer/spdif"
451 452
PLUGINS="${PLUGINS} audio_output/file"
#PLUGINS="${PLUGINS} visualization/scope/scope"
453
PLUGINS="${PLUGINS} video_chroma/i420_rgb video_chroma/i420_yuy2 video_chroma/i422_yuy2 video_chroma/i420_ymga"
Sam Hocevar's avatar
 
Sam Hocevar committed
454

455 456 457 458 459
dnl
dnl  Network modules
dnl
NETWORK_MODULES="access/udp access/http access/rtp misc/network/ipv4"

Sam Hocevar's avatar
 
Sam Hocevar committed
460 461 462
dnl
dnl  Accelerated modules
dnl
463 464 465 466 467
MMX_MODULES="misc/memcpy/memcpymmx codec/mpeg_video/idct/idctmmx codec/mpeg_video/motion/motionmmx video_chroma/i420_rgb_mmx video_chroma/i420_yuy2_mmx video_chroma/i422_yuy2_mmx video_chroma/i420_ymga_mmx"
MMXEXT_MODULES="misc/memcpy/memcpymmxext codec/mpeg_video/idct/idctmmxext codec/mpeg_video/motion/motionmmxext"
THREEDNOW_MODULES="misc/memcpy/memcpy3dn codec/a52old/imdct/imdct3dn codec/a52old/downmix/downmix3dn"
SSE_MODULES="codec/a52old/imdct/imdctsse codec/a52old/downmix/downmixsse"
ALTIVEC_MODULES="codec/mpeg_video/idct/idctaltivec codec/mpeg_video/motion/motionaltivec misc/memcpy/memcpyaltivec"
468

469 470 471 472 473
if test x$SYS != xbeos
then
  PLUGINS="${PLUGINS} ${NETWORK}"
fi

474 475
AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
    [ac_cv_mmx_inline],
Sam Hocevar's avatar
Sam Hocevar committed
476 477
    [CFLAGS="${save_CFLAGS}"
     AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
478
                    ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
479
if test "x${ac_cv_mmx_inline}" != "xno"; then
Sam Hocevar's avatar
 
Sam Hocevar committed
480
  ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
481
fi
Sam Hocevar's avatar
 
Sam Hocevar committed
482

483 484
AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
    [ac_cv_mmxext_inline],
Sam Hocevar's avatar
Sam Hocevar committed
485 486
    [CFLAGS="${save_CFLAGS}"
     AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
487
                    ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
488
if test "x${ac_cv_mmxext_inline}" != "xno"; then
Sam Hocevar's avatar
 
Sam Hocevar committed
489
  ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
490
fi
Sam Hocevar's avatar
 
Sam Hocevar committed
491

492 493
AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
    [ac_cv_3dnow_inline],
Sam Hocevar's avatar
Sam Hocevar committed
494 495
    [CFLAGS="${save_CFLAGS}"
     AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
496
                    ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
497
if test "x${ac_cv_3dnow_inline}" != "xno"; then
Sam Hocevar's avatar
 
Sam Hocevar committed
498
  AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
Sam Hocevar's avatar
 
Sam Hocevar committed
499
  ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
500
fi
Sam Hocevar's avatar
 
Sam Hocevar committed
501

502 503
AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
    [ac_cv_sse_inline],
Sam Hocevar's avatar
Sam Hocevar committed
504 505
    [CFLAGS="${save_CFLAGS}"
     AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
506
                    ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
507
if test "x${ac_cv_sse_inline}" != "xno" -a "x${SYS}" != "xmingw32"; then
Sam Hocevar's avatar
 
Sam Hocevar committed
508
  AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.)
Sam Hocevar's avatar
 
Sam Hocevar committed
509
  ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
510
fi
Sam Hocevar's avatar
 
Sam Hocevar committed
511

Sam Hocevar's avatar
Sam Hocevar committed
512
# don't try to grok AltiVec with native mingw32 it doesn't work right now
gbazin's avatar
 
gbazin committed
513
# we should be able to remove this test with future versions of mingw32
514
if test "x${SYS}" != "xmingw32"; then
Sam Hocevar's avatar
Sam Hocevar committed
515
AC_CACHE_CHECK([if \$CC groks AltiVec inline assembly],
516
    [ac_cv_altivec_inline],
Sam Hocevar's avatar
Sam Hocevar committed
517 518
    [CFLAGS="${save_CFLAGS}"
     AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
519
         ac_cv_altivec_inline=yes,
520
         [CFLAGS="${save_CFLAGS} -Wa,-m7400"
Sam Hocevar's avatar
 
Sam Hocevar committed
521
          AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
522
            [ac_cv_altivec_inline="-Wa,-m7400"],
523
            ac_cv_altivec_inline=no)
524
         ])])
525
if test "x${ac_cv_altivec_inline}" != "xno"; then
Sam Hocevar's avatar
Sam Hocevar committed
526
  AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks AltiVec inline assembly.)
527 528 529 530 531
  if test "x${ac_cv_altivec_inline}" != "xyes"; then
    idctaltivec_CFLAGS="${idctaltivec_CFLAGS} ${ac_cv_altivec_inline}"
    motionaltivec_CFLAGS="${motionaltivec_CFLAGS} ${ac_cv_altivec_inline}"
    memcpyaltivec_CFLAGS="${memcpyaltivec_CFLAGS} ${ac_cv_altivec_inline}"
    vlc_CFLAGS="${vlc_CFLAGS} ${ac_cv_altivec_inline}"
532
  fi
533
  ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
534
fi
535

Sam Hocevar's avatar
Sam Hocevar committed
536
AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
537
    [ac_cv_c_altivec],
538
    [CFLAGS="${save_CFLAGS} -faltivec"
539
     # Darwin test
Sam Hocevar's avatar
 
Sam Hocevar committed
540
     AC_TRY_COMPILE(,[vec_mtvscr((vector unsigned int)(0));],
541 542
        ac_cv_c_altivec=-faltivec, [
        # Linux/PPC test
543
        CFLAGS="${save_CFLAGS} ${idctaltivec_CFLAGS} -fvec"
Sam Hocevar's avatar
 
Sam Hocevar committed
544
        AC_TRY_COMPILE(,[vec_mtvscr((vector unsigned int)(0));],
545 546
            [ac_cv_c_altivec="-fvec"], ac_cv_c_altivec=no)
        ])
547 548
     CFLAGS="${save_CFLAGS}"])
if test "x${ac_cv_c_altivec}" != "xno"; then
Sam Hocevar's avatar
Sam Hocevar committed
549
  AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C AltiVec extensions.)
550 551 552 553
  idctaltivec_CFLAGS="${idctaltivec_CFLAGS} ${ac_cv_c_altivec}"
  motionaltivec_CFLAGS="${motionaltivec_CFLAGS} ${ac_cv_c_altivec}"
  memcpyaltivec_CFLAGS="${memcpyaltivec_CFLAGS} ${ac_cv_c_altivec}"
  vlc_CFLAGS="${vlc_CFLAGS} ${ac_cv_c_altivec}"
554
  ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
555 556 557 558
fi

AC_CACHE_CHECK([if linker needs -framework vecLib],
    [ac_cv_ld_altivec],
559
    [LDFLAGS="${vlc_LDFLAGS} -framework vecLib"
560
     AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
561
     LDFLAGS="${save_LDFLAGS}"
562
    ])
563
if test "x${ac_cv_ld_altivec}" != "xno"; then
Sam Hocevar's avatar
 
Sam Hocevar committed
564 565 566 567
  idctaltivec_LDFLAGS="${idctaltivec_LDFLAGS} -framework vecLib"
  motionaltivec_LDFLAGS="${motionaltivec_LDFLAGS} -framework vecLib"
  memcpyaltivec_LDFLAGS="${memcpyaltivec_LDFLAGS} -framework vecLib"
  vlc_LDFLAGS="${vlc_LDFLAGS} -framework vecLib"
568
fi
gbazin's avatar
 
gbazin committed
569
fi # end if mingw32
570 571


Sam Hocevar's avatar
 
Sam Hocevar committed
572 573 574
AC_ARG_WITH(,[])
AC_ARG_WITH(,[Optimization options:])

Sam Hocevar's avatar
 
Sam Hocevar committed
575
dnl
576
dnl  Special arch tuning
Sam Hocevar's avatar
 
Sam Hocevar committed
577
dnl
578
AC_ARG_WITH(tuning,
Sam Hocevar's avatar
 
Sam Hocevar committed
579
[  --with-tuning=ARCH      enable special tuning for an architecture
580
                          (default i686 on IA-32 and 750 on PPC)])
581 582
if test "x${with_tuning}" != "x"; then
    TUNING="${with_tuning}"
583
else
584
    if test "x${target_cpu}" = "xi686" -o "x${target_cpu}" = "xi586" -o "x${target_cpu}" = "xi486" -o "x${target_cpu}" = "xi386"; then TUNING="pentiumpro"
585
    else
586
        if test "x${target_cpu}" = "xpowerpc"; then TUNING="750"; fi
587 588
    fi
fi
Sam Hocevar's avatar
 
Sam Hocevar committed
589 590

dnl
Sam Hocevar's avatar
 
Sam Hocevar committed
591
dnl  x86 accelerations
Sam Hocevar's avatar
 
Sam Hocevar committed
592
dnl
593
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
594 595
then
    ARCH="${ARCH} mmx"
Sam Hocevar's avatar
Sam Hocevar committed
596
    PLUGINS="${PLUGINS} ${ACCEL_MODULES}"
Sam Hocevar's avatar
 
Sam Hocevar committed
597
fi
Sam Hocevar's avatar
 
Sam Hocevar committed
598

Sam Hocevar's avatar
 
Sam Hocevar committed
599 600 601 602 603
dnl
dnl  Enable/disable optimizations
dnl
AC_ARG_ENABLE(optimizations,
[  --disable-optimizations disable compiler optimizations (default enabled)],
604
[ if test "x${enable_optimizations}" = "xno"; then OPTIMS=0; fi ],
Sam Hocevar's avatar
 
Sam Hocevar committed
605 606
[ OPTIMS=1 ])

Sam Hocevar's avatar
 
Sam Hocevar committed
607 608 609
dnl
dnl  AltiVec acceleration
dnl
610
AC_ARG_ENABLE(altivec,
Sam Hocevar's avatar
Sam Hocevar committed
611
[  --disable-altivec       disable AltiVec optimizations (default enabled on PPC)],
612
[ if test "x${enable_altivec}" = "xyes"; then ARCH="${ARCH} altivec";
613
    BUILTINS="${BUILTINS} ${ACCEL_MODULES}"; fi ],
614
[ if test "x${target_cpu}" = "xpowerpc"; then ARCH="${ARCH} altivec";
615
    BUILTINS="${BUILTINS} ${ACCEL_MODULES}"; fi ])
Sam Hocevar's avatar
 
Sam Hocevar committed
616 617 618 619

dnl
dnl  Debugging mode
dnl
Sam Hocevar's avatar
 
Sam Hocevar committed
620
DEBUG=0
621
AC_ARG_ENABLE(debug,
Sam Hocevar's avatar
 
Sam Hocevar committed
622
[  --enable-debug          debug mode (default disabled)],
623
[ if test "x${enable_debug}" = "xyes"; then DEBUG=1; fi ])
Sam Hocevar's avatar
 
Sam Hocevar committed
624

Sam Hocevar's avatar
 
Sam Hocevar committed
625
dnl
Sam Hocevar's avatar
 
Sam Hocevar committed
626
dnl  Enable release-specific flags
Sam Hocevar's avatar
 
Sam Hocevar committed
627
dnl
Sam Hocevar's avatar
 
Sam Hocevar committed
628
RELEASE=0
Sam Hocevar's avatar
 
Sam Hocevar committed
629 630
AC_ARG_ENABLE(release,
[  --enable-release        activate extra optimizations (default disabled)],
631
[ if test "x${enable_release}" = "xyes"; then RELEASE=1; fi ],
Sam Hocevar's avatar
 
Sam Hocevar committed
632
[ VERSION="${VERSION}_`date +%Y-%m-%d`" ])
Sam Hocevar's avatar
 
Sam Hocevar committed
633

Sam Hocevar's avatar
 
Sam Hocevar committed
634
dnl
Sam Hocevar's avatar
 
Sam Hocevar committed
635
dnl  Input plugins
Sam Hocevar's avatar
 
Sam Hocevar committed
636 637
dnl

Sam Hocevar's avatar
 
Sam Hocevar committed
638
AC_ARG_WITH(,[Input plugins:])
Sam Hocevar's avatar
 
Sam Hocevar committed
639 640

dnl
Sam Hocevar's avatar
 
Sam Hocevar committed
641 642 643 644
dnl  DVD module: optionally check for installed libdvdcss
dnl
AC_ARG_ENABLE(dvd,
[  --enable-dvd            DVD input module (default enabled)])
645
if test "x${enable_dvd}" != "xno"
Sam Hocevar's avatar
 
Sam Hocevar committed
646 647 648
then
  AC_ARG_WITH(dvdcss, 
  [    --with-dvdcss=PATH    libdvdcss headers and libraries])
Sam Hocevar's avatar
 
Sam Hocevar committed
649 650
  AC_ARG_WITH(dvdcss-tree, 
  [    --with-dvdcss-tree=PATH libdvdcss tree for static linking])
651
  case "x${with_dvdcss}" in
Sam Hocevar's avatar
 
Sam Hocevar committed
652
  x|xyes)
653
    if test "x${with_dvdcss_tree}" = x
Sam Hocevar's avatar
 
Sam Hocevar committed
654 655
    then
      AC_CHECK_HEADERS(dvdcss/dvdcss.h,
656
        [ PLUGINS="${PLUGINS} access/dvd/dvd"
Sam Hocevar's avatar
 
Sam Hocevar committed
657
          dvd_LDFLAGS="${dvd_LDFLAGS} -ldvdcss" ],
Sam Hocevar's avatar
 
Sam Hocevar committed
658 659 660 661 662
        [ 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`"
663
      if test "x${real_dvdcss_tree}" = "x"
Sam Hocevar's avatar
 
Sam Hocevar committed
664 665 666 667 668 669 670 671 672
      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)
673
        BUILTINS="${BUILTINS} access/dvd/dvd"
Sam Hocevar's avatar
 
Sam Hocevar committed
674 675
        dvd_LDFLAGS="${dvd_LDFLAGS} ${real_dvdcss_tree}/src/.libs/libdvdcss.a"
        dvd_CFLAGS="${dvd_CFLAGS} -I${real_dvdcss_tree}/src"
Sam Hocevar's avatar
 
Sam Hocevar committed
676 677 678 679 680 681
      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
682 683
  ;;
  xno)
Sam Hocevar's avatar
 
Sam Hocevar committed
684
    dnl  Compile without dvdcss (dlopen version, works only under Linux)
685
    PLUGINS="${PLUGINS} access/dvd/dvd"
Sam Hocevar's avatar
 
Sam Hocevar committed
686 687
    dvd_CFLAGS="${dvd_CFLAGS} -DGOD_DAMN_DMCA"
    dvd_LDFLAGS="${dvd_LDFLAGS} -ldl"
Sam Hocevar's avatar
 
Sam Hocevar committed
688 689
  ;;
  *)
Sam Hocevar's avatar
 
Sam Hocevar committed
690 691
    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
692
    then
Sam Hocevar's avatar
 
Sam Hocevar committed
693
      dnl  Use ${with_dvdcss}/include/dvdcss/dvdcss.h
Sam Hocevar's avatar
 
Sam Hocevar committed
694
      AC_MSG_RESULT(yes)
695
      PLUGINS="${PLUGINS} access/dvd/dvd"
Sam Hocevar's avatar
 
Sam Hocevar committed
696 697
      dvd_LDFLAGS="${dvd_LDFLAGS} -L${with_dvdcss}/lib -ldvdcss"
      dvd_CFLAGS="${dvd_CFLAGS} -I${with_dvdcss}/include"
Sam Hocevar's avatar
 
Sam Hocevar committed
698
    else
Sam Hocevar's avatar
 
Sam Hocevar committed
699
      dnl  No libdvdcss could be found, sorry
Sam Hocevar's avatar
 
Sam Hocevar committed
700
      AC_MSG_RESULT(no)
Sam Hocevar's avatar
 
Sam Hocevar committed
701
      AC_MSG_ERROR([cannot find ${with_dvdcss}/include/dvdcss/dvdcss.h])
Sam Hocevar's avatar
 
Sam Hocevar committed
702 703 704 705
    fi
  ;;
  esac
fi
Sam Hocevar's avatar
 
Sam Hocevar committed
706

Stéphane Borel's avatar
Stéphane Borel committed
707
dnl
Sam Hocevar's avatar
 
Sam Hocevar committed
708
dnl dvdread module: check for libdvdread plugin
Stéphane Borel's avatar
Stéphane Borel committed
709
dnl
Sam Hocevar's avatar
 
Sam Hocevar committed
710 711
AC_ARG_ENABLE(dvdread,
[  --enable-dvdread        dvdread input module (default disabled)])
712
if test "x${enable_dvdread}" != "xno"
Sam Hocevar's avatar
 
Sam Hocevar committed
713 714 715
then
  AC_ARG_WITH(dvdread, 
  [    --with-dvdread=PATH   libdvdread headers and libraries])
716
  if test "x${with_dvdread}" = "x"
Sam Hocevar's avatar
 
Sam Hocevar committed
717 718 719 720
  then
    test_LDFLAGS=""
    test_CFLAGS=""
  else
721 722
    test_LDFLAGS="-L${with_dvdread}/lib"
    test_CFLAGS="-I${with_dvdread}/include"
Sam Hocevar's avatar
 
Sam Hocevar committed
723
  fi
724
  CPPFLAGS="${save_CPPFLAGS} ${test_CFLAGS}"
Sam Hocevar's avatar
 
Sam Hocevar committed
725 726 727
  AC_CHECK_HEADERS(dvdread/dvd_reader.h, [
     AC_TRY_COMPILE([#include <dvdread/dvd_reader.h>],
        [void foo() { int i=DVD_VIDEO_LB_LEN; }],[
728
          PLUGINS="${PLUGINS} access/dvdread/dvdread"
Sam Hocevar's avatar
 
Sam Hocevar committed
729 730 731
          dvdread_LDFLAGS="${dvdread_LDFLAGS} ${test_LDFLAGS} -ldvdread"
          dvdread_CFLAGS="${dvdread_CFLAGS} ${test_CFLAGS}"
        ],[
732
          if test "x${enable_dvdread}" != "x"
Sam Hocevar's avatar
 
Sam Hocevar committed
733 734 735 736 737
          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
        ])
  ],[
738
    if test "x${enable_dvdread}" != "x"
739
    then
740
      if test "x${with_dvdread}" != "x"
Sam Hocevar's avatar
 
Sam Hocevar committed
741
      then
742
        AC_MSG_ERROR([Cannot find dvdread/dvd_reader.h in ${with_dvdread}/include])
Sam Hocevar's avatar
 
Sam Hocevar committed
743 744 745
      else
        AC_MSG_ERROR([Cannot find dvdread/dvd_reader.h])
      fi
Sam Hocevar's avatar
 
Sam Hocevar committed
746
    fi
Sam Hocevar's avatar
 
Sam Hocevar committed
747
  ])
748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769
  CPPFLAGS="$save_CPPFLAGS"
fi

dnl
dnl dvdplay module: check for libdvdplay
dnl
AC_ARG_ENABLE(dvdplay,
[  --enable-dvdplay        dvdplay input module (default disabled)])
if test "x$enable_dvdplay" != "xno"
then
  AC_ARG_WITH(dvdplay, 
  [    --with-dvdplay=PATH   libdvdplay headers and libraries])
  if test "x$with_dvdplay" = x
  then
    test_LDFLAGS=""
    test_CFLAGS=""
  else
    test_LDFLAGS="-L${with_dvdplay}/lib"
    test_CFLAGS="-I${with_dvdplay}/include"
  fi
  CPPFLAGS="$save_CPPFLAGS $test_CFLAGS"
  AC_CHECK_HEADERS(dvdplay/dvdplay.h, [
770
      PLUGINS="${PLUGINS} access/dvdplay/dvdplay"
771 772 773 774 775 776 777 778 779 780 781 782 783
      dvdplay_LDFLAGS="${dvdplay_LDFLAGS} ${test_LDFLAGS} -ldvdplay -ldvdread"
      dvdplay_CFLAGS="${dvdplay_CFLAGS} ${test_CFLAGS}"
    ],[
    if test "x$enable_dvdplay" != x
    then
      if test "x$with_dvdplay" != x
      then
        AC_MSG_ERROR([Cannot find dvdplay/dvdplay.h in ${with_dvdplay}/include])
      else
        AC_MSG_ERROR([Cannot find dvdplay/dvdplay.h])
      fi
    fi
  ])
784
  CPPFLAGS="${save_CPPFLAGS}"
Sam Hocevar's avatar
 
Sam Hocevar committed
785
fi
Stéphane Borel's avatar
Stéphane Borel committed
786

787

788 789 790 791 792
dnl
dnl  libdvbpsi ts demux
dnl
AC_ARG_ENABLE(dvbpsi,
[  --enable-dvbpsi        dvbpsi ts demux module (default disabled)])
793
if test "x${enable_dvbpsi}" != "xno"
794
then
795 796
  AC_ARG_WITH(dvbpsi, 
  [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
797 798
  AC_ARG_WITH(dvbpsi,
  [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
799
  case "x${with_dvbpsi}" in
800
  x|xyes)
801
    if test "x${with_dvbpsi_tree}" = "x"
802
    then
Sam Hocevar's avatar
Sam Hocevar committed
803
      AC_CHECK_HEADERS(dvbpsi/dr.h,
804 805
        [ PLUGINS="${PLUGINS} demux/mpeg/ts_dvbpsi"
          ts_dvbpsi_LDFLAGS="${ts_dvbpsi_LDFLAGS} -ldvbpsi" ], [],
806 807 808 809
        [  AC_MSG_ERROR([cannot find libdvbpsi headers]) ])
    else
      AC_MSG_CHECKING(for libdvbpsi.a in ${with_dvbpsi_tree})
      real_dvbpsi_tree="`cd ${with_dvbpsi_tree} 2>/dev/null && pwd`"
810
      if test "x${real_dvbpsi_tree}" = "x"
811 812 813 814 815 816 817 818 819
      then
        dnl  The given directory can't be found
        AC_MSG_RESULT(no)
        AC_MSG_ERROR([cannot cd to ${with_dvbpsi_tree}])
      fi
      if test -f "${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
      then
        dnl  Use a custom libdvbpsi
        AC_MSG_RESULT(${real_dvbpsi_tree}/src/.libs/libdvbpsi.a)
820 821 822
        BUILTINS="${BUILTINS} demux/mpeg/ts_dvbpsi"
        ts_dvbpsi_LDFLAGS="${ts_dvbpsi_LDFLAGS} ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a"
        ts_dvbpsi_CFLAGS="${ts_dvbpsi_CFLAGS} -I${real_dvbpsi_tree}/src"
823 824 825 826 827
      else
        dnl  The given libdvbpsi wasn't built
        AC_MSG_RESULT(no)
        AC_MSG_ERROR([cannot find ${real_dvbpsi_tree}/src/.libs/libdvbpsi.a, make sure you compiled libdvbpsi in ${with_dvbpsi_tree}])
      fi
828
    fi
829 830
  ;;
  xno)
831
    dnl  Compile without dvbpsi
832 833 834
  ;;
  *)
    AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
835
    if test "x${with_dvbpsi}" = "x"
836 837 838 839 840 841 842
    then
      test_LDFLAGS=""
      test_CFLAGS=""
    else
      test_LDFLAGS="-L${with_dvbpsi}/lib"
      test_CFLAGS="-I${with_dvbpsi}/include"
    fi
843
    CPPFLAGS="${save_CPPFLAGS} ${test_CFLAGS}"
844
    AC_CHECK_HEADER([dvbpsi/dr.h],[
845 846 847
      PLUGINS="${PLUGINS} demux/mpeg/ts_dvbpsi"
      ts_dvbpsi_LDFLAGS="${ts_dvbpsi_LDFLAGS} ${test_LDFLAGS} -ldvbpsi"
      ts_dvbpsi_CFLAGS="${ts_dvbpsi_CFLAGS} ${test_CFLAGS}"
848
      ],[
849
      if test "x${enable_dvbpsi}" != "x"
850 851 852 853
      then
        AC_MSG_ERROR([Could not find libdvbpsi on your system: you may get it from www.videolan.org, you'll need at least version 0.1.1])
      fi
    ])
854
    CPPFLAGS="${save_CPPFLAGS}"
855