Newer
Older
Samuel Hocevar
committed
AC_PREREQ(2.50)
AC_CONFIG_SRCDIR(src/libvlc.c)
AC_CONFIG_AUX_DIR(autotools)
Samuel Hocevar
committed
AC_CANONICAL_SYSTEM
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.
AM_CONFIG_HEADER(config.h)
Samuel Hocevar
committed
AM_PROG_CC_C_O
Samuel Hocevar
committed
AC_PROG_CXX
AC_PROG_MAKE_SET
AC_PROG_INSTALL
dnl AC_PROG_EGREP only exists in autoconf 2.54+, so we use AC_EGREP_CPP right
dnl now otherwise it might be set in an obscure if statement.
AC_EGREP_CPP(foo,foo)
Samuel Hocevar
committed
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)
dnl Find the right ranlib, even when cross-compiling
AC_CHECK_TOOL(RANLIB, ranlib, :)
AC_CHECK_TOOL(AR, ar, :)
AC_CHECK_TOOL(LD, ld, :)
AC_CHECK_TOOL(UPX, upx, "")
dnl Sam, if you think I didn't see that... --Meuuh
dnl AM_PROG_LIBTOOL
AC_PROG_INSTALL
dnl Check for compiler properties
AC_C_CONST
AC_C_INLINE
dnl
dnl Check for the contrib directory
dnl
topdir="`pwd`"
if test -d ${topdir}/extras/contrib/lib; then
export PATH=${topdir}/extras/contrib/bin:$PATH
export LD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$LD_LIBRARY_PATH
export DYLD_LIBRARY_PATH=${topdir}/extras/contrib/lib:$DYLD_LIBRARY_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 -d ${topdir}/extras/contrib/vlc-lib; then
LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/vlc-lib"
LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/vlc-lib"
fi
LDFLAGS="${LDFLAGS} -L${topdir}/extras/contrib/lib"
LDFLAGS_save="${LDFLAGS_save} -L${topdir}/extras/contrib/lib"
with_livedotcom_tree=${topdir}/extras/contrib/src/live
with_goom_tree=${topdir}/extras/contrib/src/goom
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}"
;;
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],[-all_load])
VLC_ADD_LDFLAGS([mp4], [-framework IOKit -framework CoreFoundation])
VLC_ADD_LDFLAGS([vlc],[-Wl,-multiply_defined,suppress])
Samuel Hocevar
committed
;;
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)
;;
esac
# 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([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 telnet netsync],[-lws2_32])
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_CXXFLAGS([beos],[])
VLC_ADD_LDFLAGS([vlc beos],[-lbe])
VLC_ADD_LDFLAGS([beos],[-lmedia -ltranslation -ltracker -lgame])
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")
Samuel Hocevar
committed
dnl
dnl Gettext stuff
dnl
ALL_LINGUAS="de en_GB es fr hu it ja nl no pl pt_BR ru sv"
AM_GNU_GETTEXT
if test "${nls_cv_force_use_gnu_gettext}" = "yes"; then
AC_DEFINE(HAVE_INCLUDED_GETTEXT, 1, Define if we use the local libintl)
else
AC_CHECK_FUNCS(textdomain,,[
AC_CHECK_LIB(intl,textdomain,
)
])
fi
AM_CONDITIONAL(BUILD_INTL, test "${nls_cv_force_use_gnu_gettext}" = "yes")
AC_ARG_ENABLE(utf8,
[ --enable-utf8 unicode utf8 support (default enabled on darwin/beos/win32)])
if test "${enable_utf8}" = "yes" || (test "${enable_utf8}" != "no" && (test "${SYS}" = "mingw32" || test "${SYS}" = "beos" || test "${SYS}" = "darwin" ) )
then
AC_DEFINE(ENABLE_UTF8, 1,
Define if you want utf8 support)
fi
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
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_ADD_CFLAGS([pic plugin mozilla],[${CFLAGS_mingw32_special}])
VLC_ADD_CXXFLAGS([pic plugin mozilla],[${CFLAGS_mingw32_special} ${CXXFLAGS_mingw32_special}])
VLC_ADD_OBJCFLAGS([pic plugin mozilla],[${CFLAGS_mingw32_special}])
Samuel Hocevar
committed
;;
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 select strerror strtod strtol isatty vasprintf asprintf swab sigrelse getpwuid memalign posix_memalign gethostbyname2 if_nametoindex atoll getenv putenv setenv gmtime_r ctime_r localtime_r lrintf)
Samuel Hocevar
committed
dnl Check for usual libc functions
Samuel Hocevar
committed
AC_CHECK_FUNCS(strdup strndup atof lseek)
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,,[
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],[-lsocket])
Samuel Hocevar
committed
AC_CHECK_FUNCS(gethostbyname,,[
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 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"; 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})
VLC_ADD_LDFLAGS([adjust distort a52tofloat32 dtstofloat32],[-lm])
VLC_ADD_LDFLAGS([ffmpeg stream_out_transcode stream_out_transrate i420_rgb faad vlc],[-lm])
VLC_ADD_LDFLAGS([headphone_channel_mixer],[-lm])
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
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
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
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)])
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)
AC_CHECK_HEADERS(linux/version.h)
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
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)
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
dnl Default X headers and libraries
Samuel Hocevar
committed
x_includes="/usr/X11R6/include"
fi
Samuel Hocevar
committed
x_libraries="/usr/X11R6/lib"
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.)
AC_CACHE_CHECK([if \$CC accepts -finline-limit],
Samuel Hocevar
committed
[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)])
if test "${ac_cv_c_inline_limit}" != "no"; then
Samuel Hocevar
committed
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}"
# 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 -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}"
OBJCFLAGS_save="-Wall ${OBJCFLAGS_save}"; 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"
fi
CFLAGS_NOOPTIM="${CFLAGS_NOOPTIM} -O"
fi
fi
dnl Check for -ffast-math
AC_CACHE_CHECK([if \$CC accepts -ffast-math],
Samuel Hocevar
committed
[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)])
Samuel Hocevar
committed
CFLAGS_OPTIM="${CFLAGS_OPTIM} -ffast-math"
dnl Disabled on BeOS because BeOS' gcc is buggy and may crash with it
then
AC_CACHE_CHECK([if \$CC accepts -funroll-loops],
[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)])
if test "${ac_cv_c_unroll_loops}" != "no"; then
CFLAGS_OPTIM="${CFLAGS_OPTIM} -funroll-loops"
fi
fi
dnl Check for -fomit-frame-pointer
AC_CACHE_CHECK([if \$CC accepts -fomit-frame-pointer],
Samuel Hocevar
committed
[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)])
if test "${ac_cv_c_omit_frame_pointer}" != "no"; then
Samuel Hocevar
committed
CFLAGS_OPTIM_NODEBUG="${CFLAGS_OPTIM_NODEBUG} -fomit-frame-pointer"
# this plugin does not compile without -fomit-frame-pointer, damn gcc!
VLC_ADD_CFLAGS([i420_yuy2_mmx],[-fomit-frame-pointer])
Christophe Massiot
committed
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 "${ac_cv_c_dynamic_no_pic}" != "no"; then
VLC_ADD_CFLAGS([builtin],[-mdynamic-no-pic])
VLC_ADD_CFLAGS([libvlc],[-mdynamic-no-pic])
Christophe Massiot
committed
fi
AC_CACHE_CHECK([if \$CC accepts -bundle -undefined error -lcc_dynamic],
Samuel Hocevar
committed
[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)])
VLC_ADD_LDFLAGS([plugin],[-bundle -undefined error -lcc_dynamic])
dnl BeOS' gcc needs -nostart instead of -shared, even if -shared isn't harmful (just a warning)
AC_CACHE_CHECK([if \$CC accepts -shared],
[ac_cv_ld_plugins],
[CFLAGS="${CFLAGS_save} -shared"
AC_TRY_COMPILE([],, ac_cv_ld_plugins=yes, ac_cv_ld_plugins=no)])
if test "${ac_cv_ld_plugins}" != "no"; then
Samuel Hocevar
committed
dnl Check for variadic macros
AC_CACHE_CHECK([for variadic cpp macros],
Samuel Hocevar
committed
[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)])
if test "${ac_cv_cpp_variadic_macros}" != "no"; then
Samuel Hocevar
committed
AC_DEFINE(HAVE_VARIADIC_MACROS, 1, Support for variadic macros)
fi
dnl Checks for __attribute__(aligned()) directive
AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
Samuel Hocevar
committed
[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}"])
if test "${ac_cv_c_attribute_aligned}" != "0"; then
Samuel Hocevar
committed
AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
[${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
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 "${ac_cv_c_attribute_format}" != "no"; then
AC_DEFINE(HAVE_ATTRIBUTE_FORMAT, 1, Support for __attribute__((format())) with function pointers)
fi
dnl Check for __attribute__(())
AC_CACHE_CHECK([for __attribute__((packed))],
[ac_cv_c_attribute_packed],
[ac_cv_c_attribute_packed=no
AC_TRY_COMPILE(, [struct __attribute__((__packed__)) foo { int a; } b;],
[ac_cv_c_attribute_packed=yes])])
if test "${ac_cv_c_attribute_packed}" != "no"; then
AC_DEFINE(HAVE_ATTRIBUTE_PACKED, 1, Support for __attribute__((packed)) for structs)
fi
Samuel Hocevar
committed
ARCH=unknown
;;
*)
ARCH="${target_cpu}"
;;
esac
dnl
dnl Enable profiling
dnl
AC_ARG_ENABLE(gprof,
[ --enable-gprof gprof profiling (default disabled)])
AC_ARG_ENABLE(cprof,
[ --enable-cprof cprof profiling (default disabled)])
test "${enable_gprof}" != "yes" && enable_gprof="no"
test "${enable_cprof}" != "yes" && enable_cprof="no"
VLC_ADD_PLUGINS([dummy rc telnet logger gestures memcpy hotkeys netsync])
VLC_ADD_PLUGINS([mpgv mpga m4v h264 ps pva avi asf aac mp4 rawdv nsv real aiff mjpeg demuxdump])
VLC_ADD_PLUGINS([cvdsub svcdsub spudec dvbsub mpeg_audio lpcm a52 dts cinepak])
VLC_ADD_PLUGINS([deinterlace invert adjust wall transform distort clone crop motionblur])
VLC_ADD_PLUGINS([float32tos16 float32tos8 float32tou16 float32tou8 a52tospdif dtstospdif fixed32tofloat32 fixed32tos16 s16tofixed32 s16tofloat32 s16tofloat32swab s8tofloat32 u8tofixed32 u8tofloat32])
VLC_ADD_PLUGINS([trivial_resampler ugly_resampler linear_resampler bandlimited_resampler])
VLC_ADD_PLUGINS([trivial_channel_mixer headphone_channel_mixer])
VLC_ADD_PLUGINS([trivial_mixer spdif_mixer float32_mixer])
VLC_ADD_PLUGINS([aout_file])
VLC_ADD_PLUGINS([i420_rgb i420_yuy2 i422_yuy2 i420_ymga])
VLC_ADD_PLUGINS([m3u id3 playlist export sgimb])
VLC_ADD_PLUGINS([access_file access_udp access_tcp access_http ipv4 access_mms])
VLC_ADD_PLUGINS([access_ftp access_directory sap http])
dnl
dnl Switch to enable a version of VLC where most modules will be builtin
dnl
AC_ARG_ENABLE(mostly-builtin,
[ --enable-mostly-builtin most modules will be built-in (default disabled)])
if test "${enable_mostly_builtin}" = "yes"; then
VLC_ADD_PLUGINS([dmo])
VLC_ADD_LDFLAGS([dmo],[-lole32])
MMX_MODULES="memcpymmx i420_rgb_mmx i422_yuy2_mmx i420_ymga_mmx"
#MMX_MODULES="${MMX_MODULES} idctmmx motionmmx"
MMXEXT_MODULES="memcpymmxext"
#MMXEXT_MODULES="${MMXEXT_MODULES} idctmmxext motionmmxext"
THREEDNOW_MODULES="memcpy3dn"
SSE_MODULES=""
ALTIVEC_MODULES="memcpyaltivec i420_yuy2_altivec"
#ALTIVEC_MODULES="${ALTIVEC_MODULES} idctaltivec motionaltivec"
if test "${enable_gprof}" != "yes"
then
MMX_MODULES="${MMX_MODULES} i420_yuy2_mmx"
fi
AC_CACHE_CHECK([if \$CC groks MMX inline assembly],
[ac_cv_mmx_inline],
Samuel Hocevar
committed
[CFLAGS="${CFLAGS_save}"
AC_TRY_COMPILE(,[void *p;asm volatile("packuswb %%mm1,%%mm2"::"r"(p));],
ac_cv_mmx_inline=yes, ac_cv_mmx_inline=no)])
AC_DEFINE(CAN_COMPILE_MMX, 1, Define if \$CC groks MMX inline assembly.)
fi
AC_CACHE_CHECK([if \$CC groks MMX EXT inline assembly],
[ac_cv_mmxext_inline],
Samuel Hocevar
committed
[CFLAGS="${CFLAGS_save}"
AC_TRY_COMPILE(,[void *p;asm volatile("maskmovq %%mm1,%%mm2"::"r"(p));],
ac_cv_mmxext_inline=yes, ac_cv_mmxext_inline=no)])
if test "${ac_cv_mmxext_inline}" != "no"; then
AC_DEFINE(CAN_COMPILE_MMXEXT, 1, Define if \$CC groks MMX EXT inline assembly.)
fi
AC_CACHE_CHECK([if \$CC groks 3D Now! inline assembly],
[ac_cv_3dnow_inline],
Samuel Hocevar
committed
[CFLAGS="${CFLAGS_save}"
AC_TRY_COMPILE(,[void *p;asm volatile("pfadd %%mm1,%%mm2"::"r"(p));],
ac_cv_3dnow_inline=yes, ac_cv_3dnow_inline=no)])
if test "${ac_cv_3dnow_inline}" != "no"; then
AC_DEFINE(CAN_COMPILE_3DNOW, 1, Define if \$CC groks 3D Now! inline assembly.)
fi
AC_CACHE_CHECK([if \$CC groks SSE inline assembly],
[ac_cv_sse_inline],
Samuel Hocevar
committed
[CFLAGS="${CFLAGS_save}"
AC_TRY_COMPILE(,[void *p;asm volatile("xorps %%xmm1,%%xmm2"::"r"(p));],
ac_cv_sse_inline=yes, ac_cv_sse_inline=no)])
if test "${ac_cv_sse_inline}" != "no" -a "${SYS}" != "mingw32" -a "${SYS}" != "solaris"; then
AC_DEFINE(CAN_COMPILE_SSE, 1, Define if \$CC groks SSE inline assembly.)
fi
[ac_cv_altivec_inline],
Samuel Hocevar
committed
[CFLAGS="${CFLAGS_save}"
ac_cv_altivec_inline=yes,
Samuel Hocevar
committed
[CFLAGS="${CFLAGS_save} -Wa,-m7400"
ac_cv_altivec_inline=no)
if test "${ac_cv_altivec_inline}" != "no"; then
AC_DEFINE(CAN_COMPILE_ALTIVEC, 1, Define if \$CC groks AltiVec inline assembly.)
if test "${ac_cv_altivec_inline}" != "yes"; then
VLC_ADD_CFLAGS([idctaltivec],[${ac_cv_altivec_inline}])
VLC_ADD_CFLAGS([motionaltivec],[${ac_cv_altivec_inline}])