Newer
Older
VERSION_MAJOR="0"
VERSION_MINOR="9"
VERSION_REVISION="0"
Samuel Hocevar
committed
AC_CONFIG_SRCDIR(src/libvlc.c)
AC_CONFIG_AUX_DIR(autotools)
Samuel Hocevar
committed
AC_CANONICAL_SYSTEM
AM_INIT_AUTOMAKE([1.7 check-news dist-bzip2])
AM_CONFIG_HEADER(config.h)

Rémi Denis-Courmont
committed
dnl Too many people are not aware of maintainer mode:
dnl If you want to use it, you definitely know what you are doing, so
dnl you can specify "--disable-maintainer-mode". But if you want the default
dnl automake behavior, you've likely never heard of maintainer mode, so we
dnl can't expect you to enable it manually.
AS_IF([test "x${enable_maintainer_mode}" != "xno"],
[enable_maintainer_mode="yes"])
dnl HA! HA!
AM_MAINTAINER_MODE
Samuel Hocevar
committed
AM_PROG_CC_C_O
AC_PROG_CXX

Jean-Paul Saman
committed
AC_PROG_CPP
AC_PROG_OBJC
_AM_DEPENDENCIES([OBJC])
AC_PROG_EGREP
AC_PROG_MAKE_SET
AC_PROG_INSTALL
dnl Find the right ranlib, even when cross-compiling
AC_CHECK_TOOL(RANLIB, ranlib, :)
AC_CHECK_TOOL(AR, ar, :)
AC_CHECK_TOOL(LD, ld, :)
dnl Check for compiler properties
AC_C_CONST
AC_C_INLINE

Rémi Denis-Courmont
committed
AC_C_RESTRICT
dnl
dnl Check for the contrib directory
dnl
AC_ARG_WITH(contrib,
[ --without-contrib do not use the libraries in extras/contrib],[],[])
if test "${with_contrib}" != "no"; then
AC_MSG_CHECKING([for libs in extras/contrib])
topdir="`dirname $0`"
if test "`echo \"$topdir\" | cut -c 1`" != "/"; then
topdir="`pwd`/$topdir"
fi
if test "`grep HOST ${topdir}/extras/contrib/config.mak 2>/dev/null|awk '{print $3}'`" != "`$CC -dumpmachine`"; then
if test "${with_contrib}" = "yes"; then
AC_MSG_RESULT([no])
AC_MSG_ERROR([ not using the libs in extras/contrib as it is not the same host])
else
AC_MSG_RESULT([no])
AC_MSG_WARN([ not using the libs in extras/contrib as it is not the same host])
fi
else
if test -d ${topdir}/extras/contrib/lib; then
export PATH=${topdir}/extras/contrib/bin:$PATH
CPPFLAGS="${CPPFLAGS} -I${topdir}/extras/contrib/include"
CPPFLAGS_save="${CPPFLAGS_save} -I${topdir}/extras/contrib/include"
CFLAGS="${CFLAGS} -I${topdir}/extras/contrib/include"
CFLAGS_save="${CFLAGS_save} -I${topdir}/extras/contrib/include"
CXXFLAGS="${CXXFLAGS} -I${topdir}/extras/contrib/include"
CXXFLAGS_save="${CXXFLAGS_save} -I${topdir}/extras/contrib/include"
OBJCFLAGS="${OBJCFLAGS} -I${topdir}/extras/contrib/include"
OBJCFLAGS_save="${OBJCFLAGS_save} -I${topdir}/extras/contrib/include"
if test $build = $host -o "$PKG_CONFIG_LIBDIR"; then
export PKG_CONFIG_PATH=${topdir}/extras/contrib/lib/pkgconfig:$PKG_CONFIG_PATH
else
export PKG_CONFIG_LIBDIR=${topdir}/extras/contrib/lib/pkgconfig
LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib"
LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib"
dnl kludge because only the debian package provides a ffmpeg-config
if test -z $with_ffmpeg_config_path; then
with_ffmpeg_config_path=${topdir}/extras/contrib/bin;
fi
if test -z $with_live555_tree; then
with_live555_tree=${topdir}/extras/contrib/src/live
fi
if test -z $with_goom_tree; then
with_goom_tree=${topdir}/extras/contrib/src/goom
fi
if test -z $with_mozilla_sdk_path; then
with_mozilla_sdk_path=${topdir}/extras/contrib/gecko-sdk
fi
if test -z $with_cyberlink_tree; then
with_cyberlink_tree=${topdir}/extras/contrib/src/clinkcc
fi

Jean-Paul Saman
committed
if test -z $with_libmpeg2_tree; then
with_libmpeg2_tree=${topdir}/extras/contrib/src/mpeg2dec
fi
if test ".`uname -s`" = ".Darwin"; then
export LD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$LD_LIBRARY_PATH
export DYLD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$DYLD_LIBRARY_PATH
elif test ".`uname -s`" = ".BeOS"; then
export LIBRARY_PATH=${topdir}/extras/contrib/lib:$LIBRARY_PATH
export BELIBRARIES=${topdir}/extras/contrib/lib:$BELIBRARIES
fi
else
AC_MSG_RESULT([no])
fi
fi
fi
Samuel Hocevar
committed
dnl Set default values
Samuel Hocevar
committed
LDFLAGS_vlc="${LDFLAGS}"
Samuel Hocevar
committed
SYS=unknown
;;
Samuel Hocevar
committed
SYS=linux
;;
Samuel Hocevar
committed
SYS=bsdi
CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"
VLC_ADD_LDFLAGS([dvd dvdcss vcd cdda vcdx cddax],[-ldvd])
Samuel Hocevar
committed
;;
Samuel Hocevar
committed
SYS="${target_os}"
CFLAGS_save="${CFLAGS_save} -pthread"; CFLAGS="${CFLAGS_save}"

Rémi Denis-Courmont
committed
case "${target_os}" in
freebsd*)
CPPFLAGS_save="${CPPFLAGS_save} -I/usr/local/include"

Rémi Denis-Courmont
committed
LDFLAGS_save="${LDFLAGS_save} -L/usr/local/lib"
LDFLAGS="${LDLFAGS_save}"
;;
esac
Samuel Hocevar
committed
;;
darwin1.[0123])
dnl Mac OS X < 10.3
Samuel Hocevar
committed
SYS=darwin
CFLAGS_save="${CFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
CXXFLAGS_save="${CXXFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
OBJCFLAGS_save="${OBJCFLAGS_save} -no-cpp-precomp -D_INTL_REDIRECT_MACROS"; OBJCFLAGS="${OBJCFLAGS_save}"
VLC_ADD_LDFLAGS([vlc ffmpeg ffmpegaltivec],[-all_load])
VLC_ADD_LDFLAGS([mp4], [-framework IOKit -framework CoreFoundation])
VLC_ADD_CFLAGS([libvlc],[-x objective-c])
VLC_ADD_LDFLAGS([vlc],[-Wl,-m -Wl,-multiply_defined -Wl,suppress])
Samuel Hocevar
committed
;;
darwin*)
SYS=darwin
CFLAGS_save="${CFLAGS_save} -D_INTL_REDIRECT_MACROS"; CFLAGS="${CFLAGS_save}"
CXXFLAGS_save="${CXXFLAGS_save} -D_INTL_REDIRECT_MACROS"; CXXFLAGS="${CXXFLAGS_save}"
OBJCFLAGS_save="${OBJCFLAGS_save} -D_INTL_REDIRECT_MACROS"; OBJCFLAGS="${OBJCFLAGS_save}"
VLC_ADD_LDFLAGS([mp4], [-framework IOKit -framework CoreFoundation])
VLC_ADD_CFLAGS([libvlc],[-x objective-c])
VLC_ADD_CFLAGS([vlc],[-x objective-c])
;;
*mingw32* | *cygwin* | *wince* | *mingwce* | *pe*)
Samuel Hocevar
committed
AC_CHECK_TOOL(WINDRES, windres, :)
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)
;;
*wince* | *mingwce* | *pe*)
SYS=mingwce
;;
# add ws2_32 for closesocket, select, recv
CPPFLAGS_save="${CPPFLAGS_save} -D_OFF_T_ -D_off_t=long"; CPPFLAGS="${CPPFLAGS_save}"
VLC_ADD_LDFLAGS([vlc],[-lws2_32 -lnetapi32 -lwinmm -mwindows])
VLC_ADD_LDFLAGS([cdda vcdx cddax],[-lwinmm])
VLC_ADD_LDFLAGS([ipv4 ipv6 access_http access_mms access_udp access_tcp access_ftp access_output_udp sap slp http stream_out_standard stream_out_rtp vod_rtsp telnet netsync growl],[-lws2_32])
if test "${SYS}" = "mingwce"; then
# add ws2 for closesocket, select, recv
CPPFLAGS_save="${CPPFLAGS_save} -D_OFF_T_ -D_off_t=long"; CPPFLAGS="${CPPFLAGS_save}"
VLC_ADD_CPPFLAGS([vlc],[-Dmain(a,b)=maince(a,b)])
VLC_ADD_LDFLAGS([vlc],[-lws2 -e WinMainCRTStartup])
VLC_ADD_LDFLAGS([ipv4 ipv6 access_http access_mms access_udp access_tcp access_ftp access_output_udp sap http netsync],[-lws2])
Samuel Hocevar
committed
;;
Samuel Hocevar
committed
SYS=nto
Samuel Hocevar
committed
;;
Samuel Hocevar
committed
SYS=solaris
# _POSIX_PTHREAD_SEMANTICS is needed to get the POSIX ctime_r
# Perhaps it is useful other places as well?
CFLAGS_save="${CFLAGS_save} -D_POSIX_PTHREAD_SEMANTICS"; CFLAGS="${CFLAGS_save}"
Samuel Hocevar
committed
;;
Samuel Hocevar
committed
SYS=hpux
;;
Samuel Hocevar
committed
SYS=beos
CFLAGS_save="${CFLAGS_save} -Wno-multichar"; CFLAGS="${CFLAGS_save}"
CXXFLAGS_save="${CXXFLAGS_save} -Wno-multichar"; CXXFLAGS="${CXXFLAGS_save}"
VLC_ADD_LDFLAGS([vlc logger],[-lbe])
VLC_ADD_LDFLAGS([beos],[-lbe -lmedia -ltranslation -ltracker -lgame])
VLC_ADD_LDFLAGS([dvdnav dvdread],[-ldl])
VLC_ADD_LDFLAGS([access_file],[-lpoll])
LDFLAGS_save="${LDFLAGS_save} -lintl"; LDFLAGS="${CFLAGS_save}"
dnl Check for BONE
if test -f /boot/beos/system/lib/libbind.so; then
VLC_ADD_LDFLAGS([access_file access_ftp access_mms access_output_udp telnet netsync sap ipv4 vlc growl],[-lbind -lsocket])
VLC_ADD_LDFLAGS([access_file access_ftp access_mms access_output_udp telnet netsync sap ipv4 vlc growl],[-lnet])
if test -f /boot/beos/system/lib/libzeta.so; then
Samuel Hocevar
committed
;;
Samuel Hocevar
committed
SYS="${target_os}"
;;
AM_CONDITIONAL(HAVE_BEOS, test "${SYS}" = "beos")
AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
AM_CONDITIONAL(HAVE_WINCE, test "${SYS}" = "mingwce")
Samuel Hocevar
committed
dnl
dnl Libtool
dnl It's very bad, but our former custom system was worst
dnl -- Courmisch
dnl
AC_DISABLE_STATIC
AC_LIBTOOL_DLOPEN
dnl AC_LIBTOOL_WIN32_DLL - couldn't get libtool to work on Win32 so far
AC_PROG_LIBTOOL
AC_ARG_ENABLE(libtool,
[ --enable-libtool use libtool (default disabled)])
AM_CONDITIONAL(USE_LIBTOOL, [test "x${enable_libtool}" != "xno"])
dnl
dnl Check for Mac OS X SDK settings
dnl
AC_ARG_WITH(macosx-sdk,
[ --with-macosx-sdk compile for Mac OS X 10.3 SDK],[], with_macosx_sdk=no)
if test "${with_macosx_sdk}" != "no" ; then
CFLAGS_save="${CFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.3 -isysroot /Developer/SDKs/MacOSX10.3.9.sdk"; CFLAGS="${CFLAGS_save}"
CXXFLAGS_save="${CXXFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.3 -isysroot /Developer/SDKs/MacOSX10.3.9.sdk"; CXXFLAGS="${CXXFLAGS_save}"
OBJCFLAGS_save="${OBJCFLAGS_save} -DMACOSX_DEPLOYMENT_TARGET=10.3 -isysroot /Developer/SDKs/MacOSX10.3.9.sdk"; OBJCFLAGS="${OBJCFLAGS_save}"
LDFLAGS_save="${LDFLAGS_save} -isysroot /Developer/SDKs/MacOSX10.3.9.sdk -Wl,-syslibroot,/Developer/SDKs/MacOSX10.3.9.sdk"; LDFLAGS="${LDFLAGS_save}"
export MACOSX_DEPLOYMENT_TARGET=10.3
MACOSX_DEPLOYMENT_TARGET="10.3"
fi
dnl
dnl Gettext stuff
dnl
ALL_LINGUAS="ca cs da de en_GB es fr gl he hi hu it ja ka ko ms nl oc pt_BR ro ru sk sv tr zh_CN zh_TW"
AM_GNU_GETTEXT
AS_IF([test "${nls_cv_force_use_gnu_gettext}" = "yes"], [
AC_DEFINE(HAVE_INCLUDED_GETTEXT, 1, [Define if we use the local libintl])
AM_CPPFLAGS="${AM_CPPFLAGS} -I\$(top_builddir)/intl"
AS_IF([test "${enable_libtool}" != "no"], [
INCLUDED_LIBINTL="${LTLIBINTL}"
],[
INCLUDED_LIBINTL="${LIBINTL}"
])
], [
AS_IF([test "${enable_libtool}" != "no"], [
VLC_ADD_LDFLAGS([vlc], [${LTLIBINTL}])
], [
VLC_ADD_LDFLAGS([vlc], [${LIBINTL}])
])
])
XGETTEXT="${XGETTEXT} --keyword=_NS --keyword=_ANS"
gbazin
committed
if test "${SYS}" != "mingwce"; then
AS_IF([test "$am_cv_func_iconv" != "yes"],
[AC_MSG_ERROR([libiconv is needed for VLC to work properly])])
gbazin
committed
fi
AS_IF([test "${enable_libtool}" != "no"], [
VLC_ADD_LDFLAGS([vlc],[${LIBICONV}])
],[
VLC_ADD_LDFLAGS([vlc],[${LTLIBICONV}])
])
AC_CHECK_LIB(mingw32,opendir,VLC_ADD_LDFLAGS([vlc],[]),
[VLC_ADD_LDFLAGS([vlc gtk],[-lmingwex])])
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 "${ac_cv_c_mms_bitfields}" != "no"; then
CFLAGS_save="${CFLAGS_save} -mms-bitfields";
CXXFLAGS_save="${CXXFLAGS_save} -mms-bitfields";
AC_CACHE_CHECK([if \$CC accepts -fnative-struct],
[ac_cv_c_fnative_struct],
[CFLAGS="${CFLAGS_save} -fnative-struct"
AC_TRY_COMPILE([],,ac_cv_c_fnative_struct=yes, ac_cv_c_fnative_struct=no)])
if test "${ac_cv_c_fnative_struct}" != "no"; then
CFLAGS_save="${CFLAGS_save} -fnative-struct";
CXXFLAGS_save="${CXXFLAGS_save} -fnative-struct";
fi
CFLAGS="${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
fi
dnl Check for fvtable-thunks support for mingw32
if test "${SYS}" = "mingw32" -a "${CXX}" != ""
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 "${ac_cv_cxx_fvtable_thunks}" = "yes"; then
CXXFLAGS_save="${CXXFLAGS_save} ${CXXFLAGS_mingw32_special}"; CXXFLAGS="${CXXFLAGS_save}"
dnl Plugin compilation stuff
VLC_LIBRARY_SUFFIX
VLC_SYMBOL_PREFIX
AC_SUBST(SYMPREF)
AS_IF([test "${enable_libtool}" = "no"], [
VLC_ADD_CFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special}])
VLC_ADD_CXXFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special} ${CXXFLAGS_mingw32_special}])
VLC_ADD_OBJCFLAGS([pic plugin mozilla activex],[${CFLAGS_mingw32_special}])
Samuel Hocevar
committed
;;
mingwce)
;;
VLC_ADD_CFLAGS([pic plugin mozilla],[-fpic -fPIC])
VLC_ADD_CXXFLAGS([pic plugin mozilla],[-fpic -fPIC])
VLC_ADD_OBJCFLAGS([pic plugin mozilla],[-fpic -fPIC])
VLC_ADD_LDFLAGS([plugin mozilla],[-fpic -fPIC])
Samuel Hocevar
committed
;;
esac
Samuel Hocevar
committed
CPPFLAGS_save="${CPPFLAGS_save} -DSYS_`echo ${SYS} | sed -e 's/-.*//' | tr 'abcdefghijklmnopqrstuvwxyz.' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`"; CPPFLAGS="${CPPFLAGS_save}"
dnl Check for system libs needed
Samuel Hocevar
committed
need_libc=false
AC_CHECK_FUNCS(gettimeofday strtod strtol strtof strtoll strtoull strsep isatty vasprintf asprintf swab sigrelse getpwuid memalign posix_memalign if_nametoindex atoll getenv putenv setenv gmtime_r ctime_r localtime_r lrintf daemon scandir fork bsearch lstat strlcpy)
Samuel Hocevar
committed
dnl Check for usual libc functions
AC_CHECK_FUNCS(strdup strndup atof)
AC_CHECK_FUNCS(strcasecmp,,[AC_CHECK_FUNCS(stricmp)])
AC_CHECK_FUNCS(strncasecmp,,[AC_CHECK_FUNCS(strnicmp)])
AC_CHECK_FUNCS(strcasestr,,[AC_CHECK_FUNCS(stristr)])
dnl Check for setlocal and langinfo
AC_CHECK_FUNCS(setlocale)
AC_CHECK_HEADERS(langinfo.h)
AC_CHECK_FUNCS(nl_langinfo)
AC_CACHE_CHECK([for nl_langinfo and CODESET], ac_cv_langinfo_codeset,
[AC_TRY_LINK([#include <langinfo.h>],
[char* cs = nl_langinfo(CODESET);],
ac_cv_langinfo_codeset=yes,
ac_cv_langinfo_codeset=no)
])
if test ${ac_cv_langinfo_codeset} = yes; then
AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
[Define if you have <langinfo.h> and nl_langinfo(CODESET).])
fi
AC_CHECK_FUNCS(connect,,[
VLC_ADD_LDFLAGS([vlc ipv4 ipv6 cdda cddax],-lsocket)
LIBS_socket="-lsocket"
Samuel Hocevar
committed
AC_CHECK_FUNCS(send,,[
VLC_ADD_LDFLAGS([access_http access_mms access_udp access_tcp access_ftp sap access_output_udp stream_out_standard growl],[-lsocket])
Samuel Hocevar
committed
AC_CHECK_FUNCS(gethostbyname,,[
VLC_ADD_LDFLAGS([cdda cddax ipv4 ipv6 vlc],[-lnsl])
Samuel Hocevar
committed
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 "${ac_cv_type_socklen_t}" != "no"; then
AC_DEFINE(HAVE_SOCKLEN_T, 1, [Define if <sys/socket.h> defines socklen_t.])
fi
dnl Check for struct sockaddr_storage
AH_TEMPLATE(sockaddr_storage, [Define to `sockaddr' if <sys/socket.h> does not define.])
AH_TEMPLATE(ss_family, [Define to `sa_family' if <sys/socket.h> does not define.])
AC_CACHE_CHECK([for struct sockaddr_storage], ac_cv_struct_sockaddr_storage,
[AC_TRY_COMPILE(
[#include <sys/types.h>
#if defined( UNDER_CE )
# include <winsock.h>
#elif defined( WIN32 )
# include <winsock2.h>
#else
# include <sys/socket.h>
#endif], [struct sockaddr_storage addr;],
ac_cv_struct_sockaddr_storage=yes,
ac_cv_struct_sockaddr_storage=no)])
AS_IF([test "${ac_cv_struct_sockaddr_storage}" = no], [
AC_DEFINE(sockaddr_storage, sockaddr)
AC_DEFINE(ss_family, sa_family)
dnl getaddrinfo, getnameinfo and gai_strerror check
dnl -lnsl and -lsocket are needed on Solaris;
dnl we purposedly make the test fail on Windows
LIBS_save="${LIBS}"
AH_TEMPLATE(HAVE_GETADDRINFO, [Define to 1 if you have the `getaddrinfo' function.])
AC_SEARCH_LIBS([getaddrinfo], [nsl], [AC_DEFINE(HAVE_GETADDRINFO)],, [${LIBS_socket}])
dnl NOTE: we assume getaddrinfo will be present if getnameinfo or gai_strerro
dnl are
LIBS="${LIBS_gai}"
AC_CHECK_FUNCS([getnameinfo gai_strerror])
LIBS="${LIBS_save}"
AH_TEMPLATE(HAVE_ADDRINFO, [Define to 1 if <netdb.h> defines `struct addrinfo'.])
AC_CHECK_TYPES([struct addrinfo],[AC_DEFINE(HAVE_ADDRINFO)],,
[#include <sys/types.h>
#if defined( WIN32 ) || defined( UNDER_CE )
# if defined(UNDER_CE) && defined(sockaddr_storage)
# undef sockaddr_storage
# endif
# include <winsock2.h>
# include <ws2tcpip.h>
#else
# include <netdb.h>
#endif])
dnl Check for va_copy
AC_CACHE_CHECK([for va_copy], ac_cv_c_va_copy,
AC_TRY_LINK(
[#include <stdarg.h>],
[va_list ap1, ap2; va_copy(ap1,ap2);],
[ac_cv_c_va_copy="yes"],
[ac_cv_c_va_copy="no"]))
AC_DEFINE(HAVE_VA_COPY, 1, [Define if <stdarg.h> defines va_copy.])
fi
AC_CACHE_CHECK([for __va_copy], ac_cv_c___va_copy,
AC_TRY_LINK(
[#include <stdarg.h>],
[va_list ap1, ap2; __va_copy(ap1,ap2);],
[ac_cv_c___va_copy="yes"],
[ac_cv_c___va_copy="no"]))
AC_DEFINE(HAVE___VA_COPY, 1, [Define if <stdarg.h> defines __va_copy.])
AC_CHECK_FUNCS(inet_aton,,[
dnl Check for getopt (always use builtin one on win32)
if test "${SYS}" = "mingw32" -o "${SYS}" = "mingwce"; then
need_getopt=:
else
Samuel Hocevar
committed
need_getopt=false
AC_CHECK_FUNCS(getopt_long,[AC_DEFINE(HAVE_GETOPT_LONG,1,long getopt support)],
Samuel Hocevar
committed
AC_CHECK_LIB([gnugetopt],[getopt_long],
Samuel Hocevar
committed
[need_getopt=:])])
fi
Samuel Hocevar
committed
AM_CONDITIONAL(BUILD_GETOPT, ${need_getopt})
if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
VLC_ADD_LDFLAGS([adjust wave ripple psychedelic gradient a52tofloat32 dtstofloat32 x264 goom visual panoramix rotate noise],[-lm])
VLC_ADD_LDFLAGS([ffmpeg ffmpegaltivec stream_out_transrate i420_rgb faad twolame equalizer param_eq vlc freetype mpc dmo quicktime realaudio galaktos],[-lm])
VLC_ADD_LDFLAGS([headphone_channel_mixer normvol speex],[-lm])
AC_CHECK_LIB(m,ceil,[
VLC_ADD_LDFLAGS([mosaic],[-lm])
])
AC_CHECK_LIB(mx,sqrtf,[
VLC_ADD_LDFLAGS([x264],[-lmx])
])
fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
dnl Check for dynamic plugins
ac_cv_have_plugins=no
# OS X style
AC_CHECK_HEADERS(mach-o/dyld.h,
[AC_CHECK_FUNCS(NSLinkModule,
[AC_DEFINE(HAVE_DL_DYLD, 1, [Define if you have the Darwin dyld API])
ac_cv_have_plugins=yes])])
# HP-UX style
if test "${ac_cv_have_plugins}" = "no"; then
AC_CHECK_HEADERS(dl.h)
ac_cv_my_have_shl_load=no
AC_CHECK_FUNC(shl_load,
[ac_cv_my_have_shl_load=yes,
AC_CHECK_LIB(dld, shl_load,
[ac_cv_my_have_shl_load=yes
if test "${ac_cv_my_have_shl_load}" = "yes"; then
AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
ac_cv_have_plugins=yes
fi
fi
# Whatever style
if test "${ac_cv_have_plugins}" = "no"; then
AC_CHECK_LIB(dld, dld_link,
AC_DEFINE(HAVE_DL_DLD_LINK, 1, [Define if you have the GNU dld library])
ac_cv_have_plugins=yes])
fi
# Win32 style
if test "${ac_cv_have_plugins}" = "no"; then
if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
AC_CHECK_LIB(kernel32, main,
AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
ac_cv_have_plugins=yes])
fi
# WinCE style
if test "${ac_cv_have_plugins}" = "no"; then
if test "${SYS}" = "mingwce"; then
AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
ac_cv_have_plugins=yes
fi
fi
# BeOS style
if test "${ac_cv_have_plugins}" = "no"; then
AC_CHECK_HEADERS(image.h)
AC_CHECK_FUNCS(load_add_on,
[AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
ac_cv_have_plugins=yes])
fi
# Only test for dlopen() if the others didn't work
if test "${ac_cv_have_plugins}" = "no"; then
AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
ac_cv_my_have_dlopen=no
AC_CHECK_FUNC(dlopen,
ac_cv_my_have_dlopen=yes,
AC_CHECK_LIB(dl, dlopen,
ac_cv_my_have_dlopen=yes
AC_CHECK_LIB(svld, dlopen,
ac_cv_my_have_dlopen=yes
if test "${ac_cv_my_have_dlopen}" = "yes"; then
AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
ac_cv_have_plugins=yes
fi
fi
if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
Samuel Hocevar
committed
AC_CHECK_LIB(pthread,main,THREAD_LIB="-lpthread")
Samuel Hocevar
committed
AC_CHECK_LIB(pthreads,main,THREAD_LIB="-lpthreads")
Samuel Hocevar
committed
AC_CHECK_LIB(c_r,main,THREAD_LIB="-lc_r")
AC_CHECK_FUNCS(pthread_mutex_lock)
Samuel Hocevar
committed
THREAD_LIB=""
dnl Check for cthreads under GNU/Hurd for instance
AC_CHECK_LIB(threads,cthread_fork,THREAD_LIB="-lthreads")
dnl
dnl GNU portable threads
dnl
AC_ARG_ENABLE(pth,
[ --enable-pth GNU Pth support (default disabled)],
AC_CHECK_LIB(pth,pth_init)
AC_MSG_CHECKING(for pth_init in pth.h)
AC_EGREP_HEADER(pth_init,pth.h,[
AC_MSG_RESULT(yes)
AC_DEFINE(PTH_INIT_IN_PTH_H, 1,
Define if <pth.h> defines pth_init)
THREAD_LIB="-lpth"
],[
AC_MSG_RESULT(no)
])
fi
])
dnl
dnl State Threads
dnl
AC_ARG_ENABLE(st,
[ --enable-st State Threads (default disabled)],
AC_CHECK_LIB(st,st_init)
AC_MSG_CHECKING(for st_init in st.h)
AC_EGREP_HEADER(st_init,st.h,[
AC_MSG_RESULT(yes)
AC_DEFINE(ST_INIT_IN_ST_H, 1,
Define if <st.h> defines st_init)
THREAD_LIB="-lst"
],[
AC_MSG_RESULT(yes)
])
fi
])
VLC_ADD_LDFLAGS([vlc plugin],[${THREAD_LIB}])
if test "${THREAD_LIB}" != "-lpth" && test "${THREAD_LIB}" != "-lst"; then

Rémi Denis-Courmont
committed
VLC_ADD_LDFLAGS([vlc],[-lrt])
AC_DEFINE(HAVE_CLOCK_NANOSLEEP, 1, [Define to 1 if you have clock_nanosleep.])

Rémi Denis-Courmont
committed
], [
dnl HP/UX port
AC_CHECK_LIB(rt,sem_init, [VLC_ADD_LDFLAGS([vlc],[-lrt])])
])
have_nanosleep=false
AC_CHECK_FUNCS(nanosleep,have_nanosleep=:,[
AC_CHECK_LIB(rt,nanosleep,
[VLC_ADD_LDFLAGS([vlc],[-lrt]) have_nanosleep=:],
[VLC_ADD_LDFLAGS([vlc],[-lposix4]) have_nanosleep=:])]
)
])
if ${have_nanosleep}; then
AC_DEFINE(HAVE_NANOSLEEP, 1,
Define if nanosleep is available.)
fi
fi
AC_MSG_CHECKING(for pthread_cond_t in pthread.h)
AC_MSG_RESULT(yes)
Samuel Hocevar
committed
AC_DEFINE(PTHREAD_COND_T_IN_PTHREAD_H, 1,
Define if <pthread.h> defines pthread_cond_t.)],[
AC_MSG_RESULT(no)])
AC_MSG_CHECKING(for pthread_once in pthread.h)
AC_MSG_RESULT(yes)
Samuel Hocevar
committed
AC_DEFINE(PTHREAD_ONCE_IN_PTHREAD_H, 1,
Define if <pthread.h> defines pthread_once.)],[
AC_MSG_RESULT(no)])
fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
AC_MSG_CHECKING(for strncasecmp in strings.h)
AC_MSG_RESULT(yes)
Samuel Hocevar
committed
AC_DEFINE(STRNCASECMP_IN_STRINGS_H, 1,
Define if <strings.h> defines strncasecmp.)],[
AC_MSG_RESULT(no)])
AC_CHECK_HEADERS(signal.h time.h errno.h stdint.h stdbool.h getopt.h strings.h inttypes.h sys/int_types.h wchar.h)
AC_CHECK_HEADERS(sys/sockio.h fcntl.h sys/types.h sys/time.h sys/times.h sys/ioctl.h sys/stat.h)
if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
Samuel Hocevar
committed
AC_CHECK_HEADERS(machine/param.h sys/shm.h)
AC_CHECK_HEADERS(linux/version.h)
fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"

Rémi Denis-Courmont
committed
AC_SEARCH_LIBS(poll, [poll], [AC_DEFINE(HAVE_POLL, 1, [Define to 1 if the OS is usabl... err, has poll().])])
dnl Check for dirent
need_dirent=false
AC_CHECK_HEADERS(dirent.h,,[need_dirent=:])
AM_CONDITIONAL(BUILD_DIRENT, ${need_dirent})
Samuel Hocevar
committed
dnl Mac OS X and other OSes don't have declaration for nanosleep
if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
AC_MSG_CHECKING(for nanosleep in time.h)
AC_EGREP_HEADER(nanosleep,time.h,[
AC_MSG_RESULT(yes)
Samuel Hocevar
committed
AC_DEFINE(HAVE_DECL_NANOSLEEP, 1,
Define if <time.h> defines nanosleep.)
],[
AC_MSG_RESULT(no)
fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
Samuel Hocevar
committed
dnl Make sure we have timespecs
AC_MSG_CHECKING(for timespec in sys/time.h)
AC_EGREP_HEADER(timespec,sys/time.h,[
AC_MSG_RESULT(yes)
Samuel Hocevar
committed
AC_DEFINE(HAVE_STRUCT_TIMESPEC, 1,
Define if <sys/time.h> defines struct timespec.)
],[
AC_MSG_RESULT(no)
Samuel Hocevar
committed
if test "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"; then
fi # end "${SYS}" != "mingw32" -a "${SYS}" != "mingwce"
dnl Find where are the X headers and libraries
dnl it seems that autoconf do the pkg-config detection only for the first PKG_CHECK_MODULES in the configure.ac ( which is logical) but in our case it is nested in a if so it was not working if you're not on linux or have disable hal.
PKG_PROG_PKG_CONFIG()
dnl Check for hal
AC_ARG_ENABLE(hal,
[ --enable-hal Linux HAL services discovery (default enabled)])
PKG_CHECK_MODULES(HAL, hal >= 0.5.0,
[ AC_DEFINE( HAVE_HAL_1, [] , [Define if you have the new HAL library API])
AC_DEFINE( HAVE_HAL, [], [Define if you have the HAL library] )
VLC_ADD_PLUGINS([hal probe_hal])
VLC_ADD_LDFLAGS([vlc hal probe_hal],[$HAL_LIBS])
VLC_ADD_CFLAGS([vlc hal probe_hal],[$HAL_CFLAGS])],
dnl No hal 0.5 Test for 0.2
[ PKG_CHECK_MODULES( HAL, hal >= 0.2.97,
[AC_DEFINE(HAVE_HAL, [], [Define if you have the HAL library])
VLC_ADD_PLUGINS([hal])
VLC_ADD_LDFLAGS([vlc hal],[$HAL_LIBS])
VLC_ADD_CFLAGS([vlc hal],[$HAL_CFLAGS])],
[AC_MSG_WARN(HAL library not found)])
]
)
dnl Check for dbus
AC_ARG_ENABLE(dbus,
[ --enable-dbus Linux D-BUS message bus system (default enabled)])
then
bigben
committed
PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.92,
[ AC_DEFINE( HAVE_DBUS_2, 1, [Define if you have the D-BUS library API >= 0.92] )
AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30] )
AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
VLC_ADD_LDFLAGS([screensaver],[$DBUS_LIBS])
bigben
committed
VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
dnl older dbus
bigben
committed
[ AC_DEFINE( HAVE_DBUS_1, 1, [Define if you have the D-BUS library API >= 0.30 ] )
AC_DEFINE( HAVE_DBUS, 1, [Define if you have the D-BUS library] )
VLC_ADD_LDFLAGS([screensaver],[$DBUS_LIBS])
VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
bigben
committed
dnl much older dbus
[ PKG_CHECK_MODULES( DBUS, dbus-1,
[AC_DEFINE(HAVE_DBUS, 1, [Define if you have the D-BUS library])
VLC_ADD_LDFLAGS([screensaver],[$DBUS_LIBS])
VLC_ADD_CFLAGS([screensaver],[$DBUS_CFLAGS])],
[AC_MSG_WARN(DBUS library not found)])
]
)
fi
Samuel Hocevar
committed
dnl Build the gtk_main plugins?
Samuel Hocevar
committed
NEED_GTK_MAIN=no
Samuel Hocevar
committed
NEED_GNOME_MAIN=no
NEED_GTK2_MAIN=no
NEED_GNOME2_MAIN=no
Samuel Hocevar
committed

Jean-Paul Saman
committed
dnl build the qte plugin ?
NEED_QTE_MAIN=no
AC_CACHE_CHECK([for ntohl in sys/param.h],
Samuel Hocevar
committed
[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)])
if test "${ac_cv_c_ntohl_sys_param_h}" != "no"; then
Samuel Hocevar
committed
AC_DEFINE(NTOHL_IN_SYS_PARAM_H, 1, Define if <sys/param.h> defines ntohl.)
# 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 "${ac_cv_c_W${flag}}" != "no"; 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
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 -Wextra],
[ac_cv_c_Wextra],
[CFLAGS="-Wextra ${CFLAGS_save}"
AC_TRY_COMPILE([],,ac_cv_c_Wextra=yes, ac_cv_c_Wextra=no)])
AC_CACHE_CHECK([if $CC accepts -Wno-unused-parameter],
[ac_cv_c_Wno_unused_parameter],
[CFLAGS="-Wno-unused-parameter ${CFLAGS_save}"
AC_TRY_COMPILE([],,ac_cv_c_Wno_unused_parameter=yes, ac_cv_c_Wno_unused_parameter=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)])
CFLAGS_save="-Wall ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
CXXFLAGS_save="-Wall ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
fi
if test "${ac_cv_c_Wextra}" != "no"; then
CFLAGS_save="-Wextra ${CFLAGS_save}"; CFLAGS="${CFLAGS_save}"
CXXFLAGS_save="-Wextra ${CFLAGS_save}"; CXXFLAGS="${CXXFLAGS_save}"
OBJCFLAGS_save="-Wextra ${OBJCFLAGS_save}"; OBJCFLAGS="${OBJCFLAGS_save}"
fi
if test "${ac_cv_c_Wno_unused_parameter}" != "no"; then
CFLAGS_save="${CFLAGS_save} -Wno-unused-parameter"; CFLAGS="${CFLAGS_save}"
CXXFLAGS_save="${CFLAGS_save} -Wno-unused-parameter"; CXXFLAGS="${CXXFLAGS_save}"
OBJCFLAGS_save="${OBJCFLAGS_save} -Wno-unused-parameter "; OBJCFLAGS="${OBJCFLAGS_save}"
fi
if test "${ac_cv_c_Wsign_compare}" != "no"; 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
Samuel Hocevar
committed
[ac_cv_c_pipe],
[CFLAGS="${CFLAGS_save} -pipe"
AC_TRY_COMPILE([],,ac_cv_c_pipe=yes, ac_cv_c_pipe=no)])
Samuel Hocevar
committed
CFLAGS_save="${CFLAGS_save} -pipe"; CFLAGS="${CFLAGS_save}"
CXXFLAGS_save="${CXXFLAGS_save} -pipe"; CXXFLAGS="${CXXFLAGS_save}"
OBJCFLAGS_save="${OBJCFLAGS_save} -pipe"; OBJCFLAGS="${OBJCFLAGS_save}"
AC_CACHE_CHECK([if \$CC accepts -Os],
[ac_cv_c_os],
[CFLAGS="${CFLAGS_save} -Os"
AC_TRY_COMPILE([],,ac_cv_c_os=yes, ac_cv_c_os=no)])
if test "${ac_cv_c_os}" != "no" -a "${target_cpu}" = "mipsel"; then
CFLAGS_OPTIM="${CFLAGS_OPTIM} -Os"
fi
Samuel Hocevar
committed
[ac_cv_c_o3],
[CFLAGS="${CFLAGS_save} -O3"
AC_TRY_COMPILE([],,ac_cv_c_o3=yes, ac_cv_c_o3=no)])
if test "${ac_cv_c_o3}" != "no" -a "${target_cpu}" != "mipsel"; then
Samuel Hocevar
committed
CFLAGS_OPTIM="${CFLAGS_OPTIM} -O3"
fi
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 "${ac_cv_c_o2}" != "no" -a "${target_cpu}" != "mipsel"; then
Samuel Hocevar
committed
CFLAGS_OPTIM="${CFLAGS_OPTIM} -O2"
fi
CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O2"
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 "${ac_cv_c_o}" != "no" -a "${target_cpu}" != "mipsel"; then
Samuel Hocevar
committed
CFLAGS_OPTIM="${CFLAGS_OPTIM} -O"