diff options
author | Matt Messier <mmessier@grapetv.org> | 2007-05-04 08:13:32 -0400 |
---|---|---|
committer | Matt Messier <mmessier@grapetv.org> | 2007-05-04 08:13:32 -0400 |
commit | b988ef1fe6268819c69f345b4f1836fb739cf3fe (patch) | |
tree | 039f5b3504e6835ee8dee69fc4cc08376a83bcf6 /m4 | |
parent | e20369d1b3e91cd45c1281e37030124b2af1b00f (diff) | |
download | xine-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.am | 5 | ||||
-rw-r--r-- | m4/macosx.m4 | 64 | ||||
-rw-r--r-- | m4/pthreads.m4 | 25 | ||||
-rw-r--r-- | m4/summary.m4 | 437 | ||||
-rw-r--r-- | m4/vcd.m4 | 230 |
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"]) +]) |