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

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

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

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

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

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

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

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

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

56
57
58
dnl AM_PROG_LIBTOOL
AC_PROG_INSTALL

59
60
61
62
dnl Check for compiler properties
AC_C_CONST
AC_C_INLINE

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

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

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

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

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

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

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

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

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

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

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

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

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

Sam Hocevar's avatar
   
Sam Hocevar committed
238
239
AC_HEADER_TIME

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

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

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

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

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

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

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

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

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

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

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

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

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

Sam Hocevar's avatar
   
Sam Hocevar committed
458
459
460
dnl
dnl  Accelerated modules
dnl
461
462
463
464
465
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"
466

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

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

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

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

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

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

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

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


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

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

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

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

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

dnl
dnl  Debugging mode
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
618
DEBUG=0
619
AC_ARG_ENABLE(debug,
Sam Hocevar's avatar
   
Sam Hocevar committed
620
[  --enable-debug          debug mode (default disabled)],
621
[ if test "x${enable_debug}" = "xyes"; then DEBUG=1; fi ])
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  Enable release-specific flags
Sam Hocevar's avatar
   
Sam Hocevar committed
625
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
626
RELEASE=0
Sam Hocevar's avatar
   
Sam Hocevar committed
627
628
AC_ARG_ENABLE(release,
[  --enable-release        activate extra optimizations (default disabled)],
629
[ if test "x${enable_release}" = "xyes"; then RELEASE=1; fi ],
Sam Hocevar's avatar
   
Sam Hocevar committed
630
[ VERSION="${VERSION}_`date +%Y-%m-%d`" ])
Sam Hocevar's avatar
   
Sam Hocevar committed
631

Sam Hocevar's avatar
   
Sam Hocevar committed
632
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
633
dnl  Input plugins
Sam Hocevar's avatar
   
Sam Hocevar committed
634
635
dnl

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

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

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

785

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

857
858
859
860
861
862
863
864
865
866
867
868
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

869
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
870
dnl  VCD module
871
872
dnl
AC_ARG_ENABLE(vcd,
873
  [  --enable-vcd            VCD support for Linux, FreeBSD and MacOS X (default enabled)])
874

875
if test "x${enable_vcd}" != "xno"
Sam Hocevar's avatar
   
Sam Hocevar committed
876
877
then
  AC_EGREP_HEADER(cdrom_msf0,linux/cdrom.h,[
878
    PLUGINS="${PLUGINS} access/vcd/vcd"
Sam Hocevar's avatar
   
Sam Hocevar committed
879
  ])
880
881
  
  AC_EGREP_HEADER(ioc_toc_header ,sys/cdio.h,[
882
    PLUGINS="${PLUGINS} access/vcd/vcd"
883
884
    AC_DEFINE(HAVE_IOC_TOC_HEADER_IN_SYS_CDIO_H, 1, For FreeBSD VCD support)
  ])
885
  
Sam Hocevar's avatar
   
Sam Hocevar committed
886
887
  if test "x${SYS}" = "xbsdi"
  then
888
    PLUGINS="${PLUGINS} access/vcd/vcd"
Sam Hocevar's avatar
   
Sam Hocevar committed
889
  fi
890

Sam Hocevar's avatar
   
Sam Hocevar committed
891
892
  if test "x${SYS}" = "xdarwin"
  then
893
    # No need to add vcd to PLUGINS, Darwin is already based on FreeBSD
Sam Hocevar's avatar
   
Sam Hocevar committed
894
    vcd_LDFLAGS="${vcd_LDFLAGS} -framework IOKit -framework CoreFoundation" 
Sam Hocevar's avatar
   
Sam Hocevar committed
895
  fi
Jon Lech Johansen's avatar
Jon Lech Johansen committed
896
897
fi

Johan Bilien's avatar
Johan Bilien committed
898
899
900
901
dnl
dnl  Satellite input module
dnl
AC_ARG_ENABLE(satellite,
Sam Hocevar's avatar
   
Sam Hocevar committed
902
  [  --enable-satellite      satellite card support (default disabled)],
903
  [ if test "x${enable_satellite}" = "xyes"
Johan Bilien's avatar
Johan Bilien committed
904
    then
905
      PLUGINS="${PLUGINS} access/satellite/satellite"
Johan Bilien's avatar
Johan Bilien committed
906
907
    fi])

908
dnl
909
dnl  ipv6 plugin - not for QNX yet
910
dnl
911
if test "x${SYS}" != "xnto" && test "x${SYS}" != "xmingw32"
912
then
913
914
  have_ipv6=0
  AC_CHECK_FUNC(inet_pton,[have_ipv6=1],[
915
    AC_CHECK_LIB(resolv,inet_pton,
916
      [have_ipv6=1
917
918
       ipv6_LDFLAGS="${ipv6_LDFLAGS} -lresolv"])
  ])
919
920
921
922
  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
923
    PLUGINS="${PLUGINS} misc/network/ipv6"
924
  fi
925
fi
926
if test "x${SYS}" = "xmingw32"
gbazin's avatar
   
gbazin committed
927
928
929
then
  AC_MSG_CHECKING(for getaddrinfo in ws2tcpip.h)
  AC_EGREP_HEADER(addrinfo,ws2tcpip.h,[AC_MSG_RESULT(yes)
930
    PLUGINS="${PLUGINS} misc/network/ipv6"],[AC_MSG_RESULT(no)])
gbazin's avatar
   
gbazin committed
931
fi
932

933
934
935
936
937
dnl
dnl  AVI demux plugin
dnl
AC_ARG_ENABLE(avi,
  [  --enable-avi            AVI demux module (default enabled)])