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

5
AC_CANONICAL_SYSTEM
6

Sam Hocevar's avatar
   
Sam Hocevar committed
7
8
9
HAVE_VLC=0
if test -r src/interface/main.c; then
  HAVE_VLC=1
10
  VLC_VERSION="0.2.92-dev"
Sam Hocevar's avatar
   
Sam Hocevar committed
11
12
13
14
15
16
  VLC_CODENAME=Ourumov
fi

HAVE_LIBDVDCSS=0
if test -r extras/libdvdcss/libdvdcss.c; then
  HAVE_LIBDVDCSS=1
17
  LIBDVDCSS_VERSION="1.0.1-dev"
Sam Hocevar's avatar
   
Sam Hocevar committed
18
  AC_SUBST(LIBDVDCSS_VERSION)
19
20
21
  if test -r extras/libdvdcss/csskeys.h; then
    AC_DEFINE(HAVE_CSSKEYS,1,css decryption with player keys)
  fi
Sam Hocevar's avatar
   
Sam Hocevar committed
22
fi
23

Sam Hocevar's avatar
   
Sam Hocevar committed
24
dnl Save CFLAGS and LDFLAGS
Sam Hocevar's avatar
   
Sam Hocevar committed
25
save_CFLAGS="${CFLAGS}"
Sam Hocevar's avatar
   
Sam Hocevar committed
26
save_LDFLAGS="${LDFLAGS}"
Sam Hocevar's avatar
   
Sam Hocevar committed
27

28
29
dnl Check for tools
AC_PROG_MAKE_SET
Sam Hocevar's avatar
   
Sam Hocevar committed
30
31
AC_PROG_CC
AC_PROG_CPP
32

gbazin's avatar
   
gbazin committed
33
34
35
dnl Find the right ranlib, even when cross-compiling
AC_CHECK_TOOL(RANLIB, ranlib, :)

Sam Hocevar's avatar
   
Sam Hocevar committed
36
dnl Gettext stuff
Sam Hocevar's avatar
   
Sam Hocevar committed
37
ALL_LINGUAS="de fr no ru"
Sam Hocevar's avatar
Sam Hocevar committed
38

Sam Hocevar's avatar
   
Sam Hocevar committed
39
40
AC_DEFINE_UNQUOTED(PACKAGE, "vlc")
AC_DEFINE_UNQUOTED(VERSION, "$VLC_VERSION")
Sam Hocevar's avatar
   
Sam Hocevar committed
41
42
AM_GNU_GETTEXT

43
44
45
dnl AM_PROG_LIBTOOL
AC_PROG_INSTALL

gbazin's avatar
   
gbazin committed
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
dnl
dnl  Check the operating system
dnl
case x"${target_os}" in
  x)
    SYS=unknown
    ;;
  xlinux*)
    SYS=linux
    ;;
  xbsdi*)
    SYS=bsdi
    ;;
  xdarwin*)
    SYS=darwin
    ;;
  x*mingw32*)
    SYS=mingw32
    AC_CHECK_TOOL(WINDRES, windres, :)
Sam Hocevar's avatar
   
Sam Hocevar committed
65
    LIB_IPV4="${LIB_IPV4} -lws2_32"
gbazin's avatar
   
gbazin committed
66
67
68
69
70
71
72
73
74
    LIB_RC="${LIB_RC} -lws2_32"
    ;;
  x*nto*)
    SYS=nto
    LIB_X11="${LIB_X11} -lsocket"
    LIB_XVIDEO="${LIB_XVIDEO} -lsocket"
    ;;
  xbeos)
    SYS=beos
Sam Hocevar's avatar
   
Sam Hocevar committed
75
    LIB_IPV4="${LIB_IPV4} -lbind"
gbazin's avatar
   
gbazin committed
76
77
78
79
80
81
82
83
    LIB_BEOS="${LIB_BEOS} -lbe -lgame -lroot -ltracker"
    PLDFLAGS="${PLDFLAGS} -nostart"
    ;;
  x*)
    SYS=${target_os}
    ;;
esac

84
dnl Check for system libs needed
Sam Hocevar's avatar
   
Sam Hocevar committed
85
AC_CHECK_FUNCS(gettimeofday select strerror strtod strtol isatty)
Sam Hocevar's avatar
   
Sam Hocevar committed
86
AC_CHECK_FUNC(connect,,[
Sam Hocevar's avatar
   
Sam Hocevar committed
87
88
89
90
  AC_CHECK_LIB(socket,connect,
    LIB_IPV4="${LIB_IPV4} -lsocket"
    LIB_VLC="${LIB_VLC} -lsocket"
)])
Sam Hocevar's avatar
   
Sam Hocevar committed
91
AC_CHECK_FUNC(gethostbyname,,[
Sam Hocevar's avatar
   
Sam Hocevar committed
92
93
94
95
  AC_CHECK_LIB(nsl,gethostbyname,LIB_IPV4="${LIB_IPV4} -lnsl")
])
AC_CHECK_FUNC(gethostbyname,,[
  AC_CHECK_LIB(bind,gethostbyname,LIB_IPV4="${LIB_IPV4} -lbind")
Sam Hocevar's avatar
   
Sam Hocevar committed
96
97
])
AC_CHECK_FUNC(nanosleep,,[
Sam Hocevar's avatar
   
Sam Hocevar committed
98
99
  AC_CHECK_LIB(rt,nanosleep,LIB_VLC="${LIB_VLC} -lrt",[
    AC_CHECK_LIB(posix4,nanosleep,LIB_VLC="${LIB_VLC} -lposix4")
Sam Hocevar's avatar
   
Sam Hocevar committed
100
101
  ])
])
102
AC_CHECK_FUNCS(usleep)
Sam Hocevar's avatar
   
Sam Hocevar committed
103
AC_CHECK_FUNC(inet_aton,,[
Sam Hocevar's avatar
   
Sam Hocevar committed
104
  AC_CHECK_LIB(resolv,inet_aton,LIB_VLC="${LIB_VLC} -lresolv")
Sam Hocevar's avatar
   
Sam Hocevar committed
105
])
Sam Hocevar's avatar
   
Sam Hocevar committed
106
AC_CHECK_FUNCS(vasprintf)
Sam Hocevar's avatar
   
Sam Hocevar committed
107
AC_CHECK_FUNCS(swab)
108
AC_CHECK_FUNCS([memalign valloc])
Sam Hocevar's avatar
   
Sam Hocevar committed
109

Sam Hocevar's avatar
   
Sam Hocevar committed
110
AC_CHECK_FUNCS(sigrelse)
gbazin's avatar
   
gbazin committed
111
AC_CHECK_FUNCS(getpwuid)
Sam Hocevar's avatar
   
Sam Hocevar committed
112

Sam Hocevar's avatar
   
Sam Hocevar committed
113
dnl Check for getopt
Sam Hocevar's avatar
   
Sam Hocevar committed
114
NEED_GETOPT=0
Sam Hocevar's avatar
   
Sam Hocevar committed
115
116
117
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
118
    [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support) LIB_VLC="${LIB_VLC} -lgnugetopt"],
Sam Hocevar's avatar
   
Sam Hocevar committed
119
    [NEED_GETOPT=1])])
Sam Hocevar's avatar
   
Sam Hocevar committed
120

121
AC_TYPE_SIGNAL
Sam Hocevar's avatar
   
Sam Hocevar committed
122
AC_CHECK_LIB(dl,dlopen,LIB_VLC="${LIB_VLC} -ldl")
Sam Hocevar's avatar
   
Sam Hocevar committed
123
124
125
AC_CHECK_LIB(m,cos,
  LIB_IMDCT="${LIB_IMDCT} -lm"
  LIB_FILTER_DISTORT="${LIB_FILTER_DISTORT} -lm")
Sam Hocevar's avatar
   
Sam Hocevar committed
126
127
128
129
130
AC_CHECK_LIB(m,pow,
  LIB_IMDCT="${LIB_IMDCT} -lm"
  LIB_IMDCT3DN="${LIB_IMDCT3DN} -lm"
  LIB_IMDCTSSE="${LIB_IMDCTSSE} -lm"
)
Sam Hocevar's avatar
   
Sam Hocevar committed
131

Sam Hocevar's avatar
   
Sam Hocevar committed
132
dnl Check for pthreads - borrowed from XMMS
Sam Hocevar's avatar
   
Sam Hocevar committed
133
134
135
136
137
138
139
140
141
142
143
144
145
146
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
Sam Hocevar's avatar
   
Sam Hocevar committed
147
148
149

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

Sam Hocevar's avatar
   
Sam Hocevar committed
151
152
153
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
154
            Define if <pthread.h> defines pthread_cond_t.)])
Sam Hocevar's avatar
   
Sam Hocevar committed
155
156
AC_EGREP_HEADER(strncasecmp,strings.h,[
  AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
Sam Hocevar's avatar
   
Sam Hocevar committed
157
            Define if <strings.h> defines strncasecmp.)])
Sam Hocevar's avatar
   
Sam Hocevar committed
158

Sam Hocevar's avatar
   
Sam Hocevar committed
159
dnl Check for headers
Sam Hocevar's avatar
   
Sam Hocevar committed
160
AC_CHECK_HEADERS(getopt.h strings.h)
161
AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/time.h sys/times.h)
Sam Hocevar's avatar
   
Sam Hocevar committed
162
163
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
164
AC_CHECK_HEADERS(machine/param.h sys/shm.h)
Sam Hocevar's avatar
   
Sam Hocevar committed
165

Sam Hocevar's avatar
   
Sam Hocevar committed
166
167
AC_HEADER_TIME

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

Sam Hocevar's avatar
   
Sam Hocevar committed
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
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

Sam Hocevar's avatar
   
Sam Hocevar committed
191
dnl Check for ntohl, etc.
192
193
194
195
196
197
198
199
200
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
Sam Hocevar's avatar
   
Sam Hocevar committed
201

Sam Hocevar's avatar
   
Sam Hocevar committed
202
dnl Check for inline function size limit
203
204
205
206
207
208
209
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
Sam Hocevar's avatar
   
Sam Hocevar committed
210

Sam Hocevar's avatar
   
Sam Hocevar committed
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
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

Sam Hocevar's avatar
   
Sam Hocevar committed
289
dnl Check for Darwin plugin linking flags
Christophe Massiot's avatar
Christophe Massiot committed
290
AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error -lcc_dynamic],
291
    [ac_cv_ld_darwin],
Christophe Massiot's avatar
Christophe Massiot committed
292
    [CFLAGS="${save_CFLAGS} -bundle -undefined error -lcc_dynamic"
293
294
     AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
if test x"$ac_cv_ld_darwin" != x"no"; then
Christophe Massiot's avatar
Christophe Massiot committed
295
    PLDFLAGS="${PLDFLAGS} -bundle -undefined error -lcc_dynamic"
296
fi
Sam Hocevar's avatar
   
Sam Hocevar committed
297
298

dnl Check for standard plugin linking flags
299
300
301
302
303
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
Sam Hocevar's avatar
   
Sam Hocevar committed
304
    PLDFLAGS="${PLDFLAGS} -shared"
Sam Hocevar's avatar
   
Sam Hocevar committed
305
fi
306
307
        
dnl Check for soname setting
Sam Hocevar's avatar
   
Sam Hocevar committed
308
if test x"${SOFLAGS}" = x; then
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
    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.
------------
"
331
    fi
Sam Hocevar's avatar
   
Sam Hocevar committed
332
333
fi

334
335
336
337
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
338
        CFLAGS="${save_CFLAGS} -Werror"
339
340
341
342
343
344
345
346
347
348
    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

Sam Hocevar's avatar
   
Sam Hocevar committed
349
dnl End of the bizarre compilation tests
Sam Hocevar's avatar
   
Sam Hocevar committed
350
CFLAGS="${save_CFLAGS}"
Sam Hocevar's avatar
   
Sam Hocevar committed
351
LDFLAGS="${save_LDFLAGS}"
Christophe Massiot's avatar
Christophe Massiot committed
352

353
dnl Check for boolean_t
354
355
AC_CACHE_CHECK([for boolean_t in sys/types.h],
    [ac_cv_c_boolean_t_sys_types_h],
Sam Hocevar's avatar
   
Sam Hocevar committed
356
    [AC_TRY_COMPILE([#include <sys/types.h>], [boolean_t foo;],
357
358
359
360
361
362
363
     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],
Sam Hocevar's avatar
   
Sam Hocevar committed
364
    [AC_TRY_COMPILE([#include <pthread.h>], [boolean_t foo;],
365
366
367
368
369
370
371
     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],
Sam Hocevar's avatar
   
Sam Hocevar committed
372
    [AC_TRY_COMPILE([#include <cthreads.h>], [boolean_t foo;],
373
374
375
376
     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
Sam Hocevar's avatar
   
Sam Hocevar committed
377

Sam Hocevar's avatar
   
Sam Hocevar committed
378
379
380
381
382
383
384
385
386
387
388
dnl
dnl  Check the CPU
dnl
case x"${target_cpu}" in
  x)
    ARCH=unknown
    ;;
  *)
    ARCH=${target_cpu}
    ;;
esac
Sam Hocevar's avatar
   
Sam Hocevar committed
389
390
391
392

dnl
dnl  default modules
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
393
BUILTINS="${BUILTINS} idct idctclassic motion imdct downmix chroma_i420_rgb chroma_i420_yuy2 chroma_i422_yuy2 chroma_i420_ymga mpeg_adec ac3_adec mpeg_vdec"
Sam Hocevar's avatar
   
Sam Hocevar committed
394
PLUGINS="${PLUGINS} dummy null rc logger mpeg_es mpeg_ps mpeg_ts file udp http ipv4 memcpy lpcm_adec ac3_spdif spudec filter_deinterlace filter_invert filter_wall filter_transform filter_distort fx_scope"
Sam Hocevar's avatar
   
Sam Hocevar committed
395
396
397
398

dnl
dnl  Accelerated modules
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
399
MMX_MODULES="memcpymmx idctmmx motionmmx chroma_i420_rgb_mmx chroma_i420_yuy2_mmx chroma_i422_yuy2_mmx chroma_i420_ymga_mmx"
Sam Hocevar's avatar
   
Sam Hocevar committed
400
401
MMXEXT_MODULES="memcpymmxext idctmmxext motionmmxext"
THREEDNOW_MODULES="memcpy3dn imdct3dn downmix3dn"
Sam Hocevar's avatar
   
Sam Hocevar committed
402
SSE_MODULES="imdctsse downmixsse"
403
ALTIVEC_MODULES="idctaltivec motionaltivec"
404

405
406
AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
    [ac_cv_mmx_inline],
Sam Hocevar's avatar
   
Sam Hocevar committed
407
    [AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
408
                    ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
409
if test x"$ac_cv_mmx_inline" != x"no"; then
Sam Hocevar's avatar
   
Sam Hocevar committed
410
  ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
411
fi
Sam Hocevar's avatar
   
Sam Hocevar committed
412

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

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

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

gbazin's avatar
   
gbazin committed
439
440
441
# don't try to grok altivec with native mingw32 it doesn't work right now
# we should be able to remove this test with future versions of mingw32
if test x$SYS != xmingw32; then
442
443
AC_CACHE_CHECK([if \$CC groks Altivec inline assembly],
    [ac_cv_altivec_inline],
Sam Hocevar's avatar
   
Sam Hocevar committed
444
    [AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
445
446
447
         ac_cv_altivec_inline=yes,
         [save_CFLAGS=$CFLAGS
          CFLAGS="$CFLAGS -Wa,-m7400"
Sam Hocevar's avatar
   
Sam Hocevar committed
448
          AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
449
            [ac_cv_altivec_inline="-Wa,-m7400"],
450
            ac_cv_altivec_inline=no)
451
452
          CFLAGS=$save_CFLAGS
         ])])
453
if test x"$ac_cv_altivec_inline" != x"no"; then
Sam Hocevar's avatar
   
Sam Hocevar committed
454
  AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks ALTIVEC inline assembly.)
455
  if test x"$ac_cv_altivec_inline" != x"yes"; then
Sam Hocevar's avatar
   
Sam Hocevar committed
456
457
    CFLAGS_IDCTALTIVEC="$CFLAGS_IDCTALTIVEC $ac_cv_altivec_inline"
    CFLAGS_MOTIONALTIVEC="$CFLAGS_MOTIONALTIVEC $ac_cv_altivec_inline"
Sam Hocevar's avatar
   
Sam Hocevar committed
458
    CFLAGS_VLC="$CFLAGS_VLC $ac_cv_altivec_inline"
459
  fi
460
  ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
461
fi
462

463
464
AC_CACHE_CHECK([if \$CC groks Altivec C extensions],
    [ac_cv_c_altivec],
465
466
467
    [save_CFLAGS=$CFLAGS
     CFLAGS="$CFLAGS -faltivec"
     # Darwin test
Sam Hocevar's avatar
   
Sam Hocevar committed
468
     AC_TRY_COMPILE(,[vec_mtvscr((vector unsigned int)(0));],
469
470
        ac_cv_c_altivec=-faltivec, [
        # Linux/PPC test
Sam Hocevar's avatar
   
Sam Hocevar committed
471
        CFLAGS="$save_CFLAGS $CFLAGS_IDCTALTIVEC -fvec"
Sam Hocevar's avatar
   
Sam Hocevar committed
472
        AC_TRY_COMPILE(,[vec_mtvscr((vector unsigned int)(0));],
473
474
475
476
            [ac_cv_c_altivec="-fvec"], ac_cv_c_altivec=no)
        ])
     CFLAGS=$save_CFLAGS
    ])
477
if test x"$ac_cv_c_altivec" != x"no"; then
Sam Hocevar's avatar
   
Sam Hocevar committed
478
  AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C altivec extensions.)
Sam Hocevar's avatar
   
Sam Hocevar committed
479
480
  CFLAGS_IDCTALTIVEC="$CFLAGS_IDCTALTIVEC $ac_cv_c_altivec"
  CFLAGS_MOTIONALTIVEC="$CFLAGS_MOTIONALTIVEC $ac_cv_c_altivec"
Sam Hocevar's avatar
   
Sam Hocevar committed
481
  CFLAGS_VLC="$CFLAGS_VLC $ac_cv_c_altivec"
482
  ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
483
484
485
486
487
488
489
490
491
492
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
Sam Hocevar's avatar
   
Sam Hocevar committed
493
494
  LIB_IDCTALTIVEC="${LIB_IDCTALTIVEC} -framework vecLib"
  LIB_MOTIONALTIVEC="${LIB_MOTIONALTIVEC} -framework vecLib"
Sam Hocevar's avatar
   
Sam Hocevar committed
495
  LIB_VLC="${LIB_VLC} -framework vecLib"
496
fi
gbazin's avatar
   
gbazin committed
497
fi # end if mingw32
498
499

dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
500
dnl  DVD and VCD devices
501
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
502
503
case x$SYS in
  xmingw32)
Sam Hocevar's avatar
   
Sam Hocevar committed
504
505
506
507
508
509
510
511
512
513
514
515
    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")

516

Sam Hocevar's avatar
   
Sam Hocevar committed
517
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
518
dnl  libdvdcss: check for DVD ioctls
Sam Hocevar's avatar
   
Sam Hocevar committed
519
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
520

Sam Hocevar's avatar
   
Sam Hocevar committed
521
522
523
dnl  default is no
CAN_BUILD_LIBDVDCSS=0

Sam Hocevar's avatar
   
Sam Hocevar committed
524
525
dnl  for windoze
AC_CHECK_HEADERS(winioctl.h,[
Sam Hocevar's avatar
   
Sam Hocevar committed
526
  CAN_BUILD_LIBDVDCSS="${HAVE_LIBDVDCSS}"
Sam Hocevar's avatar
   
Sam Hocevar committed
527
528
])

Sam Hocevar's avatar
   
Sam Hocevar committed
529
dnl  for Un*x and BeOS
Sam Hocevar's avatar
   
Sam Hocevar committed
530
AC_CHECK_HEADERS(sys/ioctl.h,[
Sam Hocevar's avatar
   
Sam Hocevar committed
531
  CAN_BUILD_LIBDVDCSS="${HAVE_LIBDVDCSS}"
Sam Hocevar's avatar
   
Sam Hocevar committed
532
  AC_CHECK_HEADERS(sys/cdio.h sys/dvdio.h linux/cdrom.h dvd.h)
Sam Hocevar's avatar
   
Sam Hocevar committed
533
  BSD_DVD_STRUCT=0
Sam Hocevar's avatar
   
Sam Hocevar committed
534
  LINUX_DVD_STRUCT=0
535
  OPENBSD_DVD_STRUCT=0
Sam Hocevar's avatar
   
Sam Hocevar committed
536
537
538
  dnl
  dnl Old FreeBSD: sys/cdio.h
  dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
539
540
541
542
  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,[
543
                    BSD_DVD_STRUCT=1],[LINUX_DVD_STRUCT=1; OPENBSD_DVD_STRUCT=1])
Sam Hocevar's avatar
   
Sam Hocevar committed
544
545
546
547
  ])
  dnl
  dnl Newer FreeBSD: sys/dvdio.h
  dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
548
549
550
551
552
  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])
Sam Hocevar's avatar
   
Sam Hocevar committed
553
554
555
556
557
558
559
  ])
  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.)
Sam Hocevar's avatar
   
Sam Hocevar committed
560
561
562
563
564
    LINUX_DVD_STRUCT=1
  ])
  dnl
  dnl BSDI: dvd.h
  dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
565
  NEED_BSDI_LIBDVD=0
Sam Hocevar's avatar
   
Sam Hocevar committed
566
567
568
  AC_EGREP_HEADER(dvd_struct,dvd.h,[
    AC_DEFINE(DVD_STRUCT_IN_DVD_H, 1,
              Define if <dvd.h> defines DVD_STRUCT.)
Sam Hocevar's avatar
   
Sam Hocevar committed
569
    LIB_LIBDVDCSS="${LIB_LIBDVDCSS} -ldvd"
Sam Hocevar's avatar
   
Sam Hocevar committed
570
    LINUX_DVD_STRUCT=1
Sam Hocevar's avatar
   
Sam Hocevar committed
571
572
573
574
575
576
  ],[
    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
Sam Hocevar's avatar
   
Sam Hocevar committed
577
578
      AC_DEFINE(DVD_STRUCT_IN_BSDI_DVDIOCTL_DVD_H, 1,
                Define if <extras/BSDI_dvdioctl/dvd.h> defines DVD_STRUCT.)
Sam Hocevar's avatar
   
Sam Hocevar committed
579
      SRC_DVDCSS_EXTRA="${SRC_DVDCSS_EXTRA} bsdi_dvdioctl.c"
Sam Hocevar's avatar
   
Sam Hocevar committed
580
581
      LINUX_DVD_STRUCT=1
    ])
Sam Hocevar's avatar
   
Sam Hocevar committed
582
  ])
Sam Hocevar's avatar
   
Sam Hocevar committed
583
  dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
584
  dnl Solaris: sys/scsi/scsi_types.h, sys/scsi/impl/uscsi.h
Sam Hocevar's avatar
   
Sam Hocevar committed
585
  dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
586
  AC_CHECK_HEADER(sys/scsi/scsi_types.h,[
Sam Hocevar's avatar
   
Sam Hocevar committed
587
588
589
590
591
    AC_CHECK_HEADER(sys/scsi/impl/uscsi.h,[
      AC_DEFINE(SOLARIS_USCSI, 1, Have userspace SCSI headers.)
    ])
  ])
  dnl
592
593
594
595
596
597
598
599
  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
Sam Hocevar's avatar
   
Sam Hocevar committed
600
601
602
603
604
  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.)
605
606
607
608
    if test x$OPENBSD_DVD_STRUCT = x1; then
      AC_DEFINE(HAVE_OPENBSD_DVD_STRUCT, 1,
                Define if OpenBSD-like dvd_struct is defined.)
    fi
Sam Hocevar's avatar
   
Sam Hocevar committed
609
610
611
  else
    if test x$BSD_DVD_STRUCT = x1; then
      AC_DEFINE(HAVE_BSD_DVD_STRUCT, 1,
Sam Hocevar's avatar
   
Sam Hocevar committed
612
                Define if FreeBSD-like dvd_struct is defined.)
Sam Hocevar's avatar
   
Sam Hocevar committed
613
614
    fi
  fi
Sam Hocevar's avatar
   
Sam Hocevar committed
615
616
])

Sam Hocevar's avatar
   
Sam Hocevar committed
617
618
619
AC_ARG_WITH(,[])
AC_ARG_WITH(,[Optimization options:])

Sam Hocevar's avatar
   
Sam Hocevar committed
620
dnl
621
dnl  Special arch tuning
Sam Hocevar's avatar
   
Sam Hocevar committed
622
dnl
623
AC_ARG_WITH(tuning,
Sam Hocevar's avatar
   
Sam Hocevar committed
624
[  --with-tuning=ARCH      enable special tuning for an architecture
625
626
627
628
                          (default i686 on IA-32 and 750 on PPC)])
if test "x$withval" != "x"; then
    TUNING=$withval
else
629
    if test x${target_cpu} = xi686 -o x${target_cpu} = xi586 -o x${target_cpu} = xi486 -o x${target_cpu} = xi386; then TUNING="pentiumpro"
630
    else
631
        if test x${target_cpu} = xpowerpc; then TUNING="750"; fi
632
633
    fi
fi
Sam Hocevar's avatar
   
Sam Hocevar committed
634
635

dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
636
dnl  x86 accelerations
Sam Hocevar's avatar
   
Sam Hocevar committed
637
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
638
639
640
641
642
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
Sam Hocevar's avatar
   
Sam Hocevar committed
643

Sam Hocevar's avatar
   
Sam Hocevar committed
644
645
646
647
648
649
650
651
dnl
dnl  Enable/disable optimizations
dnl
AC_ARG_ENABLE(optimizations,
[  --disable-optimizations disable compiler optimizations (default enabled)],
[ if test x$enableval = xno; then OPTIMS=0; fi ],
[ OPTIMS=1 ])

Sam Hocevar's avatar
   
Sam Hocevar committed
652
653
654
dnl
dnl  AltiVec acceleration
dnl
655
AC_ARG_ENABLE(altivec,
Sam Hocevar's avatar
   
Sam Hocevar committed
656
[  --disable-altivec       disable altivec optimizations (default enabled on PPC)],
657
658
[ if test x$enableval = xyes; then ARCH="${ARCH} altivec";
    BUILTINS="${BUILTINS} ${ACCEL_MODULES}"; fi ],
659
[ if test x${target_cpu} = xpowerpc; then ARCH="${ARCH} altivec";
660
    BUILTINS="${BUILTINS} ${ACCEL_MODULES}"; fi ])
Sam Hocevar's avatar
   
Sam Hocevar committed
661
662
663
664

dnl
dnl  Debugging mode
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
665
DEBUG=0
666
AC_ARG_ENABLE(debug,
Sam Hocevar's avatar
   
Sam Hocevar committed
667
[  --enable-debug          debug mode (default disabled)],
668
[ if test x$enableval = xyes; then DEBUG=1; fi ])
Sam Hocevar's avatar
   
Sam Hocevar committed
669

Sam Hocevar's avatar
   
Sam Hocevar committed
670
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
671
dnl  Enable release-specific flags
Sam Hocevar's avatar
   
Sam Hocevar committed
672
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
673
674
675
676
677
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`"; ])
Sam Hocevar's avatar
   
Sam Hocevar committed
678

Sam Hocevar's avatar
   
Sam Hocevar committed
679
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
680
dnl  Input plugins
Sam Hocevar's avatar
   
Sam Hocevar committed
681
682
dnl

Sam Hocevar's avatar
   
Sam Hocevar committed
683
AC_ARG_WITH(,[Input plugins:])
Sam Hocevar's avatar
   
Sam Hocevar committed
684
685

dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
686
dnl  DVD module: check for installed libdvdcss or local libdvdcss
Sam Hocevar's avatar
   
Sam Hocevar committed
687
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
688
NEED_LIBDVDCSS=0
Sam Hocevar's avatar
   
Sam Hocevar committed
689
STATIC_LIBDVDCSS=0
Sam Hocevar's avatar
   
Sam Hocevar committed
690
DUMMY_LIBDVDCSS=0
Sam Hocevar's avatar
   
Sam Hocevar committed
691
AC_ARG_WITH(dvdcss,
Sam Hocevar's avatar
   
Sam Hocevar committed
692
693
694
  [  --with-dvdcss[=name]    use libdvdcss, either 'yes', 'no', 'local-static',
                          'local-shared', or a path to another libdvdcss such
                          as '/usr/local' (default 'local-static')],
Sam Hocevar's avatar
   
Sam Hocevar committed
695
696
697
  [ case "x${withval}" in
    xlocal-static|xyes)
      # local libdvdcss, statically linked
Stéphane Borel's avatar
   
Stéphane Borel committed
698
      BUILTINS="${BUILTINS} dvd"
Sam Hocevar's avatar
   
Sam Hocevar committed
699
700
      if test x${CAN_BUILD_LIBDVDCSS} = x1
      then
Sam Hocevar's avatar
   
Sam Hocevar committed
701
        NEED_LIBDVDCSS=1
Sam Hocevar's avatar
   
Sam Hocevar committed
702
703
        STATIC_LIBDVDCSS=1
        CFLAGS_DVD="${CFLAGS_DVD} -I../../extras/libdvdcss"
Sam Hocevar's avatar
   
Sam Hocevar committed
704
        LIB_DVD="${LIB_DVD} lib/libdvdcss.a ${LIB_LIBDVDCSS}"
Sam Hocevar's avatar
   
Sam Hocevar committed
705
706
707
708
      fi
    ;;
    xlocal-shared)
      # local libdvdcss, dynamically linked
Stéphane Borel's avatar
   
Stéphane Borel committed
709
      PLUGINS="${PLUGINS} dvd"
Sam Hocevar's avatar
   
Sam Hocevar committed
710
711
      if test x${CAN_BUILD_LIBDVDCSS} = x1
      then
Sam Hocevar's avatar
   
Sam Hocevar committed
712
        NEED_LIBDVDCSS=1
Sam Hocevar's avatar
   
Sam Hocevar committed
713
        CFLAGS_DVD="${CFLAGS_DVD} -I../../extras/libdvdcss"
714
        LIB_DVD="${LIB_DVD} -L../../lib -ldvdcss"
Sam Hocevar's avatar
   
Sam Hocevar committed
715
      fi
Sam Hocevar's avatar
   
Sam Hocevar committed
716
    ;;
Sam Hocevar's avatar
   
Sam Hocevar committed
717
718
    xno)
      # don't use libdvdcss at all, build a DVD module that can dlopen() it
Sam Hocevar's avatar
   
Sam Hocevar committed
719
      PLUGINS="${PLUGINS} dvd"
720
      DUMMY_LIBDVDCSS=1
Sam Hocevar's avatar
   
Sam Hocevar committed
721
      SRC_DVD_EXTRA="${SRC_DVD_EXTRA} dummy_dvdcss.c"
Sam Hocevar's avatar
   
Sam Hocevar committed
722
      CFLAGS_DVD="${CFLAGS_DVD} -DGOD_DAMN_DMCA"
Sam Hocevar's avatar
   
Sam Hocevar committed
723
      CFLAGS_DVD="${CFLAGS_DVD} -DLIBDVDCSS_VERSION=\"${LIBDVDCSS_VERSION}\""
Sam Hocevar's avatar
   
Sam Hocevar committed
724
725
      LIB_DVD="${LIB_DVD} -ldl"
    ;;
Sam Hocevar's avatar
   
Sam Hocevar committed
726
    *)
Sam Hocevar's avatar
   
Sam Hocevar committed
727
      # existing libdvdcss
Stéphane Borel's avatar
   
Stéphane Borel committed
728
      PLUGINS="${PLUGINS} dvd"
Sam Hocevar's avatar
   
Sam Hocevar committed
729
730
      if test "x$withval" != "xyes"
      then
731
        LIB_DVD="${LIB_DVD} -L"$withval"/lib"
Sam Hocevar's avatar
   
Sam Hocevar committed
732
733
734
        CFLAGS_DVD="${CFLAGS_DVD} -I"$withval"/include"
      fi
      LIB_DVD="${LIB_DVD} -ldvdcss"
Sam Hocevar's avatar
   
Sam Hocevar committed
735
    esac ],
Sam Hocevar's avatar
   
Sam Hocevar committed
736
  # user didn't decide, we choose to use local libdvdcss and link statically
Sam Hocevar's avatar
   
Sam Hocevar committed
737
  # if libdvdcss is in the archive, or to use the dummy replacement otherwise.
Sam Hocevar's avatar
   
Sam Hocevar committed
738
739
  [ if test x${CAN_BUILD_LIBDVDCSS} = x1
    then
Stéphane Borel's avatar
   
Stéphane Borel committed
740
      BUILTINS="${BUILTINS} dvd"
Sam Hocevar's avatar
   
Sam Hocevar committed
741
      NEED_LIBDVDCSS=1
Sam Hocevar's avatar
   
Sam Hocevar committed
742
743
      STATIC_LIBDVDCSS=1
      CFLAGS_DVD="${CFLAGS_DVD} -I../../extras/libdvdcss"
Sam Hocevar's avatar
   
Sam Hocevar committed
744
      LIB_DVD="${LIB_DVD} lib/libdvdcss.a ${LIB_LIBDVDCSS}"
Sam Hocevar's avatar
   
Sam Hocevar committed
745
746
    else
      # XXX: no check for libdl is done, don't try this at home !
Sam Hocevar's avatar
   
Sam Hocevar committed
747
      PLUGINS="${PLUGINS} dvd"
748
      DUMMY_LIBDVDCSS=1
Sam Hocevar's avatar
   
Sam Hocevar committed
749
      SRC_DVD_EXTRA="${SRC_DVD_EXTRA} dummy_dvdcss.c"
Sam Hocevar's avatar
   
Sam Hocevar committed
750
751
      CFLAGS_DVD="${CFLAGS_DVD} -DGOD_DAMN_DMCA"
      LIB_DVD="${LIB_DVD} -ldl"
Sam Hocevar's avatar
   
Sam Hocevar committed
752
    fi ])
Sam Hocevar's avatar
   
Sam Hocevar committed
753

Stéphane Borel's avatar
Stéphane Borel committed
754
755
756
dnl
dnl DVDREAD module: check for libdvdread plugin
dnl
757
758
759
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,
Sam Hocevar's avatar
   
Sam Hocevar committed
760
  [  --with-dvdread[=name]   use libdvdread, same options as dvdcss (default 'no')],
761
762
763
764
765
766
767
768
  [ 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
769
        AC_MSG_ERROR([Can't link static dvdread with shared dvdcss])
770
771
772
773
774
775
776
      fi
    ;;
    xno)
    ;;
    x)
      if test x${STATIC_LIBDVDREAD} = x1
      then
Christophe Massiot's avatar
Christophe Massiot committed
777
        #BUILTINS="${BUILTINS} dvdread" 
778
779
780
        CFLAGS_DVDREAD="${CFLAGS_DVDREAD} ${CFLAGS_DVD} -I../../extras/libdvdread"
        LIB_DVDREAD="${LIB_DVDREAD} lib/libdvdread.a ${LIB_DVD}"
      else
Christophe Massiot's avatar
Christophe Massiot committed
781
        #PLUGINS="${PLUGINS} dvdread"
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
        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
797
        AC_MSG_ERROR([Can't link shared dvdread with static dvdcss])
798
      else
Christophe Massiot's avatar
Christophe Massiot committed
799
        #PLUGINS="${PLUGINS} dvdread"
800
801
802
803
804
805
806
807
808
809
        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 ])
Stéphane Borel's avatar
Stéphane Borel committed
810

811
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
812
dnl  VCD module
813
814
dnl
AC_ARG_ENABLE(vcd,
Sam Hocevar's avatar
   
Sam Hocevar committed
815
  [  --enable-vcd            VCD support for Linux (default enabled)])
816

Sam Hocevar's avatar
   
Sam Hocevar committed
817
818
819
if test x$enable_vcd != xno
then
  AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
Sam Hocevar's avatar
   
Sam Hocevar committed
820
    PLUGINS="${PLUGINS} vcd"
Sam Hocevar's avatar
   
Sam Hocevar committed
821
  ])
822

Sam Hocevar's avatar
   
Sam Hocevar committed
823
824
825
826
  if test "x${SYS}" = "xbsdi"
  then
    PLUGINS="${PLUGINS} vcd"
  fi
827

Sam Hocevar's avatar
   
Sam Hocevar committed
828
829
830
  if test "x${SYS}" = "xdarwin"
  then
    PLUGINS="${PLUGINS} vcd"
Christophe Massiot's avatar
Christophe Massiot committed
831
    LIB_VCD="${LIB_VCD} -framework IOKit -framework CoreFoundation" 
Sam Hocevar's avatar
   
Sam Hocevar committed
832
  fi
Jon Lech Johansen's avatar
Jon Lech Johansen committed
833
834
fi

Johan Bilien's avatar
Johan Bilien committed
835
836
837
838
839
840
841
842
843
844
845
dnl
dnl  Satellite input module
dnl
AC_ARG_ENABLE(satellite,
  [  --enable-satellite       Satellite card support (default disabled)],
  [ if test x$enable_satellite = xyes
    then
      BUILTINS="${BUILTINS} satellite"
      AC_DEFINE(HAVE_SATELLITE, 1, define if compiling with satellite card support)
    fi])

846
847
848
dnl
dnl  ipv6 plugin
dnl
Christophe Massiot's avatar
Christophe Massiot committed
849
AC_CHECK_FUNC(inet_pton,[PLUGINS="${PLUGINS} ipv6"])
850

Sam Hocevar's avatar
   
Sam Hocevar committed
851
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
852
dnl  Codec plugins
Sam Hocevar's avatar
   
Sam Hocevar committed
853
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
854

Sam Hocevar's avatar
   
Sam Hocevar committed
855
AC_ARG_WITH(,[Codec plugins:])
Sam Hocevar's avatar
   
Sam Hocevar committed
856

857
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
858
dnl  mad plugin
859
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
860
861
AC_ARG_ENABLE(mad,
  [  --enable-mad            libmad module (default disabled)])
Sam Hocevar's avatar
   
Sam Hocevar committed
862
if test x$enable_mad = xyes
Sam Hocevar's avatar
   
Sam Hocevar committed
863
864
865
866
867
868
869
then
  PLUGINS="${PLUGINS} mad"
  LIB_MAD="${LIB_MAD} -lmad"
  AC_ARG_WITH(mad,
    [    --with-mad=PATH       path to libmad],
    [ if test "x$with_val" != "xno" -a "x$with_val" != "x"
      then
Sam Hocevar's avatar
   
Sam Hocevar committed
870
        CFLAGS_MAD="${CFLAGS_MAD} -I$with_val/include"
Sam Hocevar's avatar
   
Sam Hocevar committed
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
        LIB_MAD="${LIB_MAD} -L$with_val/lib"
      fi ])
  save_CFLAGS=$CFLAGS
  save_LDFLAGS=$LDFLAGS
  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
fi
888

Sam Hocevar's avatar
   
Sam Hocevar committed
889
dnl special case for BeOS
Sam Hocevar's avatar
   
Sam Hocevar committed
890
891
if test x$SYS = xbeos
then
Sam Hocevar's avatar
   
Sam Hocevar committed
892
    PLUGINS="${PLUGINS} beos"
893
894
895
896

dnl default case
else

gbazin's avatar
   
gbazin committed
897
dnl
gbazin's avatar
   
gbazin committed
898
dnl  a52 AC3 decoder plugin
gbazin's avatar
   
gbazin committed
899
dnl
gbazin's avatar
   
gbazin committed
900
901
AC_ARG_ENABLE(a52,
  [  --disable-a52           AC3 support with liba52 (default enabled)])
Sam Hocevar's avatar
   
Sam Hocevar committed
902
if test "x$enableval" != "xno" -a x$SYS != xmingw32
gbazin's avatar
   
gbazin committed
903
904
  then
    AC_CHECK_HEADERS(a52dec/a52.h, [
gbazin's avatar
   
gbazin committed
905
906
      BUILTINS="${BUILTINS} a52"
      LIB_A52="${LIB_A52} -la52"
gbazin's avatar
   
gbazin committed
907
908
909
     ],[])
fi

Sam Hocevar's avatar
   
Sam Hocevar committed
910
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
911
dnl  Video plugins
Sam Hocevar's avatar
   
Sam Hocevar committed
912
913
dnl

Sam Hocevar's avatar
   
Sam Hocevar committed
914
AC_ARG_WITH(,[Video plugins:])
Sam Hocevar's avatar
   
Sam Hocevar committed
915

Sam Hocevar's avatar
   
Sam Hocevar committed
916
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
917
918
dnl  X11 module
dnl  (enabled by default except on win32)
Sam Hocevar's avatar
   
Sam Hocevar committed
919
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
AC_ARG_ENABLE(x11,
  [  --disable-x11           X11 support (default enabled)])
if test x$enable_x11 != xno &&
  (test x$SYS != xmingw32 || test x$enable_x11 = xyes); 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/Xlib.h, [
    PLUGINS="${PLUGINS} x11"
    LIB_X11="${LIB_X11} -L$x_libraries -lX11 -lXext"
    CFLAGS_X11="${CFLAGS_X11} -I$x_includes"
  ])
  CPPFLAGS=$saved_CPPFLAGS
fi

dnl
dnl  XVideo module
dnl  (enabled by default except on win32)
dnl
AC_ARG_ENABLE(xvideo,
  [  --disable-xvideo        XVideo support (default enabled)])
if test x$enable_xvideo != xno &&
  (test x$SYS != xmingw32 || test x$enable_xvideo = xyes); 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/Xv.h, [
    saved_CFLAGS=$CFLAGS
    CFLAGS="$CFLAGS -L$x_libraries -lX11 -lXext"
    AC_CHECK_LIB(Xv_pic,XvSetPortAttribute,
      # We have Xv_pic, that's good, we can build an xvideo.so plugin !
      PLUGINS="${PLUGINS} xvideo"
      LIB_XVIDEO="${LIB_XVIDEO} -L$x_libraries -lX11 -lXext -lXv_pic"
      CFLAGS_XVIDEO="${CFLAGS_XVIDEO} -I$x_includes",
      # We don't have Xv_pic, let's make xvideo.a as builtin
      BUILTINS="${BUILTINS} xvideo"
      LIB_XVIDEO="${LIB_XVIDEO} -L$x_libraries -lX11 -lXext -lXv"
      CFLAGS_XVIDEO="${CFLAGS_XVIDEO} -I$x_includes")
    CFLAGS=$saved_CFLAGS
  ]
  CPPFLAGS=$saved_CPPFLAGS)
fi
Sam Hocevar's avatar
   
Sam Hocevar committed
972
973
974
975

dnl
dnl  SDL module
dnl
976
977
AC_ARG_ENABLE(sdl,
  [  --disable-sdl           SDL support (default enabled)])
978
if test "x$enable_sdl" != "xno"
979
then
980
981
  SDL_PATH=$PATH
  AC_ARG_WITH(sdl-config-path,
Sam Hocevar's avatar
   
Sam Hocevar committed
982
    [    --with-sdl-config-path=PATH sdl-config path (default search in \$PATH)],
983
984
985
986
987
    [ if test "x$withval" != "xno"
      then
        SDL_PATH=$withval:$PATH
      fi ])
  AC_PATH_PROG(SDL12_CONFIG, sdl12-config, no, $SDL_PATH)
988
989
  SDL_CONFIG=${SDL12_CONFIG}
  SDL_HEADER="SDL12/SDL.h"
Sam Hocevar's avatar
   
Sam Hocevar committed
990
991
  if test x${SDL_CONFIG} = xno
  then
992
    AC_PATH_PROG(SDL11_CONFIG, sdl11-config, no, $SDL_PATH)
Sam Hocevar's avatar
   
Sam Hocevar committed
993
    SDL_CONFIG=${SDL11_CONFIG}
994
995
    SDL_HEADER="SDL11/SDL.h"
  fi
Sam Hocevar's avatar
   
Sam Hocevar committed
996
997
  if test x${SDL_CONFIG} = xno
  then
998
    AC_PATH_PROG(SDL_CONFIG, sdl-config, no, $SDL_PATH)
999
    SDL_HEADER="SDL/SDL.h"
1000
  fi