configure.in 65.5 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
117
118
    vlc_LDFLAGS="${vlc_LDFLAGS} -lbe"
    plugins_LDFLAGS="${plugins_LDFLAGS} -nostart"
    beos_LDFLAGS="${beos_LDFLAGS} -lbe -lgame -lroot -ltracker"
    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"
Sam Hocevar's avatar
   
Sam Hocevar committed
199
)
Sam Hocevar's avatar
   
Sam Hocevar committed
200

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

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

Sam Hocevar's avatar
   
Sam Hocevar committed
220
221
222
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
223
            Define if <pthread.h> defines pthread_cond_t.)])
Sam Hocevar's avatar
Sam Hocevar committed
224
225
226
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
227
228
AC_EGREP_HEADER(strncasecmp,strings.h,[
  AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
Sam Hocevar's avatar
   
Sam Hocevar committed
229
            Define if <strings.h> defines strncasecmp.)])
Sam Hocevar's avatar
   
Sam Hocevar committed
230

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

Sam Hocevar's avatar
   
Sam Hocevar committed
239
240
AC_HEADER_TIME

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

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

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

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

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

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

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

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

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

409
410
411
412
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
413
        CFLAGS="${save_CFLAGS} -Werror"
414
415
    for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
        AC_TRY_COMPILE([],
416
417
418
419
420
        [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
421
    AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
422
        [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
423
424
fi

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

dnl
dnl  default modules
dnl
440
BUILTINS="${BUILTINS}"
441
PLUGINS="${PLUGINS} misc/dummy/dummy misc/null/null"
442
PLUGINS="${PLUGINS} control/rc/rc misc/logger/logger access/file access/udp access/http access/rtp misc/network/ipv4 misc/memcpy/memcpy"
443
PLUGINS="${PLUGINS} demux/mpeg/es demux/mpeg/audio demux/mpeg/mpeg_system demux/mpeg/ps demux/mpeg/ts"
444
445
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"
446
PLUGINS="${PLUGINS} video_filter/deinterlace/deinterlace video_filter/invert video_filter/wall video_filter/transform video_filter/distort video_filter/clone video_filter/crop"
447
PLUGINS="${PLUGINS} audio_filter/converter/float32tos16 audio_filter/converter/float32tos8 audio_filter/converter/float32tou16 audio_filter/converter/float32tou8 audio_filter/converter/a52tospdif"
448
PLUGINS="${PLUGINS} audio_filter/resampler/trivial"
449
PLUGINS="${PLUGINS} audio_mixer/trivial audio_mixer/spdif"
450
451
PLUGINS="${PLUGINS} audio_output/file"
#PLUGINS="${PLUGINS} visualization/scope/scope"
452
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
453
454
455
456

dnl
dnl  Accelerated modules
dnl
457
458
459
460
461
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"
462

463
464
AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
    [ac_cv_mmx_inline],
Sam Hocevar's avatar
Sam Hocevar committed
465
466
    [CFLAGS="${save_CFLAGS}"
     AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
467
                    ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
468
if test "x${ac_cv_mmx_inline}" != "xno"; then
Sam Hocevar's avatar
   
Sam Hocevar committed
469
  ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
470
fi
Sam Hocevar's avatar
   
Sam Hocevar committed
471

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

481
482
AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
    [ac_cv_3dnow_inline],
Sam Hocevar's avatar
Sam Hocevar committed
483
484
    [CFLAGS="${save_CFLAGS}"
     AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
485
                    ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
486
if test "x${ac_cv_3dnow_inline}" != "xno"; then
Sam Hocevar's avatar
   
Sam Hocevar committed
487
  AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
Sam Hocevar's avatar
   
Sam Hocevar committed
488
  ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
489
fi
Sam Hocevar's avatar
   
Sam Hocevar committed
490

491
492
AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
    [ac_cv_sse_inline],
Sam Hocevar's avatar
Sam Hocevar committed
493
494
    [CFLAGS="${save_CFLAGS}"
     AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
495
                    ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
496
if test "x${ac_cv_sse_inline}" != "xno" -a "x${SYS}" != "xmingw32"; then
Sam Hocevar's avatar
   
Sam Hocevar committed
497
  AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.)
Sam Hocevar's avatar
   
Sam Hocevar committed
498
  ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
499
fi
Sam Hocevar's avatar
   
Sam Hocevar committed
500

Sam Hocevar's avatar
Sam Hocevar committed
501
# don't try to grok AltiVec with native mingw32 it doesn't work right now
gbazin's avatar
   
gbazin committed
502
# we should be able to remove this test with future versions of mingw32
503
if test "x${SYS}" != "xmingw32"; then
Sam Hocevar's avatar
Sam Hocevar committed
504
AC_CACHE_CHECK([if \$CC groks AltiVec inline assembly],
505
    [ac_cv_altivec_inline],
Sam Hocevar's avatar
Sam Hocevar committed
506
507
    [CFLAGS="${save_CFLAGS}"
     AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
508
         ac_cv_altivec_inline=yes,
509
         [CFLAGS="${save_CFLAGS} -Wa,-m7400"
Sam Hocevar's avatar
   
Sam Hocevar committed
510
          AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
511
            [ac_cv_altivec_inline="-Wa,-m7400"],
512
            ac_cv_altivec_inline=no)
513
         ])])
514
if test "x${ac_cv_altivec_inline}" != "xno"; then
Sam Hocevar's avatar
Sam Hocevar committed
515
  AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks AltiVec inline assembly.)
516
517
518
519
520
  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}"
521
  fi
522
  ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
523
fi
524

Sam Hocevar's avatar
Sam Hocevar committed
525
AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
526
    [ac_cv_c_altivec],
527
    [CFLAGS="${save_CFLAGS} -faltivec"
528
     # Darwin test
Sam Hocevar's avatar
   
Sam Hocevar committed
529
     AC_TRY_COMPILE(,[vec_mtvscr((vector unsigned int)(0));],
530
531
        ac_cv_c_altivec=-faltivec, [
        # Linux/PPC test
532
        CFLAGS="${save_CFLAGS} ${idctaltivec_CFLAGS} -fvec"
Sam Hocevar's avatar
   
Sam Hocevar committed
533
        AC_TRY_COMPILE(,[vec_mtvscr((vector unsigned int)(0));],
534
535
            [ac_cv_c_altivec="-fvec"], ac_cv_c_altivec=no)
        ])
536
537
     CFLAGS="${save_CFLAGS}"])
if test "x${ac_cv_c_altivec}" != "xno"; then
Sam Hocevar's avatar
Sam Hocevar committed
538
  AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C AltiVec extensions.)
539
540
541
542
  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}"
543
  ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
544
545
546
547
fi

AC_CACHE_CHECK([if linker needs -framework vecLib],
    [ac_cv_ld_altivec],
548
    [LDFLAGS="${vlc_LDFLAGS} -framework vecLib"
549
     AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
550
     LDFLAGS="${save_LDFLAGS}"
551
    ])
552
if test "x${ac_cv_ld_altivec}" != "xno"; then
Sam Hocevar's avatar
   
Sam Hocevar committed
553
554
555
556
  idctaltivec_LDFLAGS="${idctaltivec_LDFLAGS} -framework vecLib"
  motionaltivec_LDFLAGS="${motionaltivec_LDFLAGS} -framework vecLib"
  memcpyaltivec_LDFLAGS="${memcpyaltivec_LDFLAGS} -framework vecLib"
  vlc_LDFLAGS="${vlc_LDFLAGS} -framework vecLib"
557
fi
gbazin's avatar
   
gbazin committed
558
fi # end if mingw32
559
560


Sam Hocevar's avatar
   
Sam Hocevar committed
561
562
563
AC_ARG_WITH(,[])
AC_ARG_WITH(,[Optimization options:])

Sam Hocevar's avatar
   
Sam Hocevar committed
564
dnl
565
dnl  Special arch tuning
Sam Hocevar's avatar
   
Sam Hocevar committed
566
dnl
567
AC_ARG_WITH(tuning,
Sam Hocevar's avatar
   
Sam Hocevar committed
568
[  --with-tuning=ARCH      enable special tuning for an architecture
569
                          (default i686 on IA-32 and 750 on PPC)])
570
571
if test "x${with_tuning}" != "x"; then
    TUNING="${with_tuning}"
572
else
573
    if test "x${target_cpu}" = "xi686" -o "x${target_cpu}" = "xi586" -o "x${target_cpu}" = "xi486" -o "x${target_cpu}" = "xi386"; then TUNING="pentiumpro"
574
    else
575
        if test "x${target_cpu}" = "xpowerpc"; then TUNING="750"; fi
576
577
    fi
fi
Sam Hocevar's avatar
   
Sam Hocevar committed
578
579

dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
580
dnl  x86 accelerations
Sam Hocevar's avatar
   
Sam Hocevar committed
581
dnl
582
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
583
584
then
    ARCH="${ARCH} mmx"
Sam Hocevar's avatar
Sam Hocevar committed
585
    PLUGINS="${PLUGINS} ${ACCEL_MODULES}"
Sam Hocevar's avatar
   
Sam Hocevar committed
586
fi
Sam Hocevar's avatar
   
Sam Hocevar committed
587

Sam Hocevar's avatar
   
Sam Hocevar committed
588
589
590
591
592
dnl
dnl  Enable/disable optimizations
dnl
AC_ARG_ENABLE(optimizations,
[  --disable-optimizations disable compiler optimizations (default enabled)],
593
[ if test "x${enable_optimizations}" = "xno"; then OPTIMS=0; fi ],
Sam Hocevar's avatar
   
Sam Hocevar committed
594
595
[ OPTIMS=1 ])

Sam Hocevar's avatar
   
Sam Hocevar committed
596
597
598
dnl
dnl  AltiVec acceleration
dnl
599
AC_ARG_ENABLE(altivec,
Sam Hocevar's avatar
Sam Hocevar committed
600
[  --disable-altivec       disable AltiVec optimizations (default enabled on PPC)],
601
[ if test "x${enable_altivec}" = "xyes"; then ARCH="${ARCH} altivec";
602
    BUILTINS="${BUILTINS} ${ACCEL_MODULES}"; fi ],
603
[ if test "x${target_cpu}" = "xpowerpc"; then ARCH="${ARCH} altivec";
604
    BUILTINS="${BUILTINS} ${ACCEL_MODULES}"; fi ])
Sam Hocevar's avatar
   
Sam Hocevar committed
605
606
607
608

dnl
dnl  Debugging mode
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
609
DEBUG=0
610
AC_ARG_ENABLE(debug,
Sam Hocevar's avatar
   
Sam Hocevar committed
611
[  --enable-debug          debug mode (default disabled)],
612
[ if test "x${enable_debug}" = "xyes"; then DEBUG=1; fi ])
Sam Hocevar's avatar
   
Sam Hocevar committed
613

Sam Hocevar's avatar
   
Sam Hocevar committed
614
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
615
dnl  Enable release-specific flags
Sam Hocevar's avatar
   
Sam Hocevar committed
616
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
617
RELEASE=0
Sam Hocevar's avatar
   
Sam Hocevar committed
618
619
AC_ARG_ENABLE(release,
[  --enable-release        activate extra optimizations (default disabled)],
620
[ if test "x${enable_release}" = "xyes"; then RELEASE=1; fi ],
Sam Hocevar's avatar
   
Sam Hocevar committed
621
[ VERSION="${VERSION}_`date +%Y-%m-%d`" ])
Sam Hocevar's avatar
   
Sam Hocevar committed
622

Sam Hocevar's avatar
   
Sam Hocevar committed
623
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
624
dnl  Input plugins
Sam Hocevar's avatar
   
Sam Hocevar committed
625
626
dnl

Sam Hocevar's avatar
   
Sam Hocevar committed
627
AC_ARG_WITH(,[Input plugins:])
Sam Hocevar's avatar
   
Sam Hocevar committed
628
629

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

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

776

777
778
779
780
781
dnl
dnl  libdvbpsi ts demux
dnl
AC_ARG_ENABLE(dvbpsi,
[  --enable-dvbpsi        dvbpsi ts demux module (default disabled)])
782
if test "x${enable_dvbpsi}" != "xno"
783
then
784
785
  AC_ARG_WITH(dvbpsi, 
  [    --with-dvbpsi=PATH    libdvbpsi headers and libraries])
786
787
  AC_ARG_WITH(dvbpsi,
  [    --with-dvbpsi-tree=PATH libdvbpsi tree for static linking])
788
  case "x${with_dvbpsi}" in
789
  x|xyes)
790
    if test "x${with_dvbpsi_tree}" = "x"
791
    then
Sam Hocevar's avatar
Sam Hocevar committed
792
      AC_CHECK_HEADERS(dvbpsi/dr.h,
793
794
        [ PLUGINS="${PLUGINS} demux/mpeg/ts_dvbpsi"
          ts_dvbpsi_LDFLAGS="${ts_dvbpsi_LDFLAGS} -ldvbpsi" ], [],
795
796
797
798
        [  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`"
799
      if test "x${real_dvbpsi_tree}" = "x"
800
801
802
803
804
805
806
807
808
      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)
809
810
811
        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"
812
813
814
815
816
      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
817
    fi
818
819
  ;;
  xno)
820
    dnl  Compile without dvbpsi
821
822
823
  ;;
  *)
    AC_MSG_CHECKING(for dvbpsi headers in ${with_dvbpsi})
824
    if test "x${with_dvbpsi}" = "x"
825
826
827
828
829
830
831
    then
      test_LDFLAGS=""
      test_CFLAGS=""
    else
      test_LDFLAGS="-L${with_dvbpsi}/lib"
      test_CFLAGS="-I${with_dvbpsi}/include"
    fi
832
    CPPFLAGS="${save_CPPFLAGS} ${test_CFLAGS}"
833
    AC_CHECK_HEADER([dvbpsi/dr.h],[
834
835
836
      PLUGINS="${PLUGINS} demux/mpeg/ts_dvbpsi"
      ts_dvbpsi_LDFLAGS="${ts_dvbpsi_LDFLAGS} ${test_LDFLAGS} -ldvbpsi"
      ts_dvbpsi_CFLAGS="${ts_dvbpsi_CFLAGS} ${test_CFLAGS}"
837
      ],[
838
      if test "x${enable_dvbpsi}" != "x"
839
840
841
842
      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
    ])
843
    CPPFLAGS="${save_CPPFLAGS}"
844
845
  ;;
  esac
846
fi
847

848
849
850
851
852
853
854
855
856
857
858
859
dnl
dnl  Video4Linux plugin
dnl
AC_ARG_ENABLE(v4l,
  [  --enable-v4l            Video4Linux input support (default disabled)])
if test "x${enable_v4l}" = "xyes"
then
  AC_CHECK_HEADERS(libv4l/v4l.h, [
    PLUGINS="${PLUGINS} access/v4l/v4l"
   ],[])
fi

860
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
861
dnl  VCD module
862
863
dnl
AC_ARG_ENABLE(vcd,
864
  [  --enable-vcd            VCD support for Linux, FreeBSD and MacOS X (default enabled)])
865

866
if test "x${enable_vcd}" != "xno"
Sam Hocevar's avatar
   
Sam Hocevar committed
867
868
then
  AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
869
    PLUGINS="${PLUGINS} access/vcd/vcd"
Sam Hocevar's avatar
   
Sam Hocevar committed
870
  ])
871
872
  
  AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
873
    PLUGINS="${PLUGINS} access/vcd/vcd"
874
875
    AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
  ])
876
  
Sam Hocevar's avatar
   
Sam Hocevar committed
877
878
  if test "x${SYS}" = "xbsdi"
  then
879
    PLUGINS="${PLUGINS} access/vcd/vcd"
Sam Hocevar's avatar
   
Sam Hocevar committed
880
  fi
881

Sam Hocevar's avatar
   
Sam Hocevar committed
882
883
  if test "x${SYS}" = "xdarwin"
  then
884
    # No need to add vcd to PLUGINS, Darwin is already based on FreeBSD
Sam Hocevar's avatar
   
Sam Hocevar committed
885
    vcd_LDFLAGS="${vcd_LDFLAGS} -framework IOKit -framework CoreFoundation" 
Sam Hocevar's avatar
   
Sam Hocevar committed
886
  fi
Jon Lech Johansen's avatar
Jon Lech Johansen committed
887
888
fi

Johan Bilien's avatar
Johan Bilien committed
889
890
891
892
dnl
dnl  Satellite input module
dnl
AC_ARG_ENABLE(satellite,
Sam Hocevar's avatar
   
Sam Hocevar committed
893
  [  --enable-satellite      satellite card support (default disabled)],
894
  [ if test "x${enable_satellite}" = "xyes"
Johan Bilien's avatar
Johan Bilien committed
895
    then
896
      PLUGINS="${PLUGINS} access/satellite/satellite"
Johan Bilien's avatar
Johan Bilien committed
897
898
    fi])

899
dnl
900
dnl  ipv6 plugin - not for QNX yet
901
dnl
902
if test "x${SYS}" != "xnto" && test "x${SYS}" != "xmingw32"
903
then
904
905
  have_ipv6=0
  AC_CHECK_FUNC(inet_pton,[have_ipv6=1],[
906
    AC_CHECK_LIB(resolv,inet_pton,
907
      [have_ipv6=1
908
909
       ipv6_LDFLAGS="${ipv6_LDFLAGS} -lresolv"])
  ])
910
911
912
913
  AC_MSG_CHECKING(for sockaddr_in6 in netinet/in.h)
  AC_EGREP_HEADER(sockaddr_in6,netinet/in.h,
    [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no); have_ipv6=0])
  if test x$have_ipv6 = x1; then
914
    PLUGINS="${PLUGINS} misc/network/ipv6"
915
  fi
916
fi
917
if test "x${SYS}" = "xmingw32"
gbazin's avatar
   
gbazin committed
918
919
920
then
  AC_MSG_CHECKING(for getaddrinfo in ws2tcpip.h)
  AC_EGREP_HEADER(addrinfo,ws2tcpip.h,[AC_MSG_RESULT(yes)
921
    PLUGINS="${PLUGINS} misc/network/ipv6"],[AC_MSG_RESULT(no)])
gbazin's avatar
   
gbazin committed
922
fi
923

924
925
926
927
928
dnl
dnl  AVI demux plugin
dnl
AC_ARG_ENABLE(avi,
  [  --enable-avi            AVI demux module (default enabled)])
929
if test "x${enable_avi}" != "xno"
930
then
931
  PLUGINS="${PLUGINS} demux/avi/avi"
932
933
fi

934
935
936
937
938
939
940
941
942
943
dnl
dnl  AAC demux plugin
dnl
AC_ARG_ENABLE(aac,
  [  --enable-aac            AAC demux module (default enabled)])
if test "x${enable_aac}" != "xno"
then
  PLUGINS="${PLUGINS} demux/aac/aac"
fi

Sam Hocevar's avatar
   
Sam Hocevar committed
944
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
945
dnl  Codec plugins
Sam Hocevar's avatar
   
Sam Hocevar committed
946
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
947

Sam Hocevar's avatar
   
Sam Hocevar committed
948
AC_ARG_WITH(,[Codec plugins:])
Sam Hocevar's avatar
   
Sam Hocevar committed
949

950
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
951
dnl  mad plugin
952
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
953