configure.in 62.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

Sam Hocevar's avatar
Sam Hocevar committed
59
60
61
62
63
dnl
dnl  Set default LDFLAGS
dnl
vlc_LDFLAGS="${LDFLAGS}"

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

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

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

133
dnl Check for system libs needed
134
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
135

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

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

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

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

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

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

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

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

Sam Hocevar's avatar
   
Sam Hocevar committed
235
236
AC_HEADER_TIME

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

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

Sam Hocevar's avatar
   
Sam Hocevar committed
249
250
251
dnl Check for threads library
AC_CHECK_HEADERS(cthreads.h pthread.h kernel/scheduler.h kernel/OS.h)

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

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

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

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

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

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

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

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

dnl
dnl  default modules
dnl
436
BUILTINS="${BUILTINS}"
437
438
PLUGINS="${PLUGINS} misc/dummy/dummy misc/null/null"
PLUGINS="${PLUGINS} control/rc/rc misc/logger/logger access/file access/udp access/http misc/network/ipv4 misc/memcpy/memcpy"
439
PLUGINS="${PLUGINS} demux/mpeg/es demux/mpeg/audio demux/mpeg/mpeg_system demux/mpeg/ps demux/mpeg/ts"
440
441
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"
#PLUGINS="${PLUGINS} codec/a52old/imdct/imdct codec/a52old/downmix/downmix codec/mpeg_audio/mpeg_audio codec/a52old/a52old codec/lpcm/lpcm codec/spdif/spdif"
442
PLUGINS="${PLUGINS} video_filter/deinterlace/deinterlace video_filter/invert video_filter/wall video_filter/transform video_filter/distort video_filter/clone video_filter/crop"
443
PLUGINS="${PLUGINS} audio_filter/converter/float32tos16"
444
445
446
PLUGINS="${PLUGINS} audio_mixer/trivial"
PLUGINS="${PLUGINS} audio_output/file"
#PLUGINS="${PLUGINS} visualization/scope/scope"
447
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
448
449
450
451

dnl
dnl  Accelerated modules
dnl
452
453
454
455
456
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"
457

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

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

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

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

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

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

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


Sam Hocevar's avatar
   
Sam Hocevar committed
556
557
558
AC_ARG_WITH(,[])
AC_ARG_WITH(,[Optimization options:])

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

dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
575
dnl  x86 accelerations
Sam Hocevar's avatar
   
Sam Hocevar committed
576
dnl
577
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
578
579
then
    ARCH="${ARCH} mmx"
Sam Hocevar's avatar
Sam Hocevar committed
580
    PLUGINS="${PLUGINS} ${ACCEL_MODULES}"
Sam Hocevar's avatar
   
Sam Hocevar committed
581
fi
Sam Hocevar's avatar
   
Sam Hocevar committed
582

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

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

dnl
dnl  Debugging mode
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
604
DEBUG=0
605
AC_ARG_ENABLE(debug,
Sam Hocevar's avatar
   
Sam Hocevar committed
606
[  --enable-debug          debug mode (default disabled)],
607
[ if test "x${enable_debug}" = "xyes"; then DEBUG=1; fi ])
Sam Hocevar's avatar
   
Sam Hocevar committed
608

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

Sam Hocevar's avatar
   
Sam Hocevar committed
618
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
619
dnl  Input plugins
Sam Hocevar's avatar
   
Sam Hocevar committed
620
621
dnl

Sam Hocevar's avatar
   
Sam Hocevar committed
622
AC_ARG_WITH(,[Input plugins:])
Sam Hocevar's avatar
   
Sam Hocevar committed
623
624

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

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

771

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

843
844
845
846
847
848
849
850
851
852
853
854
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

855
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
856
dnl  VCD module
857
858
dnl
AC_ARG_ENABLE(vcd,
859
  [  --enable-vcd            VCD support for Linux, FreeBSD and MacOS X (default enabled)])
860

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

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

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

894
dnl
895
dnl  ipv6 plugin - not for QNX yet
896
dnl
897
if test "x${SYS}" != "xnto" && test "x${SYS}" != "xmingw32"
898
then
899
900
  have_ipv6=0
  AC_CHECK_FUNC(inet_pton,[have_ipv6=1],[
901
    AC_CHECK_LIB(resolv,inet_pton,
902
      [have_ipv6=1
903
904
       ipv6_LDFLAGS="${ipv6_LDFLAGS} -lresolv"])
  ])
905
906
907
908
  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
909
    PLUGINS="${PLUGINS} misc/network/ipv6"
910
  fi
911
fi
912
if test "x${SYS}" = "xmingw32"
gbazin's avatar
   
gbazin committed
913
914
915
then
  AC_MSG_CHECKING(for getaddrinfo in ws2tcpip.h)
  AC_EGREP_HEADER(addrinfo,ws2tcpip.h,[AC_MSG_RESULT(yes)
916
    PLUGINS="${PLUGINS} misc/network/ipv6"],[AC_MSG_RESULT(no)])
gbazin's avatar
   
gbazin committed
917
fi
918

919
920
921
922
923
dnl
dnl  AVI demux plugin
dnl
AC_ARG_ENABLE(avi,
  [  --enable-avi            AVI demux module (default enabled)])
924
if test "x${enable_avi}" != "xno"
925
then
926
  PLUGINS="${PLUGINS} demux/avi/avi"
927
928
fi

Sam Hocevar's avatar
   
Sam Hocevar committed
929
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
930
dnl  Codec plugins
Sam Hocevar's avatar
   
Sam Hocevar committed
931
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
932

Sam Hocevar's avatar
   
Sam Hocevar committed
933
AC_ARG_WITH(,[Codec plugins:])
Sam Hocevar's avatar
   
Sam Hocevar committed
934

935
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
936
dnl  mad plugin
937
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
938
939
AC_ARG_ENABLE(mad,
  [  --enable-mad            libmad module (default disabled)])
940
if test "x${enable_mad}" = "xyes"
Sam Hocevar's avatar
   
Sam Hocevar committed
941
942
then
  AC_ARG_WITH(mad,
gbazin's avatar
   
gbazin committed
943
    [    --with-mad=PATH       path to libmad],[],[])
944
  if test "x${with_mad}" != "xno" -a "x${with_mad}" != "x"
gbazin's avatar
   
gbazin committed
945
  then
946
947
    mad_CFLAGS="${mad_CFLAGS} -I${with_mad}/include"
    mad_LDFLAGS="${mad_LDFLAGS} -L${with_mad}/lib"
gbazin's avatar
   
gbazin committed
948
949