diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 230 |
1 files changed, 228 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac index 0d8ed0a68..e18f94e90 100644 --- a/configure.ac +++ b/configure.ac @@ -977,6 +977,218 @@ AM_CONDITIONAL(HAVE_DVDNAV, [test x"$no_dvdnav" != "xyes"]) dnl --------------------------------------------- +dnl VCDx +dnl --------------------------------------------- +AC_ARG_ENABLE(vcdx,[ --disable-vcdx Do not compile VCDX plugin. Compile old VCD instead], enable_vcdx=no, enable_vcdx=yes) +AC_ARG_WITH(external-vcdnav,[ --with-external-vcdnav Use external libcdio/libvcd libraries [[not recommended]]], + [external_vcdnav="yes"], [no_vcdnav="yes"; external_vcdnav="no"]) + +if test x"$enable_vcdx" = "xyes"; then + dnl empty_array_size + AC_MSG_CHECKING([how to create empty arrays]) + + empty_array_size="xxx" + AC_TRY_COMPILE([],[struct { int foo; int bar[]; } doo;], empty_array_size="") + + if test "x$empty_array_size" = "xxxx";then + AC_TRY_COMPILE([],[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"$external_vcdnav" = "xyes"; then + external_vcdnav="no" + + if test x"$PKG_CONFIG" != "xno" ; then + AC_MSG_CHECKING(for libcdio) + if $PKG_CONFIG --atleast-version 0.61 libcdio; then + AC_MSG_RESULT(found) + LIBCDIO_CFLAGS=`$PKG_CONFIG --cflags libcdio` + LIBCDIO_LIBS=`$PKG_CONFIG --libs libcdio` + + AC_MSG_CHECKING(for libvcdinfo) + if $PKG_CONFIG --atleast-version 0.7.17-cdio libvcdinfo; then + AC_MSG_RESULT(found) + LIBVCDINFO_CFLAGS=`$PKG_CONFIG --cflags libvcdinfo` + LIBVCDINFO_LIBS=`$PKG_CONFIG --libs libvcdinfo` + AC_DEFINE(HAVE_VCDNAV,1,[Define this if you have a suitable version of libcdio/libvcd]) + external_vcdnav="yes" + no_vcdnav="no" + else + AC_MSG_RESULT([Use included VCDNAV support]) + fi + + else + AC_MSG_RESULT([Use included VCDNAV support]) + fi + fi + fi + + dnl check twice, fallback is internal copy + if test x"$external_vcdnav" != "xyes"; then + AC_DEFINE_UNQUOTED(HOST_ARCH, "$host_os/$host_cpu", [host os/cpu identifier]) + AC_CHECK_FUNCS(snprintf vsnprintf, , [AC_MSG_ERROR(required function not found)]) + + AC_DEFINE(_DEVELOPMENT_, [], enable warnings about being development release) + AC_DEFINE(_GNU_SOURCE, [], enable GNU libc extension) + AC_STDC_HEADERS + 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_TRY_COMPILE([],[_Pragma("pack(1)")], [ + ISOC99_PRAGMA=yes + AC_DEFINE(HAVE_ISOC99_PRAGMA, [], [Supports ISO _Pragma() macro]) + ],ISOC99_PRAGMA=no) + AC_MSG_RESULT($ISOC99_PRAGMA) + + dnl bitfield order + AC_MSG_CHECKING(bitfield ordering in structs) + AC_TRY_RUN([ +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_TRY_RUN([ +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]))) + if test "x$bf_lsbf" = "x1"; then + AC_MSG_RESULT(LSBF) + AC_DEFINE(BITFIELD_LSBF, [], [compiler does lsbf in struct bitfields]) + else + AC_MSG_RESULT(MSBF) + fi + + AC_HAVE_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 + darwin6*) + 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_TRY_COMPILE(,[ +#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]) + ;; + 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_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"$no_vcdnav" != "xyes"]) +AM_CONDITIONAL(ENABLE_VCDX, [test x"$enable_vcdx" = "xyes"]) + + +dnl --------------------------------------------- dnl ASF build can be optional dnl --------------------------------------------- @@ -1494,7 +1706,7 @@ dnl --------------------------------------------- dnl some include paths ( !!! DO NOT REMOVE !!! ) dnl --------------------------------------------- -INCLUDES='-I$(top_srcdir) -I$(top_builddir)/include -I$(top_srcdir)/include -I$(top_srcdir)/src -I$(top_builddir)/src/xine-engine -I$(top_srcdir)/src/xine-engine -I$(top_srcdir)/src/xine-utils $(INTLDIR)' +INCLUDES='-I$(top_srcdir) -I$(top_builddir)/include -I$(top_srcdir)/include -I$(top_srcdir)/src -I$(top_builddir)/src/xine-engine -I$(top_srcdir)/src/xine-engine -I$(top_srcdir)/src/xine-utils $(INTLDIR) -I$(top_builddir)/src/input -I$(top_srcdir)/src/input' AC_SUBST(INCLUDES) @@ -1565,6 +1777,11 @@ src/input/libdvdnav/Makefile src/input/dvb/Makefile src/input/librtsp/Makefile src/input/libreal/Makefile +src/input/vcd/Makefile +src/input/vcd/libcdio/Makefile +src/input/vcd/libcdio/cdio/Makefile +src/input/vcd/libvcd/Makefile +src/input/vcd/libvcd/libvcd/Makefile src/liba52/Makefile src/libdts/Makefile src/libfaad/Makefile @@ -1659,7 +1876,16 @@ echo " - http - mms" echo " - pnm - rtsp" echo " - dvb" if test x"$have_cdrom_ioctls" = "xyes"; then - echo " - dvd - vcd" + echo " - dvd" + if test x"$enable_vcdx" = "xyes"; then + if test x"$external_vcdnav" = "xyes"; then + echo " - vcdx (external libs)" + else + echo " - vcdx (internal libs)" + fi + else + echo " - vcd" + fi echo " - cdda" fi if test x"$no_gnome_vfs" = "xno"; then |