configure.ac.in 89.9 KB
Newer Older
Sam Hocevar's avatar
   
Sam Hocevar committed
1
dnl Autoconf settings for vlc
2

3
AC_INIT(vlc,0.5.0-cvs)
4

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

8
9
10
11
AC_PREREQ(2.50)
AC_CONFIG_SRCDIR(src/libvlc.c)
AC_CANONICAL_SYSTEM

12
13
dnl XXX: we don't put any flags here, because automake 1.5 doesn't support
dnl them. And we need the comma otherwize automake will choke on it.
14
AM_INIT_AUTOMAKE(vlc,0.5.0-cvs)
15
16
AM_CONFIG_HEADER(config.h)

Sam Hocevar's avatar
Sam Hocevar committed
17
18
19
dnl
dnl  Save *FLAGS
dnl
20
21
22
23
24
CPPFLAGS_save="${CPPFLAGS}"
CFLAGS_save="${CFLAGS}"
CXXFLAGS_save="${CXXFLAGS}"
OBJCFLAGS_save="${OBJCFLAGS}"
LDFLAGS_save="${LDFLAGS}"
Sam Hocevar's avatar
   
Sam Hocevar committed
25

Sam Hocevar's avatar
Sam Hocevar committed
26
dnl
27
dnl Check for tools
Sam Hocevar's avatar
Sam Hocevar committed
28
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
29
AC_PROG_CC
30
AM_PROG_CC_C_O
Sam Hocevar's avatar
   
Sam Hocevar committed
31
AC_PROG_CPP
32
AC_PROG_CXX
33
34
AC_PROG_MAKE_SET
AC_PROG_INSTALL
35

36
37
38
39
40
41
42
43
44
45
46
47
dnl AC_PROG_OBJC doesn't seem to exist, this is the KDE workaround
AC_MSG_CHECKING(for an Objective-C compiler)
OBJC="${CXX}"
AC_SUBST(OBJC)
OBJCFLAGS="${CXXFLAGS} -fgnu-runtime -fconstant-string-class=NSConstantString"
AC_SUBST(OBJCFLAGS)
dnl _AM_DEPENDENCIES(OBJC) doesn't work, so hard code OBJCDEPMODE here
#OBJCDEPMODE="depmode=gcc3"
#AC_SUBST(OBJCDEPMODE)
_AM_DEPENDENCIES(OBJC)
AC_MSG_RESULT(not implemented yet)

gbazin's avatar
   
gbazin committed
48
49
dnl Find the right ranlib, even when cross-compiling
AC_CHECK_TOOL(RANLIB, ranlib, :)
Sam Hocevar's avatar
   
Sam Hocevar committed
50
AC_CHECK_TOOL(STRIP, strip, :)
Jean-Paul Saman's avatar
Jean-Paul Saman committed
51
52
AC_CHECK_TOOL(AR, ar, :)
AC_CHECK_TOOL(LD, ld, :)
gbazin's avatar
   
gbazin committed
53

54
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
55
dnl Gettext stuff
56
dnl
57
ALL_LINGUAS="de en_GB fr it ja no ru nl pl se"
58
AM_GNU_GETTEXT_VERSION(0.10.40)
Sam Hocevar's avatar
   
Sam Hocevar committed
59
AM_GNU_GETTEXT
60
61
62
63
64
if test "${nls_cv_force_use_gnu_gettext}" = "yes"; then
  AC_DEFINE(HAVE_INCLUDED_GETTEXT, 1, Define if we use the local libintl)
  INCLUDES="${INCLUDES} -I\\\$(top_srcdir)/intl"
fi
AM_CONDITIONAL(BUILD_INTL, test "${nls_cv_force_use_gnu_gettext}" = "yes")
65
XGETTEXT="${XGETTEXT} --keyword=_NS"
Sam Hocevar's avatar
   
Sam Hocevar committed
66

67
68
69
dnl AM_PROG_LIBTOOL
AC_PROG_INSTALL

70
71
72
73
dnl Check for compiler properties
AC_C_CONST
AC_C_INLINE

Sam Hocevar's avatar
Sam Hocevar committed
74
dnl
75
dnl  Set default values
Sam Hocevar's avatar
Sam Hocevar committed
76
dnl
77
78
LDFLAGS_vlc="${LDFLAGS}"
LIBEXT=".so"
Sam Hocevar's avatar
Sam Hocevar committed
79

gbazin's avatar
   
gbazin committed
80
81
82
dnl
dnl  Check the operating system
dnl
83
case "x${target_os}" in
84
85
86
87
88
89
90
91
92
93
  x)
    SYS=unknown
    ;;
  xlinux*)
    SYS=linux
    ;;
  xbsdi*)
    SYS=bsdi
    CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
    LDFLAGS_dvd="${LDFLAGS_dvd} -ldvd"
gbazin's avatar
   
gbazin committed
94
    LDFLAGS_dvdcss="${LDFLAGS_dvdcss} -ldvd"
95
96
97
98
99
100
101
102
103
104
105
106
107
108
    LDFLAGS_vcd="${LDFLAGS_vcd} -ldvd"
    ;;
  x*bsd*)
    SYS="${target_os}"
    CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
    ;;
  xdarwin*)
    SYS=darwin
    CFLAGS_save="${CFLAGS_save} -no-cpp-precomp"; CFLAGS="${CFLAGS_save}"
    CXXFLAGS_save="${CXXFLAGS_save} -no-cpp-precomp"; CXXFLAGS="${CXXFLAGS_save}"
    OBJCFLAGS_save="${OBJCFLAGS_save} -no-cpp-precomp"; OBJCFLAGS="${OBJCFLAGS_save}"
    LDFLAGS_vlc="${LDFLAGS_vlc} -all_load"
    LIBEXT=".dylib"
    ;;
gbazin's avatar
   
gbazin committed
109
  x*mingw32* | x*cygwin*)
110
111
    AC_CHECK_TOOL(WINDRES, windres, :)
    LIBEXT=".dll"
gbazin's avatar
   
gbazin committed
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128

    case "x${target_os}" in
      x*mingw32*)
        SYS=mingw32
        ;;
      x*cygwin*)
        dnl Check if we are using the mno-cygwin mode in which case we are
        dnl actually dealing with a mingw32 compiler.
        AC_EGREP_CPP(yes,
            [#ifdef WIN32
             yes
             #endif],
            SYS=mingw32, SYS=cygwin)
        ;;
    esac

    if test "x$SYS" = "xmingw32"; then
129
        # add ws2_32 for closesocket, select, recv
gbazin's avatar
   
gbazin committed
130
131
132
133
134
        CPPFLAGS_save="${CPPFLAGS_save} -D_OFF_T_ -D_off_t=long"
        CPPFLAGS="${CPPFLAGS_save}"
        LDFLAGS_vlc="${LDFLAGS_vlc} -lws2_32 -lnetapi32 -mwindows"
        LDFLAGS_ipv4="${LDFLAGS_ipv4} -lws2_32"
        LDFLAGS_ipv6="${LDFLAGS_ipv6} -lws2_32"
gbazin's avatar
   
gbazin committed
135
136
137
138
        LDFLAGS_access_http="${LDFLAGS_access_http} -lws2_32"
        LDFLAGS_access_mms="${LDFLAGS_access_mms} -lws2_32"
        LDFLAGS_access_rtp="${LDFLAGS_access_rtp} -lws2_32"
        LDFLAGS_access_udp="${LDFLAGS_access_udp} -lws2_32"
139
        LDFLAGS_access_ftp="${LDFLAGS_access_ftp} -lws2_32"
140
        LDFLAGS_access_output_udp="${LDFLAGS_access_output_udp} -lws2_32"
gbazin's avatar
   
gbazin committed
141
        LDFLAGS_rc="${LDFLAGS_rc} -lws2_32"
142
        LDFLAGS_sap="${LDFLAGS_sap} -lws2_32"
gbazin's avatar
   
gbazin committed
143
    fi
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
    ;;
  x*nto*)
    SYS=nto
    LDFLAGS_x11="${LDFLAGS_x11} -lsocket"
    LDFLAGS_xvideo="${LDFLAGS_xvideo} -lsocket"
    ;;
  xsolaris*)
    SYS=solaris
    ;;
  xhpux*)
    SYS=hpux
    LIBEXT=".sl"
    ;;
  xbeos)
    SYS=beos
    CFLAGS_save="${CFLAGS_save} -Wno-multichar -Wno-ctor-dtor-privacy -Woverloaded-virtual"; CFLAGS="${CFLAGS_save}"
    CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar -Wno-ctor-dtor-privacy -Woverloaded-virtual"; CXXFLAGS="${CXXFLAGS_save}"
    LDFLAGS_vlc="${LDFLAGS_vlc} -lbe"
    LDFLAGS_plugins="${LDFLAGS_plugins} -nostart"
163
    LDFLAGS_beos="${LDFLAGS_beos} -lbe -lmedia -lroot -ltracker -lstdc++.r4 -ltranslation"
164
165
166
167
168
    dnl BONE or not BONE ?
    AC_CHECK_LIB( bind, inet_ntoa,
        [ LDFLAGS_access_mms="${LDFLAGS_access_mms} -lbind"
          LDFLAGS_ipv4="${LDFLAGS_ipv4} -lbind"],
        [])
169
170
171
172
    ;;
  x*)
    SYS="${target_os}"
    ;;
gbazin's avatar
   
gbazin committed
173
esac
174
175
176
177
178
179
AM_CONDITIONAL(HAVE_BEOS, test "x${SYS}" = "xbeos")
AM_CONDITIONAL(HAVE_DARWIN, test "x${SYS}" = "xdarwin")
AM_CONDITIONAL(HAVE_WIN32, test "x${SYS}" = "xmingw32")

AC_MSG_CHECKING(for suffix of libraries)
AC_MSG_RESULT(${LIBEXT})
gbazin's avatar
   
gbazin committed
180

gbazin's avatar
   
gbazin committed
181
182
183
184
185
dnl Check for the need to include the mingwex lib for mingw32
if test x$SYS = xmingw32
then
    AC_CHECK_LIB(mingwex,opendir,
        AC_CHECK_LIB(mingw32,opendir,LDFLAGS_vlc="${LDFLAGS_vlc}",
gbazin's avatar
   
gbazin committed
186
187
            [LDFLAGS_vlc="${LDFLAGS_vlc} -lmingwex"
             LDFLAGS_gtk="${LDFLAGS_gtk} -lmingwex"])
gbazin's avatar
   
gbazin committed
188
189
190
    )
fi

gbazin's avatar
   
gbazin committed
191
192
193
194
195
196
197
198
199
200
201
202
203
dnl Check for fnative-struct or mms-bitfields support for mingw32
if test x$SYS = xmingw32
then
    AC_CACHE_CHECK([if \$CC accepts -mms-bitfields],
        [ac_cv_c_mms_bitfields],
        [CFLAGS="${CFLAGS_save} -mms-bitfields"
         AC_TRY_COMPILE([],,ac_cv_c_mms_bitfields=yes, ac_cv_c_mms_bitfields=no)])
    if test x"$ac_cv_c_mms_bitfields" != x"no"; then
        CFLAGS_mingw32_special="-mms-bitfields"
    else
        CFLAGS_mingw32_special="-fnative-struct"
    fi

gbazin's avatar
   
gbazin committed
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
    CFLAGS_save="${CFLAGS_save} ${CFLAGS_mingw32_special}";
    CXXFLAGS_save="${CXXFLAGS_save} ${CFLAGS_mingw32_special}";
    CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
fi

dnl Check for fvtable-thunks support for mingw32
if test x$SYS = xmingw32
then
AC_LANG_PUSH(C++)
    AC_CACHE_CHECK([if \$CXX accepts -fvtable-thunks],
        [ac_cv_cxx_fvtable_thunks],
        [CXXFLAGS="${CXXFLAGS_save} -Wall -Werror -fvtable-thunks"
         AC_TRY_COMPILE([],,ac_cv_cxx_fvtable_thunks=yes,
                        ac_cv_cxx_fvtable_thunks=no)])
    if test x"$ac_cv_cxx_fvtable_thunks" = x"yes"; then
        CXXFLAGS_mingw32_special="-fvtable-thunks"
    fi

    CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"
    CXXFLAGS="${CXXFLAGS_save}"
AC_LANG_POP(C++)
gbazin's avatar
   
gbazin committed
225
226
fi

Sam Hocevar's avatar
   
Sam Hocevar committed
227
dnl Flags for plugin compilation
228
229
case "x${SYS}" in
  xmingw32|xcygwin)
gbazin's avatar
   
gbazin committed
230
    CFLAGS_pics="${CFLAGS_pics} ${CFLAGS_mingw32_special}"
gbazin's avatar
   
gbazin committed
231
    CXXFLAGS_pics="${CXXFLAGS_pics} ${CFLAGS_mingw32_special} ${CXXFLAGS_mingw32_special}"
gbazin's avatar
   
gbazin committed
232
233
    OBJCFLAGS_pics="${OBJCFLAGS_pics} ${CFLAGS_mingw32_special}"
    CFLAGS_plugins="${CFLAGS_plugins} ${CFLAGS_mingw32_special}"
gbazin's avatar
   
gbazin committed
234
    CXXFLAGS_plugins="${CXXFLAGS_plugins} ${CFLAGS_mingw32_special} ${CXXFLAGS_mingw32_special}"
gbazin's avatar
   
gbazin committed
235
    OBJCFLAGS_plugins="${OBJCFLAGS_plugins} ${CFLAGS_mingw32_special}"
236
237
238
239
240
241
242
243
244
245
246
    ;;
  x*)
    CFLAGS_pics="${CFLAGS_pics} -fPIC"
    CXXFLAGS_pics="${CXXFLAGS_pics} -fPIC"
    OBJCFLAGS_pics="${OBJCFLAGS_pics} -fPIC"
    CFLAGS_plugins="${CFLAGS_plugins} -fPIC"
    CXXFLAGS_plugins="${CXXFLAGS_plugins} -fPIC"
    OBJCFLAGS_plugins="${OBJCFLAGS_plugins} -fPIC"
    LDFLAGS_plugins="${LDFLAGS_plugins} -fPIC"
    ;;
esac
Sam Hocevar's avatar
   
Sam Hocevar committed
247
248

dnl The -DSYS_FOO flag
249
CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
Sam Hocevar's avatar
   
Sam Hocevar committed
250

251
dnl Check for system libs needed
252
need_libc=false
253

254
255
256
257
258
259
260
261
262
263
264
AC_CHECK_FUNCS(gettimeofday select strerror strtod strtol isatty vasprintf swab sigrelse getpwuid memalign posix_memalign gethostbyname2 atoll getenv putenv setenv)

dnl Check for usual libc functions
AC_CHECK_FUNCS(strdup,,[need_libc=:])
AC_CHECK_FUNCS(strndup,,[need_libc=:])
AC_CHECK_FUNCS(atof,,[need_libc=:])
AC_CHECK_FUNCS(lseek,,[need_libc=:])
AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp,,[need_libc=:])])
AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp,,[need_libc=:])])

AM_CONDITIONAL(BUILD_LIBC, ${need_libc})
Sam Hocevar's avatar
   
Sam Hocevar committed
265

Sam Hocevar's avatar
   
Sam Hocevar committed
266
AC_CHECK_FUNC(connect,,[
267
268
269
  AC_CHECK_LIB(socket,connect,
    LDFLAGS_ipv4="${LDFLAGS_ipv4} -lsocket"
    LDFLAGS_vlc="${LDFLAGS_vlc} -lsocket"
Sam Hocevar's avatar
   
Sam Hocevar committed
270
)])
271

Sam Hocevar's avatar
Sam Hocevar committed
272
AC_CHECK_FUNC(send,,[
273
  AC_CHECK_LIB(socket,send,
gbazin's avatar
   
gbazin committed
274
275
276
277
    LDFLAGS_access_http="${LDFLAGS_access_http} -lsocket"
    LDFLAGS_access_mms="${LDFLAGS_access_mms} -lsocket"
    LDFLAGS_access_rtp="${LDFLAGS_access_rtp} -lsocket"
    LDFLAGS_access_udp="${LDFLAGS_access_udp} -lsocket"
278
    LDFLAGS_access_ftp="${LDFLAGS_access_ftp} -lsocket"
279
    LDFLAGS_sap="${LDFLAGS_sap} -lsocket"
280
    LDFLAGS_access_output_udp="${LDFLAGS_access_output_udp} -lsocket"
Sam Hocevar's avatar
Sam Hocevar committed
281
)])
282

Sam Hocevar's avatar
   
Sam Hocevar committed
283
AC_CHECK_FUNC(gethostbyname,,[
284
285
  AC_CHECK_LIB(nsl,gethostbyname,LDFLAGS_ipv4="${LDFLAGS_ipv4} -lnsl",[
    AC_CHECK_LIB(bind,gethostbyname,LDFLAGS_ipv4="${LDFLAGS_ipv4} -lbind")])
Sam Hocevar's avatar
   
Sam Hocevar committed
286
])
287
288
289

have_nanosleep=false
AC_CHECK_FUNC(nanosleep,have_nanosleep=:,[
290
  AC_CHECK_LIB(rt,nanosleep,
291
    [LDFLAGS_vlc="${LDFLAGS_vlc} -lrt"; have_nanosleep=:],
292
    [AC_CHECK_LIB(posix4,nanosleep,
293
        [LDFLAGS_vlc="${LDFLAGS_vlc} -lposix4"; have_nanosleep=:])]
294
  )
Sam Hocevar's avatar
   
Sam Hocevar committed
295
])
296
297
298
if ${have_nanosleep}; then
  AC_DEFINE(HAVE_NANOSLEEP, 1,
            Define if nanosleep is available.)
299
fi
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314

dnl Check for socklen_t
AC_CACHE_CHECK([for socklen_t], ac_cv_type_socklen_t,
  [AC_TRY_COMPILE(
     [#include <sys/types.h>
      #include <sys/socket.h>],
     [socklen_t len = 42; return len;],
     ac_cv_type_socklen_t=yes,
     ac_cv_type_socklen_t=no)])
if test x$ac_cv_type_socklen_t != xno; then
  AC_DEFINE(HAVE_SOCKLEN_T, 1,
            Define if <sys/socket.h> defines socklen_t.)
fi

dnl HP/UX port
315
AC_CHECK_LIB(rt,sem_init, [LDFLAGS_vlc="${LDFLAGS_vlc} -lrt"])
316

Sam Hocevar's avatar
   
Sam Hocevar committed
317
AC_CHECK_FUNC(inet_aton,,[
318
  AC_CHECK_LIB(resolv,inet_aton,LDFLAGS_ipv4="${LDFLAGS_ipv4} -lresolv")
319
320
])
AC_CHECK_FUNC(textdomain,,[
321
322
323
324
  AC_CHECK_LIB(intl,textdomain,
    LDFLAGS_vlc="${LDFLAGS_vlc} -lintl"
    LDFLAGS_plugins="${LDFLAGS_plugins} -lintl"
  )
Sam Hocevar's avatar
   
Sam Hocevar committed
325
])
Sam Hocevar's avatar
   
Sam Hocevar committed
326

Sam Hocevar's avatar
   
Sam Hocevar committed
327
dnl Check for getopt
328
need_getopt=false
Sam Hocevar's avatar
   
Sam Hocevar committed
329
330
AC_CHECK_FUNC(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
[ # FreeBSD has a gnugetopt library for this:
331
332
333
334
  AC_CHECK_LIB([gnugetopt],[getopt_long],
    [AC_DEFINE(HAVE_GETOPT_LONG,1,getopt support) LDFLAGS_vlc="${LDFLAGS_vlc} -lgnugetopt"],
    [need_getopt=:])])
AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
Sam Hocevar's avatar
   
Sam Hocevar committed
335

336
AC_TYPE_SIGNAL
337
AC_CHECK_LIB(dl,dlopen,LDFLAGS_vlc="${LDFLAGS_vlc} -ldl")
Sam Hocevar's avatar
   
Sam Hocevar committed
338
AC_CHECK_LIB(m,cos,
339
  LDFLAGS_imdct="${LDFLAGS_imdct} -lm"
340
341
  LDFLAGS_filter_distort="${LDFLAGS_filter_distort} -lm"
  LDFLAGS_a52tofloat32="${LDFLAGS_a52tofloat32} -lm")
Sam Hocevar's avatar
   
Sam Hocevar committed
342
AC_CHECK_LIB(m,pow,
343
344
345
346
347
348
  LDFLAGS_ffmpeg="${LDFLAGS_ffmpeg} -lm"
  LDFLAGS_imdct="${LDFLAGS_imdct} -lm"
  LDFLAGS_imdct3dn="${LDFLAGS_imdct3dn} -lm"
  LDFLAGS_imdctsse="${LDFLAGS_imdctsse} -lm"
  LDFLAGS_i420_rgb="${LDFLAGS_i420_rgb} -lm"
  LDFLAGS_faad="${LDFLAGS_faad} -lm"
Sam Hocevar's avatar
   
Sam Hocevar committed
349
)
Sam Hocevar's avatar
   
Sam Hocevar committed
350

Sam Hocevar's avatar
   
Sam Hocevar committed
351
dnl Check for pthreads - borrowed from XMMS
Sam Hocevar's avatar
   
Sam Hocevar committed
352
THREAD_LIB=error
353
if test "x${THREAD_LIB}" = "xerror"; then
354
  AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
Sam Hocevar's avatar
   
Sam Hocevar committed
355
fi
356
if test "x${THREAD_LIB}" = "xerror"; then
357
  AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
Sam Hocevar's avatar
   
Sam Hocevar committed
358
fi
359
if test "x${THREAD_LIB}" = "xerror"; then
360
  AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
Sam Hocevar's avatar
   
Sam Hocevar committed
361
fi
362
if test "x${THREAD_LIB}" = "xerror"; then
363
364
  AC_CHECK_FUNC(pthread_mutex_lock)
  THREAD_LIB=""
Sam Hocevar's avatar
   
Sam Hocevar committed
365
fi
Sam Hocevar's avatar
   
Sam Hocevar committed
366
367
368

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

Sam Hocevar's avatar
   
Sam Hocevar committed
370
371
dnl Check for misc headers
AC_EGREP_HEADER(pthread_cond_t,pthread.h,[
372
373
  AC_DEFINE(PTHREAD_COND_T_IN_PTHREAD_H, 1,
            Define if <pthread.h> defines pthread_cond_t.)])
Sam Hocevar's avatar
Sam Hocevar committed
374
AC_EGREP_HEADER(pthread_once,pthread.h,[
375
376
  AC_DEFINE(PTHREAD_ONCE_IN_PTHREAD_H, 1,
            Define if <pthread.h> defines pthread_once.)])
Sam Hocevar's avatar
   
Sam Hocevar committed
377
AC_EGREP_HEADER(strncasecmp,strings.h,[
378
379
  AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
            Define if <strings.h> defines strncasecmp.)])
Sam Hocevar's avatar
   
Sam Hocevar committed
380

Sam Hocevar's avatar
   
Sam Hocevar committed
381
dnl Check for headers
382
383
AC_CHECK_HEADERS(signal.h time.h errno.h stdint.h getopt.h strings.h inttypes.h sys/int_types.h)
AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h)
Sam Hocevar's avatar
   
Sam Hocevar committed
384
385
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
386
AC_CHECK_HEADERS(machine/param.h sys/shm.h)
387
AC_CHECK_HEADERS(linux/version.h)
Sam Hocevar's avatar
   
Sam Hocevar committed
388

Sam Hocevar's avatar
   
Sam Hocevar committed
389
390
AC_HEADER_TIME

391
392
dnl Check for dirent
need_dirent=false
393
AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
394
395
AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})

396
dnl Mac OS X and other OSes don't have declaration for nanosleep
397
AC_EGREP_HEADER(nanosleep,time.h,[
398
399
  AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
            Define if <time.h> defines nanosleep.)
400
])
401
402

dnl Make sure we have timespecs
403
AC_EGREP_HEADER(timespec,sys/time.h,[
404
405
  AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
            Define if <sys/time.h> defines struct timespec.)
406
])
407

Sam Hocevar's avatar
   
Sam Hocevar committed
408
409
410
dnl Check for threads library
AC_CHECK_HEADERS(cthreads.h pthread.h kernel/scheduler.h kernel/OS.h)

411
412
dnl Default X headers and libraries
if test "x${x_includes}" = "xNONE"; then
413
  x_includes="/usr/X11R6/include"
414
415
fi
if test "x${x_libraries}" = "xNONE"; then
416
  x_libraries="/usr/X11R6/lib"
417
418
fi

419
dnl Build the gtk_main plugins?
420
NEED_GTK_MAIN=no
421
NEED_GNOME_MAIN=no
422

Sam Hocevar's avatar
   
Sam Hocevar committed
423
dnl Check for DPMS
424
if test "x${SYS}" != "xmingw32"
Sam Hocevar's avatar
   
Sam Hocevar committed
425
then
426
427
428
429
430
431
  CPPFLAGS="${CPPFLAGS_save} -I${x_includes}"
  AC_CHECK_HEADERS(X11/extensions/dpms.h, [
    AC_EGREP_HEADER(DPMSInfo,X11/extensions/dpms.h,[
      AC_DEFINE(DPMSINFO_IN_DPMS_H, 1,
                Define if <X11/extensions/dpms.h> defines DPMSInfo.)
    ])
432
433
  ],,[
    #include <X11/Xlib.h>
434
435
  ])
  CPPFLAGS="${CPPFLAGS_save}"
Sam Hocevar's avatar
   
Sam Hocevar committed
436
437
fi

Sam Hocevar's avatar
   
Sam Hocevar committed
438
dnl Check for ntohl, etc.
439
AC_CACHE_CHECK([for ntohl in sys/param.h],
440
441
442
443
444
    [ac_cv_c_ntohl_sys_param_h],
    [CFLAGS="${CFLAGS_save} -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)])
445
if test "x${ac_cv_c_ntohl_sys_param_h}" != "xno"; then
446
    AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
447
fi
Sam Hocevar's avatar
   
Sam Hocevar committed
448

Sam Hocevar's avatar
   
Sam Hocevar committed
449
dnl Check for inline function size limit
450
AC_CACHE_CHECK([if \$CC accepts -finline-limit],
451
452
453
    [ac_cv_c_inline_limit],
    [CFLAGS="${CFLAGS_save} -finline-limit-30000"
     AC_TRY_COMPILE([],,ac_cv_c_inline_limit=yes, ac_cv_c_inline_limit=no)])
454
if test "x${ac_cv_c_inline_limit}" != "xno"; then
455
456
457
    CFLAGS_save="${CFLAGS_save} -finline-limit-30000"; CFLAGS="${CFLAGS_save}"
    CXXFLAGS_save="${CXXFLAGS_save} -finline-limit-30000"; CXXFLAGS="${CXXFLAGS_save}"
    OBJCFLAGS_save="${OBJCFLAGS_save} -finline-limit-30000"; OBJCFLAGS="${OBJCFLAGS_save}"
458
fi
Sam Hocevar's avatar
   
Sam Hocevar committed
459

460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
# XXX: do this with an M4 macro?
#dnl Check for various -W flags
#for flag in "" all unreachable-code conversion sign-compare disabled-optimization
#do
#    AC_CACHE_CHECK([if \$CC accepts -W${flag}],
#        [ac_cv_c_W${flag}],
#        [CFLAGS="-W${flag} ${CFLAGS_save}"
#         AC_TRY_COMPILE([],,ac_cv_c_W${flag}=yes, ac_cv_c_W${flag}=no)])
#    if test "x${ac_cv_c_W${flag}}" != "xno"; then
#        CFLAGS_save="-W${flag} ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
#        CXXFLAGS_save="-W${flag} ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
#        OBJCFLAGS_save="-W${flag} ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
#    fi
#done

475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
AC_CACHE_CHECK([if \$CC accepts -Wall],
    [ac_cv_c_Wall],
    [CFLAGS="-Wall ${CFLAGS_save}"
     AC_TRY_COMPILE([],,ac_cv_c_Wall=yes, ac_cv_c_Wall=no)])

AC_CACHE_CHECK([if \$CC accepts -Wconversion],
    [ac_cv_c_Wconversion],
    [CFLAGS="-Wconversion ${CFLAGS_save}"
     AC_TRY_COMPILE([],,ac_cv_c_Wconversion=yes, ac_cv_c_Wconversion=no)])

AC_CACHE_CHECK([if \$CC accepts -Wunreachable-code],
    [ac_cv_c_Wunreachable_code],
    [CFLAGS="-Wunreachable-code ${CFLAGS_save}"
     AC_TRY_COMPILE([],,ac_cv_c_Wunreachable_code=yes, ac_cv_c_Wunreachable_code=no)])

AC_CACHE_CHECK([if \$CC accepts -Wsign-compare],
    [ac_cv_c_Wsign_compare],
    [CFLAGS="-Wsign-compare ${CFLAGS_save}"
     AC_TRY_COMPILE([],,ac_cv_c_Wsign_compare=yes, ac_cv_c_Wsign_compare=no)])

AC_CACHE_CHECK([if \$CC accepts -Wdisabled-optimization],
    [ac_cv_c_Wdisabled_optimization],
    [CFLAGS="-Wdisabled-optimization ${CFLAGS_save}"
     AC_TRY_COMPILE([],,ac_cv_c_Wdisabled_optimization=yes, ac_cv_c_Wdisabled_optimization=no)])

AC_CACHE_CHECK([if \$CC accepts -Winline],
    [ac_cv_c_Winline],
    [CFLAGS="-Winline ${CFLAGS_save}"
     AC_TRY_COMPILE([],,ac_cv_c_Winline=yes, ac_cv_c_Winline=no)])

505
506
507
508
509
if test "x${ac_cv_c_Wall}" != "xno"; then
    CFLAGS_save="-Wall ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
    CXXFLAGS_save="-Wall ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
    OBJCFLAGS_save="-Wall ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
fi
510

511
if test "x${ac_cv_c_Wunreachable_code}" != "xno"; then
512
513
514
#    CFLAGS_save="-Wunreachable-code ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
#    CXXFLAGS_save="-Wunreachable-code ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
#    OBJCFLAGS_save="-Wunreachable-code ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
515

516
517
    dnl -Wunreachable-code means gcc-3.x, we can use -Wconversion and we can
    dnl activate -Winline for C++, it won't choke on system headers.
518
519
520
521
522
#    if test "x${ac_cv_c_Wconversion}" != "xno"; then
#        CFLAGS_save="-Wconversion ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
#        CXXFLAGS_save="-Wconversion ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
#        OBJCFLAGS_save="-Wconversion ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
#    fi
523
524
525
526
    if test "x${ac_cv_c_Winline}" != "xno"; then
        CXXFLAGS_save="-Winline ${CXXFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
    fi

527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
fi

if test "x${ac_cv_c_Wsign_compare}" != "xno"; then
    CFLAGS_save="-Wsign-compare ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
    CXXFLAGS_save="-Wsign-compare ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
    OBJCFLAGS_save="-Wsign-compare ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
fi

if test "x${ac_cv_c_Wdisabled_optimization}" != "xno"; then
    CFLAGS_save="-Wdisabled-optimization ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
    CXXFLAGS_save="-Wdisabled-optimization ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
    OBJCFLAGS_save="-Wdisabled-optimization ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
fi

if test "x${ac_cv_c_Winline}" != "xno"; then
    CFLAGS_save="-Winline ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
    OBJCFLAGS_save="-Winline ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
Sam Hocevar's avatar
   
Sam Hocevar committed
544
545
546
547
fi

dnl Check for -pipe
AC_CACHE_CHECK([if \$CC accepts -pipe],
548
549
550
    [ac_cv_c_pipe],
    [CFLAGS="${CFLAGS_save} -pipe"
     AC_TRY_COMPILE([],,ac_cv_c_pipe=yes, ac_cv_c_pipe=no)])
551
if test "x${ac_cv_c_pipe}" != "xno"; then
552
553
554
    CFLAGS_save="${CFLAGS_save} -pipe"; CFLAGS="${CFLAGS_save}"
    CXXFLAGS_save="${CXXFLAGS_save} -pipe"; CXXFLAGS="${CXXFLAGS_save}"
    OBJCFLAGS_save="${OBJCFLAGS_save} -pipe"; OBJCFLAGS="${OBJCFLAGS_save}"
Sam Hocevar's avatar
   
Sam Hocevar committed
555
556
557
558
fi

dnl Check for various optimization flags
AC_CACHE_CHECK([if \$CC accepts -O3],
559
560
561
    [ac_cv_c_o3],
    [CFLAGS="${CFLAGS_save} -O3"
     AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
562
if test "x${ac_cv_c_o3}" != "xno"; then
563
    CFLAGS_OPTIM="${CFLAGS_OPTIM} -O3"
564
else
565
566
567
568
569
570
571
572
573
574
575
576
577
578
    AC_CACHE_CHECK([if \$CC accepts -O2],
        [ac_cv_c_o2],
        [CFLAGS="${CFLAGS_save} -O2"
         AC_TRY_COMPILE([],,ac_cv_c_o2=yes, ac_cv_c_o2=no)])
    if test "x${ac_cv_c_o2}" != "xno"; then
        CFLAGS_OPTIM="${CFLAGS_OPTIM} -O2"
    else
        AC_CACHE_CHECK([if \$CC accepts -O],
            [ac_cv_c_o],
            [CFLAGS="${CFLAGS_save} -O"
             AC_TRY_COMPILE([],,ac_cv_c_o=yes, ac_cv_c_o=no)])
        if test "x${ac_cv_c_o}" != "xno"; then
            CFLAGS_OPTIM="${CFLAGS_OPTIM} -O"
        fi
Sam Hocevar's avatar
   
Sam Hocevar committed
579
580
581
582
583
    fi
fi

dnl Check for -ffast-math
AC_CACHE_CHECK([if \$CC accepts -ffast-math],
584
585
586
    [ac_cv_c_fast_math],
    [CFLAGS="${CFLAGS_save} -ffast-math"
     AC_TRY_COMPILE([],,ac_cv_c_fast_math=yes, ac_cv_c_fast_math=no)])
587
if test "x${ac_cv_c_fast_math}" != "xno"; then
588
    CFLAGS_OPTIM="${CFLAGS_OPTIM} -ffast-math"
Sam Hocevar's avatar
   
Sam Hocevar committed
589
590
591
592
fi

dnl Check for -funroll-loops
AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
593
594
595
    [ac_cv_c_unroll_loops],
    [CFLAGS="${CFLAGS_save} -funroll-loops"
     AC_TRY_COMPILE([],,ac_cv_c_unroll_loops=yes, ac_cv_c_unroll_loops=no)])
596
if test "x${ac_cv_c_unroll_loops}" != "xno"; then
597
    CFLAGS_OPTIM="${CFLAGS_OPTIM} -funroll-loops"
Sam Hocevar's avatar
   
Sam Hocevar committed
598
599
600
601
fi

dnl Check for -fomit-frame-pointer
AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
602
603
604
    [ac_cv_c_omit_frame_pointer],
    [CFLAGS="${CFLAGS_save} -fomit-frame-pointer"
     AC_TRY_COMPILE([],,ac_cv_c_omit_frame_pointer=yes, ac_cv_c_omit_frame_pointer=no)])
605
if test "x${ac_cv_c_omit_frame_pointer}" != "xno"; then
606
607
608
    CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
    # this plugin does not compile without -fomit-frame-pointer, damn gcc!
    CFLAGS_i420_yuy2_mmx="${CFLAGS_i420_yuy2_mmx} -fomit-frame-pointer"
Sam Hocevar's avatar
   
Sam Hocevar committed
609
610
fi

611
612
613
614
615
616
dnl Check for -mdynamic-no-pic
AC_CACHE_CHECK([if \$CC accepts -mdynamic-no-pic],
    [ac_cv_c_dynamic_no_pic],
    [CFLAGS="${CFLAGS_save} -mdynamic-no-pic"
     AC_TRY_COMPILE([],,ac_cv_c_dynamic_no_pic=yes, ac_cv_c_dynamic_no_pic=no)])
if test "x${ac_cv_c_dynamic_no_pic}" != "xno"; then
Christophe Massiot's avatar
Christophe Massiot committed
617
618
    CFLAGS_builtins="${CFLAGS_builtins} -mdynamic-no-pic"
    CFLAGS_libvlc="${CFLAGS_libvlc} -mdynamic-no-pic"
619
620
fi

Sam Hocevar's avatar
   
Sam Hocevar committed
621
dnl Check for Darwin plugin linking flags
Christophe Massiot's avatar
Christophe Massiot committed
622
AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error -lcc_dynamic],
623
624
625
    [ac_cv_ld_darwin],
    [CFLAGS="${CFLAGS_save} -bundle -undefined error -lcc_dynamic"
     AC_TRY_COMPILE([],,ac_cv_ld_darwin=yes, ac_cv_ld_darwin=no)])
626
if test "x${ac_cv_ld_darwin}" != "xno"; then
627
    LDFLAGS_plugins="${LDFLAGS_plugins} -bundle -undefined error -lcc_dynamic"
628
fi
Sam Hocevar's avatar
   
Sam Hocevar committed
629
630

dnl Check for standard plugin linking flags
631
AC_CACHE_CHECK([if \$CC accepts -shared],
632
633
634
    [ac_cv_ld_plugins],
    [CFLAGS="${CFLAGS_save} -shared"
     AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
635
if test "x${ac_cv_ld_plugins}" != "xno"; then
636
    LDFLAGS_plugins="${LDFLAGS_plugins} -shared"
Sam Hocevar's avatar
   
Sam Hocevar committed
637
fi
638

639
640
dnl Check for variadic macros
AC_CACHE_CHECK([for variadic cpp macros],
641
642
643
644
645
646
647
648
    [ac_cv_cpp_variadic_macros],
    [CFLAGS="${CFLAGS_save}"
     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)])
649
if test "x${ac_cv_cpp_variadic_macros}" != "xno"; then
650
    AC_DEFINE(HAVE_VARIADIC_MACROS, 1, Support for variadic macros)
651
652
fi

653
654
dnl Checks for __attribute__(aligned()) directive
AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
655
656
657
658
659
660
661
662
663
    [ac_cv_c_attribute_aligned],
    [ac_cv_c_attribute_aligned=0
        CFLAGS="${CFLAGS_save} -Werror"
    for ac_cv_c_attr_align_try in 2 4 8 16 32 64; do
        AC_TRY_COMPILE([],
        [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
        [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
    done
        CFLAGS="${CFLAGS_save}"])
664
if test "x${ac_cv_c_attribute_aligned}" != "x0"; then
665
666
    AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
        [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
667
668
fi

669
670
671
672
673
674
675
676
677
678
679
680
681
dnl Checks for __attribute__(format()) directive
AC_CACHE_CHECK([__attribute__ ((format ())) support with function pointers],
    [ac_cv_c_attribute_format],
    [ac_cv_c_attribute_format=no
        CFLAGS="${CFLAGS_save} -Werror"
        AC_TRY_COMPILE([],
        [static void (*pf_printf)(const char *, ...) __attribute__ ((format(printf,1,2)));(void)pf_printf;],
        [ac_cv_c_attribute_format=yes])
        CFLAGS="${CFLAGS_save}"])
if test "x${ac_cv_c_attribute_format}" != "xno"; then
    AC_DEFINE(HAVE_ATTRIBUTE_FORMAT, 1, Support for __attribute__((format())) with function pointers)
fi

Sam Hocevar's avatar
   
Sam Hocevar committed
682
683
684
dnl
dnl  Check the CPU
dnl
685
case "x${target_cpu}" in
686
687
688
689
690
691
692
693
694
695
696
697
  x)
    ARCH=unknown
    ;;
  *)
    ARCH="${target_cpu}"
    ;;
esac

case "${ARCH}" in
  hppa64)
    CFLAGS_mpeg_video="${CFLAGS_mpeg_video} -ffunction-sections"
    ;;
Sam Hocevar's avatar
   
Sam Hocevar committed
698
esac
Sam Hocevar's avatar
   
Sam Hocevar committed
699
700
701
702

dnl
dnl  default modules
dnl
703
PLUGINS="${PLUGINS} dummy rc logger access_file memcpy"
704
705
706
PLUGINS="${PLUGINS} es audio mpeg_system ps ts"
PLUGINS="${PLUGINS} idct idctclassic motion mpeg_video spudec mpeg_audio"
#PLUGINS="${PLUGINS} a52old imdct downmix"
707
PLUGINS="${PLUGINS} lpcm a52"
708
PLUGINS="${PLUGINS} deinterlace invert adjust wall transform distort clone crop motionblur"
709
PLUGINS="${PLUGINS} float32tos16 float32tos8 float32tou16 float32tou8 a52tospdif fixed32tofloat32 fixed32tos16 s16tofloat32 s16tofloat32swab s8tofloat32 u8tofixed32 u8tofloat32"
710
PLUGINS="${PLUGINS} trivial_resampler ugly_resampler linear_resampler"
711
PLUGINS="${PLUGINS} trivial_channel_mixer headphone_channel_mixer"
Christophe Massiot's avatar
Christophe Massiot committed
712
PLUGINS="${PLUGINS} trivial_mixer spdif_mixer float32_mixer"
713
714
715
PLUGINS="${PLUGINS} aout_file"
#PLUGINS="${PLUGINS} scope"
PLUGINS="${PLUGINS} i420_rgb i420_yuy2 i422_yuy2 i420_ymga"
716
PLUGINS="${PLUGINS} id3 m3u"
717
PLUGINS="${PLUGINS} wav araw demuxdump demuxsub adpcm"
718
PLUGINS="${PLUGINS} access_udp access_http access_rtp ipv4 access_mms sap access_ftp"
719

Sam Hocevar's avatar
   
Sam Hocevar committed
720
721
722
dnl
dnl  Accelerated modules
dnl
723
724
725
726
727
MMX_MODULES="memcpymmx idctmmx motionmmx i420_rgb_mmx i420_yuy2_mmx i422_yuy2_mmx i420_ymga_mmx"
MMXEXT_MODULES="memcpymmxext idctmmxext motionmmxext"
THREEDNOW_MODULES="memcpy3dn imdct3dn downmix3dn"
SSE_MODULES="imdctsse downmixsse"
ALTIVEC_MODULES="idctaltivec motionaltivec memcpyaltivec"
728

729
730
AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
    [ac_cv_mmx_inline],
731
    [CFLAGS="${CFLAGS_save}"
Sam Hocevar's avatar
Sam Hocevar committed
732
     AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
733
                    ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
734
if test "x${ac_cv_mmx_inline}" != "xno"; then
Sam Hocevar's avatar
   
Sam Hocevar committed
735
  ACCEL_MODULES="${ACCEL_MODULES} ${MMX_MODULES}"
736
fi
Sam Hocevar's avatar
   
Sam Hocevar committed
737

738
739
AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
    [ac_cv_mmxext_inline],
740
    [CFLAGS="${CFLAGS_save}"
Sam Hocevar's avatar
Sam Hocevar committed
741
     AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
742
                    ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
743
if test "x${ac_cv_mmxext_inline}" != "xno"; then
Sam Hocevar's avatar
   
Sam Hocevar committed
744
  ACCEL_MODULES="${ACCEL_MODULES} ${MMXEXT_MODULES}"
745
fi
Sam Hocevar's avatar
   
Sam Hocevar committed
746

747
748
AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
    [ac_cv_3dnow_inline],
749
    [CFLAGS="${CFLAGS_save}"
Sam Hocevar's avatar
Sam Hocevar committed
750
     AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
751
                    ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
752
if test "x${ac_cv_3dnow_inline}" != "xno"; then
Sam Hocevar's avatar
   
Sam Hocevar committed
753
  AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
Sam Hocevar's avatar
   
Sam Hocevar committed
754
  ACCEL_MODULES="${ACCEL_MODULES} ${THREEDNOW_MODULES}"
755
fi
Sam Hocevar's avatar
   
Sam Hocevar committed
756

757
758
AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
    [ac_cv_sse_inline],
759
    [CFLAGS="${CFLAGS_save}"
Sam Hocevar's avatar
Sam Hocevar committed
760
     AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
761
                    ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
762
if test "x${ac_cv_sse_inline}" != "xno" -a "x${SYS}" != "xmingw32"; then
Sam Hocevar's avatar
   
Sam Hocevar committed
763
  AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.)
Sam Hocevar's avatar
   
Sam Hocevar committed
764
  ACCEL_MODULES="${ACCEL_MODULES} ${SSE_MODULES}"
765
fi
Sam Hocevar's avatar
   
Sam Hocevar committed
766

Sam Hocevar's avatar
Sam Hocevar committed
767
# don't try to grok AltiVec with native mingw32 it doesn't work right now
gbazin's avatar
   
gbazin committed
768
# we should be able to remove this test with future versions of mingw32
769
if test "x${SYS}" != "xmingw32"; then
Sam Hocevar's avatar
Sam Hocevar committed
770
AC_CACHE_CHECK([if \$CC groks AltiVec inline assembly],
771
    [ac_cv_altivec_inline],
772
    [CFLAGS="${CFLAGS_save}"
Sam Hocevar's avatar
Sam Hocevar committed
773
     AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
774
         ac_cv_altivec_inline=yes,
775
         [CFLAGS="${CFLAGS_save} -Wa,-m7400"
Sam Hocevar's avatar
   
Sam Hocevar committed
776
          AC_TRY_COMPILE(,[asm volatile("vperm 0,1,2,3");],
777
            [ac_cv_altivec_inline="-Wa,-m7400"],
778
            ac_cv_altivec_inline=no)
779
         ])])
780
if test "x${ac_cv_altivec_inline}" != "xno"; then
Sam Hocevar's avatar
Sam Hocevar committed
781
  AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks AltiVec inline assembly.)
782
  if test "x${ac_cv_altivec_inline}" != "xyes"; then
783
784
785
786
    CFLAGS_idctaltivec="${CFLAGS_idctaltivec} ${ac_cv_altivec_inline}"
    CFLAGS_motionaltivec="${CFLAGS_motionaltivec} ${ac_cv_altivec_inline}"
    CFLAGS_memcpyaltivec="${CFLAGS_memcpyaltivec} ${ac_cv_altivec_inline}"
    CFLAGS_vlc="${CFLAGS_vlc} ${ac_cv_altivec_inline}"
787
  fi
788
  ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
789
fi
790

Sam Hocevar's avatar
Sam Hocevar committed
791
AC_CACHE_CHECK([if \$CC groks AltiVec C extensions],
792
    [ac_cv_c_altivec],
793
    [CFLAGS="${CFLAGS_save} -faltivec"
794
     # Darwin test
Sam Hocevar's avatar
   
Sam Hocevar committed
795
     AC_TRY_COMPILE(,[vec_mtvscr((vector unsigned int)(0));],
796
797
        ac_cv_c_altivec=-faltivec, [
        # Linux/PPC test
798
        CFLAGS="${CFLAGS_save} ${CFLAGS_idctaltivec} -fvec"
Sam Hocevar's avatar
   
Sam Hocevar committed
799
        AC_TRY_COMPILE(,[vec_mtvscr((vector unsigned int)(0));],
800
801
            [ac_cv_c_altivec="-fvec"], ac_cv_c_altivec=no)
        ])
802
     CFLAGS="${CFLAGS_save}"])
803
if test "x${ac_cv_c_altivec}" != "xno"; then
Sam Hocevar's avatar
Sam Hocevar committed
804
  AC_DEFINE(CAN_COMPILE_C_ALTIVEC, 1, Define if your compiler groks C AltiVec extensions.)
805
806
807
808
  CFLAGS_idctaltivec="${CFLAGS_idctaltivec} ${ac_cv_c_altivec}"
  CFLAGS_motionaltivec="${CFLAGS_motionaltivec} ${ac_cv_c_altivec}"
  CFLAGS_memcpyaltivec="${CFLAGS_memcpyaltivec} ${ac_cv_c_altivec}"
  CFLAGS_vlc="${CFLAGS_vlc} ${ac_cv_c_altivec}"
809
  ACCEL_MODULES="${ACCEL_MODULES} ${ALTIVEC_MODULES}"
810
811
812
813
fi

AC_CACHE_CHECK([if linker needs -framework vecLib],
    [ac_cv_ld_altivec],
814
    [LDFLAGS="${LDFLAGS_vlc} -framework vecLib"
815
     AC_TRY_LINK([],,ac_cv_ld_altivec=yes,ac_cv_ld_altivec=no)
816
     LDFLAGS="${LDFLAGS_save}"
817
    ])
818
if test "x${ac_cv_ld_altivec}" != "xno"; then
819
820
821
822
  LDFLAGS_idctaltivec="${LDFLAGS_idctaltivec} -framework vecLib"
  LDFLAGS_motionaltivec="${LDFLAGS_motionaltivec} -framework vecLib"
  LDFLAGS_memcpyaltivec="${LDFLAGS_memcpyaltivec} -framework vecLib"
  LDFLAGS_vlc="${LDFLAGS_vlc} -framework vecLib"
823
fi
gbazin's avatar
   
gbazin committed
824
fi # end if mingw32
825

Sam Hocevar's avatar
   
Sam Hocevar committed
826
827
828
AC_ARG_WITH(,[])
AC_ARG_WITH(,[Optimization options:])

Sam Hocevar's avatar
   
Sam Hocevar committed
829
dnl
830
dnl  Special arch tuning
Sam Hocevar's avatar
   
Sam Hocevar committed
831
dnl
832
AC_ARG_WITH(tuning,
Sam Hocevar's avatar
   
Sam Hocevar committed
833
[  --with-tuning=ARCH      enable special tuning for an architecture
834
                          (default i686 on IA-32 and 750 on PPC)])
835
if test "x${with_tuning}" != "x"; then
836
837
838
839
840
    if test "x${target_cpu}" = "xpowerpc"; then
        CFLAGS_TUNING="-mtune=${with_tuning}"
    else
        CFLAGS_TUNING="-mcpu=${with_tuning}"
    fi
841
else
842
    if test "x${target_cpu}" = "xi686" -o "x${target_cpu}" = "xi586" -o "x${target_cpu}" = "xi486" -o "x${target_cpu}" = "xi386"; then CFLAGS_TUNING="-mcpu=pentiumpro"
843
    else
844
        if test "x${target_cpu}" = "xpowerpc"; then CFLAGS_TUNING="-mtune=750"; fi
845
846
    fi
fi
Sam Hocevar's avatar
   
Sam Hocevar committed
847
848

dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
849
dnl  x86 accelerations
Sam Hocevar's avatar
   
Sam Hocevar committed
850
dnl
851
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
852
853
then
    ARCH="${ARCH} mmx"
Sam Hocevar's avatar
Sam Hocevar committed
854
    PLUGINS="${PLUGINS} ${ACCEL_MODULES}"
Sam Hocevar's avatar
   
Sam Hocevar committed
855
fi
Sam Hocevar's avatar
   
Sam Hocevar committed
856

Sam Hocevar's avatar
   
Sam Hocevar committed
857
858
859
860
dnl
dnl  Enable/disable optimizations
dnl
AC_ARG_ENABLE(optimizations,
861
862
[  --disable-optimizations disable compiler optimizations (default enabled)])
AM_CONDITIONAL(OPTIM, test "x${enable_optimizations}" != "xno")
Sam Hocevar's avatar
   
Sam Hocevar committed
863

Sam Hocevar's avatar
   
Sam Hocevar committed
864
865
866
dnl
dnl  AltiVec acceleration
dnl
867
AC_ARG_ENABLE(altivec,
Sam Hocevar's avatar
Sam Hocevar committed
868
[  --disable-altivec       disable AltiVec optimizations (default enabled on PPC)],
869
[ if test "x${enable_altivec}" = "xyes"; then ARCH="${ARCH} altivec";
870
    BUILTINS="${BUILTINS} ${ACCEL_MODULES}"; fi ],
871
[ if test "x${target_cpu}" = "xpowerpc"; then ARCH="${ARCH} altivec";
872
    BUILTINS="${BUILTINS} ${ACCEL_MODULES}"; fi ])
Sam Hocevar's avatar
   
Sam Hocevar committed
873
874
875
876

dnl
dnl  Debugging mode
dnl
877
AC_ARG_ENABLE(debug,
878
879
[  --enable-debug          debug mode (default disabled)])
AM_CONDITIONAL(DEBUG, test "x${enable_debug}" = "xyes")
Sam Hocevar's avatar
   
Sam Hocevar committed
880

Sam Hocevar's avatar
   
Sam Hocevar committed
881
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
882
dnl  Enable release-specific flags
Sam Hocevar's avatar
   
Sam Hocevar committed
883
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
884
AC_ARG_ENABLE(release,
885
886
[  --enable-release        activate extra optimizations (default disabled)])
AM_CONDITIONAL(RELEASE, test "x${enable_release}" = "xyes")
Sam Hocevar's avatar
   
Sam Hocevar committed
887

888
889
890
891
892
893
894
895
896
897
898
899
900
901
dnl
dnl Stream output
dnl
AC_ARG_ENABLE(sout,
  [  --enable-sout           Stream output modules (default enabled)])
if test "x${enable_sout}" != "xno"
then
  PLUGINS="${PLUGINS} access_output_dummy access_output_udp access_output_file"
  PLUGINS="${PLUGINS} mux_ts mux_ps mux_dummy"
  PLUGINS="${PLUGINS} packetizer_mpegaudio packetizer_mpegvideo packetizer_a52"
  PLUGINS="${PLUGINS} packetizer_mpeg4video packetizer_copy"
fi


Sam Hocevar's avatar
   
Sam Hocevar committed
902
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
903
dnl  Input plugins
Sam Hocevar's avatar
   
Sam Hocevar committed
904
905
dnl

Sam Hocevar's avatar
   
Sam Hocevar committed
906
AC_ARG_WITH(,[Input plugins:])
Sam Hocevar's avatar
   
Sam Hocevar committed
907
908

dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
909
910
911
912
dnl  DVD module: optionally check for installed libdvdcss
dnl
AC_ARG_ENABLE(dvd,
[  --enable-dvd            DVD input module (default enabled)])
Eric Petit's avatar
Eric Petit committed
913
if test "x${enable_dvd}" != "xno"
Sam Hocevar's avatar
   
Sam Hocevar committed
914
then
915
  AC_ARG_WITH(dvdcss,
Sam Hocevar's avatar
   
Sam Hocevar committed
916
  [    --with-dvdcss=PATH    libdvdcss headers and libraries])
917
  AC_ARG_WITH(dvdcss-tree,
Sam Hocevar's avatar
   
Sam Hocevar committed
918
  [    --with-dvdcss-tree=PATH libdvdcss tree for static linking])
919
  case "x${with_dvdcss}" in
Sam Hocevar's avatar
   
Sam Hocevar committed
920
  x|xyes)
921
    if test "x${with_dvdcss_tree}" = x
Sam Hocevar's avatar
   
Sam Hocevar committed
922
923
    then
      AC_CHECK_HEADERS(dvdcss/dvdcss.h,
924
        [ PLUGINS="${PLUGINS} dvd"
925
926
          LDFLAGS_dvd="${LDFLAGS_dvd} -ldvdcss"
          LDFLAGS_dvdcss="${LDFLAGS_dvdcss} -ldvdcss" ],
Sam Hocevar's avatar
   
Sam Hocevar committed
927
928
929
930
931
        [ 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`"
932
      if test "x${real_dvdcss_tree}" = "x"
Sam Hocevar's avatar
   
Sam Hocevar committed
933
934
935
936
937
938
939
940
941
      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)
942
943
        BUILTINS="${BUILTINS} dvd"
        LDFLAGS_dvd="${LDFLAGS_dvd} ${real_dvdcss_tree}/src/.libs/libdvdcss.a"
944
        LDFLAGS_dvdcss="${LDFLAGS_dvdcss} ${real_dvdcss_tree}/src/.libs/libdvdcss.a"
945
        CPPFLAGS_dvd="${CPPFLAGS_dvd} -I${real_dvdcss_tree}/src"
Sam Hocevar's avatar
   
Sam Hocevar committed
946
947
948
949
950
951
      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
952
953
  ;;
  xno)
Sam Hocevar's avatar
   
Sam Hocevar committed
954
    dnl  Compile without dvdcss (dlopen version, works only under Linux)
955
956
957
    PLUGINS="${PLUGINS} dvd"
    CPPFLAGS_dvd="${CPPFLAGS_dvd} -DGOD_DAMN_DMCA"
    LDFLAGS_dvd="${LDFLAGS_dvd} -ldl"
Sam Hocevar's avatar
   
Sam Hocevar committed
958
959
  ;;
  *)
Sam Hocevar's avatar
   
Sam Hocevar committed
960
961
    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
962
    then
Sam Hocevar's avatar
   
Sam Hocevar committed
963
      dnl  Use ${with_dvdcss}/include/dvdcss/dvdcss.h
Sam Hocevar's avatar
   
Sam Hocevar committed
964
      AC_MSG_RESULT(yes)
965
966
      PLUGINS="${PLUGINS} dvd"
      LDFLAGS_dvd="${LDFLAGS_dvd} -L${with_dvdcss}/lib -ldvdcss"
967
      LDFLAGS_dvdcss="${LDFLAGS_dvdcss} -L${with_dvdcss}/lib -ldvdcss"
968
      CPPFLAGS_dvd="${CPPFLAGS_dvd} -I${with_dvdcss}/include"
Sam Hocevar's avatar
   
Sam Hocevar committed
969
    else
Sam Hocevar's avatar
   
Sam Hocevar committed
970
      dnl  No libdvdcss could be found, sorry
Sam Hocevar's avatar
   
Sam Hocevar committed
971
      AC_MSG_RESULT(no)
Sam Hocevar's avatar
   
Sam Hocevar committed
972
      AC_MSG_ERROR([cannot find ${with_dvdcss}/include/dvdcss/dvdcss.h])
Sam Hocevar's avatar
   
Sam Hocevar committed
973
974
975
976
    fi
  ;;
  esac
fi
Sam Hocevar's avatar
   
Sam Hocevar committed
977

Stéphane Borel's avatar
Stéphane Borel committed
978
dnl
979
dnl dvdread module: check for libdvdread
Stéphane Borel's avatar
Stéphane Borel committed
980
dnl
Sam Hocevar's avatar
   
Sam Hocevar committed
981
982
AC_ARG_ENABLE(dvdread,
[  --enable-dvdread        dvdread input module (default disabled)])
983
if test "x${enable_dvdread}" != "xno"
Sam Hocevar's avatar
   
Sam Hocevar committed
984
then
985
  AC_ARG_WITH(dvdread,
986
987
988
989
  [    --with-dvdread=PATH    libdvdread headers and libraries])
  AC_ARG_WITH(dvdread-tree,
  [    --with-dvdread-tree=PATH libdvdread tree for static linking])
  if test "x${with_dvdread}" = x
Sam Hocevar's avatar
   
Sam Hocevar committed
990
  then
991
    if test "x${with_dvdread_tree}" = x
992
    then
gbazin's avatar
   
gbazin committed
993
      AC_CHECK_HEADERS(dvdread/dvd_reader.h,
994
        [ PLUGINS="${PLUGINS} dvdread"
gbazin's avatar
   
gbazin committed
995
          LDFLAGS_dvdread="${LDFLAGS_dvdread} -ldvdread ${LDFLAGS_dvdcss}" ],
996
997
998
999
1000
1001
1002
1003
1004
        [ if test "x${enable_dvdread}" != "x"
          then
            AC_MSG_WARN([Please get libdvdread from http://www.dtek.chalmers.se/groups/dvd/downloads.shtml])
            AC_MSG_ERROR([cannot find libdvdread headers])
          fi ])
    else
      AC_MSG_CHECKING(for libdvdread.a in ${with_dvdread_tree})
      real_dvdread_tree="`cd ${with_dvdread_tree} 2>/dev/null && pwd`"
      if test "x${real_dvdread_tree}" = "x"
Sam Hocevar's avatar
   
Sam Hocevar committed
1005
      then
1006
1007
1008
1009
1010
1011
1012
1013
1014
        dnl  The given directory can't be found
        AC_MSG_RESULT(no)
        AC_MSG_ERROR([cannot cd to ${with_dvdread_tree}])
      fi
      if test -f "${real_dvdread_tree}/dvdread/.libs/libdvdread.a"
      then
        dnl  Use a custom libdvdread
        AC_MSG_RESULT(${real_dvdread_tree}/dvdread/.libs/libdvdread.a)
        BUILTINS="${BUILTINS} dvdread"
gbazin's avatar
   
gbazin committed
1015
        LDFLAGS_dvdread="${LDFLAGS_dvdread} ${real_dvdread_tree}/dvdread/.libs/libdvdread.a ${LDFLAGS_dvdcss}"
1016
        CPPFLAGS_dvdread="${CPPFLAGS_dvdread} -I${real_dvdread_tree}"
Sam Hocevar's avatar
   
Sam Hocevar committed
1017
      else
1018
1019
1020
        dnl  The given libdvdread wasn't built
        AC_MSG_RESULT(no)
        AC_MSG_ERROR([cannot find ${real_dvdread_tree}/dvdread/.libs/libdvdread.a, make sure you compiled libdvdread in ${with_dvdread_tree}])
Sam Hocevar's avatar
   
Sam Hocevar committed
1021
      fi
Sam Hocevar's avatar
   
Sam Hocevar committed
1022
    fi
1023
1024
  else
    AC_MSG_CHECKING(for dvdread headers in ${with_dvdread})
gbazin's avatar
   
gbazin committed
1025
    if test -f ${with_dvdread}/include/dvdread/dvd_reader.h
1026
    then
gbazin's avatar
   
gbazin committed
1027
      dnl  Use ${with_dvdread}/include/dvdread/dvd_reader.h
1028
1029
      AC_MSG_RESULT(yes)
      PLUGINS="${PLUGINS} dvdread"
gbazin's avatar
   
gbazin committed
1030
      LDFLAGS_dvdread="${LDFLAGS_dvdread} -L${with_dvdread}/lib -ldvdread ${LDFLAGS_dvdcss}"
1031
1032
1033
1034
      CPPFLAGS_dvdread="${CPPFLAGS_dvdread} -I${with_dvdread}/include"
    else
      dnl  No libdvdread could be found, sorry
      AC_MSG_RESULT(no)
gbazin's avatar
   
gbazin committed
1035
      AC_MSG_ERROR([cannot find ${with_dvdread}/include/dvdread/dvd_reader.h])
1036
1037
    fi
  fi
1038
1039
1040
1041
1042
1043
1044
fi

dnl
dnl dvdplay module: check for libdvdplay
dnl
AC_ARG_ENABLE(dvdplay,
[  --enable-dvdplay        dvdplay input module (default disabled)])
1045
if test "x${enable_dvdplay}" != "xno"
1046
then
1047
  AC_ARG_WITH(dvdplay,
1048
1049
1050
  [    --with-dvdplay=PATH    libdvdplay headers and libraries])
  AC_ARG_WITH(dvdplay-tree,
  [    --with-dvdplay-tree=PATH libdvdplay tree for static linking])
1051
  if test "x${with_dvdplay}" = x
1052
  then