summaryrefslogtreecommitdiff
path: root/m4
diff options
context:
space:
mode:
authorMatt Messier <mmessier@grapetv.org>2007-05-04 08:13:32 -0400
committerMatt Messier <mmessier@grapetv.org>2007-05-04 08:13:32 -0400
commitb988ef1fe6268819c69f345b4f1836fb739cf3fe (patch)
tree039f5b3504e6835ee8dee69fc4cc08376a83bcf6 /m4
parente20369d1b3e91cd45c1281e37030124b2af1b00f (diff)
downloadxine-lib-b988ef1fe6268819c69f345b4f1836fb739cf3fe.tar.gz
xine-lib-b988ef1fe6268819c69f345b4f1836fb739cf3fe.tar.bz2
Move some stuff out of configure.ac and into existing or new m4 files for
better organization. No functional change.
Diffstat (limited to 'm4')
-rw-r--r--m4/Makefile.am5
-rw-r--r--m4/macosx.m464
-rw-r--r--m4/pthreads.m425
-rw-r--r--m4/summary.m4437
-rw-r--r--m4/vcd.m4230
5 files changed, 760 insertions, 1 deletions
diff --git a/m4/Makefile.am b/m4/Makefile.am
index 2aaa677da..10ac6f002 100644
--- a/m4/Makefile.am
+++ b/m4/Makefile.am
@@ -22,11 +22,14 @@ EXTRA_DIST = \
irixal.m4 \
libFLAC.m4 \
libfame.m4 \
+ macosx.m4 \
opengl.m4 \
optimizations.m4 \
pkg.m4 \
pthreads.m4 \
symbol.m4 \
+ summary.m4 \
xine.m4 \
_xine.m4 \
- xv.m4
+ xv.m4 \
+ vcd.m4
diff --git a/m4/macosx.m4 b/m4/macosx.m4
new file mode 100644
index 000000000..bcc40f0dc
--- /dev/null
+++ b/m4/macosx.m4
@@ -0,0 +1,64 @@
+AC_DEFUN([MACOSX_UNIVERSAL_BINARIES], [
+ AC_ARG_ENABLE([macosx-universal],
+ AS_HELP_STRING([--enable-macosx-universal], [build universal binaries for Mac OS X)]),
+ [], [enable_macosx_universal="no"])
+ if test x"$enable_macosx_universal" != x"no" ; then
+ case "$host_os" in
+ *darwin*)
+ dnl x64_64 and ppc64 binaries could also be built, but there is no
+ dnl version of Mac OS X currently shipping that can run them, so
+ dnl do not enable them by default for now.
+ if test x"$enable_macosx_universal" = x"yes" ; then
+ UNIVERSAL_ARCHES="i386 ppc"
+ else
+ UNIVERSAL_ARCHES=`echo "$enable_macosx_universal" | sed -e 's/,/ /g'`
+ fi
+ ;;
+ *)
+ AC_MSG_ERROR([Universal binaries can only be built on Darwin])
+ ;;
+ esac
+
+ UNIVERSAL_CFLAGS="$UNIVERSAL_CFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk"
+ UNIVERSAL_LDFLAGS="$UNIVERSAL_LDFLAGS -Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk"
+ if test x"$UNIVERSAL_ARCHES" != x"" ; then
+ # Forcibly disable dependency tracking for Universal builds, because -M
+ # does not work with multiple -arch arguments on the gcc command-line.
+ ac_tool_warned=yes
+ cross_compiling=yes
+ enable_dependency_tracking=no
+ host="`echo $host | sed -e s/$host_cpu/universal/g`"
+ host_cpu=universal
+
+ CFLAGS="$CFLAGS $UNIVERSAL_CFLAGS"
+ OBJCFLAGS="$OBJCFLAGS $UNIVERSAL_CFLAGS"
+ LDFLAGS="$LDFLAGS $UNIVERSAL_LDFLAGS"
+ AC_DEFINE(XINE_MACOSX_UNIVERSAL_BINARY, 1, [Define this if a universal binary is being built for Mac OS X])
+ for arch in $UNIVERSAL_ARCHES ; do
+ UNIVERSAL_CFLAGS="$UNIVERSAL_CFLAGS -arch $arch"
+ UNIVERSAL_LDFLAGS="$UNIVERSAL_LDFLAGS -arch $arch"
+ CFLAGS="$CFLAGS -arch $arch"
+ OBJCFLAGS="$OBJCFLAGS -arch $arch"
+ LDFLAGS="$LDFLAGS -arch $arch"
+ done
+ fi
+ fi
+ AM_CONDITIONAL([MACOSX_UNIVERSAL_BINARY], [test x"$enable_macosx_universal" = x"yes"])
+ AC_SUBST(UNIVERSAL_ARCHES)
+ AC_SUBST(UNIVERSAL_CFLAGS)
+ AC_SUBST(UNIVERSAL_LDFLAGS)
+])dnl MACOSX_UNIVERSAL_BINARIES
+
+AC_DEFUN([MACOSX_AUDIO_SUPPORT], [
+ AC_ARG_ENABLE([coreaudio],
+ AS_HELP_STRING([--enable-coreaudio], [enable support for Mac OS X CoreAudio output]),
+ [have_coreaudio="$enableval"], [have_coreaudio="no"])
+ AM_CONDITIONAL([HAVE_COREAUDIO], [test x"$have_coreaudio" = x"yes"])
+])dnl MACOSX_AUDIO_SUPPORT
+
+AC_DEFUN([MACOSX_VIDEO_SUPPORT], [
+ AC_ARG_ENABLE([macosx-video],
+ AS_HELP_STRING([--enable-macosx-video], [enable support for Mac OS X OpenGL video output]),
+ [have_macosx_video="$enableval"], [have_macosx_video="no"])
+ AM_CONDITIONAL([HAVE_MACOSX_VIDEO], [test x"$have_macosx_video" = x"yes"])
+])dnl MACOSX_VIDEO_SUPPORT
diff --git a/m4/pthreads.m4 b/m4/pthreads.m4
index 363a8b4b2..d68cd13c8 100644
--- a/m4/pthreads.m4
+++ b/m4/pthreads.m4
@@ -61,3 +61,28 @@ AC_DEFUN([CC_PTHREAD_FLAGS], [
ifelse([$2], , [:], [$2])
fi
])
+
+AC_DEFUN([CC_PTHREAD_RECURSIVE_MUTEX], [
+ AC_REQUIRE([CC_PTHREAD_FLAGS])
+ AC_MSG_CHECKING([for recursive mutex support in pthread])
+
+ ac_save_LIBS="$LIBS"
+ LIBS="$LIBS $PTHREAD_LIBS"
+ AC_COMPILE_IFELSE(AC_LANG_SOURCE([#include <pthread.h>
+
+int main() {
+ pthread_mutexattr_t attr;
+ pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
+ return 0;
+}
+ ]), [have_recursive_mutex=yes], [have_recursive_mutex=no])
+ LIBS="$ac_save_LIBS"
+
+ AC_MSG_RESULT([$have_recursive_mutex])
+
+ if test x"$have_recursive_mutex" = x"yes"; then
+ ifelse([$1], , [:], [$1])
+ else
+ ifelse([$2], , [:], [$2])
+ fi
+])
diff --git a/m4/summary.m4 b/m4/summary.m4
new file mode 100644
index 000000000..9bebcde27
--- /dev/null
+++ b/m4/summary.m4
@@ -0,0 +1,437 @@
+AC_DEFUN([XINE_LIB_SUMMARY], [
+ dnl ---------------------------------------------
+ dnl Some infos:
+ dnl ---------------------------------------------
+
+ echo "xine-lib summary:"
+ echo "----------------"
+
+ dnl Input
+ echo " * input plugins:"
+ echo " - file - net"
+ echo " - stdin_fifo - rtp"
+ echo " - http - mms"
+ echo " - pnm - rtsp"
+ echo " - dvb"
+ if test "x$external_dvdnav" = "xyes"; then
+ echo " - dvd (external libs)"
+ else
+ echo " - dvd (internal libs)"
+ fi
+ if test "x$have_cdrom_ioctls" = "xyes"; then
+ if test "x$enable_vcd" = "xyes"; then
+ if test "x$internal_vcdnav" = "xno"; then
+ echo " - vcd (external libs)"
+ else
+ echo " - vcd (internal libs)"
+ fi
+ fi
+ echo " - vcdo"
+ echo " - cdda"
+ fi
+ if test "x$no_gnome_vfs" = "xno"; then
+ echo " - gnome-vfs"
+ fi
+ if test "x$have_v4l" = "xyes"; then
+ echo " - v4l"
+ fi
+ if test "x$have_libsmbclient" = "xyes"; then
+ echo " - smbclient"
+ fi
+ echo ""
+
+ dnl Demuxers
+ echo " * demultiplexer plugins:"
+ echo " - avi - mpeg"
+ echo " - mpeg_block - mpeg_audio"
+ echo " - mpeg_elem - mpeg_pes"
+ echo " - mpeg_ts - qt/mpeg-4"
+ echo " - film - roq"
+ echo " - fli - smjpeg"
+ echo " - idcin - wav"
+ echo " - wc3 mve - voc"
+ echo " - vqa - aiff"
+ echo " - cdda - snd/au"
+ echo " - yuv4mpeg2 - real/realaudio"
+ echo " - ea wve - raw dv"
+ echo " - interplay mve - psx str"
+ echo " - ws aud - pva"
+ echo " - vox - nsf"
+ echo " - nsv - 4xm"
+ echo " - FLAC - aac"
+ echo " - iff - matroska"
+ echo " - vmd - flv"
+ if test "x$enable_asf" = "xyes"; then
+ echo " - asf"
+ fi
+ if test "x$have_vorbis" = "xyes"; then
+ echo " - ogg"
+ fi
+ if test "x$have_libmng" = "xyes"; then
+ echo " - mng"
+ fi
+ if test "x$enable_modplug" != x"no"; then
+ echo " - mod"
+ fi
+ if test "x$have_libflac" = "xyes"; then
+ echo " - FLAC (with libFLAC)"
+ fi
+ if test "x$have_wavpack" = "xyes"; then
+ echo " - WavPack"
+ fi
+ if test "x$enable_a52dec" = "xyes"; then
+ if test "x$have_a52" = "xyes"; then
+ echo " - ac3 (external library)"
+ else
+ echo " - ac3 (internal library)"
+ fi
+ fi
+ echo ""
+
+ dnl video decoders
+ echo " * video decoder plugins:"
+ echo " - MPEG 1,2 - Amiga Bitplane"
+ echo " - Raw RGB - Raw YUV"
+ if test "x$with_external_ffmpeg" = "xyes"; then
+ echo " - ffmpeg (external library):"
+ else
+ echo " - ffmpeg (internal library):"
+ fi
+ echo " - MPEG-4 (ISO, Microsoft, DivX*, XviD)"
+ echo " - Creative YUV - Motion JPEG"
+ echo " - Cinepak - MS Video-1"
+ echo " - FLI/FLC - MS RLE"
+ echo " - Id RoQ - Id Cin"
+ echo " - Apple Graphics - Apple Video"
+ echo " - Apple Animation - Interplay Video"
+ echo " - Westwood VQA - Origin Xan"
+ echo " - H.263 - Intel Indeo 3"
+ echo " - SVQ1 - SVQ3"
+ echo " - Real Video 1.0 - Real Video 2.0"
+ echo " - 4X Video - Sierra Video"
+ echo " - Asus v1/v2 - HuffYUV"
+ echo " - On2 VP3 - DV"
+ echo " - 8BPS - Duck TrueMotion v1"
+ echo " - ATI VCR1 - Flash Video"
+ echo " - ZLIB - MSZH"
+ if test "x$have_dxr3" = "xyes"; then
+ echo " - dxr3_video"
+ fi
+ if test "x$enable_w32dll" = "xyes"; then
+ echo " - w32dll"
+ fi
+ if test "x$have_imagemagick" = "xyes"; then
+ echo " - image"
+ fi
+ if test x"no_gdkpixbuf" != "xyes"; then
+ echo " - gdk-pixbuf"
+ fi
+ if test "x$have_theora" = "xyes"; then
+ echo " - theora"
+ fi
+ echo ""
+
+ dnl audio decoders
+ echo " * audio decoder plugins:"
+ echo " - GSM 06.10"
+ echo " - linear PCM - Nosefart (NSF)"
+ if test "x$with_external_ffmpeg" = "xyes"; then
+ echo " - ffmpeg (external library):"
+ else
+ echo " - ffmpeg (internal library):"
+ fi
+ echo " - Windows Media Audio v1/v2"
+ echo " - DV - logarithmic PCM"
+ echo " - 14k4 - 28k8"
+ echo " - MS ADPCM - IMA ADPCM"
+ echo " - XA ADPCM - Game DPCM/ADPCM"
+ echo " - Mace 3:13 - Mace 6:1"
+ echo " - FLAC"
+ if test "x$have_libflac" = "xyes"; then
+ echo " - FLAC (with libFLAC)"
+ fi
+ if test "x$have_vorbis" = "xyes"; then
+ echo " - vorbis"
+ fi
+ if test "x$have_speex" = "xyes"; then
+ echo " - speex"
+ fi
+ if test "x$enable_w32dll" = "xyes"; then
+ echo " - w32dll"
+ fi
+ if test "x$enable_faad" = "xyes"; then
+ echo " - faad"
+ fi
+ if test "x$enable_libmad" = "xyes"; then
+ if test "x$have_mad" = "xyes"; then
+ echo " - MAD (MPG 1/2/3) (external library)"
+ else
+ echo " - MAD (MPG 1/2/3) (internal library)"
+ fi
+ fi
+ if test "x$enable_libdts" = "xyes"; then
+ if test "x$have_dts" = "xyes"; then
+ echo " - DTS (external library)"
+ else
+ echo " - DTS (internal library)"
+ fi
+ fi
+ if test "x$enable_a52dec" = "xyes"; then
+ if test "x$have_a52" = "xyes"; then
+ echo " - A52/ra-dnet (external library)"
+ else
+ echo " - A52/ra-dnet (internal library)"
+ fi
+ fi
+ if test "x$enable_musepack" != "xno"; then
+ if test "x$have_mpcdec" = "xyes"; then
+ echo " - MusePack (external library)"
+ else
+ echo " - MusePack (internal library)"
+ fi
+ fi
+ if test "x$have_wavpack" = "xyes"; then
+ echo " - WavPack"
+ fi
+ echo ""
+
+ dnl spu decoders
+ echo " * subtitle decoder plugins:"
+ echo " - spu - spucc"
+ echo " - spucmml - sputext"
+ echo " - spudvb"
+ if test "x$have_dxr3" = "xyes"; then
+ echo " - dxr3_spu"
+ fi
+ echo ""
+
+ dnl post plugins
+ echo " * post effect plugins:"
+ echo " * planar video effects:"
+ echo " - invert - expand"
+ echo " - eq - eq2"
+ echo " - boxblur - denoise3d"
+ echo " - unsharp - tvtime"
+ echo " * SFX:"
+ echo " - goom - oscope"
+ echo " - fftscope - mosaico"
+ echo ""
+
+ dnl Video plugins
+ echo " * video driver plugins:"
+ if test "x$no_x" != "xyes"; then
+ echo " - XShm (X11 shared memory)"
+ dnl synfb
+ if test "x$enable_syncfb" != "xno"; then
+ echo " - SyncFB (for Matrox G200/G400 cards)"
+ fi
+ dnl Xv
+ if test "x$ac_have_xv" = "xyes"; then
+ if test "x$ac_have_xv_static" = "xyes"; then
+ echo " - Xv (XVideo *static*)"
+ else
+ echo " - Xv (XVideo *shared*)"
+ fi
+ fi
+ dnl XxMC
+ if test "x$ac_have_xxmc" = "xyes"; then
+ if test "x$ac_have_vldxvmc_h" = "xyes"; then
+ echo " - XxMC (XVideo extended motion compensation)"
+ else
+ echo " - XxMC (XVideo motion compensation - vld extensions DISABLED)"
+ fi
+ fi
+ dnl XvMC
+ if test "x$ac_have_xvmc" = "xyes"; then
+ echo " - XvMC (XVideo motion compensation)"
+ fi
+ if test "x$ac_have_opengl" = "xyes" -a "x$ac_have_glut" = "xyes" -o \
+ x$"ac_have_opengl" = "xyes" -a "x$ac_have_glu" = "xyes"; then
+ echo " - OpenGL"
+ fi
+ if test "x$ac_have_sunfb" = "xyes"; then
+ if test "x$ac_have_sundga" = "xyes"; then
+ echo " - PGX64 (for Sun XVR100/PGX64/PGX24 cards)"
+ echo " - PGX32 (for Sun PGX32 cards)"
+ fi
+ fi
+ fi
+ if test "x$have_xcb" = "xyes"; then
+ dnl xcb-shm
+ if test "x$have_xcbshm" = "xyes"; then
+ echo " - xcb-shm (X shared memory using XCB)"
+ fi
+ dnl xcb-xv
+ if test "x$have_xcbxv" = "xyes"; then
+ echo " - xcb-xv (XVideo using XCB)"
+ fi
+ fi
+ if test "x$no_aalib" != "xyes"; then
+ echo " - aa (Ascii ART)"
+ fi
+ if test "x$have_caca" = "xyes"; then
+ echo " - caca (Color AsCii Art)"
+ fi
+ if test "x$have_fb" = "xyes"; then
+ echo " - fb (Linux framebuffer device)"
+ fi
+ if test "x$have_sdl" = "xyes"; then
+ echo " - sdl (Simple DirectMedia Layer)"
+ fi
+ if test "x$have_libstk" = "xyes"; then
+ echo " - stk (Libstk Set-top Toolkit)"
+ fi
+ if test "x$have_directfb" = "xyes"; then
+ echo " - directfb (DirectFB driver)"
+ fi
+ if test "x$have_dxr3" = "xyes"; then
+ if test "x$have_encoder" = "xyes"; then
+ echo " - dxr3 (Hollywood+ and Creative dxr3, both mpeg and non-mpeg video)"
+ else
+ echo " - dxr3 (Hollywood+ and Creative dxr3, mpeg video only)"
+ fi
+ fi
+ if test "x$enable_vidix" = "xyes"; then
+ echo $ECHO_N " - vidix ("
+
+ if test "x$no_x" != "xyes"; then
+ echo $ECHO_N "X11"
+ if test "x$have_fb" = "xyes"; then
+ echo $ECHO_N " and "
+ fi
+ fi
+
+ if test "x$have_fb" = "xyes"; then
+ echo $ECHO_N "framebuffer"
+ fi
+
+ echo $ECHO_N " support"
+
+ if test "x$enable_dha_kmod" = "xyes"; then
+ echo " with dhahelper)"
+ else
+ echo ")"
+ fi
+ fi
+ if test "x$have_directx" = "xyes"; then
+ echo " - directx (DirectX video driver)"
+ fi
+ if test "x$have_macosx_video" = "xyes"; then
+ echo " - Mac OS X OpenGL"
+ fi
+
+ echo ""
+
+ dnl Audio plugins
+ echo " * audio driver plugins:"
+ if test "x$have_ossaudio" = "xyes"; then
+ echo " - oss (Open Sound System)"
+ fi
+ if test "x$have_alsa" = "xyes"; then
+ echo " - alsa"
+ fi
+ if test "x$have_esound" = "xyes"; then
+ echo " - esd (Enlightened Sound Daemon)"
+ fi
+ if test "x$no_arts" != "xyes"; then
+ echo " - arts (aRts - KDE soundserver)"
+ fi
+ if test "x$no_fusionsound" != "xyes"; then
+ echo " - fusionsound (FusionSound driver)"
+ fi
+ if test "x$have_sunaudio" = "xyes"; then
+ echo " - sun ()"
+ fi
+ if test "x$am_cv_have_irixal" = xyes; then
+ echo " - irixal (Irix audio library)"
+ fi
+ if test "x$have_directx" = "xyes"; then
+ echo " - directx (DirectX audio driver)"
+ fi
+ if test "x$have_coreaudio" = "xyes"; then
+ echo " - CoreAudio (Mac OS X audio driver)"
+ fi
+ if test "x$have_pulseaudio" = "xyes"; then
+ echo " - pulseaudio sound server"
+ fi
+ if test "x$have_jack" = "xyes"; then
+ echo " - Jack"
+ fi
+ echo "---"
+
+
+ dnl ---------------------------------------------
+ dnl some user warnings
+ dnl ---------------------------------------------
+
+ dnl some levels of variable expansion to get final install paths
+ final_libdir="`eval eval eval eval echo $libdir`"
+ final_bindir="`eval eval eval eval echo $bindir`"
+
+ if test -r /etc/ld.so.conf && ! grep -x "$final_libdir" /etc/ld.so.conf >/dev/null ; then
+ if test "$final_libdir" != "/lib" -a "$final_libdir" != "/usr/lib" ; then
+ if ! echo "$LD_LIBRARY_PATH" | egrep "(:|^)$final_libdir(/?:|/?$)" >/dev/null ; then
+ echo
+ echo "****************************************************************"
+ echo "xine-lib will be installed to $final_libdir"
+ echo
+ echo "This path is not mentioned among the linker search paths in your"
+ echo "/etc/ld.so.conf. This means it is possible that xine-lib will"
+ echo "not be found when you try to compile or run a program using it."
+ echo "If this happens, you should add $final_libdir to"
+ echo "the environment variable LD_LIBRARY_PATH like that:"
+ echo
+ echo "export LD_LIBRARY_PATH=$final_libdir:\$LD_LIBRARY_PATH"
+ echo
+ echo "Alternatively you can add a line \"$final_libdir\""
+ echo "to your /etc/ld.so.conf."
+ echo "****************************************************************"
+ echo
+ fi
+ fi
+ fi
+
+ if ! echo "$PATH" | egrep "(:|^)$final_bindir(/?:|/?$)" >/dev/null ; then
+ echo
+ echo "****************************************************************"
+ echo "xine-config will be installed to $final_bindir"
+ echo
+ echo "This path is not in your search path. This means it is possible"
+ echo "that xine-config will not be found when you try to compile a"
+ echo "program using xine-lib. This will result in build failures."
+ echo "If this happens, you should add $final_bindir to"
+ echo "the environment variable PATH like that:"
+ echo
+ echo "export PATH=$final_bindir:\$PATH"
+ echo
+ echo "Note that this is only needed for compilation. It is not needed"
+ echo "to have xine-config in your search path at runtime. (Although"
+ echo "it will not cause any harm either.)"
+ echo "****************************************************************"
+ echo
+ fi
+
+ dnl warn if no X11 plugins will be built
+ if test "x$no_x" = "xyes"; then
+ case $host in
+ *mingw*|*-cygwin) ;;
+ *-darwin*) ;;
+ *)
+ echo
+ echo "****************************************************************"
+ echo "WARNING! No X11 output plugins will be built."
+ echo
+ echo "For some reason, the requirements for building the X11 video"
+ echo "output plugins are not met. That means, that you will NOT be"
+ echo "able to use the resulting xine-lib to watch videos in a window"
+ echo "on any X11-based display (e.g. your desktop)."
+ echo
+ echo "If this is not what you want, provide the necessary X11 build"
+ echo "dependencies (usually done by installing a package called"
+ echo "XFree86-devel or similar) and run configure again."
+ echo "****************************************************************"
+ echo
+ ;;
+ esac
+ fi
+])
diff --git a/m4/vcd.m4 b/m4/vcd.m4
new file mode 100644
index 000000000..917fc5128
--- /dev/null
+++ b/m4/vcd.m4
@@ -0,0 +1,230 @@
+AC_DEFUN([VCD_SUPPORT], [
+ AC_ARG_ENABLE(vcd, AS_HELP_STRING([--disable-vcd], [do not compile VCD plugin]),
+ enable_vcd=$enableval, enable_vcd=yes)
+
+dnl Force build of both vcd plugins, for now.
+dnl AC_ARG_ENABLE(vcdo, AS_HELP_STRING([--disable-vcdo], [do not compile old VCD plugin]),
+dnl enable_vcdo=$enableval, enable_vcdo=yes)
+dnl
+ enable_vcdo="yes"
+
+ AC_ARG_WITH(internal-vcdlibs, AS_HELP_STRING([--with-internal-vcdlibs], [force using internal libcdio/libvcd/libvcdinfo]),
+ [internal_vcdnav="$withval"], [internal_vcdnav="no"])
+
+ if test "x$enable_vcd" = "xyes"; then
+ dnl empty_array_size
+ AC_MSG_CHECKING([how to create empty arrays])
+
+ empty_array_size="xxx"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[struct { int foo; int bar[]; } doo;]])],[empty_array_size=""],[])
+
+ if test "x$empty_array_size" = "xxxx";then
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[struct { int foo; int bar[0]; } doo;]])],[empty_array_size="0"],[])
+ fi
+
+ if test "x$empty_array_size" = "xxxx"
+ then
+ AC_MSG_ERROR([compiler is unable to creaty empty arrays])
+ else
+ AC_DEFINE_UNQUOTED(EMPTY_ARRAY_SIZE, $empty_array_size,
+ [what to put between the brackets for empty arrays])
+ changequote(`,')
+ msg="[${empty_array_size}]"
+ changequote([,])
+ AC_MSG_RESULT($msg)
+ fi
+ dnl empty_array_size
+
+ if test "x$internal_vcdnav" = "xno" ; then
+ PKG_CHECK_MODULES([LIBCDIO], [libcdio >= 0.71], [], [internal_vcdnav=yes])
+ PKG_CHECK_MODULES([LIBVCDINFO], [libvcdinfo >= 0.7.23], [], [internal_vcdnav=yes])
+ if test "x$internal_vcdnav" = "xyes"; then
+ AC_MSG_RESULT([Use included libcdio/libvcdinfo support])
+ fi
+ fi
+
+ dnl check twice, fallback is internal copy
+ if test "x$internal_vcdnav" = "xno"; then
+ AC_DEFINE([HAVE_VCDNAV], [1], [Define this if you use external libcdio/libvcdinfo])
+ else
+ AC_DEFINE_UNQUOTED(HOST_ARCH, "$host_os/$host_cpu", [host os/cpu identifier])
+
+ AC_DEFINE(_DEVELOPMENT_, [], enable warnings about being development release)
+ AC_HEADER_STDC
+ AC_CHECK_HEADERS(sys/stat.h stdint.h glob.h inttypes.h stdbool.h)
+
+ if test "x$ac_cv_header_stdint_h" != "xyes"
+ then
+ AC_CHECK_SIZEOF(int, 4)
+ AC_CHECK_SIZEOF(long, 4)
+ AC_CHECK_SIZEOF(long long, 8)
+ fi
+
+ dnl ISOC99_PRAGMA
+ AC_MSG_CHECKING([whether $CC supports ISOC99 _Pragma()])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[_Pragma("pack(1)")]])],[
+ ISOC99_PRAGMA=yes
+ AC_DEFINE(HAVE_ISOC99_PRAGMA, [], [Supports ISO _Pragma() macro])
+ ],[ISOC99_PRAGMA=no])
+ AC_MSG_RESULT($ISOC99_PRAGMA)
+
+ dnl
+ dnl bitfield order
+ dnl
+ AC_MSG_CHECKING([bitfield ordering in structs])
+
+ dnl basic compile test for all platforms
+ AC_COMPILE_IFELSE([
+int main() {
+ struct { char bit_0:1, bit_12:2, bit_345:3, bit_67:2; }
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
+ __attribute__((packed))
+#endif
+ bf = { 1,1,1,1 };
+ switch (0) case 0: case sizeof(bf) == 1:;
+ return 0;
+}
+], [], AC_MSG_ERROR([compiler doesn't support bitfield structs]))
+
+
+ dnl run test
+ AC_RUN_IFELSE([
+int main() {
+ struct { char bit_0:1, bit_12:2, bit_345:3, bit_67:2; }
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
+ __attribute__((packed))
+#endif
+ bf = { 1,1,1,1 };
+ if (sizeof (bf) != 1) return 1;
+ return *((unsigned char*) &bf) != 0x4b; }
+], bf_lsbf=1, [
+ AC_RUN_IFELSE([
+int main() {
+ struct { char bit_0:1, bit_12:2, bit_345:3, bit_67:2; }
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
+ __attribute__((packed))
+#endif
+ bf = { 1,1,1,1 };
+ if (sizeof (bf) != 1) return 1;
+ return *((unsigned char*) &bf) != 0xa5; }
+], bf_lsbf=0, AC_MSG_ERROR([unsupported bitfield ordering]))
+ ],
+ [case "$host" in
+ *-*-mingw32* | *-*-cygwin*)
+ bf_lsbf=1
+ ;;
+ universal-*-darwin*)
+ bf_lsbf=0
+ ;;
+ *)
+ AC_MSG_RESULT([unknown])
+ AC_MSG_ERROR([value of bitfield test isn't known for $host
+*********************************************************************
+Value of bitfield test can't be found out for cross-compiling and we
+don't know its value for host "$host".
+
+Because it's needed for VCD plugin, disable VCD by configure option
+--disable-vcd or use external VCD library.
+*********************************************************************])
+ esac])
+
+ if test "x$cross_compiling" = "xyes"; then
+ TEXT=" (guessed)"
+ else
+ TEXT=""
+ fi
+ if test "x$bf_lsbf" = "x1"; then
+ AC_MSG_RESULT(LSBF${TEXT})
+ AC_DEFINE(BITFIELD_LSBF, [], [compiler does lsbf in struct bitfields])
+ else
+ AC_MSG_RESULT(MSBF${TEXT})
+ fi
+
+ AC_CHECK_HEADERS([errno.h fcntl.h \
+ stdbool.h stdlib.h stdint.h stdio.h string.h \
+ strings.h linux/version.h sys/cdio.h sys/stat.h \
+ sys/types.h ])
+
+ LIBCDIO_CFLAGS='-I$(top_srcdir)/src/input/vcd/libcdio'
+ LIBCDIO_LIBS='$(top_builddir)/src/input/vcd/libcdio/libcdio.la'
+ LIBISO9660_LIBS='$(top_builddir)/src/input/vcd/libcdio/libiso9660.la'
+ LIBVCD_CFLAGS='-I$(top_srcdir)/src/input/vcd/libvcd'
+ LIBVCD_LIBS='$(top_builddir)/src/input/vcd/libvcd/libvcd.la'
+ LIBVCDINFO_LIBS='$(top_builddir)/src/input/vcd/libvcd/libvcdinfo.la'
+
+ case $host_os in
+ darwin*)
+ AC_CHECK_HEADERS(IOKit/IOKitLib.h CoreFoundation/CFBase.h, [have_iokit_h="yes"])
+ if test "x$have_iokit_h" = "xyes" ; then
+ AC_DEFINE([HAVE_DARWIN_CDROM], [1], [Define 1 if you have Darwin OS X-type CD-ROM support])
+ fi
+ ;;
+ linux*)
+ AC_CHECK_HEADERS(linux/version.h)
+ AC_CHECK_HEADERS(linux/cdrom.h, [have_linux_cdrom_h="yes"])
+ if test "x$have_linux_cdrom_h" = "xyes" ; then
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
+#include <linux/cdrom.h>
+struct cdrom_generic_command test;
+int has_timeout=sizeof(test.timeout);]])],
+ [AC_DEFINE([HAVE_LINUX_CDROM_TIMEOUT], [1], [Define 1 if timeout is in cdrom_generic_command struct])],[])
+ AC_DEFINE([HAVE_LINUX_CDROM], [1], [Define 1 if you have Linux-type CD-ROM support])
+ fi
+ ;;
+ bsdi*)
+ AC_CHECK_HEADERS(dvd.h, [have_bsdi_dvd_h="yes"])
+ if test "x$have_bsdi_dvd_h" = "xyes" ; then
+ AC_DEFINE([HAVE_BSDI_CDROM], [1], [Define 1 if you have BSDI-type CD-ROM support])
+ fi
+ ;;
+ sunos*|sun*|solaris*)
+ AC_CHECK_HEADERS(sys/cdio.h)
+ AC_DEFINE([HAVE_SOLARIS_CDROM], [1], [Define 1 if you have Solaris CD-ROM support])
+ ;;
+ cygwin*)
+ AC_DEFINE([CYGWIN], [1], [Define 1 if you are compiling using cygwin])
+ AC_DEFINE([HAVE_WIN32_CDROM], [1], [Define 1 if you have MinGW CD-ROM support])
+ LIBCDIO_LIBS="$LIBCDIO_LIBS -lwinmm"
+ LIBVCD_LIBS="$LIBVCD_LIBS -lwinmm"
+ ;;
+ mingw*)
+ AC_DEFINE([MINGW32], [1], [Define 1 if you are compiling using MinGW])
+ AC_DEFINE([HAVE_WIN32_CDROM], [1], [Define 1 if you have MinGW CD-ROM support])
+ ;;
+ freebsd4.*)
+ AC_DEFINE([HAVE_FREEBSD_CDROM], [1], [Define 1 if you have FreeBSD CD-ROM support])
+ ;;
+ *)
+ AC_MSG_WARN(Don't have OS CD-reading support for ${host_os}...)
+ AC_MSG_WARN(Will use generic support.)
+ ;;
+ esac
+ AC_SUBST(LINUX_CDROM_TIMEOUT)
+ AC_SUBST(HAVE_BSDI_CDROM)
+ AC_SUBST(HAVE_DARWIN_CDROM)
+ AC_SUBST(HAVE_FREEBSD_CDROM)
+ AC_SUBST(HAVE_LINUX_CDROM)
+ AC_SUBST(HAVE_SOLARIS_CDROM)
+ AC_SUBST(HAVE_WIN32_CDROM)
+ AC_SUBST(LINUX_CDROM_TIMEOUT)
+ AC_SUBST(LIBVCD_SYSDEP)
+
+ AC_CHECK_FUNCS( bzero memcpy )
+
+ AC_CHECK_MEMBER([struct tm.tm_gmtoff],
+ [AC_DEFINE(HAVE_TM_GMTOFF, 1, [Define if struct tm has the tm_gmtoff member.])],
+ [], [#include <time.h>])
+ fi
+ fi
+
+ AC_DEFINE([LIBCDIO_CONFIG_H], 1, [Get of rid system libcdio build configuration])
+ AC_DEFINE([EXTERNAL_LIBCDIO_CONFIG_H], 1, [Get of rid system libcdio build configuration])
+ AC_SUBST(LIBCDIO_CFLAGS)
+ AC_SUBST(LIBCDIO_LIBS)
+ AC_SUBST(LIBISO9660_LIBS)
+ AC_SUBST(LIBVCD_CFLAGS)
+ AC_SUBST(LIBVCD_LIBS)
+ AC_SUBST(LIBVCDINFO_LIBS)
+ AM_CONDITIONAL(HAVE_VCDNAV, [test "x$internal_vcdnav" = "xno"])
+ AM_CONDITIONAL(ENABLE_VCD, [test "x$enable_vcd" = "xyes"])
+])